(57)【要約】【課題】画像形成装置のメモリの寿命の短命化を抑制する。【解決手段】画像データから２値データを生成するラスタライザ１０２と、再書込み回数が制限される記憶部１０９と、２値データをｎビット毎に分割して、分割されたｎビットの２値データが、２ｎ種類に組み合わされたビットパタンのいずれに適合するかを特定し、特定したビットパタンの適合数を計数する計数部１０４と、適合数を計数したビットパタンのうち、互いに反転関係にある第１、第２のビットパタンの適合数を比較する比較部１０５と、比較の結果に基づいて、ｎビットの２値データを反転する反転部１０７と、反転したｎビットの２値データと、その反転を示す反転フラグとを記憶部１０９に書き込む書込部１０８と、記憶部１０９から、ｎビットの２値データおよび反転フラグを読み出し、反転部１０７に、反転したｎビットの２値データを復元させる読出部１１０と、を備える。【選択図】図１
2013090145.tif 000002
【特許請求の範囲】
【請求項１】
画像データから２値データを生成するラスタライザと、
再書込み回数が制限され、ｎ（ｎは自然数）ビットのデータ毎に記憶するメモリと、
前記２値データをｎビット毎に分割して、前記分割されたｎビットの２値データが、２ｎ種類に組み合わされたビットパタンのいずれに適合するかを特定し、前記分割されたｎビットの２値データと、前記特定したビットパタンとが適合する適合数を計数する計数部と、
前記適合数を計数したビットパタンのうち、第１のビットパタンの適合数と、前記第１のビットパタンと反転関係にある第２のビットパタンの適合数とを比較する比較部と、
前記比較の結果に基づいて、ｎビットの２値データを反転する反転部と、
前記反転したｎビットの２値データと、反転したことを示す反転フラグとを前記メモリに書き込む書込部と、
前記メモリから、前記ｎビットの２値データおよび前記反転フラグを読み出し、前記反転部に、反転したｎビットの２値データを復元させる読出部と、
前記復元したｎビットの２値データを用いて、画像を形成する画像形成部と、を備える
ことを特徴とする画像形成装置。
【請求項２】
前記書込部は、前記２値データが所定の条件を満たす場合、前記条件を満たす２値データを構成する１ビットの２値データをｎビットの２値データとして取り扱うことができるように２値データの書込アドレスを変更し、前記１ビットの２値データを前記メモリに書き込む
ことを特徴とする請求項１に記載の画像形成装置。
【請求項３】
前記メモリへ注入する電子の数について、前記第１のビットパタンを構成するｎビットの２値データを前記メモリに記憶するために必要な電子の数のほうが、前記第２のビットパタンを構成するｎビットの２値データを前記メモリに記憶するために必要な電子の数よりも多い場合において、
前記第１のビットパタンの適合数が前記第２のビットパタンの適合数よりも多いとき、前記反転部は、前記第１のビットパタンを構成するｎビットの２値データを反転する
ことを特徴とする請求項１または請求項２に記載の画像形成装置。
【請求項４】
２値データを、ｎ（ｎは自然数）ビットのデータ毎に記憶するメモリを備える画像形成装置において、
前記ｎビットの２値データの１つである第１のデータを前記メモリに記憶するために必要な電子の数のほうが、前記第１のデータと反転関係にある第２のデータを前記メモリに記憶するために必要な電子の数よりも多い場合において、
前記画像形成装置の制御部は、
前記第１のデータの数と、前記第２のデータの数とを計数する制御と、
前記第１のデータの数が前記第２のデータの数よりも多い場合、前記第１のデータを反転して前記メモリに記憶する制御と、
前記反転した第１のデータを再度反転して前記メモリから読み出す制御と、を実行する
ことを特徴とする画像形成装置。
【請求項５】
再書込み回数が制限され、ｎ（ｎは自然数）ビットのデータを毎に記憶するメモリに接続された制御部に実行させるメモリ格納プログラムにおいて、
前記制御部を、
画像データから２値データを生成するラスタライザと、
前記２値データをｎビット毎に分割して、前記分割されたｎビットの２値データが、２ｎ種類に組み合わされたビットパタンのいずれに適合するかを特定し、前記分割されたｎビットの２値データと、前記特定したビットパタンとが適合する適合数を計数する計数部と、
前記適合数を計数したビットパタンのうち、第１のビットパタンの適合数と、前記第１のビットパタンと反転関係にある第２のビットパタンの適合数とを比較する比較部と、
前記比較の結果に基づいて、ｎビットの２値データを反転する反転部と、
前記反転したｎビットの２値データと、反転したことを示す反転フラグとを前記メモリに書き込む書込部と、
前記メモリから、前記ｎビットの２値データおよび前記反転フラグを読み出し、前記反転部に、反転したｎビットの２値データを復元させる読出部と、して機能させる
ことを特徴とするメモリ格納プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像形成装置における画像データの記憶の技術に関する。
【背景技術】
【０００２】
近年の画像形成装置は、画像印刷の際に実行される認証印刷機能を有している。この「認証印刷機能」とは、画像印刷を行う者の正当性を確認してから画像印刷を実行する機能である。具体的には、ＰＣは、まず、ユーザが予め個人認証用コードと画像データとを画像形成装置に送信しておく。次に、画像形成装置は、印刷出力する際に画像出力要求者に対して個人認証用コードを入力するように要求する。画像形成装置は、その者から入力されたコードと予め送信された個人認証用コードとを比較し、合致していると認証された場合に画像印刷を実行する。
【０００３】
この認証印刷機能を有する画像形成装置は、認証印刷用の画像データを受信した際に予めその画像データをラスタライズしてメモリに格納するといった形態のものがある。この形態の画像形成装置は、認証完了時に画像印刷を直ちに実行できる。
【０００４】
特許文献１には、受信した画像データをラスタライズしてメモリに格納しておき、所定の時間内に画像印刷を行わないと、メモリに格納した、ラスタライズされた画像データを消去する技術が開示されている。この技術により、メモリの効率利用が実現される。しかし、その結果として、メモリに対する、画像データなどのデータの書き込みおよび消去は、頻繁に発生する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００４−３５００２４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
現在、画像形成装置のデータ格納用メモリとして、大容量のNAND Flash ROM（Read Only Memory）（「ＮＡＮＤフラッシュメモリ」と称する場合がある）が用いられている。
しかしながら、前記したような、データの書き込みおよび消去を頻繁に行うことで、NAND Flash ROM 自体の寿命が短くなる、といった問題がある。
【０００７】
そこで、このような事情を鑑みて、本発明は、画像データを記憶するメモリの寿命の短命化を抑制することを目的とする。
【課題を解決するための手段】
【０００８】
前記目的を達成するため、本発明の画像形成装置は、
画像データから２値データを生成するラスタライザと、
再書込み回数が制限され、ｎ（ｎは自然数）ビットのデータ毎に記憶するメモリと、
前記２値データをｎビット毎に分割して、前記分割されたｎビットの２値データが、２ｎ種類に組み合わされたビットパタンのいずれに適合するかを特定し、前記分割されたｎビットの２値データと、前記特定したビットパタンとが適合する適合数を計数する計数部と、
前記適合数を計数したビットパタンのうち、第１のビットパタンの適合数と、前記第１のビットパタンと反転関係にある第２のビットパタンの適合数とを比較する比較部と、
前記比較の結果に基づいて、ｎビットの２値データを反転する反転部と、
前記反転したｎビットの２値データと、反転したことを示す反転フラグとを前記メモリに書き込む書込部と、
前記メモリから、前記ｎビットの２値データおよび前記反転フラグを読み出し、前記反転部に、反転したｎビットの２値データを復元させる読出部と、
前記復元したｎビットの２値データを用いて、画像を形成する画像形成部と、を備えることを特徴とする。
【０００９】
つまり、反転関係にあるｎビットの２値データの数を比較して、メモリに多くの電子数を必要とする２値データの数のほうが多い場合には、その２値データを反転させてメモリに記憶させ、メモリからその２値データを読み出すときには再度反転する。
詳細は、後記する。
【発明の効果】
【００１０】
本発明によれば、画像データを記憶するメモリの寿命の短命化を抑制することができる。
【図面の簡単な説明】
【００１１】
【図１】第１の実施形態の画像形成装置１の構成を示すブロック図である。
【図２】ＮＡＮＤフラッシュメモリがデータを記憶する様子を模式的に示す図である。
【図３】格納ビット数とビットパタンとの対応関係を示す図である。
【図４】計数部１０４、比較部１０５、反転部１０７が備える機能を説明するための具体例を示す図である。
【図５】ビットパタンの適合数を計数する処理を示すフローチャートである。
【図６】反転関係にあるビットパタン適合数の大小関係を比較する処理を示すフローチャートである。
【図７】記憶部１０９への書込処理を示すフローチャートである。
【図８】記憶部１０９からの読出処理を示すフローチャートである。
【図９】第２の実施形態の画像形成装置１の構成を示すブロック図である。
【図１０】記憶部１０９への書込処理を示すフローチャートである。
【図１１】記憶部１０９からの読出処理を示すフローチャートである。
【発明を実施するための形態】
【００１２】
次に、本発明を実施するための形態（以下、「実施形態」という。）について、適宜図面を参照しながら説明する。
【００１３】
≪第１の実施形態≫
〔構成〕
図１は、第１の実施形態の画像形成装置１の構成を示すブロック図である。この画像形成装置１は、Ｉ／Ｆ部１００、制御部Ｃ、画像処理部１０１、ラスタライザ１０２、画像形成部１０３、計数部１０４、比較部１０５、フラグレジスタ１０６、反転部１０７、書込部１０８、記憶部１０９、および読出部１１０といった構成要素（部位）を備える。次に、これらの構成要素の機能概要を説明する。
【００１４】
Ｉ／Ｆ部１００は、外部ホストやスキャナなどの読み取り装置から画像データを受信する部位である。Ｉ／Ｆ部１００は、例えば、ＬＡＮ（Local Area Network）、ＵＳＢ（Universal Serial Bus）、ＬＶＤＳ（Low-Voltage Differential Signaling）などである。
【００１５】
制御部Ｃは、画像形成装置１の画像処理を統括する部位である。制御部Ｃは、例えば、画像処理用のＣＰＵ（Central Processing Unit）、インストラクション格納用のＲＯＭ（Read Only Memory）、画像処理用の記憶領域となるＲＡＭ（Random Access Memory）といった構成を備え、周辺の集積回路と通信可能なＡＳＩＣ（Application Specific Integrated Circuit）である。
【００１６】
画像処理部１０１は、Ｉ／Ｆ部１００から画像データを受信すると、画像データの伸張処理、コマンド解析、カラーマッチングなどの画像処理を実行し、そのような画像処理をした画像データをラスタライザ１０２に送信する。また、画像処理部１０１は、画像形成部１０３が画像形成を行う際、各色の画像形成用データに変換し、画像形成部１０３に所定のタイミングでその画像形成用データをバンド毎に送信する。
【００１７】
ラスタライザ１０２は、画像形成を行うために、画像処理部１０１が画像処理した画像データの２値化処理を行い、２値データを生成する部位である。説明の便宜上、２値データを、単に「データ」と称する場合がある。よって、以降の説明において、特段の事情がない限り、単に「データ」と記載した場合には、２値データを意味する。
【００１８】
画像形成部１０３は、画像処理部１０１から受信する各色の画像形成用データに基づいて、電子写真方式の露光、現像、転写、定着などといったプロセスを通して画像を形成する部位である。画像形成部１０３は、例えば、電子写真方式で印字を行う機構である。
【００１９】
計数部１０４は、ラスタライザ１０２が生成した２値データ内に、所定のビットパタンの個数を計数する部位である。前記所定のビットパタンは、一度に扱うビット数に応じて複数種類存在する。例えば、“０”と“１”の２値があって、３ビットの場合、８（＝２３）種類存在する。計数部１０４は、ビットパタンの種類ごとにその個数を計数する。説明の便宜上、ビットパタンを、単に「パタン」と称する場合がある。また、各パタンの個数を「適合数」と称する場合がある。
【００２０】
比較部１０５は、計数部１０４が計数した、あるパタンの適合数と、別のパタンの適合数とを比較する部位である。比較対象となるパタンを選ぶ方法については、後記する。
【００２１】
フラグレジスタ１０６は、記憶部１０９へのデータの書き込みの際に、比較部１０５が比較した比較結果に基づいて定まる値を持つ反転フラグを一時的に格納する部位である。また、フラグレジスタ１０６は、記憶部１０９からのデータの読み出しの際に、データを復元するために、書き込み時に記憶部１０９に記憶した反転フラグの値を一時的に格納しておく部位でもある。この反転フラグは、データの反転の有無を示すが、詳細は、後記する。なお、データの復元とは、反転したデータを元に戻すことをいうが、詳細は、後記する。
【００２２】
反転部１０７は、フラグレジスタ１０６が格納する反転フラグに基づいて、データの反転および復元を行う部位である。
【００２３】
書込部１０８は、反転部１０７による処理を施したデータおよびフラグレジスタ１０６が格納する反転フラグを記憶部１０９に書き込む部位である。書込部１０８は、例えば、ＬＳＩ（Large Scale Integration）である。
【００２４】
記憶部１０９は、データおよび反転フラグの記憶を行う部位であり、再書込み回数が制限されているメモリである。本実施形態では、前記メモリは、ＮＡＮＤフラッシュメモリである。
【００２５】
読出部１１０は、記憶部１０９が記憶するデータおよび反転フラグを読み出し、反転部１０７にデータおよび反転フラグを送信する部位である。読出部１１０は、例えば、ＬＳＩ（Large Scale Integration）である。
【００２６】
画像形成装置１の構成要素のうち、Ｉ／Ｆ部１００、制御部Ｃ、画像処理部１０１、画像形成部１０３、書込部１０８、記憶部１０９および読出部１１０は、すでに述べたようなハードウェアとして実装する。一方、前記構成要素のうち、ラスタライザ１０２、計数部１０４、比較部１０５、フラグレジスタ１０６、および反転部１０７は、ハードウェアとプログラム（メモリ格納プログラムを含む）とが協働することで、実現される。
【００２７】
なお、画像処理部１０１、ラスタライザ１０２、画像形成部１０３、計数部１０４、比較部１０５、フラグレジスタ１０６、反転部１０７は、制御部Ｃの一部として機能する。
また、フラグレジスタ１０６は、反転部１０７の一部として機能する。
【００２８】
記憶部１０９としてのＮＡＮＤフラッシュメモリについて詳細に説明する。
図２は、ＮＡＮＤフラッシュメモリがデータを記憶する様子を模式的に示す図である。ＮＡＮＤフラッシュメモリは、所定単位の情報を蓄積するのに必要な回路が集積した構成を備える。前記回路は、「セル」とよばれる。それぞれのセルは、例えば、シリコン基板上にｐ型半導体層が積層され、ソースおよびドレインとなる２つのｎ型半導体部分がｐ型半導体層を挟むように構成されている。そのｐ型半導体層の表面には、トンネル酸化膜（単に「酸化膜」と称する場合がある）を持ち、ポリシリコン製であるフローティングゲート（ＦＧ：Floating Gate）が積層されている。また、フローティングゲートの表面には、コントロールゲート（Control Gate）が積層されている。
【００２９】
フローティングゲートは、絶縁体中に存在する電極として機能する。データの書き込みや読み出しのときには、このフローティングゲートに電子が注入され、データの消去のときには、このフローティングゲートから電子が抜き取られる。フローティングゲート内に注入された電子は、絶縁体により保持されるため、ＮＡＮＤフラッシュメモリは、電源電力を供給することなく、長期間に亘ってデータを記憶することができる不揮発性メモリとして機能する。
【００３０】
コントロールゲートは、所定の電圧を閾値電圧Ｖｔｈとしてかけることでセルに電流を流す電極として機能する。この閾値電圧Ｖｔｈは、複数設定することができ、フローティングゲートに保持される電子の状態と、設定した閾値電圧Ｖｔｈとを対応付けることができる。前記「電子の状態」とは、例えば、１つのセルに注入される電子の個数である。よって、セルにかける閾値電圧Ｖｔｈを調整して、セルに注入される電子の個数を特定し、セルが記憶するデータの内容を定めることができる。
一般的には、セルにかける閾値電圧が高いほど、セルに注入される電子の個数は多くなる。ＮＡＮＤフラッシュメモリの設計者は、所望の値を持つデータをセルに注入するのに必要な大きさの閾値電圧を設定し、相当数の電子がそのセルに注入されるように設計する。
【００３１】
ＮＡＮＤフラッシュメモリの設計上、１つのセルに注入される電子の個数を任意に設定することができる。よって、１つのセルに割り当てる情報量としてのビット数を設定することができ、データのビットパタンに応じた個数の電子をセルに注入することができる。本実施形態では、セルに設定するビット数を「格納ビット数」と称する。また、セルに電子を注入することで、セルが記憶することになる（また記憶することが事実上決定している）データを「セルデータ」と称する。また、意味が明らかであれば、セルデータに関する説明をする際、セルデータを単にデータと称する。格納ビット数をｎ（ｎは自然数）とした場合、セルデータの値によって示されるビットパタンについて以下のことがいえる。
【００３２】
（１）ｎ＝１のとき、セルデータが“０”と、“１”となる２種類のビットパタンが存在する。このとき、セルに注入される電子の個数は、例えば、０個または７個となる。
（２）ｎ＝２のとき、セルデータが“００”と、“０１”と、“１０”と、“１１”となる４種類のビットパタンが存在する。このとき、セルに注入される電子の個数は、例えば、０個、３個、５個または７個となる。
（３）ｎ＝３のとき、セルデータが“０００”と、“００１”と、“０１０”と、“０１１”と、“１００”と、“１０１”と、“１１０”と、“１１１”となる８種類のビットパタンが存在する。このとき、セルに注入される電子の個数は、例えば、０個〜７個となる。
以降、格納ビット数ｎにつき、２ｎ種類のビットパタンが存在する。
【００３３】
本実施形態では、図２に示すとおり、セルデータの値が小さいほど、フローティングゲートに保持される電子の数が多くなる、という取り決めを定める。また、閾値電圧Ｖｔｈが高くなるほど、フローティングゲートに保持される電子の数が多くなる、という取り決めを定める。
【００３４】
よって、この取り決めによれば、
（１）ｎ＝１のとき、フローティングゲートに保持される電子の数が０であるとき、セルデータは“１”であり、閾値電圧Ｖｔｈは相対的に低い。また、フローティングゲートに保持される電子の数が７であるとき、セルデータは“０”であり、閾値電圧Ｖｔｈは相対的に高い。
（２）ｎ＝２のとき、フローティングゲートに保持される電子の数が０であるとき、セルデータは“１１”であり、閾値電圧Ｖｔｈは最低である。フローティングゲートに保持される電子の数が７であるとき、セルデータは“００”であり、閾値電圧Ｖｔｈは最高である。
（３）ｎ＝３のとき、フローティングゲートに保持される電子の数が０であるとき、セルデータは“１１１”であり、閾値電圧Ｖｔｈは最低である。フローティングゲートに保持される電子の数が７であるとき、セルデータは“０００”であり、閾値電圧Ｖｔｈは最高である。
【００３５】
ＮＡＮＤフラッシュメモリは、フローティングゲートにおける電子の注入および抜取を行うたびに酸化膜の劣化が進む。このため、データの保持能力が徐々に低下し、ＮＡＮＤフラッシュメモリの寿命が短命化する。本実施形態では、この短命化を抑制するために、相対的に多くの電子をフローティングゲートに注入するセルデータを記憶部１０９に書き込む際、その注入する電子の数を少なくする手法をとる。
【００３６】
以上の説明を踏まえ、計数部１０４、比較部１０５、フラグレジスタ１０６、反転部１０７、書込部１０８、読出部１１０について詳細に説明する。
【００３７】
計数部１０４は、セルに設定した格納ビット数ｎの値に応じて、２値データ内の所定のビットパタンの適合数を計数する。計数部１０４による計数の対象となるビットパタンは、２ｎ種類存在する。
図３は、格納ビット数とビットパタンとの対応関係を示す図である。図３に図示されている図形や線などは、図２に図示したものに倣っているため、適宜図２も参照する。
ｎ＝１の場合において、セルデータ“０”、“１”を構成するビットパタンを、それぞれ「Ｐ１パタン」「Ｐ２パタン」と称する。
ｎ＝２の場合において、セルデータ“００”、“０１”、“１０”、“１１”、を構成するビットパタンを、それぞれ「Ｐ１パタン」、「Ｐ２パタン」、「Ｐ３パタン」、「Ｐ４パタン」と称する。
ｎ＝３の場合において、セルデータ“０００”、“００１”、“０１０”、“０１１”、“１００”、“１０１”、“１１０”、“１１１”、を構成するビットパタンを、それぞれ「Ｐ１パタン」、「Ｐ２パタン」、「Ｐ３パタン」、「Ｐ４パタン」、「Ｐ５パタン」、「Ｐ６パタン」、「Ｐ７パタン」、「Ｐ８パタン」と称する。
格納ビット数ｎについては、Ｐ１パタン〜Ｐ２ｎパタンといった２ｎ種類のビットパタンの組み合わせが存在する。計数部１０４は、Ｐ１パタン〜Ｐ２ｎパタンそれぞれの適合数を決定する。
【００３８】
図４は、計数部１０４、比較部１０５、反転部１０７が備える機能を説明するための具体例を示す図である。
図４を参照して、計数部１０４がビットパタンの適合数を決定する具体例について説明する。
図４に示す「計数対象データ」は、ラスタライザ１０３が生成した２値データの一部であって、“０”と“１”との組み合わせからなる３０ビットのデータである。また、図４において、格納ビット数ｎは、ｎ＝２とする。
なお、本実施形態では、ラスタライザ１０３が生成した２値データは、所定の大きさのバンド毎に分割して処理されることとする。したがって、図４において、３０ビット以上ある２値データは、計数対象データとして、３０ビット毎に分割される。
【００３９】
まず、計数対象データを、先頭から２ビットごとに分割する。分割した計数対象データを「元データ」と称する。元データには、１５個のセルデータが存在する。次に、１５個のセルデータがＰ１パタン〜Ｐ４パタンのいずれに該当するか特定し、Ｐ１パタン〜Ｐ４パタンの適合数Ｅ（１）〜Ｅ（４）を計数する。図４によれば、Ｐ１パタンの適合数Ｅ（１）＝５、Ｐ２パタンの適合数Ｅ（２）＝３、Ｐ３パタンの適合数Ｅ（３）＝３、Ｐ４パタンの適合数Ｅ（４）＝４である。
【００４０】
比較部１０５は、格納ビット数ｎに応じたセルデータの集合において、互いに反転関係にあるビットパタン（第１のビットパタン、第２のビットパタン）の適合数を比較する。ビットパタンの「反転関係」とは、片方のビットパタンに含まれる“０”を“１”に変え、“１”を“０”に変えたとき、もう片方のビットパタンに一致する関係であり、つまり、１の補数関係をいう。ｎ＝２の場合、セルデータが“００”となるＰ１パタンと、“１１”となるＰ４パタンが反転関係にある。また、セルデータが“０１”となるＰ２パタンと、“１０”となるＰ３パタンとが反転関係にある。また、説明の便宜上、ビットパタンに反転関係がある場合、そのビットパタンを持つセルデータ（第１のデータ、第２のデータ）について、セルデータの反転関係が存在する、といった表現をする場合がある。
【００４１】
比較部１０５による比較は、２ｎ−１回（ｎ＝２の場合、２回）行われる。図４によれば、
比較部１０５は、Ｐ１パタンの適合数Ｅ（１）と、Ｐ４パタンの適合数Ｅ（４）とを比較し、Ｅ（１）＞Ｅ（４）という大小関係を、関係式が「真」となる比較結果として出力する。また、比較部１０５は、Ｐ２パタンの適合数Ｅ（２）と、Ｐ３パタンの適合数Ｅ（３）とを比較し、Ｅ（２）＝Ｅ（３）（Ｅ（２）＞Ｅ（３）ではない）という大小関係を、関係式が「偽」となる比較結果として出力する。出力した比較結果は、フラグレジスタ１０６に送信される。
【００４２】
前記した取り決めに従えば、一般的には、反転関係にあるビットパタンのうち、セルに注入される電子の数がより多いビットパタンの適合数Ｅ（Ｌ）（Ｌ＝１、・・・、２ｎ−１）が、セルに注入される電子の数がより少ないビットパタンの適合数Ｅ（２ｎ−Ｌ＋１）よりも多い場合、比較部１０５は、関係式が真となる比較結果を出力し、そうでない場合、関係式が偽となる比較結果を出力する。
【００４３】
フラグレジスタ１０６は、比較部１０５が出力した比較結果を反転フラグとして一時的に格納する。フラグレジスタ１０６は、比較結果の関係式が真である場合、反転フラグを「１」にセットする。また、比較結果の関係式が偽である場合、反転フラグを「０」にセットする。反転フラグが「１」であることは、セルに注入される電子の数がより多いビットパタンを、反転関係にあり、セルに注入される電子の数がより少ないビットパタンに変更することを意味する。また、反転フラグが「０」であることは、前記変更をしないことを意味する。格納ビット数がｎである場合、反転フラグは２ｎ−１個存在する。したがって、反転フラグは、２ｎ−１ビットの情報量を持つ情報として実現される。
【００４４】
反転フラグは、前記取り決めに従い、セルに注入される電子の数が多いＰ１パタン〜Ｐ２ｎ−１パタンにそれぞれ割り当てる。各Ｐ１パタン〜Ｐ２ｎ−１パタンに割り当てた反転フラグをそれぞれ、Ｆ（１）〜Ｆ（２ｎ−１）と称する。図４によれば、Ｅ（１）＞Ｅ（４）であるため、Ｐ１パタンに割り当てた反転フラグＦ（１）は、Ｆ（１）＝１となる。また、Ｅ（２）＞Ｅ（３）ではないため、Ｐ２パタンに割り当てた反転フラグＦ（２）は、Ｆ（２）＝０となる。また、説明の便宜上、反転フラグＦ（１）とＦ（２）とを合わせたものを、Ｆ（１：２）と表記する。Ｆ（１）＝１、Ｆ（２）＝０の場合、Ｆ（１：２）＝（１、０）となる。Ｆ（１：２）は４ビットの情報量を持つ情報として実現される。また、説明の便宜上、反転フラグの符号を、単に「Ｆ」と表記する場合もある。
【００４５】
なお、反転フラグは、図４に示す計数対象データ毎に添加される。つまり、ラスタライザ１０３が生成した２値データを分割して生成したバンドそれぞれに対して反転フラグが添加される。よって、図４によれば、反転フラグは、２ビットの情報量を持つ。反転フラグは、反転部１０７に送信される。
【００４６】
反転部１０７は、反転フラグに基づいてセルデータを反転する。例えば、
（ａ）ｎ＝１のとき、Ｆ（１）＝１であれば、セルデータ“０”を“１”に反転する。
（ｂ）ｎ＝２のとき、Ｆ（１）＝１であれば、セルデータ“００”を“１１”に反転する。また、Ｆ（２）＝１であれば、セルデータ“０１”を“１０”に反転する。
（ｃ）ｎ＝３のとき、Ｆ（１）＝１であれば、セルデータ“０００”を“１１１”に反転する。また、Ｆ（２）＝１であれば、セルデータ“００１”を“１１０”に反転する。また、Ｆ（３）＝１であれば、セルデータ“０１０”を“１０１”に反転する。また、Ｆ（４）＝１であれば、セルデータ“０１１”を“１００”に反転する。
【００４７】
反転フラグの値が「０」となるセルデータについては反転しない。図４によれば、１５個のビットパタンを持つ元データに対して、Ｆ（１：２）＝（１、０）に従うと、“００”を“１１”に反転するが、“０１”を“１０”に反転しない。その結果、図４に示す「反転データ」が生成される。この反転データは、書込部１０８に送信される。また、反転フラグも、書込部１０８に送信される。
【００４８】
書込部１０８は、反転部１０７の処理を施したデータおよび反転フラグを記憶部１０９に書き込む。なお、図２に図示されているセルの模式図において、説明の便宜上、反転フラグの状態を示す電子の図示は省略しているが、フローティングゲートには、そのような電子も注入される。
【００４９】
読出部１１０は、画像形成のためのデータの読み出し時に、記憶部１０９が記憶するデータおよび反転フラグを反転部１０７に送信する。反転部１０７は、反転フラグに基づいて読み出したデータを反転し、読み出したデータを復元する。図４によれば、反転部１０７は、反転データを元データに復元する。
【００５０】
〔処理〕
次に、本実施形態の画像形成装置１の処理について説明する。この処理は、画像形成装置１の主要な構成要素による動作として実現される。
まず、画像形成装置１の電源が投入されると、制御部Ｃは画像形成装置１の各部位の初期化を行い、画像形成装置１が、認証印刷用の画像データの受信が可能な待機状態にされる。この初期化時に、制御部Ｃは記憶部１０９のＩＤ（Identifier）を読み込み、そのＩＤで識別される記憶部１０９を構成するセルの設計上設定された格納ビット数ｎを取得する。格納ビット数ｎは、制御部Ｃを構成するＣＰＵの内部にあるレジスタに保持される。
【００５１】
その後、前記待機状態にて画像形成装置１が認証印刷用の画像データを受信すると、画像データは、Ｉ／Ｆ部１００経由で制御部Ｃ内のＲＡＭに一時格納される。次に、画像処理部１０１は、ＲＡＭに一時格納した画像データに画像処理を施し、画像処理を施した画像データをラスタライザ１０２に送信する。ラスタライザ１０２は、受信した画像データを２値化し、計数部１０４と反転部１０７とに２値データを送信する。
【００５２】
図５は、ビットパタンの適合数を計数する処理を示すフローチャートである。
まず、ステップＳ５０１において、計数部１０４は、制御部Ｃから記憶部１０９の格納ビット数ｎを取得するとともに、ラスタライザ１０２から計数対象となる２値データを取得する。この２値データの総情報量はｋビットであるとし、２値データの総数ｋとして取り扱う。２値データは、所定の大きさのバンド毎に分割され、計数対象データとして扱う（図４参照）。計数部１０４は、計数対象データのアドレスＡを、Ａ＝０（先頭のアドレス）にリセットするとともに、２ｎ個分のビットパタン適合数Ｅ（１）〜Ｅ（２ｎ）をすべて、Ｅ（１）〜Ｅ（２ｎ）＝０にリセットする。ステップＳ５０１の後、ステップＳ５０２に進む。
【００５３】
ステップＳ５０２において、計数部１０４は、計数対象データにおいて、アドレスＡから（Ａ＋ｎ−１）までのｎビット分のデータを抽出し、検査する。ステップＳ５０２の後、ステップＳ５０３に進む。
【００５４】
ステップＳ５０３において、計数部１０４は、検査の対象となるデータが適合するビットパタンを特定する。つまり、データが持つ“０”と“１”との組み合わせの配列が、Ｐ１パタンからＰ２ｎパタンまでのいずれと一致するか判定する。ステップＳ５０３の後、ステップＳ５０４に進む。
【００５５】
ステップＳ５０４において、計数部１０４は、特定したビットパタンの適合数をインクリメントする。これにより、該当するビットパタンの適合数をカウントする。ステップＳ５０４の後、ステップＳ５０５に進む。
【００５６】
ステップＳ５０５において、計数部１０４は、アドレスＡをｎビット単位でインクリメントする。これにより、ステップＳ５０２による検査の対象が次のｎビットのデータに移る。ステップＳ５０５の後、ステップＳ５０６に進む。
【００５７】
ステップＳ５０６において、計数部１０４は、現在の検査対象となるデータのアドレスＡが２値データの総数ｋに達したかまたは上回っているか判定する。達したかまたは上回っていれば（ステップＳ５０６でＹｅｓ）、処理全体が終了する。そうでなければ（ステップＳ５０６でＮｏ）、ステップＳ５０２に戻る。
図５に示す処理により、ラスタライザ１０２が生成した２値データにおけるすべてのビットパタン適合数を取得することができる。
【００５８】
図６は、反転関係にあるビットパタン適合数の大小関係を比較する処理を示すフローチャートである。
まず、ステップＳ６０１において、比較部１０５は、制御部Ｃから記憶部１０９の格納ビット数ｎを取得するとともに、計数部１０４から、Ｐ１パタンからＰ２ｎパタンまでの２ｎ個分のビットパタン適合数Ｅ（１）〜Ｅ（２ｎ）を取得する。また、比較部１０５は、適合数の比較に用いる比較カウンタＬを、Ｌ＝０にリセットするとともに、フラグレジスタ１０６は、Ｐ１パタンからＰ２ｎ−１パタンにそれぞれ割り当てた反転フラグＦ（１）〜Ｆ（２ｎ−１）を、Ｆ（１）〜Ｆ（２ｎ−１）＝０にリセットする。なお、図４の表記に倣い、Ｆ（１）〜Ｆ（２ｎ−１）までの集合をＦ（１：２ｎ−１）と表記することができる。
説明の便宜上、ｎビットのセルデータの値が小さくなる程、閾値電圧Ｖｔｈが高くなるように、Ｐ１パタンからＰ２ｎパタンまでが順番に並んでいるものとする。つまりＰ１パタンからＰ２ｎパタンは、ＮＡＮＤフラッシュメモリのフローティングゲートに注入される電子の総量が増え、酸化膜の破損を招くリスクが高まる順番に並んでいる。ステップＳ６０１の後、ステップＳ６０２に進む。
【００５９】
ステップＳ６０２において、比較部１０５は、比較カウンタＬをインクリメントする。ステップＳ６０２の後、ステップＳ６０３に進む。
【００６０】
ステップＳ６０３において、比較部１０５は、反転関係にある２つのビットパタン、つまりＰＬパタンとＰ２ｎ−Ｌ＋１パタンの適合数の大小関係を比較する。具体的には、ＰＬパタンの適合数Ｅ（Ｌ）がＰ２ｎ−Ｌ＋１パタンの適合数Ｅ（２ｎ−Ｌ＋１）よりも大きいか否か判定する。なお、いままでの説明から明らかであるが、ＰＬパタンのセルデータに注入される電子の数は、Ｐ２ｎ−Ｌ＋１パタンのセルデータに注入される電子の数よりも多い。Ｅ（Ｌ）＞Ｅ（２ｎ−Ｌ＋１）である場合（ステップＳ６０３でＹｅｓ、関係式が真）、ステップＳ６０４に進む。そうでない場合（ステップＳ６０３でＮｏ、関係式が偽）、ステップＳ６０５に進む。これにより、ＰＬパタンのセルデータを反転しないことが決定する。
【００６１】
ステップＳ６０４において、フラグレジスタ１０６は、ステップＳ６０３による比較結果に従い、ＰＬパタンに割り当てた反転フラグＦ（Ｌ）を「１」にセットする。これにより、ＰＬパタンのセルデータを反転することが決定する。ステップＳ６０４の後、ステップＳ６０５に進む。
【００６２】
ステップＳ６０５において、比較部１０５は、比較カウンタＬがインクリメントされた結果、２ｎ−１に一致したか否か判定する。一致した場合（ステップＳ６０５でＹｅｓ）、すべての反転フラグＦ（１）〜Ｆ（２ｎ−１）の値が決定することを意味し、処理全体が終了する。一致しない場合（ステップＳ６０５でＮｏ）、ステップＳ６０２に戻る。
【００６３】
図６に示す処理により、Ｐ１パタンからＰ２ｎ−１パタンのセルデータの反転の有無を決定することができる。反転部１０７は、比較部１０５から図６の処理により出力された比較結果を受信すると、書込部１０８に対し、記憶部１０９のデータおよび反転フラグの書き込みを指示する。
【００６４】
図７は、記憶部１０９への書込処理を示すフローチャートである。
まず、ステップＳ７０１において、書込部１０８は、画像処理部１０１から記憶部１０９の格納ビット数ｎを取得するとともに、ラスタライザ１０２から計数対象となる２値データの総数ｋを取得する。また、書込部１０８は、計数対象データの書き込み用のアドレスＷＡを、ＷＡ＝０（先頭のアドレス）にリセットする。ステップＳ７０１の後、ステップＳ７０２に進む。
【００６５】
ステップＳ７０２において、書込部１０８は、計数対象データにおいて、アドレスＷＡから（ＷＡ＋ｎ−１）までのｎビット分のデータを抽出し、検査する。ステップＳ７０２の後、ステップＳ７０３に進む。
【００６６】
ステップＳ７０３において、書込部１０８は、検査の対象となるデータが適合するビットパタンを特定する。ここでは、書込部１０８は、例えば、計数部１０４によるビットパタンの特定の方法と同じ方法を用いる（図５のステップＳ５０３参照）。ステップＳ７０３の後、ステップＳ７０４に進む。
【００６７】
ステップＳ７０４において、書込部１０８は、特定したビットパタンに対応する（割り当てられた）反転フラグＦ（Ｌ）（Ｌ＝１〜２ｎ−１）が、Ｆ（Ｌ）＝１であるか否か判定する。Ｆ（Ｌ）＝１である場合（ステップＳ７０４でＹｅｓ）、ステップＳ７０５に進む。Ｆ（Ｌ）＝１でない場合（ステップＳ７０４でＮｏ）、Ｆ（Ｌ）＝０であり、ステップＳ７０６に進む。なお、Ｆ（Ｌ）＝０であるとき、ＰＬパタンのデータは反転しない。
【００６８】
ステップＳ７０５において、反転部１０７は、決定した反転フラグＦ（Ｌ）が１であれば、ＰＬパタンのデータを反転し、Ｐｎ−Ｌ＋１パタンのデータと同じにする。ステップＳ７０５の後、ステップＳ７０６に進む。
【００６９】
ステップＳ７０６において、書込部１０８は、反転フラグＦ（Ｌ）によって反転するかしないか決定したデータを記憶部１０９に書き込む。ステップＳ７０６の後、ステップＳ７０７に進む。
【００７０】
ステップＳ７０７において、書込部１０８は、アドレスＷＡをｎビット単位でインクリメントする。これにより、ステップＳ７０２による検査の対象が次のｎビットのデータに移る。ステップＳ７０７の後、ステップＳ７０８に進む。
【００７１】
ステップＳ７０８において、書込部１０８は、現在の検査対象となるデータのアドレスＷＡが２値データの総数ｋに達したかまたは上回っているか判定する。達したかまたは上回っていれば（ステップＳ７０８でＹｅｓ）、ステップＳ７０９に進む。そうでなければ（ステップＳ７０８でＮｏ）、ステップＳ７０２に戻る。
【００７２】
ステップＳ７０９において、書込部１０８は、反転部１０７からすべての反転フラグＦ（Ｌ）（Ｌ＝１〜２ｎ−１）を取得し、記憶部１０９に書き込む。ステップＳ７０６の後、処理全体が終了する。
図７に示す処理により、ラスタライザ１０２が生成し、必要に応じて反転した２値データおよびデータの反転を定める反転フラグを、記憶部１０９に記憶させることができる。
なお、書込部１０８により書き込まれたデータおよび反転フラグは、認証印刷用の画像データを送信したユーザが画像形成装置１にて認証確認を行うか、所定のデータ保持時間が経過するまで、記憶部１０９に記憶される。
【００７３】
認証印刷用の画像データを送信したユーザは、画像形成装置１にて認証確認を行う。ユーザの正当性が確認されると、制御部Ｃは、２値データの復元をするため、読出部１１０に対し、記憶部１０９から該当のデータの読み出しを指示する。
【００７４】
図８は、記憶部１０９からの読出処理を示すフローチャートである。
まず、ステップＳ８０１において、読出部１１０は、記憶部１０９からデータおよび反転フラグＦ（Ｌ）を読み出す。ここで、読み出すデータは、ステップＳ７０６（図７）による処理により反転されたデータである。また、読出部１１０は、記憶部１０９から読み出す反転フラグＦ（Ｌ）が、記憶部１０９から読み出すデータに対応していることは認識している。ステップＳ８０１の後、ステップＳ８０２に進む。
【００７５】
ステップＳ８０２において、読出部１１０は、制御部Ｃから記憶部１０９の格納ビット数ｎを取得するとともに、ラスタライザ１０２から計数対象となる２値データの総数ｋを取得する。また、読出部１１０は、計数対象データの読み出し用のアドレスＲＡを、ＲＡ＝０（先頭のアドレス）にリセットする。ステップＳ８０２の後、ステップＳ８０３に進む。
【００７６】
ステップＳ８０３において、読出部１１０は、計数対象データにおいて、アドレスＲＡから（ＲＡ＋ｎ−１）までのｎビット分のデータを抽出し、検査する。ステップＳ８０３の後、ステップＳ８０４に進む。
【００７７】
ステップＳ８０４において、読出部１１０は、検査の対象となるデータが適合するビットパタンを特定する。ここでは、読出部１１０は、例えば、計数部１０４によるビットパタンの特定の方法と同じ方法を用いる（図５のステップＳ５０３参照）。ステップＳ８０４の後、ステップＳ８０５に進む。
【００７８】
ステップＳ８０５において、読出部１１０は、特定したビットパタンに対応する（割り当てられた）反転フラグＦ（Ｌ）（Ｌ＝１〜２ｎ−１）が、Ｆ（Ｌ）＝１であるか否か判定する。Ｆ（Ｌ）＝１である場合（ステップＳ８０５でＹｅｓ）、ステップＳ８０６に進む。Ｆ（Ｌ）＝１でない場合（ステップＳ８０５でＮｏ）、Ｆ（Ｌ）＝０であり、ステップＳ８０７に進む。なお、Ｆ（Ｌ）＝０であるとき、ＰＬパタンのデータは復元しない。
【００７９】
ステップＳ８０６において、反転部１０７は、決定した反転フラグＦ（Ｌ）が１であれば、ＰＬパタンのデータを復元する。ステップＳ８０６の後、ステップＳ８０７に進む。
【００８０】
ステップＳ８０７において、反転部１０７は、復元したデータを画像処理部１０１に送信する。なお、反転部１０７は、例えば、読出部１１０に対し、画像処理部１０１にデータを送信した旨を通知する。ステップＳ８０７の後、ステップＳ８０８に進む。
【００８１】
ステップＳ８０８において、読出部１１０は、アドレスＲＡをｎビット単位でインクリメントする。これにより、ステップＳ８０８による検査の対象が次のｎビットのデータに移る。ステップＳ８０８の後、ステップＳ８０９に進む。
【００８２】
ステップＳ８０９において、読出部１１０は、現在の検査対象となるデータのアドレスＲＡが２値データの総数ｋに達したかまたは上回っているか判定する。達したかまたは上回っていれば（ステップＳ８０９でＹｅｓ）、処理全体が終了する。そうでなければ（ステップＳ８０９でＮｏ）、ステップＳ８０３に戻る。
【００８３】
図８に示す処理により、記憶部１０９に記憶したデータを復元して、制御部Ｃに送信することができる。
なお、画像処理部１０１は、反転部１０７が復元したデータを画像データに変換し、変換した画像データを画像形成部１０３に転送する。画像処理部１０１は、画像データに変換するとき、ラスタライザ１０２の機能を用いる。また、画像形成部１０３は、転送された画像データに基づいて画像形成を行う。
【００８４】
第１の実施形態によれば、記憶部１０９としてのＮＡＮＤフラッシュメモリに注入および抜取される電子の総数を低減化することができる。注入する電子の数が相対的に多いデータを記憶部１０９に書き込むことになる場合は、反転フラグを用いてそのデータを反転することで、注入する電子の数が相対的に少ないデータに変えるからである。つまり、互いに反転関係にある２つのビットパタンの適合数を比較し、データを反転するための条件を満たせば、注入する電子の数が相対的に多いビットパタンを、注入する電子の数が相対的に少ないビットパタンに変えるからである。反転フラグを用いているので、記憶部１０９に記憶されているデータの復元するべき箇所は把握することができる。これにより、ＮＡＮＤフラッシュメモリの注入および抜取に起因する酸化膜の破損を遅らせ、画像形成装置のメモリの寿命の短命化を抑制することができる。
【００８５】
≪第２の実施形態≫
第２の実施形態の画像形成装置について説明する。第２の実施形態は、格納ビット数がｎとなるＮＡＮＤフラッシュメモリを、格納ビット数１となるＮＡＮＤフラッシュメモリとして取り扱う形態である。第２の実施形態の説明の際、第１の実施形態の構成要素と同一の構成要素には同一の符号を付す。また、第１の実施形態の説明と重複する場合、その説明は、基本的には、省略する。
【００８６】
〔構成〕
図９は、第２の実施形態の画像形成装置１の構成を示すブロック図である。この画像形成装置１は、第１の実施形態の画像形成装置１の構成要素のほかに、重要度レジスタ９０１およびマップ変更通知部９０２を備える。
【００８７】
重要度レジスタ９０１は、画像処理部１０１がラスタライザ１０２に送信する画像データが重要データであるか否かを定める値を重要度として格納する部位である。注目するデータをｘとし、重要度をＩ（ｘ）とすると、Ｉ（ｘ）＝１のとき、データｘを重要データとし、  Ｉ（ｘ）＝０のとき、データｘを通常データとする。このように、Ｉ（ｘ）は、１ビットの情報量を持つ。重要度Ｉ（ｘ）は、制御部Ｃが画像データとともに管理する管理データに含まれる。なお、管理データは、認証印刷用画像データを画像形成装置１に送信し認証印刷を行うユーザの認証コードデータも含む。重要データは、例えば、認証印刷用画像データに付加されており、ユーザは予め重要度Ｉ（ｘ）の値を指定する。
なお、説明の便宜上、あるデータの重要度は、「Ｉ」と表現する。重要データであればＩ＝１であり、通常データであれば、Ｉ＝０である。また、重要データは、通常データよりも重要であるデータということであるが、データが重要であるという意味は、所定の条件（例：ＮＡＮＤフラッシュメモリが劣化したとしても極力破損することを避けたいデータであること)を満たすこととするが、画像形成装置１を設計する者や利用する者などの考え方、都合などを踏まえて多様に解釈することができる。本明細書では、第２の実施形態によって処理することが決定したデータは、重要であるとみなす。
【００８８】
重要度Ｉは、画像データがラスタライズされる際、計数部１０４および反転部１０７に送信される。反転部１０７に具備されるフラグレジスタ１０６は、重要度Ｉの値を格納する。このとき、例えば、フラグレジスタ１０６が格納する反転フラグＦに重要度Ｉの値を付加してもよい。なお、本実施形態においては、データの反転は不要であるため、反転フラグＦそのものは、基本的には、何ら役割を果たさない。
【００８９】
マップ変更通知部９０２は、記憶部１０９に書き込んだり、記憶部１０９から読み出したりするデータが重要データであるか否かを書込部１０８および読出部１１０に通知（送信）する部位である。マップ変更通知部９０２は、フラグレジスタ１０６に格納された重要度Ｉの値を参照してデータの重要度を知る。
【００９０】
重要度レジスタ９０１およびマップ変更通知部９０２は、ハードウェアとプログラムとの協働によって実現される。重要度レジスタ９０１は、制御部Ｃの一部として機能する。
【００９１】
書込部１０８は、重要データとなるデータを、セルの格納ビット数がｎであるＮＡＮＤフラッシュメモリを持つ記憶部１０９に書き込む場合、そのセルの格納ビット数が１になるように、データのアドレスを修正する。すなわち、書込部１０８は、データを構成するビットそれぞれのアドレスを、１ビットごとにｎビット分インクリメントし、記憶部１０９に書き込む。これにより、１ビット分のデータをｎビット分のデータとして扱うことができる。この書き込みの処理の詳細については、後記する。
【００９２】
このことを異なる観点から説明するために、図２および図３を参照する。書込部１０８は、反転部１０７から受信した１ビット分のデータの値が“１”である場合、そのデータをＰ２ｎパタンのセルデータとして扱い、記憶部１０９に記憶する。図２および図３によれば、Ｐ２ｎパタンとは、セルのフローティングに注入される電子がない状態を示すビットパタンであるといえる。
また、書込部１０８は、反転部１０７から受信した１ビット分のデータの値が“０”である場合、そのデータをＰ２ｎ−１パタンのセルデータとして扱い、記憶部１０９に記憶する。図２および図３によれば、Ｐ２ｎ−１パタンとは、セルのフローティングに電子が注入される場合には、その電子の数がもっとも少ない状態を示すビットパタンであるといえる。
【００９３】
一方、読出部１１０は、（本来は１ビットであるが）ｎビット分のデータとして記憶部１０９に格納した重要データを、記憶部１０９から読み出す場合、その重要データのアドレスを修正して、１ビット分のデータに戻す。この読み出しの処理の詳細については、後記する。
【００９４】
このことを異なる観点から説明するために、図２および図３を参照する。読出部１１０は、記憶部１０９から読み出したデータがＰ２ｎパタンのセルデータであった場合、“１”の値を持つ１ビット分のデータとして反転部１０７に送信する。
また、読出部１１０は、記憶部１０９から読み出したデータがＰ２ｎ−１パタンのセルデータであった場合、“０”の値を持つ１ビット分のデータとして反転部１０７に送信する。
【００９５】
〔処理〕
次に、本実施形態の画像形成装置１の処理について説明する。この処理は、画像形成装置１の主要な構成要素による動作として実現される。
【００９６】
図１０は、記憶部１０９への書込処理を示すフローチャートである。
まず、ステップＳ１００１において、書込部１０８は、マップ変更通知部９０２による通知に従い、反転部１０７から受信したデータに対応する重要度Ｉが１であるか否か判定する。制御部Ｃは、管理データに含まれる、認証印刷用の画像データの重要度を反転部１０７に送信し、反転部１０７は、前記画像データをラスタライズした２値データに前記重要度を対応付けて書込部１０８に送信する。
重要度Ｉが１である場合（ステップＳ１００１でＹｅｓ）、反転部１０７から受信したデータが重要データであることを意味し、ステップＳ１００２に進む。一方、重要度Ｉが１でない場合（ステップＳ１００１でＮｏ）、Ｉ＝０であって、反転部１０７から受信したデータが通常データであることを意味し、ステップＳ１０１０に進む。
なお、重要度Ｉは、第１の実施形態に倣い、所定のバンド毎に、データに割り当ててフラグレジスタ１０６に格納される。
【００９７】
ステップＳ１００２において、書込部１０８は、制御部Ｃから記憶部１０９の格納ビット数ｎを取得するとともに、ラスタライザ１０２から計数対象となる２値データの総数ｋを取得する。また、書込部１０８は、計数対象データの検査用のアドレスである検査アドレスＣＡを、ＣＡ＝０（先頭のアドレス）にリセットするとともに、計数対象データの書き込み用のアドレスである書込アドレスＷＡを、ＷＡ＝０（先頭のアドレス）にリセットする。ステップＳ１００２の後、ステップＳ１００３に進む。
【００９８】
ステップＳ１００３において、書込部１０８は、計数対象データにおいて、検査アドレスＣＡから（ＣＡ＋１）までの１ビット分のデータを抽出し、検査する。ステップＳ１００３の後、ステップＳ１００４に進む。
【００９９】
ステップＳ１００４において、書込部１０８は、検査の対象となるデータの値が“０”であるか否か判定する。データの値が“０”である場合（ステップＳ１００４でＹｅｓ）、そのデータのビットパタンが、格納ビット数ｎ＝１におけるＰ１パタン（図３参照）と同等であることを意味し、ステップＳ１００５に進む。データの値が“０”でない場合（ステップＳ１００４でＮｏ）、データの値は“１”であって、そのデータのビットパタンが、格納ビット数ｎ＝１におけるＰ２パタン（図３参照）と同等であることを意味し、ステップＳ１００６に進む。
なお、検査の対象となるデータが適合するビットパタンの特定は、計数部１０４による処理（図５のステップＳ５０３参照）と同様である。また、これまでの説明から明らかであるが、前記したＰ１パタン、Ｐ２パタンの説明において、格納ビット数ｎが１であることを述べたが、本ステップで説明する格納ビット数ｎは、ステップＳ１００２の格納ビット数ｎとは意味が異なる点に留意されたい。
【０１００】
ステップＳ１００５において、書込部１０８は、検査の対象となるデータを、Ｐ２ｎ−１パタンとして記憶部１０９に書き込む。ステップＳ１００５の後、ステップＳ１００７に進む。
【０１０１】
ステップＳ１００６において、書込部１０８は、検査の対象となるデータを、Ｐ２ｎパタンとして記憶部１０９に書き込む。ステップＳ１００６の後、ステップＳ１００７に進む。
【０１０２】
ステップＳ１００７において、書込部１０８は、検査アドレスＣＡを１ビット単位でインクリメントするとともに、書込アドレスＷＡをｎビット単位でインクリメントする。これにより、ステップＳ１００３による検査の対象が次の１ビットのデータに移るとともに、検査した１ビット分のデータをｎビットのデータとして記憶部１０９に書き込むことができる。ステップＳ１００７の後、ステップＳ１００８に進む。
【０１０３】
ステップＳ１００８において、書込部１０８は、現在の検査対象となるデータの検査アドレスＣＡが２値データの総数ｋに達したかまたは上回っているか判定する。達したかまたは上回っていれば（ステップＳ１００８でＹｅｓ）、すべてのデータを記憶部１０９へ書き込んだことを意味し、ステップＳ１００９に進む。そうでなければ（ステップＳ１００８でＮｏ）、ステップＳ１００３に戻る。
【０１０４】
ステップＳ１００９において、書込部１０８は、検査したデータに対応するすべての重要度Ｉを記憶部１０９に書き込む。なお、本ステップにおける重要度Ｉはすべて、Ｉ＝１である。ステップＳ１００９の後、処理全体が終了する。
【０１０５】
ステップＳ１０１０において、書込部１０８は、重要度Ｉが０である通常データに対して、図７のフローチャートの処理を含む第１の実施形態における処理を書込処理として実行する。
図１０に示す処理により、格納ビット数ｎのＮＡＮＤフラッシュメモリのセルを、格納ビット数１のセルとみなしてデータを書き込むことができる。
なお、書込部１０８により書き込まれたデータおよび重要度は、認証印刷用の画像データを送信したユーザが画像形成装置１にて認証確認を行うか、所定のデータ保持時間が経過するまで、記憶部１０９に記憶される。
【０１０６】
認証印刷用の画像データを送信したユーザは、画像形成装置１にて認証確認を行う。ユーザの正当性が確認されると、制御部Ｃは、読出部１１０に対し、記憶部１０９から該当のデータの読み出しを指示する。
【０１０７】
図１１は、記憶部１０９からの読出処理を示すフローチャートである。
まず、ステップＳ１１０１において、読出部１１０は、記憶部１０９からデータおよび重要度を読み出す。読出部１１０は、記憶部１０９から読み出す重要度が、記憶部１０９から読み出すデータに対応していることは認識している。ステップＳ１１０１の後、ステップＳ１１０２に進む。
【０１０８】
ステップＳ１１０２において、読出部１１０は、マップ変更通知部９０２による通知に従い、記憶部１０９から読み出したデータに対応する重要度Ｉが１であるか否か判定する。重要度Ｉが１である場合（ステップＳ１１０２でＹｅｓ）、記憶部１０９から読み出したデータが重要データであることを意味し、ステップＳ１１０３に進む。重要度Ｉが１でない場合（ステップＳ１１０２でＮｏ）、Ｉ＝０であって、記憶部１０９から読み出したデータが通常データであることを意味し、ステップＳ１１１０に進む。
【０１０９】
ステップＳ１１０３において、読出部１１０は、制御部Ｃから記憶部１０９の格納ビット数ｎを取得するとともに、ラスタライザ１０２から計数対象となる２値データの総数ｋを取得する。また、読出部１１０は、計数対象データの検査用のアドレスである検査アドレスＣＡを、ＣＡ＝０（先頭のアドレス）にリセットするとともに、計数対象データの読み出し用の読出アドレスＲＡを、ＲＡ＝０（先頭のアドレス）にリセットする。ステップＳ１１０３の後、ステップＳ１１０４に進む。
【０１１０】
ステップＳ１１０４において、読出部１１０は、計数対象データにおいて、検査アドレスＣＡからＣＡ＋ｎ−１までのｎビット分のデータを抽出し、検査する。ステップＳ１１０４の後、ステップＳ１１０５に進む。
【０１１１】
ステップＳ１１０５において、読出部１１０は、検査の対象となるデータが、Ｐ２ｎ−１パタンのデータであるか否か判定する。Ｐ２ｎ−１パタンのデータである場合（ステップＳ１１０５でＹｅｓ）、記憶部１０９に記憶されていたセルデータの値が“０”であることを意味し、ステップＳ１１０６に進む。Ｐ２ｎ−１パタンのデータでない場合（ステップＳ１１０５でＮｏ）、Ｐ２ｎパタンのデータということであって、記憶部１０９に記憶されていたセルデータの値が“１”であることを意味し、ステップＳ１１０７に進む。
【０１１２】
ステップＳ１１０６において、読出部１１０は、値が“０”となるデータを記憶部１０９から読み出す。ステップＳ１１０６の後、ステップＳ１１０８に進む。
【０１１３】
ステップＳ１１０７において、読出部１１０は、値が“１”となるデータを記憶部１０９から読み出す。ステップＳ１１０７の後、ステップＳ１１０８に進む。
【０１１４】
ステップＳ１１０８において、読出部１１０は、検査アドレスＣＡをｎビット単位でインクリメントするとともに、読出アドレスＲＡを１ビット単位でインクリメントする。これにより、ステップＳ１１０４による検査の対象が次のｎビットのデータに移るとともに、検査したｎビット分のデータを１ビットのデータとして記憶部１０９から読み出すことができる。ステップＳ１１０８の後、ステップＳ１１０９に進む。
【０１１５】
ステップＳ１１０９において、読出部１１０は、現在の検査対象となるデータの検査アドレスＣＡが２値データの総数ｋに達したかまたは上回っているか判定する。達したかまたは上回っていれば（ステップＳ１１０９でＹｅｓ）、記憶部１０９からすべてのデータを読み出したことを意味し、処理全体が終了する。そうでなければ（ステップＳ１１０９でＮｏ）、ステップＳ１１０４に戻る。
【０１１６】
ステップＳ１１１０において、読出部１１０は、重要度Ｉが０である通常データに対して、図８のフローチャートの処理を含む第１の実施形態における処理を読出処理として実行する。
図１１に示す処理により、格納ビット数ｎのＮＡＮＤフラッシュメモリのセルを、格納ビット数のセルとみなしてデータを書き込むことができる。
【０１１７】
第２の実施形態によれば、記憶部１０９としてのＮＡＮＤフラッシュメモリに注入および抜取される電子の総数を極力低減化することができる。格納ビット数がｎのセルに対して電子を、注入する場合には最小数だけ注入するという手法を用いたからである。重要度を用いているので、前記手法を用いるデータ、つまり重要データであるか否かを把握することができる。これにより、画像形成装置のメモリの寿命の短命化をさらに抑制することができる。
【０１１８】
さらに、第２の実施形態によれば、セルに注入する電子数を１通りで済ませることができるため、セル内の電子の有無でデータの内容を管理できる。その結果、メモリに記憶されるデータの信頼性を高めることができる。
ＮＡＮＤ型フラッシュメモリがｎビットのデータを記憶して管理するためには、格納ビット数ｎのセルには、（２ｎ−１）個の閾値電圧を設定して相当数の電子数をセルに注入する必要がある（図２参照）。よって、ＮＡＮＤ型フラッシュメモリは、閾値電圧の値を調整することでｎビットのデータを管理しているといえる。
しかし、酸化膜の劣化が進むと、セルが電子を保持する能力は低下し、複数個保持している電子の一部がフローティングゲートからｐ型半導体やｎ型半導体の層に流出してしまう可能性が高くなる。その結果、セルに注入されている電子数と、そのセルにかけていた閾値電圧の値と、セルが記憶するデータとの関係が崩れてしまい、データの信頼性が損なわれてしまう可能性が高くなる。
このような状況に対し、第２の実施形態は、閾値電圧の値やセルが保持する電子の個数とは無関係に、セルが保持する電子の有無で、セルが記憶するデータを管理するものである。よって、酸化膜の劣化が進み、セルが保持する電子の一部がフローティングゲートから流出しても、セルが保持する電子は一応存在している。この場合には、セルが記憶するデータは、正しいデータを管理しているといえる。この意味において、データの信頼性は決して損なわれていない。
従って、第２の実施形態によれば、メモリに格納されたデータの信頼性を高めることができる。
【０１１９】
≪その他≫
なお、前記形態は、本発明を実施する好適なものであるが、その実施形式はこれに限定するものではない。したがって、本発明の要旨を逸脱しない範囲において、その実施形式を種々変形することが可能である。
【０１２０】
例えば、本明細書で説明した画像形成装置は、例えば、情報処理装置プリンタ（ＳＦＰ）、ＭＦＰ（Multi Functional Printer）、ファクシミリ、複写装置、およびこれらの複合機においても利用可能である。
【０１２１】
また、本発明は、電子写真方式、帯電方式、露光方式、現像方式などの各方式を採用した画像形成装置に適用することができる。
【０１２２】
また、本実施形態では、再書込み回数が制限されるメモリとしてＮＡＮＤフラッシュメモリについて説明したが、この発明はこれに限定されるものではない。例えば、前記メモリとして、ＥＥＰＲＯＭ（Electrically Erasable Programmable Read-Only Memory）を用いてもよい。
【０１２３】
また、本実施形態は、メモリに記憶されるセルデータの値が小さい程、フローティングゲートに注入される電子が多くなる、という対応順位関係を取り決めた形態であった。しかし、対応順位関係はこれに限定されない。
例えば、図３において、格納ビット数ｎ＝２のとき、フローティングゲートに保持される電子の数が０、３、５、７であるとき、セルデータはそれぞれ“１１”、“１０”、“０１”、“００”であるという対応順位関係を取り決めていた。この対応順位関係を、電子の数が０、３、５、７であるとき、セルデータはそれぞれ“１１”、“０１”、“１０”、“００”としてもよい。
また、図３において、格納ビット数ｎ＝３のとき、フローティングゲートに保持される電子の数が０、１、２、３、４、５、６、７であるとき、セルデータはそれぞれ“１１１”、“１１０”、“１０１”、“１００”、“０１１”、“０１０”、“００１”、“０００”であるという対応順位関係を取り決めていた。この対応順位関係を、電子の数が０、１、２、３、４、５、６、７であるとき、セルデータはそれぞれ“１１１”、“１１０”、“１０１”、“０１１”、“１００”、“０１０”、“００１”、“０００”としてもよい。
基本的には、フローティングゲートに保持される電子の数と、セルデータの値とが１対１に対応していればよい。
【０１２４】
また、第２の実施形態では、１つのセルにｎビット分のデータを記憶できるメモリに対し、１ビット分のデータを記憶するように用いた。そして、２ｎ種類のビットパタンをとり得るデータのうち、フローティングゲートに電子がない状態であるＰ２ｎパタンのデータの値を“１”に対応させた。また、前記データのうち、フローティングゲート中の電子が最も少ない状態であるＰ２ｎ―１パタンのデータの値を“０”に対応させた。しかし、フローティングゲート内の電子の数と、データの値との対応関係は、この場合に限定されない。
例えば、第２の実施形態で説明した方法を、図２および図３を用いた説明にあてはめると、格納ビット数ｎ＝２のときには、フローティングゲートに保持される電子の数が０となるＰ４パタンのデータの値を“１”に設定していた。そして、フローティングゲートに保持される電子の数が３（ｎ＝２のときは、もっとも少ない）となるＰ３パタンのデータの値を“０”に設定していた。しかし、例えば、フローティングゲートに保持される電子の数が５（ｎ＝２のときは、もっとも少ないわけではない）となるＰ２パタンのデータの値を“０”に設定するように対応関係を定めてもよい。
また、格納ビット数ｎ＝３のときには、フローティングゲートに保持される電子の数が０となるＰ８パタンのデータの値を“１”に設定していた。そして、フローティングゲートに保持される電子の数が１（ｎ＝３のときは、もっとも少ない）となるＰ７パタンのデータの値を“０”に設定していた。しかし、例えば、フローティングゲートに保持される電子の数が６（ｎ＝２のときは、もっとも少ないわけではない）となるＰ２パタンのデータの値を“０”に設定するように対応関係を定めてもよい。
基本的には、１ビット分のデータの値の一方に対応するビットパタンと、他方に対応するビットパタンとを違えればよい。
【０１２５】
また、本実施形態で説明した種々の技術を適宜組み合わせた技術を実現することもできる。
また、本実施形態で説明したソフトウェア（プログラム）をハードウェアとして実現することもでき、ハードウェアをソフトウェアと協働させて実現することもできる。例えば、画像形成装置１の構成要素のうちソフトウェアとして実装したラスタライザ１０２、計数部１０４、比較部１０５、フラグレジスタ１０６、反転部１０７、重要度レジスタ９０１およびマップ変更通知部９０２は、ハードウェアとして実装することで、画像処理の高速化を実現することができる。フラグレジスタ１０６をハードウェアとして実装する場合は、ハードウェアとして実装した反転部１０７に内蔵することが好ましい。重要度レジスタ９０１をハードウェアとして実装する場合は、ハードウェアとして実装した画像処理部１０１に内蔵することが好ましい。
【０１２６】
その他、ハードウェア、ソフトウェア、各フローチャートなどの具体的な構成について、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。
【符号の説明】
【０１２７】
１      画像形成装置
Ｃ      制御部
１００  Ｉ／Ｆ部
１０１  画像処理部
１０２  ラスタライザ
１０３  画像形成部
１０４  計数部
１０５  比較部
１０６  フラグレジスタ
１０７  反転部
１０８  書込部
１０９  記憶部
１１０  読出部
９０１  重要度レジスタ
９０２  マップ変更通知部
【図１】
2013090145.tif 000003
【図２】
2013090145.tif 000004
【図３】
2013090145.tif 000005
【図４】
2013090145.tif 000006
【図５】
2013090145.tif 000007
【図６】
2013090145.tif 000008
【図７】
2013090145.tif 000009
【図８】
2013090145.tif 000010
【図９】
2013090145.tif 000011
【図１０】
2013090145.tif 000012
【図１１】
2013090145.tif 000013