(57)【要約】  【課題】  画像処理に伴う処理負荷又はその実装コストを低減させる。  【解決手段】  画像処理装置２は、参照範囲を限定しながら、注目ブロックと、参照ブロックとを比較し、これらのブロックに含まれる画素値が一致する場合には、参照ブロックを参照するための参照符号を生成し、画素値が一致しない場合には、注目ブロック内で独立な復号化できる符号を生成する。そして、画像処理装置２は、複数のブロックそれぞれの符号列の並び替えと、各ブロック内における画素値の並び替えとによって、画像編集を実現する。参照範囲の制限によって、符号列の並び替えに要するバッファのサイズを小さくできる。【選択図】図２
2008301028.tif 000002
【特許請求の範囲】
【請求項１】
既定サイズの画像領域の画像情報を、他の画像領域の画像情報を参照して符号化する参照符号化手段と、
前記画像領域の画像情報を、他の画像領域とは独立に符号化する独立符号化手段と、
前記参照符号化手段により参照される範囲を制限する範囲制限手段と
を有する画像処理装置。
【請求項２】
前記範囲制限手段により制限された範囲に対応するサイズの画像情報記録領域と、
要求された画像編集の内容に応じて、前記参照符号化手段により生成された符号情報、及び、前記独立符号化手段により生成された符号情報の少なくとも一方を前記画像情報記録領域に書き込んで、符号情報に対する操作を行う符号操作手段と、
前記符号操作手段により行われる操作に応じて、前記画像情報記録領域に書き込まれた符号情報を入れ替える符号入替え手段と、
前記画像情報記録領域に書き込まれた符号情報を復号化する復号化手段と
をさらに有する画像処理装置。
【請求項３】
前記符号操作手段は、前記画像情報記録領域に書き込まれた符号情報を、要求された画像編集の内容に応じて並び替え、
前記符号入替え手段は、前記符号操作手段により並び替えられる符号情報に、前記参照符号化手段により生成された符号情報が含まれている場合に、前記参照符号化手段により生成された符号情報と、この符号情報に対応する参照先の符号情報とを入れ替える
請求項２に記載の画像処理装置。
【請求項４】
前記範囲制限手段は、副走査方向の参照範囲のみを制限する
請求項１に記載の画像処理装置。
【請求項５】
前記範囲制限手段は、副走査方向の参照範囲が主走査方向の参照範囲よりも狭くなるように制限する
請求項１に記載の画像処理装置。
【請求項６】
前記参照符号化手段は、複数の画素が含まれた画像領域の画像情報と、他の画像領域の画像情報とを比較して、これらの差分が既定の条件に合致している場合に、当該他の画像領域の位置を特定するための参照位置情報と、当該差分を特定するための差分情報とを符号化する
請求項１に記載の画像処理装置。
【請求項７】
処理対象となる画像領域について参照の許可又は禁止を決定するステップと、
参照が許可された場合に、この画像領域の画像情報を、他の画像領域の画像情報を参照して符号化するステップと、
少なくとも参照が禁止された場合に、前記画像領域の画像情報を、他の画像領域とは独立に符号化するステップと
をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置及びプログラムに関する。
【背景技術】
【０００２】
例えば、特許文献１には、Ｎ×Ｎブロック毎に独立に該ブロック内の画素を符号化し、Ｎ×Ｎブロック内に異なる色が存在する場合にのみ、ブロック内の画素を回転して回転画像を構成する技術が開示されている。
【特許文献１】特開平９−０７４４７５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
本発明は、画像処理に伴う処理負荷又はその実装コストを低減させることを目的とする。
【課題を解決するための手段】
【０００４】
請求項１に係る本発明は、既定サイズの画像領域の画像情報を、他の画像領域の画像情報を参照して符号化する参照符号化手段と、前記画像領域の画像情報を、他の画像領域とは独立に符号化する独立符号化手段と、前記参照符号化手段により参照される範囲を制限する範囲制限手段とを有する。
【０００５】
請求項２に係る本発明は、前記範囲制限手段により制限された範囲に対応するサイズの画像情報記録領域と、要求された画像編集の内容に応じて、前記参照符号化手段により生成された符号情報、及び、前記独立符号化手段により生成された符号情報の少なくとも一方を前記画像情報記録領域に書き込んで、符号情報に対する操作を行う符号操作手段と、前記符号操作手段により行われる操作に応じて、前記画像情報記録領域に書き込まれた符号情報を入れ替える符号入替え手段と、前記画像情報記録領域に書き込まれた符号情報を復号化する復号化手段とをさらに有する。
【０００６】
請求項３に係る本発明では、前記符号操作手段は、前記画像情報記録領域に書き込まれた符号情報を、要求された画像編集の内容に応じて並び替え、前記符号入替え手段は、前記符号操作手段により並び替えられる符号情報に、前記参照符号化手段により生成された符号情報が含まれている場合に、前記参照符号化手段により生成された符号情報と、この符号情報に対応する参照先の符号情報とを入れ替える。
【０００７】
請求項４に係る本発明では、前記範囲制限手段は、副走査方向の参照範囲のみを制限する。
【０００８】
請求項５に係る本発明では、前記範囲制限手段は、副走査方向の参照範囲が主走査方向の参照範囲よりも狭くなるように制限する。
【０００９】
請求項６に係る本発明では、前記参照符号化手段は、複数の画素が含まれた画像領域の画像情報と、他の画像領域の画像情報とを比較して、これらの差分が既定の条件に合致している場合に、当該他の画像領域の位置を特定するための参照位置情報と、当該差分を特定するための差分情報とを符号化する。
【００１０】
請求項７に係る本発明は、処理対象となる画像領域について参照の許可又は禁止を決定するステップと、参照が許可された場合に、この画像領域の画像情報を、他の画像領域の画像情報を参照して符号化するステップと、少なくとも参照が禁止された場合に、前記画像領域の画像情報を、他の画像領域とは独立に符号化するステップとをコンピュータに実行させる。
【発明の効果】
【００１１】
本発明によれば、画像処理に伴う処理負荷又はその実装コストが低減する。
【発明を実施するための最良の形態】
【００１２】
本実施形態における画像形成システムの概要を説明する。
図１は、画像形成システムの概要を説明する図である。
図１に例示するように、画像形成システム１は、画像処理装置２と、プリンタ３とを有する。
画像処理装置２は、コンピュータである。本例の画像処理装置２は、ＬＡＮ等のネットワークに接続されており、ユーザ端末９２又はスキャナ９４から受信した画像情報に対して画像処理を施し、画像処理が施された画像情報をプリンタ３に送信する。本実施形態では、入力された画像（入力画像）を１８０度に回転させる場合を画像処理の具体例として説明する。
プリンタ３は、画像形成装置の一例である。本例のプリンタ３は、ＬＡＮ等のネットワークを介して、画像処理装置２から画像情報を受信し、受信した画像情報に基づいて画像を記録用紙に印刷する。
なお、画像処理装置２は、プリンタ３の筐体内に設けられてもよい。
【００１３】
図２（Ａ）は、画像処理装置２（図１）により実行される画像符号化プログラム４の機能構成を例示し、図２（Ｂ）は、画像編集プログラム５の機能構成を例示する図である。
図２（Ａ）に例示するように、画像符号化プログラム４は、ブロック設定部４０、ブロック符号化部４２、参照回数制御部４４、及び符号出力部４６を有する。
また、図２（Ｂ）に例示するように、画像編集プログラム５は、符号編集部５０、符号用記録領域５２、復号化部５４、画素編集部５６、及び画素値用記録領域５８を有する。
画像符号化プログラム４及び画像編集プログラム５の機能構成の一部又は全部は、例えば、記録媒体２０（図１）に記録されており、この記録媒体２０を介して画像処理装置２にインストールされる。なお、画像処理プログラム５の各機能構成は、ネットワークを介して、画像処理装置２にインストールされてもよい。
【００１４】
画像符号化プログラム４において、ブロック設定部４０は、入力された画像情報に対して、複数の画素が含まれた部分画像（ブロック）を設定する。
例えば、ブロック設定部４０は、入力画像を、Ｎ×Ｍ画素からなる矩形の画像ブロックに分割する。
【００１５】
ブロック符号化部４２は、参照回数制御部４４により制限された参照範囲内の他の部分画像（ブロック）を参照して、処理対象となる部分画像（注目ブロック）に含まれる画素値を符号化する。より具体的には、ブロック符号化部４２は、参照回数制御部４４により他のブロックの参照が許可されている場合に、注目ブロックに含まれる画素値と、この注目ブロックに対して既定位置にある部分画像（参照ブロック）に含まれる画素値とを比較して、これらの画素値が既定の関係にあるときには、この参照ブロックを特定するための情報（参照先情報）が含まれた符号を生成（参照符号化手段による符号化）し、これらの画素値が既定の関係にないときには、この注目ブロックに含まれる画素値をブロック内で独立に符号化（独立符号化手段による符号化）する。また、ブロック符号化部４２は、参照回数制御部４４により他のブロックの参照が禁止されている場合に、注目ブロック内の画素値のみを用いて符号化する。
本例のブロック符号化部４２は、図３（Ａ）に例示するように、参照回数制御部４４が副走査方向の参照を許可している場合に、注目ブロックに含まれる複数の画素値と、この注目ブロックに対して副走査方向上流にあるブロック（直上ブロック）に含まれる複数の画素値とを比較し、全ての画素値を一致したとき（すなわち、注目ブロックと直上ブロックとが完全一致の場合）に、直上ブロックを参照する旨を示す符号（図３（Ｂ）に例示する参照符号）を生成し、不一致の時には、注目ブロック内の画素値をブロックで独立な符号（図３（Ｂ）に例示する独立符号）に変換する。なお、本例のブロック符号化部４２は、参照回数制御部４４が副走査方向の参照を禁止している場合に、注目ブロック内の画素値をブロックで独立な符号（図３（Ｂ）に例示する独立符号）に変換する。
【００１６】
参照回数制御部４４は、ブロック符号化部４２による参照範囲を制限する。ここで、参照範囲とは、直接的又は間接的に参照される範囲であり、参照先がさらに他の画像領域を参照している場合には、当該他の画像領域も参照範囲に含まれる。例えば、図３（Ａ）に例示するように、注目ブロックがブロック４を参照しており、ブロック４がブロック２を参照している場合には、ブロック２は、注目ブロックの参照範囲に含まれていることになる。
本例の参照回数制御部４４は、注目ブロックに関して、直接的又は間接的に参照する回数（参照回数）をカウントし、参照回数が上限値Ｃ未満となるように、注目ブロックの符号化処理における参照を許可又は禁止する。
【００１７】
符号出力部４６は、ブロック符号化部４２により符号化された画像情報を画像編集プログラム５に出力する。
【００１８】
画像編集プログラム５において、符号編集部５０は、部分画像（ブロック）の単位で、符号化された画像情報を操作する。部分画像には複数の画素値が存在するため、符号編集部５０は、複数の画素値に相当する符号列を単位として、符号データに含まれる符号列を操作する。なお、実施形態の説明では、部分画像に含まれる全画素値に相当する符号群を符号列とよび、画像全体に相当する符号群を符号データとよぶ。
本例の符号編集部５０は、画像編集が指示されると、指示された編集処理の内容に応じた、各ブロックの符号列を符号量記録領域５２に書き込み、この符号量記録領域５２を用いて、書き込まれた符号列の並び替え、削除、又は追加などの操作を行う。
また、符号編集部５０は、符号列の並び替え、削除、又は追加などの操作に応じて、符号列の入替えを行う。
【００１９】
符号用記録領域５２は、符号編集部５０により操作される符号列を記録するためのデータバッファである。符号用記録領域５２のサイズは、参照回数制御部４４により参照が許可される範囲の広さに対応する。
本例の符号用記録領域５２は、Ｃ（参照回数の上限）×Ｎ（整数）のサイズの記録領域を有する。
【００２０】
復号化部５４は、符号編集部５０から入力された符号データを復号化し、復号化された画像データを画素編集部５６に出力する。符号編集部５０により操作（並び替え、削除など）された符号データは、符号列の入替えが行われているため、符号列の順序が変わっていても復号化できる。
【００２１】
画素編集部５６は、復号化部５４により復号化された画像データを画素値用記録領域５８に書き込み、この画素値用記録領域５８を用いて、書き込まれた画像データを画素単位で操作する。
本例の画素編集部５６は、復号化された画素値に対して、編集処理の内容（回転角度、シフト量及び方向など）に応じた、並び替え、削除、又は追加を行う。
【００２２】
画素値用記録領域５８は、画素編集部５６により操作される画素値を記録するためのデータバッファである。
本例の画素値用記録領域５８は、２×Ｎ（主走査１ライン）のサイズの記録領域を有する。
【００２３】
図４は、画像編集プログラム５による１８０度回転処理を説明する図である。
図５は、符号列の入替えを説明する図である。
【００２４】
１８０度回転処理が編集内容として指示された場合に、符号編集部５０（図２）は、図４（Ａ）に例示する符号データ（ブロック１〜５及び注目ブロックの符号列）を符号用記録領域５２に書き込み、書き込まれた符号列を主走査方向及び副走査方向の下方から順に読み出すことにより、図４（Ｂ）のように、ブロック単位の１８０度回転を実現する。
【００２５】
次に、復号化部５４は、符号編集部５０から順に入力される符号列を順に復号化し、復号化された画素値群を画素編集部５６に出力する。図４（Ｃ）は、復号化部５４から出力される部分画像１つ分の画素群を例示する図である。本例では、１つの部分画像に４つの画素が含まれている場合を具体例として説明するが、部分画像に含まれる画素の数はこれに限定されるものではない。
画素編集部５６は、復号化部５４から入力された部分画像の画素値群を、画素単位で主走査方向に並び替える。より具体的には、画素編集部５６は、図４（Ｃ）に例示するように、復号化部５４から入力される画素値群を、１つの部分画像に相当する数（本例では４つ）だけ画素値用記録領域５８（ラインバッファ）に書き込み、このラインバッファから、書込みと反対の順序で読み出す。これにより、図４（Ｄ）に例示するように、部分画像１つ分の画素群に対して主走査方向の鏡像処理が実現される。
以上のように、１８０度回転処理が、部分画像単位の１８０度回転処理（符号に対する処理）と、画素単位の１８０度回転処理（画素値に対する処理）との組合せで実現される。
【００２６】
なお、図４（Ｂ）の符号列は、このままでは、走査順に復号化できない。例えば、ブロック４の符号列（参照符号）は、走査順で後に現れるブロック２を参照するからである。
そこで、本例の符号編集部５０は、図５に例示するように、符号列の入替えを行う。すなわち、符号編集部５０は、ブロック単位の１８０度回転処理（図４（Ａ）→図４（Ｂ）の処理）の対象となる符号列（操作対象となる符号列）に、他のブロックを参照する符号が含まれている場合には、この他のブロックを参照する符号と、参照先の符号とを入れ替える。例えば、図５（Ａ）では、ブロック４の符号（参照符号）がブロック２の符号（独立符号）を参照するため、符号編集部５０はこれらの符号を入れ替えて、ブロック４の符号を独立符号とし、ブロック２の符号をブロック４への参照符号とし、さらに、注目ブロックの符号（参照符号）がブロック４の符号（独立符号）を参照するため、符号編集部５０はこれらの符号を入れ替えて、注目ブロックの符号を独立符号とし、ブロック４の符号を注目ブロックへの参照符号とする。
【００２７】
［変形例１］
次に、上記の変形例を説明する。
図６は、ライン単位の１８０度回転処理を説明する図である。
図６（Ａ）に例示するように、主走査方向の１ラインを１つの部分画像（ブロック）とみなして、上記実施形態と同様の１８０度回転処理を行ってもよい。この場合も、図６（Ｂ）に例示するように、各ラインに相当する符号列が、副走査方向に並び替えられる。その際に、いずれかのラインが他のラインを参照している場合には、参照元の符号（参照符号）と、参照先の符号（独立符号）との入替えが実施される。
そして、図６（Ｃ）及び（Ｄ）に例示するように、１ライン分のバッファ（画素値用記録領域５８）を用いて、各ラインに含まれる画素値群に対して、主走査方向の鏡像処理が行われる。
なお、本変形例では、主走査1ラインを１つのブロックとみなし、1ライン全体を符号化しているが、図４（Ａ）に例示するブロックの符号列を1ライン分まとめて、1ライン分の符号列（例えば、図４（Ａ）のブロック１及び２の符号列）に対して副走査方向の鏡像処理を行ってもよい。換言すると、図６に例示する「ライン１」〜「ライン４」それぞれが、ライン上に存在する複数のブロックの符号列を含むように構成してもよい。
【００２８】
［変形例２］
図７は、第２の変形例における参照符号を説明する図である。
上記実施形態では、参照元のブロックと、参照先のブロックとが完全一致する場合にのみ、参照符号による符号化処理を適用したが、これに限定されるものではない。
第２の変形例では、注目ブロックと、参照ブロックとを比較して、差分が既定の条件に合致している場合に、参照先を特定するための情報と、この差分を特定するための情報とを参照符号として符号化する。
例えば、図７（Ａ）に例示するように、注目ブロックの第１画素（画素値Ｅ）と第３画素（画素値Ｆ）とが参照ブロックの対応する画素（画素値Ａ及び画素値Ｃ）と不一致になり、注目ブロックの第２画素と第４画素が参照ブロックの対応する画素（画素値Ｂ及び画素値Ｄ）と一致する場合には、差分のパターンが、図７（Ｂ）に例示する差分パターン（「不一致」、「一致」、「不一致」、「一致」）に合致するため、図７（Ｂ）に例示する参照符号で符号化される。図７（Ｂ）の参照符号には、差分パターン（ゼロ以外の差分が存在する位置のパターン）を特定するためのヘッダと、不一致となった画素の画素値（本例では、画素値Ｅ及び画素値Ｆ）とが含まれる。
【００２９】
なお、図７（Ｃ）に例示するように、参照符号は、不一致となった画素数を示すヘッダと、不一致となった画素の位置を示す画素位置と、不一致となった画素値とから構成されてもよい。また、上記変形例２では、不一致画素の画素値を符号化しているが、対応する画素値の差分（予測誤差）を符号化してもよい。
【００３０】
［変形例３］
図８は、第３の変形例における１８０度回転処理を説明する図である。
上記実施形態では、副走査方向のサイズが１画素のブロックを定義しているが、これに限定されるものではなく、例えば、図８（Ａ）に例示するように、副走査方向のサイズが２画素のブロックを定義してもよい。なお、本例では、２つの主走査ラインをブロックとしている。
この場合の１８０度回転処理を説明すると、符号編集部５０は、上記実施形態と同様に、これらのブロックを副走査方向に並び替えるだけでよい。そして、画素編集部５６は、図８（Ｂ）に例示するように、ブロックの画素群をブロックラインバッファに書き込み、このブロックラインバッファから、書込みと逆の順序で読み出す。これにより、図８（Ｃ）に例示するように、ブロック内の画素値群が１８０度回転する。
【００３１】
［変形例４］
図９及び図１０は、第４の変形例におけるシフト処理を説明する。
図９（Ａ）に例示する入力画像を、図９（Ｂ）に例示するように並行移動（シフト）させて出力画像とすることがある。このようなシフト処理を行う場合には、図９（Ｂ）に例示するように、画素の移動だけでなく、余白領域の追加や、はみ出し領域の削除などを行う必要がある。
そこで、第４の変形例では、ブロック単位で、画素の移動、余白領域の追加、及びはみ出し領域の削除の少なくとも１つを行い、その後に、画素単位で、画素の移動等を行う。
【００３２】
以下、図１０を参照して、主走査方向のマイナス方向に５画素だけ移動させる場合を説明する。
符号編集部５０は、要求されたシフト処理のシフト量及びシフトの方向に基づいて、削除すべき画像の範囲を特定し、特定された削除範囲に被参照ブロック（他のブロックから参照されているブロック）が存在するか否かを判断し、削除範囲に被参照ブロックが存在する場合は、図１０（Ａ）及び（Ｂ）に例示するように、参照ブロックの符号（参照符号）を、被参照ブロックの符号（独立符号）に入れ替える。本例では、ブロック２がブロック１を参照しており、ブロック１が削除対象となるため、ブロック２の参照符号が、ブロック１の独立符号に入れ替えられる。
【００３３】
次に、符号編集部５０は、図１０（Ｃ）に例示するように、ブロック単位で、シフト処理を行う。本例では、主走査方向上流に５画素のシフトが要求されているため、ブロック１つ分のシフトと、１画素分のシフトとが行われる。そして、ブロック１つ分のシフト処理として、主走査方向の先頭のブロック（符号列）が削除され、１つの余白符号列が主走査方向の最後に挿入される。これにより、部分画像１、４及び７の符号列がはみ出し領域として削除され、残りの符号列の各主走査方向下流（紙面右方向）に１つの余白符号列が挿入される。
【００３４】
次に、復号化部５４は、符号編集部５２から順に入力される符号列を順に復号化し、復号化された画素値群を画素編集部５６に出力する。なお、余白符号は、余白に相当する画素値として復号化される。
【００３５】
次に、画素編集部５６は、復号化部５４から入力された画素値群を、残りのシフト量だけ画素単位でシフトさせる。
具体的には、画素編集部５６は、図１０（Ｄ）に例示するように、復号化部５４から入力される画素値群の主走査方向の先頭画素をはみ出し画素として削除し、主走査方向の終端に余白画素を挿入する。
以上のように、所望のシフト処理が、部分画像の単位のシフト処理（符号に対する処理）と、画素単位のシフト処理（画素に対する処理）との組合せで実現される。
なお、本例では、マイナス方向のシフト処理を具体例として説明したが、プラス方向のシフト処理についても、参照符号による参照の方向、及び、対称性などから、同様に実現できる。
【図面の簡単な説明】
【００３６】
【図１】画像形成システムの概要を説明する図である。
【図２】画像処理装置２（図１）により実行される画像符号化プログラム４及び画像編集プログラム５の機能構成を例示する図である。
【図３】画像符号化プログラム４による符号化処理を説明する図である。
【図４】１８０度回転処理を説明する図である。
【図５】符号列の入替えを説明する図である。
【図６】主走査１ラインを部分画像とみなした場合の１８０度回転処理を説明する図である。
【図７】差分に関する情報が含まれた参照符号を説明する図ある。
【図８】４×２の部分画像を設定した場合の１８０度回転処理を説明する図である。
【図９】部分画像単位及び画素単位のシフト処理の概要を説明する図である。
【図１０】シフト処理をより詳細に説明する図である。
【符号の説明】
【００３７】
１・・・画像形成システム
２・・・画像処理装置
４・・・画像符号化プログラム
４０・・・ブロック設定部
４２・・・ブロック符号化部
４４・・・参照回数制御部
４６・・・符号出力部
５・・・画像編集プログラム
５０・・・符号編集部
５２・・・符号用記録領域
５４・・・復号化部
５６・・・画素編集部
５８・・・画素値用記録領域
【図１】
2008301028.tif 000003
【図２】
2008301028.tif 000004
【図３】
2008301028.tif 000005
【図４】
2008301028.tif 000006
【図５】
2008301028.tif 000007
【図６】
2008301028.tif 000008
【図７】
2008301028.tif 000009
【図８】
2008301028.tif 000010
【図９】
2008301028.tif 000011
【図１０】
2008301028.tif 000012