JP4012004B2 - Image processing apparatus and method, computer program, and computer-readable storage medium - Google Patents

Image processing apparatus and method, computer program, and computer-readable storage medium Download PDF

Info

Publication number
JP4012004B2
JP4012004B2 JP2002224881A JP2002224881A JP4012004B2 JP 4012004 B2 JP4012004 B2 JP 4012004B2 JP 2002224881 A JP2002224881 A JP 2002224881A JP 2002224881 A JP2002224881 A JP 2002224881A JP 4012004 B2 JP4012004 B2 JP 4012004B2
Authority
JP
Japan
Prior art keywords
size
horizontal
determined
frequency component
natural number
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
Application number
JP2002224881A
Other languages
Japanese (ja)
Other versions
JP2004072171A (en
Inventor
正明 松岡
秀行 蓮覚寺
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2002224881A priority Critical patent/JP4012004B2/en
Publication of JP2004072171A publication Critical patent/JP2004072171A/en
Application granted granted Critical
Publication of JP4012004B2 publication Critical patent/JP4012004B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
本発明は画像を離散ウェーブレット変換を用いて圧縮する画像処理装置に関するものである。
【0002】
【従来の技術】
近年、離散ウェーブレット変換を用いた画像圧縮/符号化が注目されている。例えば、符号化対象画像をあるサイズのタイルに分割した後、分割されたタイルを離散ウェーブレット変換することにより、複数の周波数帯域(サブバンド)に分割した後、各周波数帯域の変換係数を量子化し、更に各量子化結果をエントロピー符号化するものである。
【0003】
上記画像データを離散ウェーブレット変換する方法としては、例えば、元の画像に対して1次元フィルタリングによる高周波、低周波の分離処理を水平方向に対して施し、続いて垂直方向に対しても1次元フィルタを施すことにより4つのサブバンドLL、LH、HL、HHに分割し、低周波成分に相当するLLに対しては更に同様の4分割処理が繰り返されるものが知られている。
【0004】
上記4分割の繰り返し処理の回数については、例えば特開2000−69292公報等において画像の内容等によって最適化を行う方法及び装置が提案されている。
【0005】
【発明が解決しようとする課題】
しかしながらこの文献では、画像サイズ、タイルサイズ、離散ウェーブレット変換の回数、後段で符号化する単位サイズ等の組み合わせによっては、符号化する度に生成される付随データの生成を増大させるという課題を有している。
【0006】
本発明は上記従来例に鑑みて成されたものであり、離散ウェーブレット変換により得られたサブバンドを後段で符号化する単位であるコードブロック毎に、生成される付随データ(コードブロックアトリビュートデータ)の量を最小限に抑え、それにかかる処理・時間、圧縮データ量を抑えることを考慮して良好な分割タイルサイズを決定可能な画像処理装置及び方法、並びにコンピュータプログラム及びコンピュータ可読記憶媒体を提供しようとするものである。
【0007】
【課題を解決するための手段】
かかる課題を解決するため、例えば本発明の画像処理装置は以下の構成を備える。すなわち、
水平方向の画素数H、垂直方向の画素数Vの画像データを入力する入力手段と、
入力した画像データを、処理可能な最大値をXとする水平方向タイルサイズxと、処理可能な最大値をYとする垂直方向タイルサイズyとで定義される、x×yサイズのタイルに分割する分割手段と、
前記タイルに2次元離散ウェーブレット変換を施して所定のレベルまでの複数の周波数成分へ変換する変換手段と、
前記変換手段により得られた各周波数成分を、予め設定されたM×Nサイズのコードブロック毎にエントロピー符号化するエントロピー符号化手段とを有し、
前記分割手段は、
H≧XならばXを、H<XならばHをxの初期値として、x≧2Mならばx/M=2 P (Pは自然数)を満たすまでxを減算し、x<2MならばM/x=R(Rは自然数)を満たすまでxを減算することで最終的に得られるxを、上記分割に適用する水平方向タイルサイズxとし、
V≧YならばYを、H<YならばHをyの初期値として、y≧2Nならばy/N=2 Q (Qは自然数)を満たすまでyを減算し、y<2NならばN/x=S(Sは自然数)を満たすまでyを減算することで得られるyを、上記分割に適用する垂直方向タイルサイズyとすることを特徴とする。
【0008】
【発明の実施の形態】
以下、添付図面に従って本発明に係る実施形態を詳細に説明する。
【0009】
図1は、本実施形態に適応される画像処理装置の全体構造を示す図である。1は画像入力部であり、2は離散ウェーブレット変換部であり、3は量子化部であり、4はエントロピー符号化部であり、5は符号出力部である。以下、各部の動作の順に説明する。
【0010】
[画像入力部]
まず、画像入力部1には符号化対象となる画像データ(サイズをH×Vとする)が入力される。ここでHは水平方向の画素数、Vは垂直方向の画素数を示している。画像入力部1での入力対象は、例えばデジタルカメラ、スキャナ等であっても良いし、データを受信するためのインターフェース、更には、画像ファイルを格納している外部記憶装置であっても良い。入力された画像データは後段の離散ウェーブレット変換部2に転送される。
【0011】
本実施形態においては、説明の簡略化の為、符号化される画像データはモノクロの多値画(1画素当たり例えば8ビットの階調画像)を表現するものとして説明するが、本発明はこれに限らない。例えばカラー画像を表現する複数の色成分データを符号化する場合にも本発明は適応可能である。この場合、各色成分をデータ、或いは輝度、色度成分データの各々を上記単一画像データとして複数回に分けて圧縮すればよい。
【0012】
[離散ウェーブレット変換部]
離散ウェーブレット変換部2は、入力した画像データに対して2次元の離散ウェーブレット変換処理を行うことにより、変換係数を生成するものである。
【0013】
図2は離散ウェーブレット変換部2の内部構成を簡単に示したものである。入力された画像データはメモリ201に一旦記憶される。次に処理部202により所定のアルゴリズムによって決定されたサイズ(x×yとする)のタイルデータがメモリ201から順次読み出され、離散ウェーブレット変換が施された後、再度メモリ201に書き込まれる(この所定のアルゴリズムについては各部の動作を説明した後で詳しく説明する)。
【0014】
又、画像データの左上から順に、決定されたタイルサイズ毎に離散ウェーブレット変換処理を行うが、対象としている画像のサイズが必ずしもタイルサイズの整数倍とは限らない。すなわち、画像の右辺又は/及び下辺に、半端タイルを生じる場合がある。この場合には、その半端なサイズのままタイル分割する。
【0015】
図3の例の場合、決定されたタイルサイズは160×120であって、画像の右辺と下辺に水平が160以下もしくは垂直が120以下の半端タイルT3、T6、T7、T8、T9が生成された場合を示している。
【0016】
なお、離散ウェーブレット変換の手法自体については、特開平11−103460号等に示される様に公知であるので詳細は省略するが、例えば、入力画像データを離散ウェーブレット変換することにより、図4(b)或いは図4(c)に示すような変換係数が得られる。
【0017】
まず、メモリ201から読み出されたタイルデータに対して1次元(例えば水平方向)のフィルタを用いることで離散ウェーブレット変換を施し、図4(a)に示されるような高周波成分H及び低周波成分Lを得る。そして得られた各成分に対して、もう一方の方向(垂直方向)に1次元の離散ウェーブレットを施すことにより図4(b)に示される様な2次元の離散ウェーブレット変換係数を得る。
【0018】
図4(b)において、水平、垂直方向共に高周波成分を抽出したものがHH1に相当し、水平方向から低周波成分を抽出し、垂直方向から高周波成分を抽出したものがLH1に相当し、水平方向から高周波成分を抽出し、垂直成分から低周波成分を抽出したものがHL1に相当し、水平、垂直方向共に低周波成分を抽出したものがLL1に相当する。離散ウェーブレット変換を用いた符号化において、ここで得られた図4(b)の係数は元のタイルデータを構成する画素数と通常同じ個数存在する。
【0019】
なお、上記LL1は実質上、入力タイルデータの縮小画像になっている為、符号化効率を高めることを目的に、LL1のみに対して再度2次元の離散ウェーブレット変換を行うことが知られている。これにより図4(c)に示されるような形態の係数が得られる。
【0020】
図4(c)において、LL1の水平、垂直方向共に高周波成分を抽出したものがHH2に相当し、LL1の水平方向から低周波成分を抽出し、垂直方向から高周波成分を抽出したものがLH2に相当し、LL1の水平方向から高周波成分を抽出し、垂直方向から低周波成分を抽出したものがHL2に相当し、LL1の水平、垂直方向共に低周波成分を抽出したものがLL2(オリジナルのタイルの水平、垂直とも1/4サイズの画像)に相当する。ここで得られた図4(c)の係数も、図4(b)と同様、元のタイルデータを構成する画素数と通常同じ個数存在する。
【0021】
以下、同様にして所定の回数だけ低周波数成分LL2を離散ウェーブレット変換することが知られており、LLn(n=1、2、3、4、5…)に対して同様の処理を繰り返すことも知られている。
【0022】
[量子化部]
量子化部3では、離散ウェーブレット変換部2から順次転送されてくる各周波数成分データを量子化し、後段のエントロピー符号化部4に転送する。離散ウェーブレット変換部から転送されてくる周波数成分データの転送単位は所定のサイズM×Nであるが、周波数成分がM×Nに対して半端を生じる場合は、次のタイルの同じ周波数成分に半端分の残りを持ち越す。
【0023】
上記動作について、離散ウェーブレット変換回数が3回、符号化する際の単位であるコードブロックが64×64での、図3の画像データを適応した場合のLH1、HL1、HH1について図5に示す(簡単のため、半端タイルは除く)。160×120画素ブロックをタイルとした場合、図5に示すように、タイルT1におけるHL1の周波数成分では、水平が16余るので残りの64−16=48がT2に持ち越されることになる。
【0024】
[エントロピー符号化部]
エントロピー符号化部4では、量子化された周波数成分データ(量子化インデックス)をビットプレーンに分解し、ビットプレーン単位に2値算術符号化を行うことにより符号化データを出力する。
【0025】
図6は説明を単純にするため4×4の、ある周波数成分データ(量子化インデックス)をビットプレーン毎に符号化する様子を示したものである。同図においては、3つの量子化インデックス(−6、+3、+13)以外は0である。同図の場合には、4つのビットプレーン(i)〜(iv)に分解され(最も大きな量子化インデックスの“1”となっているビット位置に依存する)、MSBからLSBに向かって順に2値算術符号化が施される。
【0026】
なお、正負符号を示す1ビットについては、各ビットプレーンを符号化している最中に16個に分割された各位置において初めて非0でない値が検出された場合、即ち量子化インデックスの各々が0以外の値を有することが検出された直後に正負符号を示す1ビット「1(正)」又は「0(負)」を付加し、同時にエントロピー符号化(算術符号化)する。同図では、(i)の太枠で示される「1」の直後に正であることを示す「1」を続けて付加して符号化し、(ii)の太枠で示される「1」の直後に負であることを示す「0」を続けて付加して符号化し、(iii)の太枠で示される「1」の直後に正であることを示す「1」を続けて付加して符号化することになる。
【0027】
[符号出力部]
以上の様にして得られる1画像或いは複数画像に相当する符号化データは、符号出力部5から伝送路を介して外部機器に送信されるか、或いは内部/外部の記憶装置に転送される。
【0028】
本発明では、画像入力部1にて実行される、入力画像に対するタイル分割のサイズを、コードブロックの個数が少なくなるように可変制御することを特徴とする。それを実現するための手段を以下に示す。以下の説明で、タイルの水平サイズの制御と垂直サイズの制御は独立であるものとする。つまり、タイルのサイズの決定する原理は同じであるので、ここでは水平方向のタイルサイズの決定する原理を説明し、垂直方向のタイルサイズの決定手段については説明を省略する。
【0029】
図7(a)は水平に関してn回離散ウェーブレット変換を施したときの各サブバンドを示している。aはサブバンドHn(Ln)の水平サイズである。図7(b)はその中の任意のサブバンドH(n−m)について、水平に関して全タイル分並べた様子を示している(T1'、T2'、・・・、T(l−1)'、Tl')。このとき仮想で画像水平サイズを考えてそれをH'とする。サブバンドH(n−m)の水平サイズ、仮想画像水平サイズH'に(a・2n)/(a・2m−1)を乗算すると、それぞれ、水平タイルサイズxと水平画像サイズHになる。離散ウェーブレット変換部2から転送されるデータの水平サイズMについては、(a・2n)/(a・2m−1)を乗算したM×2n−m+1=Meq(m)を定義し等価的なMとして扱う。
【0030】
サブバンドH(n−m)における水平方向のコードブロック数は図7(b)において実線と破線で区切られている矩形の数に相当する。つまり実線と破線の本数を少なくすればコードブロックの数は減るので、水平サイズxを大きくすればサブバンドH(n−m)における水平方向のコードブロック数は減る。
【0031】
又、サブバンドH(n−m)におけるコードブロック数をNsb(m)、全コードブロック数をNとしたとき、N= Nsb(m)となるので、xを大きくすれば水平方向のコードブロック数は減る。
【0032】
図8に水平方向のタイルサイズxを大きくすることで水平方向のコードブロック数Nを減らすための簡単な手順を示す。
【0033】
この処理は離散ウェーブレット変換部2の内部で行っても良いし、図1の構成を備える画像処理装置内の不図示のCPUが行っても良い。又、図8の手順であらかじめ所定の水平サイズHに対して水平タイルサイズxを計算しておいて、その結果を図1の構成を備える画像処理装置内の不図示のROMに記憶しておいてそれを読み出しても構わない。
【0034】
まず、処理する画像の水平サイズHが処理可能な水平タイルサイズの最大値Xより大きいかを判定する(ステップS801)。処理する画像の水平サイズHが処理可能な水平タイルサイズの最大値Xより大きい場合、水平タイルサイズの最大値Xを水平タイルサイズxとする(ステップS802)。そうでない場合は、画像の水平サイズHを水平タイルサイズxとする(ステップS803)。
【0035】
上記動作について具体例を用いて説明する。入力画像の水平サイズH=256、水平タイルサイズの最大値X=160、水平コードブロックのサイズM=16、離散ウェーブレット変換の回数n=3において、図10(a)はx=160とした場合の水平コードブロックの様子を、図10(b)はx=120とした場合の水平コードブロックの様子を示している。それぞれ一番右のタイルは水平タイルサイズxに満たない半端タイルである。本実施形態によれば、図8の手順によりx=160となり水平方向のコードブロック数はN=19となる。これはx=120におけるN=24よりも水平コードブロックの数が少ない。
【0036】
以上は水平方向のタイルサイズの決定する内容であったが、垂直方向のサイズyを決定する場合にも同様に行えばよい。
【0037】
そして、上記処理に従い、例えば、デジタルカメラ等の画像処理装置において離散ウェーブレット変換を用いた画像圧縮を行う際に、1600×1200(200万画素クラス)、2048×1536(300万画素クラス)、2272×1704(400万画素クラス)等のサイズの画像をタイル分割する場合を説明する。このような画像処理装置として例えばコードブロックのサイズが16×16、処理可能なタイルサイズが160×128であるようなものを考えると、x=160、y=128と決定される。
【0038】
<第2の実施形態>
上記第1の実施形態では、単純にタイルサイズを大きくすることでタイル数を減らし、コードブロック数を減らすようにしたが、更に効率を良くする例を第2の実施形態として説明する。
【0039】
図7のサブバンドH(n−m)における水平方向のコードブロック数は図7(b)において実線と破線で区切られている矩形の数に相当するが、水平タイルサイズxを大きくして実線の本数を減らすだけでなく、加えて実線と破線が重なる様に水平タイルサイズxを選べば実質破線の本数を減らすことになり水平コードブロックの数は更に減る。
【0040】
図9に水平タイルサイズxを大きくした後、図7(b)において実線と破線が重なる様に水平タイルサイズxを再度最適化する簡単な手順を示す。この処理は離散ウェーブレット変換部2の内部で行っても良いし、図1の構成を備える画像処理装置内の不図示のCPUが行っても良い。又、図8の手順であらかじめ所定の水平サイズH、水平コードブロックサイズMに対して水平タイルサイズxを計算しておいて、その結果を図1の構成を備える画像処理装置内の不図示のROMに記憶しておいてそれを読み出しても構わない。
【0041】
まず、処理する画像の水平サイズHが処理可能な水平タイルサイズの最大値Xより大きいかを判定する(ステップS901)。処理する画像の水平サイズHが処理可能な水平タイルサイズの最大値Xより大きい場合、水平タイルサイズの最大値Xを水平タイルサイズxとする(ステップS902)。そうでない場合は、画像の水平サイズHを水平タイルサイズxとする(ステップS903)。ここまでは第1の実施形態と同様である。
【0042】
次に、x≧2Mであるかを判定する(ステップS904)。x≧2Mであれば、ステップS905に進み、図7(b)において実線と破線が重なる様に水平タイルサイズxが選ばれているかを判定する。その様になっていなければ、水平タイルサイズxを1ずつ小さくして(ステップS906)判定を繰り返し、実線と破線が重なる様に水平タイルサイズxを選ぶ。
【0043】
一方、x<2Mであれば、ステップS907で、図7(b)において実線と破線が重なる様に水平タイルサイズxが選ばれているかを判定する。その様になっていなければ、水平タイルサイズxを1ずつ小さくして(ステップS908)判定を繰り返し、実線と破線が重なる様に水平タイルサイズxを選ぶ。
【0044】
上記動作について具体例を用いて説明する。入力画像の水平サイズH=256、水平タイルサイズの最大値X=160、水平コードブロックのサイズM=16、離散ウェーブレット変換の回数n=3において、図10(a)はx=160とした場合の水平コードブロックの様子を、図10(b)はx=120とした場合の水平コードブロックの様子を示している。それぞれ一番右のタイルは水平タイルサイズxに満たない半端タイルである。又、図11は同じく入力画像の水平サイズH=256、水平タイルサイズの最大値X=160、水平コードブロックのサイズM=16、離散ウェーブレット変換の回数n=3において、x=128とした場合を示している。本実施の形態によれば、図9の手順によりx=160→128となり水平方向のコードブロック数はN=16となる。この値はx=160におけるN=19、x=120におけるN=24よりも水平コードブロックの数が少ない。
【0045】
以上説明してきた手段でデジタルカメラ等の画像処理装置において離散ウェーブレット変換を用いた画像圧縮を行う際に、1600×1200(200万画素クラス)、2048×1536(300万画素クラス)、2272×1704(400万画素クラス)等のサイズの画像をタイル分割する場合を説明する。このような画像処理装置として例えばコードブロックのサイズが16×16、処理可能なタイルサイズが160×128であるようなものを考えると、x=128、y=128と決定される。
【0046】
以上説明した様に本実施形態によれば、単純な判定方法でタイル分割のサイズを制御してコードブロックの数を最小限に抑えることが可能となる。それによってコードブロックアトリビュート生成にかかる処理能力・時間、圧縮データ量を抑えることが可能となる。さらにコードブロックアトリビュート生成にかかる処理能力・時間、圧縮データ量を抑えることが可能となる。また、画像サイズの約数にとらわれることなくタイルサイズを選ぶことが可能となる。
【0047】
なお、実施形態ではコードブロックのサイズを16×16として説明したが、これに限るものではない。例えば、64×64としても構わない。
【0048】
また、各サブバンドの水平サイズ、垂直サイズが符号化の単位水平サイズM、単位垂直サイズNの約数あるいは倍数になるようにタイルサイズを選ぶ必要が無く、その制約にとらわれることなくタイルサイズを選ぶことが可能である。更に、エントロピー符号化する前に、符号化サイズ毎に各周波数成分を量子化することで、人間の視覚特性上重要度が低い情報を画像データから削除することで圧縮効率を向上させることが可能となる。
【0049】
なお、上記実施形態からも明らかなように、本願発明の主要な部分は、ソフトウェアでもって実現できるものであり、汎用の情報処理装置(例えばパーソナルコンピュータ等)で稼動可能なものである。また、通常、そのような情報処理装置でコンピュータプログラムを動作させるには、そのコンピュータプログラムを格納した可読記憶媒体(例えば、フロッピー(登録商標)ディスクや、CDROM等)をセットし、システムにコピーもしくはインストールすることで実現するものであるから、かかるコンピュータ可読記憶媒体も本願発明の範疇にある。
【0050】
【発明の効果】
以上説明した様に本発明によれば、単純な判定方法でタイル分割のサイズを制御してコードブロックの数を最小限に抑え、コードブロックアトリビュート生成にかかる処理能力・時間、圧縮データ量を抑えることが可能となる。
【図面の簡単な説明】
【図1】実施形態における画像処理装置の全体構成図である。
【図2】離散ウェーブレット変換部2の内部構造を示す図である。
【図3】タイル分割の様子を示す図である。
【図4】離散ウェーブレット変換を行う様子を示す図である。
【図5】図3の各タイルにおけるサブバンドHL1をコードブロックに分割する様子を示す図である。
【図6】エントロピー符号化の様子を示す図である。
【図7】任意の画像データについて任意の水平方向サブバンドを水平方向コードブロックに分割する様子を示す図である。
【図8】実施形態におけるタイルの水平サイズを決定するためのフローチャートである。
【図9】第2の実施形態おけるイルの水平サイズを決定するためのフローチャートである。
【図10】実施形態におけるウェーブレット変換する際のタイルサイズとコードブロック数との関係を示す図である。
【図11】第2の実施形態におけるウェーブレット変換する際のタイルサイズとコードブロック数との関係を示す図である。
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to an image processing apparatus that compresses an image using a discrete wavelet transform.
[0002]
[Prior art]
In recent years, image compression / encoding using discrete wavelet transform has attracted attention. For example, after the image to be encoded is divided into tiles of a certain size, the divided tiles are divided into a plurality of frequency bands (subbands) by performing discrete wavelet transform, and then the transform coefficients of each frequency band are quantized. Further, each quantization result is entropy-coded.
[0003]
As a method of performing discrete wavelet transform on the image data, for example, high-frequency and low-frequency separation processing by one-dimensional filtering is performed on the original image in the horizontal direction, and then the one-dimensional filter is also applied in the vertical direction. Is divided into four subbands LL, LH, HL, and HH, and a similar four-division process is repeated for LL corresponding to a low frequency component.
[0004]
For example, Japanese Patent Application Laid-Open No. 2000-69292 proposes a method and apparatus for optimizing the number of repetitions of the above four divisions according to the contents of an image.
[0005]
[Problems to be solved by the invention]
However, in this document, depending on the combination of the image size, tile size, number of discrete wavelet transforms, unit size to be encoded later, etc., there is a problem of increasing the generation of accompanying data generated every time encoding is performed. ing.
[0006]
The present invention has been made in view of the above conventional example, and accompanying data (code block attribute data) generated for each code block which is a unit for encoding the subband obtained by the discrete wavelet transform in the subsequent stage. To provide an image processing apparatus and method, a computer program, and a computer-readable storage medium capable of determining a good divided tile size in consideration of minimizing the amount of processing, time required for the processing, and reducing the amount of compressed data It is what.
[0007]
[Means for Solving the Problems]
In order to solve this problem, for example, an image processing apparatus of the present invention comprises the following arrangement. That is,
Input means for inputting the number of pixels in the horizontal direction H, the image data in the vertical direction number of pixels V,
The input image data is divided into tiles of x × y size defined by a horizontal tile size x where the maximum processable value is X and a vertical tile size y where the maximum processable value is Y. Dividing means to
Transform means for performing a two-dimensional discrete wavelet transform on the tiles to transform to a plurality of frequency components up to a predetermined level;
Entropy encoding means for entropy encoding each frequency component obtained by the conversion means for each preset M × N code block ,
The dividing means includes
X is subtracted if H ≧ X, H is the initial value of x if H <X, x is subtracted until x / M = 2 P (P is a natural number) if x ≧ 2M, and if x <2M X finally obtained by subtracting x until M / x = R (R is a natural number) is set as the horizontal tile size x to be applied to the division,
Y is subtracted if V ≧ Y, H is the initial value of y if H <Y, y is subtracted until y / N = 2 Q (Q is a natural number) if y ≧ 2N, and if y <2N The y obtained by subtracting y until N / x = S (S is a natural number) is set as the vertical tile size y applied to the division .
[0008]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, embodiments according to the present invention will be described in detail with reference to the accompanying drawings.
[0009]
FIG. 1 is a diagram showing the overall structure of an image processing apparatus applied to this embodiment. Reference numeral 1 denotes an image input unit, 2 denotes a discrete wavelet transform unit, 3 denotes a quantization unit, 4 denotes an entropy encoding unit, and 5 denotes a code output unit. Hereinafter, the operation of each unit will be described in order.
[0010]
[Image input section]
First, image data to be encoded (size is set to H × V) is input to the image input unit 1. Here, H represents the number of pixels in the horizontal direction, and V represents the number of pixels in the vertical direction. An input target in the image input unit 1 may be, for example, a digital camera or a scanner, an interface for receiving data, or an external storage device that stores an image file. The input image data is transferred to the discrete wavelet transform unit 2 at the subsequent stage.
[0011]
In the present embodiment, for simplicity of explanation, the image data to be encoded will be described as representing the multi-value image images monochrome (one pixel per example 8-bit grayscale image), the present invention is Not limited to this. For example, the present invention can be applied to a case where a plurality of color component data representing a color image is encoded. In this case, each color component may be compressed in multiple times as data or each of luminance and chromaticity component data as the single image data.
[0012]
[Discrete wavelet transform section]
The discrete wavelet transform unit 2 generates transform coefficients by performing a two-dimensional discrete wavelet transform process on the input image data.
[0013]
FIG. 2 simply shows the internal configuration of the discrete wavelet transform unit 2. The input image data is temporarily stored in the memory 201. Next, tile data having a size (x × y) determined by a predetermined algorithm by the processing unit 202 is sequentially read out from the memory 201, subjected to discrete wavelet transform, and written again in the memory 201 (this The predetermined algorithm will be described in detail after the operation of each unit is described).
[0014]
In addition, discrete wavelet transform processing is performed for each determined tile size in order from the upper left of the image data, but the size of the target image is not necessarily an integer multiple of the tile size. That is, a half-end tile may be generated on the right side or / and the lower side of the image. In this case, the tile is divided with the half size.
[0015]
In the case of the example in FIG. 3, the determined tile size is 160 × 120, and half-end tiles T3, T6, T7, T8, and T9 having a horizontal of 160 or less or a vertical of 120 or less are generated on the right and bottom sides of the image. Shows the case.
[0016]
The method of the discrete wavelet transform itself is known as disclosed in Japanese Patent Laid-Open No. 11-103460 and the like is not described in detail. For example, by performing discrete wavelet transform on input image data, FIG. ) Or a conversion coefficient as shown in FIG.
[0017]
First, a discrete wavelet transform is performed on tile data read from the memory 201 by using a one-dimensional (for example, horizontal) filter, and a high frequency component H and a low frequency component as shown in FIG. Get L. Then, a two-dimensional discrete wavelet transform coefficient as shown in FIG. 4B is obtained by applying a one-dimensional discrete wavelet to the obtained component in the other direction (vertical direction).
[0018]
In FIG. 4B, the high frequency component extracted in both the horizontal and vertical directions corresponds to HH1, the low frequency component extracted from the horizontal direction, and the high frequency component extracted from the vertical direction corresponds to LH1, and the horizontal A high frequency component extracted from the direction and a low frequency component extracted from the vertical component corresponds to HL1, and a low frequency component extracted from both the horizontal and vertical directions corresponds to LL1. In the encoding using the discrete wavelet transform, the coefficients in FIG. 4B obtained here are usually equal to the number of pixels constituting the original tile data.
[0019]
Note that since the LL1 is substantially a reduced image of the input tile data, it is known to perform a two-dimensional discrete wavelet transform on the LL1 only for the purpose of increasing the encoding efficiency. . As a result, a coefficient having a form as shown in FIG. 4C is obtained.
[0020]
In FIG. 4C, the high-frequency component extracted from both the horizontal and vertical directions of LL1 corresponds to HH2, the low-frequency component extracted from the horizontal direction of LL1, and the high-frequency component extracted from the vertical direction to LH2. Corresponding, the high frequency component extracted from the horizontal direction of LL1 and the low frequency component extracted from the vertical direction corresponds to HL2, and the low frequency component extracted from both the horizontal and vertical directions of LL1 is LL2 (original tile). The horizontal and vertical images are ¼ size images). The coefficients of FIG. 4C obtained here are usually the same as the number of pixels constituting the original tile data, as in FIG. 4B.
[0021]
Hereinafter, it is known that the low-frequency component LL2 is discrete wavelet transformed a predetermined number of times in the same manner, and the same processing may be repeated for LLn (n = 1, 2, 3, 4, 5,...). Are known.
[0022]
[Quantization unit]
The quantization unit 3 quantizes each frequency component data sequentially transferred from the discrete wavelet transform unit 2 and transfers the quantized data to the subsequent entropy encoding unit 4. The transfer unit of the frequency component data transferred from the discrete wavelet transform unit is a predetermined size M × N, but when the frequency component is half-end with respect to M × N, the same frequency component of the next tile is half-end. Carry the rest of the minutes.
[0023]
FIG. 5 shows LH1, HL1, and HH1 when the image data of FIG. 3 is applied when the number of discrete wavelet transforms is 3 and the code block that is a unit for encoding is 64 × 64. For simplicity, excluding half-end tiles). When a 160 × 120 pixel block is a tile, as shown in FIG. 5, in the frequency component of HL1 in the tile T1, there are 16 horizontal levels, so the remaining 64-16 = 48 is carried over to T2.
[0024]
[Entropy encoding unit]
The entropy encoding unit 4 decomposes the quantized frequency component data (quantization index) into bit planes, and outputs encoded data by performing binary arithmetic encoding on a bit plane basis.
[0025]
FIG. 6 shows a state where 4 × 4 certain frequency component data (quantization index) is encoded for each bit plane for the sake of simplicity. In the figure, the values other than the three quantization indexes (−6, +3, +13) are 0. In the case of the figure, it is decomposed into four bit planes (i) to (iv) (depending on the bit position that is “1” of the largest quantization index), and 2 in order from the MSB to the LSB. Value arithmetic coding is applied.
[0026]
For 1 bit indicating a positive / negative sign, when a non-zero value is detected for the first time at each position divided into 16 during encoding of each bit plane, that is, each quantization index is 0. Immediately after it is detected that it has a value other than 1 bit, “1 (positive)” or “0 (negative)” indicating a positive / negative sign is added, and at the same time, entropy encoding (arithmetic encoding) is performed. In the figure, immediately after “1” indicated by a thick frame in (i), “1” indicating positive is added and encoded, and “1” indicated by a thick frame in (ii) is encoded. Immediately after that, “0” indicating negative is added and encoded, and “1” indicating positive is immediately added immediately after “1” indicated by a thick frame in (iii). It will be encoded.
[0027]
[Code output section]
The encoded data corresponding to one image or a plurality of images obtained as described above is transmitted from the code output unit 5 to an external device via a transmission path, or transferred to an internal / external storage device.
[0028]
The present invention is characterized in that the size of tile division for the input image executed by the image input unit 1 is variably controlled so that the number of code blocks is reduced. Means for realizing this will be described below. In the following description, it is assumed that the control of the horizontal size of the tile and the control of the vertical size are independent. That is, since the principle of determining the tile size is the same, the principle of determining the tile size in the horizontal direction will be described here, and the description of the means for determining the tile size in the vertical direction will be omitted.
[0029]
FIG. 7A shows each subband when the discrete wavelet transform is performed n times with respect to the horizontal. a is the horizontal size of the subband Hn (Ln). FIG. 7B shows a state in which all tiles are arranged with respect to the horizontal with respect to an arbitrary subband H (nm) (T1 ′, T2 ′,..., T (l−1)). ', Tl'). At this time, a virtual image horizontal size is considered and it is set as H ′. When the horizontal size of the subband H (n−m) and the virtual image horizontal size H ′ are multiplied by (a · 2n) / (a · 2m−1), the horizontal tile size x and the horizontal image size H are obtained. For the horizontal size M of the data transferred from the discrete wavelet transform unit 2, M × 2n−m + 1 = Meq (m) multiplied by (a · 2n) / (a · 2m−1) is defined and equivalent M Treat as.
[0030]
The number of horizontal code blocks in the subband H (nm) corresponds to the number of rectangles delimited by a solid line and a broken line in FIG. That is, if the number of solid lines and broken lines is reduced, the number of code blocks decreases, and if the horizontal size x is increased, the number of horizontal code blocks in the subband H (nm) decreases.
[0031]
Further, when the number of code blocks in the subband H (nm) is Nsb (m) and the total number of code blocks is N, N = Nsb (m). The number decreases.
[0032]
FIG. 8 shows a simple procedure for reducing the number N of code blocks in the horizontal direction by increasing the tile size x in the horizontal direction.
[0033]
This process may be performed inside the discrete wavelet transform unit 2 or may be performed by a CPU (not shown) in the image processing apparatus having the configuration of FIG. Further, the horizontal tile size x is calculated in advance for the predetermined horizontal size H by the procedure of FIG. 8, and the result is stored in a ROM (not shown) in the image processing apparatus having the configuration of FIG. And it may be read out.
[0034]
First, it is determined whether the horizontal size H of the image to be processed is larger than the maximum horizontal tile size X that can be processed (step S801). When the horizontal size H of the image to be processed is larger than the maximum horizontal tile size value X that can be processed, the maximum horizontal tile size value X is set as the horizontal tile size x (step S802). Otherwise, the horizontal size H of the image is set as the horizontal tile size x (step S803).
[0035]
The above operation will be described using a specific example. When the horizontal size H of the input image is H = 256, the maximum value of the horizontal tile size is X = 160, the size of the horizontal code block is M = 16, and the number of discrete wavelet transforms is n = 3, FIG. FIG. 10B shows the state of the horizontal code block when x = 120. Each rightmost tile is a half-end tile that is less than the horizontal tile size x. According to the present embodiment, x = 160 and the number of code blocks in the horizontal direction is N = 19 by the procedure of FIG. This is a smaller number of horizontal code blocks than N = 24 at x = 120.
[0036]
The above is the content of determining the tile size in the horizontal direction, but the same may be done when determining the size y in the vertical direction.
[0037]
In accordance with the above processing, for example, when image compression using discrete wavelet transform is performed in an image processing apparatus such as a digital camera, 1600 × 1200 (2 million pixel class), 2048 × 1536 (3 million pixel class), 2272 A case where an image having a size of × 1704 (4 million pixel class) is divided into tiles will be described. Considering such an image processing apparatus having a code block size of 16 × 16 and a processable tile size of 160 × 128, for example, x = 160 and y = 128 are determined.
[0038]
<Second Embodiment>
In the first embodiment, the number of tiles is reduced by simply increasing the tile size and the number of code blocks is reduced. However, an example of further improving the efficiency will be described as the second embodiment.
[0039]
The number of code blocks in the horizontal direction in the subband H (nm) in FIG. 7 corresponds to the number of rectangles delimited by the solid line and the broken line in FIG. 7B. In addition, if the horizontal tile size x is selected so that the solid line and the broken line overlap, the number of substantial broken lines is reduced, and the number of horizontal code blocks is further reduced.
[0040]
FIG. 9 shows a simple procedure for optimizing the horizontal tile size x again so that the solid line and the broken line overlap in FIG. This process may be performed inside the discrete wavelet transform unit 2 or may be performed by a CPU (not shown) in the image processing apparatus having the configuration of FIG. Further, the horizontal tile size x is calculated in advance for a predetermined horizontal size H and horizontal code block size M by the procedure of FIG. 8, and the result is shown in an image processing apparatus having the configuration of FIG. You may memorize | store in ROM and read it.
[0041]
First, it is determined whether the horizontal size H of the image to be processed is larger than the maximum horizontal tile size X that can be processed (step S901). When the horizontal size H of the image to be processed is larger than the maximum value X of the processable horizontal tile size, the maximum value X of the horizontal tile size is set as the horizontal tile size x (step S902). Otherwise, the horizontal size H of the image is set as the horizontal tile size x (step S903). The process up to this point is the same as in the first embodiment.
[0042]
Next, it is determined whether x ≧ 2M (step S904). If x ≧ 2M, the process advances to step S905 to determine whether the horizontal tile size x is selected so that the solid line and the broken line overlap in FIG. If not, the horizontal tile size x is reduced by 1 (step S906) and the determination is repeated, and the horizontal tile size x is selected so that the solid line and the broken line overlap.
[0043]
On the other hand, if x <2M, it is determined in step S907 whether the horizontal tile size x is selected so that the solid line and the broken line overlap in FIG. If not, the horizontal tile size x is reduced by 1 (step S908) and the determination is repeated, and the horizontal tile size x is selected so that the solid line and the broken line overlap.
[0044]
The above operation will be described using a specific example. When the horizontal size H of the input image is H = 256, the maximum value of the horizontal tile size is X = 160, the size of the horizontal code block is M = 16, and the number of discrete wavelet transforms is n = 3, FIG. FIG. 10B shows the state of the horizontal code block when x = 120. Each rightmost tile is a half-end tile that is less than the horizontal tile size x. FIG. 11 also shows the case where the horizontal size H of the input image is H = 256, the maximum horizontal tile size is X = 160, the size of the horizontal code block is M = 16, and the number of discrete wavelet transforms is n = 3 and x = 128. Is shown. According to the present embodiment, x = 160 → 128 according to the procedure of FIG. 9, and the number of code blocks in the horizontal direction is N = 16. This value has fewer horizontal code blocks than N = 19 at x = 160 and N = 24 at x = 120.
[0045]
When image compression using discrete wavelet transform is performed in an image processing apparatus such as a digital camera by the means described above, 1600 × 1200 (2 million pixel class), 2048 × 1536 (3 million pixel class), 2272 × 1704 A case where an image having a size such as (4 million pixel class) is divided into tiles will be described. Considering such an image processing apparatus having a code block size of 16 × 16 and a processable tile size of 160 × 128, for example, x = 128 and y = 128 are determined.
[0046]
As described above, according to the present embodiment, the number of code blocks can be minimized by controlling the size of tile division by a simple determination method. As a result, it is possible to reduce the processing capacity / time and the amount of compressed data required for code block attribute generation. Furthermore, it is possible to reduce the processing capacity / time and the amount of compressed data required for code block attribute generation. In addition, the tile size can be selected without being restricted by the divisor of the image size.
[0047]
In the embodiment, the code block size has been described as 16 × 16. However, the present invention is not limited to this. For example, it may be 64 × 64.
[0048]
Further, it is not necessary to select a tile size so that the horizontal size and vertical size of each subband is a divisor or multiple of the encoding unit horizontal size M and unit vertical size N, and the tile size can be set without being restricted by the restrictions. It is possible to choose. Furthermore, by compressing each frequency component for each encoding size before entropy encoding, it is possible to improve compression efficiency by deleting information that is less important for human visual characteristics from the image data. It becomes.
[0049]
As is clear from the above embodiment, the main part of the present invention can be realized by software and can be operated by a general-purpose information processing apparatus (for example, a personal computer). In general, in order to operate a computer program on such an information processing apparatus, a readable storage medium (for example, a floppy (registered trademark) disk or a CDROM) storing the computer program is set and copied to the system. Such a computer-readable storage medium falls within the scope of the present invention because it is realized by installation.
[0050]
【The invention's effect】
As described above, according to the present invention, the size of tile division is controlled by a simple determination method to minimize the number of code blocks, and the processing capacity / time and the amount of compressed data required for code block attribute generation are suppressed. It becomes possible.
[Brief description of the drawings]
FIG. 1 is an overall configuration diagram of an image processing apparatus according to an embodiment.
FIG. 2 is a diagram showing an internal structure of a discrete wavelet transform unit 2;
FIG. 3 is a diagram illustrating a state of tile division.
FIG. 4 is a diagram illustrating a state where a discrete wavelet transform is performed.
FIG. 5 is a diagram illustrating a state in which a subband HL1 in each tile of FIG. 3 is divided into code blocks.
FIG. 6 is a diagram illustrating a state of entropy encoding.
FIG. 7 is a diagram illustrating a state in which an arbitrary horizontal subband is divided into horizontal code blocks for arbitrary image data.
FIG. 8 is a flowchart for determining a horizontal size of a tile in the embodiment.
FIG. 9 is a flowchart for determining the horizontal size of an il in the second embodiment.
FIG. 10 is a diagram illustrating a relationship between a tile size and the number of code blocks when performing wavelet transform in the embodiment.
FIG. 11 is a diagram illustrating a relationship between a tile size and the number of code blocks when performing wavelet transform in the second embodiment.

Claims (8)

水平方向の画素数H、垂直方向の画素数Vの画像データを入力する入力手段と、
入力した画像データを、処理可能な最大値をXとする水平方向タイルサイズxと、処理可能な最大値をYとする垂直方向タイルサイズyとで定義される、x×yサイズのタイルに分割する分割手段と、
前記タイルに2次元離散ウェーブレット変換を施して所定のレベルまでの複数の周波数成分へ変換する変換手段と、
前記変換手段により得られた各周波数成分を、予め設定されたM×Nサイズのコードブロック毎にエントロピー符号化するエントロピー符号化手段とを有し、
前記分割手段は、
H≧XならばXを、H<XならばHをxの初期値として決定し、x≧2Mならばx/M=2 P (Pは自然数)を満たすまでxを減算し、x<2MならばM/x=R(Rは自然数)を満たすまでxを減算することで最終的に得られるxを、上記分割に適用する水平方向タイルサイズxとし、
V≧YならばYを、V<YならばVをyの初期値として決定し、y≧2Nならばy/N=2 Q (Qは自然数)を満たすまでyを減算し、y<2NならばN/y=S(Sは自然数)を満たすまでyを減算することで最終的に得られるyを、上記分割に適用する垂直方向タイルサイズyとする
ことを特徴とする画像処理装置。
Input means for inputting the number of pixels in the horizontal direction H, the image data in the vertical direction number of pixels V,
The input image data is divided into tiles of x × y size defined by a horizontal tile size x where the maximum processable value is X and a vertical tile size y where the maximum processable value is Y. Dividing means to
Transform means for performing a two-dimensional discrete wavelet transform on the tiles to transform to a plurality of frequency components up to a predetermined level;
Entropy encoding means for entropy encoding each frequency component obtained by the conversion means for each preset M × N code block ,
The dividing means includes
X is determined if H ≧ X, H is determined as an initial value of x if H <X, x is subtracted until x / M = 2 P (P is a natural number) if x ≧ 2M, and x <2M Then, x finally obtained by subtracting x until satisfying M / x = R (R is a natural number) is set as a horizontal tile size x to be applied to the division,
If V ≧ Y, Y is determined. If V <Y, V is determined as the initial value of y. If y ≧ 2N, y is subtracted until y / N = 2 Q (Q is a natural number), and y <2N. Then , an image processing apparatus characterized in that y finally obtained by subtracting y until N / y = S (S is a natural number) is set to a vertical tile size y applied to the division .
前記分割手段は前記画像の右辺や下辺で半端が生じる場合は半端なままで分割を施すことを特徴とする請求項に記載の画像処理装置。The dividing means, the image processing apparatus according to claim 1 if the odd occurs on the right side and lower side of the image, characterized in that applying a split remains odd. 前記変換手段は前記タイルの左上に低周波成分、右下に高周波成分を配置し、前記エントロピー符号化手段は前記各周波数成分を左上から右下へM×Nサイズごとにエントロピー符号化し、前記各周波数成分の右辺や下辺で半端が生じる場合については半端なままエントロピー符号化し、右と下、そして右下に隣接する前記タイルの同じ周波数成分について半端分の残りを持ち越してエントロピー符号化することを特徴とする請求項1又は2のいずれか1項に記載の画像処理装置。The transforming means arranges a low frequency component at the upper left of the tile and a high frequency component at the lower right , and the entropy coding means entropy encodes each frequency component from the upper left to the lower right for each M × N size, Encode the entropy coding with the left and right sides of the frequency component, and entropy coding for the same frequency component of the tile adjacent to the right and bottom and bottom right. the image processing apparatus according to any one of claims 1 or 2, characterized. 前記エントロピー符号化は算術符号化であることを特徴とする請求項1乃至のいずれか1項に記載の画像処理装置。The entropy encoding image processing apparatus according to any one of claims 1 to 3, characterized in that the arithmetic coding. 前記エントロピー符号化する前に、符号化のサイズ毎に各周波数成分を量子化する量子化手段を有することを特徴とする請求項1乃至のいずれか1項に記載の画像処理装置。Wherein prior to entropy encoding, the image processing apparatus according to any one of claims 1 to 4, characterized in that it has a quantizing means for quantizing each frequency component for each size of the coding. 水平方向の画素数H、垂直方向の画素数Vの画像データを入力する入力工程と、
入力した画像データを、処理可能な最大値をXとする水平方向タイルサイズxと、処理可能な最大値をYとする垂直方向タイルサイズyとで定義される、x×yサイズのタイルに分割する分割工程と、
前記タイルに2次元離散ウェーブレット変換を施して所定のレベルまでの複数の周波数成分へ変換する変換工程と、
前記変換工程により得られた各周波数成分を、予め設定されたM×Nサイズのコードブロック毎にエントロピー符号化するエントロピー符号化工程とを有し、
前記分割工程は、
H≧XならばXを、H<XならばHをxの初期値として決定し、x≧2Mならばx/M=2 P (Pは自然数)を満たすまでxを減算し、x<2MならばM/x=R(Rは自然数)を満たすまでxを減算することで最終的に得られるxを、上記分割に適用する水平方向タイルサイズxとし、
V≧YならばYを、V<YならばVをyの初期値として決定し、y≧2Nならばy/N=2 Q (Qは自然数)を満たすまでyを減算し、y<2NならばN/y=S(Sは自然数)を満たすまでyを減算することで最終的に得られるyを、上記分割に適用する垂直方向タイルサイズyとする
ことを特徴とする画像処理方法。
An input step of inputting the number of pixels in the horizontal direction H, the image data in the vertical direction number of pixels V,
The input image data is divided into tiles of x × y size defined by a horizontal tile size x where the maximum processable value is X and a vertical tile size y where the maximum processable value is Y. Splitting process,
A transforming step of performing a two-dimensional discrete wavelet transform on the tiles to transform to a plurality of frequency components up to a predetermined level;
An entropy encoding step of entropy encoding each frequency component obtained by the conversion step for each preset M × N code block ,
The dividing step includes
X is determined if H ≧ X, H is determined as an initial value of x if H <X, x is subtracted until x / M = 2 P (P is a natural number) if x ≧ 2M, and x <2M Then, x finally obtained by subtracting x until satisfying M / x = R (R is a natural number) is set as a horizontal tile size x to be applied to the division,
If V ≧ Y, Y is determined. If V <Y, V is determined as the initial value of y. If y ≧ 2N, y is subtracted until y / N = 2 Q (Q is a natural number), and y <2N. Then , an image processing method characterized in that y finally obtained by subtracting y until N / y = S (S is a natural number) is set as a vertical tile size y applied to the division .
コンピュータが読み込み実行することで、前記コンピュータを、画像データを圧縮符号化する装置として機能させるコンピュータプログラムであって、
水平方向の画素数H、垂直方向の画素数Vの画像データを入力する入力手段と、
入力した画像データを、処理可能な最大値をXとする水平方向タイルサイズxと、処理可能な最大値をYとする垂直方向タイルサイズyとで定義される、x×yサイズのタイルに分割する分割手段と、
前記タイルに2次元離散ウェーブレット変換を施して所定のレベルまでの複数の周波数成分へ変換する変換手段と、
前記変換手段により得られた各周波数成分を、予め設定されたM×Nサイズのコードブロック毎にエントロピー符号化するエントロピー符号化手段として機能させ、
前記分割手段は、
H≧XならばXを、H<XならばHをxの初期値として決定し、x≧2Mならばx/M=2 P (Pは自然数)を満たすまでxを減算し、x<2MならばM/x=R(Rは自然数)を満たすまでxを減算することで最終的に得られるxを、上記分割に適用する水平方向タイルサイズxとし、
V≧YならばYを、V<YならばVをyの初期値として決定し、y≧2Nならばy/N=2 Q (Qは自然数)を満たすまでyを減算し、y<2NならばN/y=S(Sは自然数)を満たすまでyを減算することで最終的に得られるyを、上記分割に適用する垂直方向タイルサイズyとする
ことを特徴とするコンピュータプログラム。
By computer executing narrowing read, the computer, a function causing a computer program as a system for compressing and encoding the image data,
Input means for inputting the number of pixels in the horizontal direction H, the image data in the vertical direction number of pixels V,
The input image data is divided into tiles of x × y size defined by a horizontal tile size x where the maximum processable value is X and a vertical tile size y where the maximum processable value is Y. Dividing means to
Transform means for performing a two-dimensional discrete wavelet transform on the tiles to transform to a plurality of frequency components up to a predetermined level;
Each frequency component obtained by the conversion means functions as entropy coding means for entropy coding for each preset M × N size code block ,
The dividing means includes
X is determined if H ≧ X, H is determined as an initial value of x if H <X, x is subtracted until x / M = 2 P (P is a natural number) if x ≧ 2M, and x <2M Then, x finally obtained by subtracting x until satisfying M / x = R (R is a natural number) is set as a horizontal tile size x to be applied to the division,
If V ≧ Y, Y is determined. If V <Y, V is determined as the initial value of y. If y ≧ 2N, y is subtracted until y / N = 2 Q (Q is a natural number), and y <2N. Then , a computer program characterized in that y finally obtained by subtracting y until N / y = S (S is a natural number) is the vertical tile size y applied to the division .
請求項に記載のコンピュータプログラムを格納したことを特徴とするコンピュータ可読記憶媒体。Computer-readable storage medium characterized by storing a computer program according to claim 7.
JP2002224881A 2002-08-01 2002-08-01 Image processing apparatus and method, computer program, and computer-readable storage medium Expired - Fee Related JP4012004B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002224881A JP4012004B2 (en) 2002-08-01 2002-08-01 Image processing apparatus and method, computer program, and computer-readable storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002224881A JP4012004B2 (en) 2002-08-01 2002-08-01 Image processing apparatus and method, computer program, and computer-readable storage medium

Publications (2)

Publication Number Publication Date
JP2004072171A JP2004072171A (en) 2004-03-04
JP4012004B2 true JP4012004B2 (en) 2007-11-21

Family

ID=32012723

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002224881A Expired - Fee Related JP4012004B2 (en) 2002-08-01 2002-08-01 Image processing apparatus and method, computer program, and computer-readable storage medium

Country Status (1)

Country Link
JP (1) JP4012004B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5893346B2 (en) 2011-11-07 2016-03-23 キヤノン株式会社 Image encoding device, image encoding method and program, image decoding device, image decoding method and program

Also Published As

Publication number Publication date
JP2004072171A (en) 2004-03-04

Similar Documents

Publication Publication Date Title
TWI301592B (en) Method of preparing an image for compression
US6256415B1 (en) Two row buffer image compression (TROBIC)
JP4365957B2 (en) Image processing method and apparatus and storage medium
US5881176A (en) Compression and decompression with wavelet style and binary style including quantization by device-dependent parser
Schwartz et al. Implementation of compression with reversible embedded wavelets
US5966465A (en) Compression/decompression using reversible embedded wavelets
JP4208378B2 (en) Image processing apparatus and method, and recording medium
JPH114343A (en) Image compression method, image compressor and medium read by computer
WO1999017257A2 (en) System and method for compressing images using multi-threshold wavelet coding
JPH11163733A (en) Encoding method and device
JP2001346047A (en) Image processor and image processing method
US7302105B2 (en) Moving image coding apparatus, moving image decoding apparatus, and methods therefor
JP2007267384A (en) Compression apparatus and compression method
JPH11266161A (en) Method and device for data compression
JP2001127642A (en) Data file provision method
US8611686B2 (en) Coding apparatus and method
JP4514169B2 (en) Digital signal conversion apparatus and method
JP4540855B2 (en) Image coding using reordering of wavelet coefficients
JP2020102704A (en) Image encoding device, control method of the same, and program
JPH1084484A (en) Data compression system
JP4012004B2 (en) Image processing apparatus and method, computer program, and computer-readable storage medium
JP4678814B2 (en) Image processing method and apparatus
JP2002290743A (en) Image information coding method, coding apparatus, digital copying machine, digital facsimile machine, and digital filing apparatus
JP4194311B2 (en) Moving picture encoding apparatus, moving picture decoding apparatus, and methods thereof
JPH11136520A (en) Picture data processor

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050609

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070403

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070608

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070802

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: 20070824

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070906

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100914

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100914

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110914

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110914

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120914

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120914

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130914

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees