JPH0644291A - 離散コサイン変換器及び情報符号化器 - Google Patents

離散コサイン変換器及び情報符号化器

Info

Publication number
JPH0644291A
JPH0644291A JP4194387A JP19438792A JPH0644291A JP H0644291 A JPH0644291 A JP H0644291A JP 4194387 A JP4194387 A JP 4194387A JP 19438792 A JP19438792 A JP 19438792A JP H0644291 A JPH0644291 A JP H0644291A
Authority
JP
Japan
Prior art keywords
data
discrete cosine
difference
input
matrix
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
JP4194387A
Other languages
English (en)
Inventor
Takashi Endo
隆史 遠藤
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.)
Kyocera Corp
Original Assignee
Kyocera Corp
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 Kyocera Corp filed Critical Kyocera Corp
Priority to JP4194387A priority Critical patent/JPH0644291A/ja
Publication of JPH0644291A publication Critical patent/JPH0644291A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Complex Calculations (AREA)

Abstract

(57)【要約】 【目的】 DCT演算のための回路を簡略化する。 【構成】 画像データの交流成分として差分器10によ
る差分データを得、これに対しDCTを行う。そして、
差分についてのDCTとすることによって、必要名係数
の数が少なくなるため、乗算器の数を減少できる。さら
に、同一の係数を異なるデータに対し乗算する場合には
マルチプレクサ乗算器18、20、22、34を用い、
時分割で乗算を行う。このため、乗算器の数をさらに減
少することができる。また、乗算すべき係数を量子化器
54の量子化テーブルに対し予め乗算しておくため、乗
算回数を減少することができる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は画像符号化等に用いられ
る離散コサイン変換器及び離散コサイン変換と量子化を
組合せて情報の圧縮伸長を行う情報符号化器に関するも
のである。
【0002】
【従来の技術】従来より、画像処理の分野において、離
散コサイン変換(DiscreteCosine Tr
ansform、以下DCTと略す。)により、画像の
符号化を行う装置が知られている。この符号化装置は、
画像データを8行8列のブロックごとに分割し、このブ
ロック毎に2次元離散コサイン変換を施し、その後視覚
の空間周波数特性に応じて各係数を量子化することによ
り、視覚的に必要でない情報を切り捨てて、高画質、高
能率な符号化を可能にするものである。
【0003】また、このような装置は通常LSIで構成
されるが、DCTは、数式上は変換用の直交行列をかけ
るものであり、そのままDSP(Digital Si
gnal Processor)により実現できる。す
なわち8点のDCTならば8個の乗算器と8個の加算器
と8個の遅延素子を用いFIRフイルタと同じ構成にな
る。こうした構成のDCTを行う回路については、例え
ば1990年3月の電子情報通信学会春期全国大会・講
演番号D−400「ディスクリートコサイン変換用VL
SI」等に示されている。この回路は、14bit×1
4bitの乗算器を8個有しており、回路規模は640
00ゲートであり、大きな回路規模となっている。
【0004】このような回路規模の負担を削減するため
に、従来よりDCTの高速アルゴリズムの応用が試みら
れてきた。例えば、1990年電子情報通信学会春期全
国大会講演論文集、講演番号A−191「DCT新高速
演算アルゴリズム」には、順方向DCTと逆方向DCT
(以下、IDCTと略す)でパイプライン構成における
加算段と乗算段とが、ほぼ対称になる構成が示されてい
る。そして、日経エレクトロニクス1990年10月1
5日号、No.511、p135には、この高速演算アルゴリズム
により8点DCTを構成した図が記載されている。この
回路は、同一の係数の乗算を1つの乗算器で行うと共に
バタフライ加算を行い、3回の乗算を行う乗算ユニット
を4つ設け、計12回の乗算を行い、8点(一次元)の
DCTを構成するものである。
【0005】ここで、この高速演算アルゴリズムについ
て、行列による表現を示すと、1行8列の画素データに
次のような行列を順次乗算し、DCTを行うことを意味
している。 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 -1 0 1 0 0 0 0 1 0 0 1 0 0 0 0 -1 0 (a) 0 0 0 1 1 0 0 0 0 0 0 1 -1 0 0 0 0 0 1 0 0 1 0 0 0 0 1 0 0 -1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 (b) 0 1.38703984 0 0 0 0.275899376 0 0 0 0.275899376 0 0 0 -1.387039836 0 0 0 0 0 1.175875602 0 0 0 0.785694958 0 0 0 0.7856949582 0 0 0 -1.175875602 1 1 0 0 0 0 0 0 1 -1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 -1 0 0 0 0 (c) 0 0 0 0 1 0 1 0 0 0 0 0 1 0 -1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 -1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1.30656296 0 0.5411960968 0 0 0 0 0 0.5411960968 0 -1.306562957 0 0 0 0 (d) 0 0 0 0 1 0 0 0 0 0 0 0 0 0.707106781 0.707106781 0 0 0 0 0 0 0.707106781 -0.707106781 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 -1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 (e) 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 (f) 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1
【0006】なお、乗算ユニットが3回の乗算で実行す
る部分は、行列の記法上、2入力2出力の演算とし4回
の乗算を行うように示してある。またこれらの行列を掛
け合わせるとDCT変換行列となるが、この変換によっ
て出力されるベクトルは国際標準方式で定めるDCTと
は定数倍だけ異なっており、各成分をさらに1/√8倍
して初めて、画像符号化のための1次元DCT出力とな
る。
【0007】このようにして、高速演算アルゴリズムを
利用することによって、DCTを行うための回路におけ
る乗算器の個数を減少し、また乗算回数も減少すること
ができる。
【0008】
【発明が解決しようとする課題】まず、FIRフィルタ
によるLSIでは、DCTを行うために乗算器が8個必
要であり、動画像の符号化においては逆離散コサイン変
換(以下IDCTと略す。)も行う必要があるため、1
6個の乗算器が必要となる。このような多数の乗算器を
1つのLSI中に集積することは、現状の集積化技術で
は困難であり、またコストも高いものとなってしまうと
いう問題点があった。また、回路面積が大きいと消費電
力が大きいという問題点もある。
【0009】また、高速アルゴリズムにより回路面積を
削減する場合は次のような問題が生じる。すなわち、バ
タフライ演算により同じ係数をまとめる高速アルゴリズ
ム一般に言えることであるが、入力データがまとめられ
るに従って、その乗算において演算精度が必要となる。
特に後段になるほど、入力データ8個が全てまとめられ
る場合があり、うまくデータの間で加算と減算を混合し
て相関を除いておかないと、多くのビット精度が要求さ
れることになる。例えば上述した高速演算アルゴリズム
では、上述のベクトル(d)の6行6列および7行6列
の係数0.707106781 にかかる、被乗算データが、入力ベ
クトルをx[8](x[0]〜x[7])として、 であり、加算する項と、減算する項の関係がデータ間の
相関を除去するような演算となっていないために、この
データに対して乗算を行うには多くのビット精度が必要
となる。さらに、上述の方法以外の高速アルゴリズムを
考えた場合においても、DCTの演算に直流項が入って
いる場合には、絶対値の大きなデータが発生するため、
演算誤差が大きくなることは避けられない。
【0010】本発明は、上記課題に鑑みなされたもので
あり、乗算器の数を極力少なくして、回路規模を小さく
しながら、かつ演算におけるビット精度が小さくてよい
離散コサイン変換器および情報符号化器を提供すること
を目的とする。
【0011】なお、本発明では乗算器はある特定の係数
と入力データとの積を求めるものをいい、2つの入力が
変数の場合の乗算器と比べ、約半分の回路で構成できる
ため、これを半固定乗算器と称することがある。
【0012】
【課題を解決するための手段】上記目的を達成するため
に、請求項1記載の発明は、所定の複数であるN個のデ
ータを入力とし、これを離散コサイン変換してN個の変
換後のデータを出力する離散コサイン変換器であって、
入力されたN個のデータの総和を求める総和演算手段
と、入力されたN個のデータにおける隣接データ間の減
算からN−1個の差分データを求める差分演算手段と、
求められたN−1個の差分データから離散コサイン変換
によるN−1個の交流成分を計算する離散コサイン変換
手段と、を有することを特徴とする。
【0013】また、請求項2記載の発明は、所定の複数
であるN個のデータを入力とし、これを変換してN個の
データを出力するデータ変換手段と、その出力を量子化
する量子化手段とを有する情報符号化器であって、前記
データ変換器は、入力されたN個のデータの総和を求め
る総和演算手段と、入力されたN個のデータにおける隣
接データ間の減算からN−1個の差分データを求める差
分演算手段と、求められたN−1個の差分データから離
散コサイン変換によるN−1個の交流成分を計算する離
散コサイン変換手段と、を含み、前記離散コサイン変換
手段は、入力されてくる2つのデータに対し、予め定め
られている同一の係数を時分割で乗算し、2つの乗算結
果を出力する乗算器と、入力されてくる2つのデータに
対し、和および差を求め、これらを出力するバタフライ
演算器と、を含み、前記量子化手段は、所定の係数を量
子化ステップの逆数を表す列ベクトルに乗算したベクト
ルを量子化ステップの逆数として、量子化を行うことを
特徴とする。
【0014】また、請求項3記載の発明は、N行N列の
データを入力として、これに2次元データ変換を施し、
さらに所定の量子化ステップサイズにより量子化する情
報符号化器において、該符号化器は、N行N列の画素デ
ータに対して、一次元離散コサイン変換から1回分の係
数乗算を除いた演算を行う第1の変換手段と、第1変換
手段の演算結果を記憶し、列と行を転置して出力する転
置手段と、転置して出力されたN行N列のデータに対し
て、一次元離散コサイン変換から1回分の係数乗算を除
いた演算を行う第2の変換手段と、第2の変換手段の出
力を所定の量子化ステップで量子化する手段、を含み、
第1及び第2の変換手段は、入力されたN個のデータの
総和を求める総和演算手段と、入力されたN個のデータ
における隣接データ間の減算からN−1個の差分データ
を求める差分演算手段と、求められたN−1個の差分デ
ータから離散コサイン変換によるN−1個の交流成分を
計算する離散コサイン変換手段と、を含み、前記離散コ
サイン変換手段は、入力されてくる2つのデータに対
し、予め定められている同一の係数を時分割で乗算し、
2つの乗算結果を出力する乗算器と、入力されてくる2
つのデータに対し、和および差を求め、これらを出力す
るバタフライ演算器と、を含み、前記離散コサイン変換
手段は、入力されてくる2つのデータに対し、予め定め
られている同一の係数を時分割で乗算し、2つの乗算結
果を出力する乗算器と、入力されてくる2つのデータに
対し、和および差を求め、これらを出力するバタフライ
演算器と、を含み、前記量子化手段は、所定の係数を対
角部にもつ8行8列の係数行列を量子化ステップの逆数
を表す行列に右から乗算し、この乗算結果にさらに係数
行列を左から乗算して得た行列を新たな量子化ステップ
の逆数を表す行列として、量子化を行うことを特徴とす
る。
【0015】
【作用】上記構成によれば、入力データから、まず直流
成分を他の交流成分とは別に計算するために、直流が演
算処理に混入することによる、ビット精度要求の増加を
避けられる。
【0016】さらに、交流成分を計算するに先だって、
隣接データ間で差分をとることにより相関を除去するた
め、出現するデータの絶対値を極力小さくすることがで
きる。これは、差分データの出現確率の分布はゼロを中
心とするガウス分布に近くなるという、統計的な性質を
利用したものである。これにより、各乗算器のビット精
度は最少のビット精度で構成できるために、回路を小さ
く構成できる。
【0017】また、各段階において必要となる乗算のう
ち、同じ係数が2個ある場合には、同じ半固定乗算器を
時分割多重により使用するため、必要な乗算器の数は、
最小限(8点のDCT処理の場合であれば7個)で済
む。そして、この乗算器の数はDCTに最低限必要な係
数の数に等しくなるため、最も小さな回路が構成でき
る。
【0018】なお、本発明では、DCTに必要な乗算の
一部を量子化における乗算に含ませて達成しており、デ
ータ変換器とそれに続く量子化器と組にして、DCT演
算が完了する。
【0019】
【実施例】以下、本発明の実施例について説明する。こ
こで、本発明の実施例において行っている演算の内容に
ついて、数式を用いて説明する。
【0020】まず、情報符号化に用いられる離散コサイ
ン変換(DCT)、及び逆離散コサイン変換(IDC
T)は、次の式で表すことができる。DCT IDCT ただし、入力をx[i](i=0〜7)、u =0 の時 Cu=1/√2
、u ≠0 の時 Cu=1とする。
【0021】そして、本発明においては、このDCT,
IDCTを次のようにして計算する。ここで、入力をx
[i](i=0〜7)とする。まず、直流成分を求めるために8
個の入力の総和を求める。 ただし、これと前記DCTの定義式と合致させるために
は1/√8をかける必要があり、y[0]= t[0]/ √8 しかし、この乗算は量子化の過程に含めることができる
ため、実際の処理では総和を計算するだけでよい。
【0022】次に、交流成分を計算する前に相関を除く
ために隣接するデータ同士の減算を行い、差分データz
(i)(i=1〜7)をつくる。 z[1]=x[1]-x[0]; z[2]=x[2]-x[1]; z[3]=x[3]-x[2]; z[4]=x[4]-x[3]; z[5]=x[5]-x[4]; z[6]=x[6]-x[5]; z[7]=x[7]-x[6]; そして、各成分に所定の係数をかけてスケーリングす
る。ここではある対角行列Cをかける操作として表す。 s = Cz さらに、次のような行列演算を行う。 t = Bs その後、DCTを完成させるためには、次のポストスケ
ーリングを行うのであるが、これは符号化装置において
は次に引き続いて実行される量子化の過程に含めること
ができる。これは所定の係数を対角部にもつ対角行列A
をかける操作として表せる。 y = At よって、 y[i](i=0 〜7)がDCT出力である。
【0023】このように、本発明は、隣接データの差分
をとることにより、隣接データ間における相関を除去
し、またデータの直流成分を交流成分とは別扱いで計算
し、さらに差分データからDCTの交流係数を計算する
処理における乗算の数を減らすため、変換行列を上記の
ような、3つの対称行列ABCに分解している。
【0024】そして、差分を求める過程も所定の行列M
を乗算する工程で表せるため、これを含めて次の4つの
行列を順に作用させることにより離散コサイン変換を行
うものである。すなわち、DCT行列をDとするとD=
ABCMである。また、IDCTを行う行列は、Dが直
交行列であり、A、B、Cが対称行列であることから、
T =MT CBAとなる(ここで、T は転置行列を表
す)。
【0025】ここで、各行列M,C,B,Aを次に示
す。 B = 1 0 0 0 0 0 0 0 0 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 0 1.000000 0.765367 0.414214 0.000000 -0.414214 -0.765367 -1.000000 0 1.000000 0.414214 -0.171573 -0.414214 -0.171573 0.414214 1.000000 0 1.000000 0.000000 -0.414214 0.000000 0.414214 0.000000 -1.000000 0 1.000000 -0.414214 -0.171573 0.414214 -0.171573 -0.414214 1.000000 0 1.000000 -0.765367 0.414214 0.000000 -0.414214 0.765367 -1.000000 0 1.000000 -1.000000 1.000000 -1.000000 1.000000 -1.000000 1.000000 このように、行列B、Cに現れる係数は7種類である。
したがって、データ変換器は、少なくとも7種類の固定
の係数を入力データに乗算する半固定乗算回路が必要と
なる。また、行列Aは対角行列であり、後段の量子化の
処理の中に含ませることにより演算回路を省略すること
ができる。
【0026】次に、この7種類の係数の定め方について
述べる。まず行列の次のような分解を考える。
【0027】
【数1】 上式の右辺は、単位行列の第1列目にベクトル[-1 -1
-1 -1 -1 -1 -1 -1 ]T を足した形をしており、これ
は、作用するベクトルx に対して各成分についてx[0]を
差し引く操作に等しい。今DCTの直流成分は別に求め
ると仮定しているため、このような平均を変える操作を
施してもかまわない。すると、DCTの変換行列をD、
入力をxとすると、7個の差分からDCTの交流係数を
求める操作は次の様になる。
【0028】
【数2】 よって、上式の第1項と第2項の積が変換処理に相当
し、第3項と第4項の積が差分を求める操作に相当す
る。そして、本発明においては、第1項と第2項の積の
行列を二つの対角行列と一つの対称行列との積ABCに
分解する。
【0029】この分解の係数の定め方を次に説明する。
ここで、上式第2項に現れた8行7列の行列を a[8][7]
とする。
【0030】
【数3】 これにDCT行列Dをかけて8行7列の行列 b[8][7]
を得る。
【0031】b=Da そして、このとき、上記対角行列Cに現れる4種類7つ
の係数を次のように定義する。
【0032】
【数4】 ここで、 amp[0]=1; amp[1]=b[1][0]; amp[2]=b[1][1]; amp[3]=b[1][2]; amp[4]=b[1][3]; amp[5]=b[1][4]; amp[6]=b[1][5]; amp[7]=b[1][6]; である。
【0033】また、対角行列Aにおける、乗算を量子化
に含めて、量子化のための乗数に予め乗算しておく係数
は次のように定める。
【0034】
【数5】 ここで、 inc[0]=1/ √8; inc[1]=b[1][0]/amp[1];(1に等しい) inc[2]=b[2][0]/amp[1]; inc[3]=b[3][0]/amp[1]; inc[4]=b[4][0]/amp[1]; inc[5]=b[5][0]/amp[1]; inc[6]=b[6][0]/amp[1]; inc[7]=b[7][0]/amp[1]; である。
【0035】このように、行列CおよびAの対角成分を
定義すると、行列Bは次のように表され、ここにおいて
現れる3種類の係数c1、c2、c3は次のように定義
される。
【0036】
【数6】 ここで、 c1=b[2][1]/amp[2]/inc[2]; ( 0.76536686) c2=b[3][1]/amp[2]/inc[3]; ( 0.41421356) c3=-b[3][2]/amp[3]/inc[3];( 0.17157287) である。
【0037】一方、IDCTを行う行列はDCT行列D
の転置DT となることから、本発明におけるIDCTは
次のように実行できる。
【0038】すなわち、A、B、Cは対称行列であるこ
とから逆離散コサイン変換を行なうには行列CBAをか
けることにより、差分領域のデータが得られ、これを適
当に加算することにより復号化された画像データが得ら
れる。すなわち、順逆で各行列をかける処理を行なう回
路は全く同じであり、ただそれらを適用する順番が逆で
あるだけであるため、順逆での切り替えのための回路設
計が非常に簡単にできる。また、対角行列Aをかける操
作は逆量子化の過程に含めることができ、これにより処
理回路を省略できる。
【0039】さらに、行列Bをかける演算を行う処理ユ
ニットは、同じ係数をかける演算の部分の前にバタフラ
イ演算部を設けておくことにより、乗算器の数を減少で
きる。
【0040】従って、次に示す方法によれば、量子化の
中に組み込む乗算7回を別にすれば、乗算の回数が12
回ですむ。かつ、出現する係数は7種類であり最低7個
の半固定乗算器を備えれば8点DCTが実行でき、これ
は現在発見されている高速アルゴリズムと同等の小ささ
である。
【0041】ここでは、8点のDCTを表す8行8列の
行列をいくつかの行列の積として表す。さらに各行列は
逆離散コサイン変換のときにも同一の回路になるように
なるべく対称行列で表すことにする。また非対称行列の
うち各行各列ともに1が1回しか表れない行列は各デー
タ間の配線を入れ替える役目をしておりマルチプレクサ
として実現する。このため、回路的な負担にはならな
い。
【0042】このような演算を実現するための装置を図
1に示す。8個の画素データからなるデータx[0]〜
x[7]は差分器および加算器12に入力される、差分
器10は隣接データ間の減算を行い7つの差分z[1]
〜z[7]を得る。このように差分を求めるため、隣接
データ間の相関を除くことができる。一方、加算器12
には、その出力がレジスタ14を介し再帰されており、
ここで8つのデータx[0]〜x[7]の総和t[0]
が計算される。この総和t[0]は、入力データの直流
成分に対応する。
【0043】この差分器10および加算器12による処
理を行列で表せば、下記のような行列をデータx[0]
〜x[7]からなる列ベクトルに右から掛けたことにな
り、これにより[t[0],z[1]〜z[7]]とい
う列ベクトルが得られたことになる。
【0044】なお、得られた差分データz[1]〜z
[7]はブロックが輪郭を含むかどうかを判定するため
に使用できる。
【0045】次に、差分器10からの出力z[1]〜z
[7]は、マルチプレクサ16に入力され、シリアルな
データ列がパラレルなデータ列に変換されここからマル
チプレクサ乗算器18にz[1]およびz[7]、マル
チプレクサ乗算器20にz[2]およびz[6]、マル
チプレクサ乗算器22にz[3]およびz[5]、乗算
器24にz[4]がそれぞれ入力される。そして、ここ
において、対角行列であるC行列の演算が行われる。
【0046】すなわち、マルチプレクサ乗算器18にお
いては、z[1],z[7]に対し、 -0.490393の乗算
が行われ、マルチプレクサ乗算器20においては、z
[2],z[6]に対し、-0.906127 の乗算が行われ、
マルチプレクサ乗算器22においては、z[3],z
[5]に対し、 -1.183913の乗算が行われ、乗算器24
においては、z[4]に対し、-1.281458 の乗算が行わ
れる。これを式で示せば、 という行列をz[1]〜z[7]という列ベクトルに左
から乗算したことになる。そして、乗算結果の行ベクト
ルをs[1]〜s[7]とする。
【0047】次に、マルチプレクサ乗算器18で得られ
た信号s[1],s[7]をバタフライ加算器26、マ
ルチプレクサ乗算器20で得られた信号s[2],s
[6]をバタフライ加算器28、マルチプレクサ乗算器
22で得られた信号s[3],s[5]をバタフライ加
算器30にそれぞれ入力し、和および差の信号をそれぞ
れ出力する。また、s[4]はそのまま出力する。これ
を式で表すと、 1 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 -1 0 0 0 1 0 0 0 -1 0 1 0 0 0 0 0 -1 という行列を列ベクトルをs[1]〜s[7]に左から
掛けることになる。
【0048】さらに、バタフライ加算器28で得られた
s[2]+s[6]と、乗算器24で得られたs[4]
をバタフライ加算器32に入力し、バタフライ演算を行
なう。これを式で表すと、 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 -1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 という行列をその前段で得られたデータに乗算したこと
になる。
【0049】次に、バタフライ加算器30からの差の信
号(s[3]−s[5])とバタフライ加算器32から
の差の信号(s[2]+s[6]−s[4])をマルチ
プレクサ乗算器34に入力し0.414214を乗算
し、バタフライ加算器28からの差の信号(s[2]−
s[6])を乗算器38に入力し0.76367を乗算
する。これを式で表せば、 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0.414214 0 0 0 0 0 0 0 0.414214 0 0 0 0 0 0 0 0.765367 0 0 0 0 0 0 0 1 という行列を演算することになる。
【0050】次に、バタフライ加算器30からの和の出
力とバタフライ加算器26からの差の出力を加算器40
に入力し、バタフライ加算器26からの和の出力と加算
する。そして、加算器40からの信号とバタフライ加算
器32からの和の出力をバタフライ加算器44に入力
し、バタフライ演算を行う。また、バタフライ加算器3
0からの和の信号(s[3]+s[5])を乗算器38
に入力し係数−0.171573を乗算した後加算器4
2に入力しバタフライ加算器26からの和の信号と加算
する。
【0051】そして、この加算器42からの出力とマル
チプレクサ乗算器34のs[2]+s[6]−s[4]
に係数を乗算した結果をバタフライ加算器46に入力
し、ここでバタフライ演算を行う。また、マルチプレク
サ乗算器34のs[3]−s[5]に係数を乗算した結
果とバタフライ加算器26からの差の信号をバタフライ
加算器48に入力し、バタフライ演算を行う。そして、
このバタフライ演算器48の和の出力と乗算器36の出
力をバタフライ演算器50に入力し、ここでバタフライ
演算を行う。
【0052】このような演算を式で表せば、 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 0 -0.171573 1 0 0 0 0 0 0 0 -1 0 1 1 0 -0.171573 -1 0 0 0 0 0 0 0 1 -1 1 1 -1 1 0 0 0 0 という行列を前段で得られた信号に乗算することにな
る。
【0053】そして、バタフライ演算器44の得られた
和の信号がt[1]、差の信号がt[7]、バタフライ
演算器46で得られた和の信号がt[3]、差の信号が
t[5]、バタフライ演算器50で得られた和の信号が
t[2]、差の信号がt[6]、バタフライ演算器48
で得られた差の信号がt[4]となる。また、加算器1
2の出力がそのままt[0]となる。そして、これら信
号t[0]〜t[7]がマルチプレクサレジスタ52に
入力され、t[0]〜t[7]のシリアル信号として出
力される。
【0054】このように、本実施例では1つの処理過程
中に同じ係数をかける箇所が2個存在する場合は、一つ
の半固定乗算器を時分割多重化して計算することにより
回路を小さくしている。また、DCT演算はデータの入
出力レートと整合するためには8クロックで1回の内積
演算を終了する必要があり、パイプライン構成によって
回路を構成し各処理段は8クロックを単位として次の処
理段にデータを渡すようにすればよいから、このような
時分割多重処理を行っても、データの入出力レートに支
障をきたすことはない。
【0055】そして、上述のようにして得られた結果に
対して、上述のA行列に対応するポストスケーリング用
の係数の乗算が必要である。そこで、DCTを完成する
ためには、次に下に示す行列をかける必要がある。しか
し、本実施例では、この行列は離散コサイン変換を完成
させるために必要なポストスケ−リング用の係数である
がこれをかける操作は量子化の過程に含める。すなわ
ち、マルチプレクサレジスタ52の出力は量子化器54
に入力され、ここで量子化ステップの逆数が乗算され、
量子化が行われるが、この量子化ステップの逆数の行列
に下記の行列を予め掛けておけば、乗算回数を増やさな
くても下記行列の乗算を行うことができる。 0.3535533906 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0.941979 0 0 0 0 0 0 0 0 0.847759 0 0 0 0 0 0 0 0 0.720960 0 0 0 0 0 0 0 0 0.566454 0 0 0 0 0 0 0 0 0.390181 0 0 0 0 0 0 0 0 0.198912 なお、上に示した7個の行列を順に掛け合わせると離散
コサイン変換行列になることによりこの演算により離散
コサイン変換が実行できることが確かめられる。
【0056】また本実施例における係数 0.414214 にか
かる被乗算数は、差分をとる演算と2回のバタフライ演
算を通過してくるため、最もビット精度が要求される箇
所であるが、入力をベクトル x[8] として次のように表
される。 上段の係数 このように、いずれも隣接データ間の差分をある定数倍
して加えた形をしており、このため、相関が除去され、
このデータの絶対値は統計的に小さいものしか現れなく
なる。また、本実施例中に現れる乗算のどの被乗算数
も、同様に隣接画素の差分をある定数倍して和をとった
形をしており、やはり相関除去の効果が期待できる。半
固定乗算器に入力されるデータの絶対値の1回の1次元
DCTあたりの出現頻度分布を測定したグラフが図5で
ある。このように従来の高速アルゴリズムに比べて、本
発明によれば、絶対値の小さい方に出現頻度が集中して
おり、絶対値が大きくなると出現頻度がより小さくなる
傾向がある。このため、本発明における演算回路はより
少ないビット精度でもオーバーフローせずに回路が構成
できることになる。
【0057】さらに、通常の電子カメラで撮像した画像
は、離散コサイン変換時の電力集中度が高い。すなわ
ち、空間周波数の低い領域に絶対値の大きなデータが多
く出現し、空間周波数の高い領域には絶対値の小さなデ
ータしか発生しない。これは、普通電子カメラで撮像し
た画像には空間周波数の高くかつ振幅が大きな信号が得
られないことによる。このため、このような画像に限定
すれば、本発明の有効性がより明らかになる。
【0058】例えば、白色雑音のような画像は人工的に
計算機などにより作り出すことができ、これを符号化す
るためには、低周波側も高周波側も同様に多くのビット
精度を必要とする。しかし、実際にはこのように多くの
精度を必要とすることはない。すなわち、上述のように
実際に画像として扱われる信号は高周波側に大きな振幅
の信号が発生することは無いからである。
【0059】こうした、前提にたって、回路内でどのく
らいのビット精度が必要かをシミュレートした結果を示
すと表1のようになる。ここでは、どれだけ大きな絶対
値が必要かを示すために、小数の中の整数部に必要なビ
ット数を示す(ただし符号ビットを含んでいる)。
【0060】
【表1】 第2実施例 図2に本発明の第2の実施例を示す。これは第1実施例
のデータ変換器を直列に構成し、量子化器の演算の中に
演算の一部を含めて乗算の回数を減らした2次元DCT
変換器である。
【0061】このように、回路は直流成分を求めるため
に加算器112とレジスタ114を有しており、また交
流成分の処理を行うために、隣接データ間の差分データ
を得る差分器110、この差分データについて行列Aの
演算を除いたDCT演算を行うためのマルチプレクサレ
ジスタ116、C行列演算部120、B行列演算部13
0を有している。そして、その結果が転置用メモリ14
0に記憶される。
【0062】そして、転置用メモリ140の出力は差分
器210、加算器212、レジスタ214、マルチプレ
クサレジスタ216、C行列乗算部220、B行列演算
部230、マルチプレクサレジスタ245により、前段
の処理結果を転置したものに対し、前段と同様の処理が
なされる。
【0063】画像データは8行8列のブロックとされ、
このブロックから行ごとに8個のデータが回路に入力さ
れる。加算器112とレジスタ114により直流成分の
ために総和を求める。一方、交流成分は、差分器110
で差分を求め、マルチプレクサレジスタ116、C行列
演算部120、B行列演算部130で演算を行い、その
結果が転置用メモリ140に記憶される。
【0064】転置用メモリ140は8行8列分のデータ
を記憶し、前段の行に関する回路による処理(DCT)
が終わると列を読みだして後段の列に関する回路による
処理(DCT)に供給する。これも同様の計算を行い、
結果を量子化器300に供給する。
【0065】量子化器300には量子化ステップサイズ
が量子化テーブルとして設定されるのであるが、この値
に予めポストスケーリングに用いる係数を乗算しておく
ことにより、量子化と同時にポストスケーリングができ
る。
【0066】これによって、2次元のDCTおよび量子
化を行うことができる。なお、2次元DCTの場合、行
列AおよびAT を両側から掛ける必要があり、量子化の
マトリックス(量子化ステップの逆数のマトリックス)
に行列AおよびAT を両側から掛けることにより、本実
施例の量子化器300の量子化マトリックスが得られ
る。
【0067】図3は本発明(図2)を逆変換モードで動
作させた場合の図である。逆量子化部301により、逆
量子化およびA行列相当の演算を行い、交流成分をマル
チプレクサレジスタ304を介し、B行列演算部30
6、C行列演算部308に供給し、列方向のIDCTを
行い、マルチプレクサレジスタ310を介し、加算器3
12に供給し、ここで直流分を加算する。そして、交流
成分を転置用メモリ314において、転置し、交流分を
B行列演算部316、C行列演算部318により行方向
のIDCTを行い、マルチプレクサレジスタ320を介
し加算器322に供給し、直流分と加算する。これによ
って、2次元DCTの逆変換が行える。
【0068】ここで、B行列およびC行列は対称行列で
あるため、B行列演算部、C行列演算部はDCT変換時
と同一の回路を用いることができる。従って、時分割処
理などにより回路の共用が可能である。
【0069】図4は、本発明による2次元DCT変換器
を用いた画像符号化装置を示す。このように、画像デー
タに対し、1次元DCT402において行方向のDCT
変換処理を行い、これを転置用メモリ404に供給す
る。この転置用メモリ404は1ブロック分の1次元D
CTの結果がたまると、これを1列ずつ1次元DCT4
06に供給し、ここで列方向の1次元DCTを行う。こ
れによって、2次元DCTが行われるため、これを1ブ
ロック分ずつ量子化器408に送り、ここで量子化す
る。ここでこの量子化器408には、量子化テーブル設
定手段410から量子化テーブルが供給され、これに応
じた量子化が行われるが、この実施例では、1次元DC
T402、406において、A行列の係数乗算を除いた
DCT演算が行われている。そこで、この量子化器40
8において利用する量子化テーブルはA行列による係数
が乗算されたものを利用する。これによって、量子化と
DCTの最終的な処理が一緒に完成する。
【0070】そして、この出力の内、直流係数はDPC
M符号化器412に供給され差分符号化され、ブロック
間の相関を除かれる。一方、交流係数はジグザグスキャ
ンハフマン符号化器414に送られ、ここで、交流係数
をジグザグスキャンにより1次元データとし、0の出現
による冗長度を除くためにゼロのランレングス符号化を
行いこの結果であるゼロのランとそのランを止めている
有効係数とを2次元ハフマン符号化する。そして、差分
符号化がなされた直流係数と、交流係数の符号はマルチ
プレクサ416で多重化されて、出力される。そこで、
受信側ではこの符号化に対応した復号化を行うことによ
って画像データを再生することができる。
【0071】なお、本実施例では、差分データが得られ
ているため、この差分データを処理することにより、処
理対象となっているブロックに輪郭が存在するか否かの
判定が容易に行える。従って、輪郭が含まれるブロック
に対しては符号量を多く割り当て、輪郭の劣化を防ぐ等
の処理を容易に行える。
【0072】なお、DCTを用いる変換符号化において
しばしば問題となることに、平坦な領域に輪郭がある
と、そのまわりにもやもやとした量子化ノイズが発生す
ることがある。これを避けるためには、そのブロックが
こうしたノイズを発生するかどうかをあらかじめ判定し
て、それに応じて量子化ステップの大きさを適応的に変
更するのがよい。それゆえ量子化ノイズの発生とその目
立ち具合を判定するために、画素データの差分を用い
る。
【0073】量子化誤差が問題となるのは、平坦な領域
であるから、7個の差分データのうち絶対値の小さなデ
ータが5個以上あるかどうかを判定し、さらに量子化誤
差が発生するのは、高周波数の係数が発生しやすい輪郭
部であるから絶対値の大きなデータが1個以上あるかど
うかを判定する。
【0074】この二つの条件が満たされた場合には、量
子化ノイズが問題となるから量子化テーブルをそのステ
ップサイズが小さいものに変更し、符号データに対して
もその変更を知らせる符号を添付する。
【0075】復号器においてはまず添付の符号により量
子化テーブルを選択し、それから逆量子化を行い、ID
CTを実行するようにすればよい。
【0076】
【発明の効果】以上説明したように、本発明に係る変換
器によれば、 (1)高速アルゴリズム中に現れるどのデータも入力ベ
クトルの隣接データ間の差分として表されるため、相関
を除去することができ、演算精度の少ない判固定乗算器
でDCT回路を構成することができる。 (2)離散コサイン変換器と量子化器を組合せることに
より、例えば8点の1次元DCTの乗算が12回、出現
する異なる係数の数が7個のDCT方式の符号化装置が
構成でき、回路面積の小さな符号化装置が構成できる。 (3)各演算部の入出力をマルチプレクスするだけで、
同じ回路を利用しながら逆離散コサイン変換が可能であ
る。 (4)画像と、差分と、空間周波数の3つの領域が同時
に求められるため、量子化誤差が画像領域にどのように
入るか、また差分領域にどのように影響するかが同時に
分かる。このため、これらのデータを利用して輪郭の劣
化を判定しながら適応的に符号化を進めることが容易に
なる。という効果が得られる。
【図面の簡単な説明】
【図1】本発明による好適な第1実施例を示す図であ
る。
【図2】本発明による好適な第2実施例を示す図であ
る。
【図3】図2の実施例を逆変換モードで動作させた場合
の図である。
【図4】本発明の符号化器を用いた画像符号化装置を示
す図である。
【図5】乗算器に入力されるデータの絶対値の1回の1
次元DCTあたりの出現頻度の分布を示す図である。
【符号の説明】
10 差分器 12 加算器 14 レジスタ 16 マルチプレクサレジスタ 18,20,22,34 マルチプレクサ乗算器 24,38,36 乗算器 26,28,30,44,46,48,50 バタフラ
イ加算器 40,42 加算器 52 マルチプレクサレジスタ

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 所定の複数であるN個のデータを入力と
    し、これを離散コサイン変換してN個の変換後のデータ
    を出力する離散コサイン変換器であって、 入力されたN個のデータの総和を求める総和演算手段
    と、 入力されたN個のデータにおける隣接データ間の減算か
    らN−1個の差分データを求める差分演算手段と、 求められたN−1個の差分データから離散コサイン変換
    によるN−1個の交流成分を計算する離散コサイン変換
    手段と、 を有することを特徴とする離散コサイン変換器。
  2. 【請求項2】 所定の複数であるN個のデータを入力と
    し、これを変換してN個のデータを出力するデータ変換
    手段と、その出力を量子化する量子化手段とを有する情
    報符号化器であって、 前記データ変換器は、 入力されたN個のデータの総和を求める総和演算手段
    と、 入力されたN個のデータにおける隣接データ間の減算か
    らN−1個の差分データを求める差分演算手段と、 求められたN−1個の差分データから離散コサイン変換
    によるN−1個の交流成分を計算する離散コサイン変換
    手段と、 を含み、 前記離散コサイン変換手段は、 入力されてくる2つのデータに対し、予め定められてい
    る同一の係数を時分割で乗算し、2つの乗算結果を出力
    する乗算器と、 入力されてくる2つのデータに対し、和および差を求
    め、これらを出力するバタフライ演算器と、 を含み、 前記量子化手段は、 所定の係数を量子化ステップの逆数を表す列ベクトルに
    乗算したベクトルを量子化ステップの逆数として、量子
    化を行うことを特徴とする情報符号化器。
  3. 【請求項3】 N行N列のデータを入力として、これに
    2次元データ変換を施し、さらに所定の量子化ステップ
    サイズにより量子化する情報符号化器において、該符号
    化器は、 N行N列の画素データに対して、一次元離散コサイン変
    換から1回分の係数乗算を除いた演算を行う第1の変換
    手段と、 第1変換手段の演算結果を記憶し、列と行を転置して出
    力する転置手段と、 転置して出力されたN行N列のデータに対して、一次元
    離散コサイン変換から1回分の係数乗算を除いた演算を
    行う第2の変換手段と、 第2の変換手段の出力を所定の量子化ステップで量子化
    する手段、 を含み、 第1及び第2の変換手段は、 入力されたN個のデータの総和を求める総和演算手段
    と、 入力されたN個のデータにおける隣接データ間の減算か
    らN−1個の差分データを求める差分演算手段と、 求められたN−1個の差分データから離散コサイン変換
    によるN−1個の交流成分を計算する離散コサイン変換
    手段と、 を含み、 前記離散コサイン変換手段は、 入力されてくる2つのデータに対し、予め定められてい
    る同一の係数を時分割で乗算し、2つの乗算結果を出力
    する乗算器と、 入力されてくる2つのデータに対し、和および差を求
    め、これらを出力するバタフライ演算器と、 を含み、 前記離散コサイン変換手段は、 入力されてくる2つのデータに対し、予め定められてい
    る同一の係数を時分割で乗算し、2つの乗算結果を出力
    する乗算器と、 入力されてくる2つのデータに対し、和および差を求
    め、これらを出力するバタフライ演算器と、 を含み、 前記量子化手段は、 所定の係数を対角部にもつ8行8列の係数行列を量子化
    ステップの逆数を表す行列に右から乗算し、この乗算結
    果にさらに係数行列を左から乗算して得た行列を新たな
    量子化ステップの逆数を表す行列として、量子化を行う
    ことを特徴とする情報符号化器。
JP4194387A 1992-07-22 1992-07-22 離散コサイン変換器及び情報符号化器 Pending JPH0644291A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4194387A JPH0644291A (ja) 1992-07-22 1992-07-22 離散コサイン変換器及び情報符号化器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4194387A JPH0644291A (ja) 1992-07-22 1992-07-22 離散コサイン変換器及び情報符号化器

Publications (1)

Publication Number Publication Date
JPH0644291A true JPH0644291A (ja) 1994-02-18

Family

ID=16323756

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4194387A Pending JPH0644291A (ja) 1992-07-22 1992-07-22 離散コサイン変換器及び情報符号化器

Country Status (1)

Country Link
JP (1) JPH0644291A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6796401B2 (en) 1999-12-02 2004-09-28 Timedomain Corporation Speaker apparatus equipped with means for producing complicated waveform of low frequency with higher improved fidelity
JP2007243399A (ja) * 2006-03-07 2007-09-20 Matsushita Electric Ind Co Ltd データ圧縮方式およびその関連技術
JP2008242594A (ja) * 2007-03-26 2008-10-09 Nec Electronics Corp フィルタ演算器及び動き補償装置
US8364741B2 (en) 2008-03-05 2013-01-29 Renesas Electronics Corporation Motion-compensating device with booth multiplier that reduces power consumption without increasing the circuit size
US8380769B2 (en) 2007-09-26 2013-02-19 Renesas Electronics Corporation Filter operation unit and motion-compensating device

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6796401B2 (en) 1999-12-02 2004-09-28 Timedomain Corporation Speaker apparatus equipped with means for producing complicated waveform of low frequency with higher improved fidelity
JP2007243399A (ja) * 2006-03-07 2007-09-20 Matsushita Electric Ind Co Ltd データ圧縮方式およびその関連技術
JP2008242594A (ja) * 2007-03-26 2008-10-09 Nec Electronics Corp フィルタ演算器及び動き補償装置
US8380769B2 (en) 2007-09-26 2013-02-19 Renesas Electronics Corporation Filter operation unit and motion-compensating device
US8364741B2 (en) 2008-03-05 2013-01-29 Renesas Electronics Corporation Motion-compensating device with booth multiplier that reduces power consumption without increasing the circuit size

Similar Documents

Publication Publication Date Title
Song et al. A fast algorithm for DCT-domain inverse motion compensation based on shared information in a macroblock
Shams et al. NEDA: A low-power high-performance DCT architecture
US7117236B2 (en) Parallel adder-based DCT/IDCT design using cyclic convolution
JP2945487B2 (ja) 行列乗算器
CN101796506B (zh) 具有比例缩放式和非比例缩放式接口的变换设计
KR100311251B1 (ko) 2차원이산코사인변환장치,2차원역이산코사인변환장치및디지탈신호처리장치
US6317767B2 (en) Methods and systems for performing short integer chen IDCT algorithm with fused multiply/add
JPH06103301A (ja) 8x8離散コサイン変換回路および8x8離散コサイン逆変換回路
Kim et al. Fixed-point error analysis and word length optimization of 8/spl times/8 IDCT architectures
US7263544B2 (en) Performance optimized approach for efficient numerical computations
JPH09212484A (ja) 離散コサイン変換方法
JPH0644291A (ja) 離散コサイン変換器及び情報符号化器
US5555321A (en) Image data binary coding method and apparatus
Walmsley et al. A fast picture compression technique
JPH05181896A (ja) 離散コサイン変換処理装置
JP3971135B2 (ja) Dct行列分解方法及びdct装置
JP2006227666A (ja) 行列演算装置
US5999958A (en) Device for computing discrete cosine transform and inverse discrete cosine transform
JP3652717B2 (ja) 離散コサイン高速演算器
JP3214831B2 (ja) データ処理装置
JP2507654B2 (ja) 画像デ―タ直交変換処理装置のマトリクス演算回路
JP3697716B2 (ja) 行列データ乗算装置
KR100254393B1 (ko) 가중 계수처리 가능한 이산 코사인 변환 코어 구조
KR100350943B1 (ko) 분포연산방식을 이용한 고속 dct 연산회로
JPH10308672A (ja) 復号演算方法及び復号演算器