JP2666411B2 - 二次元離散データ直交変換用集積回路装置 - Google Patents

二次元離散データ直交変換用集積回路装置

Info

Publication number
JP2666411B2
JP2666411B2 JP63251073A JP25107388A JP2666411B2 JP 2666411 B2 JP2666411 B2 JP 2666411B2 JP 63251073 A JP63251073 A JP 63251073A JP 25107388 A JP25107388 A JP 25107388A JP 2666411 B2 JP2666411 B2 JP 2666411B2
Authority
JP
Japan
Prior art keywords
storage
block
data
matrix
storage block
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP63251073A
Other languages
English (en)
Other versions
JPH0298790A (ja
Inventor
雅夫 中屋
秀樹 安藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP63251073A priority Critical patent/JP2666411B2/ja
Priority to US07/390,997 priority patent/US4933892A/en
Publication of JPH0298790A publication Critical patent/JPH0298790A/ja
Application granted granted Critical
Publication of JP2666411B2 publication Critical patent/JP2666411B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/14Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
    • G06F17/147Discrete orthonormal transforms, e.g. discrete cosine transform, discrete sine transform, and variations therefrom, e.g. modified discrete cosine transform, integer transforms approximating the discrete cosine transform

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Theoretical Computer Science (AREA)
  • Discrete Mathematics (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)
  • Image Processing (AREA)

Description

【発明の詳細な説明】 [産業上の利用分野] この発明は、画像データ等の二次元離散データを直交
変換するための回路装置に関し、特に、正方格子状に配
列された離散データの直交変換を高速で行なうことので
きるコンパクトな構成の直交変換装置に関する。
[従来の技術] 画像データなどの二次元離散データをフィルタ処理す
る手法に、フーリエ変換、アダマール変換等の直交変換
がある。離散型フーリエ変換(DFT)は、 但し、Ω1=2π/MxO,W1=exp(−2πj/M)、 2=2π/Ny0,W2=exp(−2πj/N) x0は二次元標本化のx方向の標本化間隔、 y0は二次元標本化のy方向の標本化間隔、 で与えられる。この離散型フーリエ変換を行列式で表わ
すと、 [G]=[W1][g][W2] で与えられる。二次元データアレイ[g]がp×pの正
方格子の場合、上式においてW1=W2、M=Nとなり、こ
の場合フーリエ変換行列Wは対称行列となるため、DFT
[G]は [G]=[W][g][W]=[W][g][W] となる。
また同様に、アダマール変換は、 Y=HnXHn・1/n で与えられる。
ここで、Hnはn次のナチュラルアダマール行列、 Xはn×nの二次元離散データアレイ である。
このような二次元離散データアレイの直交変換操作に
対してはFFT(高速フーリエ変換)やHFT(高速アダマー
ル)が従来より用いられている。
[発明が解決しようとする課題] 上述のように従来の二次元データアレイの直交変換を
行なうためには、行列の乗算を2回行なう必要がある。
この正方行列の乗算は従来のコンピュータを用いてソフ
トウェアに従って行なわれていた。しかしながら、ソフ
トウェアでは正方行列の乗算を行なう場合、メモリまた
はレジスタからのデータの読出し、読出したデータの乗
算および加算、演算結果のメモリまたはレジスタへの格
納というステップが必然的に必要とされるため、演算時
間が長くなり、高速処理を行なうことができないという
問題がある。これは、FFTやFHTなどの高速変換アルゴリ
ズムに従った場合においても、加減算の回数がnlog2n回
少なくとも必要とされるため、従来の高速変換アルゴリ
ズムに従ったソフトウェア処理においても、行列の演算
に長時間を要し、画像データなどのリアルタイム処理を
行なうことができないという問題がある。
一方において、スカラ演算器等を用いてハードウェア
的にディスクリートな行列演算器を構成した場合、各演
算器間を接続する配線数が行列の要素数に応じて増大す
るとともに、装置構成が大規模となりまた複雑化する。
この度合は離散データアレイの行および列数が増大する
に従って指数関数的に増大する。さらに、データ(行列
要素)入力回路から演算結果(乗算結果)出力回路まで
の配線長が長くなり、信号伝搬遅延が生じこのため高速
で行列の乗算を行なうことができなくなるという問題が
発生する。
また特開昭56−14371号において二次元離散フーリエ
変換計算装置が提案されているものの、この計算装置に
おいては、行列乗算を多項式に展開し、この多項式に従
って変換要素の各々を計算する手法が行なわれている。
このため、装置構成が複雑かつ大規模となるとともに、
計算回数も数多く必要とされるため、高速演算を行なう
ことは困難である。
したがって、ハードウェア構成により高速で二次元離
散データアレイの直交変換を行なうことのできる装置の
実現が、画像データをリアルタイムで処理する必要があ
る画像処理の分野などにおいて強く望まれていた。
この発明は、このような技術背景に鑑みてなされたも
のであり、二次元離散データからなる正方行列の直交変
換を高速で行なうことができるコンパクトな構成の二次
元離散データ直交変換装置を提供することを目的とす
る。
[課題を解決するための手段] この発明による直交変換装置は、n×nの正方行列状
に配列されたデータを1対1対応で記憶する複数の記憶
素子からなる第2の記憶手段と、直交変換を行なうため
の予め定められたn×nの係数行列の各要素を1対1対
応で記憶する複数の記憶素子からなる第1の記憶手段
と、上記第2の記憶手段に記憶されたデータ行列と上記
第1の記憶手段に記憶された係数行列の乗算結果を記憶
する複数の記憶素子からなる第3の記憶手段と、上記第
1の記憶手段に含まれる記憶素子のうち上記係数行列の
i行k列(1≦i≦n,1≦k≦n)の要素を記憶する記
憶素子の位置情報、上記第2の記憶手段に含まれる記憶
素子のうち上記配列データ行列のk行l列(1≦k≦n,
1≦l≦n)の要素を記憶する記憶素子の位置情報およ
び上記第3の記憶手段に含まれる記憶素子のうち乗算結
果により得られた行列のi行l列の要素を格納すべき記
憶素子の位置情報を発生するポインタ手段と、上記ポイ
ンタ手段から発生された位置情報に基づいて、上記第1
および第2の記憶手段内の指定された記憶素子情報を読
出して乗算する手段と、上記第3の記憶手段内の上記ポ
インタ手段により指定された記憶素子情報を読出し、上
記乗算結果と上記読出したデータとを加算するとともに
この加算結果を上記読出したデータを記憶している元の
記憶素子へ書込む手段と、上記乗算結果のデータを1対
1態様で上記第2の記憶手段の各記憶素子へ書込むよう
に、上記第3の記憶手段に記憶されている乗算結果デー
タをすべて同時に上記第2の記憶手段へ転送する手段と
を備える。第1の記憶手段の記憶内容と上記第2の記憶
手段の記憶情報との乗算結果はn×nの正方行列を与
え、上記第3の記憶手段の各記憶素子は、この乗算結果
を1対1態様で格納する。
[作用] この発明における二次元離散データアレイの直交変換
は、 [G]=[A][g][A] …(1) という行列乗算をすることにより求められる。ここで、
[g]は二次元のn×n正方行列状に配列されたデータ
であり、[A]は直交変換用正方行列である。
上式(1)より、直交変換を行なうためには、 [G]=[B][A] …(2) [B]=[A][g] …(3) と変型することができ、二次元離散データアレイ[g]
を直交変換を行なうためには、行列乗算を2回行なうだ
けでよい。したがって、上式(3)を計算するために、
第2の記憶手段はn×nの二次元離散データ行列[g]
を格納し、第1の記憶手段は直交変換用のn×nの係数
行列[A]を記憶する。ポインタ手段は、第2の記憶手
段に記憶された行列[g]の行列要素と第1の記憶手段
に記憶された係数行列[A]の乗算されるべき記憶素子
位置情報を発生する。乗算および書込手段は、このポイ
ンタ手段出力に応答して行列の各要素の乗算および加算
を行なった後第3の記憶手段に乗算の結果得られたn×
nの正方行列[B]を記憶させる。第3の記憶手段に記
憶された行列[B]の各要素は第2の記憶手段へ同時に
並行して転送される。したがって、行列の[A][g]
の乗算を行なった後、第3の記憶手段に格納された行列
[B]が再び第2の記憶手段へ転送され、上式2)の乗
算が行なわれる。
[発明の実施例] 第1図はこの発明の一実施例である正方行列直交変換
器の全体の概略構成を示す図であり、直交変換用正方行
列Aを用いて正方行列Bの直交変換、すなわち[G]=
[A][B][A]を行なうための構成を一例として示
す図である。
第1図を参照して、この発明に従う二次元離散データ
直交変換器は、第1の記憶ブロック1と、第2の記憶ブ
ロック2と、第1および第2の記憶ブロック1,2におけ
るアクセスされるべき記憶素子位置情報を発生するとと
もに第3の記憶ブロック6におけるアクセスされるべき
記憶素子の位置情報を発生するポインタブロック3と、
第1および第2の記憶ブロック1,2から読出された情報
を掛算する乗算器ブロック4と、乗算器ブロック4出力
と第3の記憶ブロック6のうちポインタブロック3によ
り指定された記憶素子の内容との加算を行なう加算器ブ
ロック5と、加算器ブロック5出力を記憶する第3の記
憶ブロック6と、各機能ブロック1〜6における動作を
制御するためのタイミング制御信号を発生する制御信号
発生ブロック7とから構成される。
第1の記憶ブロック1は、たとえば4行4列の正方行
列Aの各要素を1対1対応に記憶する。正方行列Aは、
直交行列でありかつ対称行列である。すなわち、正方行
列Aは直交変換用の正方行列であり、各係数データは、
予め適用される分野に従って定められる。
第2の記憶ブロック2は、第2のたとえば4行4列の
正方行列の各要素を記憶する。正方行列Bは、直交変換
されるべき二次元に配列されたデータから構成される。
ポインタブロック3は、第1および第2の正方行列A,
Bのうち乗算されるべき要素を格納している記憶素子位
置情報を発生するとともに、この乗算結果が格納される
べき第3の記憶ブロック6における記憶素子位置情報を
発生する。
乗算器ブロック4は、第1の正方行列(以下、係数行
列と称する)Aと第2の正方行列(以下、データ行列と
以下称す)Bのうち選択された要素の乗算を行ない、加
算器ブロック5へ与える。
加算器ブロック5は、乗算器ブロック4で乗算された
結果とポインタブロック3で選択された第3の記憶ブロ
ックにおける記憶素子からの情報とを加算し、この加算
結果を元の記憶素子へ格納する。第3の記憶ブロック6
は、係数行列Aとデータ行列Bの乗算結果を各行列要素
対応に格納する。第3の記憶ブロック6の内容は、1回
目の行列乗算完了時には、第2の記憶ブロック2へ同時
に転送される。
制御信号発生回路7は、クロック信号CLKをカウント
し、カウント値が4,8,12および16に達するごとにパルス
信号を発生する16進カウンタ71と、16進カウンタ71から
の4カウント出力、8カウント出力および12カウント出
力を受ける3入力ORゲート72と、ORゲート72出力を反転
するインバータ73と、クロック信号CLKとインバータ73
出力とを受けるANDゲート74と、ORゲート72出力とクロ
ック信号CLKとを受けるANDゲート75とを含む。
ANDゲート74出力は第1の記憶ブロック1におけるシ
フト動作(格納している行列要素のシフト)タイミング
信号を与える。ANDゲート75出力は、第2の記憶ブロッ
ク2における、格納されている行列要素のシフトを行な
うための動作タイミング信号を与える。また、クロック
信号CLKはカウンタブロック3におけるシフト動作タイ
ミングを与えるとともに、第3の記憶ブロック6におけ
るデータの読出しおよび書込み動作タイミング信号を与
える。16進カウンタ71からの15カウント出力φは、第3
の記憶ブロック6から第2の記憶ブロック2へのデータ
転送タイミングを与える。また、構成によってはORゲー
ト72へカウンタ71の16カウント出力も与えられる。
16進カウンタ71はリセット信号RESETに応答してリセ
ットされる。このリセット信号RESETは、また第1の記
憶ブロック1および第2の記憶ブロック2におけるデー
タの更新および巡回動作を選択するための選択信号SELE
CTを形成するために用いられる。さらに、このリセット
信号RESETはポインタブロック3および第3の記憶ブロ
ック6における記憶内容のリセットをするための信号と
しても用いられる。
第1の記憶ブロックおよび第2の記憶ブロック2にお
ける行列要素のシフト方向を選択するために、フリップ
フロップ8、マルチプレクサ9a,9bおよびデコーダ10が
設けられる。フリップフロップ8は、16進カウンタ71か
らの16カウント出力に応答してそのラッチ状態が反転
し、、かつリセット信号RESETに応答してリセットされ
る。
マルチプレクサ9aは、フリップフロップ8出力に応答
して、ANDゲート74出力を第1の記憶ブロック1の行方
向シフト用信号または列方向巡回シフト信号のいずれか
として発生する。マルチプレクサ9aの出力の切換えはフ
リップフロップ8出力に応答して行なわれる。
マルチプレクサ9bは、ANDゲート75出力を第2の記憶
ブロック2における行方向シフト用信号または列方向シ
フト用信号のいずれかとして出力する。マルチプレクサ
9bにおけるシフト信号の切換えは、フリップフロップ8
出力に応答して行なわれる。
デコーダ10は、16進カウンタ71からの16カウント出力
とリセット信号RESETをデコードし、第1の記憶ブロッ
ク1および第2の記憶ブロック2それぞれにおいて行方
向巡回または列方向巡回のいずれかを可能にする。次に
各ブロックの詳細な構成について順次説明する。
まず、第2図を参照して第1の記憶ブロックの構成に
ついて説明する。第1の記憶ブロック1は、行および列
方向に配列された4行4列の正方行列状に配列されたレ
ジストA11〜A44を備える。各レジスタAij(i=1〜4,j
=1〜4)は、行方向および行方向にシフト動作可能で
ある。第1列のレジストA11〜A41の入力部にはセレクト
信号SELECT Cに応答して書込データまたは内部巡回デー
タのいずれかを選択的に通過させるマルチプレクサ12が
設けられる。同様に、レジスタ行列の第1行に位置する
レジスタA11〜A14の各々には、セレクト信号SELECT Rに
応答して、外部からの書込データまたは内部巡回データ
のいずれかを選択的に通過させるマルチプレクサ12が設
けられる。
レジスタ行列の行方向へのシフト動作はマルチプレク
サ9aから与えられるシフト信号SHIFT Rに応答して行な
われる。列方向へのシフトタイミングはマルチプレクサ
9aからのシフト信号SHIFT Cにより与えられる。
マルチプレクサ12は、セレクト信号SELECT C,SELECT
Rが活性状態の場合には、外部からのデータを通過さ
せ、一方、不活性状態の場合には行列内を巡回する巡回
データを選択的に通過させる。
各レジスタAijの出力はポインタブロック3へ伝達さ
れる。第1の記憶ブロック1へ与えられるシフト信号SH
IFT C(R)はインバータ73出力とクロック信号CLKとの
ANDをとることにより与えられるため、クロック信号CLK
の立ち上がりエッチごとに各レジスタの内容が行または
列方向へ1ビットずつシフトするとともに、第4番目の
クロック時にはシフト動作は生じないようされている。
第3図を参照して第2の記憶ブロック2の構成につい
て説明する。第2の記憶ブロック2は、4行4列の正方
行列状に配列されたレジスタB11〜B44を含む。各レジス
タBijは行方向および列方向にシフト動作可能である。
第1列目のレジスタB11〜B41の入力部には、外部から
のデータ、同一行から巡回されてくる内部データ、およ
び第3の記憶ブロックからのデータCijのいずれかを選
択的に通過させる3入力マルチプレクサ13が設けられ
る。第1行のシフトレジスタB11〜B14の入力部には外部
からのデータの同一列からの巡回データのいずれかを選
択的に通過させる2入力マルチプレクサ12が設けられ
る。同様、第2列ないし第4列の各レジスタの入力部に
は、前段のレジスタ出力と第3の記憶ブロックからのデ
ータCijのいずれかを選択的に通過させる2入力マルチ
プレクサ12′が設けられる。各レジスタB11〜B44のシフ
トタイミングはマルチプレクサ9bより与えられるシフト
信号SHIFT RまたはSHIFT C′により与えられる。シフト
信号SHIFT Rは行方向のシフト動作を与え、シフト信号S
HIFT C′は列方向のシフト動作を与える。
各レジスタBij出力はポインタブロック3へ伝達され
る。
各行に設けられたマルチプレクサ12′,13はその切換
えがセレクト信号SELECT C′により与えられる。各列の
入力部に設けられたマルチプレクサ12はその切換動作が
セレクト信号SELECT Rにより与えられる。
第2の記憶ブロック2へ与えられるシフト信号SHIFT
C(R)は、ORゲート72出力とクロック信号CLKとのAND
をとって与えられている。したがって、クロックのカウ
ント数が4,8および12ごとにクロック信号CLKの立上がり
に同期してその記憶内容が行方向または列方向のいずれ
かへ1ビットシフトする。
上述のように第1および第2の記憶ブロック1,2は同
一構成を有している。しかしながら、その記憶内容のシ
フト動作を与えるシフト信号に関しては、第1の記憶ブ
ロック1に行方向のシフト動作を与えるシフト信号SHIF
T Rが入力される場合、第2の記憶ブロック2へは列方
向のシフト動作を与えるシフト信号SHIFT Cが与えられ
る。また第1の記憶ブロック1にシフト信号SHIFT Cが
入力される場合、第2の記憶ブロック2にはシフト信号
SHIFT Rが入力される。この切換えはマルチプレクサ9a,
9b(第1図参照)により行なわれる。第1の記憶ブロッ
ク1および第2の記憶ブロック2に含まれる記憶素子を
構成する、行方向および列方向にシフト動作可能なレジ
スタAijおよびBijの構成を第4図に示す。第4図に示さ
れるように、行方向および列方向にシフト動作可能なレ
ジスタAij(Bij)は、行方向および列方向に配列された
シフトレジスタから構成される。行方向のシフト動作
は、インバータI1,I2とトランスファゲートT1,T2からな
るシフトレジスタにより行なわれる。列方向におけるシ
フト動作は、インバータI3,I4とトランスファゲートT3,
T4により行なわれる。
トランスファゲートT1,T2はそれぞれ行方向のシフト
クロックφR1R2をそれぞれそのゲートに受ける。ク
ロックφR1R2は互いに重なり合わない2相のクロッ
ク信号である。このクロック信号φR1R2はシフト信
号SHIFT Rより形成される。
列方向の動作タイミングはトランスファゲートトラン
ジスタT3およびT4のゲートへ与えられるクロック信号φ
C1C2により与えられる。クロック信号φC1C2は互
いに重なり合わない2相のクロック信号であり、シフト
信号SHIFT Cより形成される。ノードNが出力端子を形
成する。
第5図は2入力マルチプレクサ12の構成の一例を示す
図である。この第5図に示される2入力マルチプレクサ
の構成においては、セレクト信号SELECTがインバータバ
ッファ15により形成される。インバータバッファ15はリ
セット信号RESETを受けて、リセット信号RESETおよびそ
の反転信号▲▼を出力する。マルチプレクサ
12は、リセット信号RESETに応答して外部から与えられ
る書込みデータを通過させるトランスファゲートトラン
ジスタT5と、反転リセット信号▲▼に応答し
て同一行または同一列から巡回してきたデータを通過さ
せるトランスファゲートトランジスタT6とから構成され
る。
第5図に示す構成においては、セレクト信号SELECT C
とSELECT Rとは同時に第1および第2の記憶ブロックに
与えられる構成となっている。しかしながらこのように
構成しても、第1の記憶ブロックおよび第2の記憶ブロ
ックの各々は、行方向および列方方向のいずれか一方向
においてのみシフト動作を行なっているため、行方向と
列方向の巡回データが衝突することはない。
第6図は第2の記憶ブロック2に含まれる3入力マル
チプレクサの構成の一例を示す図である。第6図を参照
して、セレクト信号SELECT C′は3種類の信号を含む。
セレクト信号SELECT C′は、インバータバッファ16,17
とANDゲートAND1,AND2およびAND3から発生される。イン
バータバッファ16は、リセット信号RESETを受け、互い
に相補な2つの信号R,を発生する。インバータバッフ
ァ17は、転送指示信号(16進カウンタ71からの15カウン
ト出力)を受けて、互いに相補的な信号φ,を出力す
る。ANDゲートAND1は、転送信号φとリセット信号の反
転信号とを受ける。ANDゲートAND2は、反転リセット
信号と反転転送信号とを受ける。ANDゲートAND3
は、リセット信号Rと反転転送信号とを受ける。
3入力マルチプレクサ13は、ANDゲートAND3出力に応
答して外部からの書込みデータを通過させるトランスフ
ァゲートトランジスタT7と、ANDゲートAND2に応答し
て、同一行からの巡回データを選択的に通過させるトラ
ンスファゲートトランジスタT8と、ANDゲートAND1から
の信号に応答して、第3の記憶ブロックから転送されて
きた乗算結果データを選択的に通過させるトランスファ
ゲートトランジスタT9とを備える。したがって、マルチ
プレクサ13は、リセット状態時においては、トランスフ
ァゲートトランジスタT7を介して外部からの書込みデー
タを順次レジスタへ転送する。シフト動作時において
は、トランスファゲートトランジスタT8を介してデータ
の巡回シフト動作が行なわれる。データの第3の記憶ブ
ロックからの転送時には、トランスファトランジスタT9
を介してデータの書込みが行なわれる。
第2の記憶ブロック2の各行に設けられた2入力マル
チプレクサ12′はたとえば第7図に示されるような構成
を有し、デコーダ10出力により動作制御される。第7図
を参照して、2入力マルチプレクサ12′を制御するため
のデコーダ10の部分は、リセット信号Rと転送信号φの
反転信号を受けるORゲートOR1と、ORゲートOR1出力と転
送信号φの反転信号とを受けるORゲートOR2から構成さ
れる。2入力マルチプレクサ12′は、ORゲートOR2出力
をそのゲートに受け、前段のレジスタBi,j出力を選択的
に次段のレジスタBi,j+1へ伝送するトランスファゲー
トトランジスタT10と、転送信号φに応答して第3の記
憶ブロックからの乗算結果データCi,j+1を選択的に通
過させてレジスタBi,j+1へ伝達するトランスファゲー
トT11とから構成される。
転送信号φが発生されるときは、リセット信号Rは
“L"レベルにある。したがって、データをレジスタ間で
転送する場合には、トランスファゲートトランジスタT1
0がオン状態となり、一方転送信号φが立上がったとき
には、トランスファゲートトランジスタT11がオン状態
となる。
上述の構成においてはセレクト信号SELECT C′は合計
5種類の信号から構成される。上述のデコーダ10からの
制御信号(セレクト信号)の発生方向は単なる一例であ
り他の回路構成を用いてももちろん実現可能である。
第1の記憶ブロックおよび第2の記憶ブロック2にお
ける記憶データのシフト方向は、一方の記憶ブロックに
おいて行方向にシフト動作が行なわれいる場合、他方の
記憶ブロックにおいては列方向にシフト動作が行なわれ
る。この構成は、たとえば第8図に示すようなマルチプ
レクサ9の出力をフリップフロップ8出力に応じて切換
える構成とし、かつ第1の記憶ブロックのためのマルチ
プレクサ9aと第2の記憶ブロック2に対するマルチプレ
クサ9bにおける切換動作を互いに逆となるように構成す
ればよい。これは、各マルチプレクサ9a,9bに対しフリ
ップフロップ8出力を相補的になるように与えれば実現
することができる。
なお、上述の構成においては、第3の記憶ブロックか
ら第2の記憶ブロック2へのデータの転送が1クロック
内で行なわれるとしている。しかしながら、より確実に
データ転送を行なうためには、カウンタ71からのカウン
ト出力に応答して所定期間の時間幅を有するパルスを発
生するパルス発生器から転送信号φを導出する構成とし
てもよい。すなわち、第9図に示すように、カウンタ71
からの16カウント目の出力に応答して所定の時間幅を有
するパルスを発生するパルス発生器(たとえばワンショ
ットマルチバイブレータ)75を設ける構成とすればよ
い。この場合、転送信号φをANDゲート76の偽入力へ与
え、ANDゲート76の真入力にクロック信号CLKを与え、こ
のANDゲート76出力をカウンタ71のクロック入力へ与え
る構成とすればよい。この構成により、転送信号φ発生
時には、カウンタ71へはクロック信号CLKは与えられ
ず、より確実にデータの転送を行なうことができる。
第10図はポインタブロックの具体的構成を示す図であ
り、各行に対応して4つのサブブロックP1〜P4が設けら
れる。サブブロックP1〜P4は同一構成を有する。第1行
に対応するカウンタサブブロックP1は、行方向に巡回シ
フト可能な4ビットのシフトレジスタP11〜P14から構成
される。このサブブロックP1におけるレジスタP1iは、
第1の記憶ブロック1における第1行のレジスタA1iの
うちどのレジスタ出力を選択して乗算器クロックへ送出
するかを選択し、かつ第2の記憶ブロック2の第1行の
どのレジスタ出力を選択して乗算器ブロック4へ伝送す
るかを選択するとともに、第3の記憶ブロック6に含ま
れるレジスタ出力のうちどのレジスタ出力を選択して加
算器ブロックへ伝達するかを決定する。
第1行のサブブロックP1において、各ポインタレジス
タP1iの出力はスイッチングトランジスタSW1iのゲート
に接続されるため、選択されるSW1iは第1の記憶ブロッ
クからのレジスタA1i出力と第2の記憶ブロックのレジ
スタB1i出力を受ける。第1の記憶ブロックのレジスタA
1iおよび第2の記憶ブロックの1行目のレジスタB1i
(i=1〜4)が対をなして選択され、乗算器ブロック
4へそこで乗算されるべきデータa1、b1として伝達され
る。この構成においては、各記憶ブロック1,2における
同一行および同一列に位置するレジスタ出力が乗算器ブ
ロックへ伝達される構成されるとなる。各ポインタレジ
スタはリセット信号RESETによりリセットされ、かつシ
フト信号SHIFTに応答してその記憶内容が1ビットずつ
行方向にシフトされる。ポインタサブブロックP1へ与え
られるシフト信号SHIFTは、制御信号発生回路7からの
クロック信号であり、したがって各クロック信号CLKの
立上がりごとにポインタレジスタP1iの内容が1ビット
ずつ行方向にシフトされる。他のサブブロックP2〜P4の
構成も同一である。すなわち、サブブロックP2からは、
第1および第2の記憶ブロック1,2の第2行目のレジス
タA2i,B2i(i=1〜4)が対をなして選択されてその
内容がスイッチSW21〜SW24を介して乗算器ブロック4へ
伝達される。第3のサブブロックP3においては、第1の
記憶ブロック1の第3行目のレジスタA3i,第2の記憶ブ
ロックの第3行目のレジスタB3iが対なして選択され、
そのレジスタ内容がスイッチSW31〜SW34を介して乗算器
ブロック4へ与えられる。第4のサブブロックP4は、第
1の記憶ブロック1および第2の記憶ブロック2の第4
行目のレジスタA41,B4iを選択して、その出力を乗算器
ブロック4へ与える。サブブロックP2〜P4からのポイン
タ出力は、第1のサブブロックP1と同様に、第3の記憶
ブロック6へも与えられる。各ブロックにおけるリセッ
ト信号およびシフト信号が与えられるタイミングは、第
1のサブブロックP1と同様であり、同様のシフト動作お
よびリセット動作を行なう。
また、上述のポインタの構成において、各ポインタレ
ジスタPijの内容はシフト信号SHIFTに応答して1ビット
ずつ行方向にシフトされるが、リセット信号RESETに応
答して各レジスタPijが次のようにセットされる。
Pij=1、i=j =0 i≠j すなわち、ポインタブロックのリセット時において
は、4行4列のレジスタ構成において、対角線要素に対
応するレジスタPiiのみが“1"にセットされる。
第11図を参照して乗算器ブロックは、各行対応に設け
られた乗算器MPY1〜MPY4から構成される。乗算器MPY1は
ポインタブロック3(サブブロックP1)で選択された第
1行のデータa1とb1との乗算を行なう。この乗算結果m1
は加算器ブロック5へ出力される。乗算器MPY2は同様に
ポインタブロック(正確にはサブブロックP2)で選択さ
れた第2行の要素a2、b2を受け、乗算を行ない、その乗
算結果m2(=a2・b2)を加算器ブロック5へ出力する。
同様に、乗算器MPY3は、ポインタブロック(サブブロッ
クP3で)で選択された第3行の行列要素a3、b3の積をと
り、その乗算結果m3を加算器ブロック5へ与え、乗算器
MPY4はポインタサブブロックP4で選択された行列要素a4
とb4出力とを受けて乗算し、この乗算結果m4を加算器ブ
ロック5へ伝達する。
第12図をを参照して、加算器ブロック5は、各行対応
に設けられた加算器ADD1〜ADD4から構成される。加算器
ADD1は、乗算器MPY1出力m1と第3の記憶ブロック6のポ
インタ(サブブロックP1)により選択された第1行のレ
ジスタ出力C1−out出力とを受けて加算し、この加算結
果C1−inを再び元の第3の記憶ブロック6の記憶素子へ
格納する。加算器ADD2は、乗算器MPY2の出力m2と第3の
記憶ブロック6の第2行の要素のうちポインタ(サブブ
ロックP2)により選択された出力c2−outとを加算し、
この加算結果C2−inを再び元の記憶素子へ格納する。加
算器ADD3は、乗算器MPU3の出力m3と第3の記憶ブロック
6の第3行の要素のうちポインタ(サブブロックP3)に
より選択されたレジスタ出力C3−out出力とを加算し、
この加算結果C3−inを再び選択された元の記憶素子へ書
込む。加算器ADD4は、乗算器MPY4の出力m4と第3の記憶
ブロック6の第4行の記憶素子出力のうちポインタ(サ
ブブロックP4)により選択された出力C4−out出力との
加算を行ない、この加算結果C4−inを再び第3の記憶ブ
ロック6の第4行の元の記憶素子へ格納する。
第13図を参照して、第3の記憶ブロック6の構成につ
いて説明する。第3の記憶ブロック6は、各行対応に設
けられたブロックC1〜C4から構成される。各ブロックC1
〜C4はそれぞれ同一の構成を有し、各ブロックは4つの
レジスタCijを有する。各レジスタCijの入出力部には、
ポインタブロック3からのポインタPij出力に応答して
オン状態となり、対応のレジスタCijの入力部を加算器
ブロック5の対応する加算器出力に結合するとともに、
レジスタCiの出力部を対応する加算器の入力部に結合す
るトランジスタスイッチTSijが設けられる。
各レジスタCijは、クロック信号CLKの立上がりに応答
してその内容を出力し、クロック信号CLKの立下がりに
応答して、与えられたデータを書込む。また各レジスタ
Cijは、リセット信号RESETの“H"レベルへの移行に応答
してリセットされ、各レジスタCijの内容がクリアされ
る。この構成において、各ブロックC1〜C4の各々はそれ
ぞれ対応する加算器ADD1〜ADD4とデータの授受を行な
う。
さらに、各ブロックC1〜C4に含まれるレジスタCijの
出力部には、転送信号φに応答してオン状態となり、第
2の記憶ブロックに含まれるレジスタBijへレジスタCij
内容を転送するトランジスタスイッチTR11〜TR44が設け
られる。これにより、1回目の乗算終了後、信号φに応
答して第3の記憶ブロックに記憶されている行列の乗算
結果が第2の記憶ブロックへすべて同時に並行して転送
される。
第2回目の行列の乗算時においては、第1の記憶ブロ
ックおよび第2の記憶ブロック2におけるシフトレジス
タシフト方向がそれぞれ入替えられる。すなわち、第1
回目の乗算時において第1の記憶ブロック1が行方向へ
シフト動作を行なった場合、第2の記憶ブロックは列方
向へのシフト動作を行ない、第2回目の行列乗算時にお
いては、第1の記憶ブロック1が列方向へのシフト動作
を行ない、第2の記憶ブロックが行方向へのシフト動作
を行なう。
第14図は、第2図ないし第13図に示される各ブロック
の接続構成を或る行に関して示した例である。第14図か
ら見られるように、第1の記憶ブロック1、第2の記憶
ブロック2はその記憶素子であるレジスタが行列状に配
列され、応じてポインタブロック3のポインタレジスタ
および第3の記憶ブロックの記憶レジスタCijが行列状
に配列されている。したがって、各ブロックにおける各
要素の結合性は極めて強い方向性を持っている。
したがって、この直交変換装置を構成する各ブロック
を同一半導体基板上に垂直方向にたとえばSOI技法によ
り積層して構成した場合、各要素間の垂直方向の対応が
容易に求めることができ、各回路ブロックを接続する配
線長を最短距離とすることができ、かつさらに積層構造
とすることにより高密度でコンパクトな直交変換装置を
実現することができる。
次に第2図ないし第14図を参照して、この発明の一実
施例である二次元離散データの直交変換装置の動作につ
いて説明する。ここで、第15図に動作波形図を示し、第
16A,第16B図に第1の記憶ブロックおよび第2の記憶ブ
ロックにおけるレジスタAijおよびBijの内容のシフト動
作を具体的に示し、以下の説明において第15図および第
16A,16B図も同様に参照される。
(1) 初期設定 まず、リセット信号RESETを“H"レベルに立上げる。
これによりマルチプレクサ12,13および12′はそれぞれ
新しく外部から与えられるデータを通過させることがで
きる状態となる。このとき、第1の記憶ブロックおよび
第2の記憶ブロックにおいていずれの方向からデータを
書込むかはこの変換装置に接続されるデータ書込装置等
との接続関係により適当に決められる。次に、計算すべ
き行列A,B、すなわち係数行例Aおよびデータ行列Bの
要素に対応するデータa1〜a4、データb1〜b4の値を設定
し、クロック信号CLKに応答して第1の記憶ブロック
1、第2の記憶ブロック2の各レジスタAijおよびBijに
行列A,Bの対応する要素の値をセットする。このときデ
ータ書込時におけるシフトクロックは、第1図の構成に
おいては与えられてはいないが、たとえばマルチプレク
サを用いてクロック信号CLKをシフトクロックSHIFT R
(C)と切換えて与えることにより初期データ(計算さ
れるべきデータおよび係数)の書込みが行なわれる。こ
の初期状態の設定は、第16Aにおける初期値の状態で示
される。ここで第16A図において、点線より上の図は、
第2の記憶ブロックにおけるレジスタ内容の転送シフト
動作を示し、点線より下の図は、第1の記憶ブロックに
おけるレジスタの内容のシフト動作を示す。このとき係
数行列Aは一定でありデータアレイのみを書込む構成と
してもよい。
今、リセット信号RESETは“H"レベルにあり、第3の
記憶ブロック6におけるレジスタCijおよび16進カウン
タ71はすべてクリアされており、この記憶内容およびカ
ウンタ値は0である。これと同時に、ポインタブロック
3に含まれるポインタレジスタPijは、その対角線要素
のみが、すなわちPiiのみが“H"レベルを出力するよう
にリセットされる。したがって、初期設定状態において
は、第16A図において初期値として示される状態が各レ
ジスタAij,Bijにセットされている。また、ポインタレ
ジスタPijがリセット信号RESETによりリセットされてい
るため、第16A図において数字の下にアンダラインを引
いて示されている部分の出力が選択される状態となって
いる。ここでまた、第16A図において、4行4列の構成
のうちi行j例の位置は各レジスタAij,Bij表わしてお
り、各位置に示される数字(kl)は入力された行列A,B
のk行l列の要素を表わしている。
(2) 乗算 リセット信号RESETを“L"レベルとし、クロック信号C
LKを動作させることにより、このクロック信号CLKに応
答して行列の乗算を行なう。ここで、先の初期データ書
込時において、クロック信号CLKに応答してデータを書
込むとして説明したが、この書込時に必要とされるクロ
ックはシフト動作を指定するクロック信号CLKと別のク
ロック信号を用いて行なってもよい。
まず、リセット信号RESETを“L"とする。これによ
り、マルチプレクサ12,13は外部データを受け付けず内
部データを巡回させる。一方、マルチプレクサ12′はリ
セット時と同様前段のシフトレジスタから与えられたデ
ータを通過させる。また、ポインタブロック3における
対角線上のポインタPii出力を受けるスイッチSWiiはす
べてオン状態となり、第1の記憶ブロックからの対角線
要素Aiiと第2の記憶ブロック2の対角線要素Biiとがそ
れぞれ出力され乗算器4へ与えられる。乗算器MPY1〜MP
Y4はそれぞれ与えられた行列要素の乗算を行なって加算
器ブロック5の各加算器ADD1〜ADDへ与える。加算器ブ
ロック5に含まれる第3の記憶ブロック6に含まれるレ
ジスタはポインタブロック3のレジスタ出力に応答して
Ciiの対角線部分が選択されているため、加算器ADD1〜A
DD4の出力は、 ADD1=a11×b11+c11 ADD2=a22×b22+c22 ADD3=a33×b33+c33 ADD4=a44×b44+c44 となる。クロック信号CLKが“L"へ立下がると、第3の
記憶ブロック6のレジスタCiiへ各対応の値が書込まれ
そこにラッチされる。このクロック信号の立下がりに応
答して16進カウンタ71のカウント値が1つ進み1とな
る。
第1の記憶ブロックへは行方向へのシフト信号SHIF
T Rが与えられており、第2の記憶ブロックは2へは列
方向へシフト信号SHIFT C′が与えられているとする。
再びブロック信号CLKが立上がると、この立上がりに
応答して第1の記憶ブロック1におけるレジスタAijの
内容が1ビットずつ行方向にシフトされる。同時に、ポ
インタブロック3に含まれるポインタレジスタPijの出
力が1ビットずつ行方向へシフトされる。この結果、第
1の記憶ブロック1におけるレジスタAijの記憶内容
は、第16A図に示す行列の2行1列の位置の行列の状態
となる。一方において、記憶ブロック2における記憶内
容は、そのシフト信号は16進カウンタ71のカウント数が
4となるごとに発生されるため、記憶ブロック2におけ
る行列Bの記憶内容は変化しない。したがって、このと
きの加算器ADD1〜ADD4の出力は、 ADD1=a11×b12+c12、 ADD2=a22×b23+c23、 ADD3=a33×b34+c34、 ADD4=a44×b41+c41 となる。クロック信号CLKが“L"に移行すると、これら
の加算結果はそれぞれポインタレジスタにより選択され
た第3の記憶ブロックのレジスタC12、C23、C34およびC
41にラッチされる。また、16進カウンタ71におけるカウ
ント値が1つ増分され2となる。
次に、クロック信号CLKが“H"へ移行すると、第1
の記憶ブロック1のレジスタAijの内容は1ビットずつ
行方向にシフトし、かつポインタレジスタPijの内容が
1ビットずつ行方向へシフトする。このとき、第2の記
憶ブロック2のレジスタBijの内容はまだシフトされ
ず、初期状態を保持している。この結果、ポインタレジ
スタPijにより選択されたレジスタAij,BijおよびCijが
それぞれステップで選択されたレジスタ方向と行方向
に隣接するレジスタとなる。したがって、加算器ADDi出
力は、 ADD1=a11×b13+c13、 ADD2=a22×b24+c24、 ADD3=a33×b31+c31、 ADD4=a44×b42+c42 となる。クロック信号CLKが“L"に移行すると、この加
算器ADDi出力がそれぞれ第3の記憶ブロック6における
レジスタのうち、ポインタレジスタPijにより選択され
ているレジスタC13、C14、C31、C42にラッチされる。16
進カウンタ71のカウント値はこのクロック信号CLKの
“L"への立下がりに応答してそのカウント値が3とな
る。
クロック信号CLKが“H"となると、上述のステップ
と同様にして、第1の記憶ブロック1のレジスタAijの
内容は第16図のの下部に示される状態となる。すなわ
ち、このクロック信号CLKの立上がりに応答して、各レ
ジスタAijの内容が1ビットずつ行方向にシフトされ
る。同様に、ポインタレジスタPij出力も1ビットずつ
行方向へシフトされる。このとき、まだ16進カウンタ71
のカウント値は3であるため、第2の記憶ブロック2に
おけるレジスタBijの内容は変化しない。したがって、
加算器ADDi出力は、 ADD1=a11×b14+c14、 ADD2=a22×b21+c21、 ADD3=a33×b32+c32、 ADD4=a44×b43+c43 となる。クロック信号CLKが“L"に移行すると、これら
の加算器ADDiの出力がそれぞれポインタレジスタにより
選択されたレジスタC14、C21、C32、C43へ書込まれ、そ
こでラッチされる。また、クロック信号CLKの立下がり
に応答して16進カウンタ71のカウント値が1つ増分され
4となる。
クロック信号CLKが“H"へ移行すると、第1の記憶
ブロック1のシフト信号はインバータ73およびANDゲー
ト74の働きにより与えられず、その記憶内容はシフトし
ない。一方、第2の記憶ブロック2に対するシフト信号
SHIFTはクロック信号CLKの立上がりに応答してORゲート
72出力により発生される。これにより、記憶ブロック2
におけるレジスタBijの内容が列方向に1ビットずつシ
フトされる。ポインタブロック3に与えられるシフト信
号SHIFTは、クロック信号CLKであり、その内容は1ビッ
トずつ行方向にシフトされる。この結果、レジスタAij,
BijおよびポインタレジスタPijの内容は第16A図の側
部に示す状態となり、加算器ADDi出力は、 ADD1=a12×b21+c11、 ADD2=a23×b32+c22、 ADD3=a34×b43+c33、 ADD4=a41×b14+c44、 となる。クロック信号CLKが“L"に移行すると、これら
の加算器ADDi出力がそれぞれポインタレジスタPijによ
り選択されている記憶レジスタC11、C22、C33、C44にそ
れぞれラッチされる。また同時に16進カウンタ71のカウ
ント値が5となる。
以下、上述のステップを繰返し、15回クロック信号CL
Kを変化させることにより、16回目のクロック信号CLKが
立下がった時点において、第3の記憶ブロックのレジス
タCijには、 がラッチされている。したがって、第3の記憶ブロック
6においては、正方行列Aと正方行列Bの乗算結果
[A]・[B]がラッチされていることになる。
次に、16回目のクロック信号CLKの立下がりに応答し
て、転送信号φが発生され、応じてフリップフロップ8
から“H"へ立上がる信号が発生される。
同時にこの転送信号φの発生に応答して、シフト信号
SHIFT R(C)がシフト信号SHIFT C(R)に切換えられ
る。16回目のクロック信号CLKの立下がり時には第3の
記憶ブロック6には、[A]・[B]の乗算結果が格納
されている。二次元に配列されたデータの直交変換を施
すためには、[A][B][A]を行なう必要がある。
このため、第3の記憶ブロック6に格納されている
[A][B]=[D]を第2の記憶ブロック2へ転送
し、再び上述のような乗算を行なう。このために、第1
の記憶ブロック1および第2の記憶ブロック2のシフト
方向を切換える。
ここで、トランジスタTR11〜TR44を用いてレジスタC1
1〜C44の内容を第2の記憶ブロック2へ同時に並行して
転送している。しかしながら、これに代えて、第3の記
憶ブロック6のレジスタC11〜C44の入力部にトランジス
タTR11〜TR44を設け、転送信号φに応答してレジスタC1
1〜C44に乗算結果を書込まずに直接第2の記憶ブロック
2へ転送する構成としてもよい。この場合、転送信号φ
の発生タイミングを第15図のタイミング図で示されるタ
イミングより半クロックサイクル早くすることができ
る。また、転送信号φによるデータの転送後は、レジス
タCijの内容はすべてリセットされる。これは、たとえ
ばリセット信号RESETと転送信号φのOR結果を各レジス
タCijのリセット入力へ与えることにより実現される。
また、言うまでもないが、記憶ブロック1および記憶
ブロック2におけるシフト動作を与えるクロック信号CL
Kは、演算ブロック4,5における演算動作速度を充分保証
するように各演算ブロック4,5の動作を与える速度より
充分に遅い値に設定される。
今、乗算の結果得られた行例[A][B]を[D]と
定義する。この場合、次に行なわれるべき乗算は[D]
[A]である。
したがって、転送信号φの発生に応答してマルチプレ
クサ9a,9bからは、そのシフト信号が切換えられて出力
される。すなわち、第1の記憶ブロック1においては行
方向へシフト動作を行なうために、シフト信号SHIFT R
が与えられていたが、これに代えて列方向のシフト信号
SHIFT Cが与えられる。一方、第2の記憶ブロック2に
おいては、シフト方向が列方向から行方向へと切換えら
れる。したがって、この場合、シフト信号SHIFTCがシフ
ト信号SHIFTRへ切換えられる。第3の記憶ブロックから
第2の記憶ブロック2へのデータ転送は第2の記憶ブロ
ック2に含まれる2入力マルチプレクサ12′を介して行
なわれる。この場合、マルチプレクサ12′へ与えられる
制御信号は第7図の構成からも明らかなように、転送信
号φが“H"に立上がっている間は、マルチプレクサ12′
は第3の記憶ブロックからのデータを転送する。
この状態で再び前述の動作が繰返される。但しこの場
合、各記憶ブロック1,2においてはそのシフト方向は行
および列方向が入替わっている。
1回目の行列乗算に伴うシフト動作完了後に行なわれ
る転送動作完了後は第16B図に示される初期状態となっ
ている。各レジスタAij,Bijへ与えられるデータが確定
すると、すなわち信号φが立下がると、それらに対し各
乗算および演算が行なわれる。すなわち2回目の初期状
態においては、各記憶ブロック1,2および第3の記憶ブ
ロック6における対角線要素Aii,BiiおよびCiiが選択さ
れているため加算器ADD1〜ADD4の出力は、 ADD1=a11×d11+c11 ADD2=a22×d22+c22 ADD3=a33×d33+c33、 ADD4=a44×d44+c44 となる。ここで第3の記憶ブロック6の内容はすべてリ
セットされているため、cijはすべて“0"である。すな
わち、17回目のクロック信号の立上がり時には、第16A
図における最終状態のポインタレジスタPij出力が、ク
ロック信号CLKの立上がりに応答して1ビットずつシフ
トされその対角線要素のみが選択状態となっている。し
たがってこの対角線要素のみに対する乗算が行なわれ、
上述の乗算結果が出力される。ここで、上述のポインタ
ブロック4の外部からのリセットは行なわれず、また各
記憶レジスタの記憶内容のシフト動作が行なわれない。
なぜなら、17回目のクロック信号の立上がり時において
は、カウンタ71出力は“16"であり、第1の記憶ブロッ
ク1におけるシフト動作は行なわれないからである。こ
れはたとえば転送信号φをORゲート72へ与えることによ
り容易に実現される。一方、第2の記憶ブロック2にお
いては、その入力部に与えられた乗算結果データが各レ
ジスタの出力へクロック信号CLKの立上がりに応答して
現われることになり、このデータがそれぞれクロック信
号の“H"の立上がりに応答してポインタブロックのポイ
ンタ値により選択され、上述の加算が行なわれる。
次に、クロック信号CLKが“L"レベルへ立下がると、
乗算結果が第3の記憶ブロック6の対角線要素のレジス
タCijへ格納される。また、16進カウンタ71のカウント
値が1増分される。次に、クロック信号CLKが“H"レベ
ルに立上がると、第1の記憶ブロックにおけるレジスタ
Aij内容が1ビットずつ列方向にシフトされる。同時に
応じてポインタブロック4のポインタPijの出力は1ビ
ットずつ行方向にシフトする。このクロック信号の立上
がりに応答して、選択されたレジスタAij,Bijの乗算が
行なわれ、かつ第3の記憶ブロックの対応するレジスタ
C12、C23、C34、C41が選択され、その内容と乗算結果と
が加算され、クロック信号CLKの立下がりに応答して各
レジスタに書込まれる。この結果、各レジスタCijに
は、 C12=a22×d12+c12 C23=a33×d23+c23 C34=a44×d34+c34 C41=a11×d41+c41 が格納される。クロック信号CLKが“L"へ立下がると、
応じて16進カウンタ71のカウント値が1増分され、2と
なる。
次にクロック信号CLKが“H"へ移行すると、応じて第
1の記憶ブロック1のレジスタAijの内容は1ビットず
つ列方向にシフトしかつポインタレジスタPijの内容も
1ビットずつ行方向へシフトする。このとき、第2の記
憶ブロック2のレジスタBijの内容はシフトされず初期
状態を維持している。この結果、ポインタレジスタPij
により選択されたレジスタAij,BijおよびCijがそれぞれ
ステップ2で選択されたレジスタと列または行方向に隣
接するレジスタとなる。したがって、各レジスタC13、C
24、C31およびC42には、 C13=a33×d13+c13 C24=a44×d24+c24 C31=a11×d31+c31、 C41=a22×d42+c42、 が格納される。この格納動作はクロック信号CLKの立下
がりと同期して行なわれ、クロック信号CLKの立下がり
に応答してカウンタ71のカウント値も1増分され3とな
る。
次にクロック信号CLKが“H"へ立上がると、ポインタ
レジスタPij出力が1ビットずつ行方向へシフトされ、
かつ第1の記憶ブロック1のレジスタAijの内容が1ビ
ットずつ列方向にシフトされる。次にクロック信号CLK
が“H"に立上がると、第1の記憶ブロック1のレジスタ
Aijの内容が第16B図の下部に示す状態に移行する。す
なわち、前のステップにおけるレジスタ内容が1ビット
ずつ列方向にシフトされるとともに、ポインタレジスタ
Pijの出力も1ビットずつ行方向へシフトされる。この
とき、まだ16進カウンタ71のカウンタ値は3であるた
め、第2の記憶ブロック2におけるレジスタBijの内容
は変化しない。したがって、ポインタレジスタPijによ
り選択された第3の記憶ブロック6に含まれるレジスタ
C14、C21、C32およびC33C43が選択され、その内容が読
出されるとともに、加算器ADD1〜ADD4における加算結果
が格納される。この結果、各レジスタC14、C21、C32お
よびC43へは、 C14=a44×d14+c14 C21=a11×d21+c21、 C32=a22×d32+c32、 C43=a33×d43+c43、 となる。16進カウンタ71のカウント値はクロック信号CL
Kの“L"レベルへの立下がりに応答して1増分され、4
となる。
次にクロック信号CLKは“H"へ移行すると、第1の記
憶ブロック1へのシフト信号は与えられないため、その
記憶内容はシフトしない。一方、第2の記憶ブロック2
に対するシフト信号SHIFT Rは、クロック信号CLKの立上
がりに応答してORゲート72出力に発生され、記憶ブロッ
ク2におけるレジスタBijの内容が行方向に1ビットず
つシフトされる。ポインタブロック3へのシフト信号SH
IFTはクロック信号CLKに応答して発生され、その内容は
1ビットずつ行方向にシフトされる。この結果、レジス
タAij,BijおよびポインタレジスタPijの内容は第16B図
に示す状態となる。この結果、加算器ADDiの出力は、 ADD1=a41×d14+c11、 ADD2=a12×d21+c22、 ADD3=a23×d32+c33、 ADD4=a34×d43+c44、 となる。各加算器ADD1〜ADD4の出力は、クロック信号CL
Kの“L"レベルへの移行に応答して第3の記憶ブロック
6に含まれるレジスタC11、C22、C33およびC44にそれぞ
れラッチされるとともに、16進カウンタ71のカウント値
が1増分されて、5となる。
以下、上述のステップを繰返すことにより、4クロッ
クごとに、第3の記憶ブロックに含まれるレジスタCij
は繰返し選択され、前の既に記憶している結果と加算
し、乗算結果を記憶する。この結果、新たな2回目の乗
算時において15回クロック信号CLKを変化させることに
より、16回目のクロック信号CLKが立下がった時点にお
いて、第3の記憶ブロックのレジスタCijには、 但し1≦i,k,j≦4 がラッチされている。したがって、第3の記憶ブロック
6においては、正方行列Dと正方行列Aの乗算[D]・
[A]が格納されていることになる。
したがって、上述の結果、第3の記憶ブロック6にお
いては、二次元に配列されたデータ行列[B]を直交変
換用係数行列[A]で直交変換した結果が格納されてい
ることになる。
なお上述の動作において行方向および列方向へのシフ
ト動作を逆転させれば、その演算順序を上述の演算順序
と変化させることができ、この場合においても同様に直
交変換を行なうことが可能である。
さらに、上記実施例においては、直交変換用の正方行
列および二次元に配列されたデータとして、正方格子状
のデータからなる4×4の正方行列と4×4の直交変換
用正方行列を一例として説明したが、用いられるデータ
行列および直交変換用変換行列としては、4×4の構成
に限定されず、他の一般にn×nの正方行列に適用可能
である。この場合、カウンタ出力はn×n進のカウンタ
となり、各シフトタイミングを与えるシフト信号SHIFT
には、n、2n、…となるカウント出力が用いられる。
なお上述の構成において、各レジスタに格納されるデ
ータは1ビットに限定されず複数ビット構成であっても
よい。この場合、各信号線はnビット幅の信号線とな
る。
[発明の効果] 以上のようにこの発明によれば、直交変換用係数行列
を記憶する第1の記憶手段とデータ行列を記憶する第2
記憶手段と乗算結果を格納する第3の記憶手段とを設
け、ポインタ手段を用いて第1,第2および第3の記憶手
段の記憶素子を選択してデータと係数との乗算および加
算を行なった後乗算結果を第3の記憶手段の選択された
記憶素子へ書込み、第1回目の行列乗算の完了後、第3
の記憶手段内容を第2の記憶手段へ転送し、第1および
第2の記憶手段のシフト方向を変えて、再び行列乗算を
行なうように構成している。したがって、正方行列状に
配列された二次元データの直交変換を高速で行なうこと
のできるコンパクトな構成の直交変換装置を得ることが
できる。
さらに、第1,第2および第3の記憶手段が正方行列状
に配列された記憶素子を有し、かつポインタ手段を同一
の正方行列状に配列されたポインタレジスタを用いて構
成した場合、各手段の垂直方向における結合性が強いた
め、記憶手段ブロック、ポインタ手段ブロック、加算手
段ブロックおよび乗算手段ブロックを半導体基板上に垂
直方向に積層した場合、最短の配線長かつ最少の配線数
で装置を実現することができ、高密度化かつ高集積化さ
れた直交変換装置を得ることが可能となる。
【図面の簡単な説明】
第1図はこの発明の一実施例である直交変換装置の全体
の構成を概略的に示す図である。第2図はこの発明の一
実施例である直交変換装置において用いられる係数行列
を記憶するための記憶ブロックの構成の一例を具体的に
示す図である。第3図はこの発明の直交変換装置におい
て用いられるデータ行列を記憶するブロックの構成を概
略的に示す図である。第4図は第2図および第3図に示
される行方向および列方向にシフト動作可能なレジスタ
の構成の一例を具体的に示す図である。第5図は2入力
マルチプレクサの構成の一例を示す図である。第6図は
第3図に示される記憶ブロックに含まれる3入力マルチ
プレクサのおよびセレクト信号発生用デコーダ部の構成
の一例を示す図である。第7図は第3図に示される2入
力マルチプレクサの具体的構成およびセレクタ信号を発
生するためのデコーダ部の構成の一例を示す図である。
第8図は第2図および第3図に示されるシフト信号を切
換えるための構成を概略的に示す図である。第9図はこ
の発明の他の実施例である転送信号発生回路の一例を示
す図である。第10図はこの発明の一実施例である直交変
換装置において用いられる位置情報発生用のポインタブ
ロックの構成を具体的に示す図である。第11図はこの発
明による直交変換装置の乗算器ブロックの構成を示す図
である。第12図はこの発明による直交変換装置において
用いられる加算器ブロックの構成を示す図である。第13
図はこの発明による直交変換装置の乗算結果格納用の記
憶ブロックの構成を具体的に示す図である。第14図はこ
の発明による直交変換装置の或る1行に関連する構成を
示す図である。第15図はこの発明による直交変換装置の
動作を示す波形図である。第16A図および第16B図はこの
発明による直交変換装置における係数行列記憶ブロック
およびデータ行列記憶ブロックにおける各記憶素子の内
容のシフト動作を示す図である。 図において、1は係数行列記憶用の第1の記憶ブロッ
ク、2はデータ行列記憶用の第2の記憶ブロック、3は
位置情報発生用ポインタブロック、4は乗算器ブロッ
ク、5は加算器ブロック、6は乗算結果を格納する第3
の記憶ブロック、7は制御信号発生回路、8はフリップ
フロップ、9a,9bは第1および第2の記憶ブロックにお
けるシフト信号を切換えるためのマルチプレクサ、10は
第1および第2の記憶ブロックにおける行および列セレ
クト信号を発生するためのデコーダ、12,12′は2入力
マルチプレクサ、13は3入力マルチプレクサ、8はフリ
ップフロップ、Aij(i,j=1〜4)は第1の記憶ブロッ
クの記憶素子であるシフト動作可能なレジスタ、Bij
(i,j=1〜4)は第2の記憶ブロックにおけるシフト
動作可能な記憶素子であるレジスタ、Cij(i,j=1〜
4)は第3の記憶ブロックにおける記憶素子であるレジ
スタ、Pij(i,j=1〜4)はポインタブロックに含まれ
るシフト動作可能なポインタレジスタ、MPYi(i=1〜
4)は乗算器、ADDi(i=1〜4)は加算器、TSij(i,
j=1〜4)は第3の記憶ブロックにおけるレジスタへ
の入出力を格納するためのトランジスタスイッチ、SWij
(i,j=1〜4)は第1の記憶ブロックおよび第2の記
憶ブロックのレジスタを選択するためのスイッチ、TRij
(i,j=1〜4)の第3の記憶ブロックの記憶素子の格
納されているデータを第2の記憶ブロックへ転送するた
めのスイッチである。 なお、図中、同一符号は同一または相当部分を示す。

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】n行n列(n:自然数)の正方行列状に配列
    されたデータの直交変換を行なうための装置であって、 前記直交変換を行なうための予め定められたn行n列の
    係数行列の各要素を1対1対応で記憶する複数の記憶素
    子からなる第1の記憶手段、 各々が、前記行列状に配列されたデータを1対1対応で
    記憶する複数の記憶素子からなる第2の記憶手段、 前記第2の記憶手段に記憶されたデータ行列と前記第1
    の記憶手段に記憶された係数行列との乗算結果を記憶す
    る複数の記憶素子からなる第3の記憶手段、前記乗算結
    果はn行n列の正方行列を行列を与えかつ前記第3の記
    憶手段の各記憶素子は前記乗算結果を1対1に格納し、 前記第1の記憶手段に含まれる記憶素子のうち、前記係
    数行列のi行k列(1≦i≦n,1≦k≦n)の位置の要
    素を記憶する記憶素子の位置情報、前記第2の記憶手段
    に含まれる記憶素子のうち前記配列データ行列のk行l
    列(1≦k≦n,1≦l≦n)の要素を記憶する記憶素子
    位置情報および前記第3の記憶手段に含まれる記憶素子
    のうち前記乗算結果行列のi行l列の要素を記憶する記
    憶素子の位置情報を発生するポインタ手段、 前記ポインタ手段から発生された位置情報に応答して、
    前記第1および第2の記憶手段内の指定された記憶素子
    のデータを読出して乗算する手段、 前記第3の記憶手段内の前記ポインタ手段により指定さ
    れた記憶素子の情報を読出し、前記乗算手段からの乗算
    結果と前記読出したデータとを加算するとともに該加算
    結果を前記読出したデータを記憶している元の記憶素子
    へ書込む手段、 前記乗算結果データを1対1で前記第2の記憶手段の各
    記憶素子へ書込むように、前記第3の記憶手段に記憶さ
    れている乗算結果データをすべて同時に前記第2の記憶
    手段へ転送する手段を備える、二次元離散データ直交変
    換用集積回路装置。
JP63251073A 1988-10-04 1988-10-04 二次元離散データ直交変換用集積回路装置 Expired - Fee Related JP2666411B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP63251073A JP2666411B2 (ja) 1988-10-04 1988-10-04 二次元離散データ直交変換用集積回路装置
US07/390,997 US4933892A (en) 1988-10-04 1989-08-09 Integrated circuit device for orthogonal transformation of two-dimensional discrete data and operating method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63251073A JP2666411B2 (ja) 1988-10-04 1988-10-04 二次元離散データ直交変換用集積回路装置

Publications (2)

Publication Number Publication Date
JPH0298790A JPH0298790A (ja) 1990-04-11
JP2666411B2 true JP2666411B2 (ja) 1997-10-22

Family

ID=17217228

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63251073A Expired - Fee Related JP2666411B2 (ja) 1988-10-04 1988-10-04 二次元離散データ直交変換用集積回路装置

Country Status (2)

Country Link
US (1) US4933892A (ja)
JP (1) JP2666411B2 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5272767A (en) * 1990-11-05 1993-12-21 David Sarnoff Research Center, Inc. Interactive data analysis with crossbar control
JP3981651B2 (ja) * 1993-03-25 2007-09-26 セイコーエプソン株式会社 画像処理装置
US5838825A (en) * 1996-01-17 1998-11-17 Matsushita Electric Industrial Co., Ltd. Apparatus for decompressing image data which has been compressed using a linear transform
JP3920953B2 (ja) * 1996-08-27 2007-05-30 経明 大師堂 3次元fft装置
JP3845920B2 (ja) * 1996-11-26 2006-11-15 ソニー株式会社 行列転置装置
US9141687B2 (en) * 2008-01-03 2015-09-22 Hewlett-Packard Development Company, L.P. Identification of data objects within a computer database
EP2485293A4 (en) * 2009-09-28 2014-01-08 Hitachi Vehicle Energy Ltd BATTERY SYSTEM
US20130027416A1 (en) * 2011-07-25 2013-01-31 Karthikeyan Vaithianathan Gather method and apparatus for media processing accelerators
US20180007302A1 (en) 2016-07-01 2018-01-04 Google Inc. Block Operations For An Image Processor Having A Two-Dimensional Execution Lane Array and A Two-Dimensional Shift Register

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4293920A (en) * 1979-09-04 1981-10-06 Merola Pasquale A Two-dimensional transform processor
JPS5737925A (en) * 1980-08-14 1982-03-02 Matsushita Electric Ind Co Ltd High-speed hadamard converter
JP2811175B2 (ja) * 1986-01-27 1998-10-15 富士写真フイルム株式会社 画像データの直交変換符号化方法
NL8700843A (nl) * 1987-04-10 1988-11-01 Philips Nv Televisie-overdrachtsysteem met transformcoding.

Also Published As

Publication number Publication date
JPH0298790A (ja) 1990-04-11
US4933892A (en) 1990-06-12

Similar Documents

Publication Publication Date Title
US11456856B2 (en) Method of operation for a configurable number theoretic transform (NTT) butterfly circuit for homomorphic encryption
TWI764708B (zh) 用於在一矩陣向量處理系統中轉置之方法,非暫時性電腦程式產品及電路
US4601006A (en) Architecture for two dimensional fast fourier transform
JP7279064B2 (ja) テンソルデータ用のメモリ構成
US6105114A (en) Two-dimensional array transposition circuit reading two-dimensional array in an order different from that for writing
JP2666411B2 (ja) 二次元離散データ直交変換用集積回路装置
KR102555621B1 (ko) 메모리 내의 컴퓨팅 회로 및 방법
Jiang et al. An efficient FPGA-based direct linear solver
US5408677A (en) Vector parallel computer
US10713332B2 (en) Hardware accelerated linear system solver
Leitersdorf et al. FourierPIM: High-throughput in-memory Fast Fourier Transform and polynomial multiplication
WO1992001993A1 (en) A fluid dynamics parallel processor
Schwiegelshohn A shortperiodic two-dimensional systolic sorting algorithm
Järvinen et al. Stride permutation networks for array processors
Ryan et al. An isma lee router accelerator
Lin Parallel generation of permutations on systolic arrays
Maurer Conjugate symmetry
JPH0748203B2 (ja) 3次元デバイスを用いた正方行列乗算器
Teich et al. Performance analysis and optimization of mixed asynchronous synchronous systems
Sjostrom et al. Discrete cosine transform chip for real-time video applications
Li et al. Modularized architecture of address generation units suitable for real-time processing MR data on an FPGA
RU2134448C1 (ru) Однородная вычислительная среда с двуслойной программируемой структурой
Lun et al. An analysis for the realization of an in-place and in-order prime factor algorithm
Katagiri et al. Extension of memory controller equipped with muccra-3-dp: Dynamically reconfigurable processor array
JP2958969B2 (ja) バタフライ演算装置

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees