JP3618833B2 - Image processing apparatus and method - Google Patents
Image processing apparatus and method Download PDFInfo
- Publication number
- JP3618833B2 JP3618833B2 JP17869595A JP17869595A JP3618833B2 JP 3618833 B2 JP3618833 B2 JP 3618833B2 JP 17869595 A JP17869595 A JP 17869595A JP 17869595 A JP17869595 A JP 17869595A JP 3618833 B2 JP3618833 B2 JP 3618833B2
- Authority
- JP
- Japan
- Prior art keywords
- encoding
- block
- blocks
- sub
- code amount
- 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
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
- Color, Gradation (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Description
【0001】
【発明の属する技術分野】
本願発明は画像の符号化を行う画像処理装置及び方法に関するものである。
【0002】
【従来の技術】
従来、多値画像の可逆符号化方式としてDPCM(DifferentialPulse Code Modulation)が広く知られている。一般的なDPCMによる符号化は、符号化対象画素の周囲にある符号化済の画素、すなわち左画素(これをaとする)、上画素(同様にb)、左斜め画素(同様にc)を用いて符号化対象画素の予測値(平面予測)を例えば、式(a+b−c)を用いて算出し、これと符号化対象画素値との差分を符号化するものである。
【0003】
写真などの自然画像をスキャンした画像データに代表される多値階調画像は、画像中の部位により統計的性質が大きく異なるものである。統計の差異は、画像中のエッジや輝度勾配の方向等の局所構造の違いにより起こるものである。
【0004】
従来例に示したDPCM方式による画素値予測は、これら局所的な構造のうち、部分的に二次元平面に近似されうるものに対してのみ有効であり、他の構造に対しては却ってダイナミックレンジを増やしてしまい逆効果となる。
【0005】
これを補う形として、例えば、符号化をブロック単位とし、ブロック内で支配的な構造に対して有効な符号化方法を用い、その方式を示すインデクスをサイド情報として符号化する方法が考えられる。
【0006】
しかしながら、画像内の局所構造は、一般に、平坦(低周波構造)部分は面積が広く、輝度変化が急崚なエッジや細線構造では数画素程度の小さな構造をとるものである。
【0007】
従ってブロック単位で処理を行う場合、平坦部では大きなブロックを用いるのが有利であり、微細構造部では小さなブロックを用いた方が効率が良いという背反を生じる。
【0008】
さらにつけ加えるならば、平坦部分でも、その形状が複雑なものもあれば、高周波構造でも広い面積にわたって一様に広がるものもある。以上の様に従来、画像の性質に応じて最適な画像処理単位で最適な符号化方法を用いた符号化を行うことは出来ないという問題があった。
【0009】
上述の問題を解決するために本願発明は画像の性質に応じて、最適な画像処理単位で最適な符号化方法を用いた符号化を行うことを目的とする。
【0010】
また、ブロック単位の符号化において従来よりも更に効率の良い符号化を行うことを別の目的とする。
【0011】
【課題を解決するための手段】
上述の課題を解決するために、本願発明の請求項1に記載の画像処理装置によれば、画像をブロック単位に符号化する画像処理方法であって、符号化対象ブロックについて、該符号化対象ブロックを所定複数個のサブブロックに分割するサブブロック分割ステップと、前記符号化対象ブロック及び前記複数のサブブロックの夫々に対して、複数用意された符号化モードから最適な各1つを選択する符号化モード選択ステップと、前記符号化対象ブロックを該ブロックの為に選択された符号化モードを用いて符号化して得られる符号量と、前記複数のサブブロックの夫々を該各ブロックの為に選択された符号化モードを用いて符号化して得られる符号量の総和とを比較する比較ステップと、前記比較の結果、前記符号化対象ブロックの符号量が少ない場合には、該符号化対象ブロックを符号化する符号化ステップとを備え、前記比較の結果、前記複数のサブブロックの総符号量が少ない場合には、更に、前記サブブロックの各々を新たな符号化対象ブロックと見なして、前記新たな符号化対象ブロックの各々について、前記所定複数個のサブブロックへの分割、前記符号化モードの選択、前記符号量の比較、及び前記比較の結果に応じて該符号化対象ブロックの符号化を行い、前記複数用意された符号化モードにはハフマン符号化の実行を伴う符号化モードを含み、該符号化モードにおいて、複数種類のハフマンテーブルのうち前記符号化対象ブロックのサイズに対応するハフマンテーブルを用いてハフマン符号化を実行することを特徴とする。
【0012】
【発明の実施の形態】
本願発明の実施の形態の一例を図1及び図2を用いて説明する。
【0013】
図1は画像の符号化復号化を行うための回路構成であり、1は画像データの符号化及び復号化をソフトウェア処理で行うことができるCPU制御部、2は画像データを取り込む画像入力部、3は画像データを印刷するプリンタ部、4は画像データをモニタなどに表示する表示部、5はCPU制御部1で符号化されたデータを送信、又は外部機器から送信された符号化データを受信することができる通信制御部、6は画像メモリである。
【0014】
まず画像入力部2から入力された画像データ(ここでは8bit階調の輝度画像データとする)は、一旦画像メモリ6に蓄積される。
【0015】
次に画像メモリ6内の画像データに対し、後述する図2のフローチャートの様なソフトウェア処理をCPU制御部1を用いて行い符号化する。
【0016】
なお、符号化の方法は、正方ブロック単位で符号化が行われ、基本ブロックサイズは128×128画素の正方ブロックである。また最小単位のブロックサイズは4×4画素の正方ブロックであり、後述するブロックサイズを変化させて符号化出来る様な符号化を行う。
【0017】
図2の各ステップでの処理の説明の前に、本実施例で画像のブロック単位に用いる複数の符号化方式について説明する。
【0018】
ある符号化単位のブロック(本実施例では4×4,8×8,16×16,32×32,64×64,128×128画素)の注目画素*について、図3(a)に示す様に周囲画素をa、b、cとする。さらに符号化単位ブロックの左上コーナーの画素値をC0(ゼロ)とする。
【0019】
このとき、本実施例における符号化方式は、上述の画素を用いて図3(b)の様に示される。
【0020】
符号化方法は全部で9種類を設定し、この内#0番〜#5番の6種類の符号化方法は周辺画素との差分値を符号化する予測符号化方法であり、差分値(予測誤差)を後述するハフマン符号を用いて符号化するものである。
【0021】
ハフマンテーブルは同じブロックサイズの#0番〜#5番の符号化方法には共通のものを用いるが、ブロックサイズが異なる場合は、予測誤差の統計も異なるので、各々の符号化単位のブロックサイズに適したハフマンテーブルを用いる。よって本実施例では4×4,…,128×128画素のブロックに対応する計6個のハフマンテーブルを有する。
【0022】
次に#6番の“平面近似モード”の符号化方法を説明する。
【0023】
図3(a)のブロック内のC0の画素位置を3次元(x軸,y軸,z軸)の(O,O,C0)であると仮定し、図の右方向(主走査方向とする)をx軸,図の下方向(副走査とする)をy軸とする。
【0024】
ここで符号化単位のブロック全体の画素値に対するZ方向の自乗誤差を求めることにより平面(z=C0+ax+by)として近似し、a、bを求める。
【0025】
ブロック内のK番目画素値をdk、そのx,y座標、をxk ,yk とすると、Z方向の自乗誤差のブロック全体の和Εは、
【0026】
【外1】
となる。
【0027】
これを展開し、
【0028】
【外2】
とおくと、
Ε=Aa2+2Da+Bb2+2Eb+C+2Fabとなる。
【0029】
これに対して
【0030】
【外3】
として解くことにより、
a=(BD−FE)/(F2 −BA),b=(AE−FD)/(F2 −BA)となる。A,B,Fはブロック内の位置が関係するだけであり、kに対して一定の値であるから、画素値dk が関係するC,D,Eの値を測定することによりa,bが簡単に求まる。a,bを±0.5の範囲でクリップし、このクリップされた区間を0〜255の値にデジタル化する。即ちデジタイズ後のa,bの値をa′,b′とすると、
a′=128+floor(128a+0.5),b′=128+floor(128b+0.5)となる。
【0031】
上述で求められたデジタル値a′,b′を用いて予測誤差ek を求めると、
ek =dk −〔{xk (a′−128)+yk (b′−128)}/256+C0〕
となる。
【0032】
以上の様にして最適近似平面を定義するパラメータa及びbが求まり、この平面との予測誤差が求まる。
【0033】
次に求められた値をいかに符号化するかについて説明する。
【0034】
通常符号データは図4(a)〜(d)に示す様な構造となる。
【0035】
即ち符号化対象のブロックに対して#6番の“平面近似モード”が用いられたことを示すハフマン符号とa′,b′の値(固定長)と、C0もしくはC0′(C0′は前の符号化対象のブロックC0との差分)の符号を送る。
【0036】
次に完全近似フラグデータを送る。完全近似フラグとは、符号化対象のブロック内の画素に対する予測誤差ek が全て0になったかどうかを示すフラグであり、全て0ならばフラグオン(本実施例では1)にしてデータを終える。そうでなければフラグオフ(本実施例では0)にして、その後に、上述で発生した予測誤差ek をハフマン符号化したデータをe0 から順に送る。
【0037】
ここでek の符号化用いるハフマンテーブルと#0番〜#5番の符号化方法に用いるハフマンテーブルは同じものを用いることにし、このテーブルは図2のS1及びS7について後述されるハフマンテーブルである。
【0038】
ここでC0とC0′のいずれを用いるかは、傾きのパラメータa′,b′によって異なる。a′,b′に対しては各々にしきい値を設定する。本例ではこの値を16とし、0〜255の値をとるa′,b′の値が両方とも128±16(本実施例の128は通常のグラフの傾き0に対応)の範囲に収まった時、即ちa′,b′とも傾きが小さい時にC0′が小さくなる可能性があるのでC0′を用いることとする。それ以外の場合にはC0を用いる。
【0039】
C0は固定長で送るがC0′の場合はハフマン符号を用いる。このC0′に用いるハフマンテーブルは固定であり、本実施例では図3(e)のテーブルを用いる。
【0040】
次に図3(b)における#7番の“一様モード”の符号化方法について説明する。この符号化方法はブロック内の全データが同一画素値である時に用いられ、画像に枠がついていたり、CG(コンピュータグラフィック)の背景等に対して有効である。
【0041】
符号データは図4(b)に示す様になり、符号化方法を示すハフマン符号と、#6番の符号化方法で用いたC0′と同じ性質をもつC0′の符号とを送る。
【0042】
次に#8番の“二値モード”の符号化方法について説明する。
【0043】
これは、符号化対象のブロック内に2種類の画素値しか存在しない場合に用いる方法である。
【0044】
2種類の画素値の内、輝度の高い方の画素値をD1 、他方をD2 とした時に、最初の画素をD1 を仮定して、図5(a)に示す様な画像スキャンを行うことによりD1 ,D2 が交互に発生する場合のランレングスを符号化する。
【0045】
この得られたランレングスに対して予め用意されたハフマン符号化を行う。1つのランレングスデータは、0個以上のMake up Codeと1つのTerminating Codeとを用いて表される。
【0046】
Terminating Codeはランレングスが0〜127までを表すコードである。Make up Codeは128以上の大きな値を表すコードである。これらのコードは各々に用意されたハフマンテーブルにより符号化される。
【0047】
ブロック中の最後のランはそのまま符号化されずEOBのコードを付加して処理される。D1 、D2 を例えば白、黒とすると、ハフマンテーブルは白、黒で別個に持つものとし、固定のテーブルとする。
【0048】
以上で本実施例に用いられる9種類の符号化方法についての説明を終わる。なお、この複数の符号化方法は、符号化対象のブロックサイズを変化させて符号化できる後述の符号化方法において、各々の異なる領域のブロックに対して、上記9種類の内の最適な符号化方法を選択して割り当てながら、1画面内の符号化方法の決定処理が行われる。
【0049】
詳細は後述する。
【0050】
次に符号化処理全体の流れを表す図2の各ステップの処理について詳細に説明する。
【0051】
ステップS1ではステップS3の処理の際前述の#0〜#6の符号化方法に用いる基準のハフマンテーブルを各ブロックサイズに対して1つ設定する。
【0052】
ステップS2では、画像メモリ6に蓄積された画像データを、基本ブロックである128×128画素単位に分割し、この基本ブロック毎に順次取り出す。
【0053】
ステップS3では、画像データをステップS9で最終的に符号化する際のブロック(符号化対象ブロックとする)への分割方法、及び分割された各々のブロックに対する最適符号化方法(#0〜#8)を仮決定する。以下、詳細に説明する。
【0054】
符号化対象ブロック(ブロック分割方法)は1つの正方ブロックを符号化する際に発生する符号量と、該正方ブロックを4分割した4つのサブブロックを符号化する際に発生する総符号量とを比較した結果に基づいて仮決定される。
【0055】
あるサイズの正方ブロックとそのサブブロックの様子を図6に示す。
【0056】
2n ×2n 画素の正方ブロックをB、これを4分割して得られる2n−1 ×2n−1 画素のサブブロックをb0 〜b3 とする。
【0057】
1つの正方ブロックBに対し、前述の#0〜#8の9種類の符号化方法のうち、#iを用いた時の符号化データの符号量を求める関数をCiとし、符号量をCi(B)と書くことにする。
【0058】
また、9種類の符号化方法を用いて符号化された符号化データの符号量のうち、最小の符号量を求める関数をBWとすると、BW(B)=min(Ci(B))と書ける。
【0059】
また、あるサイズのブロックに対する最小符号量を求める関数をMCとする。この時、前述のB,bi等を用いて以下の様に書ける。
【0060】
【外4】
【0061】
本実施例では最小サブブロックのサイズを4×4画素としているので、上式及び
【0062】
【外5】
となる。ここでSFは、サブブロックへの分割の有無を表すためのフラッグのデータ量であり、本実施例では、1つのブロック、サブブロックを更に4分割するか否かを表せれば良く、1bitの符号を要する。
【0063】
従ってSF=1となる。
【0064】
また、HDはBW関数によって選ばれたiを表す為の情報量であり本実施例ではiの情報を専用のハフマンテーブルでハフマン符号化する。
【0065】
符号化対象ブロックのサイズを仮決定する方法を簡単に説明すると、上述の式を用いてある正方ブロックの符号量とこのサブブロックの総符号量のうち符号量の少ない方のブロックサイズを選択し、この結果サブブロックの方を選択した場合には、各々のサブブロックを上述の正方ブロックに置き換えて、更にブロックサイズの選択を行うものである。また、各ブロックの符号量は、9種類の符号化方法の1番相性の良い方法を用いて算出されたものである。
【0066】
上記の式によって示されるブロック分割方法及び分割された各ブロックの符号化方法の仮決定の様子を図7に示す。
【0067】
図7のブロック分割例は、128×128画素を基本ブロック(符号化対象ブロックの最大サイズ)とし、再帰的にブロックを4分割して符号化対象ブロックを仮決定した結果である。
【0068】
実際には、128×128画素ブロック内を右上から左下にかけてエッジが横断している場合に図の様なブロック分割が起こる。また、分割された符号化対象ブロックの各々は独立の符号化方法(#0〜#8番)を有している。
【0069】
図8は、図6のブロック分割例に基づいて記述されたブロック分割方法及び分割されたブロック(符号化対象ブロック)各々の符号化方法を示すデータの形態を表している。
【0070】
図中Pn は前述したSF(ブロック分割の有無)に対応する1ビットのデータ(ブロック分割データとする)であり、Pn =1ならばそのブロックを分割、Pn =0ならばブロック分割せずに符号化方法を示すデータを続ける。(nは処理対象のブロックサイズを示す。)
【0071】
例えば、(P128 =1),(P64=1),(P32=0)とビットが続いた場合には(128×128画素ブロックが4分割)、(左上の64×64画素ブロックを4分割),(左上の32×32画素ブロック分割せず)と判断し、符号化方法を表すハフマンデータhd(前述のHDに対応)を付ける。更に続いて(P32=1),…と続く。
【0072】
Pn =1ならば続けてブロック分割データPn/2 が続く。
【0073】
また図8において、最小ブロックサイズ符号化対象ブロックB5 〜B8 ,B9 〜B12に対応するデータには、ブロック分割データは付けない。これは最小ブロックを分割することがないので必ずP4 =0となるからである。
【0074】
符号化対象ブロック※から※※までのブロック分割データ及び符号化方法を示すデータは省略する。
【0075】
ステップS4 では、図8に示したブロック分割データ及び符号化方法を示すデータを保存しておく。
【0076】
ステップS5 では、ステップS3 で分割された図7に示す各々の符号化対象ブロックの中で、符号化方法の#0番〜#6番までを用いて符号化されることが仮決定されているブロックに対して、符号化時に発生する差分値(予測誤差)の統計を各ブロックサイズ毎にとる処理を行う。
【0077】
例えば図7において、B1 とB14、又はB4 とB13、又はB5 〜B8 とB4 〜B12は、同じブロックサイズなので、まとめて統計がとられ、1画面分の統計を蓄積する。
【0078】
本実施例では予測誤差−255〜255の計511個のカウンターが各々のブロックサイズに必要なので計6×511個のカウンターを用いる。
【0079】
ステップS6ではステップS2〜ステップS5までの128×128画素単位のブロック処理を1画面分行ったらステップS7へ、1画面の途中ならばステップS2 にもどり次のブロックの処理に進む。
【0080】
ステップS7では、ステップS5でとられた6つの統計に基づいて、各ブロックサイズに最適なハフマンテーブル(最適ハフマンテーブル)が作成される。
【0081】
ステップS8では予め設定しておいた最適化処理のループ数を満たしたか否かが判定され、ループ数を満たしていればステップS9へ、満たしていなければステップS1へもどり、前述で作成されたハフマンテーブルをステップS1の基準ハフマンテーブルとして書き換える。これは基準ハフマンテーブルよりも符号化対象の画像に基づいて作成された最適ハフマンテーブルを用いて符号化対象ブロックを生成する為のブロック分割、及び符号化方法を決定し直すことにより、更に効率の良い符号化が行えるからである。
【0082】
ステップS8で設定回数のループを行ったら、最後のループで決定されたブロック分割方法及び符号化方法、ならびに作成された最適ハフマンテーブルを最終的な符号化に用いる参照情報として保存し、ステップS9へ進む。
【0083】
ステップS9では参照情報を元に画像の符号化を行い符号化データを出力する。
【0084】
図9はステップS9での符号化処理の流れを示したものである。同図に於いてS80は最適ハフマンテーブルを符号化するステップ、S81は基本ブロックのサイズのブロックデータを取り出すステップ、S82はこのブロックデータに対応する参照情報を取り出すステップ、S83は参照情報に従ってこのブロックを符号化するステップ、S84は画像の終端を判定するステップである。
【0085】
まず、ステップS80では128×128画素ブロック用ハフマンテーブル64×64画素ブロック用ハフマンテーブル、32×32画素ブロック用ハフマンテーブル、16×16画素ブロック用ハフマンテーブル、8×8画素ブロック用ハフマンテーブル、4×4画素ブロック用ハフマンテーブルを符号化して出力する。
【0086】
ステップS81では、画像データから順に基本ブロックのサイズでブロックデータを取り出す。
【0087】
ステップS82では、このブロックデータに対する参照情報を呼び出す。ステップS83で、参照情報とこの参照情報に従ってブロックデータを符号化して生成した符号化データ列を出力する。ステップS84では画像の終端を判定し、未処理のブロックがある場合には次のブロックについてステップS81から処理を行う。
【0088】
以上の処理により、図10に示す様な画像データに対する符号化データ列を生成し、出力する。なお、データの順番は、1画素単位でなくブロック単位で送る様にしても良い。以上で第1の実施の形態の説明を終る。
【0089】
また、ブロック分割の方法としてブロックを同サイズに4分割する方法を挙げたが、ブロックサイズを可変にしても良い。
【0090】
また、第1の実施の形態では図6の様にある正方ブロックの符号量とこれを4分割した複数のサブブロック符号量とに基づいて、ブロック分割して符号化対象ブロックを決定していたが、最大ブロック(128×128画素)から最小ブロック(4×4)までの全てのブロックについての符号量を求めてこれら全ての符号量に基づいてブロック分割しても良い。
【0091】
また、初めに最小ブロックの符号量を求め、このブロックをサブブロックと見なし、図6の様に4つのサブブロック(4×4画素)の総符号量とこれらを合わせた領域のブロック(8×8画素)の符号量とに基づき仮のブロック分割方法と符号量を決定し、4つの決定された領域(8×8画素)の総符号量と決定された領域(8×8画素)から構成される更に大きなブロック(16×16画素)の符号量とに基づき新たに仮のブロック分割方法を決定し、最大ブロックサイズ128×128画素までこれを繰り返すことにより符号化対象ブロックを決定する様にしても良い。
【0092】
また、選択可能なブロック符号化方法として予測符号化方法と平面符号化方法、ランレングス符号化方法を用いたが、予測方法を変えるなどして適用方法を変えたり、あるいはマルコフモデル符号化方法等、別の符号化方法を用いても良いことは言うまでもない。更に、上述の実施の形態では各符号化方法におけるエントロピー符号方法としてハフマン符号化を用いているが、勿論これは算術符号化等、他のエントロピー符号化方法を用いてもよい。
【0093】
またブロック分割方法の決定は、符号量に基づいて行われていたが、実際に符号化することにより符号化効率を求め、この符号化効率に基づいて行う様にしても良い。
【0094】
【発明の効果】
以上のように本願発明によれば、画像の性質に応じて、最適なサイズのブロック単位で最適な符号化方法を用いた符号化を行うことができる。
【0095】
また、ブロック単位の符号化において、それぞれのブロックサイズに適した符号化を行うことにより、従来よりも更に効率の良い符号化を行うことができる。
【図面の簡単な説明】
【図1】本願発明の実施例に用いる装置の図。
【図2】本願発明の実施例の全体の流れを表すフローチャート。
【図3】実施例で用いる符号化方法を説明する図。
【図4】#6,#7の符号化方法を用いた際の符号化データ形態及び該符号化方法に用いるC0′に対するハフマンテーブルを示す図。
【図5】二値符号化方法で用いるブロック内のスキャン方法と符号化データ形態を説明
する図及び二値符号化で用いるランレングスの一覧表を示す図。
【図6】ある正方ブロックとそのサブブロックを表す図。
【図7】符号化対象ブロックを求める為に基本ブロックを更にブロック分割した様子を
示す図。
【図8】ブロック分割情報の形態を表す図。
【図9】S9の符号化処理についてのフローチャート。
【図10】最終的に符号化された画像データを示す図。
【符号の説明】
1 CPU制御部[0001]
BACKGROUND OF THE INVENTION
The present invention relates to an image processing apparatus and method for encoding an image.
[0002]
[Prior art]
Conventionally, DPCM (Differential Pulse Code Modulation) is widely known as a lossless encoding method for multilevel images. In general DPCM encoding, encoded pixels around an encoding target pixel, that is, a left pixel (this is a), an upper pixel (similarly b), and a left diagonal pixel (similarly c) Is used to calculate the prediction value (planar prediction) of the encoding target pixel using, for example, the equation (a + b−c), and encodes the difference between this and the encoding target pixel value.
[0003]
A multi-value gradation image typified by image data obtained by scanning a natural image such as a photograph has greatly different statistical properties depending on the part in the image. The difference in statistics is caused by a difference in local structure such as an edge in an image and a direction of a luminance gradient.
[0004]
The pixel value prediction by the DPCM method shown in the conventional example is effective only for those local structures that can be partially approximated to a two-dimensional plane. Will be adversely affected.
[0005]
As a form to compensate for this, for example, there is a method in which encoding is performed in units of blocks, an encoding method effective for the dominant structure in the block is used, and an index indicating the method is encoded as side information.
[0006]
However, the local structure in the image generally has a small area of a few pixels in the case of an edge or thin line structure where the flat (low frequency structure) portion has a large area and the luminance changes rapidly.
[0007]
Therefore, when processing is performed in units of blocks, it is advantageous to use a large block in the flat portion, and there is a tradeoff that it is more efficient to use a small block in the fine structure portion.
[0008]
In addition, some flat portions have complicated shapes, while others have high-frequency structures that spread uniformly over a large area. As described above, there has conventionally been a problem that it is impossible to perform encoding using an optimal encoding method in an optimal image processing unit according to the properties of an image.
[0009]
In order to solve the above-described problems, the present invention has an object to perform encoding using an optimal encoding method in an optimal image processing unit in accordance with the properties of an image.
[0010]
Another object of the present invention is to perform more efficient coding in the block unit coding.
[0011]
[Means for Solving the Problems]
In order to solve the above-described problem, according to an image processing apparatus according to
[0012]
DETAILED DESCRIPTION OF THE INVENTION
An example of an embodiment of the present invention will be described with reference to FIGS.
[0013]
FIG. 1 shows a circuit configuration for encoding / decoding an image, where 1 is a CPU control unit capable of performing encoding and decoding of image data by software processing, 2 is an image input unit for capturing image data, 3 is a printer unit that prints image data, 4 is a display unit that displays the image data on a monitor, etc. 5 is transmitting data encoded by the
[0014]
First, image data input from the image input unit 2 (in this case, luminance image data of 8 bit gradation) is temporarily stored in the
[0015]
Next, the image data in the
[0016]
In the encoding method, encoding is performed in units of square blocks, and the basic block size is a square block of 128 × 128 pixels. The minimum unit block size is a square block of 4 × 4 pixels, and encoding is performed so that encoding can be performed by changing the block size described later.
[0017]
Prior to the description of the processing in each step of FIG. 2, a plurality of encoding methods used for each block of an image in this embodiment will be described.
[0018]
As shown in FIG. 3A, a target pixel * of a block of a certain coding unit (in this embodiment, 4 × 4, 8 × 8, 16 × 16, 32 × 32, 64 × 64, 128 × 128 pixels). Let a, b, c be the surrounding pixels. Further, the pixel value at the upper left corner of the encoding unit block is C0 (zero).
[0019]
At this time, the encoding method in the present embodiment is shown in FIG. 3B using the above-described pixels.
[0020]
Nine types of encoding methods are set in total, and among these, six types of
[0021]
The Huffman table uses the same encoding method for # 0 to # 5 with the same block size, but if the block size is different, the statistics of the prediction error also differ, so the block size of each encoding unit Huffman table suitable for Therefore, this embodiment has a total of six Huffman tables corresponding to blocks of 4 × 4,..., 128 × 128 pixels.
[0022]
Next, the encoding method of # 6 “planar approximation mode” will be described.
[0023]
Assuming that the pixel position of C0 in the block of FIG. 3A is three-dimensional (x axis, y axis, z axis) (O, O, C0), the right direction in the figure (the main scanning direction). ) Is the x axis, and the downward direction (sub-scan) is the y axis.
[0024]
Here, by obtaining the square error in the Z direction with respect to the pixel values of the entire block of the coding unit, it is approximated as a plane (z = C0 + ax + by) and a and b are obtained.
[0025]
If the K-th pixel value in the block is dk and its x and y coordinates are x k and y k , the sum of the square error in the Z direction is
[0026]
[Outside 1]
It becomes.
[0027]
Expand this,
[0028]
[Outside 2]
After all,
Ε = Aa 2 + 2Da + Bb 2 + 2Eb + C + 2 Fab.
[0029]
In contrast, [0030]
[Outside 3]
By solving as
a = (BD-FE) / (F 2 -BA), b = the (AE-FD) / (F 2 -BA). Since A, B, and F only relate to positions in the block and are constant values with respect to k, a, b are measured by measuring the values of C, D, and E that are related to the pixel value d k. Is easily obtained. Clip a and b within a range of ± 0.5, and digitize the clipped interval to a value between 0 and 255. That is, if the values of a and b after digitization are a 'and b',
a ′ = 128 + floor (128a + 0.5), b ′ = 128 + floor (128b + 0.5).
[0031]
When the prediction error ek is obtained using the digital values a ′ and b ′ obtained above,
e k = d k − [{x k (a′−128) + y k (b′−128)} / 256 + C0]
It becomes.
[0032]
As described above, the parameters a and b that define the optimum approximate plane are obtained, and the prediction error with this plane is obtained.
[0033]
Next, how to encode the obtained value will be described.
[0034]
The normal code data has a structure as shown in FIGS.
[0035]
That is, the Huffman code indicating that # 6 “planar approximation mode” is used for the block to be encoded, the values of a ′ and b ′ (fixed length), and C0 or C0 ′ (C0 ′ is the previous one). Of the encoding target block C0) is sent.
[0036]
Next, complete approximation flag data is sent. Complete approximation flag is a flag indicating whether the prediction error e k becomes all zero for pixels within the block to be coded, finish data in the (1 in this example) all 0, flag-. (In this example 0) unless Furaguofu otherwise in the, then, sends data a prediction error e k generated and Huffman coding in the above from e 0 in order.
[0037]
Here Huffman table is to be the same as that used in the encoding method of Huffman table and # 0 th ~ # # 5 used coding e k, Huffman table This table is described below for the S1 and S7 in FIG. 2 is there.
[0038]
Which of C0 and C0 ′ is used here depends on the inclination parameters a ′ and b ′. A threshold value is set for each of a 'and b'. In this example, this value is 16, and both the values of a ′ and b ′ taking values of 0 to 255 are within the range of 128 ± 16 (128 in the present example corresponds to the
[0039]
C0 is sent with a fixed length, but in the case of C0 ', a Huffman code is used. The Huffman table used for C0 ′ is fixed, and the table shown in FIG. 3E is used in this embodiment.
[0040]
Next, the encoding method of # 7 “uniform mode” in FIG. 3B will be described. This encoding method is used when all the data in the block has the same pixel value, and is effective for a framed image, a CG (computer graphic) background, or the like.
[0041]
The code data is as shown in FIG. 4B, and a Huffman code indicating the encoding method and a C0 ′ code having the same properties as C0 ′ used in the # 6 encoding method are sent.
[0042]
Next, the encoding method of # 8 “binary mode” will be described.
[0043]
This is a method used when there are only two types of pixel values in the block to be encoded.
[0044]
Of the two types of pixel values, assuming that the pixel value having the higher luminance is D 1 and the other is D 2 , assuming that D 1 is the first pixel, an image scan as shown in FIG. As a result, the run length when D 1 and D 2 occur alternately is encoded.
[0045]
Huffman coding prepared in advance is performed on the obtained run length. One run-length data is represented using zero or more make-up codes and one terminating code.
[0046]
Terminating code is a code representing run length from 0 to 127. The Make up Code is a code representing a large value of 128 or more. These codes are encoded by a Huffman table prepared for each.
[0047]
The last run in the block is not encoded as it is, but is processed by adding an EOB code. If D 1 and D 2 are, for example, white and black, the Huffman table has white and black separately, and is a fixed table.
[0048]
This completes the description of the nine types of encoding methods used in this embodiment. The plurality of encoding methods are the encoding methods described later that can be encoded by changing the block size to be encoded. While selecting and assigning a method, a process for determining an encoding method within one screen is performed.
[0049]
Details will be described later.
[0050]
Next, the process of each step of FIG. 2 showing the flow of the entire encoding process will be described in detail.
[0051]
In step S1, one reference Huffman table is set for each block size to be used in the
[0052]
In step S2, the image data stored in the
[0053]
In step S3, the image data is finally divided into blocks (to be encoded blocks) when encoded in step S9, and the optimum encoding method (# 0 to # 8) for each of the divided blocks. ) Is provisionally determined. This will be described in detail below.
[0054]
The encoding target block (block division method) includes a code amount generated when encoding one square block and a total code amount generated when encoding four sub-blocks obtained by dividing the square block into four. A provisional decision is made based on the comparison result.
[0055]
A state of a square block of a certain size and its sub-block is shown in FIG.
[0056]
A square block of 2 n × 2 n pixels is represented by B, and a sub block of 2 n-1 × 2 n-1 pixels obtained by dividing the square block by 4 is represented by b 0 to b 3 .
[0057]
Of the nine types of
[0058]
Further, if the function for obtaining the minimum code amount among the code amounts of the encoded data encoded using the nine types of encoding methods is BW, it can be written as BW (B) = min (Ci (B)). .
[0059]
Also, let MC be a function for obtaining the minimum code amount for a block of a certain size. At this time, the following can be written using B, bi, etc.
[0060]
[Outside 4]
[0061]
In this embodiment, since the size of the minimum sub-block is 4 × 4 pixels, the above formula and
[Outside 5]
It becomes. Here, SF is a data amount of a flag for indicating the presence / absence of division into sub-blocks. In this embodiment, it is only necessary to express whether one block or sub-block is further divided into four or not. Requires a sign.
[0063]
Therefore, SF = 1.
[0064]
HD is the amount of information for representing i selected by the BW function, and in this embodiment, the information of i is Huffman encoded with a dedicated Huffman table.
[0065]
The method for tentatively determining the size of the block to be encoded will be briefly described. Using the above formula, the code size of a square block and the block size with the smaller code amount of the total code amount of this sub-block are selected. As a result, when the sub-block is selected, each sub-block is replaced with the above-described square block, and the block size is further selected. In addition, the code amount of each block is calculated using a method having the best compatibility among nine types of encoding methods.
[0066]
FIG. 7 shows the provisional determination of the block division method represented by the above equation and the coding method for each divided block.
[0067]
The block division example in FIG. 7 is a result of tentatively determining an encoding target block by recursively dividing the block into four by using 128 × 128 pixels as a basic block (maximum size of the encoding target block).
[0068]
Actually, block division as shown in the figure occurs when an edge crosses from the upper right to the lower left in the 128 × 128 pixel block. Each of the divided encoding target blocks has an independent encoding method (# 0 to # 8).
[0069]
FIG. 8 shows a data format indicating a block division method described based on the block division example of FIG. 6 and an encoding method of each of the divided blocks (encoding target blocks).
[0070]
In the figure, P n is 1-bit data (referred to as block division data) corresponding to the above-mentioned SF (presence / absence of block division). If P n = 1, the block is divided, and if P n = 0, block division is performed. Without continuing the data indicating the encoding method. (N indicates the block size to be processed.)
[0071]
For example, when (P 128 = 1), (P 64 = 1), and (P 32 = 0) are followed by a bit (128 × 128 pixel block is divided into four), the upper left 64 × 64 pixel block is 4 divisions) and (no upper left 32 × 32 pixel block division), and Huffman data hd (corresponding to the above-mentioned HD) representing the encoding method is attached. Further (P 32 = 1),.
[0072]
If P n = 1, the block division data P n / 2 continues.
[0073]
In FIG. 8, block division data is not added to data corresponding to the minimum block size encoding target blocks B 5 to B 8 and B 9 to B 12 . This is because P 4 = 0 is always obtained because the minimum block is not divided.
[0074]
Block division data from the encoding target block * to ** and data indicating the encoding method are omitted.
[0075]
In step S 4, it keeps the data indicating the block division data and the coding method as shown in FIG.
[0076]
In step S 5, in each of the encoding target block shown in FIG. 7, which is divided in step S 3, it is provisionally determined that coded using up to # 0 th ~ # sixth encoding method A process of taking statistics of difference values (prediction errors) generated at the time of encoding for each block size is performed on the block being processed.
[0077]
For example, in FIG. 7, B 1 and B 14 , B 4 and B 13 , or B 5 to B 8 and B 4 to B 12 are the same block size. accumulate.
[0078]
In this embodiment, since a total of 511 counters with a prediction error of −255 to 255 are necessary for each block size, a total of 6 × 511 counters are used.
[0079]
In step S6 the block processing of 128 × 128 pixels in the steps S2~ step S5 to step S7 After performing one screen, the process proceeds to 1 in the process if it returns to step S 2 next block of screen processing.
[0080]
In step S7, an optimum Huffman table (optimum Huffman table) for each block size is created based on the six statistics taken in step S5.
[0081]
In step S8, it is determined whether or not the preset number of optimization processing loops is satisfied. If the number of loops is satisfied, the process returns to step S9. The table is rewritten as the reference Huffman table in step S1. This is more efficient by re-determining the block division and encoding method for generating the encoding target block using the optimum Huffman table created based on the encoding target image rather than the reference Huffman table. This is because good encoding can be performed.
[0082]
When the set number of loops are performed in step S8, the block division method and encoding method determined in the last loop and the created optimum Huffman table are stored as reference information used for final encoding, and the process proceeds to step S9. move on.
[0083]
In step S9, an image is encoded based on the reference information and encoded data is output.
[0084]
FIG. 9 shows the flow of the encoding process in step S9. In the figure, S80 is a step of encoding the optimum Huffman table, S81 is a step of extracting block data of the basic block size, S82 is a step of extracting reference information corresponding to this block data, and S83 is a block of this block according to the reference information. S84 is a step of determining the end of the image.
[0085]
First, in step S80, a 128 × 128 pixel block Huffman table 64 × 64 pixel block Huffman table, a 32 × 32 pixel block Huffman table, a 16 × 16 pixel block Huffman table, an 8 × 8 pixel block Huffman table, 4 The Huffman table for x4 pixel block is encoded and output.
[0086]
In step S81, block data is extracted in the size of the basic block in order from the image data.
[0087]
In step S82, reference information for this block data is called. In step S83, the reference information and the encoded data string generated by encoding the block data according to the reference information are output. In step S84, the end of the image is determined. If there is an unprocessed block, the process is performed from step S81 on the next block.
[0088]
Through the above processing, an encoded data sequence for image data as shown in FIG. 10 is generated and output. The data order may be sent not in units of pixels but in units of blocks. This is the end of the description of the first embodiment.
[0089]
Further, although a method of dividing a block into four equal sizes has been described as a block dividing method, the block size may be variable.
[0090]
In the first embodiment, the block to be encoded is determined by dividing the block based on the code amount of a square block as shown in FIG. 6 and a plurality of sub-block code amounts obtained by dividing the square block into four. However, code amounts for all blocks from the maximum block (128 × 128 pixels) to the minimum block (4 × 4) may be obtained, and the blocks may be divided based on all these code amounts.
[0091]
First, the code amount of the minimum block is obtained, and this block is regarded as a sub-block. As shown in FIG. 6, the total code amount of four sub-blocks (4 × 4 pixels) and the block (8 × The temporary block division method and the code amount are determined based on the code amount of 8 pixels), and the total code amount of the four determined regions (8 × 8 pixels) and the determined region (8 × 8 pixels) are configured. Based on the code amount of a larger block (16 × 16 pixels), a temporary block division method is newly determined, and the block to be encoded is determined by repeating this up to a maximum block size of 128 × 128 pixels. May be.
[0092]
In addition, the predictive encoding method, the plane encoding method, and the run length encoding method were used as selectable block encoding methods, but the application method may be changed by changing the prediction method, or the Markov model encoding method, etc. Needless to say, another encoding method may be used. Further, in the above-described embodiment, Huffman coding is used as the entropy coding method in each coding method. Of course, other entropy coding methods such as arithmetic coding may be used.
[0093]
The determination of the block division method is performed based on the code amount. However, the coding efficiency may be obtained by actually encoding, and may be performed based on the encoding efficiency.
[0094]
【The invention's effect】
As described above, according to the present invention, it is possible to perform encoding using an optimal encoding method in units of blocks of an optimal size according to the properties of an image.
[0095]
In addition, in encoding in units of blocks, by performing encoding suitable for each block size, it is possible to perform encoding more efficiently than in the past.
[Brief description of the drawings]
FIG. 1 is a diagram of an apparatus used in an embodiment of the present invention.
FIG. 2 is a flowchart showing the overall flow of an embodiment of the present invention.
FIG. 3 is a diagram for explaining an encoding method used in the embodiment.
FIG. 4 is a diagram showing an encoded data format when using the encoding methods of # 6 and # 7 and a Huffman table for C0 ′ used in the encoding method.
FIG. 5 is a diagram for explaining a scan method in a block and a coded data form used in the binary coding method, and a diagram showing a list of run lengths used in the binary coding.
FIG. 6 is a diagram showing a certain square block and its sub-blocks.
FIG. 7 is a diagram illustrating a state in which a basic block is further divided into blocks in order to obtain an encoding target block.
FIG. 8 is a diagram illustrating a form of block division information.
FIG. 9 is a flowchart of the encoding process in S9.
FIG. 10 is a diagram showing finally encoded image data.
[Explanation of symbols]
1 CPU controller
Claims (6)
符号化対象ブロックについて、該符号化対象ブロックを所定複数個のサブブロックに分割するサブブロック分割ステップと、
前記符号化対象ブロック及び前記複数のサブブロックの夫々に対して、複数用意された符号化モードから最適な各1つを選択する符号化モード選択ステップと、
前記符号化対象ブロックを該ブロックの為に選択された符号化モードを用いて符号化して得られる符号量と、前記複数のサブブロックの夫々を該各ブロックの為に選択された符号化モードを用いて符号化して得られる符号量の総和とを比較する比較ステップと、
前記比較の結果、前記符号化対象ブロックの符号量が少ない場合には、該符号化対象ブロックを符号化する符号化ステップとを備え、
前記比較の結果、前記複数のサブブロックの総符号量が少ない場合には、更に、前記サブブロックの各々を新たな符号化対象ブロックと見なして、前記新たな符号化対象ブロックの各々について、前記所定複数個のサブブロックへの分割、前記符号化モードの選択、前記符号量の比較、及び前記比較の結果に応じて該符号化対象ブロックの符号化を行い、
前記複数用意された符号化モードにはハフマン符号化の実行を伴う符号化モードを含み、該符号化モードにおいて、複数種類のハフマンテーブルのうち前記符号化対象ブロックのサイズに対応するハフマンテーブルを用いてハフマン符号化を実行することを特徴とする画像処理方法。An image processing method for encoding an image in units of blocks,
A sub-block dividing step for dividing the encoding target block into a predetermined plurality of sub-blocks with respect to the encoding target block;
An encoding mode selection step of selecting an optimum one from a plurality of prepared encoding modes for each of the encoding target block and the plurality of sub-blocks;
A code amount obtained by encoding the block to be encoded using the encoding mode selected for the block, and an encoding mode selected for each of the plurality of sub-blocks. A comparison step for comparing the total amount of codes obtained by encoding using
As a result of the comparison, when the code amount of the encoding target block is small, an encoding step of encoding the encoding target block is provided.
As a result of the comparison, when the total code amount of the plurality of sub-blocks is small, each of the sub-blocks is further regarded as a new encoding target block, and each of the new encoding target blocks is division into predetermined plurality of sub-blocks, the selection of the encoding mode, the comparison of the code amount, and have line coding of the coding target block according to the result of said comparison,
The plurality of prepared encoding modes include an encoding mode accompanied by execution of Huffman encoding, and in the encoding mode, a Huffman table corresponding to the size of the block to be encoded is used among a plurality of types of Huffman tables. And Huffman coding .
符号化対象ブロックについて、該符号化対象ブロックを所定複数個のサブブロックに分割するサブブロック分割手段と、
前記符号化対象ブロック及び前記複数のサブブロックの夫々に対して、複数用意された符号化モードから最適な各1つを選択する符号化モード選択手段と、
前記符号化対象ブロックを該ブロックの為に選択された符号化モードを用いて符号化して得られる符号量と、前記複数のサブブロックの夫々を該各ブロックの為に選択された符号化モードを用いて符号化して得られる符号量の総和とを比較する比較手段とを備え、
前記比較の結果、前記符号化対象ブロックの符号量が少ない場合には、該符号化対象ブロックを符号化し、
前記比較の結果、前記複数のサブブロックの総符号量が少ない場合には、更に、前記サブブロックの各々を新たな符号化対象ブロックと見なして、前記新たな符号化対象ブロックの各々について、前記所定複数個のサブブロックへの分割、前記符号化モードの選択、前記符号量の比較、及び前記比較の結果に応じて該符号化対象ブロックの符号化を行い、
前記複数用意された符号化モードにはハフマン符号化の実行を伴う符号化モードを含み、該符号化モードにおいて、複数種類のハフマンテーブルのうち前記符号化対象ブロックのサイズに対応するハフマンテーブルを用いてハフマン符号化を実行することを特徴とする画像処理装置。An image processing apparatus that encodes an image in block units,
Sub-block dividing means for dividing the encoding target block into a plurality of predetermined sub-blocks for the encoding target block;
Encoding mode selection means for selecting each optimum one from a plurality of encoding modes prepared for each of the encoding target block and the plurality of sub-blocks;
A code amount obtained by encoding the block to be encoded using the encoding mode selected for the block, and an encoding mode selected for each of the plurality of sub-blocks. And a comparison means for comparing the total amount of codes obtained by encoding using
As a result of the comparison, when the code amount of the encoding target block is small, the encoding target block is encoded,
As a result of the comparison, when the total code amount of the plurality of sub-blocks is small, each of the sub-blocks is further regarded as a new encoding target block, and each of the new encoding target blocks is division into predetermined plurality of sub-blocks, the selection of the encoding mode, the comparison of the code amount, and have line coding of the coding target block according to the result of said comparison,
The plurality of prepared encoding modes include an encoding mode accompanied by execution of Huffman encoding, and in the encoding mode, a Huffman table corresponding to the size of the block to be encoded is used among a plurality of types of Huffman tables. An image processing apparatus that executes Huffman coding .
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP17869595A JP3618833B2 (en) | 1995-07-14 | 1995-07-14 | Image processing apparatus and method |
SA96170088A SA96170088B1 (en) | 1995-07-14 | 1996-06-12 | An absorbent pant-type undergarment that has elastic parts of different tension to improve leakage prevention and comfort. |
US08/665,953 US6101282A (en) | 1995-06-22 | 1996-06-19 | Apparatus and method for image data encoding |
DE69630167T DE69630167D1 (en) | 1995-06-22 | 1996-06-21 | Image processing device, data processing device and method |
EP96304625A EP0750426B1 (en) | 1995-06-22 | 1996-06-21 | Image processing apparatus, data processing apparatus and method therefor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP17869595A JP3618833B2 (en) | 1995-07-14 | 1995-07-14 | Image processing apparatus and method |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0937246A JPH0937246A (en) | 1997-02-07 |
JP3618833B2 true JP3618833B2 (en) | 2005-02-09 |
Family
ID=16052942
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP17869595A Expired - Fee Related JP3618833B2 (en) | 1995-06-22 | 1995-07-14 | Image processing apparatus and method |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP3618833B2 (en) |
SA (1) | SA96170088B1 (en) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6028963A (en) | 1996-06-17 | 2000-02-22 | Canon Kabushiki Kaisha | Image encoding based on judgement on prediction error |
US7085424B2 (en) | 2000-06-06 | 2006-08-01 | Kobushiki Kaisha Office Noa | Method and system for compressing motion image information |
TW515192B (en) | 2000-06-06 | 2002-12-21 | Noa Kk Off | Compression method of motion picture image data and system there for |
WO2003039163A1 (en) * | 2001-11-01 | 2003-05-08 | Kabushiki Kaisha Office Noa | Moving picture information compression method and system thereof |
US8824553B2 (en) | 2003-05-12 | 2014-09-02 | Google Inc. | Video compression method |
US7689051B2 (en) * | 2004-04-15 | 2010-03-30 | Microsoft Corporation | Predictive lossless coding of images and video |
JP4493552B2 (en) * | 2005-06-09 | 2010-06-30 | オリンパスイメージング株式会社 | Data encoding apparatus, data decoding apparatus, data encoding method, data decoding method, and program |
US8031954B2 (en) | 2007-04-26 | 2011-10-04 | Canon Kabushiki Kaisha | Image encoding apparatus and control method thereof using prediction encoding and pixel classification |
KR101517768B1 (en) | 2008-07-02 | 2015-05-06 | 삼성전자주식회사 | Method and apparatus for encoding video and method and apparatus for decoding video |
US8326075B2 (en) | 2008-09-11 | 2012-12-04 | Google Inc. | System and method for video encoding using adaptive loop filter |
JP2011166326A (en) * | 2010-02-05 | 2011-08-25 | Sony Corp | Image processing device and method |
IN2014CN04228A (en) | 2011-12-29 | 2015-07-17 | Intel Corp | |
US8819525B1 (en) | 2012-06-14 | 2014-08-26 | Google Inc. | Error concealment guided robustness |
JP6021498B2 (en) | 2012-08-01 | 2016-11-09 | 任天堂株式会社 | Data compression apparatus, data compression program, data compression system, data compression method, data decompression apparatus, data compression / decompression system, and data structure of compressed data |
JP6125807B2 (en) * | 2012-11-19 | 2017-05-10 | 任天堂株式会社 | Data compression device, data compression program, data compression system, data compression method, data decompression device, and data compression / decompression system |
JP6125808B2 (en) * | 2012-11-19 | 2017-05-10 | 任天堂株式会社 | Data compression apparatus, data compression program, data compression system, and data compression method |
US10102613B2 (en) | 2014-09-25 | 2018-10-16 | Google Llc | Frequency-domain denoising |
-
1995
- 1995-07-14 JP JP17869595A patent/JP3618833B2/en not_active Expired - Fee Related
-
1996
- 1996-06-12 SA SA96170088A patent/SA96170088B1/en unknown
Also Published As
Publication number | Publication date |
---|---|
SA96170088B1 (en) | 2006-08-12 |
JPH0937246A (en) | 1997-02-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3618833B2 (en) | Image processing apparatus and method | |
US6101282A (en) | Apparatus and method for image data encoding | |
JP5232863B2 (en) | Method and system for data compression | |
US6751356B2 (en) | Image processing apparatus and method | |
US6985630B2 (en) | Image processing apparatus and method, program and storage medium | |
JP4795161B2 (en) | Image processing apparatus, control method therefor, computer program, and computer-readable storage medium | |
EP0982949B1 (en) | Image processing apparatus and method | |
JP4697967B2 (en) | Image coding apparatus and control method thereof | |
JP2005516553A (en) | Coder-matched layer separation for compound document compression | |
JP2008072624A (en) | Image encoding device and its control method | |
JP5995864B2 (en) | Display data encoding method and system | |
JP2001358947A (en) | Device for controlling image quality and compression rate and useful method for image including pixel block | |
US6427025B1 (en) | Image processing with selection between reversible and irreversible compression | |
CN115834887A (en) | Data compression storage method of computer system | |
JP2001045301A (en) | Image processor | |
EP4117289A1 (en) | Image processing method and image processing device | |
JP2005191956A (en) | Display data compression/expansion method | |
US8023756B2 (en) | Image encoding apparatus and method of controlling same | |
ES2299847T3 (en) | FIXED BIT RATE, COMPRESSION AND DECOMPRESSION BETWEEN PICTURES OF A VIDEO. | |
Khan et al. | A hybrid image compression technique using quadtree decomposition and parametric line fitting for synthetic images | |
JP2000134622A (en) | Data processor | |
JP2003348355A (en) | Image processing apparatus and control method therefor | |
JP2008042681A (en) | Image processing method and processor, computer program and computer readable storage medium | |
JPH08265755A (en) | Picture processor and picture processing method | |
JP2004253889A (en) | Image processing apparatus and method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040427 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040622 |
|
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: 20041102 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20041111 |
|
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: 20071119 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081119 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081119 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091119 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101119 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101119 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111119 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121119 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131119 Year of fee payment: 9 |
|
LAPS | Cancellation because of no payment of annual fees |