JP3845920B2 - 行列転置装置 - Google Patents

行列転置装置 Download PDF

Info

Publication number
JP3845920B2
JP3845920B2 JP31476696A JP31476696A JP3845920B2 JP 3845920 B2 JP3845920 B2 JP 3845920B2 JP 31476696 A JP31476696 A JP 31476696A JP 31476696 A JP31476696 A JP 31476696A JP 3845920 B2 JP3845920 B2 JP 3845920B2
Authority
JP
Japan
Prior art keywords
output
matrix
input
address
storage
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
JP31476696A
Other languages
English (en)
Other versions
JPH10154140A (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.)
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

Images

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)

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】
本発明によれば、入力列ベクタに対して転置作用を施して出力列ベクタを得る行列転置装置であって、各々独立に入力列ベクタXkの任意の要素を選択して出力する入力選択装置と、各々独立に値域をもつアドレスを1系統出力することができ、入力手順および出力手順に先立って各々独立にアドレス値を設定可能で、入力手順中または出力手順中の各1動作毎にアドレス値を1ずつ増加または減少させるアドレス発生器と記憶領域がマトリクス状になるように配置され、各々上記アドレス発生器で発生されるアドレスで指定可能な記憶領域を有し、1つの書き込み動作と1つの読み込み動作を実行する記憶装置と、各々独立に任意の上記記憶装置の出力を選択して出力する装置であり、上記記憶装置の出力が入力される毎にこの装置の最終出力行列である列ベクタYhを逐次出力する出力選択装置と入力列ベクタXkを上記記憶装置に記憶するときは、任意の入力行ベクタの各要素が互いに異なる記憶装置に格納されるように上記入力選択装置およびアドレス発生を制御し、また、上記記憶装置に記憶された要素データを読み出すときは、この読み出し時のアドレス順序が上記記憶時のアドレス順序と異なり、上記記憶装置に格納された各行列要素に応じて任意の転置出力列ベクタを定められた順序および定められた列ベクタ内の要素の順を保ちつつ並列に出力されるように上記アドレス発生を制御する制御手段とを有する。
【0015】
本発明によれば、たとえば複数の記憶装置は、各記憶領域がマトリクス状となるように配置され、制御手段によって、アドレスを循環させながら列ベクタの一系統をなす要素データが複数の記憶装置のそれぞれ異なる列アドレスの記憶領域に格納される。そして、マトリクスの同一列単位でアドレス指定を行って並列出力ベクタが出力される。
また、たとえば複数のデータ列をシフトさせながら列ベクタの一系統をなす要素データが複数の記憶装置のそれぞれ同一の列アドレスの記憶領域に格納され、アドレスを循環させて並列出力ベクタの出力が行われる。
これにより、高速な転置操作を実現でき、2次元直交変換等の演算処理を高速化することができる。
また、本行列転置装置は、正方行列データを入出力とすることも可能であり、たとえば2次元直交変換を処理する専用演算装置、画像圧縮装置または画像伸長装置に使用される2次元直交変換を処理する専用演算装置、あるいは2次元直交変換を処理する場合がある汎用演算装置の一部等に使用することが可能である。
【0016】
【発明の実施の形態】
以下、図面を参照し、本発明の実施例について説明する。
【0017】
図1は、本発明に係る行列転置装置の一実施形態を示すブロック構成図である。
図1に示すように、行列転置装置20は、入力選択装置21−0〜21−p、記憶装置22−0〜22−p、アドレス発生器23−0〜23−p、出力選択装置24−0〜24−n、および制御回路25により構成されている。また図中26は演算器を示している。
【0018】
なお、本実施形態では説明を簡単にするため、行列の要素、選択装置、記憶装置などを指定するための添え字は1からではなく0から始まるものとしている。入力行列Xの各要素をXij(i=0〜m、j=0〜n)と表し、たとえば通常の表現でのXの(1、2)要素、すなわち行列の最上段の左から2番目の要素はX01と表記する。出力行列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までの値域をもつアドレスADR0〜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制御信号CTL2をアドレス発生器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の制御信号CTL1,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】
列ベクタ書き込みは、上記定義どおりである。ただし、列ベクタ書き込み実行時の入力選択装置21−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制御信号CTL3が設定され、アドレス発生器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 Cosine Transform) を例に、さらに具体的な動作について、図2〜図4に関連付けて説明する。
図2〜図4において、8×8のマトリクス状のものは、8個の記憶領域を有し、アドレスADR0〜ADR7で8個の記憶領域を任意に指定可能な1×8の記憶装置8段分(本例ではp=7)を示している。図中、横方向がアドレス方向、縦方向が記憶装置の配置方向である。
【0039】
図2(a)は初期状態を示す。このとき、入力は列ベクタX00〜X70であり、アドレス発生器(23−0〜23−7)によるアドレス指定は、上段の記憶装置22−0から順次にADR0〜7である。
その結果、図2(b)に示すように、入力列ベクタX00〜X70が対角線状に記憶される。そして、このときの次の入力は列ベクタX01〜X71であり、図にあるように入力列ベクタの要素も円環状にシフトされる。アドレス指定は、図2(b)に示すように、いわゆる円環状に1つシフトされる。すなわち、1段目のアドレス指定はADR1、2段目はADR2、3段目はADR3、4段目はADR4、5段目はADR5、6段目はADR6、7段目はADR7、そして8段目はADR0である。
このように、8個の列ベクタの入力毎にアドレスが円環状に1つずつシフトされ、図3(a)に示すように、64個の記憶領域に全データが格納される。
【0040】
そして、読み出しを行う場合のアドレス発生器(23−0〜23−7)によるアドレス指定は、図3(d)に示すように、8段全ての記憶装置に対してADR0である。その結果、図3(d)に示すように、記憶領域のマトリクスにおける1列目の全データX00〜X07が読み出される。
次に、アドレス発生器(23−0〜23−7)によるアドレス指定は、図4(e)に示すように、8段全ての記憶装置に対してアドレスADR1である。その結果、図4(e)に示すように、記憶領域のマトリクスにおける2列目の全データX10〜X17が読み出される。
同様に、全記憶装置に対して同一のアドレス指定が順次行われ、図4(f)に示すように、アドレスADR7の指定により、8列目のデータX70〜X77が読み出される。
【0041】
このように、8個のデータ列を、アドレスを円環状に1つずつシフトさせながら8段の記憶装置22−0〜22−7に格納し、そのデータを読み出するときは、1列目から順番にアドレス指定することにより、転置のオーバーヘッドをなくすことができる。
【0042】
なお、以上の図2〜図4の例は、アドレスを円環状に1つずつシフトさせながら、8段の記憶装置に格納し、そのデータを読み出すときは、1列目から順番にアドレス指定するものであるが、これとは逆の構成も可能である。
すなわち、図5〜図7に示すように、8個のデータ列を円環状にシフトしつつ格納し、そのデータを読み出す際に各アドレスを円環状にシフトさせるように構成することも可能である。
【0043】
図5(a)が初期状態を示す。このとき、入力は列ベクタX00〜X70であり、アドレス発生器(23−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段目のアドレス指定はADR0、2段目はADR7、3段目はADR6、4段目はADR5、5段目はADR4、6段目はADR3、7段目はADR2、そして8段目はADR1である。
その結果、図6(d)に示すように、記憶領域のマトリクスにおける1列目の全データX00〜X07が読み出される。
次に、図7(e)に示すように、アドレス指定が円環状にシフトされて行われる。すなわち、上段の記憶装置22−0から1段目のアドレス指定はADR1、2段目はADR0、3段目はADR7、4段目はADR6、5段目はADR5、6段目はADR4、7段目はADR3、そして8段目はADR2である。
同様に、アドレス指定が円環状に1つずつシフトされ、図4(f)に示すように、アドレスADR7の指定により、8列目のデータX70〜X77が読み出される。この場合のアドレス指定は、1段目はADR7、2段目はADR6、3段目はADR5、4段目はADR4、5段目はADR3、6段目はADR2、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 (4)

  1. 入力列ベクタに対して転置作用を施して出力列ベクタを得る行列転置装置であって、
    各々独立に入力列ベクタXkの任意の要素を選択して出力する入力選択装置と
    各々独立に値域をもつアドレスを1系統出力することができ、入力手順および出力手順に先立って各々独立にアドレス値を設定可能で、入力手順中または出力手順中の各1動作毎にアドレス値を1ずつ増加または減少させるアドレス発生器と
    記憶領域がマトリクス状になるように配置され、各々上記アドレス発生器で発生されるアドレスで指定可能な記憶領域を有し、1つの書き込み動作と1つの読み込み動作を実行する記憶装置と、
    各々独立に任意の上記記憶装置の出力を選択して出力する装置であり、上記記憶装置の出力が入力される毎にこの装置の最終出力行列である列ベクタYhを逐次出力する出力選択装置と
    入力列ベクタXkを上記記憶装置に記憶するときは、任意の入力行ベクタの各要素が互いに異なる記憶装置に格納されるように上記入力選択装置およびアドレス発生を制御し、また、上記記憶装置に記憶された要素データを読み出すときは、この読み出し時のアドレス順序が上記記憶時のアドレス順序と異なり、上記記憶装置に格納された各行列要素に応じて任意の転置出力列ベクタを定められた順序および定められた列ベクタ内の要素の順を保ちつつ並列に出力されるように上記アドレス発生を制御する制御手段と
    を有する行列転置装置。
  2. 上記複数の記憶装置は、各記憶領域がマトリクス状となるように配置されており、
    上記制御手段は、アドレスを循環させながら列ベクタの一系統をなす要素データを複数の記憶装置のそれぞれ異なる列アドレスの記憶領域に格納させ、マトリクスの同一列単位でアドレス指定を行って並列出力ベクタを出力させるように上記アドレス発生を制御する請求項記載の行列転置装置。
  3. 上記複数の記憶装置は、各記憶領域がマトリクス状となるように配置されており、
    上記制御手段は、複数のデータ列をシフトさせながら列ベクタの一系統をなす要素データを複数の記憶装置のそれぞれ同一の列アドレスの記憶領域に格納させ、アドレスを循環させて並列出力ベクタを出力させるように上記アドレス発生を制御する請求項記載の行列転置装置。
  4. 正方行列データを入出力する請求項記載の行列転置装置。
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 JPH10154140A (ja) 1998-06-09
JP3845920B2 true 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)

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100239349B1 (ko) 1996-12-20 2000-01-15 구자홍 역이산 코사인 변환기의 데이타 포멧 변환 회로
US6625721B1 (en) * 1999-07-26 2003-09-23 Intel Corporation Registers for 2-D matrix processing
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
US7034849B1 (en) 2001-12-31 2006-04-25 Apple Computer, Inc. Method and apparatus for image blending
US6693643B1 (en) 2001-12-31 2004-02-17 Apple Computer, Inc. Method and apparatus for color space conversion
US6822654B1 (en) 2001-12-31 2004-11-23 Apple Computer, Inc. Memory controller chipset
US6697076B1 (en) 2001-12-31 2004-02-24 Apple Computer, Inc. Method and apparatus for address re-mapping
US7114058B1 (en) 2001-12-31 2006-09-26 Apple Computer, Inc. Method and apparatus for forming and dispatching instruction groups based on priority comparisons
US6573846B1 (en) 2001-12-31 2003-06-03 Apple Computer, Inc. Method and apparatus for variable length decoding and encoding of video streams
US7055018B1 (en) 2001-12-31 2006-05-30 Apple Computer, Inc. Apparatus for parallel vector table look-up
US7015921B1 (en) 2001-12-31 2006-03-21 Apple Computer, Inc. Method and apparatus for memory access
US6877020B1 (en) * 2001-12-31 2005-04-05 Apple Computer, Inc. Method and apparatus for matrix transposition
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
US7467287B1 (en) 2001-12-31 2008-12-16 Apple Inc. Method and apparatus for vector table look-up
US7305540B1 (en) 2001-12-31 2007-12-04 Apple Inc. Method and apparatus for data processing
US7558947B1 (en) 2001-12-31 2009-07-07 Apple Inc. Method and apparatus for computing vector absolute differences
US6781529B1 (en) 2002-10-24 2004-08-24 Apple Computer, Inc. Methods and apparatuses for variable length encoding
US6707398B1 (en) 2002-10-24 2004-03-16 Apple Computer, Inc. Methods and apparatuses for packing bitstreams
US6781528B1 (en) 2002-10-24 2004-08-24 Apple Computer, Inc. Vector handling capable processor and run length encoding
US6707397B1 (en) 2002-10-24 2004-03-16 Apple Computer, Inc. Methods and apparatus for variable length codeword concatenation
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
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
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
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
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
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
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
JP5633122B2 (ja) * 2009-06-16 2014-12-03 富士通セミコンダクター株式会社 プロセッサ及び情報処理システム
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
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 財團法人工業技術研究院 矩陣轉置電路
EP3667522A4 (en) * 2017-08-07 2020-10-14 Nec Corporation RAPID FOURIER TRANSFORMATION DEVICE, DATA SORTING PROCESSING DEVICE, RAPID FOURIER TRANSFORMATION PROCESSING, AND PROGRAM RECORDING MEDIA
CN109408117B (zh) * 2018-10-08 2021-01-26 京东方科技集团股份有限公司 矩阵转置装置及方法、显示装置

Family Cites Families (8)

* 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 イメ−ジデ−タメモリシステム
JP2666411B2 (ja) * 1988-10-04 1997-10-22 三菱電機株式会社 二次元離散データ直交変換用集積回路装置
JPH03160537A (ja) * 1989-11-20 1991-07-10 Fuji Xerox Co Ltd メモリ制御装置
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
JP3291070B2 (ja) * 1993-05-25 2002-06-10 株式会社リコー データ転置装置
US5481487A (en) * 1994-01-28 1996-01-02 Industrial Technology Research Institute Transpose memory for DCT/IDCT circuit
JPH08305819A (ja) * 1995-04-28 1996-11-22 Hitachi Ltd 2次元直交変換演算装置
KR0175733B1 (ko) * 1995-11-01 1999-04-15 이준 비트-시리얼 메트릭스 전치를 위한 초대규모 집적회로

Also Published As

Publication number Publication date
JPH10154140A (ja) 1998-06-09
US6021420A (en) 2000-02-01

Similar Documents

Publication Publication Date Title
JP3845920B2 (ja) 行列転置装置
US5422997A (en) Texture address generator, texture pattern generator, texture drawing device, and texture address generating method
KR0174774B1 (ko) 반도체 메모리와 그 사용 방법, 컬럼 디코더 및 화상 프로세서
JP3138173B2 (ja) グラフィックス用フレームメモリ装置
JPH03231383A (ja) 画像縮小/拡大方法及び装置
US5371840A (en) Polygon tiling engine
JP3442192B2 (ja) データ駆動型情報処理装置
JP2004192110A (ja) 半導体装置及び画像データ処理装置
US5412740A (en) Signal processing system having reduced memory space
US5812171A (en) Apparatus and method for inputting characters and symbols using a combination of numeric keys
JP2851804B2 (ja) 2次元直交変換装置
US5077808A (en) Method for processing an image by histogram alteration
JP3151788B2 (ja) 矩形原画像の回転方法
US6046753A (en) Electronic image processing system for modifying initial image data
KR0167834B1 (ko) 다중화면 효과처리방법 및 그 장치
JPH06324935A (ja) アドレス発生器およびアドレス発生システム
JP2884815B2 (ja) 効率的な映像分析処理メモリシステム
JP3162918B2 (ja) 画像処理装置および方法
JPH07110786A (ja) 半導体記憶装置
JPH0312752A (ja) 画像データアクセス方式
JPH09212637A (ja) 画像処理プロセッサ
JP2877779B2 (ja) 図形表示装置及び方法
JP3397838B2 (ja) 画像処理装置及び離散コサイン変換方法
JP4650459B2 (ja) 半導体装置およびデータ処理装置
JPH0417471B2 (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