画像処理装置、画像処理方法、コンピュータプログラム
【課題】 同一画素値の連続が多いにも関わらず、画像の特徴によってはデータ量が減りにくい場合がある。
【解決手段】 本発明は、画像データを、複数の画素から構成されるブロックに分割する分割手段と、前記ブロック毎に最多色を検出する最多色検出手段と、
前記ブロック毎に最多色の占有率を算出する最多色占有率算出手段と、
前記最多色占有率に応じて、少なくとも低解像度画素のみで構成されるブロック、高解像度画素と低解像度画素を重ねて構成されるブロックを切り替えてデータ生成を行うデータ生成手段とを有する。
【解決手段】 本発明は、画像データを、複数の画素から構成されるブロックに分割する分割手段と、前記ブロック毎に最多色を検出する最多色検出手段と、
前記ブロック毎に最多色の占有率を算出する最多色占有率算出手段と、
前記最多色占有率に応じて、少なくとも低解像度画素のみで構成されるブロック、高解像度画素と低解像度画素を重ねて構成されるブロックを切り替えてデータ生成を行うデータ生成手段とを有する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、効率よくデータ量の削減を行う画像処理装置、画像処理方法、コンピュータプログラムに関する。
【背景技術】
【0002】
従来、画像の特徴に応じて各画素毎に解像度を切り替えながら印刷できるようにすることにより、画質を保ちながら余分なデータの発生を無くし、画質劣化や必要以上の印刷データ量の増加を防ぐことが考えられている。
【0003】
特許文献1では、画像を所定の大きさのブロックに分割し、そのブロックが均一な色であるか否かを判定する。そのブロックが均一な色であれば、低解像度の画素とみなし、数ドットをまとめたブロックを実際の1画素として使用する。均一な色でなければ、高解像度の画素とみなして複数解像度の印刷データを生成する。尚、低解像度の画素と高解像度の画素の切り替えには、解像度切り替えコードを使用する。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開平9−220830
【発明の概要】
【発明が解決しようとする課題】
【0005】
従来の方法では、画像を所定の大きさのブロックに分割し、そのブロックが均一な色であるか否かを判定しているため、同一画素値の連続が多いにも関わらず、画像の特徴によってはデータ量が減りにくい場合がある。例えば、文字や線画のエッジ部分、あるいは地紋や格子模様などは、均一な色とならない場合が多いため、高解像度の画素とみなされてしまい、データ量が減りにくい。図9の901は、格子模様を示す画像の一例であり、901を4×4のブロックに分割すると、902〜907で示す図のようになる。ここで、902及び903は、ブロックが均一な色であるため、908で示すように低解像度の画素と見なすことがきるが、904〜907は、ブロックが均一な色ではないため、高解像度の画素とみなされてしまい、データ量が減りにくい。
【0006】
また、909は、線画のエッジ部分を示す画像の一例であり、909を4×4のブロックに分割すると、910〜913で示す図のようになる。ここで、910〜913は、ブロックが均一な色ではないため、高解像度の画素とみなされてしまい、データ量が減りにくい。
【課題を解決するための手段】
【0007】
本発明は上記課題を解決することを目的とし、画像データを、複数の画素から構成されるブロックに分割する分割手段と、
前記各ブロックの中で最多色を検出する最多色検出手段と、
前記最多色の占有率を算出する最多色占有率算出手段と、
前記最多色占有率に応じて、
低解像度画素のみで構成されるブロック、高解像度画素と低解像度画素を重ねて構成されるブロックを切り替えてデータ生成を行うデータ生成手段と、
を有することを特徴する。
【発明の効果】
【0008】
本発明によれば、ブロックが均一な色であっても、ブロックが均一な色でなくても、画質を劣化させることなく、効率的にデータ量を減らすが可能である。
【図面の簡単な説明】
【0009】
【図1】本発明のデータ構造について説明するための図である。
【図2】本発明に係る画像処理システムを示すブロック図である。
【図3】図2の解像度切替部218の構成例を示すブロック図である。
【図4】図2のRIP部213の構成例を示すブロック図である。
【図5】本発明の最多色占有率について説明するための図である。
【図6】本発明の画像処理システムで実行する処理概要を説明するフローチャートである。
【図7】本発明のデータ構造について説明するための図である。
【図8】本発明の最多色占有率とデータ量の関係を説明する図である。
【図9】本発明の課題を補足するための図である。
【図10】本発明の実施例2における図2の解像度切替部218の処理を説明するフローチャートである。
【図11】本発明の実施例3における図2の解像度切替部218の処理を説明するフローチャートである。
【図12】本発明の実施例3におけるデータ復元について説明するための図である。
【図13】本発明の実施例4における図2の解像度切替部218の処理を説明するフローチャートである。
【発明を実施するための形態】
【0010】
(実施例1)
以下、本発明を実施するための最良の形態について図面を用いて説明する。
【0011】
[MFP]
図2は本実施例の画像処理装置であるMFPの構成を示すブロック図である。
【0012】
MFPは、画像入力デバイスであるスキャナ部201と、画像出力デバイスであるプリンタ部202と、CPU205等で構成される制御ユニット204と、ユーザインタフェースである操作部203等を有する。制御ユニット204は、スキャナ部201、プリンタ部202、操作部203と接続し、一方では、LAN219や一般の電話回線網である公衆回線(WAN)220と接続することで、画像情報やデバイス情報の入出力を行うコントローラである。CPU205は、制御ユニット204に含まれる各ユニットを制御する。RAM206はCPU205が動作するためのシステムワークメモリであり、画像データを一時記憶するための画像メモリでもある。ROM210はブートROMであり、システムのブートプログラム等のプログラムが格納されている。記憶部211はハードディスクドライブで、システム制御ソフトウェア、画像データを格納する。操作部I/F207は操作部(UI)203とのインターフェース部で、操作部203に表示するための画像データを操作部203に対して出力する。また、操作部I/F207は操作部203から本画像処理装置の使用者が入力した情報を、CPU205に伝える役割をする。ネットワークIF208は本画像処理装置をLAN219に接続し、パケット形式の情報の入出力を行う。モデム209は本画像処理装置を公衆回線220に接続し、データの復調・変調を行うことにより情報の入出力を行う。以上のデバイスがシステムバス221上に配置される。
【0013】
イメージバスインターフェース212はシステムバス221と画像データを高速で転送する画像バス222とを接続し、データ構造を変換するバスブリッジである。画像バス222は、例えば、PCIバスやIEEE1394で構成される。画像バス222上には以下のデバイスが配置される。RIP(ラスターイメージプロセッサ)部213はPDL(ページ記述言語)コードを解析し、指定された解像度のビットマップイメージに展開する、いわゆるレンダリング処理を実現する。デバイスI/F部214は、信号線223を介して画像入力デバイスであるスキャナ部201、信号線224を介して画像出力デバイスであるプリンタ部202、をそれぞれ制御ユニット204に接続し、画像データの同期系/非同期系の変換を行う。スキャナ画像処理部215は、入力画像データに対し補正、加工、編集を行う。プリンタ画像処理部216は、プリンタ部202に出力すべきプリント出力画像データに対して、プリンタ部202に応じた補正、解像度変換等を行う。画像回転部217は入力された画像データが正立するように回転を行い出力する。解像度切替部218については後述する。
【0014】
[RIP部]
次に、図4を用いて、RIP部213の詳細説明を行う。
RIP部213は、一般に、インタプリタ部401とレンダリング部402の2つの部分から成り立っており、インタプリタ部401は、PDL解釈部403と、DL(Display List)生成部404とで構成されている。一方、レンダリング部は、CMM(Color Matching Module)部405と、DL展開部406とで構成されている。印刷出力の際、ページ記述言語(PDL)に従うPDLデータがRIP部213へ入力される。ここで、PDLデータは、テキスト、グラフィック、イメージのオブジェクトを描画するための描画コマンドで記述されている。
【0015】
PDL解釈部403は、当該描画コマンドの解釈を行う。DL生成部404は、PDL解釈部403によって解釈されたPDLデータをディスプレイリストと呼ばれる中間データに変換する。ここで、中間データに変換する際に、PS(PostScript(登録商標))、PCL(Print Control Language)、LIPS(LBP Image Processing System(登録商標))、PDF(Portable Document Format)で異なる描画コマンドは、共通の描画コマンドに変換する。CMM部405は、当該中間データに対してカラーマッチングを行う。DL展開部406は、当該カラーマッチング後の中間データをビットマップ画像データに展開する。
【0016】
次に、DL展開部406によって展開されたビットマップ画像データは解像度切替部218へ転送される。
【0017】
[解像度切替部]
次に、図3を用いて、解像度切替部218の詳細説明を行う。
解像度切替部218は、ブロック分割部301、色検出部302、色占有率演算部303、解像度切替フラグ設定部304、重畳フラグ設定部305、データ生成部306で構成される。前述のRIP部213から出力されるビットマップ画像データが、解像度切替部218へ入力される。ブロック分割部301は、入力データ300をM×Nのサイズ(M、Nは整数)に分割する。尚、本実施例1では、4×4のサイズに分割する場合について説明を行う。最多色検出部302は、ブロック分割部301で分割された各ブロック内で最も多く使用されている色(以下、最多色)を検出する。検出方法については、例えば、ブロック内の各画素の色分布を作成し、ピーク値を最多色とする方法等があげられる。
【0018】
最多色占有率算出部303は、最多色が各ブロック内に占める割合を最多色占有率として算出する。解像度切替フラグ設定部304は、各ブロックにおいて低解像度画素と見なされる画素がある場合とない場合で切り替えるためのフラグである。ここで、低解像度画素と見なされる画素がある場合は、低解像度画素を基準とし、解像度切替フラグ=0が設定される。低解像度画素と見なされる画素がない場合は、高解像度画素を基準とし、解像度切替フラグ=1が設定される。重畳フラグ設定部305は、各ブロックにおいて重畳される画素がある場合とない場合で切り替えるためのフラグである。重畳とは最多色である画素を低解像度画素とみなし、最多色以外の残りの画素を高解像度画素とみなし、両者を重ねて表現することを意味している。
【0019】
データ生成部306は、後述するデータ構造に基づいてデータ生成を行う。生成されたデータは、出力データとしてRAM206、HDD211、プリンタ画像処理部216へ転送される。
【0020】
[最多色占有率]
次に、図5を用いて、最多色占有率算出部303において算出される最多色占有率について説明を行う。図5(a)〜(p)は、各々4×4の合計16画素で構成されており、占有率を100%から0%まで段階的に変化させた様子を示す図である。
【0021】
ここで、A〜Pで示される1つの画素は、R=G=B=8bit、即ち24bit(=3byte)で表現される色を有しており、A≠B≠C≠・・・≠Pとする。また、最多色は、(a)〜(o)において常にAとし、(p)においては、最多色はなしとする。
【0022】
例えば、図5(i)では、16画素の構成は、A=8画素、B=5画素、C=2画素、D=1画素であり、Aが最多色となる。占有率は、最多色の画素数/全体の画素数で計算される。図5(i)では、8/16=50%と計算される。
【0023】
尚、最多色が、2つ以上存在する場合は、どちらの色を最多色としてもよいものとする。たとえば、図5(n)では、16画素の構成は、A=3画素、B=3画素、C=2画素、D=2画素、E=2画素、F=2画素、G=2画素であり、A及びBのどちらを最多色としてもよいものとする。図5(p)では、16画素の構成は、A〜Pが1画素ずつ使用されているため、最多色はなしとする。
【0024】
[データ構造]
次に、図1(A)〜(D)を用いて、本発明の実施例1において低解像度画素と高解像度画素を重畳させて管理するデータ構造について説明を行う。
【0025】
まず、図1(A)は、図5(c)を例に示している。本実施例では、図1(A)の画素の中で最多色であるAの画素101を低解像度画素とみなし、最多色以外の残りのBの画素102とCの画素103を高解像度画素とみなし、両者を重畳させて管理するデータ構造を用いる。例えば、入力データが1200dpiのビットマップ画像データの時、4×4の画素をまとめたブロックを実際の1画素として使用する場合、低解像度画素は300dpiとなり、4×4の画素を各々1画素として使用する場合、高解像度画素は、1200dpiとなる。
【0026】
次に、図1(B)104〜108は、データ構造を説明する図である。104は、解像度切替フラグであり、1bitの情報からなる。解像度切替フラグは、各ブロックにおいて低解像度画素と見なされる画素がある場合とない場合で切り替えるためのフラグである。ここで、低解像度画素と見なされる画素がある場合は、低解像度画素を基準とし、解像度切替フラグ=0が設定される。低解像度画素と見なされる画素がない場合は、高解像度画素を基準とし、解像度切替フラグ=1が設定される。尚、101は、低解像度画素と見なされる画素があるため、低解像度画素を基準とし、解像度切替フラグ=0が設定される。105は、重畳フラグであり、1bitの情報からなる。重畳フラグは、各ブロックにおいて重畳される画素がある場合とない場合で切り替えるためのフラグである。重畳とは最多色である画素を低解像度画素とみなし、最多色以外の残りの画素を高解像度画素とみなし、両者を重ねて表現することを意味している。ここで、図1(C)を用いて補足する。図1(C)は、図1(A)に対して低解像度画素と高解像度画素を重畳させた様子を示す図である。109は、低解像度画素と見なされる画素、110は、高解像度画素と見なされる画素を示す。以上のように、最多色であるAの画素101を低解像度画素と見なし、最多色以外の残りのBの画素102とCの画素103を高解像度画素とみなし、両者を重畳させて管理することでデータ量の削減が可能である。ここで、重畳される画素がある場合は、重畳フラグ=1が設定され、重畳される画素がない場合は、重畳フラグ=0が設定される。尚、低解像度画素と見なされる画素がない場合は、高解像度画素のみで構成されるため自動的に重畳される画素はないと決定される。106は、最多色の画素の色情報であり、各ブロックにおいて最多色は常に1つの色であるため、3byteの情報からなる。107は、最多色以外の画素のアドレス情報であり、最多色以外の画素が配置される位置を決定するための情報である。例えば、ブロックが4×4である場合は、図1(D)に示すように最多色以外の各画素は(0、0)〜(3,3)の計4bitの情報量で表される。図1(A)のBの画素102のアドレス情報は、(1、1)、Cの画素103のアドレス情報は、(3、3)となる。108は、最多色以外の画素の色情報であり、最多色以外の画素数×3byteの情報からなる。
【0027】
図7の701〜704は、図5の(a)、(c)、(f)、(p)を例として前述のデータ構造を示した図である。
【0028】
まず、701は、最多色占有率が100%であるため、低解像度画素と見なされる画素のみで構成される。また、低解像度画素を基準とするため、解像度切替フラグ=0が設定される。また、重畳される画素がないため、重畳フラグ=0が設定される。最多色の画素は、Aの画素である。最多色以外の画素のアドレス情報、及び最多色以外の画素は、最多色以外の画素を有していないため「なし」とする。
【0029】
次に、702は、最多色占有率が87.5%であるため、低解像度画素と見なされる画素と高解像度画素とみなされる画素で構成される。また、低解像度画素を基準とするため、解像度切替フラグ=0が設定される。また、重畳される画素があるため、重畳フラグ=1が設定される。最多色の画素は、Aの画素である。最多色以外の画素のアドレス情報は、(1、1)、(3,3)であり、最多色以外の画素は、B、Cの画素である。
【0030】
次に、703は、最多色占有率が68.75%であるため、低解像度画素と見なされる画素と高解像度画素とみなされる画素で構成される。また、低解像度画素を基準とするため、解像度切替フラグ=0が設定される。また、重畳される画素があるため、重畳フラグ=1が設定される。最多色の画素は、Aの画素である。最多色以外の画素のアドレス情報は、(3、1)、(0、2)、(3、2)、(2、3)、(3,3)であり、最多色以外の画素は、B、C、Dの画素である。
【0031】
次に、704は、最多色占有率が0%であるため、高解像度画素と見なされる画素のみで構成される。また、高解像度画素を基準とするため、解像度切替フラグ=1が設定される。最多色の画素、最多色以外の画素のアドレス情報、及び最多色以外の画素は、最多色を有していないため「なし」とする。
【0032】
次に、最多色占有率の値とデータ量の関係について説明する。図8は、4×4の各ブロックの最多色占有率が0%〜100%まで変化した場合の構成画素数、及びデータ量(bit)を説明するための図である。
【0033】
まず、構成画素数とは、最多色の画素数及び、最多色以外の画素数である。前述したように最多色占有率が0%の場合、最多色の画素数は、0画素であり、最多色以外の画素数は16画素となる。また、最多色占有率が75%の場合、最多色の画素数は、1画素であり、最多色以外の画素数は4画素となる。また、最多色占有率が100%の場合、最多色の画素数は、1画素であり、最多色以外の画素数は0画素となる。
【0034】
次に、データ量は、色情報量(合計画素数×24bit)、解像度切替フラグ(1bit)、重畳フラグ(1bit)、最多色以外の画素のアドレス情報(最多色以外の画素数×4bit)の合計で示される。最多色占有率が0%の場合、最多色の画素数と最多色以外の画素数の合計画素数は、16画素であるため、色情報量は、384bit(=16×24)と計算される。該色情報量に、解像度切替フラグ1bit、重畳フラグ1bitを加算すると、合計386bitのデータ量となる。また、最多色占有率が50%の場合、最多色の画素数と最多色以外の画素数の合計画素数は、9画素であるため、色情報量は、216bit(=9×24)と計算される。該色情報量に、解像度切替フラグ1bit、重畳フラグ1bit、最多色以外の画素のアドレス情報32bit(=8×4)を加算すると、合計250bitのデータ量となる。
【0035】
ここで、本来、4×4の16画素のデータの場合にデータ量は、384bit(=16×24)必要であることを考慮すると、802、803で示される範囲においてはデータ量の削減効果があることわかる。公知技術は、803で示される範囲である、4×4の画素をまとめたブロックを実際の1画素として使用することによってデータ量の削減を可能としたものである。従って、本実施例のポイントは、802で示される範囲でデータ量の削減効果があることとなる。
【0036】
次に、実施例1の画像処理システムで実行する処理全体の概要を、図6のフローチャートを用いて説明する。図6に示すフローチャートは、図2の解像度切替部218(図3の各処理部)によって実行されるものとする。なお、本実施形態では、CPU205が記憶部211(コンピュータ読取可能な記憶媒体)に格納されたコンピュータプログラムを読み取り実行することによって、解像度切替部218(図3の各処理部)として機能するものとするが、これに限るものではない。例えば、解像度切替部218(図3の各処理部)を、電子回路等のハードウェアで実現するように構成してもよい。
【0037】
図6は、RIP部213から出力されるビットマップ画像データを画質を劣化させることなく、データ量を削減するためのデータ生成処理を行うフローチャートである。
【0038】
まず、ステップS601において、ブロック分割部301は、RIP部213から出力されるビットマップ画像データをM×Nのサイズ(M、Nは整数)に分割する。以降、ステップS602〜S616は、ブロック毎に処理が行われる。
【0039】
次に、ステップS602において、最多色検出部302は、ブロック分割部301で分割された各ブロック内で最も多く使用されている色(以下、最多色)を検出する。
【0040】
次に、ステップS603において、最多色占有率算出部303は、ステップS602において検出された最多色がブロック内に占める割合を最多色占有率として算出する。ここで、最多色占有率をX(%)とする。
【0041】
次に、ステップS604において、CPU205は、ステップS603において算出された最多色占有率Xが100%であるか否かを判定する。最多色占有率Xが100%であると判定された場合は、ステップS606へ進む。ここで、最多色占有率Xが100%であると判定された場合、前述したように注目ブロックは、最多色である画素を低解像度画素と見なし、低解像度画素のみで構成する方法が適していると判断できる。
【0042】
ステップS606において、解像度切替フラグ設定部304は、解像度切替フラグ=0を設定し、注目ブロックの位置情報と解像度切替フラグ=0が関連付けされるようにRAM206等に記憶する。
次に、ステップS607において、重畳フラグ設定部305は、重畳される画素がないため、重畳フラグ=0を設定し、注目ブロックの位置情報と重畳フラグ=0が関連付けされるようにRAM206等に記憶する。次に、ステップS608において、データ生成部306は、最多色である画素を用いて低解像度画素生成を行う。ここで、低解像度画素生成とは、入力データのM×N画素を、最多色である画素を用いて1画素にする処理を意味する。
【0043】
データ生成部306は、ステップS608において生成されるデータを、注目ブロックの位置情報と関連付けされるようにRAM206等に記憶する。
【0044】
ステップS604の説明に戻る。ステップS604において、最多色占有率Xが100%ではないと判定された場合は、ステップS605へ進む。
【0045】
ステップS605において、CPU205は、ステップS603において算出された最多色占有率Xが予め設定された閾値Th以上かを判定する。ブロックのサイズが4×4の場合、図8で前述したように、データ量の削減効果があるのは、最多色占有率が25%以上の範囲であるため、閾値Th=25と設定される。
【0046】
最多色占有率XがTh以上であると判定された場合は、ステップS609へ進む。ここで、最多色占有率XがTh以上であると判定された場合、前述したように注目ブロックは、最多色である画素を低解像度画素と見なし、最多色以外の残りの画素を高解像度画素とみなし、両者を重ねて表現する構成が適していると判断できる。
【0047】
ステップS609において、解像度切替フラグ設定部304は、解像度切替フラグ=0を設定し、注目ブロックの位置情報と解像度切替フラグ=0が関連付けされるようにRAM206等に記憶する。
【0048】
次に、ステップS610において、重畳フラグ設定部305は、重畳される画素があるため、重畳フラグ=1を設定し、注目ブロックの位置情報と重畳フラグ=1が関連付けされるようにRAM206等に記憶する。
【0049】
次に、ステップS611において、データ生成部306は、最多色である画素を用いて低解像度画素生成を行う。ここで、低解像度画素生成とは、入力データのM×N画素を、最多色である画素を用いて1画素にする処理を意味する。
【0050】
次に、ステップS612において、データ生成部306は、最多色以外の残りの画素を用いて高解像度画素生成を行う。ここで、高解像度画素生成とは、入力データのM×N画素の内、最多色以外の残りの画素をそのまま用いる処理を意味する。
【0051】
次に、ステップS613において、データ生成部306は、最多色以外の画素のアドレス情報を生成する。
【0052】
データ生成部306は、ステップS611〜S613において生成されるデータを、注目ブロックの位置情報と関連付けされるようにRAM206等に記憶する。
【0053】
ステップS605の説明に戻る。ステップ605において、最多色占有率XがTh未満であると判定された場合は、ステップS614へ進む。ここで、最多色占有率XがTh未満であると判定された場合、前述したように注目ブロックは、高解像度画素のみで構成する方法が適していると判断できる。
【0054】
ステップS614において、解像度切替フラグ設定部304は、解像度切替フラグ=1を設定し、注目ブロックの位置情報と解像度切替フラグ=1が関連付けされるようにRAM206等に記憶する。
【0055】
次に、ステップS615において、重畳フラグ設定部305は、重畳される画素があるため、重畳フラグ=0を設定し、注目ブロックの位置情報と重畳フラグ=0が関連付けされるようにRAM206等に記憶する。
【0056】
次に、ステップS616において、データ生成部306は、最多色である画素、及び最多色以外の残りの画素を用いて高解像度画素生成を行う。ここで、高解像度画素生成とは、入力データのM×N画素全てをそのまま用いる処理を意味する。
【0057】
データ生成部306は、ステップS616において生成されるデータを、注目ブロックの位置情報と関連付けされるようにRAM206等に記憶する。
【0058】
次に、ステップS617において、CPU205は、全てのブロックが終了したか否かを判断する。全てのブロックが終了していない場合、ステップS602に戻る。全てのブロックが終了した場合、ステップS618に進む。
【0059】
次に、ステップS618において、CPU205は、各ブロックでRAM206等に記憶しているデータを各々関連付けてHDD211に保存する。
【0060】
尚、HDD211に保存する際に、高解像度画素は高解像度であるのでJPEG等の圧縮をすると折角の高解像度画質が劣化するので、低解像度画素のみで構成されるブロックはまとめ、一般的に知られるJPEG等のカラー画像の圧縮方法を適用してもよい。
【0061】
上述した方法は、階調が連続的に変化する写真等の自然画ではなく、同じ色が連続するオフィス文書や、CADやCG、プレゼンテーションのようにコンピュータアプリケーションで作成した画像に対して有効である。
【0062】
従って、例えば複数のオブジェクト(写真オブジェクト、コンピュータグラフィックスのオブジェクト)が混在するデータを処理する場合には、複数オブジェクトのうちコンピュータグラフィックスのオブジェクトに対して上述のデータ削減をするとよい。
【0063】
以上、本実施例1によれば、ブロックが均一な色であっても、ブロックが均一な色でなくても、画質を劣化させることなく、効率的にデータ量を減らすが可能である。
【0064】
(実施例2)
実施例1では、最多色占有率の値に基づいて、低解像度画素、及び高解像度画素を生成する方法について説明した。しかしながら、例えば全てのブロックの最多色占有率がTh未満である場合は、重畳フラグのデータ分だけ、データ量が増えてしまう場合がある。実施例2では、このような場合には重畳フラグの破棄を行うことで、データ量の増加を抑える方法について説明を行う。
【0065】
図10に示すフローチャートは、図2の解像度切替部218(図3の各処理部)によって実行されるものとする。なお、本実施形態では、CPU205が記憶部211(コンピュータ読取可能な記憶媒体)に格納されたコンピュータプログラムを読み取り実行することによって、解像度切替部218(図3の各処理部)として機能するものとするが、これに限るものではない。例えば、解像度切替部218(図3の各処理部)を、電子回路等のハードウェアで実現するように構成してもよい。
【0066】
図10は、実施例1で前述した図6のステップS601〜617が終了した後の処理を行うフローチャートである。ステップS601〜617に関しては、説明を省略する。
【0067】
まず、ステップS1001において、CPU205は、ステップS609において重畳フラグ=1で設定されたブロック数を算出する。
【0068】
次に、ステップS1002において、CPU205は、ステップS1001において算出したブロック数が総ブロック数に対して占める割合を占有率として算出する。
【0069】
次に、ステップS1003において、CPU205は、ステップS1002において算出した占有率が予め設定された閾値Th2より大きいかを判定する。占有率がTh2より大きいと判定された場合は、ステップS1004へ進む。ステップS1004において、CPU205は、全てのブロックの重複フラグの破棄を行う。即ち、最多色である画素を低解像度画素とみなし、最多色以外の残りの画素を高解像度画素とみなし、両者を重ねて表現する構成のブロックが破棄される。従って、低解像度画素のみで構成されるブロックと、高解像度画素のみで構成されるブロックのデータとなる。
【0070】
次に、ステップS618において、CPU205は、各ブロックでRAM206等に記憶しているデータを各々関連付けてHDD211に保存する。
【0071】
尚、実施例1と同様、HDD211に保存する際に、低解像度画素のみで構成されるブロックをまとめ、一般的に知られるJPEG等のカラー画像の圧縮方法を適用してもよい。
【0072】
以上、本実施例2によれば、例えば全てのブロックの最多色占有率がTh未満となり、重複フラグのデータ分だけ、データ量が増えてしまうような画像の場合にもデータ量の増加を抑えることが可能となる。
【0073】
(実施例3)
実施例1、2では、入力されるビットマップ画像データをブロックに分割し、ブロックが均一な色であっても、ブロックが均一な色でなくても、画質を劣化させることなく、効率的にデータ量を減らしたデータを生成する方法について説明した。実施例3では、生成されたデータを復元する方法について説明を行う。
【0074】
図11に示すフローチャートは、解像度切替部218の中の不図示のデータ復元部によって実行されるものとする。なお、本実施形態では、CPU205が記憶部211(コンピュータ読取可能な記憶媒体)に格納されたコンピュータプログラムを読み取り実行することによって、データ復元部として機能するものとするが、これに限るものではない。例えば、データ復元部を、電子回路等のハードウェアで実現するように構成してもよい。
【0075】
図11は、図6のフローチャートの処理が終了し、記憶部211に保存されたデータの復元の処理を行うフローチャートである。
【0076】
まず、ステップS1101において、CPU205は、記憶部211に保存されたデータの読み出しを行う。ここで、記憶部211に保存されたデータは、ブロック毎に関連付けされたデータである。以降、ステップS1102〜S1111は、ブロック毎に処理が行われる。ここで、図1を用いて補足すると、ステップS1102〜S1111は、図1の104〜108で示される情報から101〜103で構成されるブロックを復元する処理を行う。
【0077】
ステップS1102において、データ復元部は、ステップS1101において読み出されたデータから注目ブロックを選択し、解像度切替フラグ、及び重畳フラグの読み出しを行う。
【0078】
次に、ステップS1103において、データ復元部は、ステップS1102において読み出された解像度切替フラグが0or1の判定を行う。解像度切替フラグ=1の場合は、ステップS1111へ進み、ステップS1111において、高解像度画素の読み出しを行う。解像度切替フラグ=0の場合は、ステップS1104へ進む。
【0079】
次に、ステップS1104において、データ復元部は、ステップS1102において読み出された重畳フラグが0or1の判定を行う。重畳フラグ=0の場合は、ステップS1105、S1106の処理を行う。ステップS1105では、低解像度画素の読み出しを行う。ステップS1106では、ステップS1105において読み出された低解像度画素から高解像度画素の生成を行う。図12を用いて補足すると、ステップS1106では、1201で示す1画素から1202で示す4×4の画素の生成を行う。重畳フラグ=1の場合は、ステップS1107〜S1110の処理を行う。ステップS1107では、低解像度画素の読み出しを行う。ステップS1108では、アドレス情報の読み出しを行う。ステップS1109では、高解像度画素の読み出しを行う。ステップS1110では、ステップS1107において読み出された低解像度画素から高解像度画素の生成を行い、さらに、ステップS1108、S1109において読み出されたアドレス情報、高解像度画素のデータを用いて高解像度画素を重ねる処理を行う。図12を用いて補足すると、ステップS1110では、1201で示す1画素から1202で示す4×4の画素の生成を行う。さらに、ステップS1108において読み出されたアドレス情報が、例えば(1、1)(3、3)、ステップS1109において読み出された高解像度画素のデータがB、Cの画素であれば、重ねる処理によって1203で示す4×4の画素が生成される。
【0080】
次に、ステップS1112において、CPU205は、全てのブロックが終了したか否かを判断する。全てのブロックが終了していない場合、ステップS1102に戻る。全てのブロックが終了した場合、ステップS1113に進む。
【0081】
次に、ステップS1113において、データ復元部は、M×Nのサイズ(M、Nは整数)のブロックを合成し、出力データを生成する。即ち、図6のステップS601と逆の処理を行う。
次に、ステップS1114において、プリンタ部202は、ステップS1113において、生成された出力データを出力する。
【0082】
以上、本実施例3によれば、実施例1、2で生成されたデータを復元することが可能となる。
【0083】
(実施例4)
実施例4では、実施例1、2で生成されたデータを復元する際に、用途によって、復元方法を切り替える方法について説明する。画質が優先される場合には、実施例3で前述した通りの復元を行い、スピードが優先される場合には、本実施例4で説明する復元を行う。
【0084】
ここで、スピードが優先される場合とは、例えば、プレビューやサムネイル表示、縮小レイアウト等、非可逆な復元を行っても画質の劣化が目立たない機能を意味している。
【0085】
図13に示すフローチャートは、解像度切替部218の中の不図示のデータ復元部によって実行されるものとする。なお、本実施形態では、CPU205が記憶部211(コンピュータ読取可能な記憶媒体)に格納されたコンピュータプログラムを読み取り実行することによって、データ復元部として機能するものとするが、これに限るものではない。例えば、データ復元部を、電子回路等のハードウェアで実現するように構成してもよい。
【0086】
図13は、図6のフローチャートの処理が終了し、記憶部211に保存されたデータの復元の処理を行うフローチャートである。尚、図11のフローチャートと同じ処理については、同じ符号を使用しており、一部説明を省略する。
まず、ステップS1301において、データ復元部は、画質優先かスピード優先かを判定する。画質優先と判定された場合は、図11のフローチャートへ進む。スピード優先と判定された場合は、ステップS1101へ進む。ステップS1101〜S1104については、説明を一部省略する。
【0087】
ステップS1103において、解像度切替フラグ=1の場合は、ステップS1111、S1302の処理を行う。まず、ステップS1111において、高解像度画素の読み出しを行う。次に、ステップS1302において、ステップS1111において読み出された高解像度画素から低解像度画素の生成を行う。低解像度画素の生成の方法については、例えば、間引き処理があげられる。
次に、ステップS1103に戻り、解像度切替フラグ=0の場合は、ステップ S1104へ進む。ステップS1104において、重畳フラグ=0の場合は、ステップS1105の処理を行う。ステップS1105では、低解像度画素の読み出しを行う。ここで、実施例3では、ステップS1105において読み出された低解像度画素から高解像度画素の生成を行ったが、実施例4では低解像度画素をそのまま用いる。
【0088】
また、ステップS1104において、重畳フラグ=1の場合は、ステップS1107の処理を行う。ステップS1107では、低解像度画素の読み出しを行う。ここで、実施例3では、ステップS1107において読み出された低解像度画素から高解像度画素の生成を行い、さらに、読み出されたアドレス情報、高解像度画素のデータを用いて高解像度画素を重ねる処理を行ったが、実施例4では低解像度画素をそのまま用いる。
【0089】
次に、ステップS1112において、CPU205は、全てのブロックが終了したか否かを判断する。以降、ステップS1113〜S1114については、説明を省略する。
【0090】
以上、本実施例4によれば、実施例1、2で生成されたデータを復元する際に、用途によって、復元方法を切り替えることが可能となる。また、スピードが優先される場合には、記憶部211に保存されたデータの内、低解像度画素はそのまま用いることで、高速に復元することが可能となる。
【0091】
実施例1〜4における各処理工程は、ネットワーク又は各種記憶媒体を介して取得したソフトウエア(プログラム)をパソコン等の処理装置(CPU、プロセッサ)にて実行することでも実現できる。
【技術分野】
【0001】
本発明は、効率よくデータ量の削減を行う画像処理装置、画像処理方法、コンピュータプログラムに関する。
【背景技術】
【0002】
従来、画像の特徴に応じて各画素毎に解像度を切り替えながら印刷できるようにすることにより、画質を保ちながら余分なデータの発生を無くし、画質劣化や必要以上の印刷データ量の増加を防ぐことが考えられている。
【0003】
特許文献1では、画像を所定の大きさのブロックに分割し、そのブロックが均一な色であるか否かを判定する。そのブロックが均一な色であれば、低解像度の画素とみなし、数ドットをまとめたブロックを実際の1画素として使用する。均一な色でなければ、高解像度の画素とみなして複数解像度の印刷データを生成する。尚、低解像度の画素と高解像度の画素の切り替えには、解像度切り替えコードを使用する。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開平9−220830
【発明の概要】
【発明が解決しようとする課題】
【0005】
従来の方法では、画像を所定の大きさのブロックに分割し、そのブロックが均一な色であるか否かを判定しているため、同一画素値の連続が多いにも関わらず、画像の特徴によってはデータ量が減りにくい場合がある。例えば、文字や線画のエッジ部分、あるいは地紋や格子模様などは、均一な色とならない場合が多いため、高解像度の画素とみなされてしまい、データ量が減りにくい。図9の901は、格子模様を示す画像の一例であり、901を4×4のブロックに分割すると、902〜907で示す図のようになる。ここで、902及び903は、ブロックが均一な色であるため、908で示すように低解像度の画素と見なすことがきるが、904〜907は、ブロックが均一な色ではないため、高解像度の画素とみなされてしまい、データ量が減りにくい。
【0006】
また、909は、線画のエッジ部分を示す画像の一例であり、909を4×4のブロックに分割すると、910〜913で示す図のようになる。ここで、910〜913は、ブロックが均一な色ではないため、高解像度の画素とみなされてしまい、データ量が減りにくい。
【課題を解決するための手段】
【0007】
本発明は上記課題を解決することを目的とし、画像データを、複数の画素から構成されるブロックに分割する分割手段と、
前記各ブロックの中で最多色を検出する最多色検出手段と、
前記最多色の占有率を算出する最多色占有率算出手段と、
前記最多色占有率に応じて、
低解像度画素のみで構成されるブロック、高解像度画素と低解像度画素を重ねて構成されるブロックを切り替えてデータ生成を行うデータ生成手段と、
を有することを特徴する。
【発明の効果】
【0008】
本発明によれば、ブロックが均一な色であっても、ブロックが均一な色でなくても、画質を劣化させることなく、効率的にデータ量を減らすが可能である。
【図面の簡単な説明】
【0009】
【図1】本発明のデータ構造について説明するための図である。
【図2】本発明に係る画像処理システムを示すブロック図である。
【図3】図2の解像度切替部218の構成例を示すブロック図である。
【図4】図2のRIP部213の構成例を示すブロック図である。
【図5】本発明の最多色占有率について説明するための図である。
【図6】本発明の画像処理システムで実行する処理概要を説明するフローチャートである。
【図7】本発明のデータ構造について説明するための図である。
【図8】本発明の最多色占有率とデータ量の関係を説明する図である。
【図9】本発明の課題を補足するための図である。
【図10】本発明の実施例2における図2の解像度切替部218の処理を説明するフローチャートである。
【図11】本発明の実施例3における図2の解像度切替部218の処理を説明するフローチャートである。
【図12】本発明の実施例3におけるデータ復元について説明するための図である。
【図13】本発明の実施例4における図2の解像度切替部218の処理を説明するフローチャートである。
【発明を実施するための形態】
【0010】
(実施例1)
以下、本発明を実施するための最良の形態について図面を用いて説明する。
【0011】
[MFP]
図2は本実施例の画像処理装置であるMFPの構成を示すブロック図である。
【0012】
MFPは、画像入力デバイスであるスキャナ部201と、画像出力デバイスであるプリンタ部202と、CPU205等で構成される制御ユニット204と、ユーザインタフェースである操作部203等を有する。制御ユニット204は、スキャナ部201、プリンタ部202、操作部203と接続し、一方では、LAN219や一般の電話回線網である公衆回線(WAN)220と接続することで、画像情報やデバイス情報の入出力を行うコントローラである。CPU205は、制御ユニット204に含まれる各ユニットを制御する。RAM206はCPU205が動作するためのシステムワークメモリであり、画像データを一時記憶するための画像メモリでもある。ROM210はブートROMであり、システムのブートプログラム等のプログラムが格納されている。記憶部211はハードディスクドライブで、システム制御ソフトウェア、画像データを格納する。操作部I/F207は操作部(UI)203とのインターフェース部で、操作部203に表示するための画像データを操作部203に対して出力する。また、操作部I/F207は操作部203から本画像処理装置の使用者が入力した情報を、CPU205に伝える役割をする。ネットワークIF208は本画像処理装置をLAN219に接続し、パケット形式の情報の入出力を行う。モデム209は本画像処理装置を公衆回線220に接続し、データの復調・変調を行うことにより情報の入出力を行う。以上のデバイスがシステムバス221上に配置される。
【0013】
イメージバスインターフェース212はシステムバス221と画像データを高速で転送する画像バス222とを接続し、データ構造を変換するバスブリッジである。画像バス222は、例えば、PCIバスやIEEE1394で構成される。画像バス222上には以下のデバイスが配置される。RIP(ラスターイメージプロセッサ)部213はPDL(ページ記述言語)コードを解析し、指定された解像度のビットマップイメージに展開する、いわゆるレンダリング処理を実現する。デバイスI/F部214は、信号線223を介して画像入力デバイスであるスキャナ部201、信号線224を介して画像出力デバイスであるプリンタ部202、をそれぞれ制御ユニット204に接続し、画像データの同期系/非同期系の変換を行う。スキャナ画像処理部215は、入力画像データに対し補正、加工、編集を行う。プリンタ画像処理部216は、プリンタ部202に出力すべきプリント出力画像データに対して、プリンタ部202に応じた補正、解像度変換等を行う。画像回転部217は入力された画像データが正立するように回転を行い出力する。解像度切替部218については後述する。
【0014】
[RIP部]
次に、図4を用いて、RIP部213の詳細説明を行う。
RIP部213は、一般に、インタプリタ部401とレンダリング部402の2つの部分から成り立っており、インタプリタ部401は、PDL解釈部403と、DL(Display List)生成部404とで構成されている。一方、レンダリング部は、CMM(Color Matching Module)部405と、DL展開部406とで構成されている。印刷出力の際、ページ記述言語(PDL)に従うPDLデータがRIP部213へ入力される。ここで、PDLデータは、テキスト、グラフィック、イメージのオブジェクトを描画するための描画コマンドで記述されている。
【0015】
PDL解釈部403は、当該描画コマンドの解釈を行う。DL生成部404は、PDL解釈部403によって解釈されたPDLデータをディスプレイリストと呼ばれる中間データに変換する。ここで、中間データに変換する際に、PS(PostScript(登録商標))、PCL(Print Control Language)、LIPS(LBP Image Processing System(登録商標))、PDF(Portable Document Format)で異なる描画コマンドは、共通の描画コマンドに変換する。CMM部405は、当該中間データに対してカラーマッチングを行う。DL展開部406は、当該カラーマッチング後の中間データをビットマップ画像データに展開する。
【0016】
次に、DL展開部406によって展開されたビットマップ画像データは解像度切替部218へ転送される。
【0017】
[解像度切替部]
次に、図3を用いて、解像度切替部218の詳細説明を行う。
解像度切替部218は、ブロック分割部301、色検出部302、色占有率演算部303、解像度切替フラグ設定部304、重畳フラグ設定部305、データ生成部306で構成される。前述のRIP部213から出力されるビットマップ画像データが、解像度切替部218へ入力される。ブロック分割部301は、入力データ300をM×Nのサイズ(M、Nは整数)に分割する。尚、本実施例1では、4×4のサイズに分割する場合について説明を行う。最多色検出部302は、ブロック分割部301で分割された各ブロック内で最も多く使用されている色(以下、最多色)を検出する。検出方法については、例えば、ブロック内の各画素の色分布を作成し、ピーク値を最多色とする方法等があげられる。
【0018】
最多色占有率算出部303は、最多色が各ブロック内に占める割合を最多色占有率として算出する。解像度切替フラグ設定部304は、各ブロックにおいて低解像度画素と見なされる画素がある場合とない場合で切り替えるためのフラグである。ここで、低解像度画素と見なされる画素がある場合は、低解像度画素を基準とし、解像度切替フラグ=0が設定される。低解像度画素と見なされる画素がない場合は、高解像度画素を基準とし、解像度切替フラグ=1が設定される。重畳フラグ設定部305は、各ブロックにおいて重畳される画素がある場合とない場合で切り替えるためのフラグである。重畳とは最多色である画素を低解像度画素とみなし、最多色以外の残りの画素を高解像度画素とみなし、両者を重ねて表現することを意味している。
【0019】
データ生成部306は、後述するデータ構造に基づいてデータ生成を行う。生成されたデータは、出力データとしてRAM206、HDD211、プリンタ画像処理部216へ転送される。
【0020】
[最多色占有率]
次に、図5を用いて、最多色占有率算出部303において算出される最多色占有率について説明を行う。図5(a)〜(p)は、各々4×4の合計16画素で構成されており、占有率を100%から0%まで段階的に変化させた様子を示す図である。
【0021】
ここで、A〜Pで示される1つの画素は、R=G=B=8bit、即ち24bit(=3byte)で表現される色を有しており、A≠B≠C≠・・・≠Pとする。また、最多色は、(a)〜(o)において常にAとし、(p)においては、最多色はなしとする。
【0022】
例えば、図5(i)では、16画素の構成は、A=8画素、B=5画素、C=2画素、D=1画素であり、Aが最多色となる。占有率は、最多色の画素数/全体の画素数で計算される。図5(i)では、8/16=50%と計算される。
【0023】
尚、最多色が、2つ以上存在する場合は、どちらの色を最多色としてもよいものとする。たとえば、図5(n)では、16画素の構成は、A=3画素、B=3画素、C=2画素、D=2画素、E=2画素、F=2画素、G=2画素であり、A及びBのどちらを最多色としてもよいものとする。図5(p)では、16画素の構成は、A〜Pが1画素ずつ使用されているため、最多色はなしとする。
【0024】
[データ構造]
次に、図1(A)〜(D)を用いて、本発明の実施例1において低解像度画素と高解像度画素を重畳させて管理するデータ構造について説明を行う。
【0025】
まず、図1(A)は、図5(c)を例に示している。本実施例では、図1(A)の画素の中で最多色であるAの画素101を低解像度画素とみなし、最多色以外の残りのBの画素102とCの画素103を高解像度画素とみなし、両者を重畳させて管理するデータ構造を用いる。例えば、入力データが1200dpiのビットマップ画像データの時、4×4の画素をまとめたブロックを実際の1画素として使用する場合、低解像度画素は300dpiとなり、4×4の画素を各々1画素として使用する場合、高解像度画素は、1200dpiとなる。
【0026】
次に、図1(B)104〜108は、データ構造を説明する図である。104は、解像度切替フラグであり、1bitの情報からなる。解像度切替フラグは、各ブロックにおいて低解像度画素と見なされる画素がある場合とない場合で切り替えるためのフラグである。ここで、低解像度画素と見なされる画素がある場合は、低解像度画素を基準とし、解像度切替フラグ=0が設定される。低解像度画素と見なされる画素がない場合は、高解像度画素を基準とし、解像度切替フラグ=1が設定される。尚、101は、低解像度画素と見なされる画素があるため、低解像度画素を基準とし、解像度切替フラグ=0が設定される。105は、重畳フラグであり、1bitの情報からなる。重畳フラグは、各ブロックにおいて重畳される画素がある場合とない場合で切り替えるためのフラグである。重畳とは最多色である画素を低解像度画素とみなし、最多色以外の残りの画素を高解像度画素とみなし、両者を重ねて表現することを意味している。ここで、図1(C)を用いて補足する。図1(C)は、図1(A)に対して低解像度画素と高解像度画素を重畳させた様子を示す図である。109は、低解像度画素と見なされる画素、110は、高解像度画素と見なされる画素を示す。以上のように、最多色であるAの画素101を低解像度画素と見なし、最多色以外の残りのBの画素102とCの画素103を高解像度画素とみなし、両者を重畳させて管理することでデータ量の削減が可能である。ここで、重畳される画素がある場合は、重畳フラグ=1が設定され、重畳される画素がない場合は、重畳フラグ=0が設定される。尚、低解像度画素と見なされる画素がない場合は、高解像度画素のみで構成されるため自動的に重畳される画素はないと決定される。106は、最多色の画素の色情報であり、各ブロックにおいて最多色は常に1つの色であるため、3byteの情報からなる。107は、最多色以外の画素のアドレス情報であり、最多色以外の画素が配置される位置を決定するための情報である。例えば、ブロックが4×4である場合は、図1(D)に示すように最多色以外の各画素は(0、0)〜(3,3)の計4bitの情報量で表される。図1(A)のBの画素102のアドレス情報は、(1、1)、Cの画素103のアドレス情報は、(3、3)となる。108は、最多色以外の画素の色情報であり、最多色以外の画素数×3byteの情報からなる。
【0027】
図7の701〜704は、図5の(a)、(c)、(f)、(p)を例として前述のデータ構造を示した図である。
【0028】
まず、701は、最多色占有率が100%であるため、低解像度画素と見なされる画素のみで構成される。また、低解像度画素を基準とするため、解像度切替フラグ=0が設定される。また、重畳される画素がないため、重畳フラグ=0が設定される。最多色の画素は、Aの画素である。最多色以外の画素のアドレス情報、及び最多色以外の画素は、最多色以外の画素を有していないため「なし」とする。
【0029】
次に、702は、最多色占有率が87.5%であるため、低解像度画素と見なされる画素と高解像度画素とみなされる画素で構成される。また、低解像度画素を基準とするため、解像度切替フラグ=0が設定される。また、重畳される画素があるため、重畳フラグ=1が設定される。最多色の画素は、Aの画素である。最多色以外の画素のアドレス情報は、(1、1)、(3,3)であり、最多色以外の画素は、B、Cの画素である。
【0030】
次に、703は、最多色占有率が68.75%であるため、低解像度画素と見なされる画素と高解像度画素とみなされる画素で構成される。また、低解像度画素を基準とするため、解像度切替フラグ=0が設定される。また、重畳される画素があるため、重畳フラグ=1が設定される。最多色の画素は、Aの画素である。最多色以外の画素のアドレス情報は、(3、1)、(0、2)、(3、2)、(2、3)、(3,3)であり、最多色以外の画素は、B、C、Dの画素である。
【0031】
次に、704は、最多色占有率が0%であるため、高解像度画素と見なされる画素のみで構成される。また、高解像度画素を基準とするため、解像度切替フラグ=1が設定される。最多色の画素、最多色以外の画素のアドレス情報、及び最多色以外の画素は、最多色を有していないため「なし」とする。
【0032】
次に、最多色占有率の値とデータ量の関係について説明する。図8は、4×4の各ブロックの最多色占有率が0%〜100%まで変化した場合の構成画素数、及びデータ量(bit)を説明するための図である。
【0033】
まず、構成画素数とは、最多色の画素数及び、最多色以外の画素数である。前述したように最多色占有率が0%の場合、最多色の画素数は、0画素であり、最多色以外の画素数は16画素となる。また、最多色占有率が75%の場合、最多色の画素数は、1画素であり、最多色以外の画素数は4画素となる。また、最多色占有率が100%の場合、最多色の画素数は、1画素であり、最多色以外の画素数は0画素となる。
【0034】
次に、データ量は、色情報量(合計画素数×24bit)、解像度切替フラグ(1bit)、重畳フラグ(1bit)、最多色以外の画素のアドレス情報(最多色以外の画素数×4bit)の合計で示される。最多色占有率が0%の場合、最多色の画素数と最多色以外の画素数の合計画素数は、16画素であるため、色情報量は、384bit(=16×24)と計算される。該色情報量に、解像度切替フラグ1bit、重畳フラグ1bitを加算すると、合計386bitのデータ量となる。また、最多色占有率が50%の場合、最多色の画素数と最多色以外の画素数の合計画素数は、9画素であるため、色情報量は、216bit(=9×24)と計算される。該色情報量に、解像度切替フラグ1bit、重畳フラグ1bit、最多色以外の画素のアドレス情報32bit(=8×4)を加算すると、合計250bitのデータ量となる。
【0035】
ここで、本来、4×4の16画素のデータの場合にデータ量は、384bit(=16×24)必要であることを考慮すると、802、803で示される範囲においてはデータ量の削減効果があることわかる。公知技術は、803で示される範囲である、4×4の画素をまとめたブロックを実際の1画素として使用することによってデータ量の削減を可能としたものである。従って、本実施例のポイントは、802で示される範囲でデータ量の削減効果があることとなる。
【0036】
次に、実施例1の画像処理システムで実行する処理全体の概要を、図6のフローチャートを用いて説明する。図6に示すフローチャートは、図2の解像度切替部218(図3の各処理部)によって実行されるものとする。なお、本実施形態では、CPU205が記憶部211(コンピュータ読取可能な記憶媒体)に格納されたコンピュータプログラムを読み取り実行することによって、解像度切替部218(図3の各処理部)として機能するものとするが、これに限るものではない。例えば、解像度切替部218(図3の各処理部)を、電子回路等のハードウェアで実現するように構成してもよい。
【0037】
図6は、RIP部213から出力されるビットマップ画像データを画質を劣化させることなく、データ量を削減するためのデータ生成処理を行うフローチャートである。
【0038】
まず、ステップS601において、ブロック分割部301は、RIP部213から出力されるビットマップ画像データをM×Nのサイズ(M、Nは整数)に分割する。以降、ステップS602〜S616は、ブロック毎に処理が行われる。
【0039】
次に、ステップS602において、最多色検出部302は、ブロック分割部301で分割された各ブロック内で最も多く使用されている色(以下、最多色)を検出する。
【0040】
次に、ステップS603において、最多色占有率算出部303は、ステップS602において検出された最多色がブロック内に占める割合を最多色占有率として算出する。ここで、最多色占有率をX(%)とする。
【0041】
次に、ステップS604において、CPU205は、ステップS603において算出された最多色占有率Xが100%であるか否かを判定する。最多色占有率Xが100%であると判定された場合は、ステップS606へ進む。ここで、最多色占有率Xが100%であると判定された場合、前述したように注目ブロックは、最多色である画素を低解像度画素と見なし、低解像度画素のみで構成する方法が適していると判断できる。
【0042】
ステップS606において、解像度切替フラグ設定部304は、解像度切替フラグ=0を設定し、注目ブロックの位置情報と解像度切替フラグ=0が関連付けされるようにRAM206等に記憶する。
次に、ステップS607において、重畳フラグ設定部305は、重畳される画素がないため、重畳フラグ=0を設定し、注目ブロックの位置情報と重畳フラグ=0が関連付けされるようにRAM206等に記憶する。次に、ステップS608において、データ生成部306は、最多色である画素を用いて低解像度画素生成を行う。ここで、低解像度画素生成とは、入力データのM×N画素を、最多色である画素を用いて1画素にする処理を意味する。
【0043】
データ生成部306は、ステップS608において生成されるデータを、注目ブロックの位置情報と関連付けされるようにRAM206等に記憶する。
【0044】
ステップS604の説明に戻る。ステップS604において、最多色占有率Xが100%ではないと判定された場合は、ステップS605へ進む。
【0045】
ステップS605において、CPU205は、ステップS603において算出された最多色占有率Xが予め設定された閾値Th以上かを判定する。ブロックのサイズが4×4の場合、図8で前述したように、データ量の削減効果があるのは、最多色占有率が25%以上の範囲であるため、閾値Th=25と設定される。
【0046】
最多色占有率XがTh以上であると判定された場合は、ステップS609へ進む。ここで、最多色占有率XがTh以上であると判定された場合、前述したように注目ブロックは、最多色である画素を低解像度画素と見なし、最多色以外の残りの画素を高解像度画素とみなし、両者を重ねて表現する構成が適していると判断できる。
【0047】
ステップS609において、解像度切替フラグ設定部304は、解像度切替フラグ=0を設定し、注目ブロックの位置情報と解像度切替フラグ=0が関連付けされるようにRAM206等に記憶する。
【0048】
次に、ステップS610において、重畳フラグ設定部305は、重畳される画素があるため、重畳フラグ=1を設定し、注目ブロックの位置情報と重畳フラグ=1が関連付けされるようにRAM206等に記憶する。
【0049】
次に、ステップS611において、データ生成部306は、最多色である画素を用いて低解像度画素生成を行う。ここで、低解像度画素生成とは、入力データのM×N画素を、最多色である画素を用いて1画素にする処理を意味する。
【0050】
次に、ステップS612において、データ生成部306は、最多色以外の残りの画素を用いて高解像度画素生成を行う。ここで、高解像度画素生成とは、入力データのM×N画素の内、最多色以外の残りの画素をそのまま用いる処理を意味する。
【0051】
次に、ステップS613において、データ生成部306は、最多色以外の画素のアドレス情報を生成する。
【0052】
データ生成部306は、ステップS611〜S613において生成されるデータを、注目ブロックの位置情報と関連付けされるようにRAM206等に記憶する。
【0053】
ステップS605の説明に戻る。ステップ605において、最多色占有率XがTh未満であると判定された場合は、ステップS614へ進む。ここで、最多色占有率XがTh未満であると判定された場合、前述したように注目ブロックは、高解像度画素のみで構成する方法が適していると判断できる。
【0054】
ステップS614において、解像度切替フラグ設定部304は、解像度切替フラグ=1を設定し、注目ブロックの位置情報と解像度切替フラグ=1が関連付けされるようにRAM206等に記憶する。
【0055】
次に、ステップS615において、重畳フラグ設定部305は、重畳される画素があるため、重畳フラグ=0を設定し、注目ブロックの位置情報と重畳フラグ=0が関連付けされるようにRAM206等に記憶する。
【0056】
次に、ステップS616において、データ生成部306は、最多色である画素、及び最多色以外の残りの画素を用いて高解像度画素生成を行う。ここで、高解像度画素生成とは、入力データのM×N画素全てをそのまま用いる処理を意味する。
【0057】
データ生成部306は、ステップS616において生成されるデータを、注目ブロックの位置情報と関連付けされるようにRAM206等に記憶する。
【0058】
次に、ステップS617において、CPU205は、全てのブロックが終了したか否かを判断する。全てのブロックが終了していない場合、ステップS602に戻る。全てのブロックが終了した場合、ステップS618に進む。
【0059】
次に、ステップS618において、CPU205は、各ブロックでRAM206等に記憶しているデータを各々関連付けてHDD211に保存する。
【0060】
尚、HDD211に保存する際に、高解像度画素は高解像度であるのでJPEG等の圧縮をすると折角の高解像度画質が劣化するので、低解像度画素のみで構成されるブロックはまとめ、一般的に知られるJPEG等のカラー画像の圧縮方法を適用してもよい。
【0061】
上述した方法は、階調が連続的に変化する写真等の自然画ではなく、同じ色が連続するオフィス文書や、CADやCG、プレゼンテーションのようにコンピュータアプリケーションで作成した画像に対して有効である。
【0062】
従って、例えば複数のオブジェクト(写真オブジェクト、コンピュータグラフィックスのオブジェクト)が混在するデータを処理する場合には、複数オブジェクトのうちコンピュータグラフィックスのオブジェクトに対して上述のデータ削減をするとよい。
【0063】
以上、本実施例1によれば、ブロックが均一な色であっても、ブロックが均一な色でなくても、画質を劣化させることなく、効率的にデータ量を減らすが可能である。
【0064】
(実施例2)
実施例1では、最多色占有率の値に基づいて、低解像度画素、及び高解像度画素を生成する方法について説明した。しかしながら、例えば全てのブロックの最多色占有率がTh未満である場合は、重畳フラグのデータ分だけ、データ量が増えてしまう場合がある。実施例2では、このような場合には重畳フラグの破棄を行うことで、データ量の増加を抑える方法について説明を行う。
【0065】
図10に示すフローチャートは、図2の解像度切替部218(図3の各処理部)によって実行されるものとする。なお、本実施形態では、CPU205が記憶部211(コンピュータ読取可能な記憶媒体)に格納されたコンピュータプログラムを読み取り実行することによって、解像度切替部218(図3の各処理部)として機能するものとするが、これに限るものではない。例えば、解像度切替部218(図3の各処理部)を、電子回路等のハードウェアで実現するように構成してもよい。
【0066】
図10は、実施例1で前述した図6のステップS601〜617が終了した後の処理を行うフローチャートである。ステップS601〜617に関しては、説明を省略する。
【0067】
まず、ステップS1001において、CPU205は、ステップS609において重畳フラグ=1で設定されたブロック数を算出する。
【0068】
次に、ステップS1002において、CPU205は、ステップS1001において算出したブロック数が総ブロック数に対して占める割合を占有率として算出する。
【0069】
次に、ステップS1003において、CPU205は、ステップS1002において算出した占有率が予め設定された閾値Th2より大きいかを判定する。占有率がTh2より大きいと判定された場合は、ステップS1004へ進む。ステップS1004において、CPU205は、全てのブロックの重複フラグの破棄を行う。即ち、最多色である画素を低解像度画素とみなし、最多色以外の残りの画素を高解像度画素とみなし、両者を重ねて表現する構成のブロックが破棄される。従って、低解像度画素のみで構成されるブロックと、高解像度画素のみで構成されるブロックのデータとなる。
【0070】
次に、ステップS618において、CPU205は、各ブロックでRAM206等に記憶しているデータを各々関連付けてHDD211に保存する。
【0071】
尚、実施例1と同様、HDD211に保存する際に、低解像度画素のみで構成されるブロックをまとめ、一般的に知られるJPEG等のカラー画像の圧縮方法を適用してもよい。
【0072】
以上、本実施例2によれば、例えば全てのブロックの最多色占有率がTh未満となり、重複フラグのデータ分だけ、データ量が増えてしまうような画像の場合にもデータ量の増加を抑えることが可能となる。
【0073】
(実施例3)
実施例1、2では、入力されるビットマップ画像データをブロックに分割し、ブロックが均一な色であっても、ブロックが均一な色でなくても、画質を劣化させることなく、効率的にデータ量を減らしたデータを生成する方法について説明した。実施例3では、生成されたデータを復元する方法について説明を行う。
【0074】
図11に示すフローチャートは、解像度切替部218の中の不図示のデータ復元部によって実行されるものとする。なお、本実施形態では、CPU205が記憶部211(コンピュータ読取可能な記憶媒体)に格納されたコンピュータプログラムを読み取り実行することによって、データ復元部として機能するものとするが、これに限るものではない。例えば、データ復元部を、電子回路等のハードウェアで実現するように構成してもよい。
【0075】
図11は、図6のフローチャートの処理が終了し、記憶部211に保存されたデータの復元の処理を行うフローチャートである。
【0076】
まず、ステップS1101において、CPU205は、記憶部211に保存されたデータの読み出しを行う。ここで、記憶部211に保存されたデータは、ブロック毎に関連付けされたデータである。以降、ステップS1102〜S1111は、ブロック毎に処理が行われる。ここで、図1を用いて補足すると、ステップS1102〜S1111は、図1の104〜108で示される情報から101〜103で構成されるブロックを復元する処理を行う。
【0077】
ステップS1102において、データ復元部は、ステップS1101において読み出されたデータから注目ブロックを選択し、解像度切替フラグ、及び重畳フラグの読み出しを行う。
【0078】
次に、ステップS1103において、データ復元部は、ステップS1102において読み出された解像度切替フラグが0or1の判定を行う。解像度切替フラグ=1の場合は、ステップS1111へ進み、ステップS1111において、高解像度画素の読み出しを行う。解像度切替フラグ=0の場合は、ステップS1104へ進む。
【0079】
次に、ステップS1104において、データ復元部は、ステップS1102において読み出された重畳フラグが0or1の判定を行う。重畳フラグ=0の場合は、ステップS1105、S1106の処理を行う。ステップS1105では、低解像度画素の読み出しを行う。ステップS1106では、ステップS1105において読み出された低解像度画素から高解像度画素の生成を行う。図12を用いて補足すると、ステップS1106では、1201で示す1画素から1202で示す4×4の画素の生成を行う。重畳フラグ=1の場合は、ステップS1107〜S1110の処理を行う。ステップS1107では、低解像度画素の読み出しを行う。ステップS1108では、アドレス情報の読み出しを行う。ステップS1109では、高解像度画素の読み出しを行う。ステップS1110では、ステップS1107において読み出された低解像度画素から高解像度画素の生成を行い、さらに、ステップS1108、S1109において読み出されたアドレス情報、高解像度画素のデータを用いて高解像度画素を重ねる処理を行う。図12を用いて補足すると、ステップS1110では、1201で示す1画素から1202で示す4×4の画素の生成を行う。さらに、ステップS1108において読み出されたアドレス情報が、例えば(1、1)(3、3)、ステップS1109において読み出された高解像度画素のデータがB、Cの画素であれば、重ねる処理によって1203で示す4×4の画素が生成される。
【0080】
次に、ステップS1112において、CPU205は、全てのブロックが終了したか否かを判断する。全てのブロックが終了していない場合、ステップS1102に戻る。全てのブロックが終了した場合、ステップS1113に進む。
【0081】
次に、ステップS1113において、データ復元部は、M×Nのサイズ(M、Nは整数)のブロックを合成し、出力データを生成する。即ち、図6のステップS601と逆の処理を行う。
次に、ステップS1114において、プリンタ部202は、ステップS1113において、生成された出力データを出力する。
【0082】
以上、本実施例3によれば、実施例1、2で生成されたデータを復元することが可能となる。
【0083】
(実施例4)
実施例4では、実施例1、2で生成されたデータを復元する際に、用途によって、復元方法を切り替える方法について説明する。画質が優先される場合には、実施例3で前述した通りの復元を行い、スピードが優先される場合には、本実施例4で説明する復元を行う。
【0084】
ここで、スピードが優先される場合とは、例えば、プレビューやサムネイル表示、縮小レイアウト等、非可逆な復元を行っても画質の劣化が目立たない機能を意味している。
【0085】
図13に示すフローチャートは、解像度切替部218の中の不図示のデータ復元部によって実行されるものとする。なお、本実施形態では、CPU205が記憶部211(コンピュータ読取可能な記憶媒体)に格納されたコンピュータプログラムを読み取り実行することによって、データ復元部として機能するものとするが、これに限るものではない。例えば、データ復元部を、電子回路等のハードウェアで実現するように構成してもよい。
【0086】
図13は、図6のフローチャートの処理が終了し、記憶部211に保存されたデータの復元の処理を行うフローチャートである。尚、図11のフローチャートと同じ処理については、同じ符号を使用しており、一部説明を省略する。
まず、ステップS1301において、データ復元部は、画質優先かスピード優先かを判定する。画質優先と判定された場合は、図11のフローチャートへ進む。スピード優先と判定された場合は、ステップS1101へ進む。ステップS1101〜S1104については、説明を一部省略する。
【0087】
ステップS1103において、解像度切替フラグ=1の場合は、ステップS1111、S1302の処理を行う。まず、ステップS1111において、高解像度画素の読み出しを行う。次に、ステップS1302において、ステップS1111において読み出された高解像度画素から低解像度画素の生成を行う。低解像度画素の生成の方法については、例えば、間引き処理があげられる。
次に、ステップS1103に戻り、解像度切替フラグ=0の場合は、ステップ S1104へ進む。ステップS1104において、重畳フラグ=0の場合は、ステップS1105の処理を行う。ステップS1105では、低解像度画素の読み出しを行う。ここで、実施例3では、ステップS1105において読み出された低解像度画素から高解像度画素の生成を行ったが、実施例4では低解像度画素をそのまま用いる。
【0088】
また、ステップS1104において、重畳フラグ=1の場合は、ステップS1107の処理を行う。ステップS1107では、低解像度画素の読み出しを行う。ここで、実施例3では、ステップS1107において読み出された低解像度画素から高解像度画素の生成を行い、さらに、読み出されたアドレス情報、高解像度画素のデータを用いて高解像度画素を重ねる処理を行ったが、実施例4では低解像度画素をそのまま用いる。
【0089】
次に、ステップS1112において、CPU205は、全てのブロックが終了したか否かを判断する。以降、ステップS1113〜S1114については、説明を省略する。
【0090】
以上、本実施例4によれば、実施例1、2で生成されたデータを復元する際に、用途によって、復元方法を切り替えることが可能となる。また、スピードが優先される場合には、記憶部211に保存されたデータの内、低解像度画素はそのまま用いることで、高速に復元することが可能となる。
【0091】
実施例1〜4における各処理工程は、ネットワーク又は各種記憶媒体を介して取得したソフトウエア(プログラム)をパソコン等の処理装置(CPU、プロセッサ)にて実行することでも実現できる。
【特許請求の範囲】
【請求項1】
画像データを、複数の画素から構成されるブロックに分割する分割手段と、
前記ブロック毎に最多色を検出する最多色検出手段と、
前記ブロック毎に最多色の占有率を算出する最多色占有率算出手段と、
前記最多色占有率に応じて、少なくとも低解像度画素のみで構成されるブロック、高解像度画素と低解像度画素を重ねて構成されるブロックを切り替えてデータ生成を行うデータ生成手段とを有することを特徴とする画像処理装置。
【請求項2】
前記分割手段によって分割された各ブロックにおいて低解像度画素と見なされる画素がある場合とない場合で切り替わるフラグを設定する解像度切替フラグ設定手段と、
前記各ブロックにおいて重畳される画素がある場合とない場合で切り替えるフラグを設定する重畳フラグ設定手段
をさらに有する請求項1に記載の画像処理装置。
【請求項3】
前記最多色検出手段は、
前記分割手段によって分割された各ブロックで最も多く使用されている色を最多色として検出することを特徴とする請求項1に記載の画像処理装置。
【請求項4】
最多色占有率算出手段は、
前記最多色が各ブロック内に占める割合を最多色占有率として算出することを特徴とする請求項1に記載の画像処理装置。
【請求項5】
前記データ生成手段は、
前記最多色占有率が100%の場合には、低解像度画素のみで構成されるブロックを生成し、前記最多色占有率が予め定められた閾値より大きく、100%未満の場合は、高解像度画素と低解像度画素を重ねて構成されるブロックを生成し、前記最多色占有率が予め定められた閾値より小さい場合は、高解像度画素のみで構成されるブロックを生成する
ことを特徴とする請求項1に記載の画像処理装置。
【請求項6】
前記重畳される画素がある場合のブロック数を算出する手段と、
前記算出したブロック数が総ブロック数に対して占める割合を占有率として算出する手段と、
前記占有率が予め定められた閾値より大きい場合には、重畳フラグの破棄を行う手段を有する請求項2に記載の画像処理装置。
【請求項7】
画像データを、複数の画素から構成されるブロックに分割する分割工程と、
前記ブロック毎に最多色を検出する最多色検出工程と、
前記ブロック毎に最多色の占有率を算出する最多色占有率算出工程と、
前記最多色占有率に応じて、少なくとも低解像度画素のみで構成されるブロック、高解像度画素と低解像度画素を重ねて構成されるブロックを切り替えてデータ生成を行うデータ生成工程とを有することを特徴とする画像処理方法。
【請求項8】
コンピュータを
画像データを、複数の画素から構成されるブロックに分割する分割手段と、
前記ブロック毎に最多色を検出する最多色検出手段と、
前記ブロック毎に最多色の占有率を算出する最多色占有率算出手段と、
前記最多色占有率に応じて、少なくとも低解像度画素のみで構成されるブロック、高解像度画素と低解像度画素を重ねて構成されるブロックを切り替えてデータ生成を行うデータ生成手段として機能させるプログラム。
【請求項1】
画像データを、複数の画素から構成されるブロックに分割する分割手段と、
前記ブロック毎に最多色を検出する最多色検出手段と、
前記ブロック毎に最多色の占有率を算出する最多色占有率算出手段と、
前記最多色占有率に応じて、少なくとも低解像度画素のみで構成されるブロック、高解像度画素と低解像度画素を重ねて構成されるブロックを切り替えてデータ生成を行うデータ生成手段とを有することを特徴とする画像処理装置。
【請求項2】
前記分割手段によって分割された各ブロックにおいて低解像度画素と見なされる画素がある場合とない場合で切り替わるフラグを設定する解像度切替フラグ設定手段と、
前記各ブロックにおいて重畳される画素がある場合とない場合で切り替えるフラグを設定する重畳フラグ設定手段
をさらに有する請求項1に記載の画像処理装置。
【請求項3】
前記最多色検出手段は、
前記分割手段によって分割された各ブロックで最も多く使用されている色を最多色として検出することを特徴とする請求項1に記載の画像処理装置。
【請求項4】
最多色占有率算出手段は、
前記最多色が各ブロック内に占める割合を最多色占有率として算出することを特徴とする請求項1に記載の画像処理装置。
【請求項5】
前記データ生成手段は、
前記最多色占有率が100%の場合には、低解像度画素のみで構成されるブロックを生成し、前記最多色占有率が予め定められた閾値より大きく、100%未満の場合は、高解像度画素と低解像度画素を重ねて構成されるブロックを生成し、前記最多色占有率が予め定められた閾値より小さい場合は、高解像度画素のみで構成されるブロックを生成する
ことを特徴とする請求項1に記載の画像処理装置。
【請求項6】
前記重畳される画素がある場合のブロック数を算出する手段と、
前記算出したブロック数が総ブロック数に対して占める割合を占有率として算出する手段と、
前記占有率が予め定められた閾値より大きい場合には、重畳フラグの破棄を行う手段を有する請求項2に記載の画像処理装置。
【請求項7】
画像データを、複数の画素から構成されるブロックに分割する分割工程と、
前記ブロック毎に最多色を検出する最多色検出工程と、
前記ブロック毎に最多色の占有率を算出する最多色占有率算出工程と、
前記最多色占有率に応じて、少なくとも低解像度画素のみで構成されるブロック、高解像度画素と低解像度画素を重ねて構成されるブロックを切り替えてデータ生成を行うデータ生成工程とを有することを特徴とする画像処理方法。
【請求項8】
コンピュータを
画像データを、複数の画素から構成されるブロックに分割する分割手段と、
前記ブロック毎に最多色を検出する最多色検出手段と、
前記ブロック毎に最多色の占有率を算出する最多色占有率算出手段と、
前記最多色占有率に応じて、少なくとも低解像度画素のみで構成されるブロック、高解像度画素と低解像度画素を重ねて構成されるブロックを切り替えてデータ生成を行うデータ生成手段として機能させるプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【公開番号】特開2011−13963(P2011−13963A)
【公開日】平成23年1月20日(2011.1.20)
【国際特許分類】
【出願番号】特願2009−157916(P2009−157916)
【出願日】平成21年7月2日(2009.7.2)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
【公開日】平成23年1月20日(2011.1.20)
【国際特許分類】
【出願日】平成21年7月2日(2009.7.2)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
[ Back to top ]