(57)【特許請求の範囲】
【請求項１】
印刷される画像データを複数のブロックに分割して圧縮して圧縮ブロックとして保持する画像データ処理装置であって、
画像データの回転角度に応じた回転処理された圧縮ブロックの次の圧縮ブロックを特定するための変数と圧縮ブロックの何番目かを示すポインタとをセットするセット手段と、
前記ポインタで示される圧縮ブロックの圧縮データを取得する取得手段と、
前記取得手段により取得された圧縮データを伸長する伸長手段と、
前記伸長手段により伸長されたデータを回転角度に応じて回転処理する回転処理手段と、
前記ポインタを前記変数に基づき更新する更新手段とを有し、
前記取得手段は、前記セット手段によりセットされたポインタで示される圧縮ブロックの圧縮データを取得し、次に前記更新手段により更新されたポインタで示される圧縮ブロックの圧縮データを順次取得し、
前記回転処理手段は、前記伸長手段により伸長されたデータを回転角度に応じて回転し、回転されたデータを変換された位置に書き込みことにより回転処理することを特徴とする画像データ処理装置。
【請求項２】
印刷される画像データを複数のブロックに分割して圧縮して圧縮ブロックとして保持する画像データ処理方法であって、
画像データの回転角度に応じた回転処理された圧縮ブロックの次の圧縮ブロックを特定するための変数と圧縮ブロックの何番目かを示すポインタとをセットするセットステップと、
前記ポインタで示される圧縮ブロックの圧縮データを取得する取得ステップと、
前記取得ステップにより取得された圧縮データを伸長する伸長ステップと、
前記伸長ステップにより伸長されたデータを回転角度に応じて回転処理する回転処理ステップと、
前記ポインタを前記変数に基づき更新する更新ステップとを有し、
前記取得ステップは、前記セットステップによりセットされたポインタで示される圧縮ブロックの圧縮データを取得し、次に前記更新ステップにより更新されたポインタで示される圧縮ブロックの圧縮データを順次取得し、
前記回転処理ステップは、前記伸長手段により伸長されたデータを回転角度に応じて回転し、回転されたデータを変換された位置に書き込みことにより回転処理することを特徴とする画像データ処理方法。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、画像データ処理装置に関し、具体的には、インクジェットプリンタ、ドットマトリックスプリンタ、レーザビームプリンタ、ＣＲＴディスプレー等のフォント情報を表示又は印刷する装置に関するものである。
【０００２】
【従来の技術】
従来、１つの文字を表す情報においては、文字に１つの情報が対応していた。なお、ここで述べる情報とは、例えばドットフォントのドットデータや、スケーラブルフォントで使われる座標情報データや、ハフマンコーディング等の圧縮手段を用いて情報の占めるデータ量を減らしたもの等に限定されるものではない。
【０００３】
【発明が解決しようとする課題】
しかしながら、上記従来技術では、印刷又は表示の対象に表示・印刷する場合に、予め用意されている文字情報が一つの方向用にしかない場合に、これを回転して表示・印刷する手順において、まず回転させる処理の前に文字データから表示するフォント全体を一旦作り、それから作り出したフォントを回転処理して、必要な表示データを得ていた。
【０００４】
従来のフォントでは、一文字分全てをビットマップへ展開しないと回転を始めることができず、ハードウェアで回転を行う場合でも一時的にデータを保存するＲＡＭの容量もまるまる一文字分必要で、制御回路が複雑になる欠点があった。特に、データ圧縮されたフォントを扱う場合には、全データを伸張し終わらないと回転の作業が行えないものであった。
【０００５】
【課題を解決するための手段】
前記課題を解決するために、本発明の画像データ処理装置は、印刷される画像データを複数のブロックに分割して圧縮して圧縮ブロックとして保持する画像データ処理装置であって、画像データの回転角度に応じた回転処理された圧縮ブロックの次の圧縮ブロックを特定するための変数と圧縮ブロックの何番目かを示すポインタとをセットするセット手段と、前記ポインタで示される圧縮ブロックの圧縮データを取得する取得手段と、前記取得手段により取得された圧縮データを伸長する伸長手段と、前記伸長手段により伸長されたデータを回転角度に応じて回転処理する回転処理手段と、前記ポインタを前記変数に基づき更新する更新手段とを有し、前記取得手段は、前記セット手段によりセットされたポインタで示される圧縮ブロックの圧縮データを取得し、次に前記更新手段により更新されたポインタで示される圧縮ブロックの圧縮データを順次取得し、前記回転処理手段は、前記伸長手段により伸長されたデータを回転角度に応じて回転し、回転されたデータを変換された位置に書き込みことにより回転処理することを特徴とする。
また、本発明の画像データ処理方法は、印刷される画像データを複数のブロックに分割して圧縮して圧縮ブロックとして保持する画像データ処理方法であって、画像データの回転角度に応じた回転処理された圧縮ブロックの次の圧縮ブロックを特定するための変数と圧縮ブロックの何番目かを示すポインタとをセットするセットステップと、前記ポインタで示される圧縮ブロックの圧縮データを取得する取得ステップと、前記取得ステップにより取得された圧縮データを伸長する伸長ステップと、前記伸長ステップにより伸長されたデータを回転角度に応じて回転処理する回転処理ステップと、前記ポインタを前記変数に基づき更新する更新ステップとを有し、前記取得ステップは、前記セットステップによりセットされたポインタで示される圧縮ブロックの圧縮データを取得し、次に前記更新ステップにより更新されたポインタで示される圧縮ブロックの圧縮データを順次取得し、前記回転処理ステップは、前記伸長手段により伸長されたデータを回転角度に応じて回転し、回転されたデータを変換された位置に書き込みことにより回転処理することを特徴とする。
【０００６】
【実施例】
次に、図面を参照して、本発明の実施例を説明する。
【０００７】
（実施例１）
図１は、本発明の実施例１の回路ブロックと各ブロックで処理されるデータを示す図である。図１において、符号１０１は描画の元となるデータが入っている画像メモリを示し、１０２は例えばランレングス等の圧縮アルゴリズムを持つデータ圧縮回路を示し、１０３は圧縮されたデータを保存するデータメモリを示し、１０４は圧縮されたデータを復元するための伸張回路を示し、１０５は入ってきたデータを必要な角度に回転するローテータを示し、１０６はローテータから出力されたデータを入れるビットマップメモリを示す。１０７はシステムをコントロールするＣＰＵを示す。
【０００８】
符号１１０〜１１５は実際のデータの流れを示し、１１０は画像メモリ１０１に入っているビットマップデータを示し、１１１はビットマップデータ１１０の一部を示し、１１２はビットマップデータ１１１を圧縮したデータを示し、１１３は圧縮したデータを伸張して復元したビットマップデータの一部分を示し、１１４はビットマップデータ１１３をローテータに入れ回転させたデータを示し、１１５は、回転させたデータ１１４から作られるビットマップデータを示す。
【０００９】
印刷されるべきビットマップデータは、画像メモリに１１０のように保存される。圧縮回路１０２は、画像データ１１０を、例えば１１１で示すような等しい大きさの正方形のブロックへ分け、データを圧縮し、データ１１２を発生する。ブロツクごとの圧縮データはデータメモリ１０３へ格納されるが、その際にデータの先頭を示す。ポインタも併せて格納される。データの先頭はワード単位でもビット単位でも良い。
【００１０】
データが伸張され、回転する場合は、図２で例を挙げると、例えば、▲２▼、▲４▼、▲１▼、▲３▼の順でブロックごとに伸張される。圧縮データ１１２は、ブロツクごとに伸張され、元のビットマップデータ１１３へ展開される。続いて、必要な回転角の回転処理がローテータ１０５で行われ、回転データ１１４の通り加工される。回転されたデータ１１４は、各々▲２▼、▲４▼、▲１▼、▲３▼の通りにビットマップメモリ１０６へ格納され、回転されたデータ１１５が形成される。
【００１１】
例えばこのシステムでバス巾が１６ｂｉｔ、ローテータが８ｂｉｔのものを想定すると、回転後のデータ▲２▼と▲４▼が生成されたところで、▲１▼、▲３▼の生成を待たずに、必要なバス巾のデータとして、使用することができる。図３は、本実施例の１０３データメモリ内のデータ構造を示した図でＡ０００番地から４バイトごとにアドレスａ、ｂ、ｃ、ｄが格納され、アドレスａ、ｂ、ｃ、ｄには各々図２の▲１▼、▲２▼、▲３▼、▲４▼のブロックの圧縮したデータが入っている。
【００１２】
図４は、データの圧縮の手順を示すフローチャートである。図４において、ステップＳ２０１で、画像の大きさを取り込み、ステップＳ２０２で、正方形の部分に分けた時の個数を求める。ステップＳ２０３で、変数Ａに圧縮したデータをストア（格納）するアドレスを入れる。ステップＳ２０４で、部分画像データは座標で指定され、左上を（０、０）とする。続いて、圧縮の処理を行う。ステップＳ２０５で、圧縮するデータを読出し、ステップＳ２０６で、圧縮のハードウェア（ソフト的な処理でも良い）を通してデータを圧縮し、変数Ａで示されるアドレスから圧縮データをストアする（ステップＳ２０７）。次に圧縮データのアドレスをストアする。
【００１３】
ステップＳ２０８で、変数Ａを更新し、次のデータを入れるアドレスを設定する。ステップＳ２０９、ステップＳ２１０で次の部分データ処理を行うか判定し、一行が終わったところで、ステップＳ２１１、ステップＳ２１２で、最後のブロックまで処理が済んだか確認する。ここで、圧縮処理には既知のランレングス及びハフマンコーディング等があるが、本発明ではいずれの圧縮方式を用いることができる。
【００１４】
図５は、データの伸張の手順を示すフローチャートである。図５において、ステップＳ２５０で、回転する角度を設定し、ステップＳ２５１、ステップＳ２５３、ステップＳ２５５で何度の回転となるかを判断し、１つの圧縮ブロックから次の圧縮ブロックを処理すれば良いかを示す変数ＸとＹに値をセットする（ステップＳ２５２、ステップＳ２５４、ステップＳ２５６、ステップＳ２５７）。なお、変数Ｚは圧縮データの何番目かを示すポインタである。
【００１５】
ステップＳ２５８で、変数Ｚからアドレスポインタを決定し、そのアドレスから始まる圧縮データを伸張し（ステップＳ２５９）、ステップＳ２６０で、ローテーション処理を行う。そして、ステップＳ２６１で、変数ｘ、ｙで示されるメモリへデータをストアし、ステップＳ２６２〜２６７で次の圧縮データの処理を続ける。
【００１６】
伸張の処理で決まったラインからの部分画像を出したい場合は、不要な部分圧縮データを飛ばすことも可能となり、より高速なデータ作成が可能となる。なお、図６は、伸張動作を説明するための図である。
【００１７】
（実施例２）
図７は実施例２の回路ブロック図であり、この実施例２では、必要なデータは予め作成され、ＲＯＭ１０８に格納されている。この様に、圧縮は別な回路でデータの回転とは別な時間に行って良い。
【００１８】
（実施例３）
図８は実施例３の回路ブロック図であり、図８において、１３０はホストシステムで、ＣＰＵ１３１とＲＯＭ１３２、ＲＡＭ１３３そしてＩ／Ｆ回路１３４から構成されている。このように、同一の装置内ではなく、外部の装置でデータの圧縮まで行い、データ転送して、印刷時に伸張・回転を行っても良い。
【００１９】
【発明の効果】
以上説明したように、本発明では、
▲１▼回転処理を行うローテータの大きさを小さくすることができ、
▲２▼回転後のデータのうち、必要なブロックから作成できるので速く次の処理が開始できるなどの効果が得られる。
【図面の簡単な説明】
【図１】図１は、本発明の実施例１の回路ブロックと各ブロックで処理されるデータを示す図である。
【図２】図２は、データを４分割した場合の回転処理を説明するための図である。
【図３】図３は、メモリ上の圧縮データの構造を示す図である。
【図４】図４は、圧縮処理の動作を示すフローチャートである。
【図５】図５は、伸張処理の動作を示すフローチャートである。
【図６】図６は、伸張動作を説明するめの図である。
【図７】図７は、実施例２の回路ブロック図である。
【図８】図８は、実施例３の回路ブロック図である。
【符号の説明】
１０１              画像メモリ
１０２              圧縮回路
１０３              データメモリ
１０４              伸張回路
１０５              ローテータ
１０６              ビットマップメモリ
１０７              ＣＰＵ
１１０              与えられる画像データ
１１１              切り出した部分画像データ
１１５              回転された画像データ
３００              ＲＯＭ
１３０              ホストシステム
【図１】
0003854646.tif 000002
【図２】
0003854646.tif 000003
【図３】
0003854646.tif 000004
【図４】
0003854646.tif 000005
【図５】
0003854646.tif 000006
【図６】
0003854646.tif 000007
【図７】
0003854646.tif 000008
【図８】
0003854646.tif 000009