JPH11129553A - メモリ管理方法及びそれを用いた印刷装置と印刷システム - Google Patents

メモリ管理方法及びそれを用いた印刷装置と印刷システム

Info

Publication number
JPH11129553A
JPH11129553A JP9295929A JP29592997A JPH11129553A JP H11129553 A JPH11129553 A JP H11129553A JP 9295929 A JP9295929 A JP 9295929A JP 29592997 A JP29592997 A JP 29592997A JP H11129553 A JPH11129553 A JP H11129553A
Authority
JP
Japan
Prior art keywords
character
data
record
memory area
memory
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.)
Withdrawn
Application number
JP9295929A
Other languages
English (en)
Inventor
Masanari Toda
雅成 戸田
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 JP9295929A priority Critical patent/JPH11129553A/ja
Publication of JPH11129553A publication Critical patent/JPH11129553A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Record Information Processing For Printing (AREA)

Abstract

(57)【要約】 【課題】メモリ管理のオーバーヘッドをなくし、少ない
メモリで稼働できるプリンタを提供する。 【解決手段】文書中の文字は識別子を含む文字レコード
でプリンタに登録され、文字の印刷はその識別子と位置
をプリンタに送信して行う。送られた文字レコードは固
定長でセルメモリ1202に格納される。文字レコード
が増えれば新たなセルメモリ1202が割り当てられる
が、この際に、古いセルメモリ1201の文字レコード
数と、新しいセルメモリ1202の空き容量を比較し、
もし後者が大きければ、セルメモリ1201内の文字レ
コードをセルメモリ1202に移してセルメモリ120
1を解放する。文字レコードはすべて固定長であり、移
動の範囲がセルメモリ間に限られているため、高速にメ
モリのガベージコレクションが行え、メモリ量を減らす
ことができる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、例えば、ホストコ
ンピュータからの印刷情報を受けて動作する印刷装置を
含む情報処理システム等に関するものであり、特にペー
ジ記述言語(PDL:Page Description Language)やプリ
ンタ制御コマンドなどと呼ばれるプリンタ制御機能を持
つ印刷装置と、その印刷装置のために用意され、ホスト
で実行されるプリンタドライバなどのソフトウェア等を
含む印刷システム及び印刷装置及びその制御方法に関す
るものである。
【0002】
【従来の技術】近年、印刷装置として、CAD(計算機
支援用設計),CG(コンピュータグラフィックス),
デザイン、ビジネスにおけるDTP(デスクトップパブ
リッシング)分野等のマルチメディア処理で利用される
データを高精細に印刷・記録するプリンタが製品化され
ている。このようなプリンタとして、ホストコンピュー
タから送られるPDL(ページ記述言語)コードを受け
取って解析し、得られた中間言語に従って、ハードウェ
アまたはソフトウェアで高速にレンデリング(ラスタラ
イズ)を行うPDLプリンタや、ホスト側でプリンタが
出力可能な形にまでラスタライズしてデータを送ること
でプリンタ側の機能を減らし、低価格化したイメージプ
リンタがある。
【0003】イメージプリンタの中には、文字データの
描画処理はプリンタ側で行い、プリンタ内部でイメージ
データと合成して出力するPDL方式との融合方式も提
案されている。この方式のプリンタでは、文字の描画方
法として、プリンタ内部のROM内にあるフォントデー
タを使う方法と、ホストコンピュータでTrue Typeフォ
ントデータを展開してイメージデータにしてプリンタに
送る方法がある。このうち、ディスプレイの表示と同じ
印刷結果を得るために後者の方法の利用率が上がってい
る。
【0004】しかし、文字全てをイメージデータとして
送ると、転送データ量が増え転送速度を遅くするだけで
なく、プリンタ内部のメモリを圧迫するという問題が起
る。そこで、初めて送る文字データを識別子を付けてプ
リンタに登録し、2回目以降は登録された識別子と描画
位置とを送ることで文字の描画を行う手法が開発されて
いる。この手法をTypeWing方式と呼ぶ。
【0005】TypeWing方式は、文字セット登録命令、1
文字登録命令、登録文字印字命令、文字セット削除命令
の4つの命令で実現される。文字の印刷を行うには、ま
ず、文字セット登録命令によってプリンタ内に文字セッ
トIDに対応したフォントセット用アドレステーブル領
域を確保し、次に1文字登録命令により、文字データ
を、指定された文字セット及び文字IDによって、フォ
ントセットアドレステーブルに登録する。
【0006】文字の登録が済めば、登録文字印字命令に
よって、既に登録された文字を指定された位置に描画さ
せる。
【0007】文字セット削除命令は、プリンタ内部のメ
モリが一杯になった場合にあまり使わない文字セットを
消去するために用いられ、こうすることで新しい文字セ
ットの登録を可能とする。
【0008】
【発明が解決しようとする課題】以上に述べたように、
TypeWing方式は、ディスプレイの表示と同一の出力結果
を、少ないデータ転送量で実現する方式であるが、プリ
ンタでの文字データの登録が1文字単位で行われるため
登録に時間がかかる。また文字セット削除命令によって
文字データが削除されると、削除された文字が占めてい
たメモリ空間が歯抜け状態になり、その領域を再使用す
るためのガーページコレクション処理に時間がかかる。
つまり、プリンタ例の登録及び削除処理による負荷が高
く、連続印刷に適さないという問題を抱えている。
【0009】本発明は、上記従来例に鑑みてなされたも
ので、TypeWing方式の利点を活かしつつ、登録及び削除
に伴う処理の付加を軽減させ、少ないメモリ空間で連続
ページ印刷を高速に行える印刷システム及び印刷装置及
び尾の制御方法を提供することを目的とする。
【0010】
【課題を解決するための手段】上記目的を達成するため
に本発明は次のような構成からなる。すなわち、格納す
べきデータが生じた場合に、所定サイズ単位の未使用の
メモリ領域を必要数獲得する工程と、前記所定サイズの
メモリ領域ごとに、該領域に格納されたデータが不要と
なった場合に、そのメモリ領域を解放して未使用のメモ
リ領域とする解放工程とを備えるメモリ管理装置。
【0011】あるいは、印刷データが生じた場合に、所
定サイズ単位の未使用のメモリ領域を必要数獲得する手
段と、獲得したメモリ領域に格納された印刷データを基
に印刷出力を行う出力手段と、前記所定サイズのメモリ
領域ごとに、該領域に格納されたデータが不要となった
場合に、そのメモリ領域を解放して未使用のメモリ領域
とする解放手段とを備える印刷装置。
【0012】あるいは、印刷データ中に表れる文字の識
別子とイメージとが含まれる文字レコードを生成する文
字レコード生成手段と、印刷データ中にあらわれる文字
をその識別子と位置で表した文字描画命令データと、文
字以外の画像を表したイメージデータとを生成するデー
タ生成手段と、前記文字レコード及び文字描画命令デー
タ及びイメージデータを印刷装置に送信する送信手段と
を備える印刷制御装置と、前記印刷制御装置から印刷デ
ータを受信する場合に、所定サイズ単位の未使用のメモ
リ領域を必要数獲得する手段と、獲得したメモリ領域に
受信した印刷データを格納して印刷出力を行う出力手段
と、前記所定サイズのメモリ領域ごとに、該領域に格納
されたデータが不要となった場合に、そのメモリ領域を
解放して未使用のメモリ領域とする解放手段とを備える
印刷装置と、を具備する印刷システム。
【0013】あるいは、印刷装置に印刷データを送信す
る印刷制御プログラムを格納するコンピュータ可読の記
憶媒体であって、前記プログラムは、印刷データ中に表
れる文字の識別子とイメージとが含まれる文字レコード
を生成する文字レコード生成処理ステップと、印刷デー
タ中にあらわれる文字をその識別子と位置で表した文字
描画命令データと、文字以外の画像を表したイメージデ
ータとを生成するデータ生成処理ステップと、 前記文
字レコード及び文字描画命令データ及びイメージデータ
を印刷装置に送信する送信処理ステップとを備える記憶
媒体。
【0014】
【発明の実施の形態】
[第1の実施の形態] <印刷システムの構成>図1は第1の実施の形態におけ
る印刷装置のブロック図である。
【0015】図1において、ホストコンピュータ101
では、文字や自然画像などを含んだ画像を作成する作画
アプリケーションを用いて作成したデータを、CPU1
011で実行されるプリンタドライバによって、プリン
タが受け取れるデータ形式に変換する。変換されたデー
タをプリンタコントローラ102に送出する。このプリ
ンタドライバは外部メモリ1013あるいは主メモリ1
012に格納されたプログラムである。
【0016】プリンタコントローラ102に入力された
データはDMA受信入力によって入力バッファ103
(RAM)に格納される。入力バッファ103に格納さ
れたデータは、プログラム用ROM104内の転送デー
タ解析プログラムに従い解析処理が行われる。
【0017】また入力バッファ103は格納された文字
レコードデータををのまま保持するための領域としても
利用される。プログラム用ROM104は後述する図に
示す処理手順(制御プログラム)を格納するメモリであ
り、CPU105がこの制御プログラムにしたがってデ
ータを読み込み各処理を実行する。
【0018】CPU105は入力バッファに格納された
イメージデータの描画位置などのパラメータをイメージ
ハードレンダラ107にセットする。イメージハードラ
ンダラー107は入力バッファ内のイメージデータ、あ
るいは圧縮されたイメージデータをバンドメモリ108
に直接描画する。
【0019】CPU105はプリンタコントローラ10
2の内部処理を制御する演算装置である。CPU105
は入力バッファに格納された文字描画命令を解析し、ビ
ットマップデータ等の文字データを描画位置を指定して
文字ハードレンダラ106にセットする。文字ハードレ
ンダラ106は入力バッファ105内の、文字の識別子
で示される文字の画像をバンドメモリ108に直接描画
する。
【0020】バンドメモリ108は、1つがページ幅×
200ライン程度のバンド高さであり、これが最低2つ
用意されている。プリンタエンジンへの出力であるシッ
ピング処理と、イメージ展開及び文字描画による画像の
合成処理とは、複数のバンドメモリについて並行に行わ
れる。そのため、文字データとイメージデータの合成が
終わったバンドの情報は即座にプリンタインターフェー
ス109を介してプリンタエンジン110に送られ、プ
リンタエンジン110へのデータの送信が完了したバン
ドメモリでは次のバンドの画像の合成が直ちに開始され
る。
【0021】プリンタインターフェース109は、プリ
ンタエンジン110、例えば電子写真方式のエンジンと
バンドメモリ108との間で、プリンタエンジン110
へのコマンド送信やプリンタエンジン110からのステ
ータス受信を行う。
【0022】なお、プリンタエンジン110は、電子写
真によるLBPでもインクジェット方式であっても良
い。またカラープリンタでもモノクロームプリンタでも
よい。 <データ転送・印刷の手順>図2はホストコンピュータ
で文字と図形が混ざったデータを作成し、プリンタコン
トローラで出力するまでを示す説明図である。
【0023】出力画像201は、ホストコンピュータ1
01の作画アプリケーションで作画した結果得られた画
像であり、ホストコンピュータのディスプレイに表示さ
れる画像でもある。
【0024】ホストコンピュータ101においては、文
字はキャラクタコードで、線等の図形は開始点と終了点
及び線幅等のデータ形式で保持されている。ホストコン
ピュータで稼働するプリンタドライバは、これらのデー
タ形式からプリンタコントローラ205が出力可能なデ
ータ形式に変換する。
【0025】(プリンタドライバの処理) (1)データ形式の変換プリンタコントローラ102に
より描画可能な文字を抽出し、文字を、文字単位でID
番号をつけてプリンタに登録するための文字レコードデ
ータ202を作成する。また、登録されたID番号と描
画位置データを含む文字描画命令データ205を生成す
る。
【0026】それ以外はイメージデータに展開してプリ
ンタが処理するバンド単位で圧縮して圧縮イメージ20
3とし、転送データ204とする。 (2)データ転送ホストコンピュータ101の内部メモ
リ空間に1ページ分すべての描画データが揃うと、プリ
ンタ102に、文字レコードデータ202、文字描画命
令データ205を転送する。
【0027】転送されたデータは、プリンタ内の入力バ
ッファ103にDMA受信によって格納される。さらに
入力バッファ103に余裕がある限りイメージデータを
格納する。
【0028】(プリンタの処理) (3)描画処理バッファ103に格納された文字レコー
ドデータ206、文字描画命令データ207、イメージ
データ208は、処理の高速化のために、そのまま描画
処理可能な状態で転送されてくる。それによって、受信
バッファ103は、そのまま文字レコード格納用バッフ
ァでもあり、イメージ格納用バッファとして使用され
る。
【0029】入力バッファ103が一杯になると、2つ
のバンドメモリ209に対して1バンド目のイメージデ
ータを展開する。そのバンド内に描画すべき文字がある
場合は、そのイメージデータの上から、文字描画命令に
したがって文字セットデータ内の文字データを展開す
る。 (4)排紙処理文字の描画中はもう片方のバンドメモリ
にイメージを展開し、文字の描画が終了したバンドは直
ちに排紙処理を行う。バンドメモリにイメージを描画す
ることによって、バンドメモリへのイメージの描画が済
んだ文字描画命令やイメージデータは不要になる。不要
になった領域にホストコンピュータから残りのイメージ
データを転送することで1ページ分のデータを送り込
む。
【0030】以上の処理を繰り返すことによって、少な
いメモリ空間で印刷が可能となっている。 <プリンタドライバによる文字レコードの作成及び管理
> (文字セット管理用テーブル群の作成)図3を用いて文
字レコードの具体的な管理方法を説明する。この管理方
法に従う管理手順は、プリンタドライバにより実行され
る。
【0031】文字セット管理用テーブル群301は、プ
リンタドライバにより作成され、維持されている。テー
ブル群301には、文字セット管理テーブル302、文
字セットテーブル303、文字管理テーブル304が含
まれる。
【0032】文字セット管理テーブル302は、文字の
種類(ポイント数や、明朝体,ゴシック体などの書体)
ごとに文字セットを登録する文字セットテーブル303
を管理するテーブルである。文字セットを登録すると、
テーブル302のポインタ部に文字セットテーブル30
3へのポインタがセットされる。
【0033】文字セットテーブル303は、登録された
文字コードをキーとして高速に文字管理テーブル304
の登録,検索が可能なハッシュテーブルを利用している
が、ひらがな、カタカナ、数字などの頻繁に出現すると
考えられる文字種は、予約ナンバーによって直接その文
字の管理テーブルにアクセスできるようにしておけば、
ハッシングに係る処理が不要となり、高速に検索、登録
が可能である。
【0034】新たな文字データが登録される場合、文字
セットテーブル303に登録された文字コードをキーと
して(あるいは予約ナンバーにより)アクセスされる文
字管理テーブル304が確保される。文字管理テーブル
304は、その文字データを格納する文字レコードのI
D番号(ID)、文字レコード内のその文字のオフセッ
ト値(offset)、展開されたその文字のビットマ
ップデータへのポインタ(charp)、その文字が出
現する回数を数える出現カウンタ(cnt)等の領域を
持つ。
【0035】プリンタドライバは、1ページ分の文字デ
ータの処理を行う上で、新規に出現した文字データにつ
いてはそのビットマップデータ309を展開し、文字セ
ットテーブル303に文字を登録して文字管理テーブル
304を生成し、生成されたビットマップデータ309
を文字管理テーブルに登録するとともにその出現カウン
タに1をセットする。なお、1ページ分の文字処理を行
ううちに、複数回出現する文字については出現カウンタ
をアップする。
【0036】以上のようにして、1ページに少なくとも
1回あらわれる文字を、文字セットテーブル303及び
文字管理テーブル304に登録する。
【0037】(プリンタ転送用文字レコードの作成)1
ページ分の文字描画命令を処理し終わると、そのページ
の描画に必要な文字ビットマップデータを集めた文字レ
コード307を含むプリンタ転送用文字レコード305
を生成する。
【0038】文字レコード307には、レコードIDと
それに含まれる文字データの数及び文字データが含まれ
る。文字レコードの作成時には、各文字は文字管理テー
ブル304内のカウンタにより出現頻度が調べられ、出
現頻度の高い文字は高い文字同士で、頻度の低い文字は
低い文字同士で1つのレコードを形成するようにグルー
プ分けされる。文字レコードはプリンタで文字画像を生
成する際に用いられる。また、プリンタヘの文字データ
の登録、削除は文字レコード単位で行われる。そのた
め、使用頻度が高い文字を集めた文字レコードは、いっ
たん登録しておけば長く利用できる可能性が高い。
【0039】文字レコード管理テーブル306にはレコ
ードごとのID番号が登録される。文字レコード307
作成時には、文字レコード管理テーブル306で空いて
いるID番号を新たな文字レコードにつけ、後述するよ
うに文字のビットマップデータを含む文字データを、文
字レコード内に先頭から順に格納する。格納された文字
データに対応する文字管理テーブル304には、文字デ
ータが格納された文字レコードIDと、そのレコードに
おける格納された位置のオフセットが格納される。
【0040】生成した文字レコードは1ページ分集めら
れて後述する文字レコードデータ308が作成され、プ
リンタに文字レコード登録命令として送られる。
【0041】複数のページを連続して印刷する連続ペー
ジ印刷時は、文字管理テーブル304が生成されていな
い文字データを収集して、新たな文字レコードを作成
し、プリンタに転送するだけでよい。
【0042】しかし、プリンタのメモリ量を越えて文字
レコードを登録することは不可能であるため、そういっ
た場合は文字レコード削除命令によって不要な文字レコ
ードを削除する必要がある。
【0043】削除された文字レコードの中に必要な文字
がある場合は、新しく登録する文字レコードに混ぜて再
登録を行う。 <文字データの登録・削除及び印刷の手順> (プリンタドライバ側の処理)図4はプリンタドライバ
が、文字データの登録・削除・印刷のために作成するデ
ータの構造を示す。このデータは固定長ヘッダ401
と、データ部404を持つ。ヘッダ401は、データタ
イプ402とデータサイズ403とで構成されており、
プリンタはヘッダ401を読み込むだけで、そのデータ
のデータタイプとデータサイズとを知ることが可能であ
る。データタイプとしては、「ジョブ開始データ」「文
字レコードデータ」「文字描画データ」「イメージデー
タ」「ジョブ終了データ」がある。
【0044】「ジョブ開始データ」は、両面印刷等のプ
リンタの設定等を行うものであるが、プリンタとホスト
マシン間で双方向通信が可能である場合は、プリンタに
搭載されているメモリサイズをプリンタから受信するモ
ードに移っても良い。 [文字レコードデータの構造]図5は文字レコードデー
タの構造を示す。文字レコードデータには、文字レコー
ドデータ識別子501、文字レコードデータ全体のサイ
ズ502、データ部503が含まれている。
【0045】データ部503には、上述した文字レコー
ド511と文字レコード削除命令を含む文字削除レコー
ド512の一方あるいは両方が含まれている。文字レコ
ード及び文字削除レコードはすべて固定長サイズであ
り、データだけでは固定長に満たない場合は、ダミーデ
ータを格納してサイズを合わせる。文字レコード、文字
削除レコードは共に、ヘッダ部とデータ部を持つ。ヘッ
ダ部の先頭に付いているレコードIDがNILの場合は
文字削除レコードとして扱われ、それ以外の場合は文字
レコードとして扱われる。
【0046】文字レコード511のヘッダには、レコー
ドID504に続けて登録文字数を示すCNT504が
ある。文字レコードのデータ部には、登録する文字デー
タのヘッダ部506と文字データのビットマップデータ
507がセットになってCNT504で示される数だけ
格納されている。
【0047】文字削除レコードのヘッダには、レコード
ID508に続けてCNT509があり、CNT509
には削除するレコード数が記録される。文字削除レコー
ドのデータ部には、削除するレコードID510が格納
されている。
【0048】文字削除レコードは、プリンタ内部のメモ
リを有効利用のために、文字レコードデータの末尾に配
置される。 [文字描画命令データの構造]次に、図6を用いて文字
描画命令データの構造を示す。文字レコードデータ同様
にヘッダ部には、文字レコードデータ識別子601、デ
ータサイズ602が含まれる。データ部603には、描
画する文字の登録されているレコードID,レコード内
のオフセット値と共に、描画位置、文字色等の情報が、
バンド単位に格納されている。 [イメージデータの構造]図7を用いてイメージデータ
の構造を示す。文字レコードデータ同様に、ヘッダ部
は、イメージデータ識別子701とデータサイズ702
で構成される。データ部703は、バンドヘッダ部70
4とデータ本体705で構成されるバンドごとのイメー
ジデータが1ページ分格納されている。
【0049】以上のように、本システムではプリンタド
ライバからプリンタに対して、文字レコードデータと、
文字描画命令データと、イメージデータとが転送され
る。
【0050】(プリンタ側の処理)プリンタは上述した
データを少ないメモリ構成で可能な限り取り込んで処理
するために、以下のような方法で処理を行う。
【0051】図8,図9は、プリンタが処理を行う際に
用いるデータ構造を示している。プリンタは、初期状態
で、固定長のヘッダ402を格納するバッファを用意し
ている。ホストコンピュータからデータのヘッダを受信
すると、受信したヘッダを用意してあるバッファに格納
する。本システム用データは固定長サイズのヘッダ部と
データ部で構成されており、ヘッダ部を読み込むことに
よって文字レコード、文字描画、イメージデータを識別
することが可能である。
【0052】プリンタはヘッダのデータタイプ402と
サイズ403とに従い、セルメモリ801を、サイズで
示された量のデータが入る分獲得し、指定サイズ分だけ
データ部403をDMA受信する。セルへのデータ部の
格納後、次の固定長サイズヘッダ部を格納するためにヘ
ッダ用バッファを用意し次のヘッダを読み込み、以上と
同様の処理を繰り返す。セルメモリヘのデータ格納は、
DMA受信をセルメモリ単位で行うことで高速なデータ
の格納が可能となっている。
【0053】セルメモリ801は、ヘッダ部8011+
データ格納部8012(固定長サイズ64Kバイト)で
構成され、初期状態のセルメモリ、すなわち未使用状態
の空きセルメモリはメモリ管理構造体905に繋がれて
いる(図9(b))。
【0054】セルメモリのヘッダ部8011には、他の
セルメモリとリンクするためのCELL.nextp部を持ち、1
つのセルメモリに入りきらないデータは、このリンクで
つながれたセルに続きを格納することができ、複数のセ
ルを使用してデータを格納することを可能にしている。
なお、CELL.nextpとは、セルメモリ"CELL"に含まれるフ
ィールド"nextp"を表す。
【0055】そのほか、セルメモリのヘッダ部8011
は、そのセルメモリ内の登録データ数等を格納するCEL
L.cnt部、そのセルメモリ内で次にデータを格納する位
置を示すCELL.writeoff部、そのセルメモリ内で次に処
理を行う位置を示すCELL.readoff部で構成されてい
る。
【0056】プリンタは、受信したヘッダ情報401、
すなわち、文字レコードデータ、あるいは文字描画命令
データ、あるいはイメージデータのいずれかのヘッダ情
報に従い、メモリ管理テーブル905から必要な空きセ
ルメモリを獲得し、以下に示すようにデータ種類毎に管
理することで、セルメモリを高速に、効率的に利用可能
とするものである。 [セルメモリの管理テーブルの構造]プリンタでは、受
信したデータをセルメモリに格納し、それをジョブ単位
及びページ単位で管理している。受信したデータのう
ち、文字レコードデータはジョブ単位で、イメージデー
タはページ単位で管理される。文字描画命令データはジ
ョブ単位とともにページ単位ででも管理される。これ
は、文字レコードは、いったん登録されれば削除されな
い限りはジョブを通して使用されるが、その他はページ
ごとに異なるデータのためである。文字描画命令データ
がジョブ単位ででも管理されているのは、このデータは
ページ単位では小さいデータであり、データそのものは
ジョブ単位で保有したほうがメモリの使用効率があがる
ためである。このようなジョブ単位での管理のためには
ジョブ管理テーブルが、ページ単位での管理のためには
ページ情報テーブルが用いられる。
【0057】図9において、ジョブ管理テーブル900
のフィールドJOB.chartopは、管理対象のジョブの文字
レコードデータ901が格納されているセルメモリの先
頭アドレスを示す。なおプリンタでは、ホストコンピュ
ータから送られるジョブ開始命令とジョブ終了命令とに
より、ジョブを認識する。
【0058】JOB.chartailは、文字レコードデータを格
納した最終セルメモリ(JOB.nextpでリンクされる最後
のセルメモリ)のアドレスを示す。
【0059】JOB.Ccellcntは、そのジョブの文字レコー
ドデータのために利用されているセルメモリの数を示
す。
【0060】JOB.rendtopには、そのジョブの文字描画
命令データを格納するセルメモリ903へのポインタが
セットされる。
【0061】JOB.rendtailには、そのジョブの文字描画
データを格納する最終セルメモリへのポインタがセット
される。図9の例では、文字描画命令データのためには
1つのセルメモリしか使用されていないため、JOB.rend
topとJOB.rendtailとは同じメモリセルを示している。
【0062】JOB.Rcellcnには、文字描画命令データ用
に利用されているセルメモリの数がセットされる。
【0063】JOB.pagepには、そのジョブで印刷される
先頭のページに対応するページ情報テーブル902への
ポインタがセットされる。
【0064】ページ情報テーブル902はプリンタ内部
に保持されているページそれぞれに対応して作成され
る。ページのつながりは、ポインタPAGE.nextpagepに次
のページのページ情報テーブルを繋げることで管理され
る。
【0065】PAGE.charpには、そのページ用に格納され
た文字レコードデータの先頭アドレスがセットされ、PA
GE.charsizeには格納されたサイズがセットされる。格
納されたばかりの文字レコードデータには、文字レコー
ドと文字削除レコードとが含まれている。そのため、こ
のアドレスで示される、サイズがPAGE.charsizeの領域
に含まれる文字削除レコード及び文字レコードに応じて
削除,登録が行われる(後述)。
【0066】PAGE.rendpにはそのページ用に格納した文
字描画データの先頭アドレスがセットされ、描画処理時
には、そのアドレスのデータがPAGE.rendsize分処理さ
れる。
【0067】PAGE.imgtopには、イメージデータを格納
した先頭のセルメモリ904のアドレスがセットされ
る。
【0068】PAGE.imgtailには、イメージデータを格納
した末尾のセルメモリのアドレスがセットされる。
【0069】PAGE.Icellcntにはイメージデータを格納
しているセルメモリの個数がセットされる。
【0070】(文字レコードの登録及び削除)次に図1
0,11を用いて文字レコードデータの管理方法を説明
する。
【0071】文字レコード1つのサイズはセルメモリの
サイズ(本例では64Kバイト)の約数(例えば2Kバ
イト)であるが、データ格納時はDMA受信で1かたま
りのデータとして格納される。格納時には、ジョブ管理
テーブルのポインタJOB.chartailの先のセルメモリ10
01のCELL.writeoffで示されるアドレスに格納される
(図10(a))。
【0072】ページ情報更新時、すなわち格納された文
字レコードデータに含まれる文字削除レコードに従って
文字レコードを削除し、文字レコードを登録する際に
は、まず削除命令から処理を行う。文字削除レコードは
文字レコードデータの末尾に付加されているため、(PA
GE.charp+PAGE.charsize−(1文字レコードサイ
ズ))のデータのヘッダ部のレコードID部を読み込
む。レコードIDが文字削除レコードを示すNIL以外
なら、そのレコードIDに対応する文字レコード管理テ
ーブル1002のセルに、文字レコードが格納されてい
るアドレスをセットする。なお、文字レコード管理テー
ブル1002は、例えば(レコードID×セルサイズ)
で、レコードIDとセルとを対応付けている。こうし
て、レコードIDと文字レコードとが対応づけられる。
また、CELL.cntはセルメモリの空き状況を示すビットマ
ップとして用いられ、文字レコードが格納されているセ
ルメモリのCELL.cnt部1003の対応するビットフラ
グをオンにする(図10(b))。なお、図10は最初
の文字レコードデータの登録であるため、削除レコード
は含まれていない。
【0073】ページ情報更新時後、JOB.chartailが示
すセルのCELL.writeoffには、セルのデータ部の先頭か
ら登録された最後尾の文字レコードまでのオフセットを
セットする。削除命令部は、それを上書きすることでメ
モリを有効利用する。
【0074】図11は、図10(b)のように文字レコ
ードが登録されたセルメモリ1001に、次の第2ペー
ジの文字レコードを登録する様子を示している。まず、
第2ページの文字レコードデータが、JOB.chartailで指
し示されるセルメモリの、writeoffで示されるアドレス
から格納される。そして、第2ページのページ情報テー
ブルのPAGE.charpにそのアドレスが、PAGE.charsizeに
そのサイズが格納される(図11(a))。
【0075】ページ情報更新時、すなわち格納された文
字レコードデータに含まれる文字削除レコードに従って
文字レコードを削除し、文字レコードを登録する際に
は、まず削除命令から処理を行う。そのため、(PAGE.c
harp+PAGE.charsize−(1文字レコードサイズ))の
レコード1101のヘッダ部からレコードID部を読み
込む。レコード1101は削除レコードであるため、そ
れに含まれるレコードIDに対応する文字レコードのア
ドレスを、文字レコード管理テーブル1002から得
て、そのレコードを削除する。この削除は、文字レコー
ド管理テーブル1002から削除されるレコードのアド
レスを消去し、代わりに空きを示すコードを格納してお
くことで行われる。それとともに、セルメモリのcntに
含まれるビットマップのうち、削除されるレコードに対
応するビットをオフにする。
【0076】削除レコードの処理が済んだなら、第1ペ
ージの登録と同じ要領で、第2ページ目の文字レコード
を登録する(図11(b))。 [文字レコードの削除・登録に伴うガーベッジコレクシ
ョン]図12に示すように、JOB.chartailの示すセル
1201(このセルは同時にJOB.chartopにより指し示
されているものとする)にデータが入りきらない場合
は、入りきれるだけそのセル1201にデータを格納
し、空きセル1202を獲得して、ジョブ管理テーブル
のJOB.chartailをそのセル1202のアドレスとし、ま
た、そのセルメモリ1202をそれまで使用していたセ
ル1201のnextpでリンクする。そして、新たなセル
に残りのデータを格納する。
【0077】その後、図10及び図11を参照して説明
したように、文字レコードの削除及び登録処理が行わ
れ、図13に示しような構成となる。
【0078】こうして文字レコード用セルメモリが複数
となった場合、つまり、(JOB.chartop≠JOB.chartai
l)になると、ページ更新処理後、JOB.chartopで指し
示されるセルのCELL.cntから登録文字レコード数をカ
ウントし、その値が規定値以下の場合は、JOB.chartai
lで指し示されるセルの空き領域を見つけて文字レコー
ド単位で移動して登録し直す。登録のしなおしは、移動
された文字レコードについて、文字レコード管理テーブ
ル1203の各セルの内容を、移動先のレコードのアド
レスに書き換えるとともに、CELL.cntのビットマップを
レコードの移動にあわせて書き換えることで行われる。
なお、既定値の判定は、例えば、セル1201のcntか
ら得られる文字レコード数が、セル1202のcntから
得られる空きレコード数よりも小さければ、セル120
1を空けることができる、というように行われる。
【0079】図14は、この移動が行われた後の様子を
示している。この移動によりセルメモリ1201にはレ
コードが全く含まれなくなったため、ジョブ管理テーブ
ルのJOB.chartopはセルメモリ1202に移動され、セ
ルメモリ1201は解放される。なお、セル1201が
JOB.chartopによって指し示されず、他のセルのCELL.ne
xtpによって指し示されている場合には、そのCELL.next
pをセル1202を指すように変更すればよい。また、
解放されたセルメモリは、メモリ管理テーブル905に
つながれた空きセルのリンクに入れられる。
【0080】上記のようにして空きレコードをまとめて
セル単位の空きを作り、それを解放する処理、。すなわ
ちガベージコレクションが行われる。
【0081】(文字描画命令データ)文字描画命令は、
文字の描画位置,文字レコードID,文字レコード内の
オフセット値を1文字ごとに1セットとするシーケンシ
ヤルなデータ列であり、1ページ分として必要なメモリ
容量は変動する。そこで、格納ルールを以下のように決
めることで少ないセルメモリでデータ処理を実現する。 ・データを格納する時は、JOB.rendailの先のセルのCEL
L.writeoffの指し示すロケーションから格納し、そのド
レスを、その文字描画命令が含まれるページのページ情
報テーブルのPAGE.rendpにセットする。 ・1ページ分のデータを格納したなら、そのセルのCELL.
cntをインクリメントする。 ・描画処理中のページの先頭はCELL.readoffにセットす
る(初期状態では、readoffは0)。 ・1ページ処理が終了すると、データが入っていたセル
のCELL.cntをデクリントする。 ・CELL.writeoffで指し示されるロケーションから文字
描画命令データが入りきらない場合は、その時点のCEL
L.readoffの値をチェックし、既にトップ部に十分な格
納領域がある場合はセルメモリをリングバッファとして
用いる。トップ部に十分な格納領域が無い場合は、次セ
ルを確保し格納し、アドレスをCELL.next、JOB.rendt
ailにセットする。 ・CELL.cntが0になったセルは解放する。
【0082】図15は以上のルールに従い処理を進め、
2ページ目を描画中で、4ページ目を格納中のセルを示
している。
【0083】図15において、1ページ目の処理は既に
済んでいるため、CELL.cntには3がセットされてい
る。また、格納中の4ページ目のデータサイズが(セル
メモリのサイズ−Writeoff)よりも大きいため、デー夕
は途中まで格納されている。
【0084】また、CELL.readoffの値はPAGE2の先頭を
示している。4ページ目の残りのサイズがそこに十分入
れば、4ページ目の残りデータは本セル内に格納され
る。十分でなければ、空きセルを用意してそちらに格納
する。
【0085】(イメージデータ)イメージデータはペー
ジ単位で受信され、メモリセルの単位で管理される。例
えば、図9のイメージデータのセル904のように1ペ
ージ分のイメージデータが2つのセルメモリを占める場
合、イメージデータの出力がバンド単位で進み、最初の
メモリセルに格納されていたバンドの出力が済んだな
ら、そのメモリセルが解放され、次のバンドの出力や他
のデータの受信が行われる。 [ホストコンピュータからのデータ送信]以上説明した
要領で、ホストコンピュータからプリンタにデータが送
信され、プリンタで受信、出力、及びそれに伴うメモリ
管理処理が行われる。この手順をフローチャートによっ
て説明する。
【0086】図21〜図23は、ホストコンピュータの
プリンタドライバによる文字レコードデータ,文字描画
命令データ,イメージデータの作成及び送信の手順であ
る。
【0087】まず、図21により、印刷出力処理が行わ
れる。
【0088】S801:まず、印刷しようとするデータ
のうち、文字データ以外のデータをイメージに変換す
る。
【0089】S802:次に文字データを基にして、文
字レコードデータ及び文字描画命令データを作成する。
【0090】S803:最後に、ジョブ開始データの付
加など、必要な処理を施した後、作成された文字レコー
ドデータ,文字描画命令データやイメージデータ等の転
送データをプリンタに送信する。 (文字レコードデータ及び文字描画命令の作成)ステッ
プS802における文字データの作成は図22の要領で
行われる。図22において、 S900:文字描画データ(文字コードや書体・サイズ
情報等、文字を特定するのに必要な情報)を読み込む。
【0091】S901:アプリケーションが作成したデ
ータを解析し、プリンタで印字可能な文字サイズ、論理
描画の条件にあった場合はステップS902へ、それ以
外はイメージ処理としてステップS903へと進む。
【0092】S902:その文字が既に登録されている
文字レコードデータ内に存在するか、文字セット管理用
テーブル群301から検索する。
【0093】S903:文字データであっても、イメー
ジデータとして処理すべくイメージを展開し、展開済み
のイメージと合成する。
【0094】S904:登録済みの文字セットに含まれ
る場合はS905へ、含まれないときはS906へ進
む。
【0095】S905:文字セット管理用テーブル群3
01から、新たに登録する文字の文字IDと文字セット
IDとを取得する。
【0096】S906:文字データからその文字のビッ
トマップデータを展開し、文字セット管理用テーブル群
301及び、プリンタ転送用文字レコード305に登録
する。登録した文字IDと文字セットIDとを取得す
る。ただし、文字レコードデータは後述するプリンタの
受信セルのサイズにあわせて固定長であるため、もし新
たな登録によって固定長を越えるようであれば、作成中
の文字セットに適当なデータを充填して固定長にし(こ
れは送信時に行ってもよい)、その文字セットの作成を
完了させて新たな文字セットの作成を始めるようにして
も良い。
【0097】S907:印刷しようとする文字の文字I
Dと描画位置とにより文字描画命令データを作成する。
【0098】S908:まだ文字データがあるか判定
し、ある場合にはステップS900へ分岐する。
【0099】なお、プリンタドライバが文字レコードの
新たな登録を行う場合には、プリンタのメモリ容量から
あふれないよう、データ通信路を介してプリンタ側の搭
載メモリ量を知るようにしてもよいし、またはユーザが
プリンタのメモリ量をホストコンピュータ側に入力して
もよい。プリンタドライバは、そのメモリ量に応じて登
録文字レコード数を算出し、プリンタに登録される文字
レコード数が算出された文字レコード数以下になるよ
う、不要な文字レコードの削除して必要な文字レコード
を追加するよう、文字レコードをページ単位で生成しな
おす。 (1ページデータ送信)このようにして文字レコードデ
ータと文字描画命令、及びイメージデータが揃ったとこ
ろで、図21のステップS803でページごとにデータ
をプリンタに送信する。この手順を図23に示す。
【0100】S1001:まず、それが印刷ジョブの1
ページ目のデータであるか判定する。
【0101】S1002:2ページ目以降であれば、そ
の前のページを印刷するために送信しておいた文字レコ
ードのうち、出現頻度の低い文字セットを、文字レコー
ドIDとともに文字セット削除命令をプリンタに送り付
けて削除する。文字レコードは、本実施例では出現頻度
ごとにまとめられているため、削除する文字レコードは
文字種ごとにランク付けられた出現頻度に応じて選択さ
れる。例えば、「1ページごとに削除される文字レコー
ド」を予め頻度に応じて決めておき、作成する文字セッ
トを必ずこのどちらかに分類しておく。これを文字セッ
ト管理用テーブル群301に登録しておき、削除する文
字レコードを選ぶようにすることもできる。
【0102】S1003:プリンタのメモリの空き容量
は十分か判定する。この判定は、双方向に接続されたプ
リンタならプリンタから情報をもらうこともできるし、
単方向の接続なら、プリンタに送ったデータ量から推定
することもできる。
【0103】S1004:これで十分な空き容量がなけ
れば、プリンタに登録されている全文字レコードを削除
し、図9の要領で改めて必要最小限の文字レコードを作
成する。
【0104】S1005:再びプリンタのメモリの空き
容量を判定する。
【0105】S1006:これでも十分な空きが確保で
きない場合には、出現頻度の少ない文字を文字レコード
から取除き、その文字のイメージを展開済みのイメージ
と合成する。ここで、文字レコードデータは、1つのレ
コードが所定サイズであるため、文字レコードから取除
く文字は、少なくとも1つの文字レコード分の容量を減
らすことができる程度の数でなければ意味がない。
【0106】S1007:十分な空き容量が確保できた
ところで、図8のステップS801デ作成されたイメー
ジ(その後文字イメージが合成されている場合もある)
をバンド単位に圧縮し、送信イメージデータを作成す
る。作成される送信イメージデータは、文字レコードデ
ータと同じく固定長を単位としている。すなわち、文字
描画命令データ及びイメージデータも固定長ごとに区切
られ、半端な長さであれば適当な充填が行われる。
【0107】S1008:送信データをプリンタに送信
する。
【0108】以上の手順により、ホストコンピュータ1
01からプリンタ102に印刷データが送信される。な
お、ステップS1007で説明した送信データの固定長
の区切りは、プリンタドライバでおこなわず、受信した
プリンタでおこなうこともできる。 [プリンタによるデータの受信]図16〜図18のフロ
ーチャートを用いてプリンタのデータ格納方法を説明す
る。
【0109】S1601:固定長サイズヘッダを読み込
み、データタイプを解析してステップS1602へ進
む。
【0110】S1602:データタイプに従い分岐す
る。文字レコードデータであればステップS1603
へ,文字描画命令データであればステップS1604
へ,イメージデータであればステップS1605へ,ジ
ョブ開始データであればステップS1606へ,ジョブ
終了データであればS1607へ進む。
【0111】S1603:文字レコードデータの格納処
理を行う。このステップは図17で詳しく説明する。
【0112】S1604:文字描画命令データの格納処
理を行う。このステップは図18で詳しく説明する。
【0113】S1605:イメージデータの格納処理を
行う。
【0114】S1606:ジョブスタート処理(ジョブ
管理テーブル900、ページ管理テーブル902作成)
を行う。
【0115】S1607:ジョブエンド処理を行う。
【0116】図16のステップ1603では、図17の
ような手順で処理が行われる。
【0117】S1701:あるジョブについて現在文字
レコードが格納されている末尾のセルメモリに空き容量
があればS1703へ、なければS1702へ分岐す
る。
【0118】S1702:空きセルを新たに獲得してジ
ョブ管理テーブルのポインタJOB.chartaislにをそのセ
ルにリンクし直し、ステップS1703へ進む。
【0119】S1703:JOB.chartailが示すセルメモ
リのCELL.writeoffの指し示す位置からデータを格納
し、ステップS1704へ進む。
【0120】S1704:全データ格納終了ならS17
05へ、データが残っていたらS1702へ分岐する。
【0121】S1705:格納処理中のページ情報テー
ブルのPAGE.charpに、格納したデータの先頭アドレスを
セットし、PAGE.charsizeに格納したデータサイズをセ
ットする。
【0122】図18は、文字描画命令データの格納処理
手順である。
【0123】S1801:現在文字描画命令が格納され
ている最後尾のセルメモリに、ヘッダから得られたデー
タサイズ全てを格納できる空き容量があればS1804
へ、なければS1802へ分岐する。
【0124】S1802:格納可能な分のデータを最後
尾のセルメモリに格納してステップS1803へ進む。
【0125】S1803:JOB.rendtailがしめすセルメ
モリのCELL.readoffの値が格納しきれないデータサイズ
よりも大きい場合はステップS1806へ、小さい場合
はステップS1805へ分岐する。
【0126】S1805:空きセルを獲得して、それを
JOB.rendtailにリンクする。
【0127】S1806:JOB.rendtailが示すセルメモ
リのCELL.writeoffの指し示す位置からデータを格納
し、ステップS1807へ進む。
【0128】S1807:全データ格納終了ならS18
08へ、入りきらない場合はS1805へ進む。
【0129】S1808:格納処理中のページのページ
情報テーブルのPAGE.rendpに、格納したデータの先頭ア
ドレスをセットし、PAGE.rendsizeに、格納したデータ
サイズをセットする。 [文字レコードデータの削除・登録]以上説明した手順
で、各種データが格納される。文字レコードについて
は、格納した後で更に登録処理を行わねばならない。こ
の処理は、文字レコードデータ格納後、文字描画命令デ
ータを処理する前に行われなければならない。従って、
この処理は図16のステップS1603の直後に行われ
ても良いし、1ページ分のデータの格納が済んだ時点で
直ちに行うようにしても良い。
【0130】図19は、文字レコードの削除,登録処理
の手順を示すフローチャートである。
【0131】S1901:登録された文字レコードデー
タの末尾から文字削除レコードを読み込み、それに記録
されたレコードIDに対応する文字レコードを削除す
る。
【0132】S1902:削除が済んだなら、文字レコ
ードを読み込み、図10〜図14で説明した要領で文字
レコードを文字レコード管理テーブルに登録する。S1
903へ進む。
【0133】S1903:JOB.chartopに繋がるセルメ
モリの文字レコードの格納状態を示すフラグCELL.cntか
らガページコレクション条件に当てはまるものがあった
場合はS1904へ進み、それ以外は処理終了となる。
ガベージコレクションの条件とは、例えば、JOB.charto
pに繋がるセルメモリのCELL.cntから得られる文字レコ
ード数が、JOB.chartailに繋がるセルメモリのCELL.cnt
から得られる空きレコード数よりも小さい、といったも
のである。
【0134】S1904:文字レコード単位でガーペー
ジコレクション処理を行い、文字レコードテーブルに再
配置する。ガベージコレクションの結果解放されるセル
メモリがあれば、そのセルメモリは解放される。すなわ
ち、ジョブ管理テーブルから切り離されてメモリ管理テ
ーブルに空きセルとしてリンクされる。 [文字描画処理]このようにして登録された文字レコー
ドを用いて、文字描画命令に従って文字の描画がプリン
タでおこなわれる。文字描画命令は、イメージデータが
展開されたバンドについて処理される。イメージは展開
されてセルメモリが空くと、そのセルメモリはその都度
解放される。
【0135】図20のフローチャートを用いてプリンタ
の文字描画処理を説明する。
【0136】S2001:描画処理中のページ情報テー
ブルのPAGE.rendpで指し示される文字描画命令データの
処理を1文字ずつ開始する。PAGE.rendsize分処理終了
するか、CELLメモリの境界にくるまで処理を行う。
【0137】S2002:PAGE.rendsize分処理しない
うちにセルメモリの境界に到達した場合はステップS2
003へ、1ページ分の文字描画命令の処理が全て終わ
った場合はS2008へ進む。
【0138】S2003:処理が終了したセルのCELL.n
extpに初期状態の値NILが入っていた場合、すなわち
セルメモリがリングバッファとして使用されている場合
にはステップS2006へ進み、リンクされたセルメモ
リのアドレスが入っていた場合はステップS2004へ
進む。
【0139】S2004:CELL.nextpが示すセルメモリ
の先頭のアドレスをPAGE.rendpにセットし、未処理のデ
ータ量をPAGE.rendsizeにセットする。
【0140】S2005:処理が済んだデータを格納し
ていたセルメモリを解放して、ステップ2001に分岐
し、続きの文字描画命令データの処理を再開する。
【0141】S2006:ここではセルメモリがリング
バッファとして用いられているため、そのセルメモリの
データ部の先頭アドレスをPAGE.rendpにセットし、先頭
から格納されている残りの文字描画命令を処理する。
【0142】S2007:処理しおえたところで、次に
処理されるオフセットアドレスでCELL.readoffを更新す
る。
【0143】このように文字描画命令は処理される。
【0144】以上のようにして、本実施形態のプリンタ
では、文字レコードデータ、文字描画命令データ、イメ
ージデータは、すべてプリンタではセルメモリ単位でメ
モリが割り付けられる。さらに、セルメモリのデータ部
は、文字データレコードのサイズの整数倍のサイズであ
る。このため、処理が済んで不要となったデータの格納
されていた領域を空きメモリとして解放するガベージコ
レクション処理が容易に高速に行え、この処理のための
オーバーヘッドが小さくて済む。したがって、このプリ
ンタは、セルメモリ単位でガベージコレクションを頻繁
に行うことでデータを格納するために必要な空きメモリ
空間を確保することが容易であり、そのためのオバーヘ
ッドが少ないので比較的小容量のメモリで印刷処理を行
える。
【0145】また、文字レコードは頻度別に作成されて
いるため、文字レコードを削除する際にも頻度の低い文
字レコードを選択して削除することで、いったん削除し
た文字を再登録するというオーバーヘッドをなくすこと
ができる。
【0146】また、文字をホストコンピュータで展開す
る必要がないため、ホストコンピュータで文字の展開に
要する時間を節約することができる。その文字IDや位
置、色といった小さな情報で送ることができ、ホストコ
ンピュータ−プリンタ間で転送されるデータを、すべて
イメージデータで転送する減らすことができる。
【0147】また、文字描画処理時に、セルメモリをリ
ングバッファとして使用することで、メモリの必要量を
小さくすることができる。
【0148】
【他の実施形態】なお、本発明は、複数の機器(例えば
ホストコンピュータ,インタフェイス機器,リーダ,プ
リンタなど)から構成されるシステムに適用しても、一
つの機器からなる装置(例えば、複写機,ファクシミリ
装置など)に適用してもよい。
【0149】また、本発明の目的は、前述した実施形態
の機能を実現するソフトウェアのプログラムコードを記
録した記憶媒体を、システムあるいは装置に供給し、そ
のシステムあるいは装置のコンピュータ(またはCPU
やMPU)が記憶媒体に格納されたプログラムコードを
読出し実行することによっても達成される。
【0150】この場合、記憶媒体から読出されたプログ
ラムコード自体が前述した実施形態の機能を実現するこ
とになり、そのプログラムコードを記憶した記憶媒体は
本発明を構成することになる。
【0151】プログラムコードを供給するための記憶媒
体としては、例えば、フロッピディスク,ハードディス
ク,光ディスク,光磁気ディスク,CD−ROM,CD
−R,磁気テープ,不揮発性のメモリカード,ROMな
どを用いることができる。
【0152】また、コンピュータが読出したプログラム
コードを実行することにより、前述した実施形態の機能
が実現されるだけでなく、そのプログラムコードの指示
に基づき、コンピュータ上で稼働しているOS(オペレ
ーティングシステム)などが実際の処理の一部または全
部を行い、その処理によって前述した実施形態の機能が
実現される場合も含まれる。
【0153】さらに、記憶媒体から読出されたプログラ
ムコードが、コンピュータに挿入された機能拡張ボード
やコンピュータに接続された機能拡張ユニットに備わる
メモリに書込まれた後、そのプログラムコードの指示に
基づき、その機能拡張ボードや機能拡張ユニットに備わ
るCPUなどが実際の処理の一部または全部を行い、そ
の処理によって前述した実施形態の機能が実現される場
合も含まれる。
【0154】
【発明の効果】以上説明したように、本発明によって、
文字ビットマップデータの登録、削除を高速に行うこと
で、少ないメモリ空間で連続印刷処理を可能にする。
【0155】また、文字レコードデータ、文字描画命令
データ、イメージデータは、すべてプリンタではセルメ
モリ単位でメモリが割り付けられる。さらに、セルメモ
リのデータ部は、文字データレコードのサイズの整数倍
のサイズである。このため、処理が済んで不要となった
データの格納されていた領域を空きメモリとして解放す
るガベージコレクション処理が容易に高速に行え、この
処理のためのオーバーヘッドが小さくて済む。したがっ
て、このプリンタは、セルメモリ単位でガベージコレク
ションを頻繁に行うことでデータを格納するために必要
な空きメモリ空間を確保することが容易であり、そのた
めのオバーヘッドが少ないので比較的小容量のメモリで
印刷処理を行える。
【0156】また、文字レコードは頻度別に作成されて
いるため、文字レコードを削除する際にも頻度の低い文
字レコードを選択して削除することで、いったん削除し
た文字を再登録するというオーバーヘッドをなくすこと
ができる。
【0157】また、文字をホストコンピュータで展開す
る必要がないため、ホストコンピュータで文字の展開に
要する時間を節約することができる。その文字IDや位
置、色といった小さな情報で送ることができ、ホストコ
ンピュータ−プリンタ間で転送されるデータを、すべて
イメージデータで転送する減らすことができる。
【0158】
【図面の簡単な説明】
【図1】印刷制御システムのブロック図である。
【図2】プリンタドライバのデータ作成処理とプリンタ
の印字処理の流れを示す説明図である。
【図3】ドライバの管理する文字セット管理用テーブル
群と、プリンタ転送用文字レコードの説明図である。
【図4】本システム共通のデータ形式の図である。
【図5】本システムの文字レコードデータ構造の図であ
る。
【図6】本システムの文字描画データ構造の図である。
【図7】本システムのイメージデータ構造の図である。
【図8】プリンタのセルメモリの構造図である。
【図9】プリンタのメモリ管理方法の説明図である。
【図10】文字レコードの登録処理を説明する図であ
る。
【図11】文字レコードの削除、登録処理を説明する図
である。
【図12】文字レコードの削除、登録処理を説明する図
である。
【図13】文字レコードの削除、登録処理を説明する図
である。
【図14】文字レコードの削除、登録処理を説明する図
である。
【図15】描画命令データの格納方法を説明する図であ
【図16】プリンタにおける、受信したデータタイプに
よる処理のフローチャートである。
【図17】プリンタにおける、文字レコードデータの格
納処理手順のフローチャートである。
【図18】文字描画命令データの格納処理手順のフロー
チャートである。
【図19】文字レコードデータの削除、登録処理手順の
フローチャートである。
【図20】文字の描画処理手順のフローチャートであ
る。
【図21】プリンタドライバにより印刷を行う手順のフ
ローチャートである。
【図22】プリンタドライバイにより文字セットの登録
と描画データ作成を行う手順のフローチャートである。
【図23】プリンタドライバから1ページの印刷データ
を送信する手順のフローチャートである。
【符号の説明】
101 ホストコンピュータ 102 プリンタコントローラ 110 プリンタエンジン 1011 CPU 1012 メモリ 103 入力バッファ 105 CPU 108 バンドメモリ 301 文字セット管理用テーブル群 305 プリンタ転送用文字レコード

Claims (35)

    【特許請求の範囲】
  1. 【請求項1】 格納すべきデータが生じた場合に、所定
    サイズ単位の未使用のメモリ領域を必要数獲得する工程
    と、 前記所定サイズのメモリ領域ごとに、該領域に格納され
    たデータが不要となった場合に、そのメモリ領域を解放
    して未使用のメモリ領域とする解放工程とを備えること
    を特徴とするメモリ管理方法。
  2. 【請求項2】 データが2つのメモリ領域にわたって格
    納され、第1のメモリ領域の空き部分に第2のメモリ領
    域のデータが収まる場合には、該データを第1のメモリ
    領域の空きに移し、第2のメモリ領域を解放して未使用
    の領域とするガベージ収集工程を更に備えることを特徴
    とする請求項1に記載のメモリ管理方法。
  3. 【請求項3】 前記格納すべきデータは固定長のレコー
    ドを含み、該レコードの内容に応じて、前記メモリ領域
    に格納されているデータをレコード単位で削除する削除
    工程と、前記メモリ領域に新たなデータをレコード単位
    で格納する格納工程とを更に備えることを特徴とする請
    求項1または2に記載のメモリ管理方法。
  4. 【請求項4】 前記データは、所定の形式のヘッダ部と
    ヘッダ部の値により種類が規定されるデータ部とを含ん
    でおり、ヘッダの値に応じてデータの種類を識別して、
    文字識別子とそのイメージデータの登録あるいは削除に
    用いられる文字レコードを含む文字レコードデータであ
    れば、文字レコードの内容に応じて、前記格納工程及び
    前記削除工程により文字レコードの格納あるいは削除を
    行い、文字識別子と文字の位置とを含む文字描画命令デ
    ータであれば、描画される文字のデータをページごとに
    識別可能に格納し、イメージデータであればそのまま格
    納するデータ別格納工程を更に備えることを特徴とする
    請求項3に記載のメモリ管理方法。
  5. 【請求項5】 前記データの種類がイメージデータであ
    る場合には当該イメージデータからイメージを形成し、
    文字描画命令データである場合には、当該文字描画命令
    データに含まれる文字識別子に該当する文字のイメージ
    データを前記文字レコードから獲得して、前記所定の記
    憶領域のイメージに重ねて文字画像を形成する画像形成
    工程を更に備えることを特徴とする請求項4に記載のメ
    モリ管理方法。
  6. 【請求項6】 前記画像形成工程は、文字のイメージデ
    ータを形成しおえたページごとに当該ページの文字描画
    命令が占める領域を空き領域とし、前記解放工程は、前
    記空き領域が前記メモリ領域全体におよんだなら、該メ
    モリ領域を解放することを特徴とする請求項5に記載の
    メモリ管理方法。
  7. 【請求項7】 前記画像形成工程は、ページを所定サイ
    ズに分割してなるバンドについてイメージデータを形成
    するごとに当該バンドのイメージデータが占める領域を
    空き領域とし、前記解放工程は、前記空き領域が前記メ
    モリ領域全体におよんだなら、該メモリ領域を解放する
    ことを特徴とする請求項5に記載のメモリ管理方法。
  8. 【請求項8】 印刷データが生じた場合に、所定サイズ
    単位の未使用のメモリ領域を必要数獲得する手段と、 獲得したメモリ領域に格納された印刷データを基に印刷
    出力を行う出力手段と、 前記所定サイズのメモリ領域ごとに、該領域に格納され
    たデータが不要となった場合に、そのメモリ領域を解放
    して未使用のメモリ領域とする解放手段とを備えること
    を特徴とする印刷装置。
  9. 【請求項9】 データが2つのメモリ領域にわたって格
    納され、第1のメモリ領域の空き部分に第2のメモリ領
    域のデータが収まる場合には、該データを第1のメモリ
    領域の空きに移し、第2のメモリ領域を解放して未使用
    の領域とするガベージ収集手段を更に備えることを特徴
    とする請求項8に記載の印刷装置。
  10. 【請求項10】 前記格納すべきデータは固定長のレコ
    ードを含み、該レコードの内容に応じて、前記メモリ領
    域に格納されているデータをレコード単位で削除する削
    除手段と、前記メモリ領域に新たなデータをレコード単
    位で格納する格納手段とを更に備えることを特徴とする
    請求項8または9に記載の印刷装置。
  11. 【請求項11】 前記データは、所定の形式のヘッダ部
    とヘッダ部の値により種類が規定されるデータ部とを含
    んでおり、ヘッダの値に応じてデータの種類を識別し
    て、文字識別子とそのイメージデータの登録あるいは削
    除に用いられる文字レコードを含む文字レコードデータ
    であれば、文字レコードの内容に応じて、前記格納手段
    及び前記削除手段により文字レコードの格納あるいは削
    除を行い、文字識別子と文字の位置とを含む文字描画命
    令データであれば、描画される文字のデータをページご
    とに識別可能に格納し、イメージデータであればそのま
    ま格納するデータ別格納手段を更に備えることを特徴と
    する請求項10に記載の印刷装置。
  12. 【請求項12】 前記データの種類がイメージデータで
    ある場合には当該イメージデータからイメージを形成
    し、文字描画命令データである場合には、当該文字描画
    命令データに含まれる文字識別子に該当する文字のイメ
    ージデータを前記文字レコードから獲得して、前記所定
    の記憶領域のイメージに重ねて文字画像を形成する画像
    形成手段を更に備えることを特徴とする請求項11に記
    載の印刷装置。
  13. 【請求項13】 前記画像形成手段は、文字のイメージ
    データを形成しおえたページごとに当該ページの文字描
    画命令が占める領域を空き領域とし、前記解放手段は、
    前記空き領域が前記メモリ領域全体におよんだなら、該
    メモリ領域を解放することを特徴とする請求項12に記
    載の印刷装置。
  14. 【請求項14】 前記画像形成手段は、ページを所定サ
    イズに分割してなるバンドについてイメージデータを形
    成するごとに当該バンドのイメージデータが占める領域
    を空き領域とし、前記解放手段は、前記空き領域が前記
    メモリ領域全体におよんだなら、該メモリ領域を解放す
    ることを特徴とする請求項12に記載の印刷装置。
  15. 【請求項15】 前記メモリ領域の空きサイズを出力す
    る出力手段を更に備えることを特徴とする請求項8乃至
    14のいずれかに記載の印刷装置。
  16. 【請求項16】 印刷データ中に表れる文字の識別子と
    イメージとが含まれる文字レコードを生成する文字レコ
    ード生成手段と、 印刷データ中にあらわれる文字をその識別子と位置で表
    した文字描画命令データと、文字以外の画像を表したイ
    メージデータとを生成するデータ生成手段と、 前記文字レコード及び文字描画命令データ及びイメージ
    データを印刷装置に送信する送信手段とを備える印刷制
    御装置と、 前記印刷制御装置から印刷データを受信する場合に、所
    定サイズ単位の未使用のメモリ領域を必要数獲得する手
    段と、 獲得したメモリ領域に受信した印刷データを格納して印
    刷出力を行う出力手段と、 前記所定サイズのメモリ領域ごとに、該領域に格納され
    たデータが不要となった場合に、そのメモリ領域を解放
    して未使用のメモリ領域とする解放手段とを備える印刷
    装置と、を具備することを特徴とする印刷システム。
  17. 【請求項17】 前記印刷装置は、データが2つのメモ
    リ領域にわたって格納され、第1のメモリ領域の空き部
    分に第2のメモリ領域のデータが収まる場合には、該デ
    ータを第1のメモリ領域の空きに移し、第2のメモリ領
    域を解放して未使用の領域とするガベージ収集手段を更
    に備えることを特徴とする請求項16に記載の印刷シス
    テム。
  18. 【請求項18】 受信する印刷データは固定長のレコー
    ドを含み、前記印刷装置は、該レコードの内容に応じ
    て、前記メモリ領域に格納されているデータをレコード
    単位で削除する削除手段と、前記メモリ領域に新たなデ
    ータをレコード単位で格納する格納手段とを更に備える
    ことを特徴とする請求項16または17に記載の印刷シ
    ステム。
  19. 【請求項19】 前記データは、所定の形式のヘッダ部
    とヘッダ部の値により種類が規定されるデータ部とを含
    んでおり、前記印刷装置は、ヘッダの値に応じてデータ
    の種類を識別して、文字識別子とそのイメージデータの
    登録あるいは削除に用いられる文字レコードを含む文字
    レコードデータであれば、文字レコードの内容に応じ
    て、前記格納手段及び前記削除手段により文字レコード
    の格納あるいは削除を行い、文字識別子と文字の位置と
    を含む文字描画命令データであれば、描画される文字の
    データをページごとに識別可能に格納し、イメージデー
    タであればそのまま格納するデータ別格納手段を更に備
    えることを特徴とする請求項18に記載の印刷システ
    ム。
  20. 【請求項20】 前記印刷装置は、前記データの種類が
    イメージデータである場合には当該イメージデータから
    イメージを形成し、文字描画命令データである場合に
    は、当該文字描画命令データに含まれる文字識別子に該
    当する文字のイメージデータを前記文字レコードから獲
    得して、前記所定の記憶領域のイメージに重ねて文字画
    像を形成する画像形成手段を更に備えることを特徴とす
    る請求項19に記載の印刷システム。
  21. 【請求項21】 前記画像形成手段は、文字のイメージ
    データを形成しおえたページごとに当該ページの文字描
    画命令が占める領域を空き領域とし、前記解放手段は、
    前記空き領域が前記メモリ領域全体におよんだなら、該
    メモリ領域を解放することを特徴とする請求項20に記
    載の印刷システム。
  22. 【請求項22】 前記画像形成手段は、ページを所定サ
    イズに分割してなるバンドについてイメージデータを形
    成するごとに当該バンドのイメージデータが占める領域
    を空き領域とし、前記解放手段は、前記空き領域が前記
    メモリ領域全体におよんだなら、該メモリ領域を解放す
    ることを特徴とする請求項20に記載の印刷システム。
  23. 【請求項23】 前記印刷装置は、前記メモリ領域の空
    きサイズを出力する出力手段を更に備えることを特徴と
    する請求項16乃至22のいずれかに記載の印刷システ
    ム。
  24. 【請求項24】 前記印刷制御装置は、前記印刷装置の
    メモリ領域の空きサイズを獲得する手段を更に備え、前
    記文字レコード生成手段は、文字レコードの新たな登録
    を行う場合には、獲得した空きメモリ量に応じて新たに
    登録する文字レコード数を算出し、登録される文字レコ
    ード数が所定数以下になるよう、不要な文字レコードの
    削除して必要な文字レコードを追加すべく文字レコード
    をページ単位で生成しなおすことを特徴とする請求項1
    6乃至23のいずれかに記載の印刷装置。
  25. 【請求項25】 前記印文字レコード生成手段により生
    成される文字レコードのサイズは、前記は、前記固定長
    レコードと同一であることを特徴とする請求項18に記
    載の印刷システム。
  26. 【請求項26】 印刷装置に印刷データを送信する印刷
    制御プログラムを格納するコンピュータ可読の記憶媒体
    であって、前記プログラムは、 印刷データ中に表れる文字の識別子とイメージとが含ま
    れる文字レコードを生成する文字レコード生成処理ステ
    ップと、 印刷データ中にあらわれる文字をその識別子と位置で表
    した文字描画命令データと、文字以外の画像を表したイ
    メージデータとを生成するデータ生成処理ステップと、
    前記文字レコード及び文字描画命令データ及びイメー
    ジデータを印刷装置に送信する送信処理ステップとを備
    えることを特徴とする記憶媒体。
  27. 【請求項27】 前記プログラムは、前記印刷装置のメ
    モリ領域の空きサイズを獲得する処理ステップを更に備
    え、前記文字レコード生成処理ステップは、文字レコー
    ドの新たな登録を行う場合には、獲得した空きメモリ量
    に応じて新たに登録する文字レコード数を算出し、登録
    される文字レコード数が所定数以下になるよう、不要な
    文字レコードの削除して必要な文字レコードを追加すべ
    く文字レコードをページ単位で生成しなおすことを特徴
    とする請求項26に記載の記憶媒体。
  28. 【請求項28】 印刷データを基に画像を形成する印刷
    プログラムを格納するコンピュータ可読の記憶媒体であ
    って、前記プログラムは、 印刷データを格納するために、所定サイズ単位の未使用
    のメモリ領域を必要数獲得する処理ステップと、 獲得したメモリ領域に受信した印刷データを格納して印
    刷出力を行う出力処理ステップと、 前記所定サイズのメモリ領域ごとに、該領域に格納され
    たデータが不要となった場合に、そのメモリ領域を解放
    して未使用のメモリ領域とする解放処理ステップとを備
    えることを特徴とする記憶媒体。
  29. 【請求項29】 前記プログラムは、データが2つのメ
    モリ領域にわたって格納され、第1のメモリ領域の空き
    部分に第2のメモリ領域のデータが収まる場合には、該
    データを第1のメモリ領域の空きに移し、第2のメモリ
    領域を解放して未使用の領域とするガベージ収集処理ス
    テップを更に備えることを特徴とする請求項28に記載
    の記憶媒体。
  30. 【請求項30】 印刷データは固定長のレコードを含
    み、前記プログラムは、前記レコードの内容に応じて、
    前記メモリ領域に格納されているデータをレコード単位
    で削除する削除処理ステップと、前記メモリ領域に新た
    なデータをレコード単位で格納する格納処理ステップと
    を更に備えることを特徴とする請求項28または29に
    記載の記憶媒体。
  31. 【請求項31】 前記データは、所定の形式のヘッダ部
    とヘッダ部の値により種類が規定されるデータ部とを含
    んでおり、前記プログラムは、ヘッダの値に応じてデー
    タの種類を識別して、文字識別子とそのイメージデータ
    の登録あるいは削除に用いられる文字レコードを含む文
    字レコードデータであれば、文字レコードの内容に応じ
    て、前記格納手段及び前記削除処理ステップにより文字
    レコードの格納あるいは削除を行い、文字識別子と文字
    の位置とを含む文字描画命令データであれば、描画され
    る文字のデータをページごとに識別可能に格納し、イメ
    ージデータであればそのまま格納するデータ別格納処理
    ステップを更に備えることを特徴とする請求項30に記
    載の記憶媒体。
  32. 【請求項32】 前記プログラムは、前記データの種類
    がイメージデータである場合には当該イメージデータか
    らイメージを形成し、文字描画命令データである場合に
    は、当該文字描画命令データに含まれる文字識別子に該
    当する文字のイメージデータを前記文字レコードから獲
    得して、前記所定の記憶領域のイメージに重ねて文字画
    像を形成する画像形成処理ステップを更に備えることを
    特徴とする請求項31に記載の記憶媒体。
  33. 【請求項33】 前記画像形成処理ステップは、文字の
    イメージデータを形成しおえたページごとに当該ページ
    の文字描画命令が占める領域を空き領域とし、前記解放
    処理ステップは、前記空き領域が前記メモリ領域全体に
    およんだなら、該メモリ領域を解放することを特徴とす
    る請求項32に記載の記憶媒体。
  34. 【請求項34】 前記画像形成処理ステップは、ページ
    を所定サイズに分割してなるバンドについてイメージデ
    ータを形成するごとに当該バンドのイメージデータが占
    める領域を空き領域とし、前記解放処理ステップは、前
    記空き領域が前記メモリ領域全体におよんだなら、該メ
    モリ領域を解放することを特徴とする請求項32に記載
    の記憶媒体。
  35. 【請求項35】 前記プログラムは、前記メモリ領域の
    空きサイズを出力する出力処理ステップを更に備えるこ
    とを特徴とする請求項28乃至34のいずれかに記載の
    記憶媒体。
JP9295929A 1997-10-28 1997-10-28 メモリ管理方法及びそれを用いた印刷装置と印刷システム Withdrawn JPH11129553A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP9295929A JPH11129553A (ja) 1997-10-28 1997-10-28 メモリ管理方法及びそれを用いた印刷装置と印刷システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP9295929A JPH11129553A (ja) 1997-10-28 1997-10-28 メモリ管理方法及びそれを用いた印刷装置と印刷システム

Publications (1)

Publication Number Publication Date
JPH11129553A true JPH11129553A (ja) 1999-05-18

Family

ID=17826956

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9295929A Withdrawn JPH11129553A (ja) 1997-10-28 1997-10-28 メモリ管理方法及びそれを用いた印刷装置と印刷システム

Country Status (1)

Country Link
JP (1) JPH11129553A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002321427A (ja) * 2001-04-23 2002-11-05 Canon Inc 印刷装置
CN113190469A (zh) * 2021-05-13 2021-07-30 合肥康芯威存储技术有限公司 一种存储器、数据写入方法及存储系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002321427A (ja) * 2001-04-23 2002-11-05 Canon Inc 印刷装置
CN113190469A (zh) * 2021-05-13 2021-07-30 合肥康芯威存储技术有限公司 一种存储器、数据写入方法及存储系统

Similar Documents

Publication Publication Date Title
US6407821B1 (en) Method and apparatus for printing documents including embedded print objects with an intelligent printing system
US6611347B1 (en) Print control apparatus, print control method, storage medium, and computer readable program performing a form overlay process
JP3360905B2 (ja) プリンティングシステム
US8553272B2 (en) Image processing apparatus, image processing method, program therefor, and medium storing program
US6734989B2 (en) Image output apparatus and method
US20080231885A1 (en) Direct printing method using ram storage for spooled printer files
US8228555B2 (en) Systems and methods for parallel display list rasterization
JP2817687B2 (ja) 画像形成装置
JPH10240463A (ja) 印刷システム及び印刷装置及び印刷制御方法
JP4344898B2 (ja) 画像処理装置、画像処理方法、画像形成装置
US8314949B2 (en) Distributed global object cache
JPH08212023A (ja) 印刷制御装置及び方法
JPH11129553A (ja) メモリ管理方法及びそれを用いた印刷装置と印刷システム
JPH09149221A (ja) 画像出力方法及び装置
JP2011113231A (ja) 画像形成装置
JP2002103697A (ja) 画像処理装置
JP3261307B2 (ja) 印刷装置および印刷装置のデータ処理方法
JP4038887B2 (ja) 画像処理装置およびプリンタ装置
JP3174771B2 (ja) 画像形成装置
JPH10175332A (ja) 印刷制御装置および印刷制御方法およびコンピュータが読み出し可能なプログラムを格納した記憶媒体
JPH10293669A (ja) 印刷システム及び印刷制御方法
JPH11170656A (ja) 画像出力装置及び方法
JP3037537B2 (ja) 印刷システムおよび印刷システムに使用する印刷装置
JPH091875A (ja) 画像出力装置
JPH09218763A (ja) 印刷処理システム

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20050104