JPH10154140A - 行列転置装置 - Google Patents

行列転置装置

Info

Publication number
JPH10154140A
JPH10154140A JP8314766A JP31476696A JPH10154140A JP H10154140 A JPH10154140 A JP H10154140A JP 8314766 A JP8314766 A JP 8314766A JP 31476696 A JP31476696 A JP 31476696A JP H10154140 A JPH10154140 A JP H10154140A
Authority
JP
Japan
Prior art keywords
output
matrix
input
address
storage devices
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP8314766A
Other languages
English (en)
Other versions
JP3845920B2 (ja
Inventor
Eiji Takamukai
英治 高向
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.)
Sony Corp
Original Assignee
Sony 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 Sony Corp filed Critical Sony Corp
Priority to JP31476696A priority Critical patent/JP3845920B2/ja
Priority to US08/974,958 priority patent/US6021420A/en
Publication of JPH10154140A publication Critical patent/JPH10154140A/ja
Application granted granted Critical
Publication of JP3845920B2 publication Critical patent/JP3845920B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/76Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
    • G06F7/78Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data for changing the order of data flow, e.g. matrix transposition or LIFO buffers; Overflow or underflow handling therefor
    • G06F7/785Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data for changing the order of data flow, e.g. matrix transposition or LIFO buffers; Overflow or underflow handling therefor having a sequence of storage locations each being individually accessible for both enqueue and dequeue operations, e.g. using a RAM
    • 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/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization

Landscapes

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

Abstract

(57)【要約】 【課題】2次元直交変換等の演算処理を高速化できる行
列転置装置を実現する。 【解決手段】入力列ベクタを並列に入力でき、並列に出
力列ベクタを出力可能で、アドレス範囲の総和が入力行
列の全要素データを格納可能なように配置された複数の
記憶装置22ー0 〜22-pと、複数の並列な数値入力から一
の数値入力を選択可能で選択した数値を対応する記憶装
置に入力する複数の入力選択装置21-0〜21ーp と、各記
憶装置に対し独立なアドレスを指定可能な複数のアドレ
ス発生器23-0〜23-pと、各々独立に任意の記憶装置の出
力を選択可能な出力選択装置24-0〜24-nと、入力時任意
の入力行ベクタの各要素が互いに異なる記憶装置に格納
されるように制御し、出力時複数の記憶装置に格納され
た各行列要素に応じて任意の転置出力列ベクタを定めら
れた順序および定められた列ベクタ内の要素の順を保ち
つつ並列に出力されるように制御する制御装置25とを設
ける。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、たとえば、画像圧
縮等の技術分野で用いられる2次元直交変換等、転置操
作を必要とする演算を効率的に処理するための専用演算
装置または汎用演算装置内で使用される行列転置装置に
関するものである。
【0002】
【従来の技術】従来、2次元直交変換等、行列データの
転置操作を必要とする演算装置の中で、高速な処理が必
要とされるものは、複数の演算器により入力行列データ
に対して1次変換もしくは1次変換に等価な処理を施し
た行列データを記憶装置に格納し、その記憶装置から取
り出した行列データに転置作業を施して次の1次変換も
しくは1次変換に等価な処理回路に入力している。
【0003】図8は、この種の行列転置装置の構成例を
示すブロック図である。図8に示すように、行列転置装
置10は、記憶装置11−1〜11−M、切換スイッチ
回路12およびシフト装置13により構成されている。
また図中、14は演算器を示している。
【0004】記憶装置12−1〜12〜Mは、たとえば
1入力1出力のRAM(Random Access Memory)により構
成され、各々1からNまでのN個のアドレスで指定が可
能な記憶領域を有し、1つの書き込み動作と1つの読み
込み動作を実行するものである。
【0005】切換スイッチ回路12は、それぞれ記憶装
置12−1〜12−Mの出力端子に接続されたM個の入
力端子TI−1〜TI−Mとシフト装置13の入力端子
に接続された1個の出力端子TO−1を有し、出力端子
TO−1を入力端子TI−1〜TI−Mと順次に接続し
て、記憶装置11−1〜11−Mに記憶されている列ベ
クタの要素データをシフト装置13に入力させる。
【0006】シフト装置13は、切換スイッチ回路12
を介してM個の要素データを逐次読み取り、読み取りが
終わるとM個の要素データをその読み込んだ順番に従っ
て定められた出力に列ベクタY1〜YMとして並列に出
力する。
【0007】演算器14は、入力行列データに対して1
次変換処理を施し、列ベクタX1〜XNに分割して、記
憶装置11ー1〜11−Mに出力する。またたとえば、
演算器14は、転置作用を受けたシフト装置13による
列ベクタY1〜YMを受けてさらに1次変換を施す。
【0008】次に、上記各構成要素を使用して転置出力
を得る手順を説明する。ここではM×N行列Xを入力
し、その転置であるN×M行列Yを得る手順を説明す
る。
【0009】入力行列Xは、演算器14で列ベクタX1
〜XNに分割され、各列ベクタは順次記憶装置11−1
〜11−Mに対して入力される。列ベクタXk(ただ
し、kは1〜Nの整数)のi番目の要素(ただし、iは
1〜Mの整数)は記憶装置11−iのアドレスkの記憶
領域に書き込まれ、格納される。この際、Xkの各要素
は同時に各々の記憶装置に書き込まれる。この操作をk
=1からk=NまでN回繰り返すことにより、記憶装置
11−1〜11−M内にXの全要素が格納される。
【0010】次に、記憶装置11−iのアドレス1から
Nまでを読み出し、切換スイッチ回路12を介してシフ
ト装置13に順次入力し、シフト装置14の出力にXの
行ベクタT(X)iが出力される。ここでT(X)は行
列の転置を表す関数とする。この操作が終わった時点で
シフト装置13の出力にXの行ベクタT(X)i、すな
わち出力Yの列ベクタYiが出力される。この操作をi
=1からi=M回繰り返すことにより出力列ベクタY1
〜YMが出力され、出力行列Yの全要素が出力されるこ
ととなる。
【0011】
【発明が解決しようとする課題】ところで、上述したよ
うに行列転置操作において、1列分のデータが揃うまで
行データをN回読み出さねばならず、この操作が高速ま
たは短時間で2次元直交変換等を演算する際の障害とな
っていた。
【0012】本発明は、かかる事情に鑑みてなされたも
のであり、その目的は、2次元直交変換等の演算処理を
高速化できる行列転置装置を提供することにある。
【0013】
【課題を解決するための手段】上記目的を達成するた
め、本発明は、入力列ベクタに対して転置作用を施して
出力列ベクタを得る行列転置装置であって、入力列ベク
タを並列に入力でき、並列に出力列ベクタを出力可能
で、かつ、アドレス範囲の総和が入力行列の全要素デー
タを格納可能なように配置された複数の記憶装置と、任
意の入力行ベクタの各要素データを互いに異なる記憶装
置に格納させ、格納された各行列要素に応じて任意の転
置出力列ベクタを定められた順序および定められた列ベ
クタ内の要素データの順を保ちつつ並列に出力させる制
御手段とを有する。
【0014】本発明によれば、入力列ベクタに対して転
置作用を施して出力列ベクタを得る行列転置装置であっ
て、入力列ベクタを並列に入力でき、並列に出力列ベク
タを出力可能で、かつ、アドレス範囲の総和が入力行列
の全要素データを格納可能なように配置された複数の記
憶装置と、それぞれ上記複数の記憶装置に対応して設け
られ、複数の並列な数値入力から一の数値入力を選択可
能で、それぞれ選択した数値を対応する記憶装置に入力
する複数の選択手段と、上記複数の記憶装置に対し独立
なアドレスを指定可能な複数のアドレス発生手段と、入
力時、任意の入力行ベクタの各要素が互いに異なる記憶
装置に格納されるように上記選択手段およびアドレス発
生手段を制御し、出力時、上記複数の記憶装置に格納さ
れた各行列要素に応じて任意の転置出力列ベクタを定め
られた順序および定められた列ベクタ内の要素の順を保
ちつつ並列に出力されるように上記アドレス発生手段を
制御する制御手段とを有する。
【0015】本発明によれば、たとえば複数の記憶装置
は、各記憶領域がマトリクス状となるように配置され、
制御手段によって、アドレスを円環状にシフトさせなが
ら列ベクタの一系統をなす要素データが複数の記憶装置
のそれぞれ異なる列アドレスの記憶領域に格納される。
そして、マトリクスの同一列単位でアドレス指定を行っ
て並列出力ベクタが出力される。また、たとえば複数の
データ列をシフトさせながら列ベクタの一系統をなす要
素データが複数の記憶装置のそれぞれ同一の列アドレス
の記憶領域に格納され、アドレスを円環状にシフトさせ
て並列出力ベクタの出力が行われる。これにより、高速
な転置操作を実現でき、2次元直交変換等の演算処理を
高速化することができる。また、本行列転置装置は、正
方行列を入出力とすることも可能であり、たとえば2次
元直交変換を処理する専用演算装置、画像圧縮装置また
は画像伸長装置に使用される2次元直交変換を処理する
専用演算装置、あるいは2次元直交変換を処理する場合
がある汎用演算装置の一部等に使用することが可能であ
る。
【0016】
【発明の実施の形態】以下、図面を参照し、本発明の実
施例について説明する。
【0017】図1は、本発明に係る行列転置装置の一実
施形態を示すブロック構成図である。図1に示すよう
に、行列転置装置20は、入力選択装置21−0〜21
−p、記憶装置22−0〜22−p、アドレス発生器2
3−0〜23−p、出力選択装置24−0〜24−n、
および制御回路25により構成されている。また図中2
6は演算器を示している。
【0018】なお、本実施形態では説明を簡単にするた
め、行列の要素、選択装置、記憶装置などを指定するた
めの添え字は1からではなく0から始まるものとしてい
る。入力行列Xの各要素をXij(i=0〜m、j=0
〜n)と表し、たとえば通常の表現でのXの(1、2)
要素、すなわち行列の最上段の左から2番目の要素はX
01と表記する。出力行列Yに関しても同様であり、当
然ながらXijとYjiは同一の値となる。
【0019】また以下では、M≧Nの場合P=MかつQ
=N、M≦Nの場合P=NかつQ=Mとし、n=N−
1、m=M−1、p=P−1、q=Q−1とする。
【0020】入力選択装置21−i(i=0〜p)は、
制御装置25による第1制御信号CTL1に応じて、各
々独立に入力列ベクタXk(k=0〜n)の任意の要素
Xjk(j=0〜m)を選択して出力する。入力選択装
置21−iの出力端子は記憶装置22−iの入力端子に
接続されている。
【0021】記憶装置22−i(i=0〜p)は、たと
えば1入力1出力のRAMにより構成され、各々アドレ
ス発生器23−iで発生される0からqまでのQ個のア
ドレスADR0〜ADRqで指定可能なQ個の記憶領域
を有し、1つの書き込み動作と1つの読み込み動作を実
行する。
【0022】アドレス発生器23−i(i=0〜p)
は、制御装置25による第2制御信号CTL2に応じ
て、各々独立に0からqまでの値域をもつアドレスAD
R0〜ADRqを1系統出力することができ、入力手順
および出力手順に先立って各々独立に0からqまでのア
ドレス値を設定可能で、入力手順中または出力手順中の
各1動作毎にQを法とする剰余系でアドレス値を1ずつ
増加または1ずつ減少させる。
【0023】出力選択装置24−j(j=0〜n)は、
制御装置25による第3制御信号CTL3に応じて、各
々独立に任意の記憶装置の出力を選択して出力する装置
であり、記憶装置22−iの出力を入力される毎にこの
装置の最終出力行列であるYの列ベクタYh(h=0〜
m)を逐次出力する。
【0024】制御装置25は、入力列ベクタXk(k=
0〜n)を記憶装置22−iに記憶するときは、第1制
御信号CTL1を入力選択装置21−iに出力するとと
もに、第2制御信号CTL2をアドレス発生器23−i
に出力する。この場合、たとえば全ての記憶装置22−
0〜22−pの記憶領域0から記憶領域pに向かって順
次に記憶していくように、各アドレス発生器23−0〜
23−pが同時に発生する一系統出力アドレスADR
は、それぞれ異なる。また、記憶装置22−iに記憶さ
れた要素データを読み出すときは、第2制御信号CTL
2をアドレス発生器23−iに出力するとともに、第3
制御信号CTL3を出力選択装置24−jに出力する。
この場合、たとえば任意の列ベクタYhが得られるよう
に、各アドレス発生器23−0〜23−pが同時に発生
する一系統出力アドレスADRは、それぞれ異なる。す
なわち、この例では、記憶装置22−0〜22−pへの
データの書き込みは、全記憶装置でいわゆる縦方向に一
斉に行い、読み出しは、選択的なアドレス指定により行
う。
【0025】演算器26は、入力行列データに対して1
次変換処理を施し、列ベクタX00〜Xm0、X01〜
Xm1、・・・、X0n〜Xmnを入力選択装置21−
iにに出力する。またたとえば、演算器25は、出力選
択装置24−jによる列ベクタY00〜Y0n、Y01
〜Yn1、〜、Y0m〜Ynmを受けてさらに1次変換
を施す。
【0026】以下では、制御装置25の制御信号CTL
1,CTL2,CTL3に基づき、上記構成要素を用い
てM×N行列XをN×M行列Yに変換する手順を説明す
る。この手順は、後に定義される書き込み手順を実行し
たのち、後に定義される読み出し手順を実行するもので
ある。
【0027】書き込み手順を定義する。まず、第1制御
信号CTL1,CTL2により、入力選択装置21−0
〜21−pおよびアドレス発生器23−0〜23−pの
状態を、入力列ベクタを記憶装置に書き込むに先立って
初期化する。これを書き込み時状態初期設定と定義す
る。
【0028】次に、1本の入力列ベクタを記憶装置22
−0〜22−pに書き込む。これを列ベクタ書き込みと
定義する。次に、入力選択装置21−0〜21−pおよ
びアドレス発生器23−0〜23−pの状態を、次の列
ベクタ書き込みに先立って更新する。これを書き込み時
状態更新と定義する。
【0029】以上の定義より、書き込み手順を定義でき
る。書き込み手順は、書き込み時状態初期設定を実行し
た後、列ベクタ書き込みの実行と書き込み時状態更新を
入力列ベクタの本数分繰り返す手順である。
【0030】読み出し手順を定義する。まず、第2制御
信号CTL2、第3制御信号CT3により、アドレス発
生器23−0〜23−pおよび出力選択装置24−0〜
24−nの状態を、出力列ベクタを記憶装置22−0〜
22−pから読み出すに先立って初期化する。これを読
み出し時状態初期設定と定義する。
【0031】次に、1本の出力列ベクタを記憶装置22
−0〜22−pより読み出す。これを列ベクタ読み出し
と定義する。
【0032】次に、アドレス発生器23−0〜23−p
および出力選択装置24−0〜24−nの状態を、次の
列ベクタ書き込みに先立って更新する。これを読み出し
時状態更新と定義する。以上の定義より、読み出し手順
を定義できる。読み出し手順は、読み出し時状態初期設
定を実行した後、列ベクタ読み出しの実行と読み出し時
状態更新を出力列ベクタの本数分繰り返す手順である。
【0033】次に、以上の定義に基づく上記構成による
具体的な動作について、より詳細に説明する。書き込み
時状態初期設定として、入力選択装置21−i(i=0
〜p)に対し、入力Xi0(i=0〜p)を選択するよ
うに第1制御信号CTL1が設定され、アドレス発生器
23−i(i=0〜m)に対し、iをQで割った剰余を
アドレスとして発生するように第2制御信号CTL2が
設定され、アドレス発生器23−i(i>M)が存在す
れば、アドレスADR0が発生される。
【0034】列ベクタ書き込みは、上記定義どおりであ
る。ただし、列ベクタ書き込み実行時の入力選択装置2
1−i(i=0〜p)の状態が、書き込み要素がmより
大きな値に設定されているものに関しては、書き込み動
作は実行されず、記憶装置22−iの内部状態に変化は
ない。
【0035】書き込み時状態更新として、入力選択装置
21−i(i=0〜p)の状態が、Pを法とする加減算
の意味において1を減少させる。この時点で、入力選択
装置21−iの状態がs(i)であるとすると、0≦s
(i)<Mであるアドレス発生器23−iに対して、状
態をQを法とする加減算の意味において1を減少させ
る。その他のアドレス発生器に対しては状態を変化させ
ない。
【0036】読み出し時状態初期設定として、出力選択
装置24−j(j=0〜n)に対し、記憶装置22−i
(i=0〜p)の出力を選択するよう第3制御信号CT
L3が設定され、アドレス発生器23−i(i=0〜
n)に対し、0をアドレスADRとして発生するよう第
2制御信号CTLが設定される。列ベクタ読み出しとし
ては上記定義のとおりである。
【0037】読み出し時状態更新として、入力選択装置
24−jの更新前にアドレス発生器23−iに対し、i
=0〜nかつPを法とする剰余系で出力選択装置24−
j(すなわち、j=0ならば出力選択装置24−0、j
=1ならば出力選択装置24−nなど)の状態がp−n
と等しいならばアドレス発生器23−iにi+1を行う
にように第2制御信号CTL2が設定され、それ以外の
場合はアドレス発生器23−i(i=0〜n)の状態を
Qを法とする剰余系で1を増加させる。以上の手順を上
記のとおりの順序で実行することにより、全手順が完成
する。
【0038】次に、8×8の2次元DCT(Descrete Co
sine Transform) を例に、さらに具体的な動作につい
て、図2〜図4に関連付けて説明する。図2〜図4にお
いて、8×8のマトリクス状のものは、8個の記憶領域
を有し、アドレスADR0〜ADR7で8個の記憶領域
を任意に指定可能な1×8の記憶装置8段分(本例では
p=7)を示している。図中、横方向がアドレス方向、
縦方向が記憶装置の配置方向である。
【0039】図2(a)は初期状態を示す。このとき、
入力は列ベクタX00〜X70であり、アドレス発生器(2
3−0〜23−7)によるアドレス指定は、上段の記憶
装置22−0から順次にADR0〜7である。その結
果、図2(b)に示すように、入力列ベクタX00〜X70
が対角線状に記憶される。そして、このときの次の入力
は列ベクタX01〜X71であり、図にあるように入力列ベ
クタの要素も円環状にシフトされる。アドレス指定は、
図2(b)に示すように、いわゆる円環状に1つシフト
される。すなわち、1段目のアドレス指定はADR1、
2段目はADR2、3段目はADR3、4段目はADR
4、5段目はADR5、6段目はADR6、7段目はA
DR7、そして8段目はADR0である。このように、
8個の列ベクタの入力毎にアドレスが円環状に1つずつ
シフトされ、図3(a)に示すように、64個の記憶領
域に全データが格納される。
【0040】そして、読み出しを行う場合のアドレス発
生器(23−0〜23−7)によるアドレス指定は、図
3(d)に示すように、8段全ての記憶装置に対してA
DR0である。その結果、図3(d)に示すように、記
憶領域のマトリクスにおける1列目の全データX00〜X
07が読み出される。次に、アドレス発生器(23−0〜
23−7)によるアドレス指定は、図4(e)に示すよ
うに、8段全ての記憶装置に対してアドレスADR1で
ある。その結果、図4(e)に示すように、記憶領域の
マトリクスにおける2列目の全データX10〜X17が読み
出される。同様に、全記憶装置に対して同一のアドレス
指定が順次行われ、図4(f)に示すように、アドレス
ADR7の指定により、8列目のデータX70〜X77が読
み出される。
【0041】このように、8個のデータ列を、アドレス
を円環状に1つずつシフトさせながら8段の記憶装置2
2−0〜22−7に格納し、そのデータを読み出すると
きは、1列目から順番にアドレス指定することにより、
転置のオーバーヘッドをなくすことができる。
【0042】なお、以上の図2〜図4の例は、アドレス
を円環状に1つずつシフトさせながら、8段の記憶装置
に格納し、そのデータを読み出すときは、1列目から順
番にアドレス指定するものであるが、これとは逆の構成
も可能である。すなわち、図5〜図7に示すように、8
個のデータ列を円環状にシフトしつつ格納し、そのデー
タを読み出す際に各アドレスを円環状にシフトさせるよ
うに構成することも可能である。
【0043】図5(a)が初期状態を示す。このとき、
入力は列ベクタX00〜X70であり、アドレス発生器(2
3−0〜23−7)によるアドレス指定は、8段全ての
記憶装置に対してADR0である。その結果、図5
(b)に示すように、入力列ベクタX00〜X70が記憶領
域のマトリクスにおける1列目に記憶される。そして、
このときの次の入力は列ベクタX01〜X71であり、アド
レス指定は、図5(b)に示すように、8段全ての記憶
装置に対してADR0である。このようにして、図6
(c)に示すように、順次に64個の記憶領域に8個の
列ベクタの全データが格納される。
【0044】そして、読み出しを行う場合のアドレス発
生器(23−0〜23−7)によるアドレス指定は、図
6(d)に示すように、選択的に行われる。すなわち、
上段の記憶装置22−0から1段目のアドレス指定はA
DR0、2段目はADR7、3段目はADR6、4段目
はADR5、5段目はADR4、6段目はADR3、7
段目はADR2、そして8段目はADR1である。その
結果、図6(d)に示すように、記憶領域のマトリクス
における1列目の全データX00〜X07が読み出される。
次に、図7(e)に示すように、アドレス指定が円環状
にシフトされて行われる。すなわち、上段の記憶装置2
2−0から1段目のアドレス指定はADR1、2段目は
ADR0、3段目はADR7、4段目はADR6、5段
目はADR5、6段目はADR4、7段目はADR3、
そして8段目はADR2である。同様に、アドレス指定
が円環状に1つずつシフトされ、図4(f)に示すよう
に、アドレスADR7の指定により、8列目のデータX
70〜X77が読み出される。この場合のアドレス指定は、
1段目はADR7、2段目はADR6、3段目はADR
5、4段目はADR4、5段目はADR3、6段目はA
DR2、7段目はADR1、そして8段目はADR0で
ある。
【0045】このように、8個のデータ列を円環状にシ
フトしつつ格納し、そのデータを読み出す際に各アドレ
スを円環状にシフトさせるように構成することにより、
転置のオーバーヘッドをなくすことができる。
【0046】以上説明したように、本実施形態によれ
ば、入力列ベクタを並列に入力でき、並列に出力列ベク
タを出力可能で、かつ、アドレス範囲の総和が入力行列
の全要素データを格納可能なように配置された複数の記
憶装置22−0〜22−pと、それぞれ複数の記憶装置
に対応して設けられ、複数の並列な数値入力から一の数
値入力を選択可能で、それぞれ選択した数値を対応する
記憶装置に入力する複数の入力選択装置21−0〜21
−pと、複数の記憶装置に対し独立なアドレスを指定可
能な複数のアドレス発生器23−0〜23−pと、各々
独立に任意の記憶装置の出力を選択可能な出力選択装置
24−0〜24−nと、入力時、任意の入力行ベクタの
各要素が互いに異なる記憶装置に格納されるように入力
選択装置およびアドレス発生器を制御し、出力時、複数
の記憶装置に格納された各行列要素に応じて任意の転置
出力列ベクタを定められた順序および定められた列ベク
タ内の要素の順を保ちつつ並列に出力されるようにアド
レス発生器および出力選択装置を制御する制御装置25
とを設けたので、従来方式に存在した行列転置操作時の
シフト動作に伴う時間的無駄がなく、高速な転置操作を
実現でき、2次元直交変換等の演算処理を高速化するこ
とができる。
【0047】なお、本発明はこの実施形態のみに限定さ
れるものではなく、記憶装置および入力選択装置の個数
が入力列ベクタを並列に入力するに十分であり、かつ記
憶装置の個数が出力選択装置より並列に出力列ベクタを
出力するに十分であり、かつ各記憶装置のもつアドレス
範囲の総和が入力行列の全要素を格納するに十分であ
り、かつ入力選択装置および入力時のアドレス発生器が
任意の入力行ベクタの各要素が互いに異なる記憶装置に
格納されるよう制御され、かつ出力選択装置および出力
時のアドレス発生器が格納された各行列要素に応じて任
意の転置出力列ベクタを定められた順序および定められ
た列ベクタ内の要素の順序を保ちつつ並列に出力される
よう制御されるという制約を満たす限りにおいて種々の
変形が考えられる。
【0048】また、本行列転置装置は、正方行列を入出
力とすることも可能であり、たとえば2次元直交変換を
処理する専用演算装置、画像圧縮装置または画像伸長装
置に使用される2次元直交変換を処理する専用演算装
置、あるいは2次元直交変換を処理する場合がある汎用
演算装置の一部等に使用することが可能である。
【0049】
【発明の効果】以上説明したように、本発明の行列転置
装置によれば、つねに並列に読み書きが可能なように記
憶装置に読み書きをすることから、従来方式に存在した
行列転置操作時のシフト動作に伴う時間的無駄がなく、
高速な転置操作を実現でき、2次元直交変換等の演算処
理を高速化することができる。
【図面の簡単な説明】
【図1】本発明に係る行列転置装置の一実施形態を示す
ブロック構成図である。
【図2】8×8の2次元DCTの場合の具体的な動作を
説明するための図であって、(a)は初期状態を示す
図、(b)は(a)の状態からデータが格納された状態
を示す図である。
【図3】8×8の2次元DCTの場合の具体的な動作を
説明するための図であって、(c)は記憶領域に全デー
タが格納された状態を示す図、(d)は読み出し動作時
の説明図である。
【図4】8×8の2次元DCTの場合の具体的な動作を
説明するための図であって、(e)、(f)は読み出し
過程の説明図である。
【図5】8×8の2次元DCTの場合の他の具体的な動
作を説明するための図であって、(a)は初期状態を示
す図、(b)は(a)の状態からデータが格納された状
態を示す図である。
【図6】8×8の2次元DCTの場合の他の具体的な動
作を説明するための図であって、(c)は記憶領域に全
データが可能された状態を示す図、(d)は読み出し動
作時の説明図である。
【図7】8×8の2次元DCTの場合の他の具体的な動
作を説明するための図であって、(e)、(f)は読み
出し過程の説明図である。
【図8】従来方式による転置操作装置の構成を示すブロ
ック図である。
【符号の説明】
20…行列転置装置、21−0〜21−p…入力選択装
置、22−0〜22−p…記憶装置、23−0〜23−
p…アドレス発生器、24−0〜24−p…出力選択装
置、25…制御装置、26…演算器。

Claims (9)

    【特許請求の範囲】
  1. 【請求項1】 入力列ベクタに対して転置作用を施して
    出力列ベクタを得る行列転置装置であって、 入力列ベクタを並列に入力でき、並列に出力列ベクタを
    出力可能で、かつ、アドレス範囲の総和が入力行列の全
    要素データを格納可能なように配置された複数の記憶装
    置と、 任意の入力行ベクタの各要素データを互いに異なる記憶
    装置に格納させ、格納された各行列要素に応じて任意の
    転置出力列ベクタを定められた順序および定められた列
    ベクタ内の要素データの順を保ちつつ並列に出力させる
    制御手段とを有する行列転置装置。
  2. 【請求項2】 上記複数の記憶装置は、各記憶領域がマ
    トリクス状となるように配置されており、 上記制御手段は、アドレスを円環状にシフトさせながら
    列ベクタの一系統をなす要素データを複数の記憶装置の
    それぞれ異なる列アドレスの記憶領域に格納させ、マト
    リクスの同一列単位でアドレス指定を行って並列出力ベ
    クタを出力させる請求項1記載の行列転置装置。
  3. 【請求項3】 上記複数の記憶装置は、各記憶領域がマ
    トリクス状となるように配置されており、 上記転置制御手段は、複数のデータ列をシフトさせなが
    ら列ベクタの一系統をなす要素データを複数の記憶装置
    のそれぞれ同一の列アドレスの記憶領域に格納させ、ア
    ドレスを円環状にシフトさせて並列出力ベクタを出力さ
    せる請求項1記載の行列転置装置。
  4. 【請求項4】 正方行列を入出力する請求項1記載の行
    列転置装置。
  5. 【請求項5】 入力列ベクタに対して転置作用を施して
    出力列ベクタを得る行列転置装置であって、 入力列ベクタを並列に入力でき、並列に出力列ベクタを
    出力可能で、かつ、アドレス範囲の総和が入力行列の全
    要素データを格納可能なように配置された複数の記憶装
    置と、 それぞれ上記複数の記憶装置に対応して設けられ、複数
    の並列な数値入力から一の数値入力を選択可能で、それ
    ぞれ選択した数値を対応する記憶装置に入力する複数の
    選択手段と、 上記複数の記憶装置に対し独立なアドレスを指定可能な
    複数のアドレス発生手段と、 入力時、任意の入力行ベクタの各要素が互いに異なる記
    憶装置に格納されるように上記選択手段およびアドレス
    発生手段を制御し、出力時、上記複数の記憶装置に格納
    された各行列要素に応じて任意の転置出力列ベクタを定
    められた順序および定められた列ベクタ内の要素の順を
    保ちつつ並列に出力されるように上記アドレス発生手段
    を制御する制御手段とを有する行列転置装置。
  6. 【請求項6】 各々独立に任意の記憶装置の出力を選択
    可能な出力選択装置を有し、 上記制御手段は、上記出力選択装置を、上記記憶装置の
    出力が入力される毎に最終出力行列である出力列ベクタ
    を逐次出力するように制御する請求項5記載の行列転置
    装置。
  7. 【請求項7】 上記複数の記憶装置は、各記憶領域がマ
    トリクス状となるように配置されており、 上記制御手段は、アドレスを円環状にシフトさせながら
    列ベクタの一系統をなす要素データを複数の記憶装置の
    それぞれ異なる列アドレスの記憶領域に格納させ、マト
    リクスの同一列単位でアドレス指定を行って並列出力ベ
    クタを出力させるように上記アドレス発生手段を制御す
    る請求項5記載の行列転置装置。
  8. 【請求項8】 上記複数の記憶装置は、各記憶領域がマ
    トリクス状となるように配置されており、 上記転置制御手段は、複数のデータ列をシフトさせなが
    ら列ベクタの一系統をなす要素データを複数の記憶装置
    のそれぞれ同一の列アドレスの記憶領域に格納させ、ア
    ドレスを円環状にシフトさせて並列出力ベクタを出力さ
    せるように上記アドレス発生手段を制御する請求項5記
    載の行列転置装置。
  9. 【請求項9】 正方行列を入出力する請求項5記載の行
    列転置装置。
JP31476696A 1996-11-26 1996-11-26 行列転置装置 Expired - Fee Related JP3845920B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP31476696A JP3845920B2 (ja) 1996-11-26 1996-11-26 行列転置装置
US08/974,958 US6021420A (en) 1996-11-26 1997-11-20 Matrix transposition device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP31476696A JP3845920B2 (ja) 1996-11-26 1996-11-26 行列転置装置

Publications (2)

Publication Number Publication Date
JPH10154140A true JPH10154140A (ja) 1998-06-09
JP3845920B2 JP3845920B2 (ja) 2006-11-15

Family

ID=18057336

Family Applications (1)

Application Number Title Priority Date Filing Date
JP31476696A Expired - Fee Related JP3845920B2 (ja) 1996-11-26 1996-11-26 行列転置装置

Country Status (2)

Country Link
US (1) US6021420A (ja)
JP (1) JP3845920B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011002908A (ja) * 2009-06-16 2011-01-06 Fujitsu Semiconductor Ltd プロセッサ及び情報処理システム
JP2012009055A (ja) * 1999-07-26 2012-01-12 Intel Corp 2次元マトリクス処理のためのレジスタ
JPWO2013054468A1 (ja) * 2011-10-14 2015-03-30 パナソニックIpマネジメント株式会社 転置演算装置とその集積回路、および転置処理方法

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100239349B1 (ko) * 1996-12-20 2000-01-15 구자홍 역이산 코사인 변환기의 데이타 포멧 변환 회로
JP2001117909A (ja) * 1999-10-21 2001-04-27 Oki Electric Ind Co Ltd マトリクス形式データの転置回路
EP1122688A1 (en) * 2000-02-04 2001-08-08 Texas Instruments Incorporated Data processing apparatus and method
US7031994B2 (en) * 2001-08-13 2006-04-18 Sun Microsystems, Inc. Matrix transposition in a computer system
US20030084081A1 (en) * 2001-10-27 2003-05-01 Bedros Hanounik Method and apparatus for transposing a two dimensional array
US6693643B1 (en) 2001-12-31 2004-02-17 Apple Computer, Inc. Method and apparatus for color space conversion
US6877020B1 (en) * 2001-12-31 2005-04-05 Apple Computer, Inc. Method and apparatus for matrix transposition
US7558947B1 (en) 2001-12-31 2009-07-07 Apple Inc. Method and apparatus for computing vector absolute differences
US7305540B1 (en) 2001-12-31 2007-12-04 Apple Inc. Method and apparatus for data processing
US7034849B1 (en) 2001-12-31 2006-04-25 Apple Computer, Inc. Method and apparatus for image blending
US6822654B1 (en) 2001-12-31 2004-11-23 Apple Computer, Inc. Memory controller chipset
US7055018B1 (en) 2001-12-31 2006-05-30 Apple Computer, Inc. Apparatus for parallel vector table look-up
US7114058B1 (en) 2001-12-31 2006-09-26 Apple Computer, Inc. Method and apparatus for forming and dispatching instruction groups based on priority comparisons
US7015921B1 (en) 2001-12-31 2006-03-21 Apple Computer, Inc. Method and apparatus for memory access
US6573846B1 (en) 2001-12-31 2003-06-03 Apple Computer, Inc. Method and apparatus for variable length decoding and encoding of video streams
US6931511B1 (en) 2001-12-31 2005-08-16 Apple Computer, Inc. Parallel vector table look-up with replicated index element vector
US7681013B1 (en) 2001-12-31 2010-03-16 Apple Inc. Method for variable length decoding using multiple configurable look-up tables
US6697076B1 (en) 2001-12-31 2004-02-24 Apple Computer, Inc. Method and apparatus for address re-mapping
US7467287B1 (en) 2001-12-31 2008-12-16 Apple Inc. Method and apparatus for vector table look-up
US6781528B1 (en) 2002-10-24 2004-08-24 Apple Computer, Inc. Vector handling capable processor and run length encoding
US6707398B1 (en) 2002-10-24 2004-03-16 Apple Computer, Inc. Methods and apparatuses for packing bitstreams
US6707397B1 (en) 2002-10-24 2004-03-16 Apple Computer, Inc. Methods and apparatus for variable length codeword concatenation
US6781529B1 (en) 2002-10-24 2004-08-24 Apple Computer, Inc. Methods and apparatuses for variable length encoding
US8423597B1 (en) * 2003-08-29 2013-04-16 Nvidia Corporation Method and system for adaptive matrix trimming in an inverse discrete cosine transform (IDCT) operation
US7490120B2 (en) * 2003-09-29 2009-02-10 International Business Machines Corporation Method and structure for producing high performance linear algebra routines using a selectable one of six possible level 3 L1 kernel routines
US7475101B2 (en) 2003-09-29 2009-01-06 International Business Machines Corporation Method and structure for producing high performance linear algebra routines using streaming
US7571435B2 (en) * 2003-09-29 2009-08-04 International Business Machines Corporation Method and structure for producing high performance linear algebra routines using preloading of floating point registers
US7386582B2 (en) * 2003-09-29 2008-06-10 International Business Machines Corporation Method and structure for producing high performance linear algebra routines using a hybrid full-packed storage format
US7487195B2 (en) * 2003-09-29 2009-02-03 International Business Machines Corporation Method and structure for producing high performance linear algebra routines using composite blocking based on L1 cache size
US20050071405A1 (en) * 2003-09-29 2005-03-31 International Business Machines Corporation Method and structure for producing high performance linear algebra routines using level 3 prefetching for kernel routines
US7469266B2 (en) * 2003-09-29 2008-12-23 International Business Machines Corporation Method and structure for producing high performance linear algebra routines using register block data format routines
US7483932B1 (en) * 2004-05-05 2009-01-27 Sun Microsystems, Inc. Method and system for computing multidimensional fast Fourier transforms
US7966509B2 (en) * 2006-05-30 2011-06-21 Nvidia Corporation System and method for performing low power dynamic trimming
US8095745B1 (en) * 2006-08-07 2012-01-10 Marvell International Ltd. Non-sequential transfer of data from a memory
US9798698B2 (en) 2012-08-13 2017-10-24 Nvidia Corporation System and method for multi-color dilu preconditioner
CN103237157B (zh) * 2013-05-13 2015-12-23 四川虹微技术有限公司 一种实时高清视频图像转置器
TWI570573B (zh) 2014-07-08 2017-02-11 財團法人工業技術研究院 矩陣轉置電路
JP6943283B2 (ja) * 2017-08-07 2021-09-29 日本電気株式会社 高速フーリエ変換装置、データ並べ替え処理装置、高速フーリエ変換処理方法およびプログラム
CN109408117B (zh) * 2018-10-08 2021-01-26 京东方科技集团股份有限公司 矩阵转置装置及方法、显示装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6160148A (ja) * 1984-08-31 1986-03-27 Fujitsu Ltd イメ−ジデ−タメモリシステム
JPH0298790A (ja) * 1988-10-04 1990-04-11 Mitsubishi Electric Corp 二次元離散データ直交変換用集積回路装置
JPH03160537A (ja) * 1989-11-20 1991-07-10 Fuji Xerox Co Ltd メモリ制御装置
JPH06334869A (ja) * 1993-05-25 1994-12-02 Ricoh Co Ltd データ転置装置
JPH08305819A (ja) * 1995-04-28 1996-11-22 Hitachi Ltd 2次元直交変換演算装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5644517A (en) * 1992-10-22 1997-07-01 International Business Machines Corporation Method for performing matrix transposition on a mesh multiprocessor architecture having multiple processor with concurrent execution of the multiple processors
US5481487A (en) * 1994-01-28 1996-01-02 Industrial Technology Research Institute Transpose memory for DCT/IDCT circuit
KR0175733B1 (ko) * 1995-11-01 1999-04-15 이준 비트-시리얼 메트릭스 전치를 위한 초대규모 집적회로

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6160148A (ja) * 1984-08-31 1986-03-27 Fujitsu Ltd イメ−ジデ−タメモリシステム
JPH0298790A (ja) * 1988-10-04 1990-04-11 Mitsubishi Electric Corp 二次元離散データ直交変換用集積回路装置
JPH03160537A (ja) * 1989-11-20 1991-07-10 Fuji Xerox Co Ltd メモリ制御装置
JPH06334869A (ja) * 1993-05-25 1994-12-02 Ricoh Co Ltd データ転置装置
JPH08305819A (ja) * 1995-04-28 1996-11-22 Hitachi Ltd 2次元直交変換演算装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012009055A (ja) * 1999-07-26 2012-01-12 Intel Corp 2次元マトリクス処理のためのレジスタ
JP2011002908A (ja) * 2009-06-16 2011-01-06 Fujitsu Semiconductor Ltd プロセッサ及び情報処理システム
JPWO2013054468A1 (ja) * 2011-10-14 2015-03-30 パナソニックIpマネジメント株式会社 転置演算装置とその集積回路、および転置処理方法
US9201899B2 (en) 2011-10-14 2015-12-01 Panasonic Intellectual Property Management Co., Ltd. Transposition operation device, integrated circuit for the same, and transposition method

Also Published As

Publication number Publication date
US6021420A (en) 2000-02-01
JP3845920B2 (ja) 2006-11-15

Similar Documents

Publication Publication Date Title
JPH10154140A (ja) 行列転置装置
US5422997A (en) Texture address generator, texture pattern generator, texture drawing device, and texture address generating method
JP3442192B2 (ja) データ駆動型情報処理装置
US5253213A (en) Semiconductor memory used for changing sequence of data
JP2851804B2 (ja) 2次元直交変換装置
JPH0556347A (ja) 画像処理装置
KR0167834B1 (ko) 다중화면 효과처리방법 및 그 장치
JPS6083177A (ja) ラベル付けプロセツサ
JP2002163887A (ja) シンクロナスdram
JPH07264395A (ja) 画像縮小装置
JP2769384B2 (ja) 演算制御icおよび情報処理装置
JP2824976B2 (ja) 2次元配列データ回転装置
JPS6226548A (ja) メモリ制御装置
JPH05113928A (ja) 画像メモリ装置
JPH07110786A (ja) 半導体記憶装置
JP2884815B2 (ja) 効率的な映像分析処理メモリシステム
JPS6125192B2 (ja)
JPH06215559A (ja) ページメモリアクセス方式
JP3429880B2 (ja) メモリ装置およびメモリアクセス方法
JPH10282961A (ja) 楽音制御パラメータ生成装置
JPH01319840A (ja) アドレス変換回路
JPH03131899A (ja) パターン変換回路
JPH07160575A (ja) メモリシステム
JPH05120121A (ja) 番地変換機能付記憶装置
JPS59186057A (ja) イメ−ジメモリシステムにおけるアクセス処理方式

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20051201

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20051206

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060201

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20060801

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060814

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100901

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110901

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120901

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120901

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130901

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees