(57)【要約】【課題】画像データの連結においてランレングスデータを用い、メモリ消費の抑制および高速処理を実現すること。【解決手段】本発明は、複数のランレングスデータを連結して１つのランレングスデータを得る画像処理装置において、連結の対象となる複数のランレングスデータにおける各々隣接する部分のデータが同じランデータとして連続する場合、この隣接する部分のデータを一つのランデータとして結合するランレングス連結部１２を備えているものである。【選択図】図１
2006174319.tif 000002
【特許請求の範囲】
【請求項１】
複数のランレングスデータを連結して１つのランレングスデータを得る画像処理装置において、
連結の対象となる複数のランレングスデータにおける各々隣接する部分のデータが同じランデータとして連続する場合、前記隣接する部分のデータを一つのランデータとして結合する連結手段を備えている
ことを特徴とする画像処理装置。
【請求項２】
二値の画像データをランレングスデータに変換して前記連結手段へ送るランレングス変換手段を備えている
ことを特徴とする請求項１記載の画像処理装置。
【請求項３】
前記連結手段によって連結されたランレングスデータを拡大もしくは縮小する拡縮手段を備えている
ことを特徴とする請求項１記載の画像処理装置。
【請求項４】
前記連結手段は、前記複数のランレングスデータを１枚の出力用紙サイズの横方向および縦方向に配置した状態となるランレングスデータを生成する
ことを特徴とする請求項１記載の画像処理装置。
【請求項５】
前記ランレングス変換手段は、連結対象となる複数の画像データのいずれもが二値データである場合のみ前記複数の画像データをランレングスデータに変換する
ことを特徴とする請求項２記載の画像処理装置。
【請求項６】
前記ランレングス変換手段は、連結対象となる複数の画像データのいずれもが二値データであり、前記複数の画像データの特徴量がいずれもランレングスデータへの変換を許す場合のみ前記複数の画像データをランレングスデータに変換する
ことを特徴とする請求項２記載の画像処理装置。
【請求項７】
前記特徴量は、少なくとも画像の大きさを含む
ことを特徴とする請求項６記載の画像処理装置。
【請求項８】
前記特徴量は、少なくとも画像の種類を示す情報を含む
ことを特徴とする請求項６記載の画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のランレングスデータを連結して１つのランレングスデータを得る画像処理装置に関する。
【背景技術】
【０００２】
従来、縦方向もしくは横方向に画像を連結する装置は、連結される数だけ画像連結部に画像が入力され、画素がそのまま連結されて出力画像を生成している（例えば、特許文献１参照。）。また、画像を連結する処理が使われる画像処理装置の一般的な機能として、複数ページの画像を縮小および連結して一枚の画像として生成するＮアップ機能がある。
【０００３】
【特許文献１】特開平７−１０５０２０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の画像処理装置における画像連結では、画素をそのまま処理するため、同じ色が連続している場合や画像の余白領域においても等しく連結処理を行うことになる。また、特許文献１で示されるようにライン単位で処理を行ってメモリの消費を抑えた場合でも、連結後の画像１ライン分のメモリは最低でも確保しなくてはならないという問題がある。
【課題を解決するための手段】
【０００５】
本発明は、このような課題を解決するために成されたものである。すなわち、本発明は、複数のランレングスデータを連結して１つのランレングスデータを得る画像処理装置において、連結の対象となる複数のランレングスデータにおける各々隣接する部分のデータが同じランデータとして連続する場合、この隣接する部分のデータを一つのランデータとして結合する連結手段を備えているものである。
【０００６】
このような本発明では、画像データの連結をランレングスデータとして行うため、少ないメモリ消費で画像データの結合を行うことができる。また、複数のランレングスデータにおける各々隣接する部分のデータが同じランデータとして連続する場合、この部分を一つのランデータとして結合するため、結合後のランレングスデータを最小限サイズにすることができる。
【発明の効果】
【０００７】
したがって、本発明によれば、画像データの連結にランレングスデータを用いることで、メモリの消費を少なくし、かつ高速な画像連結処理を提供する。これにより、特に複数の画像データを１ページに配置するＮアップ画像を生成する場合、少ないメモリで高速に処理することが可能となる。
【発明を実施するための最良の形態】
【０００８】
以下、本発明の実施の形態を図に基づき説明する。図１は、本実施形態に係る画像処理装置を説明するブロック図である。すなわち、本実施形態の画像処理装置は、複数の画像データ（入力画像１〜Ｎ）を受け付けて１つのランレングスデータとして連結するもので、入力画像１〜Ｎをランレングスデータに変換するランレングス変換部１１と、複数のランレングスデータを連結するランレングス連結部１２と、ランレングスデータを画像データに変換する画素変換部１３とを備えている。
【０００９】
複数の入力画像１〜Ｎは、ランレングス変換部１１によりランレングスデータに変換され、ランレングス連結部１２に入力される。なお、入力画像形式がランレングスデータである場合には、ランレングス変換部１１は通らずに直接ランレングス連結部１２に入力されてもよい。
【００１０】
ランレングスデータとは同一色領域をランとして表現したものであり、例えば二値画像において黒画素領域を表現した黒ランの例を挙げると、ランの開始位置とランの終了位置を格納する形式（図２）や、ランの開始位置とランの長さを格納する形式（図３）などがある。また、多値画像の場合にはこれらに加えてランの色を格納する形式（図４）などがある。ランレングスデータで表現された画像の連結は多値画像であっても構わないが、以降の説明では簡単のため二値画像の場合について説明する。
【００１１】
ここで、Ｎ個の主走査方向に表現されたランレングスデータを主走査方向に連結する場合のランレングス連結部の処理例を図５に示す。先ず、Ｎ個の入力画像についてのランレングスデータを取得し、ライン番号をｉ＝０、主走査方向に沿った画像番号をｊ＝２に初期化して処理を開始する。
【００１２】
先ず、最初１番目の入力画像と２番目の入力画像についてのランレングスデータを連結する。この際、１番目の画像の末端ランと２番目の画像の先頭ランとを連結するかどうかの判定を行う（ステップＳ１〜Ｓ２）。この時の条件は、同ラインにおいて１番目の画像の末端画素がランであり、かつ２番目の画像の先頭画素がランであることである。
【００１３】
ランの連結を行わない場合には、２番目の画像のランレングスデータの各位置情報に１番目の画像の幅ｗが加算したものを１番目の画像のランレングスデータに追加する（ステップＳ３）。
【００１４】
ランの連結を行わない場合には、１番目の画像の末端ランと２番目の画像の先頭ランとを連結し、２番目の画像の２番目以降のランの位置情報に１番目の画像幅を加算して、１番目の画像のランレングスデータに追加する。こうして得られた１番目の画像のランレングスデータが、１番目と２番目の画像を連結した画像のランレングスデータである（ステップＳ４）。
【００１５】
Ｎが３以上の場合には同様に次の画像の同ラインについてのランレングスデータの連結を行う（ステップＳ５）。Ｎ番目の画像のランレングスデータの連結が終わったら、次のラインについて同様の処理を繰り返し、最終ラインについての処理が終わると１番目からＮ番目の画像を連結したランレングスデータが得られる（ステップＳ６）。
【００１６】
図６は、ランの開始位置とランの終了位置で表現したランを用いて、ランの連結について説明する模式図である。ここでは、入力画像Ａ、Ｂのラインｉについてランの連結を行う場合、行わない場合を各々示している。ランの連結を行わないのは、入力画像Ａの末端もしくは入力画像Ｂの先頭にランデータが存在しないときであり、この場合には、入力画像Ｂのランレングスデータ(Xp1,Xp2),…,(Xq1,Xq2)の位置情報に入力画像Ａの幅wを加えたものを、入力画像Ａのランレングスデータ(X11,X12),…,(Xm1,Xm2)の後ろに追加する。
【００１７】
一方、ランの連結を行うのは、入力画像Ａの末端および入力画像Ｂの先頭にランデータが存在しているときであり、この場合には、入力画像Ａの末端のランデータの位置情報Xm1と、入力画像Ｂの先頭のランデータの長さ情報Xp2に入力画像Ａの幅wを加えたものを、入力画像Ａの末端のランデータとして用いるとともに、それ以降のランデータとして、入力画像Ｂの２番目以降のランデータに入力画像Ａの幅wを加えたものを追加する。これにより、入力画像Ａと入力画像Ｂのランレングスデータが連結される。
【００１８】
連結後の画像を画素データ表現に戻す場合には、画素変換部１３によってランレングスデータを画素表現に戻して出力画像を得る。連結画像のランレングスデータをそのまま利用する場合には、画素変換部１３を通さずに出力してもよい。以上は主走査方向に連結する例であるが、副走査方向についても同様である。
【００１９】
図７にランレングスデータの連結を利用した２アップ画像の生成例を示す。生成する２アップ画像は図８に示される。主走査方向のｗ１、ｗ３は余白であるため、図６に示したようなランの連結を考慮する必要がなく、ランレングスデータを追加する処理と各入力画像のランレングスデータの位置情報の変更だけであるため、一般的な２アップ画像の生成に比べ非常に高速な動作が期待できる。
【００２０】
先ず、入力画像１のランレングスデータの各ランの位置情報にｗ１を追加する（ステップＳ１１）。この操作は入力画像１にｗ１の余白領域を追加したことに等しい。次に、入力画像２のランレングスデータの各ランの位置情報にｗ１＋ｗ２＋ｗ３を追加する（ステップＳ１２）。そして、入力画像１のランレングスデータに入力画像２のランレングスデータを追加する（ステップＳ１３）。こうして得られた入力画像１のランレングスデータが２アップ画像のランレングスデータである。最後に画像情報の幅と高さをそれぞれ、ｗ１＋ｗ２＋ｗ３＋ｗ４＋ｗ５、ｈ１＋ｈ２＋ｈ３に変更する（ステップＳ１４）。以上は主走査方向に２アップ画像を生成する例であるが、副走査方向についても同様である。
【００２１】
図９にカラー画像と二値画像が混在した場合のＮアップ画像の生成例を示す。この例では、画像が二値画像であるかどうかの判別と、画像の連結はまず行毎に列方向に行い、各行が１つの画像またはランレングスデータに連結されたものを１つのＮアップ画像として連結する。
【００２２】
図９に示す処理では、Ｎアップ画像におけるレイアウトの行方向をi、列方向をjとしていずれも０に初期化しておく。先ず、画像(i,j)があるか否かを判断し（ステップＳ１１１）、ある場合にはその画像(i,j)が二値画像またはランレングスデータであるか否かを判断する（ステップＳ１１２）。
【００２３】
画像(i,j)が二値画像またはランレングスデータである場合には、画像(i,j+1)があるか否かを判断し（ステップＳ１１３）、ある場合にはこの画像(i,j+1)が二値画像またはランレングスデータであるか否かを判断する（ステップＳ１１４）。
【００２４】
画像(i,j+1)が二値画像である場合には、画像(i,j)と画像(i,j+1)とをランレングスデータに変換して連結する（ステップＳ１１５）。また、ランレングスデータである場合には変換せずに連結する。
【００２５】
一方、画像(i,j)もしくは画像(i,j+1)が二値画像またはランレングスデータでなかった場合には列方向の次の画像へ進み、これを列方向の全ての画像について行う。
【００２６】
列方向の画像全てについて上記の処理が終了したら、ステップＳ１１６へ進み、i行がカラー画像のみか、もしくはカラー画像とランレングスデータとが混在するか否かを判断する。ここでi行にカラー画像とランレングスデータとが混在している場合にはランレングスデータを画像に変換し、画像同士の連結を行う（ステップＳ１１７）。
【００２７】
また、i行が全てランレングスデータである場合にはi行が最初の行であるか否かを判断し（ステップＳ１１８）、最初の行である場合には次の行へ進み、最初の行でない場合にはi行とi-1行が共にランレングスデータであるか否を判断する（ステップＳ１１９）。そして、全てランレングスデータである場合にはi行とi-1行のランレングスデータを連結する（ステップＳ１２０）。
【００２８】
その後、i行が最後の行であるか否かを判断し（ステップＳ１２１）、最後である場合にはランレングスデータを画像データに変換し、画像同士の連結を行う（ステップＳ１２２）。これにより、隣接する画像が二値画像もしくはランレングスデータである場合にはランレングスデータとして結合できるため、少ないメモリ消費でＮアップ画像を生成できるようになる。
【００２９】
なお、図９に示す例では、既にサイズ調整がなされた画像またはランレングスデータが入力されるものを想定しているが、各画像またはランレングスデータのサイズがばらばらのまま入力され、連結前にサイズ調整を行っても構わない。こうすれば、二値画像をそのままサイズ調整するよりはランレングスデータをサイズ調整したほうが高速であると考えられるため、ランレングスデータに変換するメリットが得られる。
【００３０】
さらに、二値画像のサイズや種類によってランレングスデータに変換するかに値画像のまま処理を行うかを判断してもよい。例えば画像のサイズが小さい場合には、ランレングスデータに変換したことにより得られる高速化のメリットよりもランレングスデータに変換する処理のオーバーヘッドが大きくなるかもしれない。また、画像が写真画像であるような場合には、色が均一な領域が少なくなるためランレングスデータに要するメモリ領域の方が、元の画像に要するメモリ領域よりも大きくなってしまうかもしれず、ランレングスデータに変換しない方が望ましい場合もありうる。このように、画像の特徴に応じてランレングスデータに変換するか否かを判断するようにしてもよい。
【図面の簡単な説明】
【００３１】
【図１】本実施形態に係る画像処理装置を説明するブロック図である。
【図２】ランの開始位置とランの終了位置を格納する形式を示す図である。
【図３】ランの開始位置とランの長さを格納する形式を示す図である。
【図４】多値画像の場合にはこれらに加えてランの色を格納する形式を示す図である。
【図５】ランレングス連結部の処理例を示すフローチャートである。
【図６】ランの連結について説明する模式図である。
【図７】ランレングスデータの連結を利用した２アップ画像の生成例を示すフローチャートである。
【図８】生成する２アップ画像を示す模式図である。
【図９】カラー画像と２値画像が混在した場合のＮアップ画像の生成例を示すフローチャートである。
【符号の説明】
【００３２】
１１…ランレングス変換部、１２…ランレングス連結部、１３…画素変換部
【図１】
2006174319.tif 000003
【図２】
2006174319.tif 000004
【図３】
2006174319.tif 000005
【図４】
2006174319.tif 000006
【図５】
2006174319.tif 000007
【図６】
2006174319.tif 000008
【図７】
2006174319.tif 000009
【図８】
2006174319.tif 000010
【図９】
2006174319.tif 000011