JPH07193816A - 画像データ圧縮装置及び方法 - Google Patents

画像データ圧縮装置及び方法

Info

Publication number
JPH07193816A
JPH07193816A JP33206493A JP33206493A JPH07193816A JP H07193816 A JPH07193816 A JP H07193816A JP 33206493 A JP33206493 A JP 33206493A JP 33206493 A JP33206493 A JP 33206493A JP H07193816 A JPH07193816 A JP H07193816A
Authority
JP
Japan
Prior art keywords
data
pixel
diff
code
vect
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.)
Granted
Application number
JP33206493A
Other languages
English (en)
Other versions
JP3323615B2 (ja
Inventor
Yukari Toda
ゆかり 戸田
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 JP33206493A priority Critical patent/JP3323615B2/ja
Priority to US08/362,916 priority patent/US5903671A/en
Publication of JPH07193816A publication Critical patent/JPH07193816A/ja
Application granted granted Critical
Publication of JP3323615B2 publication Critical patent/JP3323615B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Image Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

(57)【要約】 【目的】 可逆符号に高能率化を図る。 【構成】 画素データd[i]を一画素づつ入力する画
素入力手段と、1つ前の画素d[i−1]との差分di
ffをとる減算手段と、diffが0であるか判定する
判定手段と、出現可能性の高いベクトルvect[n]
を保持するm個の保持手段と、前記差分diffとve
ct[n]を比較するm個の比較手段と、前記ベクトル
vect[n]を演算する演算手段と、前記判定手段お
よび前記比較手段の結果により圧縮コードを決定し出力
する符号出力手段と、を有する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は画像データ圧縮方法およ
び装置に関する。
【0002】
【従来の技術】近年、DTPなどによりコンピュータ上
で作成される画像は、より高画質な画像が要求されてお
り、カラー化、多階調化が進んでいる。この種の画像に
おける情報量は、例えば、A4サイズ400dpi25
6階調3色カラーの場合で約46Mbyteにもなる。
画像データをページ記述言語(Page Discri
ption Language)などのコード情報とし
て扱えば情報量は少なくなく。しかしながら、コード情
報から画像データへの展開に時間がかかる上に、展開さ
れた画像から元のコード情報を再現できないという問題
点がある。
【0003】カラー多値画像の一般的な圧縮方法として
は、JPEG(Joint Photographic
Expent Group)が推奨するADCT(A
daptive Discrete Cosine T
ransform)方式による圧縮法がある。ADCT
圧縮法について以下に説明する。
【0004】図13はADCT圧縮装置の機能構成を表
わすブロック図である。3101は色空間変換部であ
り、NTSC方式の各色毎の信号(赤(R)、緑
(G)、青(B))による色空間(NTSC−RGB)
を、輝度信号Yと2つの色差信号Cr、Cbとで表わさ
れる色空間(YCrCb)に変換する。3102はサブ
サンプリング部であり、人間の眼が輝度に敏感で色差に
鈍感であるという特性を利用して、色差データの減少を
行う。具体的には、サブサンプリング部3102はとな
りあう2つの色差データの平均値をとり、色差データの
量を1/2に減少させている。3103はDCT変換部
であり、サブサンプリング部3102を経て入力された
画像データを水平および垂直方向にとなり合う8×8の
ブロックに分割し、DCT変換をかけ、周波数空間に変
換する。3104は量子化部であり、64個の各DCT
係数をステップ幅の異なった量子化値で割る。3105
はハフマン符号化部であり、量子化された64個のDC
T係数を1つのDC係数と63個のAC係数に分け、そ
れぞれの係数をJPEGが推奨しているハフマンテーブ
ルに従って符号化する。符号化されたデータは量子化テ
ーブルデータ、ハフマンテーブルデータなどのヘッダを
添付してメモリに蓄積されるかまたは他の装置等へ送信
される。
【0005】図14はADCT伸長装置の機能構成を表
わすブロック図である。3205はハフマン複合化部で
あり、入力された符号化データを複合し、量子化データ
を生成する。3204は逆量子化部であり、ハフマン複
合化部3205にて生成された量子化データをCDT係
数データに変換する。これは、量子化部3104で量子
化する際に使用した量子化テーブルデータを用いて、6
4個の係数に量子化値を乗ずることにより得られる。3
203は逆DCT変換部であり、逆量子化部3204に
て得られたDCT係数データを実画像データに逆DCT
変換する。3202は補間部であり、データ圧縮時にお
けるサブサンプリング部3102により欠落したCrお
よびCbのデータを単純に繰り返し法により補間する。
3201は色空間変換部であり、YCrCbのデータを
NTSC−RGBのデータまたはそのデバイスの色空間
データに変換する。
【0006】次に、実際のデータを示して本データ圧縮
および伸長装置の処理の流れを説明する。
【0007】図15はコンピュータにより作成されたカ
ラー多値画像のイメージデータの1部分を示す。図15
に示されているのは、NTSC−RGBのデータであ
り、カラー多値画像の文字部分の展開されたイメージデ
ータの1部分(16画素×16画素)である。3301
は赤(R)データ、3302は緑(G)データ、330
3は青(B)データを示す。各画素のデータはレンジが
8bit(0〜255)のデータであり、(R、G、
B)=(225、225、225)というやや暗い白の
下地に(R、G、B)=(30、30、225)という
青色の文字が書いてある画像の一部である。
【0008】色空間変換部3101で行われるNTSC
−RGBからYCrCbへの変換は以下に示される式に
より実行される。
【0009】 Y=0.299×R+0.587×G+0.114×B Cr=0.713(R−Y) Cb=0.564(B−Y)
【0010】さらにCCIRの勧告により、YCrCb
色空間での演算時のオーバーシュート、アンダーシュー
トを許容するため、以下のデータの丸めを行う。
【0011】Y=219.0×Y+16.5 Cr=224.0×Cr+128.5 Cb=224.0×Cb+128.5
【0012】上述の各式により得られたYCrCbの各
データをサブサンプリング部3102で色差データCr
およびCbに対してサブサンプリングを行う。サブサン
プリング法としては単純間引き、MAXデータ選択、M
INデータ選択などがあるが、ここでは平均値法を使用
する。すなわち、連接した2画素分のデータの平均値を
とり、1つのデータとする方法である。以上の色空間変
換部3101およびサブサンプリング部3102を経て
得られたデータを図16に示す。図16において、34
01はYデータ(輝度データ)、3402はCrデータ
(色差データ)、3403はCbデータ(色差データ)
である。Cr、Cbの各データはサブサンプリング部3
102の処理により1/2に減少しているのがわかる。
【0013】次に図16に示されたYデータ3401、
Crデータ3402、Cbデータ3403はDCT変換
部3103へ入力される。DCT変換部3103におい
て、まず、水平および垂直にとなり合う8×8データを
1ブロックとして各データのブロック分けを行う。ブロ
ック分けの結果、Yデータ3401は3401aから3
401dの4つのブロックに分割される。同様にして、
Crデータ3402は3402a、3402bの2つの
ブロックに分割され、Cbデータ3403は3403
a、3403bの2つのブロックに分割される。そし
て、これら8個の各ブロックに対してDCT変換が実行
される。
【0014】図17に、図16の8個のブロックをDC
T変換した様子を示す。3501はYデータ3401の
DCT変換後のデータを示す。4つのブロック3401
aから3401dにそれぞれ3501aから3501d
のブロックが対応する。同様に、3502はCrデータ
3402のDCT変換後のデータ、3503はCbデー
タ3403のDCT変換後のデータを示している。DC
T変換後の各ブロックの64個の係数は、1つのDC成
分(左上すみ)と63個のAC成分で構成されている。
【0015】次に、図17のDCT変換後データ350
1〜3503は量子化部3104において量子化され
る。
【0016】ここで量子化に用いる量子化テーブルはJ
PEGが推奨する量子化テーブルを使用する。図22に
量子化テーブルを示す。4001はY成分用、4002
はCrおよびCb成分用である。量子化処理後のデータ
を図18に示す。3601はYデータの量子化後デー
タ、3602はCrデータの量子化後データ、3603
はCbデータの量子化後データである。
【0017】ハフマン符号化部3105で、各量子化後
データ3601〜3603は、DC成分、AC成分に分
けられる。DC成分は前のブロックのDC成分との差分
のヒストグラムを取り、最適ハフマン符号化テーブルが
作成され、そのテーブルに従って符号化が行われる。A
C成分は図23に示すようなジグザグ順に並び変えが行
われる。そしてAC成分に対しては、0ではない値Xが
はいるまでの0のランレングスとその値Xの組み合わせ
のヒストグラムを取り、最適ハフマンテーブルを作成す
る。この生成された最適ハフマンテーブルに従って符号
化が行われる。
【0018】この時点で、このNTSC−RGBにおけ
る16×16画素のデータは、795bitになる。原
画像は1画素が8bitなので、16×16×3色=7
86byte=6144bitである。従って、1/
7.7の圧縮がなされたことになる。実際は、この符号
化データに画像サイズ、量子化テーブル、符号化テーブ
ル等が添付されて、メモリに格納、あるいは送信され
る。
【0019】次にデータ伸長時の処理について説明す
る。
【0020】ADCT圧縮法により処理された画像デー
タはハフマン複合化部3205に入力され、複合化され
る。逆量子化部3204は、ハフマン複合化部3205
にて複合化されたデータに対して図22に示される量子
化テーブルの係数を乗算することにより逆量子化の処理
を実行する。以上の処理により図19に示すようなデー
タが得られる。図19は前述のADCT圧縮法により得
られたデータに対してハフマン複合化処理及び逆量子化
処理を実行して得られるデータである。図19のデータ
を圧縮前のデータ図17と比較すれば、明らかに異なる
ことがわかる。
【0021】次に、図19のデータを逆DCT変換部3
202でYCrCbデータに変換する。そのYCrCb
データを図20に示す。そして、図20のYCrCbデ
ータは、色空間変換部3201において、NTSC−R
GBデータに変換される。そして、データ伸長処理によ
り最終的に得られたデータを図21に示す。
【0022】
【発明が解決しようとする課題】以上説明したように、
上記ADCT圧縮法は、サブサンプリング部3102及
び量子化部3104において、量子化時にデータの損失
を伴う不可逆圧縮法である。従って、伸長されたデータ
は圧縮前のデータとは異なるものとなる。これは、上述
の圧縮処理前のNTSC−RGBデータを表わす図15
と、図15のデータに対して圧縮伸長処理を実行した結
果得られるNTSC−RGBデータを表わす図21とを
比較すれば明らかである。そして、これは画質劣化が発
生する個とを意味する。
【0023】DCPデータ等のコンピュータ上で作成し
た画像(コンピュータ作成画像)は、アウトラインのき
れいさ、1図形(または1文字)単一色によるノイズの
ない色塗りがその長所である。ところが、ADCT圧縮
法により画像データを処理すると、図形のアウトライン
のみだれ、疑似エッジ(モスキートノイズと呼ばれる)
の発生、量子化による色の変化等が発生し、コンピュー
タ作成画像の長所が発揮されない。特に上述の圧縮法は
8×8ブロック処理であるため、境界域では大幅に色が
変化してしまう。圧縮率を上げると最終的に交流成分は
失われてブロック歪が発生し、解像度が1/8になった
ような画像となる。
【0024】このため、画質の劣化が目に見えない程度
の量子化におさえて圧縮することも考えられるが、もと
もと高周波数データが多いことを特徴とするコンピュー
タ作成画像であるため、圧縮率において実用的でない。
従って、DTPで作成した画像のようなコンピュータ作
成画像は可逆で高圧縮率の得られる圧縮法を圧縮するこ
とが必要である。
【0025】本発明は上記の問題点に鑑みてなされても
のであり、コンピュータなどにより作成された多値画像
を劣化なく高い圧縮率で圧縮する画像データ圧縮伸長方
法及び装置を提供することを目的とする。
【0026】
【課題を解決するための手段及び作用】本発明は、上述
の目的のため、画素データd[i]を一画素づつ入力す
る画素入力手段と一つ前の画素d[i−1]との差分d
iffをとる減算手段と、diffが0であるか判定す
る判定手段と、出現可能性の高いベクトルvect
[n](n=0〜m)を保持するm個の保持手段と、前
記差分diffとvect[n]を比較するm個の比較
手段と、前記ベクトルvect[n]を演算する演算手
段と、前記判定手段及び前記比較手段の結果により圧縮
コードを決定し出力する符号出力手段を有することによ
りコンピュータ作成画像を効率良く圧縮することが可能
である。
【0027】
【実施例】始めにコンピュータ作成画像の特徴を示す図
を図24(a)に示す。図24(a)の縦軸はデータの
値を示し、横軸は空間軸である。コンピュータ作成画像
は第1の特徴として同じデータ値が続く傾向があり、第
2の特徴としてデータが変化しても元のデータに戻る傾
向がある。
【0028】そこで、出現確率の高さとしては、 1)前の画素と同じデータ(差分が0) 2)画素値変化時のベクトルと逆のベクトル が、起こりやすいことになる。
【0029】すなわち、差分がプラス2の変化が発生し
たらマイナス2の変化が起こりやすい。これを、図24
(b)を使用して説明する。
【0030】1101でプラス64のベクトルが発生し
たら差分<0>の次に起こりやすいベクトルは<−64
>である。図24(b)の例では実際に次の1102で
マイナス64のベクトルが発生している。1102のマ
イナス64のベクトルから次に起こりやすいベクトルは
<+64>である。1103でプラス64のベクトルが
発生している。次の1104ではプラス191のベクト
ルが発生した。この際、<0>の次に起こりやすい事象
は<−191>、その次は、−191−64で計算され
る<−255>である。
【0031】以上の特徴から起こりやすい事象は計算式
で以下のように表わすことができる。空間的変化をi、
そのときの画素値をd[i](0〜255の8bi
t)、同じ色を一塊としてインクリメントされるk(図
24参照)、<0>の次に起こりやすいベクトルをx
[k]、<0>、x[k]の次に起こりやすいベクトル
をy[k]で表わすとして、diff=d[i]−d
[i−1]とすると、diffが0の時、x[k]、y
[k]は変化なし。diffが0以外の時、x[k]、
y[k]が次のように更新される。
【0032】x[k+1]=−diff,y[k+1]
=diff+A[k] A[k]は発生ベクトルがx[k]と一致したときy
[k]であり、それ以外の時x[k]である。
【0033】i[0]、x[0]、y[0]は初期値と
して決まった値を代入しておく。例えばi[0]=0、
x[0]=255、y[0]=100のように代入して
おく。
【0034】そして、起こりやすい事象に短い符号を割
り当てることにより、データを圧縮することができる。
【0035】例えば、差分が0だったときの符号を
“0”、差分がx[k]と一致したときの符号を“1
0”、差分がy[k]と一致したときの符号を“11
0”とし、どれとも一致しなかったときにどれとも一致
しなかったことを示す符号“111”に値を示すデータ
を添付する。この値を示すデータは差分であってもよい
し、色データであってもよいが、この例では色データを
添付する。このような符号で図24(b)のように値が
変化する画像を処理してみる。
【0036】d[1]−d[0]は0であるので<0>
が出力される。
【0037】d[2]−d[0]も0であるので<0>
が出力される。
【0038】d[3]−d[2]は64であり、x
[0]=10、y[0]=5とも異なるので<111+
64>すなわち<11101000000>が出力され
る。
【0039】この変化によってx[1]に−64(−d
iff)が代入されy[1]には191(−diff+
x[0])が代入される。
【0040】d[4]−d[3]は0であるので<0>
が出力される。
【0041】d[5]−d[4]も0であるので<0>
が出力される。
【0042】d[6]−d[5]は−64でありx
[1]と一致するので<10>が出力される。
【0043】この変化によってx[2]に+64(−d
iff)が代入されy[2]には255(−diff+
y[1])が代入される。
【0044】d[7]−d[6]は0であるので<0>
が出力される。
【0045】d[8]−d[7]は64でありx[2]
と一致するので<10>が出力される。
【0046】この変化によってx[3]に−64(−d
iff)が代入されy[3]には191(−diff+
y[2])が代入される。
【0047】d[9]−d[8]は0であるので<0>
が出力される。
【0048】d[10]−d[9]は+191でありy
[3]と一致するので<110>が出力される。
【0049】この変化によってx[4]に−191(−
diff)が代入されy[4]には−255(−dif
f+x[3])代入される。
【0050】d[11]−d[10]は0であるので<
0>が出力される。
【0051】d[12]−d[11]も0であるので<
0>が出力される。
【0052】d[13]−d[12]も0であるので<
0>が出力される。
【0053】d[14]−d[13]も0であるので<
0>が出力される。
【0054】d[15]−d[14]も0であるので<
0>が出力される。
【0055】d[16]−d[15]も0であるので<
0>が出力される。
【0056】d[17]−d[16]は−191であり
x[4]と一致するので<10>が出力される。
【0057】この変化によってx[5]に+191(−
diff)が代入されy[5]には−64(−diff
+y[4])が代入される。
【0058】このような処理によってx[k]、y
[k]の値は図24(c)のように変化する。また、符
号データ図24(d)のように59bitになり、この
例では元のデータは8bitであるので36画素×8=
288bit必要だったものが約5分の1の59bit
に圧縮できる。何bit画像にも応用可能である。
【0059】図24(d)のデータを伸長処理する際の
様子を以下に示す。
【0060】伸長処理のときもd[0]=0、x[0]
=255、y[0]=100という圧縮処理のときと同
じ初期値を与える。
【0061】まず最初の符号は<0>であるのでd
[1]=d[0]=0が導ける。
【0062】次の符号も<0>であるのでd[2]=0
が導ける。
【0063】次の符号は<111>であり、これはx
[0]、y[0]とも異なる差分のデータが発生したこ
とを示すので次の8bit(この場合8bitだが元デ
ータ24bitなら24bit)を読みだし、64とい
う数値が得られるのでd[3]に代入し、d[3]=6
4となる。この際x[1]には−(d[3]−d
[2])=−64が代入され、y[1]には−64+x
[0]=191が代入される。この例では色データを添
付したのでd[3]=(読み出された数値)、x[1]
=−((読み出された数値)−d[2])になったが差
分を添付した場合はd[3]=d[2]+(読み出され
た数値)で、x[1]=(読み出された数値)となる。
【0064】次の符号は<0>であるのでd[4]=6
4が導ける。
【0065】次の符号も<0>であるのでd[5]=6
4が導ける。
【0066】次の符号は<10>であり、これは差分が
x[1]と等しいことを示しているのでd[6]=d
[5]+x[1]=0が導ける。この際x[2]は−
(d[6]−d[5])=64が代入され、y[2]に
は64+y[1]=255が代入される。
【0067】次の符号は<0>であるのでd[7]=0
が導ける。
【0068】次の符号は<10>であり、これは差分が
x[2]と等しいことを示しているのでd[8]=d
[7]+x[2]=64が導ける。この際x[3]は−
(d[8]−d[7])=−64が代入され、y[3]
には−64+y[2]=191が代入される。
【0069】次の符号は<0>であるのでd[9]=6
4が導ける。
【0070】次の符号は<110>であり、これは差分
がy[3]と等しいことを示しているのでd[10]=
d[9]+y[3]=255が導ける。この際x[4]
は−(d[10]−d[9])=191が代入され、y
[4]には−191+x[3]=−255が代入され
る。
【0071】以上の処理によって図24(d)の符号か
ら図24(a)の画像データがデータの損失なく復元で
きる。
【0072】以下に本発明による好適な実施例について
添付の図面を参照して説明する。
【0073】〔実施例1〕実施例1によるデータ圧縮装
置について以下に説明する。
【0074】図1は実施例1によるデータ圧縮装置の機
能構成を表すブロック図である。
【0075】101は画素データ並び変え部で入力され
たラスター画像データを並び変えて1画素づつクロック
に同期して出力する。ここは何の処理がなくても(ラス
ターのままスルーで出力されても)構わないし、スキャ
ン順次を図26に示したように替えて出力してもよい。
たとえば、図26(a)の様に並び変えるには画素デー
タ並び変え部はメモリで構成され垂直方向8ライン分の
画素データを保持しアドレス制御で並び変えたデータを
順次出力していく。102は圧縮部で画素データ並び変
え部101から出力された画素データを圧縮処理して符
号を出力する。103はデータパック部で圧縮部102
から出力された符号を入力し、メモリ、または通信イン
ターフェースのデータ深さ(depth)に合わせて符
号をパッキングし、パッキングされたデータを出力す
る。104はメモリまたは通信インターフェース部でパ
ッキングされたデータを格納または送信する。
【0076】圧縮部102について図2を用いて説明す
る。201は24bitのフリップフロップでクロック
に同期して入力された画素データ値を格納する。初期値
が必要でここでは例として、白(255、255、25
5)を初期値として格納する。
【0077】202は減算器で入力された画素データd
[i]とフリップフロップ部201からの出力である一
画素前の画素データd[i−1]を入力し、d[i]−
d[i−1]を演算して25bitの差分データdif
fを出力する。
【0078】203はOR回路部で減算器202からの
出力であるdiffの下位24bitを入力しORをと
って1bitのデータcode0を出力する。code
0はdiffが0のとき0となり、diffが0以外の
とき1となる。
【0079】204は加算器で減算器202の出力であ
るdiffのNOTを入力して1と加算して−diff
を出力する。
【0080】205は25bitのフリップフロップで
加算器204の出力である−diffを入力し、NOT
回路203の出力であるcode0をハイイネーブル信
号としてcode0が1のとき−diffを格納する。
初期値が必要でここでは例として、白から黒に変わった
ときの差分(−255、−255、−255)を初期値
として格納する。206は比較器で減算器202の出力
であるdiffとフリップフロップ205の出力である
Xを入力して一致したら0、不一致ならば1という1b
itのデータcode1を出力する。
【0081】207はセレクタでフリップフロップ20
5の出力であるXと後述のYを入力し比較器206から
出力されるcode1の制御で、codeが1のときは
Xをcode1が0のときはYを選択して出力する。
【0082】208は加算器で加算器204の出力であ
る−diffとセレクタ207の出力を入力し25bi
tの加算結果を出力する。
【0083】209は25bitのフリップフロップで
加算器208の出力を入力し、NOT回路203の出力
であるcode0をハイイネーブル信号としてcode
0が1のときデータを格納する。初期値が必要でここで
は例として、白から赤に変わったときの差分(0、−2
55、−255)を初期値として格納する。
【0084】201は比較部で減算器202の出力であ
るdiffとフリップフロップ209の出力であるYを
入力して一致したら0、不一致ならば1という1bit
のデータcode2を出力する。
【0085】211は符号割り当て部でcode0、c
ode1、code2を入力し符号を割り当てて出力す
る。
【0086】この圧縮装置では 1)差分diffが0 2)差分diffがXと一致 3)差分diffがYと一致 4)1)2)3)のどれでもない の4つのケースが存在するが、例えば、1)にたいして
<0>、2)にたいして<10>、3にたいして<11
0>、4)にたいして<111>としう符号を固定で与
えるならば211の符号割り当て部は必要なく、1)の
とき<code0>を、2)のとき<code1、co
de1>を、3)と4)のとき<code0、code
1、code2>を出力すればよい。211の符号割り
当て部が必要なのは符号を状況によって変化させたい時
などである。
【0087】図6に本圧縮装置の動作を示すフローチャ
ートを示す。
【0088】本圧縮装置で圧縮されたデータを伸長する
伸装置の一例を図3に示す。
【0089】301はメモリまたは通信インタフェース
で、読み出されたデータまたは受信したデータを出力す
る。302はデータアンパック部でマルチプレクサなど
で構成され、受け取った圧縮データを荷ほどきして出力
する。303は伸長部で荷ほどきされたデータを入力し
画素データに伸長して出力する。304は画素データ並
び変え部で伸長されたデータを画像空間水平垂直に直し
て出力する。これは、圧縮処理時に画素データを並び変
え部101がなかった場合は必要ない。たとえば、図2
6のように並び変えられている場合に、元のラスター順
に戻すために必要である。
【0090】伸長部303について図4を用いて説明す
る。401は符号戻し部で圧縮処理時に符号割り当て部
で符号変換を行った場合に必要であるが、それ以外は必
要ない。code0とcode1とcode2と添付さ
れた24bitの色データnewを出力する。
【0091】402は24bitフリップフロップで画
素データd[i]を格納する。圧縮処理時に201に格
納した初期値と同じ初期値が必要で(255、255、
255)を格納する。
【0092】403は減算器で画素データd[i−1]
からd[i]を減算した値である25bitの−dif
fを出力する。
【0093】404は25bitのフリップフロップで
減算器403の出力である−diffを入力しcode
1をハイイネーブル信号としてcode1が1のときに
−diffを格納する。圧縮処理時に205に格納した
初期値と同じ初期値が必要で(−255、−255、−
255)を格納する。
【0094】405はセレクタで後述するXとYを入力
しcode1の制御で、code1が1のときXを、c
ode1が0のときYを選択し、出力する。
【0095】406は加算器でセレクタ405の出力と
減算器403の出力である−diffを入力し、加算し
て出力する。
【0096】407は25bitのフリップフロップで
加算器406の出力を入力し、code1をハイイネー
ブル信号としてcode1が1のときにデータを格納す
る。圧縮処理時に209に格納した初期値と同じ初期値
が必要で(0、−255、−255)を格納する。
【0097】408はセレクタでフリップフロップ40
4の出力であるXとフリップフロップ407の出力であ
るYを入力しcode1の制御で、code1が0のと
きXを、code1が1のときYを選択し、出力する。
【0098】409は加算器でフリップフロップ402
の出力であるd[i−1]とセレクタ408の出力を入
力し加算して24bitデータAを出力する。
【0099】410はAND回路でcode0、cod
e1、code2を入力してすべてが1のときのみ1を
出力する。
【0100】411はセレクタで色データnewとフリ
ップフロップ402の出力であるd[i−1]と加算器
409の出力Aを入力しcode0とAND回路410
の出力bを制御として(code0、b)とすると
(0、X)のとき、d[i−1]、(1、0)のとき
A、(1、1)のときnewを選択して色データd
[i]を出力する。
【0101】図7に本伸長装置の動作を示すフローチャ
ートを示す。
【0102】〔実施例2〕上述の実施例においては出現
確率が高いとして符号を与えるベクトルをx、yの2つ
としたがこれに限るものではなく、論理的にいくつでも
よい。ベクトルの計算式は以下のようになる。上述の実
施例ではx[k]、y[k]で表現したベクトルを本実
施例ではvect[m][k]と表現する。m=0〜n
で、m=0のとき上述の実施例でのxにあたり、m=1
のとき上述の実施例でのyにあたる。kは同じ色を一塊
としてインクリメントされる値(図24(a)参照)で
ある。色変化をdiff=d[i]−d[i−1](i
は画素の空間的変化、d[i]はiの位置の画素値)と
定義し、ベクトルvect[m][k]はdiff1=
0のとき(色の変化が起こったとき)に次のように更新
される。
【0103】vect[0][k+1]=−diff; vect[1][k+1]=−diff+A; ここで、Aはif(diff==vect[0]
[k])A=vect[1][k]; else A=vect[0][k]; vect[2][k+1]=−diff+B: ここで、Bはif((diff==vect[0]
[k])::(diff==vect[1][k]))
B=vect[2][k]; else A=vect[1][k]; vect[n][k+1]=−diff+P; ここで、Pはif((diff==vect[0]
[k])::(diff==vect[1]
[k])::…::(diff==vect[n−1]
[k]) P=vect[n][k]; else P=vect[n−1][k]; 本実施例の動作を実現する装置例は図5のようになる。
【0104】なお、上述の各実施例においてはハードウ
ェアによりその圧縮法を実現しているが、コンピュータ
のソフトウェアによりこれを実現しても良い。
【0105】〔実施例3〕以上説明した実施例において
どのベクトルとも一致しなかったとき、どのベクトルと
も一致しないコードのあとに色データを添付したがその
限りではなく、色を表わす情報なら何でも構わない。
【0106】たとえば、差分データを添付してもよい
し、パレットコードを添付してもよい。以下、パレット
コードについて簡単に説明する。
【0107】固定bitパレット情報を添付する場合に
はたとえば8bit固定パレットであれば256色に限
定されてしまうが、24bitの色データを添付するの
に比べて8bitですむ利点がある。パレットは存在す
る色がわかっていれば初めに決めておいてもいいし、圧
縮中に出現した新色を登録してもよい。その場合、どの
ベクトルとも一致しなかった場合、パレット内の登録色
と添付するべき色データを比較し、一致していたらその
パレット番号を、不一致だったら新たなパレット番号を
あたえ、そのパレット番号を出力する。
【0108】〔実施例4〕上述の実施例において圧縮部
から出力された圧縮コードをさらに他の可逆圧縮法で圧
縮してもよい。他の圧縮法とはランレングス圧縮法のM
Hやハフマン符号化などである。通常のMHより数値1
の前に0が続いた数を1つの単位(たとえば、0000
1、00000000001)としてハフマン符号化す
ると効果的である。図8に本実施例の装置を示す。
【0109】〔実施例5〕上述の実施例において圧縮デ
ータはシリアルに並べて1つにパッキングしたが、別々
にパッキングしても構わない。
【0110】たとえば第1の実施例を例にして説明する
とcode0に当たる情報とcode1に当たる情報と
code2に当たる情報と添付する色を表わす情報は別
々にメモリに格納してもよい(図9−901)。
【0111】1つにパッキングする場合には符号データ
を格納する場所が常に不定なため(例として32bit
深さで1つにパッキングする場合符号データを格納する
のはcode0、code1、code2のコードが可
変長なので1bit目からになるかもしれないし、5b
it目になるかもしれない)、バレルシフタが必要にな
ってパッキング回路が大きくなってしまう。この点が別
々にパッキングすることにより解決される。特に24b
it色のデータのパッキングが困難なのでcode0、
code1、code2は一緒に格納して24bit色
データだけ別にしてもよい(図9−902)。
【0112】また、code0、code1、code
2もそれぞれ別々にパッキングすることにより、さらに
この符号データをランレングス圧縮をかける場合に0に
続くことが多くなりランレングス圧縮の効果が大きくな
る。
【0113】〔実施例6〕上述の第4の実施例におい
て、メモリをcode0、code1、code2、色
データに分けた場合、符号データをランレングス圧縮を
かける場合0でも1でも同じデータが続いたほうが圧縮
効果が高いので、code0、code1、code2
を表わす符号は符号割り当て部211を使用してトグル
にしてもよい。
【0114】図10(a)は第1実施例に則した符号で
ある。これを、トグル符号にすると図10(b)のよう
になる。つまり、図10(a)で1が発生したのをきっ
かけに次の符号は反転させる。これによって0、1が続
くことが多くなり、特にcode0において後にランレ
ングスかける際に効果的である。
【0115】上述の実施例においてフリップフロップ2
06、210に格納するのは出現可能性の高いベクトル
そのものの値であったが、図11の様な構成にすること
も可能である。図2に対して対応するものは図2の20
6に対して1000番をつけて1206で示してある。
ここで、フリップフロップ1206と1210は出現可
能性の高いベクトルそのものではなく、その情報を用い
て後の演算部1204、1208などによって出現可能
性の高いベクトルを演算することのできる情報を格納す
る。
【0116】図2に順次格納されるX、Yにたいして
(図25(c))図11の装置例が格納するX′、Y′
を比較した表を図12に示す。図12−(a)が図2の
装置のフリップフロップに格納されるX、Yの変異の様
子で、図12−(b)が図11の装置フリップフロップ
に格納されるX′、Y′の変異の様子である。
【0117】図11では出現可能性の高いベクトル(図
2のXに対比)を後の演算器1204によってX=−
X′を算出している。また、次に出現可能性の高いベク
トル(図2のYに対応)を後の1208と1212の演
算器によってY=−(X′+Y′)を演算している。し
たがってフリップフロップに格納するデータは出現可能
性の高いベクトルそのものではなくても構わなく、出現
可能性の高いベクトルを演算して得ることが可能な情報
でも良い。
【0118】
【発明の効果】以上のように、本発明によればコンピュ
ータなどにより作成された多値画像を劣化なく高い圧縮
率で圧縮することができる。
【図面の簡単な説明】
【図1】本実施例の圧縮装置の全体システム例を示す図
である。
【図2】圧縮装置例を示す詳細図である。
【図3】本実施例の伸長装置の全体システム例を示す図
である。
【図4】伸長装置例を示す詳細図である。
【図5】他の実施例(1)の圧縮装置例を示す詳細図で
ある。
【図6】図2の圧縮装置の動作を示すフローチャートで
ある。
【図7】図4の伸長装置の動作を示すフローチヤートで
ある。
【図8】他の実施例(3)の圧縮装置システム例を示す
図である。
【図9】他の実施例(4)の圧縮装置システム例を示す
図である。
【図10】他の実施例(5)の圧縮装置システム例を示
す図である。
【図11】他の実施例(6)の圧縮装置例を示す詳細図
である。
【図12】他の実施例(7)の情報X′、Y′の変化を
示す図である。
【図13】従来の手法であるADCT圧縮法の説明図で
ある。
【図14】従来の手法であるADCT圧縮法の説明図で
ある。
【図15】従来の手法であるADCT圧縮法の説明図で
ある。
【図16】従来の手法であるADCT圧縮法の説明図で
ある。
【図17】従来の手法であるADCT圧縮法の説明図で
ある。
【図18】従来の手法であるADCT圧縮法の説明図で
ある。
【図19】従来の手法であるADCT圧縮法の説明図で
ある。
【図20】従来の手法であるADCT圧縮法の説明図で
ある。
【図21】従来の手法であるADCT圧縮法の説明図で
ある。
【図22】従来の手法であるADCT圧縮法の説明図で
ある。
【図23】従来の手法であるADCT圧縮法の説明図で
ある。
【図24】典型的なコンピュータ作成画像、ベクトル
X、Yの変化の様子、圧縮データを示す図である。
【図25】画素データ並び変え部で行われる並び変えの
例を示す図である。
【符号の説明】
102 圧縮部 103 データパック部

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 画素データd[i]を一画素づつ入力す
    る画素入力手段と一つ前の画素d[i−1]との差分d
    iffをとる減算手段と、 diffが0であるか判定する判定手段と、 出現可能性の高いベクトルvect[n](n=0〜
    m)を保持するm個の保持手段と、 前記差分diffとvect[n]を比較するm個の比
    較手段と、 前記ベクトルvect[n]を演算する演算手段と、 前記判定手段および前記比較手段の結果により圧縮コー
    ドを決定し出力する符号出力手段とを有することを特徴
    とする画像データ圧縮装置。
  2. 【請求項2】 画素データd[i]を一画素づつ入力
    し、 一つ前の画素d[i−1]との差分diffをとり、 diffが0であるか判定し、 出現可能性の高いベクトルvect[n](n=0〜
    m)を保持し、 前記差分diffとvect[n]を比較し、 前記ベクトルvect[n]を演算し、 前記判定手段および前記比較手段の結果により圧縮コー
    ドを決定し出力することを特徴とする画像データ圧縮方
    法。
  3. 【請求項3】 画素データd[i]を一画素づつ入力す
    る画素入力手段と、 一つ前の画素d[i−1]との差分diffをとる減算
    手段と、 diffが0であるか判定する判定手段と、 ベクトル情報info[n](n=0−m)を保持する
    m個の保持手段と、 前記ベクトル情報から出現可能性の高いベクトルvec
    t[n]を演算する演算手段と、 前記差分diffとvect[n]を比較するm個の比
    較手段と、 前記判定手段および前記比較手段の結果により圧縮コー
    ドを決定し出力する符号出力手段とを有することを特徴
    とする画像データ圧縮装置。
  4. 【請求項4】 画素データd[i]を一画素づつ入力
    し、 一つ前の画素d[i−1]との差分diffをとり、 diffが0であるか判定し、 ベクトル情報info[n](n=0〜m)を保持し、 前記ベクトル情報から出現可能性の高いベクトルvec
    t[n]を演算し、 前記差分diffとvect[n]を比較し、 前記判定手段および前記比較手段の結果により圧縮コー
    ドを決定し出力することを特徴とする画像データ圧縮方
    法。
  5. 【請求項5】 前記符号出力手段によって出力された圧
    縮コードをさらに他の可逆圧縮法で圧縮する手段を有す
    ることを特徴とする請求項1または3に記載の画像デー
    タ圧縮装置。
  6. 【請求項6】 前記画素入力手段の前に画素データ並び
    変え手段を有することを特徴とする請求項1または3に
    記載の画像データ圧縮装置。
JP33206493A 1993-12-27 1993-12-27 画像データ圧縮装置及び方法 Expired - Fee Related JP3323615B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP33206493A JP3323615B2 (ja) 1993-12-27 1993-12-27 画像データ圧縮装置及び方法
US08/362,916 US5903671A (en) 1993-12-27 1994-12-23 Data compression method and apparatus therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP33206493A JP3323615B2 (ja) 1993-12-27 1993-12-27 画像データ圧縮装置及び方法

Publications (2)

Publication Number Publication Date
JPH07193816A true JPH07193816A (ja) 1995-07-28
JP3323615B2 JP3323615B2 (ja) 2002-09-09

Family

ID=18250748

Family Applications (1)

Application Number Title Priority Date Filing Date
JP33206493A Expired - Fee Related JP3323615B2 (ja) 1993-12-27 1993-12-27 画像データ圧縮装置及び方法

Country Status (1)

Country Link
JP (1) JP3323615B2 (ja)

Also Published As

Publication number Publication date
JP3323615B2 (ja) 2002-09-09

Similar Documents

Publication Publication Date Title
JP3830009B2 (ja) データ処理システム及び色変換方法
WO1996027262A1 (en) Image data compression method and apparatus with pre-processing to compensate for the blocky effect
US11445160B2 (en) Image processing device and method for operating image processing device
WO2009087783A1 (ja) 符号化用データ生成装置、符号化用データ生成方法、復号装置および復号方法
US10887616B2 (en) Image processing devices having enhanced frame buffer compressors therein
US11991347B2 (en) Image processing device
US11677932B2 (en) Image processing device
JP2000244935A (ja) 画像データ圧縮方法
JP3469438B2 (ja) 画像信号の処理方法及び装置、記録媒体
US11190810B2 (en) Device and method for compressing image data using quantization parameter and entropy tables
US11735222B2 (en) Frame buffer compressing circuitry and image processing apparatus
US5953457A (en) Method and apparatus for improved video decompression by prescaling of pixel and error terms to merging
US5903671A (en) Data compression method and apparatus therefor
JPH0654208A (ja) 画像処理方法および画像処理装置
JPH07193816A (ja) 画像データ圧縮装置及び方法
TWI795480B (zh) 用於執行資料解壓縮的影像處理裝置及用於執行資料壓縮的影像處理裝置
JP2698675B2 (ja) カラー画像情報の符号化及び再生方法
JP2698641B2 (ja) カラー画像データ符号化方法及び複号方法
JP2810585B2 (ja) 画像符号化処理方法および画像復号化処理方法
JP4649764B2 (ja) 画像データ伸長方法および画像データ伸長装置
JP2000106680A (ja) 画像圧縮及び伸長装置
JP2000175061A (ja) 色変換処理方法及び装置
JPH08161507A (ja) 画像処理装置およびその方法
KR20190091181A (ko) 이미지 처리 장치
JPH06141182A (ja) 画像フィルタリング装置

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20020618

LAPS Cancellation because of no payment of annual fees