JPH0595483A - 画像圧縮装置及び方法 - Google Patents

画像圧縮装置及び方法

Info

Publication number
JPH0595483A
JPH0595483A JP3282191A JP28219191A JPH0595483A JP H0595483 A JPH0595483 A JP H0595483A JP 3282191 A JP3282191 A JP 3282191A JP 28219191 A JP28219191 A JP 28219191A JP H0595483 A JPH0595483 A JP H0595483A
Authority
JP
Japan
Prior art keywords
pixel
vertical
adder
conversion
image
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.)
Pending
Application number
JP3282191A
Other languages
English (en)
Inventor
Emu Buronsutain Suteiibu
ステイーブ・エム・ブロンスタイン
Deii Aren Jieemusu
ジエームス・デイー・アレン
Pii Booritsuku Maatein
マーテイン・ピー・ボーリツク
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.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
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 Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP3282191A priority Critical patent/JPH0595483A/ja
Publication of JPH0595483A publication Critical patent/JPH0595483A/ja
Pending legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】 【目的】 演算が単純で、JPEG標準に適合した静止
画像の圧縮方法・装置を実現する。 【構成】画素データは水平方向変換部(加算器アレイ)
110で変換され、次に転換RAM112で垂直に回転
させられ、次に垂直方向変換部(加算器アレイ)116
で変換され、最後に単一乗算器120を経て出力され
る。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、画像を圧縮するための
装置及び方法に係り、特にJPEG(JointPhotograph
ic Experts Group)の静止画像圧縮標準に適合した、
静止画像の圧縮のための装置及び方法に関する。
【0002】
【従来の技術】メモリや伝送費用を節約するため高品質
画像を圧縮しなければならない場合、通常のやり方は、
画像をその情報をよりコンパクトに表現可能な別の空間
に変換することである。この変換は普通、1ブロックず
つ線形変換(マトリクス乗算)により行なわれる。すな
わち、典型的手法は、8画素の行セグメントに対し8ポ
イント変換を行ない、次に、この行変換後の画像の8エ
レメント列セグメントに対し8ポイント変換を行なう方
法である。等価的に、8×8のブロックに配列した64
画素の画素ブロックに対し、1回の64ポイント変換を
行なうことができる。
【0003】一次元変換のための良い方法は、次の離散
的チェビシェフ変換である。
【数1】
【0004】この変換にはいくつかの利点がある。これ
には、a)この圧縮はいくつかの尺度に関しては、ほぼ
最適であること、b)この変換及び逆変換を実行するた
めの高速演算アルゴリズムがあること、c)引用文献
[1]に述べられているある仮定をおけば、鮮明化(初
期画像の品質向上)を変換空間内で容易におこなうこと
ができること、がある。
【0005】
【発明が解決しようとする課題】本発明の一つの目的
は、静止画像の圧縮装置及び方法を提供することであ
る。本発明の特に目的とするところは、JPEGの変換
と適合した静止画像の圧縮のための装置及びその方法を
提供するにある。
【0006】本発明の他の目的、利点及び新規な特徴
は、以下の記述において一部示されるが、また一部は、
以下の説明から当業者にとって明らかになるであろう
し、あるいは本発明の実施により学習できるであろう。
本発明の目的及び利点は、特許請求の範囲に示された手
段とその組み合わせによって実現、達成できる。
【0007】
【課題を解決するための手段】本発明の画像圧縮装置
は、あるビット幅を持つ入力画素を受け取り、加算器ア
レイ手段のみを使用して該入力画素を水平方向に変換す
るための水平方向変換手段、水平方向に変換された画素
を垂直に回転させるための転換メモリ手段、垂直画素を
受け取り、別の加算器アレイ手段のみを使用して該垂直
画素を垂直方向に変換するための垂直方向変換手段、及
び、変換された垂直画素を受け取り、該垂直画素に対し
単一の乗算関数を実行して該入力画素を表わす圧縮され
た画素データを提供する単一乗算器手段を有することを
特徴とする。
【0008】
【作用】本発明によれば、あるビット幅を持つ入力画素
は、加算器アレイ手段のみを使用して水平方向に変換さ
れ、この変換後の画素は垂直に回転させられる。そし
て、この回転後の垂直画素は、別の加算器アレイ手段の
みを使用して垂直方向に変換され、変換後画素に単一の
乗算関数を実行することにより入力画素を表わす圧縮デ
ータが生成される。このように、演算コスト並びにハー
ドコストが高い乗算を殆ど使用せず、ほぼ加算操作のみ
によって画像圧縮が可能である。
【0009】
【実施例】以下、本発明の原理及び具体例について、必
要に応じ関連する従来技術と対比しつつ詳細に説明す
る。
【0010】発明の理論的説明 画像の圧縮と再構築のための完全なシステムは次の(表
1)のように示すことができる。
【表1】
【0011】上記(表1)は本発明を説明しており、ま
たオプションのステップ(L,Z)を除き現行技術をも
説明している。
【0012】鮮明化ウエートによる乗算(ステップE)
も復号のステップとして(例えばステップIの後に)行
なうことができる。この鮮明化は、入力装置のポイント
拡散関数(point-spread function)の補正のために行
なわれるもので、入力装置に応じて調整されなければな
らず、あるいは入力画像が画質向上済みのときは省略し
なければならない。他により優れた画像鮮明化方法があ
るが、ここで示した方法は計算コストが小さいので、あ
る種のアプリケーションに、例えばカラー・コピアにふ
さわしい。
【0013】フォワード変換(ステップA,B)の計算
を、最終の乗算ステージが計算負荷の大部分となるよう
にアレンジすることができる。これらの乗数とステップ
C,Eの乗数の積を予め計算することにより、圧縮プロ
セスの高速化が可能である。
【0014】同様に、逆変換(ステップJ,R)の計算
を、その計算負荷の大部分が予備乗算ステージとなるよ
うにアレンジすることができる。これもまた、積を予め
計算することにより、ステップH,Iの計算量を効果的
に削減できる。
【0015】また、2−D DCT変換を他の変換で置
き換えることにより、演算をさらに単純化できる。
【0016】さらに、ステップB,Dのための結合した
乗数の演算、例えば2のべき乗を効率化するように、心
理的適応ウエートを選択的に変化させることができる。
低エネルギー出力変換要素の心理的適応ウエートの小変
化は、画像の品質または圧縮率に殆ど影響を及ぼさな
い。
【0017】最後に、(表1)のステップL,Z、すな
わち画像の複雑さ(Difficulty)の類別のステップと
ブロック境界の平滑化のステップに注目する。これらは
オプションであって、また基本発明とは無関係であるの
で、ここでは最小限の説明しかしない。
【0018】チェン(Chen)のアルゴリズム 1次元チェン・アルゴリズムは次のように規定する。
【数2】
【0019】ここで、xはデータベクトル、Xは変換後
ベクトル、またANは次の通りである。 AN=c(k) cos((2j + 1) kπ/2N) j,k = 0,1,2,....,N-1
【0020】さらに、AN は次のように展開できる。
【数3】
【0021】ここでRN/2は次の通りである。
【数4】 RN/2 = c(2k+1) cos((2j+1)(2k+1)π/2N j,k=0,1,2,....,N/2-1
【0022】注意すべきは、行列Zがチェンの行列Pで
あることである。本発明で、このように表記を変更した
のは、行列Pとの混乱を避けるためである。
【0023】8ポイント(N=8)1Dチェン変換の例 8ポイント変換を1回行なうために、チェン・アルゴリ
ズム(数3)が再帰的に2回用いられる。最初の繰り返
しでは行列Z8,R4,B8 が用いられる。2回目の繰り
返しでA4について解き、そして行列Z4,R2,A2,B
4 を用いる。これらの行列は、前記各式またはチェンの
論文から容易に導くことができる。
【数5】
【0024】ここで
【数6】
【数7】
【数8】
【数9】
【数10】
【数11】
【数12】
【0025】ここで、(数4)から Cn = cos(nπ/16)
【0026】チェン−ウー(修正)変換または パラメタライズされた(parameterized)変換 ここまで行なったことは全てチェン変換である。これを
強引に推し進め演算量を減らし、強力なDCTを実現す
ることもできない訳ではないが、これは本出願人の提案
するところではない。乗算回数をできるだけ減らすため
に、各行列は次のように改めてパラメタライズ(repara
meterize)される。これは本出願人の考案であって、チ
ェン−ウー(修正)変換と呼ぶ。
【数13】
【数14】
【数15】
【0027】ここで
【数16】 a = C1/C7 = cos(π/16) / cos(7π/16) = tan(7π/16) b = C2/C6 = tan(6π/16) c = C3/C5 = tan(5π/16) r = C4 = cos(4π/16)
【0028】注意すべきは、対角行列RF4はパラメタラ
イズされない行列RA4の正規化因数を含んでおり、また
対角行列はR2及びA2中の定数によって作ることができ
る。A8行列の再構成の際、二つの行列は依然として別個
である。対角行列は主行列からは分離されている。主行
列はBN項と乗算される。適当に並べ変えかつ定数項と乗
算すると、(数2)は次のように簡略化される。 X = Q(a,b,c) P(a,b,c,r) x
【0029】ここで
【数17】
【数18】
【0030】一般化した変換 一般化した8ポイントDCT変換は、4個のパラメータ
a,b,c及びrによって決定され、次のように記述で
きる。 T(a,b,c,r)=P(a,b,c,r)×Q
(a,b,c) ここでP( ),Q( )は前記の通りである。
【0031】この画像変換は、そのような画像を垂直方
向及び水平方向にそれぞれれ変換するための二つの変換
T、すなわちTvとThを必要とする。完全な2次元変換
は、
【数19】 により表わされる。
【0032】ここで、fは入力画像ブロックであり、F
は出力変換係数であり、添え字”t”は行列転置を意味
する。ここで全行列は8×8である。
【0033】対角行列(Qのような行列)はそれ自体が
転置行列であって、全行列について
【数20】
【0034】これは次のように変形される。 F(i,j)=q(i,j)*g(i,j) ここで
【数21】
【数22】
【0035】ひとつの画像ブロックを変換する時に、チ
ェン-ウー(Chen-Wu)のアルゴリズムを用いて[g]につ
いて解を求め、次に因数q(i,j)と掛け合わせる必
要がある。
【0036】仮に Pv =P(a,b,c,rv) Ph =P(a,b,c,rh) とすれば、上記変換の逆変換は次のように表わされる。
【数23】
【0037】ここで、 P'v =P(a,b,c,1/2rv) P'h =P(a,b,c,1/2rh
【0038】再度、チェン−ウーのアルゴリズムにより
解が求められる。
【0039】チェン(Chen)のアルゴリズム 1−Dまたは2−Dのチェビシェフ変換とその逆変換の
計算を高速化するために、いくつかの方法が考案されて
いる。16回の掛け算と、13回の加算、13回の減算
のみによって、任意の8タプル(tuple)と上記行列T
とを乗算する周知のアルゴリズム(チェン)[2,3]
がある。このアルゴリズムは、パラメータa,b,c,
rの格別の特性に何等依存しない。
【0040】チェン−ウー(Chen-Wu)のアルゴリズム(修正) [T]=[P][Q]を上述の如く因数分解することに
より、チェン−ウーのアルゴリズムは二つのステージに
分かれ、[Q]による乗算に8回の掛け算が用いられ、
[P]による乗算に8回の掛け算とそれ以外の算術演算
が用いられる。これは我々の[Q]の選択の結果であっ
て、[P]のいくつかの要素は1または−1になり、ひ
とつの乗算がなくなる。
【0041】上に指摘したように、同様の単純化は、そ
の逆変換、2−D変換及び2−D逆変換にも当てはま
る。8×8のブロックの場合、フォワード2−D変換と
その逆変換のいずれについても、128回の乗算が用い
られる([q]による乗算を除く)。チェンのアルゴリ
ズムの内部的なデータの流れを見ると、これらの乗算
は、8つの加算/減算ステージと4つの乗算ステージの
組み合わせに組み込まれる。強調すべきは、チェンのア
ルゴリズムはパラメータa,b,c,rのいかんにかか
わらず動作することである。しかしながら、従来用いら
れた8ポイントDCTは“真(true)コサイン変換”の
パラメータすなわち a=tangent(7*pi/16) b=tangent(6*pi/16) c=tangent(5*pi/16) r=sqrt(1/2)=0.70710678・・・ を持ち、行列Tが直交行列となるに必要十分なrを選ん
でいる。なお、“sqrt”は“√”を意味する。
【0042】パラメータ値の選択 チェン変換はパラメータa,b,c,rに選ばれた値に
関係なく働く。これは、QPによって生成された変換が
対角行列であることによる。任意の数値を用いること
と、圧縮のために必要な画像データの望ましい非関連付
け(decorrelation)を行なうことができる変換を得るこ
とが、完全に可能である。この変換が離散的コサイン変
換(DCT)でもDCTの近似でもないことに注意すべ
きである。全く別の変換である。
【0043】しかしながら、入力画像の効率的な非関連
付けのために、及び比較的有意の空間周波数係数への変
換のために、DCTが非常に望ましいことは一般に認め
られることである。DCTの利点を活かすため、そのパ
ラメータは(数16)で与えられたDCTパラメータに
近い値に設定される。障害になる要因は、演算の効率で
ある。加算は乗算より安価であるので(ハードウエアの
面ではシリコンの面積の節約、ソフトウエアの面ではサ
イクル数の減少)、パラメータは演算が効率的となるよ
うに選ばれる。
【0044】代替アルゴリズム 離散的チェビシェフ変換(DCT)のための計算法は他
にも考案されている。例えば、リー(Lee)によるアル
ゴリズムは、8ポイントの1D変換と64ポイントの2
D変換を、それぞれ12回の乗算と144回の乗算によ
って実行する。
【0045】しかし、これらの“高速(faster)”アルゴ
リズムは、チェンのアルゴリズムに比べ、いくつか欠点
がある。すなわち a) T=P×Qの単純化(逆変換の場合と同様の因数
分解)はもはや有効でない。対角行列Qの分離は、以後
の単純化のために不可欠である。 b) これらのアルゴリズムは、任意のパラメータa,
b,c,rで役立つのではなく、真コサイン・パラメー
ータに特に有効な様々な三角恒等式に依存している。 c) これらのアルゴリズムは、構造がより複雑であ
る。これが具体化の妨げとなったり、数値が不安定にな
る危険を増加させることがある。
【0046】発明の説明 A]再び(表1)を参照すると、ステップC,D,Eは
[Q]から導かれたフォワード変換の後乗数(post-mul
tipliers)に組み込ことができることに気付くであろ
う。同様に、ステップH,Iは逆変換の前乗数(pre-mu
ltipliers)に組み込みできる。これは、レート・スカ
ラー(rate scalar )演算、心理的適応ウエート操作
(普通、正規化値として知られてる)、及び鮮明化ウエ
ート操作は全てポイント乗算操作であるからである。
b,c,d,eがそれぞれステップB,C,D,Eの出
力であるとすると、 c(i,j) = b(i,j) * q(i,j) d(i,j) = c(i,j) * r(i,j) = b(i,j) * q(i,j) * r(i,
j) e(i,j) = d(i,j) * u(i,j) = b(i,j) * q(i,k) * r(i,
j) * u(i,j) または e(i,k) = b(i,j) * all(i,j) である。
【0047】ここで、
【数24】 であり、q(i,j)はレート・スカラー(rate scalar)
であり、r(i,j)は心理的適応的に選ばれた(あるいは
同様のユーザーにより選ばれた)量子化ウエートであ
り、u(i,j)は鮮明化ウエートである。同様にステッ
プH,Iを結合できる。
【0048】これは結局、レート・スケーリング(rate
scaling)、適応的重み付け、及び鮮明化の関数に余分な
計算オーバーヘッドがないことを意味する。上記のよう
に、この方法はリー(Lee)のアルゴリズムのような”
高速”アルゴリズムと一緒に適用できない。
【0049】B]チェンのアルゴリズムは任意のパラメ
ータa,b,c,rで働くので、DCTと同様の品質と
圧縮を得られ、かつ高速乗算を達成できるパラメータ値
を選ぶことができる。
【0050】下記のパラメータは、DCTのパラメータ
に十分に近いが、計算効率はより高い。 a=5.0 b=2.5 c=1.5 r=0.75
【0051】ここで乗算は非常に簡単な計算に置き換え
られる。例えば5を掛ける計算は、複写,2桁左シフ
ト,加算となる。1.5を掛ける計算は、複写,1桁右
シフト,加算となる。また、有理乗数の分子の逆数は結
合した乗数[q]に因数分解できる。ゆえに、2.5を
掛ける計算は、影響される項と影響されない項のそれぞ
れに対し、5を掛ける計算と2を掛ける計算とにするこ
とができる。
【0052】この後者の考え方を用いると、単純なチェ
ン・アルゴリズムにおけるパラメータr=0.75を扱
うには、4を掛ける計算を96回、3を掛ける計算を3
2回、必要とする。2D改良方法にウー-パオリーニ
(Wu-Paolini)を用いると、一つの乗算ステージ全体
が省かれるので、これは16を掛ける計算が36回、1
2を掛ける計算が24回、9を掛ける計算が4回とな
る。(逆変換には9を掛ける計算を36回、6を掛ける
計算を24回、4を掛ける計算を4回、用いる。)
【0053】演算速度のために、コサイン変換に極めて
近いパラメータ値を選ぶことができる。b=12/5及
び/またはr=17/24の代入が可能である。もうひ
とつの興味ある選択は rRow=0.708333(17/24) rCol=0.7(7/10) である。
【0054】ここでは、少し異なった変換(異なったパ
ラメータ)が行と列に用いられる。これは、ウー-パオ
リーニ法より導かれる乗数を単純にするためになされ
る。ここで、その方法は、15との掛け算を36回、8
5/8との掛け算を12回、21/2との掛け算を12
回、119/16との掛け算を4回、生じる。(逆変換
は、119/16との掛け算を36回、85/16の掛
け算を12回、21/4との掛け算を12回、15/4
との掛け算を4回、使用する。)
【0055】ここで説明したやり方によれば、すべての
乗算が高速化され費用も減少した。ただし、圧縮装置に
おける結合乗数[q]と伸長装置における結合乗数
[q]に関しては別である。これらはそれぞれ、1変換
要素あたり1回の乗算が必要である。伸長装置の結合乗
数[q]は、変換係数の大半がゼロとなり、また非ゼロ
の係数の多くが特別扱いが可能なゼロに非常に近い整数
になる、という点において簡単化される。
【0056】C]さらに別の技法が、圧縮装置において
結合乗数[q]の計算コスト削減のために用いられる。
レート・スケーラは、実際上任意値であるから、[q]
行列要素の全てに計算が簡単な値、例えば2のべき数を
与えるように1ポイント毎に調整されることになる。こ
れらの64個の調整を一度だけ行なう必要がある(レー
ト・スケーラと鮮明化フィルタの決定後)。
【0057】例えば、結合乗数の一要素(C)及び対応
した伸長乗数要素(D)が C=0.002773 D=0.009367 となったとすると、近似値C〜=3/1024=0.0
02930が見出され、また乗算の簡単化のために用い
られることになろう。その結果はC’=3/1024、
D’=D×C/C’〜=0.008866となる。
【0058】プロセス(主要プロセス)の詳細な説明 初めに一般的な注釈を示す。 a) 量子化された変換空間においては、”AC”係数
量子化の非ゼロ・ステップを一定幅(w)とし、ゼロ・
ステップを幅(w*q)とすることが便利かつ効率的で
ある。さらに、q=2が計算上都合がよく、また広範囲
の圧縮率にわたり品質面でほぼ最適である。ここでの説
明では、q=2(2倍幅ゼロ:double-width zero)と
する。ただし本発明はそれに限るものではない。 b) 以下説明するアルゴリズムは、低精度の2の補数
の2進整数演算用にデザインされている。ただし、ステ
ップ2,4,8における中間決定については例外で、そ
れは高精度演算で行なわれる。さらに、ステップ(9.
1)も例外的で、ここで説明した整数乗算はコスト及び
スピードに関して最適化される。例えば Nrr*Nrc=Drr'*Drc'=1.75*4.25=7.4375 による掛け算を考える。恒等式 7.4375=(8-1)*(1+1/1
6)を選ぶことにより、この乗算はシフトと加算により効
率的に行なわれる。 c) 鮮明化乗算は、ここではステップ8に示される
が、できることなら通常はステップ4で行なうべきであ
る。多くのアプリケーションにおいて、伸長装置は、ど
のような方法で画像を鮮明化するのか、あるいは画像を
鮮明化かするか否かの“知識”がない。注意すべきは、
Thr()の最適値は入力装置及び鮮明化法によって変
わることである。推奨される一方法は、m(i,j)の
値(ステップ8参照)が圧縮時(ステップ4)に計算さ
れ、圧縮画像の一部として伝送され、あるいは蓄積され
ることである。 d) 連続する計算の並列化、タイムシーケンスまたは
インタリーブには、いくつか明白な方法がある。あるハ
ードウエア・アーキテクチャにとって好ましい方法は、
簡単な方法である。
【0059】擬似コードの具体化例 本明細書のこの部分は、本質的に本発明の一実施例で、
これは文章及び擬似コードにより説明される。パラメタ
ライゼーション(parameterization)、前記(数24)
のall(i,j)の計算、フォワードGCTの主要部の計
算、all(i,j)の逆数の計算、逆GCTの主要部の計算
を含むいくつかのセクションがある。
【0060】ステップ1.パラメータa,b,c,rは
以上に示されている。注意することは、rの値は行及び
列のそれぞれ毎にあることである。2D GCTは、分
離可能な変換であって二つのパスで実行されるが、それ
が対称的でなければらないという制約はない。したがっ
て、スケーリング係数は、ここで示すように非対称とす
ることができる。
【0061】分子N及び分母Dの式が示すものは、分子
と分母の可能な組み合わせであり、これは前記の値と一
致することがある。GCTを実施しようとする設計者
は、加算器アレイに用いられる実際値について自由度を
持っている。この値の選択は、最終乗算ステージで修正
される。
【0062】上述の一般化チェン変換のパラメータとし
て次のものを選ぶ。 tan 7*pi/16 〜= a = Na/Da tan 6*pi/16 〜= b = Nb/Db tan 5*pi/16 〜= c = Nc/Dc sqrt(0.5) 〜=rRow= Nrr/Drr sqrt(0.5) 〜= rCol = Nrc/Drc 0.5/rRow 〜= rRow' = Nrr'/Drr' 0.5/rCol 〜= rCol' = Nrc'/Drc'
【0063】“分子”N及び“分母”Dは整数である必
要はないが、演算に都合のよいように選ばれる。有効な
可能値には次のものがある。 Na= 5 Da=1 Nb=3 Db=1.25 Nc=1.5 Dc=1 Nrr=1.75 Drr=2.5 Nrc=4.25 Drc=6 Nrr'=1.25 Drr'=1.75 Nrc'=3 Drc'=4.25 しかし、本発明は上記タンジェント値の合理的な近似値
をすべて包含する。これによって、必要な正規化スケー
ラが計算される。
【0064】ステップ2.また U(0)=U(4)=sqrt(0.5) U(1)=U(7)=1/sqrt(Na*Na+Da*Da) U(2)=U(6)=1/sqrt(Nb*Nb+Db*Db) U(3)=U(5)=1/sqrt(Nc*Nc+Dc*Dc) を書く。
【0065】ステップ3.次のように設定する。 i 垂直方向位置(画像空間内)または垂直方向
変化(変換空間内)のシーケンスを示す{0,1,2,
3,4,5,6,7}のインデックスとする。 j 水平方向位置(画像空間内)または水平方向
変化(変換空間内)のシーケンスを示す{0,1,2,
3,4,5,6,7}のインデックスとする。 Debl(i,j) 鮮明化係数を示すものとし、鮮明化を行な
わない時はDebl()=1とする。 Thr(i,j) 例えばCCITTにより推奨されたような
逆心理的適応ウェートを示すものとする。 M レート・スケーラを示すものとする。ここで
典型的な圧縮率に対してはM=1(近似)とする。 V(i,j) 画像(spatial)空間内のいくつかの輝度
値を示すものとする。 L(i,j) 変換(圧縮)空間内の変換後輝度値を示す
ものとする。 S 再構築(reconstruction)に用いられる演算精
度を示す任意の小整数とする。
【0066】心理的適応ウェート1/Thr(i,j)は、一般
化チェン変換のパラメータの各セット毎に再度最適化さ
れるべきである。しかし、上記ステップ(1)で与えら
れたパラメータはCCITTのパラメータに十分近く、
同行列Thr()は最適である。
【0067】ステップ4.ここではg(i,j)は全
(i,j)に対して等しい。64個の変換位置(i,
j)について、次式を満足させるk(i,j)及びs
(i,j)の解を求める。
【数25】 ここで、右辺はg(i,j)にできる限り近づけ、s(i,j)は整
数とする。
【0068】また、 g(i,j) = 1.0 、k(i,j) は {1,3,5,7,9} ( i+j < 4 のとき) g(i,j) = 0.9、 k(i,j) は{1,3,5} ( i+j = 4 のとき) g(i,j) = 0.7、 k(i,j) = 1 ( i+j > 4 のとき) Zr(i) = 1 (i=0,1,2 or 3 の時) Zr(i) = Drr (i= 4,5,6 or 7 の時) Zc(j) = 1 (j= 0,1,2 or 3 の時) Zc(j) = Drc (j= 4,5,6 or 7 の時) Zr'(i)= 1 (i= 0,1,2 or 3 の時) Zr'(i)= Drr'(i= 4,5,6 or 7 の時) Zc'(j)= 1 (i= 0,1,2 or 3 の時) Zc'(j)= Drc'(j= 4,5,6 or 7 の時) 因数 g(i,j) は量子化バイアスを選択サイズから無関係
にするためのものである。
【0069】ステップ5. フォワードGCTの実行 このステップはフォワード変換の擬似コード実行であ
る。以下の各ステップはインターリーブ方式により2D
変換を行なう。画像全体にわたり、8×8の各ブロック
の輝度値V( , )につき以下の処理の実行を繰り返
す。すなわち、
【0070】ステップ5.1 i=0,1,2,...,7 について次の値を準備する。 M(i,0)=V(i,0) + V(i,7) M(i,1)=V(i,1) + V(i,6) M(i,2)=V(i,2) + V(i,5) M(i,3)=V(i,3) + V(i,4) M(i,4)=V(i,3) - V(i,4) M5(i)=V(i,2) - V(i,5) M6(i)=V(i,1) - V(i,6) M(i,5)=M6(i) + M5(i) M(i,6)=M6(i) - M5(i) M(i,7)=V(i,0) - V(i,7)
【0071】ステップ5.2 j=0,1,2,...,7 について次の値を用意する。 H(0,j)=M(0,j) + M(7,j) H(1,j)=M(1,j) + M(6,j) H(2,j)=M(2,j) + M(5,j) H(3,j)=M(3,j) + M(4,j) H(4,j)=M(3,j) - M(4,j) H5(j)=M(2,j) - M(5,j) H6(j)=M(1,j) - M(6,j) H(5,j)=H6(j) + H5(j) H(6,j)=H6(j) - H5(j) H(7,j)=M(0,j) - M(7,j)
【0072】ステップ5.3 各H(i,j)に次の値を掛ける。 (i=0,2,3 or 4 の場合) Nrc (j= 5 or 6 のとき) Drc (j=4 or 7 のとき) 1 (何もせず) (j=0,1,2 or 3 のとき) (i=4 or 7 の場合) Drr Nrc (j=5 or 6 のとき) Drr Drc (j=4 or 7 のとき) Drr (j=0,1,1 or 3 のとき) (i=5 or 6 の場合) Nrr Nrc (j=5 or 6 のとき) Nrr Drc (j=4 or 7 のとき) Nrr (j=0,1,2 or 3 のとき)
【0073】ステップ5.4 j =0,1,2,...,7に対し次の値を用意する。 E(0,j)=H(0,j) + H(3,j) E(1,j)=H(7,j) + H(5,j) E(2,j)=H(0,j) - H(3,j) E(3,j)=H(7,j) - H(5,j) E(4,j)=H(1,j) + H(2,j) E(5,j)=H(6,j) - H(4,j) E(6,j)=H(1,j) - H(2,j) E(7,j)=H(6,j) + H(4,j) F(0,j)=E(4,j) + E(0,j) F(4,j)=E(0,j) - E(4,j) F(2,j)=Db * E(6,j) + Nb * E(2,j) F(6,j)=Db * E(2,j) - Nb * E(6,j) F(1,j)=Da * E(7,j) + Na * E(1,j) F(7,j)=Da * E(1,j) - Na * E(7,j) F(3,j)=Dc * E(5,j) + Nc * E(3,j) F(5,j)=Dc * E(3,j) - Nc * E(5,j)
【0074】ステップ5.5 i=0,1,2,...,7 について次の値を用意する。 Z(i,0)=F(i,0) + F(i,3) Z(i,2)=F(i,0) - F(i,3) Z(i,4)=F(i,1) + F(i,2) Z(i,6)=F(i,1) + F(i,2) Z(i,1)=F(i,7) + F(i,5) Z(i,3)=F(i,7) - F(i,5) Z(i,5)=F(i,6) - F(i,4) Z(i,7)=F(i,6) + F(i,4) G(i,0)=Z(i,4) + Z(i,0) G(i,4)=Z(i,0) - Z(i,4) G(i,2)=Db * Z(i,6) + Nb * Z(i,2) G(i,6)=Db * Z(i,2) - Nb * Z(i,6) G(i,1)=Da * Z(i,7) + Na * Z(i,1) G(i,7)=Da * Z(i,1) - Na * Z(i,7) G(i,3)=Dc * Z(i,5) + Nc * Z(i,3) G(i,5)=Dc * Z(i,3) - Nc * Z(i,5)
【0075】また、この変換は二つの1次元変換のステ
ージに分けることができる。次のものは、1次元変換パ
スの一例である。図8は、これらのステップを示す。 A1 = X0 + X7 B1 = A1 - A2 C1 = 1.25 B1 A2 = X3 + X4 B2 = A1 + A2 C2 = 3 B1 A3 = X2 + X5 B3 = A3 + A4 C3 = 1.25 B4 A4 = X1 + X6 B4 = A4 - A3 C4 = 3 B4 A5 = X0 - X7 B5 = A6 + A7 C5 = 1.5 A5 A6 = X1 - X6 B6 = A6 - A7 C6 = 1.0625 B5 A7 = X2 - X5 C7 = 1.0625 B6 A8 = X3 - X4 C8 = 1.5 A8 D1 = C5 + C6 E1 = 2.5 D1 Y0 = B2 + B3 D2 = C5 - C6 E2 = 1.25 D2 Y1 = E1 + (0.5 D3) D3 = C7 + C8 E3 = 2.5 D3 Y2 = C2 + C4 D4 = C7 - C8 E4 = 1.5 D4 Y3 = E2 + D4 Y4 = B2 - B3 Y5 = D2 - E3 Y6 = C1 - C4 Y7 = (0.5 D1) - E4
【0076】なお、これら式の乗算はシフト操作と加算
操作で実行される。これをGCTの行列形式に関連させ
るため、ベクトル・ポイントY6を一例として説明する。
【数26】
【0077】ここで b=2.4である。これは式中の行列P
の第6行である。注意すべきは、1.25による除算
は、レート・スケーラ行列に集められるスケーリング係
数である。 8×8画素ブロックの行データは、この加
算器アレイを通される。結果として得られる1次元周波
数成分は、転送され同じアレイに再度通される。
【0078】ステップ6.ステップ(5.5)の後で、
各画像サブブロックにおいて64個の位置(i,j)のそれ
ぞれについて、ステップ4より得られた k(i,j)とs(i,
j)を用い、次の値を用意する。
【数27】 しかし、この値が負になったときは(すなわちi=j=
0)、それに1を加える。その結果が変換係数L(i,j)
である。
【0079】ステップ6に関するコメント:ここでの計
算は簡単である。なぜなら、K(i,j)は常に1,3,5,
7または9であって、普通は1であるからである。ま
た、2の−s(i,j)乗の乗算は単に右シフトであるからで
ある(あるいは、Mが非常に大きな値に選ばれた場合に
は左シフトとなることもある)。
【0080】算術右シフトは常に下向きの丸めとなる。
ゼロに向かう丸めが実際に好ましい。ゆえに、前記のよ
うに“負のときは1を加える”ということになる。i=j=
0 のときに1を加えるのは、V(i,j)>=0 のためであり、
また後記のステップ(9.1)の記述を単純化するため
の工夫にすぎない。
【0081】ステップ7.値 L(i,j)を符合化し、蓄積
及び/または伝送を行なう。結局は、後続のステップに
よって、この値は検索されて画像が再構築されることに
なる。
【0082】ステップ8.このステップは全(i,j)
に関する逆バージョンである。64個の変換位置(i,j)
につき、m(i,j) を次の値に最も近い整数として求め
る。
【数28】 ここで、s(i,j)とK(i,j) は上記ステップ(4)で解か
れ、“z”はステツプ(4)で定義される。
【0083】また、A(i,j) を次の値に最も近い整数と
して選ぶ。
【数29】 ( i = 0 または j = 0 の場合)
【0084】ステップ8についてのコメント:値m(i,j)
はステップ(4)で予め計算し圧縮画像と一緒に伝送
しておいてもよい。これは、定数及びm(i,j) のみに依
存するA(i,j)に関しては必要ない。レート・スケーラ及
び鮮明化ウェートが固定されるアプリケーションにおい
ては、値 m(i,j),A(i,j) は一定となるであろう。因
数2Sは精度以上の余分なビットをもたらすが、このビ
ットは最終的にはステップ(9.2)及びステップ(1
0)での算術右シフトによって除かれることになる。A
(0,0)の調整により、丸めバイアスを修正し下記出力を
丸め修正なしに利用できるようにする。ここで仮定した
如く、A(0,0)はステップ(6)で L(0,0) へ1が加算
されることを前提としている。挿入項”(25−i−
j)/64”はヒューリスティックであるが、平均二乗
誤差の点でほぼ最適である。もう一度、20インターリ
ーブ・バージョン(20 interleaved vwersion)
【0085】ステップ9.変換後画像に対し、上記ステ
ップ(5)で導かれた8×8の各ブロックの変換後輝度
値 L(_ ,_ ) に以下のことを繰り返す。
【0086】ステップ9.1 各(i,j) に対し、つぎの値を用意する。 E(i,j) = L(i,j) * m(i,j) + A(i,j) ( L(i,j) > 0 のとき) E(i,j ) = L(i,j) * m(i,j) - A(i,j) ( L(i,j) < 0 のとき) E(i,j) = 0 ( L(i,j) = 0 のとき) ただし、 i=0,1,2,...,7、 j=0,1,2,...,7である。A(0,
0) は常に加えられなければならない。本発明は、L(0,
0)>0 の判定が成立せず、また上記ステップ(6,8)
(オプション)が簡略化される場合も包含する。実際
上、小さな乗算、例えば -11 < L(i,j) < 11 は乗算の
演算費用を減らすための特殊ケースと理解すべきであ
る。
【0087】ステップ9.2 (半導体装置のコスト削減に都合がよければ、E(i,j)
の数値を任意桁数S1だけ右シフトする。ただし、これ
らのシフトは、本方法のある具体例では”自由”(fre
e)である。このシフトが自由でない具体例では、E(i,
j)=0 の時に、そのシフトを省略してよい。あるいは、S
1=0に設定することにより、全てのシフトを省いてよ
い。
【0088】ステップ9.3 再度、2次元形式でj=0,1,2,...,7 について次の値を用
意する。 F(0,j) = E(4,j) + E(0,j) F(4,j) = E(0,j) - E(4,j) F(2,j) = Db * E(6,j) + Nb * E(2,j) F(6,j) = Db * E(2,j) - Nb * E(6,j) F(1,j) = Da * E(7,j) + Na * E(1,j) F(7,j) = Da * E(1,j) - Na * E(7,j) F(3,j) = Dc * E(5,j) + Nc * E(3,j) F(5,j) = Dc * E(3,j) - Nc * E(5,j) H(0,j) = F(0,j) + F(2,j) H(1,j) = F(4,j) + F(6,j) H(2,j) = F(4,j) - F(6,j) H(3,j) = F(0,j) - F(2,j) H(4,j) = F(7,j) - F(5,j) H5(j) = F(7,j) + F(5,j) H6(j) = F(1,j) - F(3,j) H(5,j) = H6(j) + H5(j) H(7,j) = F(1,j) + F(3,j)
【0089】ステップ9.4 i=0,1,2,...,7 につき、次の値を用意する。 G(i,0) = H(i,4) + H(i,0) G(i,4) = H(i,0) - H(i,4) G(i,2) = Db * H(i,6) + Nb * H(i,2) G(i,6) = Db * H(i,2) - Nb * H(i,6) G(i,1) = Da * H(i,7) + Na * H(i,1) G(i,7) = Da * H(i,1) - Na * H(i,7) G(i,3) = Dc * H(i,5) + Nc * H(i,3) G(i,5) = Dc * H(i,3) - Nc * H(i,5) M(i,0) = G(i,o) + G(i,2) M(i,1) = G(i,4) + G(i,6) M(i,2) = G(i,4) - G(i,6) M(i,3) = G(i,0) - G(i,2) M(i,4) = G(i,7) - G(i,5) M5(i) = G(i,7) + G(i,5) M6(i) = G(i,1) - G(i,3) M(i,5) = M6(i) - M5(i) M(i,6) = M6(i) + M5(i) M(i,7) = G(i,1) + G(i,3)
【0090】ステップ9.5 各M(i,j)に次の値を掛ける。 (i=0,2,3 or 4 の場合) Nrc' ( j= 5 or 6 のとき) Drc' ( j=4 or 7 のとき) 1 (何もせず) ( j=0,1,2 or 4 のとき) (i=4 or 7 の場合) Drr' Nrc' ( j=5 or 6 のとき) Drr' Drc' ( j=4 or 7 のとき) Drr' ( j=0,1,2 or 3 のとき) (i=5 or 6 の場合) Nrr' Nrc' ( j=5 or 6 のとき) Nrr' Drc' ( j=4 or 7 のとき) Nrr' ( j=0,1,2 or 3 のとき)
【0091】ステップ9.6 i=0,1,2,...,7 につき、次の値を用意する。 Z(i,0) = M(i,0) + M(i,7) Z(i,1) = M(i,1) + M(i,6) Z(i,2) = M(i,2) + M(i,5) Z(i,3) = M(i,3) + M(i,4) Z(i,4) = M(i,3) - M(i,4) Z(i,5) = M(i,2) - M(i,5) Z(i,6) = M(i,1) - M(i,6) z(i,7) = M(i,0) - M(i,7)
【0092】ステップ9.7 j=0,1,2,...,7 につき、次の値を用意する。 Y(0,j) = Z(0,j) + Z(7,j) Y(1,j) = Z(1,j) + Z(6,j) Y(2,j) = Z(2,j) + Z(5,j) Y(3,j) = Z(3,j) + Z(4,j) Y(4,j) = Z(3,j) - Z(4,j) Y(5,j) = Z(2,j) - Z(5,j) Y(6,j) = Z(1,j) - Z(6,j) Y(7,j) = Z(0,j) - Z(7,j)
【0093】ステップ10.ステップ(9.7)の後、
各画像サブブロックにおいて64個の位置(i,j)それぞ
れに対し、次の値を用意する。
【数30】 ここで、SとS1は、上記ステップ(7)及びステップ
(9.2)において定義された任意の整数である。再
び、この乗算は実際的には右シフトである。
【0094】ステップ11.具体的なシステム構成によ
っては、ここで範囲チェックが必要になることがある。
例えば、輝度の許容範囲が 0<=V(i,j) <=255 の場合、
0未満及び255より大きなV(i,j) 値は0及び255
にそれぞれ置き換えなければならない。V(i,j) 値は、
ここで再構築された画像の輝度値である。
【0095】二次的プロセスの説明 圧縮率または画像品質を向上するために、主要(一次
的)プロセスに付加的手段を追加するのが普通である。
【0096】ステップ(10)の後で、全ての画素ペア
V(8I+7,j), V(8I+8,j) と全ての画素ペア V(i,8J+
7), V(i,8J+8) (すなわち、別の画像ブロックに分離さ
れた近傍画素)について繰り返し、またそれぞれに、そ
の値を例えば(V2-V1) /max (2,11 sqrt(M)) ずつイン
クリメント及びデクリメントすることにより、画像の正
確さを向上できる。ここで、Mはステップ(4)で用い
たレート・スケーラであり、また分母の式は最適値の便
宜的近似にすぎない。
【0097】ステップ(6)の実施前に、局所的画像領
域の内容の複雑さを3タイプすなわち単精度、2倍精度
及び4倍精度のいずれかに選択的に分類し、それぞれ’
0’,’10’,’11’のコード前書き(preface)
を出力することができる。そうすれば、ステップ(6)
の計算は次式で置き換えられる。
【数31】
【0098】ここで、単精度、2倍精度、4倍精度のそ
れぞれに対しPは0、1、2となる。これは後にステッ
プ(9.2)において補正される。このステップ(9.
2)では、精度の増加分を(余分の)右シフトにより除
去しなければならない。
【0099】残念なことに、非常に効果的で簡単な分類
方法は見つかっていない。そこで現時では次の4つのソ
ースから複雑さの尺度Pを導き出す面倒な方法を用い
る。 a) P_left とP_up 近傍画像領域の複雑さの尺度 b) sum((i+j)G(i,j)'2) /sum(G(i,j)'2)変換エネ
ルギー・スキュー c) -G(0,0) 平均輝度の逆数 d) max(sum_over_fixed_width(ヒストグラム(V(i,
j)))) 均一性
【0100】ステップ(7)において、蓄積または伝送
すべき変換データ L(,) は、エントロピー符号化法を
用いさらに減らすことができる。発明者らは、ビット・
レートに応じたいくつかの既定のハフマン・テーブルを
用いるCCITTのジクザグ・ラン・テンプレート・コ
ード(zigzag-run-and-template-code)の改良法を使用
し、またこれを推奨する。明確にするため、その例を以
下に説明する。
【0101】圧縮ファイル・フォーマットの例 圧縮された画像は 1)前書き(画像の幅,高さ,レート・スケーラM等) 2)画素ブロック 0 画素ブロック 1 画素ブロック 2 ... 画素ブロック N−1 3)後書き(もし置くのであれば) により表現される。
【0102】ここで、各画素ブロックは 1)精度コード(オプションのステップZで決定され
る) 2)DC係数デルタ・コード 3)AC係数コード(0回以上繰り返される) 4)EOB(End-of-Block)コード により表現される。
【0103】ここで各AC係数コードは 1)9−0拡張(E回繰り返し,E 0) 2)(R,T)を示すラン−テンプレート・コード 3)係数値の符号(1ビット) 4)MSBを除去した係数の絶対値(Tビット) により示される。ここで、R+9*E は、”ジクザグ”順
(和i+jに基づいた順序)に先行する値が0の係数の個数
である。またTは、係数の絶対値の最上位ビット(MSB)
のビット位置であり、例えば 係数が11または−11 ビット位置:876543210 11=000001011 (二進数) -- 最上位ビット の時はT=3である。
【0104】DC係数デルタの選択あるいは符号化につ
いては詳述しないが、高ビット・レートでACラン・テ
ンプレート・コードに有用なハフマン・コードの例を示
す。 コード 0xx 0 w 100x 0 4+w 111110 0 6 1111110{0} 0 7+n 1010 1 0 10110 1 1 10111 2 0 1100xx 1+w max(0,2-w) 11010{0}1xx 1+w n+1+max(0,2-w) 11011xx 5+w 0 111100{0}>1xx 1+w n-1+max(0,2-w) 11011xx 5+w 0 111100{0}>1xx %+w 1+n 1111111 = 予約 111101 = 9−0拡張 1110 = EOBコード ここで、{0} は n個の連続した0 (n=0,1,2,3,...) xx は w=0,1,2 or 3 として解釈された2ビット x は w=0 or 1 として解釈された1ビット を示す。
【0105】128ポイント変換と256ポイント変換 以上の方法は、より大きな8×16または16×16の
一般化チェン変換で使用可能である。チェン変換をさら
に一般化するための方法は、1D−16ポイントGCT
が(行が”蝶状”(butterfly order)で、正規化のた
めの後乗数が必要ないとして)
【数32】 により与えられることに注目した上で明らかにされるべ
きである。
【0106】ここで
【数33】
【数34】
【0107】ここで、”真コサイン”パラメータは e = tangent 15pi/32〜= 10.1532 a = tangent 14pi/32〜= 5.0273 f = tangent 13pi/32〜= 3.2966 b = tangent 12pi/32〜= 2.4142 g = tangent 11pi/32〜= 1.8709 c = tangent 10pi/32〜= 1.4966 h = tangent 9pi/32〜= 1.2185 r = cosine 8pi/32〜= 0.7071 t = cosine 12pi/32〜= 0.3827 s = cosine 4pi/32 = t*b である。
【0108】発明者が使用するパラメータは e = 10 a = 5 f = 3.25 b = 2.4 g = 1.875 c = 1.5 h = 1.25 r = 17/240.708333 t = 5/13〜= 0.384615 s = t*b = 12/13 である。
【0109】GQ8(e,f,g,h,r,s,t) の逆行列は、GQ8(e,
f,g,h,1/2r,t',b,t') の転置行列である。ここで、 b = s/t t' = 1/(t+t*b*b) である。
【0110】行列の例 行列TPの転置行列 コサイン変換(a=5.02734 b=2.41421 c=1.49661 r=0.70
711) :
【数35】
【0111】関連したチェン変換(a=5.0 b=2.4 c=1.5
r=0.7):
【数36】
【0112】装置の説明 さて、本発明を詳細に説明したが、ここで本発明の態様
を実施する装置について説明する。以下の説明中で、”
ポイント”(point)はスケーラ・レジスタあるいは任意
精度(通常8から12ビット)のデータ・パスを示すた
めに用いる。適当な精度を決める方法は知られている。
ソフトウエア方法において、変換ステージは結合され、
またウー−パオリーニ(Wu-Paolini)の改良方法が採用
された。半導体装置の場合、単純に二つの8ポイント変
換ユニットすなわち、垂直方向と水平方向のためにそれ
ぞれ1ユニットずつ用意すると好都合である。垂直方向
変換と水平方向変換の間に64ポイントのシフトアレイ
を設ける必要があり、また同様のバッファリングを変換
セクションと符号化セクションとの間で行なう必要があ
る。
【0113】本発明は、圧縮及び伸長のための一つのモ
ノクロ装置及び/または別々の複数の装置を包含する
が、好ましい実施例は3色データに対して動作する圧縮
装置(図1の(a))と伸長装置(図1の(b))の両
方を含む。データは8画素のベクトルの形で圧縮装置に
入力して、辞書編集上の順番に64画素のブロックに配
列される。ブロックの処理はパイプライン処理による
(図2(b))。
【0114】圧縮装置への1個の画素の入力は、”R”
(赤),”G”(緑),”B”(青)のスケーラ(scale
r) からなる。これらは直ちに輝度−色差空間に変換さ
れる。(かかる変換を行なう理由は周知である。)この
変換は任意の固定した、またはプログラマブルの係数を
使用可能であり(図3の(a))、または用途によって
は単純な値に“ハードワイヤド(hard-wired)”すること
も可能である(図3の(b))。変換空間はここではX
YZとして示されるが、どのような線形形式の3色入力
を用いてよく、これはおそらくCCITT標準(Y,R
−Y,B−Y)ということになろう。そして三つの値
X,Y,Zは、実際的には、それぞれ別々のモノクロ圧
縮装置に送られる。伸長装置は、XYZベクトルがRG
Bベクトルに変換されることを除けば、図3と同一また
は同様の回路を用いる。
【0115】X,Y,Zの値は次に3つのシフトレジス
タ(図5)に入力し、第1変換ユニットへの転送を待
つ。この変換ユニットは2.6画素時間で動作するの
で、データの一部は図示の如く遅延させなければならな
い。”XYZ”の表記は多少不適当で、最適化された符
号化方法では輝度(”Y”)が最初に処理される必要が
ある。伸長中は、XYZのスキュー問題は逆になる。注
目すべきは、好ましい実施例において、伸長中にY−レ
ジスタとZ−レジスタの利用を逆にすることによって、
5ポイント分のレジスタが節約される。
【0116】図1(a)を参照すると、圧縮装置の主要
部は入力をXYZ空間へ変換し、それを次に変換ユニッ
ト3へ転送するためにバッファする入力セクション(3
ポイント変換セクション1、シフトレジスタ2)を含
む。各8画素時間に、変換1ユニットは3回の周期的動
作をしなければならない(X,Y,Zのそれぞれにつき
1回ずつ)。この変換1ユニットの出力はシフトアレイ
4に入力し、そこで8×8画素ブロックが完全に読み込
まれるまで保持される。変換2ユニット5,6は予め読
み込まれた画素ブロックに対して動作し、これもまた各
8画素時間に3回、周期的動作をして、符合器入力バッ
ファ7,8ヘデータを与える。符合器9,10,11は
三つの色座標に共用されるが、一つの輝度ブロック全体
が中断なく符合化され、それに続けて色差ブロックが1
ブロックずつ符合化される。これらの3つのブロックの
処理を64画素時間内に完了できない場合、タイミング
・コントロール論理が外部の入力回路に対する画素クロ
ックを停止させる。
【0117】記憶エリア(入力シフトレジスタ2,シフ
トアレイ4,符合器入力バッファ7,8)は、3色用に
三重化しなければならないが、計算ユニット3,5,
6,9,10,11はYデータ,Xデータ,Zデータで
共用(時間多重化)される。
【0118】符合器9,10,11、符合器入力バッフ
ァ7,8、符合プログラミング12,13,14及びタ
イミング・コントロール論理(図示されていない)は、
在来技術によってよい。同様に、3色を単一回路に時間
多重化する方法は周知である。3ポイント変換セクショ
ン1(図3)及びシフトレジスタ2(図5)もまた知ら
れている。
【0119】スケーラ(scaler)6は、プログラムされた
RAMまたはROMと、(当然存在するところの)シフ
ト回路、マルチプレクサ及び加算器からなるシステムを
用いる。これは簡単に実現できる。一般化チェン変換と
適切なパラメータが与えられれば、8ポイント変換器
(図8(a),図8(b))も簡単である。
【0120】シフトアレイ(図6(a))は特に説明す
る価値がある。現入力画素ブロックからの垂直(変換
後)ベクトルは、先行の画素ブロックからの水平ベクト
ルが水平方向変換器へ送られる間に組み立てられる。特
別な設計をしないと、このような処理は、128個のレ
ジスタ(現ブロックと先行ブロックのそれぞれ毎に64
個)が必要である。これは、ポイントが受信された順序
と異なる順序で用いられるからである。しかし、偶数番
画素ブロックの期間にデータを左から右へシフトし、ま
た奇数番画素ブロックの期間にデータをトップからボト
ムへシフトすることにより、そのようにする必要はなく
なる。説明したシフトアレイは双方向のものである。実
施例によっては、4方向シフトアレイが好ましい。
【0121】図6(b)は、図6(a)のシフトアレイ
の様態をより詳しく示す。図6(b)において、ベクト
ルはシフトレジスタのボトムより一つ一つ取り出され、
図1(a)のDCT8セクションへ送られる。この期間
に、他のDCB8セクションから出力された垂直ベクト
ルがシフトアレイへトップより入力される。徐々に古い
ベクトルはシフトアレイから出され、そして、このシフ
トアレイは次の画素ブロックからの垂直ベクトルによっ
て満たされる。
【0122】次の画素ブロックについては、データの流
れる向きが前画素ブロックのデータの流れる向きから9
0度変わる。そのようにして、水平ベクトルはシフトア
レイの右側より取り出されてDCT8セクションへ送ら
れ、新しい垂直ベクトルがシフトアレイに左側より入力
する。ブロック N+1 まで進むと、さらに90度回転す
ることにより最初の形に戻る。以下同様である。
【0123】伸長装置(図1(b))は、データの流れ
る向きが逆であることを除き、圧縮装置(図1(a))
と非常に類似した構成である。好ましい実施例では、単
一の装置が二つのモードで、すなわち圧縮装置または伸
長装置のいずれかとして動作する。
【0124】可能なVLSIのレイアウト(図4の
(a),(b))によれば、圧縮の場合(図4の(c−
a),(c−b))と、伸長の場合(図4の(d−
a),(d−b))とでデータの流れる向きが異なる。
注意すべきは、変換及びシフトアレイのユニットは、一
方のレイアイト(図4の(b))では圧縮と伸長の両方
に同じ方向性を有するが、他方のレイアイト(図4の
(a))ではそうでないことである。これは、結合した
圧縮装置/伸長装置データフロー(図7)を考えた時
に、より明確になる。二つの変換ユニットを、RGBデ
ータ及び圧縮データのそれぞれに関与させた場合(図4
の(a))、4方向シフトアレイを用いない限りレイア
イトが困難となる。故に、シフトアレイの入力セクショ
ン及び出力セクションを用いて、二つの変換ユニットと
やり取りする(図4の(b))。
【0125】一実施例において、圧縮装置(図8
(a))に用いられた変換ユニットは、38個の加算器
を使用する。1桁右シフト(”R1”)、2桁右シフト
(”R2”)または4桁右シフト(”R4”)、あるい
は1桁左シフト(”L1”)は容易になされる。図示回
路はパラメータ(a,b,c,r)=(5,2.4,1.5,17/24) を用い
る。別の実施例(図8(b))において、b=2.5 として
実現するには加算器は36個だけで足りる。
【0126】伸長装置においては、逆変換ユニットのた
めの関連回路が必要である。”出力イネーブル”信号の
使い方に注意すれば、フォワード変換器内の加算器の大
部分を再使用可能であり、それを具体化することは当業
者であれば簡単である。
【0127】スケーラは、プログラムされたRAMまた
はROMと、当然存在するシフティング回路、マルチプ
レクサ及び加算器のシステムを用いる。その実現は容易
である。
【0128】デスケーラ(descaler)は様々に具体化で
きるが、好ましくはRAM、アキュムレータ、タイミン
グ・コントロール論理及び小さなタイムプレート・カッ
トオフ(timeplate cutoff) を備えた小規模の布線論理
乗算器である。専用の低コストのアプリケーションで
は、デスケーラは、鮮明化ウエートが広い範囲にわたり
ほぼ最適であることに注目することにより、簡略化で
き、したがってスケーラにおけるように単純なスケーリ
ング(scaling) を利用できる。デスケーラは、図1と図
7に示すように、符合器とその出力バッファとの間、あ
るいは、その出力バッファと変換器との間のいずれに置
くこともできる。
【0129】符合器入力バッファは、様々に具体化でき
るが、例えばシフトアレイと類似のサイクル−シェアリ
ング(cycle-sharing) によるレジスタ削減構成も可能で
ある。より単純な設計では、384×10ビットRAM
を、RAMアドレスを与えるための64×7ビットRO
Mとともに使用する。
【0130】ここで、図1(a)と図1(b)を参照
し、1サイクル動作の例を説明する。図1(a)におい
て、データは3色情報すなわち赤、緑、青として圧縮装
置に入力する。このデータは直ちに、XYZと呼ぶ代替
空間へ変換される。X,Y,Zの3要素は、それぞれの
シフトレジスタに入る。
【0131】このシフトレジスタから、データは8ポイ
ントDCTユニットに送られる(ステップ2)。X,
Y,Zの3色に多重化される一つの8ポイントDCTユ
ニットが設けられることもあるし、各色毎にDCT8−
ユニットが設けられることもある。
【0132】情報は次に64ポイント・シフトアレイ4
に入力する。各色別々のシフトアレイが存在する。この
シフトアレイ(ブロック4)から、情報はブロック3と
同様のもう一つのDCTユニット(ブロック5)へ送ら
れる。この情報は次にスケーリングを行なわれなければ
ならないが、これは加算シフトを余分に重ねることであ
る。
【0133】情報は水平方向及び垂直方向の両方に変換
されるだけである。シフトアレイは実は概念上データを
90度回転させるものであり、その結果、情報を他の方
向へ変換可能である。データは、スケーリングされた
後、データ保持のための別のバッファ、すなわち図示の
ブロック7,8(Z1,Z2)へ入力し、その結果、デ
ータは最終的に符合化されてチップから出力される(Z
1,Z2はジグザクである)。
【0134】概念上、これは、データが90度回転され
ないことを除けば、シフトアレイすなわちブロック4と
同様である。その代わり、それはジグザク順に変換され
るが、これは従来このような事に用いられてきており、
またCCITT標準に採用されている。情報は次にラン
・テンプレート(run and template)コントロールユニッ
トのブロック9へ送られ、このユニットはゼロを検出し
てゼロのランを生成し、また非ゼロと値の対数の概算値
(テンプレートと呼ばれる)を検出する。このランとテ
ンプレートの組(RTコードと呼ばれる)はRAMまた
はROM内で検索され、次にチップより出力される。
【0135】仮数、すなわち変換係数の有効ビットもチ
ップから出力される。仮数とラン・テンプレート・コー
ドは1ビット、2ビット等々の任意の長さであるが、チ
ップの出力は常に16ビットあるいは8ビット、32ビ
ット等々の同一ビット数であるので、ブロック11(整
列)は簡単になる。
【0136】図1(a)に示す他のブロック(オプショ
ン)はプログラミング・ブロック12,13,14であ
り、これらはそれぞれに任意のRGB−XYZ変換、任
意のレート・スケーラ及び心理的適応ウエート、ラン・
テンプレート用の任意のモデファイド・ハフマンコード
を設定可能である。
【0137】図1(b)は、図1(a)と非常に似てい
る。ラン・テンプレート・コードは、ランとテンプレー
トの組に復号されなければならず、また必要個数のゼロ
が省かれなければならない。
【0138】図1(a)において、スケーラは単なる加
算器とシフター(shifter)のアレイである。図1
(b)において、デスケーラはハードウエアにより非常
に小さな乗算として実現されている。
【0139】図9は本発明による2次元の一般化チェン
変換の説明図を示す。画素は、トップから入力するが、
典型的には8ビット幅である。この画素は、典型的には
128ビットのデータ幅を持つ水平方向変換部110内
の広い加算器アレイを通る。水平方向変換部110の出
力は、水平から垂直への情報回転のための転換RAM1
12を通過する。次に、データは、これも加算器のみか
らなる垂直方向変換部116(典型的には128ビット
幅)に入る。その出力係数は最終的に約16ビット幅に
縮小され、単一の乗算器120を通過するが、これは本
発明によりJPEG互換である。
【0140】図10は、本発明によるVLSI装置のた
めのブロック図を示す。図10において、データは構成
部40より入力し入力ラッチ42にラッチされ、マルチ
プレクサ44を通ってGCT変換の前半部(first hal
f。加算器ネットワークである)50に入る。この加算
器ネットワークの後半部(second half)60は中段ラ
ッチ54の右側にある。その出力はMUX62を通って
転換RAM66に達し、ここで水平から垂直への変換が
なされる。
【0141】タイムシェアリングまたはタイムスライス
方式による垂直方向変換の前半部(first half)を構成
するために、転換RAM66の出力はGCTの第1ステ
ージ50にフィードバックされる。GCT50の出力は
垂直方向変換の第2ステージ60の入力に送られる。最
終的に、GCT60の出力は出力ラッチマルチプレクサ
70を通過させられ、乗算器74及び丸め器(rounde
r)76を通ってジクザグ順アレンジャ(arranger)8
0に達する。このアレンジャ80の出力は12ビットの
係数84として出力される。
【0142】図10を再び参照して、本発明による逆変
換プロセスについて以下に簡略に説明する。図10にお
いて、12ビット係数はブロック84を介しジグザグ順
アレンジャ80のY入力に入力される。このジグザグ順
アレンジャ80の出力は、フォワードプロセスで行なわ
れたと同様の逆量子化プロセスを行なう乗算器74及び
丸め器76を通る。乗算器74の出力は逆変換プロセス
の第1ステージであるラッチ42へ入力される。
【0143】逆変換プロセスは、ラッチ42から、フォ
ワード変換が辿ったと同じ2ステージ時間多重パスを辿
る。出力は出力ラッチ70に出るが、同ラッチの出力が
丸め器76によって丸められる画素であって、丸め器7
6の出力はブロック40へ送られ、出力される。
【0144】本発明の好ましい実施例に関する以上の記
述は、説明を目的としてなされたものであって、本発明
を開示した態様そのものに限定することを意図するもの
ではなく、以上の説明に照らし多くの修正や変形が可能
である。また、本発明は既存の標準、例えばJPEG標
準に適合する。前記好適実施例は、本発明の原理及び実
際的な応用を最もよく説明することによって、当業者が
本発明及び様々な態様を最善に、また特定用途に適する
よう様々に修正して利用できるようにすることを目的と
して、選び説明したものである。本発明の範囲は、添付
のクレームによってのみ定義されるものである。
【0145】
【発明の効果】以上説明したように、本発明によれば、
ほとんど加算操作のみを使用する非常に単純でかつコス
トも小さい処理によって画像圧縮を行ない、またJPE
G画像圧縮標準と互換性を維持できる画像圧縮装置及び
その方法を実現できる。
【図面の簡単な説明】
【図1】本発明による圧縮装置および伸長装置の一実施
例のブロック図である。
【図2】(a)は入力画素順の説明図、(b)はデータ
のブロックタイミングの説明図、(c)ベクトルタイミ
ングの説明図である。
【図3】(a)はRGBデータからXYZデータへの3
ポイント変換の一構成例を示す図、(b)はRGBから
XYZデータへの3ポイント変換の他の構成例を示す図
である。
【図4】(a)は可能なVLSIレイアウトの一例の説
明図、(b)は可能なVLSIレイアウトの他の例の説
明図、(c−a)は(a)のレイアウトでの圧縮時のデ
ータフローの説明図、(d−a)は(a)のレイアウト
での伸張時のデータフローの説明図、(c−b)は
(b)のレイアウトでの圧縮時のデータフローの説明
図、(d−b)は(b)のレイアウトでの伸張時のデー
タフローの説明図である。
【図5】シフトレジスタの説明図である。
【図6】(a)はシフトアレイの説明図、(b)は
(a)のシフトアレイの一例を示す図である。
【図7】結合されたデータフローの説明図である。
【図8】(a)はフォワード加算アレイの一例を示す
図、(b)はフォワード加算アレイの他の例を示す図で
ある。
【図9】本発明による2次元一般化チェン変換の説明図
である。
【図10】本発明の好適な一実施例のブロック図であ
る。
【符号の説明】
42 入力ラッチ 44 マルチプレクサ 50 GCT変換の前半部(第1ステージ、加算器ネッ
トワーク) 54 中段ラッチ 60 GCT変換の後半部(第2ステージ、加算器ネッ
トワーク) 62 マルチプレクサ(MUX) 66 転換RAM 70 マルチプレクサ(MUX) 74 乗算器 76 丸め器 80 ジグザグ順アレンジャ 110 水平方向変換部 112 転換RAM 116 垂直方向変換部 120 単一乗算器

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】 あるビット幅を持つ入力画素を受け取
    り、加算器アレイ手段のみを使用して該入力画素を水平
    方向に変換するための水平方向変換手段、水平方向に変
    換された画素を垂直に回転させるための転換メモリ手
    段、垂直画素を受け取り、別の加算器アレイ手段のみを
    使用して該垂直画素を垂直方向に変換するための垂直方
    向変換手段、及び、変換された垂直画素を受け取り、該
    垂直画素に対し単一の乗算関数を実行して該入力画素を
    表わす圧縮された画素データを提供する単一乗算器手段
    を有することを特徴とする画像圧縮装置。
  2. 【請求項2】 画像を表わす入力画像画素データを受け
    取るための手段を有し、また該画像データを圧縮するた
    めの一般化チェン変換(GCT)手段を有し、該GCT
    手段は加算器のみを使用して該画像データを水平方向に
    変換するためのGCT加算器手段を含み、また水平方向
    に変換された画素を垂直に回転させるための転換メモリ
    手段を有し、該GCT加算器手段は該加算器のみを使用
    して垂直画素を垂直方向に変換するための手段を含み、
    また該変換された垂直画素に対し乗算関数を実行し、該
    入力画素を表わす圧縮された画素データを提供する乗算
    器手段を有することを特徴とする画像圧縮装置。
  3. 【請求項3】 該GCT加算器手段が、該水平方向変換
    及び垂直方向変換の前半部の変換のための第1のGCT
    加算器ネットワークステージ、及び、該水平方向変換及
    び垂直方向変換の後半部(the second half)の変換の
    ための第2のGCT加算器ネットワークステージを含む
    ことを特徴とする請求項2記載の画像圧縮装置。
  4. 【請求項4】 該第1及び第2の加算器手段が、タイム
    シェアリング方式で画像画素を水平方向及び垂直方向に
    変換することを特徴とする請求項3記載の画像圧縮装
    置。
  5. 【請求項5】 該乗算器手段がジグザグ順序手段を含む
    ことを特徴とする請求項4記載の画像圧縮装置。
  6. 【請求項6】 該乗算器手段が丸め手段を含むことを特
    徴とする請求項5記載の画像圧縮装置。
  7. 【請求項7】 画像圧縮装置において、あるビット幅を
    持つ入力画素を受け取り、加算器アレイ手段のみを使用
    して該入力画素を水平方向に変換するステップ、水平方
    向に変換された画素を垂直に回転させるステップ、垂直
    画素を受け取り、別の加算器アレイ手段のみを使用して
    該垂直画素を垂直方向に変換するステップ、及び、変換
    された垂直画素を受け取り、該垂直画素に対し単一の乗
    算関数を実行して該入力画素を表わす圧縮されたデータ
    を提供するステップを有することを特徴とする画像圧縮
    方法。
JP3282191A 1991-10-02 1991-10-02 画像圧縮装置及び方法 Pending JPH0595483A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3282191A JPH0595483A (ja) 1991-10-02 1991-10-02 画像圧縮装置及び方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3282191A JPH0595483A (ja) 1991-10-02 1991-10-02 画像圧縮装置及び方法

Publications (1)

Publication Number Publication Date
JPH0595483A true JPH0595483A (ja) 1993-04-16

Family

ID=17649264

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3282191A Pending JPH0595483A (ja) 1991-10-02 1991-10-02 画像圧縮装置及び方法

Country Status (1)

Country Link
JP (1) JPH0595483A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
USRE42745E1 (en) 2001-08-09 2011-09-27 Sharp Kabushiki Kaisha Systems and methods for reduced bit-depth processing in video-related data with frequency weighting matrices
CN114092338A (zh) * 2022-01-20 2022-02-25 长沙金维信息技术有限公司 图像缩放快速计算方法

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
USRE42745E1 (en) 2001-08-09 2011-09-27 Sharp Kabushiki Kaisha Systems and methods for reduced bit-depth processing in video-related data with frequency weighting matrices
USRE43091E1 (en) 2001-08-09 2012-01-10 Sharp Kabushiki Kaisha Systems and methods for reduced bit-depth processing in video-related data with frequency weighting matrices
USRE44138E1 (en) 2001-08-09 2013-04-09 Sharp Kabushiki Kaisha Systems and methods for reduced bit-depth processing in video-related data with frequency weighting matrices
USRE44234E1 (en) 2001-08-09 2013-05-21 Sharp Kabushiki Kaisha Systems and methods for reduced bit-depth processing in video-related data with frequency weighting matrices
USRE44285E1 (en) 2001-08-09 2013-06-11 Sharp Kabushiki Kaisha Systems and methods for reduced bit-depth processing in video-related data with frequency weighting matrices
USRE44319E1 (en) 2001-08-09 2013-06-25 Sharp Kabushiki Kaisha Systems and methods for reduced bit-depth processing in video-related data with frequency weighting matrices
USRE44891E1 (en) 2001-08-09 2014-05-13 Sharp Kabushiki Kaisha Systems and methods for reduced bit-depth processing in video-related data with frequency weighting matrices
USRE46370E1 (en) 2001-08-09 2017-04-18 Dolby Laboratories Licensing Corporation Systems and methods for reduced bit-depth processing in video-related data with frequency weighting matrices
USRE47258E1 (en) 2001-08-09 2019-02-26 Dolby Laboratories Licensing Corporation Systems and methods for reduced bit-depth processing in video-related data with frequency weighting matrices
USRE47277E1 (en) 2001-08-09 2019-03-05 Dolby Laboratories Licensing Corporation Systems and methods for reduced bit-depth processing in video-related data with frequency weighting matrices
CN114092338A (zh) * 2022-01-20 2022-02-25 长沙金维信息技术有限公司 图像缩放快速计算方法
CN114092338B (zh) * 2022-01-20 2022-04-19 长沙金维信息技术有限公司 图像缩放快速计算方法

Similar Documents

Publication Publication Date Title
US5319724A (en) Apparatus and method for compressing still images
JP2821489B2 (ja) 静止画像圧縮処理装置及び方法
JP5623565B2 (ja) バタフライプロセッサを使用して離散コサイン変換をエンコードしそして計算するための装置及び方法
CN101399988B (zh) 减少位深的量子化方法
JP4153425B2 (ja) 変換及びそれに続く量子化の実行
WO2005079054A1 (ja) 画像圧縮装置
US7649939B2 (en) Apparatus and method for decoding and computing a discrete cosine transform using a butterfly processor
US6678423B1 (en) Shift and/or merge of transformed data along two axes
JP4860017B2 (ja) 高速の画像圧縮のための方法および装置
US6996595B2 (en) Apparatus and method for consolidating output data from a plurality of processors
JP3796432B2 (ja) フィルタ処理装置およびフィルタ処理方法
EP1108325A2 (en) Circuit and method for performing a two-dimensional transform during the processing of an image
US5664028A (en) Apparatus and method for compressing still images
JPH0595483A (ja) 画像圧縮装置及び方法
US5594812A (en) Apparatus and method for compressing still images
JP3155383B2 (ja) 2モード処理装置、2次元変換装置及び静止画像データの圧縮システム
US6671414B1 (en) Shift and/or merge of transformed data along one axis
TW550955B (en) Sub-optimal variable length coding
Bracamonte et al. A multiplierless implementation scheme for the JPEG image coding algorithm
JPH0645947A (ja) 直交変換装置及び逆直交変換装置
CN117041587A (zh) 低复杂度的jpeg编码方法及解码方法
JP2000175061A (ja) 色変換処理方法及び装置
WO2011042545A1 (en) Method for processing digital images