(57)【要約】【課題】メモリを効率よく利用できるメモリインターフェイスユニットを提供する。【解決手段】メモリ２１に対して、固定長の入力データブロック３１の先頭にヘッダデータ４１を付加して書き込むための入力ユニット２４と、メモリ２１からデータを読み出し、ヘッダデータ４１に続いて読み出したデータを出力データ４８として出力するための出力ユニット２５とを有するメモリインターフェイスユニット２２を提供する。入力ユニット２４は、ランレングス符号化した可変長データブロック３５が固定長よりも短いときは、ヘッダデータ４１に圧縮に関する情報を含めてメモリ２１に書き込む。出力ユニット２５は、ヘッダデータの圧縮に関する情報に基づきデータを伸張し、読み出したデータまたは伸張されたデータが固定長に達したときに、それに続くデータセットをヘッダデータと判断する。【選択図】図２
2008227888.tif 000002
【特許請求の範囲】
【請求項１】
固定長の入力データブロックの先頭にヘッダデータを付加して、メモリに対し、前記メモリに先行して書き込まれたデータに続いて書き込むための入力ユニットと、
前記メモリからデータを読み出し、前記ヘッダデータに続いて読み出したデータを出力データとして出力するための出力ユニットとを有し、
前記入力ユニットは、
前記入力データブロックを可変長可逆圧縮処理して可変長データブロックを生成する圧縮ユニットと、
前記可変長データブロックが前記固定長よりも短いときは、前記ヘッダデータに前記可変長データブロックの圧縮に関する情報を含め、前記入力データブロックの代わりに、前記可変長データブロックを前記メモリに書き込むためのデータとして選択する入力選択ユニットとを含み、
前記出力ユニットは、
前記ヘッダデータに圧縮に関する情報が含まれているときは、前記ヘッダデータにより指定されたデータセット単位で、前記読み出したデータを伸張するための伸張ユニットと、
前記伸張ユニットにより伸張されたデータを、前記読み出したデータの代わりに前記出力データとして出力する出力選択ユニットと、
前記読み出したデータまたは前記伸張されたデータが前記固定長に達したときに、前記読み出したデータに続くデータセットを前記ヘッダデータと判断する判定ユニットとを含む、メモリインターフェイスユニット。
【請求項２】
請求項１において、前記圧縮ユニットは、ランレングス符号化により前記可変長データブロックを生成し、
前記伸張ユニットは、ランレングス符号化により前記読み出したデータを伸張し、
前記判定ユニットは、前記固定長および前記指定されたデータセット単位で前記ヘッダデータを判断する、メモリインターフェイスユニット。
【請求項３】
請求項１または２に記載のメモリインターフェイスユニットと、
前記メモリインターフェイスユニットにより入出力が制御されるメモリ本体とを有するメモリユニット。
【請求項４】
請求項３において、前記入力データブロックは、画像の１ラインを構成する多値の複数の画素データを含むデータブロックである、メモリユニット。
【請求項５】
請求項４に記載のメモリユニットと、
前記複数の画素データを含む画像データを取得するためのスキャナユニットと、
前記画像データを用いて画像を印刷可能なプリンタユニットと、
前記メモリユニットを介して前記画像データを前記プリンタユニットまたは外部装置に出力可能な制御ユニットとを有するシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像データなどを蓄積するのに適したメモリに関するものである。
【背景技術】
【０００２】
特許文献１には、スキャナ、プリンタおよびコピー機の３つの機能、さらにはファックスなどを含む他の機能を１台の機器で手軽に利用できるマルチファンクションプリンタ（ＭＦＰ）またはスキャナプリンタと称されるシステムが開示されている。ＭＦＰは、スキャナとプリンタが一体となり、ＭＦＰ単独で動作するので、コピー操作は容易である。そして、スキャナとしても、プリンタとしても利用できるので、面積効率も良く、経済的である。
【０００３】
特許文献２には、メモリ容量を低減するために、ラスタライズされたデータに対して、所定のブロック単位で可変長可逆処理を施し、その圧縮データを圧縮メモリに格納し、圧縮できなかった場合はそのブロックのデータを非圧縮のまま非圧縮メモリに格納することが記載されている。さらに、その圧縮処理を、ランレングス圧縮方式と差分圧縮方式の一方で行なって圧縮不可能な場合は他方で行ない、いずれかの方式で圧縮可能であれば、その圧縮データを圧縮メモリに圧縮方式を示すフラグを立てて格納することが記載されている。
【特許文献１】特開２００４−８８２７５号公報
【特許文献２】特開平９−２７０９１９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ＭＦＰなどの低コストで多機能を提供するシステムでは、低コストで大容量のメモリが要求される。データをランレングス圧縮方式などの可変長可逆圧縮処理を施してメモリに格納することにより、そのデータを格納するためのメモリ容量を低減でき、結果としてメモリの容量を増やすことができる。しかしながら、画像データなどにランレングス圧縮方式などの可逆圧縮処理を施すと、圧縮したつもりのデータ量が、オリジナルのデータ量よりもかえって増加する可能性がある。
【０００５】
このため、データを記録するためのメモリ容量を効率よく低減し、メモリの有効容量を増大するために、圧縮後の結果により、圧縮データと、非圧縮データとを選択して記録することが望ましい。また、可変長の圧縮データは、可変長でメモリに記録することにより、データを記録するためのメモリ容量を効率よく低減でき、メモリの有効容量を増大できる。特許文献２では、圧縮データを圧縮メモリに格納し、非圧縮のデータを非圧縮メモリに格納することにより、非圧縮のデータと圧縮データとを選択して記録することによりメリットを得ようとしている。特許文献２では、管理用の３２ビット固定長のホワイトマップテーブル（ＷＭＴ）と、３２ビット固定長の圧縮データテーブル（ＣＤＴ）と、６４ビット固定長の非圧縮データテーブル（ＵＤＴ）とを必要としており、可変長のメリットは活かされていない。また、これら３つのテーブルに対してデータを入出力する必要があるので、データの入出力に要する資源（回路、制御用のマイクロコードなどを含む）および処理時間はＭＦＰに採用できるレベルに達していない。
【課題を解決するための手段】
【０００６】
本発明の一態様は、固定長の入力データブロックの先頭にヘッダデータを付加して、メモリに対し、メモリに先行して書き込まれたデータに続いて書き込むための入力ユニットと、メモリからデータを読み出し、ヘッダデータに続いて読み出したデータを出力データとして出力するための出力ユニットとを有するメモリインターフェイスユニットである。入力ユニットは、入力データブロックを可変長可逆圧縮処理して可変長データブロックを生成する圧縮ユニットと、可変長データブロックが固定長よりも短いときは、ヘッダデータに可変長データブロックの圧縮に関する情報を含め、入力データブロックの代わりに、可変長データブロックをメモリに書き込むためのデータとして選択する入力選択ユニットとを含む。出力ユニットは、ヘッダデータに圧縮に関する情報が含まれているときは、ヘッダデータにより指定されたデータセット単位で、読み出したデータを伸張するための伸張ユニットと、伸張ユニットにより伸張されたデータを、読み出したデータの代わりに出力データとして出力する出力選択ユニットと、読み出したデータまたは伸張されたデータが固定長に達したときに、読み出したデータに続くデータセットをヘッダデータと判断する判定ユニットとを含む。
【０００７】
このメモリインターフェイスユニットの入力ユニットは、メモリに対して、固定長の入力データブロックと、圧縮された可変長データブロックとを、ヘッダデータを先頭につけて連続して書き込む。したがって、圧縮後の結果により、圧縮されたデータと、圧縮される前の固定長のデータとを選択して記録することできる。さらに、可変長のデータブロックを可変長のまま、固定長のデータブロックと連続し（ヘッダデータは挟むが）混在した状態で、メモリに記録することが可能である。このため、データを記録するためのメモリ容量を効率よく低減でき、メモリの有効容量を増大できる。
【０００８】
このメモリインターフェイスユニットの出力ユニットは、判定ユニットにより、読み出したデータまたは伸張されたデータが固定長に達したときに、読み出したデータに続くデータセットをヘッダデータと判断する。したがって、メモリに、可変長のデータブロックと、固定長のデータブロックとに挟まれてメモリに記録されたヘッダデータを見つけることができる。このため、メモリに、固定長のデータブロックと混在して記録された可変長のデータブロックを、固定長が判明していれば、入力ユニットとは独立して、出力ユニットは、ヘッダデータに見つけ、それに基づき伸張し、固定長のデータブロックとして出力できる。
【０００９】
本発明の他の態様は、上記のメモリインターフェイスユニットと、メモリインターフェイスユニットにより入出力が制御されるメモリ本体とを有するメモリユニットである。このメモリユニットにおいては、固定長のデータを、メモリ本体（メモリ）に、固定長のデータブロックと、圧縮済みの可変長データブロックとをヘッダデータを挟んで、連続して、混在した状態で記録することができる。また、メモリに混在している固定長データブロックと可変長データブロックとから、固定長のデータを連続して出力できる。したがって、メモリ本体の有効な記録容量を増大でき、メモリ本体に対するデータの入出力に要する資源（回路、制御用のマイクロコードなどを含む）および処理時間を削減できる。したがって、経済的で、実質的な記録容量の大きなメモリユニットを提供できる。
【００１０】
可変長可逆圧縮処理の１つは、ランレングス符号化である。圧縮ユニットは、ランレングス符号化により可変長データブロックを生成し、伸張ユニットは、ランレングス符号化により読み出したデータを伸張する。このとき、判定ユニットは、固定長および指定されたデータセット単位でヘッダデータであることを判断でき、メモリに対する最小の入出力単位、例えば、バイト単位で判定する必要がなく、判定に要する処理時間を削減できる。ランレングス符号化は、入力データブロックが、画像の１ラインを構成する多値の複数の画素データを含むデータブロックを圧縮する方法としても適している。
【００１１】
本発明のさらに異なる他の態様は、上記のメモリユニットと、複数の画素データを含む画像データを取得するためのスキャナユニットと、画像データを用いて画像を印刷可能なプリンタユニットと、メモリユニットを介して画像データをプリンタユニットまたは外部装置に出力可能な制御ユニットとを有するシステムである。このシステムにはＭＦＰが含まれる。
【発明を実施するための最良の形態】
【００１２】
図１に、本発明の一実施形態にかかるＭＦＰの概略構成を示している。このＭＦＰ１０は、ＬＡＮ２またはインターネットなどのコンピュータネットワークさらには公衆電話回線などを介してホストマシンであるパーソナルコンピュータ３と接続されている。接続可能なホストＰＣ３は１つに限定されない。ＭＦＰ１０は、原稿（文字情報、写真などの画像を含む）をスキャンして画像データを取得するスキャナユニット１１と、画像データを紙などに印刷可能なプリンタユニット１２とを含む。スキャナユニット１１およびプリンタユニット１２は、内部バス１３を介して制御セクション１４と接続されている。制御セクション１４は、ＣＰＵ１５、ＣＰＵ用のプログラムを内蔵したＲＯＭ１６、作業用のＲＡＭ１７およびネットワーク２を介してホストＰＣ３と通信可能なインターフェイスユニット１８とを含む。この制御セクション１４としての機能は、ＡＳＩＣあるいはシステムＬＳＩなどの他の形態で提供することが可能である。また、ＭＦＰ１０は、スキャナユニット１１によりライン単位で読み込んだ画像を他の機能に提供するための内部バッファとして機能するメモリユニット２０を備えている。
【００１３】
このＭＦＰ１０は、これらの資源を用いて多様な機能を提供する。その１つは、スキャナであり、スキャナユニット１１で取得した画像データをホストＰＣ３に提供する。他の機能の１つは、プリンタであり、ホストＰＣ３から提供された画像データをプリンタユニット１２によりプリントアウトする。他の機能のさらに１つは、コピーであり、スキャナユニット１１で取得した画像データをプリンタユニット１２により印刷する。さらに、ファックス、フォトプリンタなど種々の機能を含めたり、ホストＰＣ３の機能を用いて追加したりすることが可能である。
【００１４】
メモリユニット２０の概略構成を図２に示している。このメモリユニット２０は、スキャナユニット１１から、ＭＦＰ１０の他の機能に対して画像データ１９を供給するためのバッファとして機能する。メモリユニット２０は、スキャナユニット１１が独自のタイミングおよびスピードで画像データ１９を取得することを可能としたり、また、ＭＦＰ１０に含まれる他の機能との並列動作を可能としたりするために有用である。大量の画像データを蓄積するためには、メモリユニット２０のメモリ容量は大きいことが望ましい。しかしながら、スキャナユニット１１に占有されるので、経済的な観点からはメモリ容量の大きなメモリユニット２０は採用し難い。
【００１５】
図２に示すようにメモリユニット２０は、メモリ（メモリ本体）２１と、メモリ２１に対する入出力を制御するメモリインターフェイスユニット２２とを備えている。メモリインターフェイスユニット２２は、メモリコントローラ２３と、メモリコントローラ２３を介してメモリ２１にデータを書き込むための入力ユニット２４と、メモリコントローラ２３を介してメモリ２１からデータを読み出すための出力ユニット２５とを備えている。メモリ２１の一例は、ＳＤＲＡＭ、ＤＤＲＳＤＲＡＭである。メモリコントローラ２３は、リードライト制御、リードライト調停、アドレス制御、コマンド制御および入出力バッファを備えている。
【００１６】
このメモリユニット２０の入出力の対象は、スキャナユニット１１により読み取られる原稿の画像データ１９の１ラインを構成する多値、例えば２５６階調（８ビット）の複数の画素データを含むデータブロックである。メモリユニット２０は、画像の１ラインに相当する固定長のデータブロック（入力データブロック）３１を受信する。入力データブロック３１は、所定の数Ｎ（整数）の画素データセット（１画素８ビット）を含む。実際には、スキャナユニット１１からは、ライン単位で読み取られたビットストリーム３２と、垂直および水平同期信号３３と、解像度変換から指定されるライン単位の画素数（Ｎ）を示すデータ３４とが供給され、ビットストリーム３２から固定長の入力データブロック３１を切り出す。入力ユニット２４は、固定長の入力データブロック３１の先頭にヘッダデータ４１を付加して、ライトリクエスト４２と共にメモリコントローラ２３に供給し、メモリ２１にデータを書き込む。
【００１７】
出力ユニット２５は、制御セクション１４からメモリリクエスト（信号）４９を受信すると、メモリコントローラ２３に対してリードリクエスト（信号）４３を出力する。リードリクエスト４３に対してメモリコントローラ２３から供給されたデータから、出力ユニット２５は、ヘッダデータ４１に続くデータを出力データ４８として出力する。
【００１８】
図３に、入力ユニット２４のさらに詳しい構成を示している。この入力ユニット２４の基本的な機能は、固定長の入力データブロック３１の先頭にヘッダデータ４１を付加して、メモリ２１に対し、メモリ２１に先行して書き込まれたデータに続いて書き込むことである。そのため、連続した入力画素データ３２から、垂直および水平同期信号３３により、固定長のラインデータ（入力データブロック）３１を切り出す連続画素数カウンタ５１と、１ライン分の入力データブロック３１を蓄えるバッファ（ディレイバッファ）５２ａと、ヘッダを付加するためのバッファ５２ｈとを備えている。図４に、連続画素数カウンタ５１により、固定長の入力データブロック３１を切り出す機能を示している。連続画素数カウンタ５１により、バッファ５２ａに対するリードライト制御機能５３を制御し、バッファ５２ａに有効な画素データを所定の数Ｎ含む、固定長の入力データブロック３１を蓄積する。バッファ５２ｈには、固定長であることを示すデータが予めセットされており、固定長の入力データブロック３１の先頭にヘッダデータ４１が付加されてメモリコントローラ２３に出力される。
【００１９】
この連続画素数カウンタ５１は、さらに、可変長可逆圧縮処理の１つであるランレングス符号化により、固定長の入力データブロック３１を圧縮し、可変長データブロック３５を生成する機能も備えている。すなわち、連続画素数カウンタ５１は、同じ階調の連続した数画素を、画素データと連続画素数とからなる、８ビット×３（２４ビット）、もしくは８ビット×２（１６ビット）のデータセットに変換し、可変長データブロック３５を生成する。圧縮後のデータセットを２４ビットにするか、１６ビットにするかはライン単位（データブロック単位）で選択でき、ヘッダ用のバッファ５４ｈのヘッダデータ４１に書き込む。ヘッダデータ４１は、可変長データブロック３５と共にメモリ２１に記録されるので、出力ユニット２５では、ヘッダデータ４１に基づき可変長データブロック３５を可逆的に伸張できる。
【００２０】
さらに詳しくは、連続画素数カウンタ５１は、ある画素データと、それに続く画素の画素データが変わるまで画素数のカウントを続けた結果とを、１つのデータセットとして圧縮データバッファ５４ａに、リードライト制御機能５５を介して書き込む。これにより、圧縮データバッファ５４ａには、画素データと、画素数とからなる複数のデータセットを含む可変長データブロック（圧縮データブロック）３５が生成される。
【００２１】
連続画素数カウンタ５１が１ライン分のデータ（Ｎ個の画素データ）を処理すると、圧縮効率判定回路５６が可変長データブロック３５に含まれるデータのバイト数に基づき、固定長の入力データブロック３１のバイト数（Ｎバイト）と比較して圧縮効果があるか否かを判定する。可変長データブロック３５のデータ量（バイト数）が、固定長の入力データブロック３１のデータ量よりも小さければ、セレクタ５７により、可変長データブロック３５を選択してメモリ２１に記録する。すなわち、入力ユニット２４は、可変長データブロック３５が固定長Ｎよりも短いときは、ヘッダデータ４１に可変長データブロック３５の圧縮に関する情報を含め、入力データブロック３１の代わりに、可変長データブロック３５をメモリ２１に書き込むためのデータとして選択する入力選択ユニット５７を含む。可変長データブロック３５と固定長データブロック３１とが同じデータ量の場合は、メモリ２１に書き込む点ではどちらを選択しても良い。しかしながら、出力ユニット２５において、圧縮された可変長データブロック３５は伸張する必要があり、連続あるいはバーストリードが難しい。したがって、データ量が同じ場合は、固定長データブロック３１を記録することが好ましい。
【００２２】
図５に、出力ユニット２５のさらに詳しい構成を示している。この出力ユニット２５がメモリコントローラ２３を介して読み出したデータ３７には、ヘッダデータ４１と、固定長データブロック３１を構成するデータと、可変長データブロック３５を構成するデータとが含まれる。したがって、出力ユニット２５は、読み出したデータ３７を、ヘッダデータ４１としてヘッダデコーダ６１に供給するためのセレクタ６２を備えている。出力ユニット２５は、さらに、読み出したデータ３７を、固定長データブロック３１を構成するデータ（非圧縮のデータ）として、そのまま出力するための回路６３と、可変長データブロック３５を構成するデータ（圧縮データ）として伸張ユニット６４とに振り分けるセレクタ６５を備えている。出力ユニット２５は、さらに、伸張ユニット６４により伸張されたデータ３８を、読み出したデータ３７の代わりに出力データ４８として出力する出力選択ユニット（セレクタ）６６を備えている。
【００２３】
また、出力ユニット２５は、読み出したデータ３７または伸張されたデータ３８が固定長（Ｎバイト）に達したときに、読み出したデータ３７に続くデータセットをヘッダデータ４１と判断する判定ユニット６７を含む。セレクタ６２は、判定ユニット６７の判定結果にしたがって、ヘッダデータ４１を選択し、ヘッダデコーダ６１に供給する。セレクタ６５は、ヘッダデコーダ６１のデコード結果に従って、固定長のデータブロック３１を構成するデータか、可変長データブロック３５を構成するデータかを選択し、可変長データブロック３５を構成するデータであれば伸張ユニット６４に供給する。ヘッダデコーダ６１は、ヘッダデータ４１を取得すると、次のデータを読み出すためのリードリクエスト４３を出力し、ヘッダデータ４１に続くデータが可変長データブロック３５を構成するデータか、固定長データブロック３１を構成するデータかを示す信号を出力する。
【００２４】
伸張ユニット６４は、読み出したデータ３７が、画素データ３９ａか、画素数のデータ３９ｂを選択するセレクタ７１を含む。上述したように、可変長データブロック３５として記録されるときの、画素データ３９ａと、画素数３９ｂとからなるデータセット３９は、２４ビットまたは１６ビットであり、その情報はヘッダデータ４１に含まれる。したがって、セレクタ７１は、ヘッダデコーダ６１のデコード結果により、データ３９ａおよび３９ｂを選別することができる。画素データ３９ａは、その後の保持回路７２により、画素数のデータ３９ｂに含められた画素数だけ連続して、伸張されたデータ３８として出力される。保持回路７２は、自己保持用のセレクタ７２ａと、レジスタ（フリップフロップ）７２ｂとを含む。
【００２５】
画素数３９ｂは、出力側の連続画素数カウンタ７３に供給される。連続画素数カウンタ７３は、画素数３９ｂをクロックにより１つずつダウンカウントするカウンタ７３ａと、カウンタ７３ａの結果を比較する比較器７３ｂとを含む。比較器７３ｂは、カウンタ７３ａのカウント結果が０になったときにリードリクエスト４３を出力し、画素データの保持回路７２に新しい画素データ３９ａをセットし、カウンタ７３ａに新しい画素数３９ｂをセットする。
【００２６】
判定ユニット６７は、ランレングス圧縮法を用いて２５６階調の画素データを含む画像データを１ライン単位で圧縮した圧縮データ（可変長データブロック）の先頭に付加されたヘッダ情報をデータ解凍時に検出するものであり、カウンタを用いた検出方法を採用している。制御セクション１４からのメモリリクエスト４９に基づくリードリクエスト４３によりメモリ２１から最初に読み出されるデータの先頭はヘッダデータである。したがって、それに続いて読み出されたデータ３７が圧縮データか非圧縮データかは判断できる。非圧縮データならそのまま１ライン分のデータを出力し、圧縮データなら１ライン分の解凍処理を行う。判定ユニット６７は、ヘッダデータ４１を検出してから、画素データ数の出力合計値をカウントする２種類のカウンタ７５および７６を備えている。カウンタ７５は、固定長のデータブロック３１のデータを読み出すケースで、読み出されたデータ３７のバイト数を単純にカウントするカウンタである。カウンタ７５は、ダウンカウントあるいはアップカウントにより、読み出されたデータ３７の数が固定長Ｎバイトに達すると、セレクタ６２に対してヘッダデコーダ６１を選択する信号７９ａを出力する。
【００２７】
カウンタ７６は、可変長データブロック３５のデータを読み出す場合に、伸張されたデータ３８が固定長Ｎバイトに達したことを判断するためのカウンタである。このため、カウンタ７６は、画素数３９ｂを加算して合計を演算するラインカウンタ７６ａと、ラインカウンタ７６ａの合計値（バイト）を、固定長Ｎバイトから減算する回路７６ｂと、減算結果を比較する比較器７６ｃとを含む。比較器７６ｃは比較結果が０であると、伸張されたデータ３８が固定長Ｎバイトに達したと判断し、セレクタ６２に対してヘッダデコーダ６１を選択する信号７９ｂを出力し、さらに、ラインカウンタ７６ａと、カウンタ７５とをリセットする。
【００２８】
判定ユニット６７は、固定長のデータをカウントすることにより生成された信号７９ａと、可変長のデータをカウントすることにより生成された信号７９ｂとを選択するセレクタ７７を備えており、直前のヘッダデータ４１のデコード結果により、いずれかを選択しセレクタ６２を制御する。これにより、固定長のデータブロック３１を構成するためのデータと、可変長のデータブロック３５を構成するためのデータとがメモリ２１に混在して記録されている場合でも、次のデータブロックのヘッダデータ４１を確実に見つけることができ、次のデータブロックを確実に再生し、出力データ４８として出力できる。
【００２９】
この方式であると、入力ユニット２４においてメモリ２１に記録された固定長Ｎバイトの数値が、出力ユニット２５に所定のタイミングで伝達されることにより、確実にヘッダデータ４１を発見でき、圧縮および非圧縮のデータを再現して出力できる。したがって、途中でスキャニングしている画像の解像度が変わり、固定長Ｎバイトの数値が変わった場合でも、その画像データを再生できる。すなわち、ある解像度変換後のデータブロック（１ライン）３１の画素数データとラインカウンタの値が、任意の画素データの連続出力が終わったある時点で必ず一致する。この一致した次の８ビットのデータが次ラインのヘッダとして容易に検出することが可能となる。
【００３０】
図６に、このメモリユニット２０のメモリ２１に画像データが記録された一例を模式的に示している。ヘッダデータ４１に続き固定長の１ライン分のデータブロック３１と、ヘッダデータ４１に続き可変長の１ライン分のデータブロック３５とが、連続して、混在した状態で、メモリ２１に記録することができる。したがって、圧縮することが有効なデータのみを圧縮してメモリ２１に格納することができ、さらに、固定長の非圧縮のデータと、可変長の圧縮されたデータとを、効率よく、無駄が生じないように、メモリ２１に格納できる。このため、メモリ２１の実質的なメモリ容量を、効率良く向上することができる。
【００３１】
さらに、このメモリユニット２０では、メモリインターフェイスユニット２２によりメモリ２１がエンカプセルされており、メモリユニット２０のユーザに対しては、固定長のデータの入出力をサービスする。したがって、ユーザは、メモリユニット２０をメモリ本体２１のメモリ容量よりも、期待される実効的なメモリ容量が大きなメモリとして利用することが可能である。
【００３２】
なお、上記では、可変長可逆圧縮処理の好適な例としてランレングス符号化を採用しているが、差分圧縮方式などの他の可変長可逆符号方式を併用することも可能である。また、このメモリユニットは、ＭＦＰに限らず、スキャナ、プリンタなどの他の機器および用途において、画像データを含む、連続したデータをバッファリングするためのメモリユニットとして使用できる。
【図面の簡単な説明】
【００３３】
【図１】本発明の一実施形態にかかるＭＦＰの概略構成を示す図。
【図２】メモリユニットの概略構成を示す図。
【図３】入力ユニットの概略構成を示す図。
【図４】連続画素数カウンタの１つの機能を示す図。
【図５】出力ユニットの概略構成を示す図。
【図６】メモリの格納状態の一例を示す図。
【符号の説明】
【００３４】
１０  ＭＦＰ
２０  メモリユニット、  ２１  メモリ（メモリ本体）
２２  メモリインターフェイスユニット
２３  メモリコントローラ、  ２４  入力ユニット、  ２５  出力ユニット
【図１】
2008227888.tif 000003
【図２】
2008227888.tif 000004
【図３】
2008227888.tif 000005
【図４】
2008227888.tif 000006
【図５】
2008227888.tif 000007
【図６】
2008227888.tif 000008