JP5538993B2 - 画像処理装置、画像処理方法、プログラム、および記憶媒体 - Google Patents
画像処理装置、画像処理方法、プログラム、および記憶媒体 Download PDFInfo
- Publication number
- JP5538993B2 JP5538993B2 JP2010104231A JP2010104231A JP5538993B2 JP 5538993 B2 JP5538993 B2 JP 5538993B2 JP 2010104231 A JP2010104231 A JP 2010104231A JP 2010104231 A JP2010104231 A JP 2010104231A JP 5538993 B2 JP5538993 B2 JP 5538993B2
- Authority
- JP
- Japan
- Prior art keywords
- attribute data
- tile
- data
- block
- pixel
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N1/00—Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
- H04N1/41—Bandwidth or redundancy reduction
- H04N1/411—Bandwidth or redundancy reduction for the transmission or storage or reproduction of two-tone pictures, e.g. black and white pictures
- H04N1/413—Systems or arrangements allowing the picture to be reproduced without loss or modification of picture-information
- H04N1/415—Systems or arrangements allowing the picture to be reproduced without loss or modification of picture-information in which the picture-elements are subdivided or grouped into fixed one-dimensional or two-dimensional blocks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N1/00—Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
- H04N1/46—Colour picture communication systems
- H04N1/64—Systems for the transmission or the storage of the colour picture signal; Details therefor, e.g. coding or decoding means therefor
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
Description
本発明は画像圧縮の技術に関し、特に、1ページ分の画像データについて、その画素ごとの属性データを示す情報プレーンを圧縮する画像圧縮技術に関する。
従来の画像形成装置においては、形成後の画像上に存在する文字・図形・イメージを判別するために、各ピクセルに対して属性データを付加している。しかし、この属性データの付加により画像形成装置が必要とするメモリサイズは必然的に増加する。従って、画像形成装置において、メモリが足りなくなった場合には属性データを圧縮することにより、必要メモリサイズを小さくする。しかし、文字や複雑な図形等は属性データが複雑に入り組んだ状態で存在するため、期待通りの圧縮結果が得られない場合がある。そこで、属性データが所定のサイズに収まらない場合は、この属性データを破棄し、ページ全体に対して決められた1つの属性データを設定する方式がとられていた(例えば、特許文献1)。また、ページ全体を所定サイズのブロック単位に分割し、ブロック単位に対して決められた1つの属性データを設定する方式がとられていた(例えば、特許文献2)。
しかしながら、画素ごとに全ての属性データを保持すると、属性データのデータ量が大きくなってしまう。また、上述したようにページ全体もしくは、ブロック単位で1つの属性データを設定すると、画像形成の際に文字、図形、イメージのどの部分に対しても一様の処理がなされてしまうことになり、属性データの本来の用途が果たせなかった。
上記課題を解決するために、本発明の画像処理装置は、各画素の画素値が色データと属性データとで構成される画像データを、第1の画素数単位のタイルごとに分割するタイル分割手段と、前記タイル分割手段で分割された各タイルを、2×2画素のサイズのブロックごとに分割するブロック分割手段と、前記ブロック分割手段で分割された各ブロックを順に処理対象にし、当該処理対象のブロック内の各画素の画素値を比較することにより、前記各ブロックに含まれる画素値の配置パターンを示すパターンフラグを特定する特定手段と、前記各ブロックの予め定義された位置の画素に対応する画素値から第1色の色データと第1の属性データとを抽出し、更に、前記ブロックに含まれる画素値の数が2〜4のいずれかであると判断したブロックからは、当該特定されたパターンフラグで定義されている配置パターンに対応する第2〜4画素値に対応する第2〜4色の色データと第2〜4の属性データとを抽出する抽出手段と、前記特定手段で特定された各ブロックのパターンフラグと、前記抽出手段で抽出された第1色の色データと、前記抽出手段で抽出された第2〜4色の色データと、前記抽出手段で抽出された第1の属性データと、前記抽出手段で抽出された第2〜4の属性データと、をメモリに保持させる第1の保持手段と、前記タイルに含まれる全ての画素の属性データが同じであるか判断する第1判断手段と、前記第1判断手段で前記タイルに含まれる全ての画素の属性データが同じであると判断した場合は、前記第1の保持手段で保持された第1の属性データと第2〜4の属性データとを削除して、当該タイル内の属性データが同じであることを示す情報と当該同じと判断された属性データの情報とをヘッダ情報に格納するように制御する削除手段と、を有する。
本発明によれば、画素ごとの属性データを示す情報プレーンを圧縮する際に、属性データの喪失を無くし、より小さな圧縮サイズを実現することができる。
以下、本発明を実施するための形態について図面を用いて説明する。本実施形態では、画像形成装置として、スキャン、プリント、コピーなどの複数機能を有するデジタル複合機(MFP)を例に説明する。
[システム構成]
図1は本発明の実施形態に係る画像処理システムの構成を示すブロック図である。このシステムではホストコンピュータ130及び2台の画像処理装置100,110がLAN140に接続されているが、本発明における画像処理システムにおいては、これらの接続数に限られることはない。また、本実施形態では接続方法としてLANを適用しているが、これに限られることはない。例えば、WAN(公衆回線)などの任意のネットワーク、USBなどのシリアル伝送方式、セントロニクスやSCSIなどのパラレル伝送方式なども適用可能である。ここでの画像処理装置は、例えばMFP(MultiFunction Peripheral)などの画像形成装置が該当する。
図1は本発明の実施形態に係る画像処理システムの構成を示すブロック図である。このシステムではホストコンピュータ130及び2台の画像処理装置100,110がLAN140に接続されているが、本発明における画像処理システムにおいては、これらの接続数に限られることはない。また、本実施形態では接続方法としてLANを適用しているが、これに限られることはない。例えば、WAN(公衆回線)などの任意のネットワーク、USBなどのシリアル伝送方式、セントロニクスやSCSIなどのパラレル伝送方式なども適用可能である。ここでの画像処理装置は、例えばMFP(MultiFunction Peripheral)などの画像形成装置が該当する。
ホストコンピュータ(以下、PCと称する)130はパーソナルコンピュータの機能を有している。このPC130はLAN140やWANを介してFTPやSMBプロトコルを用いファイルを送受信したり電子メールを送受信したりすることができる。さらには、PC130は画像処理装置100、110に対して、プリンタドライバを介した印刷命令を行うことも可能となっている。
画像処理装置100、110は同じ構成で、スキャナ部を有する。以下では、説明の簡単のために、画像処理装置100、110のうちの画像処理装置110に注目して、その構成を詳細に説明する。画像処理装置110は、画像入力デバイスであるスキャナ部113、画像出力デバイスであるプリンタ部114、画像処理装置110全体の動作制御を司るコントローラ111、ユーザインターフェース(UI)である操作部112から構成される。
図2は、本実施形態におけるコントローラの構成を示すブロック図である。CPU201は、画像処理装置110全体を制御するためのコントローラである。CPU201はROM202に格納されているブートプログラムによりOS(Operating System)を起動する。このOS上で大容量ストレージ206に記憶されている読取可能なコントローラプログラムや各種アプリケーションプログラムを実行させる。CPU201はデータバス204などの内部バスによって各部と接続されている。また、本実施形態における各種処理を実行する。RAM203は、CPU201の主メモリやワークエリア等の一時記憶領域として動作する。さらに、画像処理の一時記憶領域としても使用される。インターフェース制御部207は、NIC(Network Interface Card)208などのネットワークI/Fを制御して、LANなどのネットワークに対して、画像データをはじめとする様々なデータの送受信を行う。また、インターフェース制御部207はモデム209を制御して、電話回線に対してデータの送受信を行う。
操作I/F210は、タッチパネルやハードキーといった操作部112からユーザの操作指示を入力する。また、操作I/F210はLCDやCRTなどの操作部112を制御して、操作画面をユーザに対して表示する。レンダラ部211は、インターフェース制御部207を介して受信したデータに基づいて、プリンタ部114が処理可能なビットマップデータの生成と属性データの生成を行う。圧縮部212は、ビットマップデータと属性データの圧縮を行う。伸張部213では圧縮部212で圧縮されたデータの伸張を行い、ビットマップデータと属性データの生成を行う。
スキャナ画像処理部214は、スキャナ部113からスキャナI/F215を介して受取ったビットマップデータに対して、補正、加工、及び編集を行う。なお、スキャナ画像処理部214は、受取ったビットマップデータがカラー原稿か白黒原稿か、文字原稿か写真原稿かなどを判定する。そして、その判定を属性データとして画像データに付随させる。プリンタ画像形成部216は、プリンタ用画像処理を行い、プリンタI/F217を介してプリンタ部114に前述のビットマップデータを送信する
[パターンフラグ]
本発明における画像データの圧縮処理の詳細を説明する。本実施形態では、2×2画素単位のブロックを単位にデータの圧縮処理を行う。ここで圧縮処理を説明する前に、2×2の4画素データの中に占める色数に応じてその組み合わせの場合の数を考える。ここで扱うブロックにおいて、画素数は4画素なので、そこに占める色数は最大4色になり、ブロック内で高々1色〜4色の組み合わせしか存在しない。その4色のパターンの取り得る組み合わせの場合の数を図3に示す。
[パターンフラグ]
本発明における画像データの圧縮処理の詳細を説明する。本実施形態では、2×2画素単位のブロックを単位にデータの圧縮処理を行う。ここで圧縮処理を説明する前に、2×2の4画素データの中に占める色数に応じてその組み合わせの場合の数を考える。ここで扱うブロックにおいて、画素数は4画素なので、そこに占める色数は最大4色になり、ブロック内で高々1色〜4色の組み合わせしか存在しない。その4色のパターンの取り得る組み合わせの場合の数を図3に示す。
まず、ブロック内が1色で占められている場合、4画素が全て同色で構成されていることになるので、その組み合わせは1通りである。次に、ブロック内が2色の場合を考える。図3に示すように、2色が4画素内にレイアウトされる場合の数は、左上の画素を第1色、他方を第2色として考えると、左上以外残りの3画素へ第1色もしくは第2色が入るので、4画素同色の場合を除くと、全部で7通りの組み合わせが考えられる。
次に、ブロック内が3色の場合を考える。3色が4画素内にレイアウトされる場合の数は、3色のうち1色だけ2度使われる場合の数と言い換えることが可能であり、4画素の座標のうち、2画素が同じ色になる組み合わせの数を求めれば良い。つまり、3色の場合の数は、4つの座標から2つの座標を取る組み合わせとなり、全部で6通りとなる。そして最後に、ブロック内が4色の場合は1色の場合と同様で1パターンしか存在しない。
1色〜4色の全ての場合の数を合計すると、全部で15通りのパターンが考えられる。また、これら全てのパターンを識別するためにフラグ(識別子)を付与することを考えると、フラグのデータ量としては4ビット必要となる。この15通りのパターンとフラグとの関係を図4に示すように定義し、以下、このフラグを「パターンフラグ」と呼ぶ。このパターンフラグにより、ブロックに含まれる色数と色の配置パターンを特定することが可能となる。
なお、本実施形態においては、2×2画素からなるブロックに対して、パターンフラグを定義しているが、この構成に限定するものではない。例えば、3×3画素や4×4画素からなるブロックを対象としても良い。その場合は、パターンフラグとして定義される組み合わせも増加し、またフラグのデータ量も増加することとなる。
[圧縮処理]
上述のように、2×2画素の取り得る組み合わせを踏まえて、圧縮部212で行われる処理を、図5を用いて説明する。入力画像の各画素は、例えばRGBそれぞれ8ビット(256階調)の色データと、文字、写真、グラフィックス、背景、グレー補償などの属性の種類を示す属性データで構成される。属性データは8ビットのデータで表され、各属性の種類が識別できるようになっているものとする。以下では、1画素当たり32ビットの画素値(RGBの色データ24ビット+属性データ8ビット)で表される画像が入力されたものとして説明する。なお、本実施形態では、色データと属性データとの組み合わせをまとめて、画素値と呼ぶことにする。なお、本実施形態において、特に明記している場合を除き、本処理はROM202等の記憶部に格納されたプログラムをCPU201が読み出して実行するものとする。
上述のように、2×2画素の取り得る組み合わせを踏まえて、圧縮部212で行われる処理を、図5を用いて説明する。入力画像の各画素は、例えばRGBそれぞれ8ビット(256階調)の色データと、文字、写真、グラフィックス、背景、グレー補償などの属性の種類を示す属性データで構成される。属性データは8ビットのデータで表され、各属性の種類が識別できるようになっているものとする。以下では、1画素当たり32ビットの画素値(RGBの色データ24ビット+属性データ8ビット)で表される画像が入力されたものとして説明する。なお、本実施形態では、色データと属性データとの組み合わせをまとめて、画素値と呼ぶことにする。なお、本実施形態において、特に明記している場合を除き、本処理はROM202等の記憶部に格納されたプログラムをCPU201が読み出して実行するものとする。
処理が開始すると、まず、2×2画素のブロックを入力する(S501)。そして、入力されたブロック内の全ての2画素の組み合わせに対して32ビットの画素値(RGBの色データ24ビット+属性データ8ビット)のコンペアを取る(S502)。ここでコンペアを取った結果、2画素間のビットにおいて全ビット一致していた場合は“1”を、不一致の場合は“0”の出力をする。ここで、2×2画素内の左上から右上、左下、右下の画素の位置順に、座標1、2、3、4とする(図4に示す401)。2画素の組み合わせの座標は、1−2、1−3、1−4、2−3、2−4、3−4の全部で6通り(図4に示す402)あるので、6回コンペアを取る必要があり、結果は6ビット出力される。図4に示すコンペア結果のように、2×2画素のブロック内の全画素の画素値が同じであれば、全てのコンペア結果が1を出力し、逆に4画素が全て異なる画素値であれば、全てのコンペア結果が0を出力する。
この例では、4画素のブロックで画素値の一致から出現し得るパターンの数は15通りなので、図4に示すように、6ビットのコンペア結果に応じて、4ビットのパターンフラグを特定する(S503)。次に、4画素内で出現した画素値(色データと属性データの組み合わせ)及びその画素値の数を抽出する(S504)。図4に示したように、4ビットのパターンフラグ(または6ビットのコンペア結果)に対して、ブロック内での各画素値の配置を示す各パターンが対応付けられているので、各ブロックにおける画素値の数と画素値(色データ及び属性データ)とを特定できる。なお、本実施形態の図4では、全てのパターンにおいて、左上の画素の画素値が第1画素値(1番目の画素値データ)となるように定義している。パターンフラグが0の場合は、画素値の数1で、左上の画素の画素値を第1画素値として抽出する。また、パターンフラグが1〜7の場合は、画素値の数2で、左上の画素の画素値を第1画素値として抽出し、更に、各パターンフラグに応じて定義されている第2画素値(2番目の画素値データ)が存在する位置の画素の画素値を抽出する。例えば、パターンフラグが1の場合は、第1画素値と異なる画素値である右上の画素の画素値を第2画素値として抽出する。
また、パターンフラグが8〜Dの場合は、画素値の数3で、左上の画素の画素値を第1画素値として抽出する。更に各パターンフラグに応じて定義されている第2画素値(2番目の画素値データ)及び第3画素値(3番目の画素値データ)が存在する位置の画素の画素値を抽出する。例えば、パターンフラグが8の場合は、右上の画素の画素値を第2画素値として抽出し、右下の画素の画素値を第3画素値として抽出する。また、パターンフラグがEの場合は、左上の画素の画素値を第1画素値、右上の画素の画素値を第2画素値、左下の画素の画素値を第3画素値、右下の画素の画素値を第4画素値として抽出する。即ち、パターンフラグ(またはコンペア結果)に基づいて、ブロック内の画素値の数が特定され(S505、S507、S509)、それぞれに応じたパターンフラグと画素値(色データ及び属性データ)とを出力する(S506、S508、S510、S511)。
出力されるデータを、図6を用いて説明する。図6に示すように、例えばパターンフラグが0(即ち4画素内が1つの画素値で構成されている)の場合(S505でYES)、2つ目以降の画素値は存在しないので、パターンフラグの4ビットと1番目の画素値(1画素×32ビット分の画素値(色データ及び属性データ))とを出力する(S506)。また、パターンフラグが1〜7(即ち4画素内が2つの画素値で構成されている)の場合(S507でYES)、2番目の画素値を有する画素の座標をパターンフラグより算出し、パターンフラグの4ビットと2つの画素値(2画素×32ビット分の画素値(色データ+属性データ))とを出力する(S508)。また、パターンフラグが8〜D(即ち3つの画素値で構成されている)の場合(S509でYES)、パターンフラグの4ビットと3つの画素値(3画素×32ビット分の画素値(色データ+属性データ))とを出力する(S510)。そして、パターンフラグがE(即ち4つの画素値で構成されている)の場合(S509でNO)、パターンフラグの4ビットと4つの画素値(4画素×32ビット分の画素値(色データ+属性データ))とを出力する(S511)。言い換えると、各ブロックから出力される画素値(色データ+属性データ)は、ブロック内の座標(左上から右上、左下、右下の順に1、2、3、4)順に走査した場合に、出現していなかった画素値が第1画素値から順に出力されることに相当する。
このように、2×2画素のブロック内の4つの画素値分(128ビット)の入力データから、4ビットのパターンフラグと、ブロックに含まれる画素値のデータ(ブロック内の画素値(色データと属性データの組み合わせ)の種類分のデータ)とを出力することで、比較的簡単な処理で出力データ量を削減することが可能になる。特に、2×2画素のブロック内で同じ画素値の画素が存在するブロック(即ち各ブロック内に存在する画素値の数が少ないブロック)が多い画像の場合は、出力されるデータ量の圧縮率も大きくなる。また、パターンフラグを参照することで、そのブロック内の画素値の組み合わせ数、及び画素値の配置パターンを特定することが可能になる。このような処理を画像ブロック全てに対して行うことで、画像全面をデータ圧縮することが可能になる。なお、本実施形態において、便宜上、所定の位置(ここではブロックにおける左上)の画素に対するデータを第1色の色データ、第1の属性データ、それ以外の画素に対するデータを第2〜4色の色データ、第2〜4の属性データとも表現する。
[圧縮データの保持]
次に、このようにして求めたパターンフラグと画素値のデータとを、メモリに書き込む。このとき、パターンフラグと、RGBビットマップ(色データ)の第1色のデータと、RGBビットマップの第2色、第3色、第4色のデータと、属性データの第1のデータと、属性データの第2、第3、第4のデータとの書き込み位置を変える。
次に、このようにして求めたパターンフラグと画素値のデータとを、メモリに書き込む。このとき、パターンフラグと、RGBビットマップ(色データ)の第1色のデータと、RGBビットマップの第2色、第3色、第4色のデータと、属性データの第1のデータと、属性データの第2、第3、第4のデータとの書き込み位置を変える。
図7は、上述のメモリ空間への書き込み例を示す図である。尚、サイズがM×N画素のRGB各色8ビットと属性8ビットの画像を圧縮部212へ入力する場合、パターンフラグのデータが格納されるパターンフラグ格納部のデータサイズは、(M×N×4/8)バイトとなる。また、第1画素値の画素に対応するRGBビットマップの第1色のデータが格納されるビットマップ第1色格納部のデータサイズは、(M×N×24/8)バイトとなる。また、第2〜4画素値の各画素に対応するRGBビットマップの第2色、第3色、第4色のデータが格納されるビットマップ第2,3,4色格納部のデータサイズは、処理対象となる画像に応じて異なる。これは、第2,3,4色が存在するブロックの数が画像によって異なるためである。さらに、第1画素値の画素に対応する属性データが格納される属性第1格納部のデータサイズは、(M×N×8/8)バイトとなる。また、第2画素値、第3画素値、第4画素値の画素に対応する属性データが格納される属性第2,3,4格納部のデータサイズは、処理対象となる画像に応じて異なる。この形式を用いて、第1の保持手段として、データをメモリに保持する。
ここで、ビットマップの第1色書き込み先頭アドレス以降のメモリ領域(ビットマップ第1色格納部、及びビットマップ第2,3,4色格納部)に関しては、画素の色データがそのままのビット数で格納されている。即ち、JPEG等の圧縮データとは異なり、圧縮データをデコードして画像に戻さなくても(画像データの圧縮時においても)、各画素の色(画素値)を特定することができる。同様に、各画素に対応する属性データも、属性第1格納部、及び属性第2,3,4格納部に、そのままのビット数で格納されているので、デコードしなくても属性データを特定可能でもある。
[属性データ削除処理]
次に、本発明の特徴である属性データの削減方法を、図8を用いて説明する。なお、本実施形態において、特に明記している場合を除き、本処理はROM202等の記憶部に格納されたプログラムをCPU201が読み出して実行するものとする。処理が開始されると、まず図8に示すページ単位に画像データを入力する(S801)。次に、圧縮部212の入力となる画像データを所定の画素数単位(2L×2L画素)のブロックへ分割する(S802)。本実施形態では、L=16として、32×32画素サイズのタイルとする。以下の説明では、これまでの2×2画素のブロックと区別するために、このブロックのことを「タイル」と呼ぶ。これにより、タイル分割手段を実現する。1つのタイル中には、2×2画素ブロックが16×16(L×L)個存在することになる。図9は、ページと32×32画素のタイルと2×2画素のブロックとの関係を示す図である。なお、本実施形態においてタイルのサイズを32×32画素として扱っているが、上述したように本発明はブロックのサイズを変更可能であり、同様にタイルのサイズに関しても変更可能である。よって、タイルのサイズを32×32画素に限定するものではない。つまり、図9に示されているように、ページは所定の画素数単位(本実施形態では2L×2L)で構成されたタイルから構成されており、またタイルは2×2画素からなるブロックにブロック分割することが可能である。
次に、本発明の特徴である属性データの削減方法を、図8を用いて説明する。なお、本実施形態において、特に明記している場合を除き、本処理はROM202等の記憶部に格納されたプログラムをCPU201が読み出して実行するものとする。処理が開始されると、まず図8に示すページ単位に画像データを入力する(S801)。次に、圧縮部212の入力となる画像データを所定の画素数単位(2L×2L画素)のブロックへ分割する(S802)。本実施形態では、L=16として、32×32画素サイズのタイルとする。以下の説明では、これまでの2×2画素のブロックと区別するために、このブロックのことを「タイル」と呼ぶ。これにより、タイル分割手段を実現する。1つのタイル中には、2×2画素ブロックが16×16(L×L)個存在することになる。図9は、ページと32×32画素のタイルと2×2画素のブロックとの関係を示す図である。なお、本実施形態においてタイルのサイズを32×32画素として扱っているが、上述したように本発明はブロックのサイズを変更可能であり、同様にタイルのサイズに関しても変更可能である。よって、タイルのサイズを32×32画素に限定するものではない。つまり、図9に示されているように、ページは所定の画素数単位(本実施形態では2L×2L)で構成されたタイルから構成されており、またタイルは2×2画素からなるブロックにブロック分割することが可能である。
次に、タイルに所定の固定長のヘッダ情報を付与する(S803)。このヘッダ情報は、ページID、タイル座標、色空間、画素データのビット数、タイルのデータサイズ、属性データの圧縮種、代表属性データ等の情報である。ここで、ページIDは、ページ単位に付与されるユニークなID番号である。タイル座標は、このタイルがページ単位の画像上のどの位置にあるかを示す座標情報である。座標情報は、X座標とY座標の2次元で座標が記述される。色空間は、このタイルが、RGB画像なのかCMYK画像なのかGRAY−SCALE画像なのかを識別するための識別子を示す情報である。画素データのビット数は、タイル内の1画素当たりのビット長を示す情報である。データサイズは、このタイルの第1色のデータサイズと第2、3、4色のデータのデータサイズとを示すバイト単位の情報である。属性データの圧縮種は、属性データの圧縮の種類(圧縮レベル)を示す情報である。代表属性データは、代表の属性データ情報である。ヘッダ情報の構成例については、図10にて示す。
次に、上述のタイル単位に圧縮処理を適用する(S804)。この圧縮処理の詳細は図5等を用いて上述した圧縮処理である。次に、上述のタイル単位において属性データのみに着目し、タイル単位でそのタイルに含まれる画素の属性データが全て同じ属性データか否かを判断する(S805)。これにより、第1判断手段を実現する。全て同じ属性データである場合(S805にてYES)には、ヘッダ情報の属性データの圧縮種へ“2”をセットする(S806)。すなわち、属性データの圧縮種“2”は、当該ヘッダ情報に対応するタイル内の属性データが同じであることを示すことになる。さらに、同一であった属性データの内容をヘッダ情報の代表属性データへ格納する(S807)。この代表属性データが当該タイルにおける画素すべてに共通する属性データとなる。次に、圧縮処理で作成した第1画素値および第2,3,4画素値として圧縮された画素に対応する、属性データ(属性の第1データ、属性の第2,3,4データ)を削除する(S808、S809)。これにより、属性データに対する圧縮レベルが最も高い処理となる。
また、タイル単位で属性データがすべて同じでない場合(S805にてNO)には、タイルを構成するブロック単位にて属性データを確認する。すなわち、圧縮処理の単位であるタイルに含まれるブロックごとに、当該ブロックに含まれる画素の属性データが同一であるかを確認する。なお、圧縮処理により生成された当該ブロックのパターンフラグが“0”であれば、当該ブロックに含まれる画素の属性データを再度確認するまでもなく、当該ブロックの属性データは同一であると判定できる。各ブロックの属性データが同一であれば、第1画素値として保持されている画素データの属性データが当該ブロックにおける共通データとして利用できるため、第2、3、4の属性データとして保持されている画素データの属性データは削除することが可能となる。よって、当該タイルに含まれるブロック全てに対して、ブロック毎に属性データが同じか判定し、全て同じであれば、第2,3,4の属性データは削除可能と判定する。
S805にてNOの場合、当該タイルに含まれるブロックを順に抽出する(S810)。そして、抽出したブロックに対応する属性データを確認する(S811)。そして、当該ブロック内の全ての属性データが一致していれば(S812にてYES)、S813へ進む。S812の判定処理により、第2判断手段を実現する。S813にて当該タイルに含まれる全てのブロックに対して、処理が終了したかを判定し、終了していれば(S813にてYES)、S814へ進む。終了していなければ(S813にてNO)、S810へ戻り、未処理のブロックに対して、処理を繰り返す。当該タイルに含まれるすべてのブロックで、各ブロック内の属性データが一致していると判断した場合(S813にてYES)、ヘッダ情報の属性データの圧縮種へ“1”をセットする(S814)。すなわち、属性データの圧縮種“1”は、当該ヘッダ情報に対応するタイルにおける各ブロック内の属性データが同じであることを示すことになる。さらに、圧縮処理で作成した属性の第2、3、4データを削除する(S815)。
さらにまた、当該タイルに含まれるブロックのいずれかにおいて、属性データが同一でない場合(S812にてNO)には、ヘッダ情報の属性データの圧縮種へ“0”をセットする(S816)。ここでは、属性データに対する圧縮処理を行わないこととなる。S809、S815、S816の処理の後、S817へ進む。
S809、S815、S816のいずれかの処理後のデータを、当該タイルのヘッダ情報と一緒に1つのデータにパッキングする(S817)。このパッキングされたデータのデータ構造を図10に示す。これ以降、上述のヘッダを含むデータの単位を「パケット」と呼ぶ。このようなパケット(パケットデータ)にするには、タイル単位でS804〜S816の処理が終了し、データサイズが確定した後、ビットマップの第1色格納部及び第2,3,4格納部と、属性の第1格納部及び第2、3、4格納部の間を詰めた状態でデータをパッキングする。その後、メモリ上へ出力する(S818)。次に、このパケットの座標とサイズとをリストとして列挙し、パケット管理テーブルとして作成する(S819)。これにより、テーブル作成手段を実現する。このパケット管理テーブルの一例を図11に示す。上述の処理を最後のタイルまで繰り返すことで(S820でYES)、ページ単位の画像の圧縮処理を終了する。
なお、S808にて削除するデータは、図10に示した属性第1色格納部に格納された属性データが対象となる。同様に、S809、S815にて削除するデータは、図10に示した属性第2、3、4色格納部に格納された属性データが対象となる。また、ヘッダ情報に含まれる代表属性データは、属性データ圧縮種が“2”のときに値が指定されることとなる。
尚、上述のタイル単位でデータをメモリへ書き出すと、図12に示すように、パケット毎にサイズが異なり、それぞれのパケットの先頭アドレスが飛び飛びになる。そのため、図11に示すパケット管理テーブルを用いて任意の座標のパケットの先頭アドレスを探索する。従って、先頭パケットの書き込みアドレスが既知であれば、パケット管理テーブルに記載されている座標までのデータサイズをオフセットとして任意のパケットの先頭アドレスを求めることが可能になる。例えば、図12に示す第3パケットを読み込む場合は、第1、第2パケットのサイズ合計をパケット管理テーブルより求め、先頭パケットのアドレスに対してオフセットをかけることで第3パケットアドレスを算出する。そして、そこからデータを読み込むことで第3パケットのデータを取得することが可能になる。
このように、タイル単位に任意のデータへのアクセスが可能になるので、画像の部分的な処理が可能になる。例えば、画像の一部の領域を抽出して処理したい場合は、当該領域に対応するパケットのデータを取得して処理すればよい。
[伸張処理]
次に、本発明に係る伸張処理を、図13を用いて説明する。上記で述べた圧縮処理は、可逆圧縮処理であり、パケットに含まれる情報を用いることで元の画像に戻すことが可能である。なお、本実施形態において、特に明記している場合を除き、本処理はROM202等の記憶部に格納されたプログラムをCPU201が読み出して実行するものとする。処理が開始されると、まず図13に示すパケットデータを入力する(S1301)。次に、パケットデータ内のタイルヘッダを読み出し(S1302)、タイルヘッダの解析を行う(S1302)。タイルヘッダの解析結果により、属性データ圧縮種が0であるかを判断する(S1303)。属性データ圧縮種が0である場合(S1304にてYES)には、伸張処理1を実行する(S1301)。ここでの伸張処理1では、パケット内に格納した、パターンフラグ、ビットマップ第1色データ、ビットマップ第2、3、4色データ、さらに、第1画素値に対応する属性データ、第2、3、4の画素値に対応する属性データを読み出して画素を展開する。上述の処理をパケット内に格納したすべての画素が終了するまで繰り返す(S1306でYES)。
次に、本発明に係る伸張処理を、図13を用いて説明する。上記で述べた圧縮処理は、可逆圧縮処理であり、パケットに含まれる情報を用いることで元の画像に戻すことが可能である。なお、本実施形態において、特に明記している場合を除き、本処理はROM202等の記憶部に格納されたプログラムをCPU201が読み出して実行するものとする。処理が開始されると、まず図13に示すパケットデータを入力する(S1301)。次に、パケットデータ内のタイルヘッダを読み出し(S1302)、タイルヘッダの解析を行う(S1302)。タイルヘッダの解析結果により、属性データ圧縮種が0であるかを判断する(S1303)。属性データ圧縮種が0である場合(S1304にてYES)には、伸張処理1を実行する(S1301)。ここでの伸張処理1では、パケット内に格納した、パターンフラグ、ビットマップ第1色データ、ビットマップ第2、3、4色データ、さらに、第1画素値に対応する属性データ、第2、3、4の画素値に対応する属性データを読み出して画素を展開する。上述の処理をパケット内に格納したすべての画素が終了するまで繰り返す(S1306でYES)。
また、属性データ圧縮種が0でない場合(S1304にてNO)には、属性データ圧縮種が1であるかを判断する(S1307)。属性データ圧縮種が1である場合(S1307にてYES)には、伸張処理2を実行する(S1308)。ここでの伸張処理2では、パケット内に格納した、パターンフラグ、ビットマップ第1色データ、ビットマップ第2、3、4色データを読み出してビットマップを展開する。さらに、第1画素値に対応する属性データを読み出して、ブロックごとに、対応するブロック内の全ての画素に同じ属性データを設定する。上述の処理をパケット内に格納したすべての画素が終了するまで繰り返す(S1309でYES)。
また、属性データ圧縮種が1でない(すなわち、属性データ圧縮種が2である)場合(S1307にてNO)には、伸張処理3を実行する(S1310)。ここでの伸張処理3では、パケット内に格納した、パターンフラグ、ビットマップ第1色データ、ビットマップ第2、3、4色データを読み出してビットマップを展開する。さらに、タイルヘッダに格納した代表属性データを読み出して、タイル内の全ての画素に同じ属性データを設定する。上述の処理をパケット内に格納したすべての画素が終了するまで繰り返す(S1311でYES)。S1306、S1309、S1311にて全ての画素に対し処理が終了したら、タイル単位でデータをメモリへ書き出す(S1312)
本実施形態によれば、画素単位で属性データを伴う画像データを扱う場合に圧縮効率の向上が可能である。特に、2×2画素のブロックや、32×32画素のタイルにおいて、色データは異なっていても属性データは同じである場合があり、その場合の圧縮効率を上げることができる。尚、属性データは1画素当たり8ビットに限るものではなく、1ビットや4ビット、或いは16ビットといった任意のビット数を取ることも可能である。
<その他の実施形態>
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
Claims (9)
- 各画素の画素値が色データと属性データとで構成される画像データを、所定の画素数単位のタイルごとに分割するタイル分割手段と、
前記タイル分割手段で分割された各タイルを、2×2画素のサイズのブロックごとに分割するブロック分割手段と、
前記ブロック分割手段で分割された各ブロックを順に処理対象とし、当該処理対象のブロック内の各画素の画素値を比較することにより、前記各ブロックに含まれる画素値の配置パターンを示すパターンフラグを特定する特定手段と、
前記各ブロックの予め定義された位置の画素に対応する画素値から第1色の色データと第1の属性データとを抽出し、更に、前記ブロックに含まれる画素値の数が2〜4のいずれかであると判断したブロックからは、当該特定されたパターンフラグで定義されている配置パターンに対応する第2〜4画素値に対応する第2〜4色の色データと第2〜4の属性データとを抽出する抽出手段と、
前記特定手段で特定された各ブロックのパターンフラグと、前記抽出手段で抽出された第1色の色データと、前記抽出手段で抽出された第2〜4色の色データと、前記抽出手段で抽出された第1の属性データと、前記抽出手段で抽出された第2〜4の属性データと、をメモリに保持させる第1の保持手段と、
前記タイルに含まれる全ての画素の属性データが同じであるか判断する第1判断手段と、
前記第1判断手段で前記タイルに含まれる全ての画素の属性データが同じであると判断した場合は、前記第1の保持手段で保持された第1の属性データと第2〜4の属性データとを削除して、当該タイル内の属性データが同じであることを示す情報と当該同じと判断された属性データの情報とをヘッダ情報に格納するように制御する削除手段と、
を有することを特徴とする画像処理装置。 - 前記タイルに含まれる画素の属性データが当該タイル内のブロックごとに同じであるか判断する第2判断手段を更に有し、
前記削除手段は、前記第2判断手段で前記タイルに含まれる画素の属性データが当該タイル内のブロックごとに同じであると判断した場合は、前記第1の保持手段で保持された第2〜4の属性データを削除して、当該タイル内のブロックごとに属性データが同じであることを示す情報をヘッダ情報に格納するように制御することを特徴とする請求項1に記載の画像処理装置。 - 前記タイル分割手段で分割される前記所定の画素数単位のタイルは、2L×2L画素のサイズのタイルであることを特徴とする請求項1または2のいずれかに記載の画像処理装置。
- 前記削除手段による処理を行った後、前記タイルごとに、前記ヘッダ情報と、前記メモリに保持されている前記パターンフラグと前記第1色の色データと前記第2〜4色の色データと前記第1の属性データと前記第2〜4の属性データとをパッキングしたパケットデータを生成するパッキング手段を更に有することを特徴とする請求項1乃至3のいずれか1項に記載の画像処理装置。
- 前記パッキング手段で生成された各タイルに対応するパケットデータの座標とサイズとに基づいて、パケット管理テーブルを作成するテーブル作成手段を更に有することを特徴とする請求項4に記載の画像処理装置。
- タイル分割手段が、各画素の画素値が色データと属性データとで構成される画像データを、所定の画素数単位のタイルごとに分割するタイル分割ステップと、
ブロック分割手段が、前記タイル分割ステップで分割された各タイルを、2×2画素のサイズのブロックごとに分割するブロック分割ステップと、
特定手段が、前記ブロック分割ステップで分割された各ブロックを順に処理対象とし、当該処理対象のブロック内の各画素の画素値を比較することにより、前記各ブロックに含まれる画素値の配置パターンを示すパターンフラグを特定する特定ステップと、
抽出手段が、前記各ブロックの予め定義された位置の画素に対応する画素値から第1色の色データと第1の属性データとを抽出し、更に、前記ブロックに含まれる画素値の数が2〜4のいずれかであると判断したブロックからは、当該特定されたパターンフラグで定義されている配置パターンに対応する第2〜4画素値に対応する第2〜4色の色データと第2〜4の属性データとを抽出する抽出ステップと、
第1の保持手段が、前記特定ステップで特定された各ブロックのパターンフラグと、前記抽出ステップで抽出された第1色の色データと、前記抽出ステップで抽出された第2〜4色の色データと、前記抽出ステップで抽出された第1の属性データと、前記抽出ステップで抽出された第2〜4の属性データと、をメモリに保持させる第1の保持ステップと、
第1判断手段が、前記タイルに含まれる全ての画素の属性データが同じであるか判断する第1判断ステップと、
前記第1判断ステップで前記タイルに含まれる全ての画素の属性データが同じであると判断した場合は、削除手段が、前記第1の保持ステップで保持された第1の属性データと第2〜4の属性データとを削除して、当該タイル内の属性データが同じであることを示す情報と当該同じと判断された属性データの情報とをヘッダ情報に格納するように制御する削除ステップと、
を有することを特徴とする画像処理方法。 - 第2判断手段が、前記タイルに含まれる画素の属性データが当該タイル内のブロックごとに同じであるか判断する第2判断ステップを更に有し、
前記削除ステップでは、前記第2判断ステップで前記タイルに含まれる画素の属性データが当該タイル内のブロックごとに同じであると判断した場合は、前記第1の保持ステップで保持された第2〜4の属性データを削除して、当該タイル内のブロックごとに属性データが同じであることを示す情報をヘッダ情報に格納するように制御することを特徴とする請求項6に記載の画像処理方法。 - コンピュータを、請求項1乃至5のいずれか1項に記載の各手段として機能させるためのプログラム。
- 請求項8に記載のプログラムを格納した、コンピュータが読取可能な記憶媒体。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010104231A JP5538993B2 (ja) | 2010-04-28 | 2010-04-28 | 画像処理装置、画像処理方法、プログラム、および記憶媒体 |
US13/085,599 US8509532B2 (en) | 2010-04-28 | 2011-04-13 | Image processing apparatus, image processing method, and computer-readable medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010104231A JP5538993B2 (ja) | 2010-04-28 | 2010-04-28 | 画像処理装置、画像処理方法、プログラム、および記憶媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011234230A JP2011234230A (ja) | 2011-11-17 |
JP5538993B2 true JP5538993B2 (ja) | 2014-07-02 |
Family
ID=44858305
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010104231A Expired - Fee Related JP5538993B2 (ja) | 2010-04-28 | 2010-04-28 | 画像処理装置、画像処理方法、プログラム、および記憶媒体 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8509532B2 (ja) |
JP (1) | JP5538993B2 (ja) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6070524B2 (ja) * | 2013-12-04 | 2017-02-01 | ソニー株式会社 | 表示パネル、駆動方法、および電子機器 |
JPWO2015107622A1 (ja) * | 2014-01-14 | 2017-03-23 | 富士通株式会社 | 画像処理プログラム、画像処理方法、画像処理装置、および情報処理装置 |
US10115177B2 (en) | 2014-06-27 | 2018-10-30 | Samsung Electronics Co., Ltd. | Online texture compression and decompression in hardware |
US9947071B2 (en) | 2014-06-27 | 2018-04-17 | Samsung Electronics Co., Ltd. | Texture pipeline with online variable rate dictionary compression |
US11481583B2 (en) * | 2017-12-28 | 2022-10-25 | Intel Corporation | Algorithm management blockchain |
US10860399B2 (en) | 2018-03-15 | 2020-12-08 | Samsung Display Co., Ltd. | Permutation based stress profile compression |
US10776957B2 (en) | 2018-10-02 | 2020-09-15 | Samsung Electronics Co., Ltd. | Online image compression in hardware |
US10803791B2 (en) | 2018-10-31 | 2020-10-13 | Samsung Display Co., Ltd. | Burrows-wheeler based stress profile compression |
US11308873B2 (en) | 2019-05-23 | 2022-04-19 | Samsung Display Co., Ltd. | Redundancy assisted noise control for accumulated iterative compression error |
US11245931B2 (en) | 2019-09-11 | 2022-02-08 | Samsung Display Co., Ltd. | System and method for RGBG conversion |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05316360A (ja) | 1992-05-14 | 1993-11-26 | Fuji Xerox Co Ltd | 画像信号の符号化復号装置 |
JPH09244832A (ja) | 1996-03-08 | 1997-09-19 | Hitachi Ltd | 画像処理システム |
US6731400B1 (en) | 1996-11-01 | 2004-05-04 | Hitachi, Ltd. | Color image processing apparatus which performs different image processings depending on region of color image |
JPH10136179A (ja) | 1996-11-01 | 1998-05-22 | Hitachi Ltd | データ処理装置 |
JPH10257488A (ja) | 1997-03-12 | 1998-09-25 | Oki Data:Kk | 画像符号化装置および画像復号化装置 |
JP3902953B2 (ja) | 2002-01-10 | 2007-04-11 | キヤノン株式会社 | 画像処理装置及び方法及びコンピュータプログラム及び記憶媒体 |
JP3790728B2 (ja) | 2002-09-11 | 2006-06-28 | 株式会社東芝 | 画像符号化装置、画像復号化装置及びそれらの方法 |
JP2004134962A (ja) | 2002-10-09 | 2004-04-30 | Canon Inc | 画像圧縮方法 |
JP2004153751A (ja) | 2002-11-01 | 2004-05-27 | Ricoh Co Ltd | 画像処理装置及び画像処理方法 |
JP4610450B2 (ja) * | 2005-09-07 | 2011-01-12 | 株式会社リコー | 固定長圧縮画像と属性情報のパッキングデータを処理する画像処理装置 |
JP4495745B2 (ja) * | 2007-04-18 | 2010-07-07 | キヤノン株式会社 | 画像処理装置、画像処理方法、コンピュータプログラム、および記憶媒体 |
JP2008301373A (ja) | 2007-06-01 | 2008-12-11 | Canon Inc | 画像符号化装置及び画像復号装置及びそれらの制御方法 |
JP2009100026A (ja) | 2007-10-12 | 2009-05-07 | Canon Inc | 画像処理装置 |
JP5132530B2 (ja) * | 2008-02-19 | 2013-01-30 | キヤノン株式会社 | 画像符号化装置及び画像処理装置及びそれらの制御方法 |
JP5241311B2 (ja) | 2008-05-08 | 2013-07-17 | キヤノン株式会社 | 画像形成装置、画像形成方法およびプログラム |
US8274710B2 (en) | 2008-06-25 | 2012-09-25 | Canon Kabushiki Kaisha | Image processing using count variation |
JP5558767B2 (ja) | 2009-09-25 | 2014-07-23 | キヤノン株式会社 | 画像処理装置及びその処理方法 |
JP5424820B2 (ja) | 2009-11-06 | 2014-02-26 | キヤノン株式会社 | 画像形成装置、画像形成方法およびプログラム |
-
2010
- 2010-04-28 JP JP2010104231A patent/JP5538993B2/ja not_active Expired - Fee Related
-
2011
- 2011-04-13 US US13/085,599 patent/US8509532B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2011234230A (ja) | 2011-11-17 |
US20110268355A1 (en) | 2011-11-03 |
US8509532B2 (en) | 2013-08-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5538993B2 (ja) | 画像処理装置、画像処理方法、プログラム、および記憶媒体 | |
JP5558767B2 (ja) | 画像処理装置及びその処理方法 | |
JP5393574B2 (ja) | 画像処理装置、画像処理方法、及びプログラム | |
JP5643574B2 (ja) | 画像処理装置及び画像処理方法 | |
US20160077779A1 (en) | Host device for transmitting print data to printer and method of rendering print data via host device | |
JP2011193394A (ja) | 画像処理装置、画像処理方法、及びプログラム | |
JP4738943B2 (ja) | 画像処理装置およびその方法 | |
JP5479225B2 (ja) | 画像処理装置、画像処理方法及びプログラム | |
JP4766657B2 (ja) | 画像処理装置及びその制御方法、プログラム | |
JP6900451B2 (ja) | 画像形成装置及び画像形成装置の制御方法 | |
JP2011254405A (ja) | 画像処理装置及びその処理方法 | |
JP5120366B2 (ja) | 画像処理装置及び画像処理プログラム | |
US8564823B2 (en) | Scanner device | |
JP5538996B2 (ja) | 画像処理装置、画像処理方法、プログラム、および記憶媒体 | |
JP5441676B2 (ja) | 画像処理装置及びその処理方法 | |
JP2018118426A (ja) | 画像形成システム、及び画像形成方法 | |
JP2011199744A (ja) | 画像形成装置および方法 | |
JP5599033B2 (ja) | 画像処理装置及び方法、並びにプログラム | |
JP3997851B2 (ja) | 画像符号化装置および画像符号化プログラム | |
JP6775558B2 (ja) | 画像伸長装置及びその制御方法及びプログラム | |
US20150271360A1 (en) | Image processing apparatus, image processing method, and non-transitory computer readable medium | |
JP5978706B2 (ja) | 印刷制御プログラム、情報処理装置、印刷システム及び印刷装置 | |
JP5595142B2 (ja) | 画像処理装置及び画像処理方法 | |
JP2003069831A (ja) | 画像処理装置、画像表示方法、並びにコンピュータ・プログラム | |
JP2013009268A (ja) | データ転送プログラムおよび画像形成装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20130424 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20140324 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20140331 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140430 |
|
LAPS | Cancellation because of no payment of annual fees |