JP3731191B2 - Transposition processing method for matrix data - Google Patents

Transposition processing method for matrix data Download PDF

Info

Publication number
JP3731191B2
JP3731191B2 JP17859396A JP17859396A JP3731191B2 JP 3731191 B2 JP3731191 B2 JP 3731191B2 JP 17859396 A JP17859396 A JP 17859396A JP 17859396 A JP17859396 A JP 17859396A JP 3731191 B2 JP3731191 B2 JP 3731191B2
Authority
JP
Japan
Prior art keywords
data
read
writing
circuit
reading
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
JP17859396A
Other languages
Japanese (ja)
Other versions
JPH1011422A (en
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.)
Oki Electric Industry Co Ltd
Original Assignee
Oki Electric Industry Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Oki Electric Industry Co Ltd filed Critical Oki Electric Industry Co Ltd
Priority to JP17859396A priority Critical patent/JP3731191B2/en
Publication of JPH1011422A publication Critical patent/JPH1011422A/en
Application granted granted Critical
Publication of JP3731191B2 publication Critical patent/JP3731191B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Complex Calculations (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、DCT(離散コサイン変換)回路等に応用されるマトリクス形式データの転置処理方法に関する。
【0002】
【従来の技術】
例えば、MPEG(Moving Picture Experts Group)のような画像圧縮符号化技術においては、画像データをDCT処理する際に頻繁に行列式の演算が行われる。行列式の積を処理する場合には、行方向のデータと列方向のデータの入れ換えが行われる。DCT処理等の直交変換では、各種の演算処理において、マトリクス形式のデータの行方向のデータと列方向のデータを置き換える、いわゆる転置処理が行われる。このような処理は、従来、例えば2組のRAM(ランダム・アクセス・メモリ)を使用し、一方のRAMにマトリクス形式のデータを書き込み、その書込みが終了すると他方のRAMに同様のマトリクス形式のデータを書き込む。そして、他方のRAMにデータを書き込んでいる間に既にデータを書き込んだ一方のRAMから行方向と列方向の変換を行うようにアドレスを制御し読出しをする。これによって、行方向に書き込んだデータを列方向に読み出し転置処理を行うことができる。
【0003】
【発明が解決しようとする課題】
ところで、上記のような従来のマトリクス形式データの転置処理装置には次のような解決すべき課題があった。
行方向にメモリに書き込んだデータを列方向に読み出すためには、書き込みアドレスとは全く異なる読み出しアドレスを生成し、読み出し制御を行わなければならない。従って、RAMにマトリクス形式のデータ書き込み終了後、アドレスカウンタを切り換えて改めてデータの読み出しを行うといった作業になる。この処理を高速化するには2組のRAMを交互に使用する。このため、回路規模が大きくなるという問題があった。
【0004】
また、上記の従来の方法では、行方向にデータを書き込み、列方向にデータを読み出すためには、列方向に読み出すべきデータの書き込みが終るまで読み出しを待たなければならない。従って、読み出し開始が遅れるため、転置RAMの後段での処理も遅れてしまうという問題点があった。
【0005】
【課題を解決するための手段】
本発明は以上の点を解決するため次の構成を採用する。
〈構成1〉
本発明は、書き込み及び読み出し用の各ポートを備えるメモリに対しn×m個のブロックデータをn行×m列(n、m:二以上の整数)のマトリクスに書き込み及び読み出すマトリクス形式データの転置処理方法であって、前記メモリに対し行方向に前記ブロックデータの書き込みを開始し、n行1列目にデータを書き込んだ時点で列方向での読み出しを開始するステップと、前記メモリに対し列方向に次のブロックデータの書き込みを開始し、m列1行目にデータを書き込んだ時点で行方向での読み出しを開始するステップと、
を含むことを特徴とするマトリクス形式データの転置処理方法である。
【0006】
〈説明〉
このメモリのデータ書き込み用のポートとデータ読み出し用のポートとは、互いに独立しており、データ書き込み用アドレスとデータ読み出し用アドレスが別々に供給されて、同時にデータの読み書きができる。マトリクス形式のデータとは、行要素と列要素とを含むデータでその内容は任意である。
メモリにデータが行方向に順に書き込まれたとき、そのデータを列方向に読み出せば、マトリクス形式のデータの行要素と列要素の転置ができる。そこで、制御回路が、その読み出し開始のための最適なタイミングを通知する。
【0007】
一方、メモリ中で既に読み出しを終了したデータ上には、次の一群のデータを上書きして差し支えないが、列方向に読み出しをしている場合に、行方向にデータの書き込みを行うと、まだ読み出されていないデータの上に新たなデータを上書きすることになる。そこで、一群のデータ書き込みを行方向に行った後は、今度は列方向にデータの書き込みを行う。こうしてデータの書き込み方向を交互に変更すると、データの書き込みと読み出しを連続的に行う場合に書き込みアドレスと読み出しアドレスとの衝突もなく、無駄な待ち時間も少なく多ポートメモリを使用したデータの転置処理ができる。
例えば行方向にデータを書き込んでいるとき、最初に読み出すべき1列目のデータが書き込まれてから、読み出しを開始すれば、書き込みと読み出しの速度が同一でもアドレスの衝突が起きない。
【0008】
〈構成2〉
構成1において、前記読み出しの開始後に連続させて同一方向への書き込みを開始することを特徴とする請求項1記載のマトリクス形式データの転置処理方法。
【0011】
〈説明
ータは1データずつ読み書きされるから、データが読み出されたらすぐにのデータを同一方向に書き込むようにしても差し支えない
【0012】
【発明の実施の形態】
以下、本発明の実施の形態を具体例を用いて説明する。
〈具体例〉
図1は、本発明の装置の具体例を示すブロック図である。
この発明では、図に示すようにマトリクス形式のデータを一時格納し転置処理するために、2ポートメモリ1を使用する。2ポートメモリ1のデータ入力端子DIとデータ出力端子DOには、それぞれDCT回路2とDCT回路3が接続されている。DCT回路2及び3はいずれもマトリクス形式のデータの行と列の変換処理を行いながら所定の演算を実行する回路である。この2ポートメモリ1の書き込みアドレス入力端子WAIには書き込みアドレス生成部5の生成した書き込みアドレスWAOが入力する。また、読み出しアドレス入力端子RAIには読み出しアドレス生成部6が生成した読み出しアドレスRAOが入力する。
【0013】
この書き込みアドレス生成部5や読み出しアドレス生成部6の動作制御のために制御回路4が設けられている。この制御回路4には、まず上位装置から書き込み開始時に、書き込みを許可する書き込み許可信号WRが入力する。この信号は制御回路4だけでなく書き込みアドレス生成部5にも入力する。また、転置処理を開始する以前に読み出し許可信号及びRAMに入力するアドレスのリセットを行うために、リセット信号RSが入力する。この信号は制御回路4、書き込みアドレス生成部5及び読み出しアドレス生成部6に入力する。
【0014】
書き込みアドレス生成部5は、所定のアドレスまで書き込みを終了した後、読み出し可能なアドレスに達すると、制御回路4に対して読み出しタイミング信号WVを出力するよう構成されている。また、制御回路4は、後で説明するように、この読み出しタイミング信号を受け入れて読み出しアドレス生成部6に対し読み出し開始を許可する読み出し許可信号RRを出力する。また、読み出しアドレス生成部6は、マトリクス形式の一連のデータ読み出しを終了すると、制御回路4に対し読み出し終了信号RVを出力する。
【0015】
図2には、書き込みアドレス生成部の具体的な結線図を示す。
この書き込みアドレス生成部5は、図に示すようにカウンタ11及びセレクタ12から構成されている。カウンタ11には、リセット信号RSと書き込み許可信号WRが入力するよう構成されている。そして、カウンタ11は図示しないクロック信号によりデータの書き込み毎にアドレス信号生成のためのカウントアップを行う。なお、カウンタ11はアドレス生成のために7ビットの信号をカウントアップしながら出力する。セレクタ12は、カウンタ11の出力を受け入れて2種類のアドレス信号のうちいずれか一方を選択して出力するよう構成されている。即ち、カウンタ11のx0〜x5の6ビットのカウント値にはA0〜A5という記号を付した。また、カウンタ11のx0〜x5の上位3ビットと下位3ビットを入れ換えたカウント値をB0〜B5というように表示した。
【0016】
カウンタ11の出力x6,x5,x4,x3,x2,x1,x0のうちx6は図のようにセレクタ12の選択信号入力端子SA,SBに入力されている。カウンタ11のx5,x4,x3,x2,x1,x0はそれぞれA5及びB2、A4及びB1、A3及びB0、A2及びB5、A1及びB4、A0及びB3に接続されている。セレクタ12の出力WAOは図1に示す2ポートメモリ1の書き込みアドレスである。なお、このセレクタ12からは、X6=0(SA=1,SB=0)のとき、A5,A4,A3,A2,A1,A0つまりx5,x4,x3,x2,x1,x0が出力され、x6=0(SA=0,SB=1)のときB5,B4,B3,B2,B1,B0つまりx2,x1,x0,x5,x4,x3が出力されるように構成されている。
また、カウンタ11の出力x5,x4,x3,x2,x1,x0はアンド回路15によってデコードされ、読み出しタイミング信号WVとされる。
【0017】
図3には、読み出しアドレス生成部6の具体的な結線図を示す。
この読み出しアドレス生成部6もカウンタ13及びセレクタ14から構成されている。そして、この回路も同様にセレクタ14によってカウンタ13の出力と、その上位ビット及び下位ビットを反転した出力を選択して、読み出しアドレスRAOとするように構成されている。即ち、カウンタ13の出力y6,y5,y4,y3,y2,y1,y0のうちy6は図のようにセレクタ14の選択信号入力端子SA,SBに入力されている。カウンタ13のy5,y4,y3,y2,y1,y0はそれぞれA5及びB2、A4及びB1、A3及びB0、A2及びB5、A1及びB4、A0及びB3に接続されている。セレクタ14の出力RAOは2ポートメモリ1の読み出しアドレスである。このセレクタ12からはy6=1(SA=1,SB=0)のとき、A5,A4,A3,A2,A1,A0つまりy5,y4,y3,y2,y1,y0が出力されるように構成されている。
カウンタ13の出力y5,y4,y3,y2,y1,y0はAND回路16によってデコードされ、読み出し終了信号RVとされる。
【0018】
図2に示すAND回路15はx5x4x3x2x1=(111000)2 =(56)10のときのみ“1”を出力し、図3に示すAND回路16はy5y4y3y2y1y0=(111111)2 =(63)10のときのみ“1”を出力する。こうしてAND回路15は、例えば行方向にデータを書き込んだ場合に、列方向の読み出しが可能になったタイミングで読み出しタイミング信号WVを出力し読み出しアドレス制御の出力開始制御を行う。また、AND回路16は、全ての読み出しが終了した後に読み出し終了信号RVを出力して転置処理終了の合図等に利用される。
【0019】
また、セレクタ12は、例えば8×8のマトリクス形式データを書き込む場合に、64個のデータ書き込みを終了すると、それまでA0〜A5のアドレスを出力していた状態からB0〜B5のアドレスを出力する状態に切り換わる。この場合、上位3ビットと下位3ビットを取り替えていることから、行方向にデータを書き込んだ後、これが終了すると次は列方向にデータを書き込むようアドレス信号が出力される。一方、セレクタ14は丁度セレクタ12と反対の動作を行う。即ち、当初行方向への書き込みが行われていた場合には列方向の読み出しアドレスが出力され、その後、列方向にデータ書き込みを行うようになる。その読み出しのためには行方向の読み出しアドレスが出力される。セレクタ12及びセレクタ14はこのような動作を行うために設けられている。
【0020】
図4には、制御回路4の具体的な結線図を示す。
この回路は、書き込み許可信号WRと読み出しタイミング信号WVとを受け入れるANDゲート21と、読み出し終了信号RVを受け入れるNOTゲート22と、ANDゲート21とNOTゲート22の出力を制御するANDゲート23、ORゲート24、ANDゲート25と、フリップフロップ26から構成される。なお、ANDゲート23にはフリップフロップ26の出力とNOTゲート22の出力とが入力する。また、ORゲート24にはANDゲート21とANDゲート23の出力が入力する。更に、ANDゲート25にはORゲート24の出力とNOTゲート27の出力が入力する。このNOTゲート27にはリセット信号RSが入力する。
この回路は図のように構成することによって、フリップフロップ26に格納した信号をもとに、後で説明するようなタイミングで読み出し許可信号を出力する順序回路を構成している。
【0021】
図5を用いて、具体例1の装置の動作の概略を説明する。
この具体例では、例えば8×8個の正方マトリクス形式のブロックデータを2ポートメモリに書き込み、行方向に書き込んだブロックデータは行方向に読み出し、列方向に書き込んだブロックデータは行方向に読み出すようにして転置処理を行う。
まず、図5(1−a)に示すように、8×8のマトリクス状領域にAからBに向かって行方向に1ブロック目のデータの書き込みを開始する。
書き込みが進み、図5(1−a)に示すように、Cの位置、即ちアドレス56の位置まで書き込まれるとき、1ブロック目のデータの読み出しが可能となり、図5(1−b)のようにAからCに向かって列方向に読み出しが開始される。
以降、書き込みと読み出しが並行して行われ、Dの位置まで書き込んで、1ブロック目のデータの書き込みが終了する。このとき1ブロック目の読み出しは、AからCの位置までの一列分終了しており、読み出しは次の列から1ブロック目のデータを読み終るまで継続される。
【0022】
もし2ブロック目のデータの書き込みが続けて開始される場合は、図5(2−a)に示すように、1ブロック目の読み出しと並行して、列方向に書き込みが開始される。このとき、1ブロック目のデータの読み出しは、図5(2−b)のように進んでいるため、読み出しを終えていない1ブロック目のデータは壊されることもなく、また書き込みアドレスと読み出しアドレスが一致してデータが壊されることもない。
1ブロック目のデータの読み出しが終了し、図5(3−a)に示すように2ブロック目のデータの書き込みがBの位置に行われるとき、2ブロック目のデータの読み出しが可能となり、図5(3−b)に示すように、AからBに向かって行方向に読み出しが開始される。
以降、書き込みと読み出しが並行して行われ、図5(4−a)に示すように、2ブロック目のデータの書き込みが終了する。2ブロック目の読み出しは、図5(4−b)に示すようにCの位置まで終了しており、読み出しは次の行から2ブロック目のデータを読み終るまで継続される。
3ブロック目以降も、上記のようにして読み出しと書き込みを並行して行うことができる。
【0023】
図6には、具体例1の更に具体的な動作を説明するためのタイミングチャートを図示した。
図の(a)は、2ポートメモリ1へのデータ書き込み開始から数えた動作サイクルで、(b)は書き込み許可信号WR、(c)は書き込みアドレスWAO、(d)は読み出しタイミング信号WV、(e)は読み出し許可信号RR、(f)は読み出しアドレスRAO、(g)は読み出し終了信号RV、(h)は書き込みデータ、(i)は読み出しデータを表している。
【0024】
まず図1の回路で、リセット信号RSに“1”が入力され、図2に示すカウンタ11,13は“0000000”に、図4の制御回路4のD型フリップフロップ26は“0”にリセットされ、読み出し許可信号RRも“0”とされる。
次に図1に示す2次元DCT回路の1次元目のDCT回路2でデータが処理された後、2ポートメモリ1への書き込み許可信号WRが“1”となり、端子DIから入力したデータの書き込みが行われる。図2のカウンタ11は書き込み許可信号WR=“1”のとき図示しないクロックに同期して1ずつカウントアップを行う。これに応じて書き込みアドレス生成部5から2ポートメモリ1へ書き込みアドレスが0,1,2,3,…と出力され、端子DIに入力されたデータがそのアドレスへ書き込まれる。2ポートメモリ1に56個のデータつまり0〜55のアドレスにデータが書き込まれるまで、読み出しタイミング信号WVと読み出し終了信号RVは“0”が続くため、制御回路4の図4に示したフリップフロップ26の出力Qからは“0”が出力され続け、2ポートメモリ1の読み出し許可信号RRも“0”が出力され続けている。
【0025】
2ポートメモリ1に56個のデータが書き込まれると、サイクル57で図2に示すカウンタ11の出力はx5x4x3x2x1x0=(111000)2 =(56)10となる。この時点で2ポートメモリ1のアドレス0,1,2,…,55まではデータが書き込まれている。
次のデータが1次元目のDCT回路2から出力され書き込み許可信号WRに“1”が入力されると、2ポートメモリ1のアドレス“56”にデータの書き込みを行おうとする。このとき、制御回路4に読み出し許可信号WRと読み出しタイミング信号WVが“1”となって入力されるので、図4に示すフリップフロップ26の入力Dに“1”がセットされる。サイクル58でクロックに同期してその値が受け付けられると、Qから“1”が出力される。
【0026】
制御回路4は一度Dに“1”がセットされQ=“1”となると、リセット信号RSが“1”となるかまたは、WR,WVのどちらかが“0”でかつRVに“1”が入力されない限り“1”を出力し続ける。
フリップフロップ26の出力Qが“1”である限り、2ポートメモリ1の読み出し許可信号RRは“1”であり、読み出しが継続される。2ポートメモリ1はアドレス入力端子RAIにアドレスが入力すると、対応するアドレスからデータが読み出されて端子DOから出力される。
【0027】
図3に示すカウンタ13は読み出し許可信号RR=“1”のときクロックに同期して1ずつカウントアップを行う。これに応じて端子RAOから読み出しアドレスが0,8,16,…と出力される。これで列方向のデータ読み出しがされる。
2ポートメモリ1から63個のデータが読み出された後、制御回路4の入力RVは“1”となる。RRは“1”であるため、次のサイクルで64個目のデータがアドレス63から読み出される。WR,WVが“1”でない場合、フリップフロップ26のD端子には“0”が入力されるため、次のサイクルから2ポートメモリ1の読み出しは中止される。WR,WVが“1”であればD端子には“1”が入力されるので、読み出しは継続される。
【0028】
カウンタ11が64個カウントアップを行った後はx6=“1”となるので2ポートメモリ1への書き込みは0,8,16,…のアドレスの順に行われる。これは列方向の書き込みとなる。カウンタ13が64回カウントアップを行った後はy6=“1”となるので2ポートメモリ1の読み出しは0,1,2,3,…のアドレスの順に行われる。これは行方向の読み出しとなる。
2次元DCT回路では1ブロック64個(8行×8列)のうち8つのデータ(1行または1列分)をまとめて扱い処理を行うので、上記の方法のように、57個目のデータが書き込まれたことを検出すれば続いて58番目以降64番目までのデータを1次元目のDCT回路が出力できることを示しており、データの読み出しを開始することができる。
【0029】
〈具体例1の効果〉
以上のように、メモリに2ポートメモリを使用し、データの書き込みと同時に読み出しを行えるように構成すれば、同一構成のメモリを二重に設ける従来方法よりも回路規模を小さくすることができる。しかも、上記のように書き込みアドレスと読み出しアドレスを制御することによって、データの読み出しと書き込みを同時並行処理することができ、しかも2回以上繰り返してマトリクス状のデータの書き込みと読み出しを行う場合には両者の時間的な遅れを最小限にすることができる。なお、上記の例では8×8マトリクス形式のデータを取り扱った例を示したが、必ずしも正方行列でなく、行方向と列方向のデータ量が異なるようなものにも本発明の適用が可能である。また、このような転置処理のための回路の前後に位置する回路はDCT回路の他、各種の回路とすることができる。
【0030】
〈具体例2〉
図7以下には、具体例2の構成及び動作を説明する。なお、具体例2の全体構成を示すブロックは図1に示したものと全く同様である。そして、具体例2の書き込みアドレス生成部5は、図7に示した構成とされる。また、読み出しアドレス生成部6は図8に示した構成とされる。図7に示す書き込みアドレス生成部のカウンタ11及びセレクタ12と、及びこれらの間の接続や入出力信号は具体例1のものと全く同様である。この具体例2では、次のように読み出しタイミング信号を出力するためのANDゲート群18が設けられている。これらのANDゲート群を以下、それぞれ18−1〜18−8というように表示する。
【0031】
カウンタ11の出力x5,x4,x3,x2,x1,x0は図に示すように、AND回路18−1,18−2,18−3,18−4,18−5,18−6,18−7,18−8に接続されている。
AND回路18−1は、x5x4x3x2x1x0=(000000)2 =(0)10のときのみ“1”を出力する。
AND回路18−2は、x5x4x3x2x1x0=(001000)2 =(8)10のときのみ“1”を出力する。
AND回路18−3は、x5x4x3x2x1x0=(010000)2 =(16)10のときのみ“1”を出力する。
AND回路18−4は、x5x4x3x2x1x0=(011000)2 =(24)10のときのみ“1”を出力する。
AND回路18−5は、x5x4x3x2x1x0=(100000)2 =(32)10のときのみ“1”を出力する。
AND回路18−6は、x5x4x3x2x1x0=(101000)2 =(40)10のときのみ“1”を出力する。
AND回路18−7は、x5x4x3x2x1x0=(110000)2 =(48)10のときのみ“1”を出力する。
AND回路18−8は、x5x4x3x2x1x0=(111000)2 =(56)10のときのみ“1”を出力する。
【0032】
図8に示した読み出しアドレス生成部も具体例1のものと同様にカウンタ13及びセレクタ14の結線がなされている。その入出力信号も変わるところはない。そして、読み出し終了信号を出力するためのANDゲート群19のみが具体例1と異なっている。このANDゲート群はそれぞれ19−1〜19−8と呼ぶ。
カウンタ13の出力y5,y4,y3,y2,y1,y0は図に示すように、AND回路19−1,19−2,19−3,19−4,19−5,19−6,19−7,19−8に接続されている。
AND回路19−1は、y5y4y3y2y1y0=(000000)2 =(0)10のときのみ“1”を出力する。
AND回路19−2は、y5y4y3y2y1y0=(000001)2 =(1)10のときのみ“1”を出力する。
AND回路19−3は、y5y4y3y2y1y0=(000010)2 =(2)10のときのみ“1”を出力する。
【0033】
AND回路19−4は、y5y4y3y2y1y0=(000011)2 =(3)10のときのみ“1”を出力する。
AND回路19−5は、y5y4y3y2y1y0=(000100)2 =(4)10のときのみ“1”を出力する。
AND回路19−6は、y5y4y3y2y1y0=(000101)2 =(5)10のときのみ“1”を出力する。
AND回路19−7は、y5y4y3y2y1y0=(000110)2 =(6)10のときのみ“1”を出力する。
AND回路19−8は、y5y4y3y2y1y0=(111111)2 =(63)10のときのみ“1”を出力する。
【0034】
図9には、具体例2の制御回路の結線図を示す。
この回路には8個の順序回路20A〜20Hが設けられている。その内部結線は具体例1で説明した図4に示す回路と全く同一のものである。そして、これらの順序回路20A〜20Hには、それぞれ図7と図8に示した書き込みアドレス生成部及び読み出しアドレス生成部から読み出しタイミング信号P1〜P8及び書き込みタイミング信号J1〜J8が入力するように構成されている。全ての順序回路20A〜20HのQ出力はORゲート28を介して読み出し許可信号として出力される構成となっている。なお、このように読み出し許可信号は各順序回路20A〜20Hに再入力する構成となっている。
【0035】
以上の回路は次のように動作する。
図10は、具体例2の動作タイミングチャートを示す。
図の(a)は動作サイクル、(b)は書き込み許可信号WR、(c)は読み出し許可信号RR、(d)は書き込みアドレスWAO、(e)は読み出しアドレスRAO、(f)は読み出しタイミング信号WV、(g)は読み出し終了信号RV、(h)は書き込みデータ、(i)は読み出しデータを示している。
【0036】
まず、図1の回路でリセット信号RSを“1”としてカウンタ11,13を“000000”とし、制御回路4の全ての順序回路20A〜20Hのフリップフロップ26を“0”にリセットし、読み出し許可信号RRを“0”とする。
次に、2次元DCT回路の1次元目の回路でデータが処理され、書き込み許可信号がWR=“1”となり、2ポートメモリのアドレス“0”に書き込みが行われる。このとき、カウンタ11,13は“0000000”であるためWV(P1),RV(J1)は“1”となっている。WR=“1”、XV(P1)=“1”であるため順序回路20AのDフリップフロップの入力D=“1”となる。
【0037】
次のサイクル(2)でカウンタ11は1カウントアップし、2ポートメモリ1のアドレス1に書き込みが行われる。また、順序回路20AのQ端子=“1”となり、読み出し許可信号RR=“1”となるので、アドレス“0”が読み出される。このとき、順序回路20AのWV(P1)=“0”、RR=1,RV(J1)=1であり、D=“0”となる。
次のサイクル(3)でカウンタ11は“1”カウントアップし、2ポートメモリ1のアドレス“2”に書き込みが行われる。カウンタ13は“1”カウントアップしてRV(J1)=“0”、RV(J2)=“1”となる。また、RR=“0”となり、読み出しは行われない。
【0038】
以降、WR=“1”でカウンタ11はクロックに同期して1ずつカウントアップし2ポートメモリ1の書き込みアドレスは“3”、“4”、“5”、…と変化すると、
サイクル(10)でRR=“1”となり、2ポートメモリ1のアドレス“8”が読み出され、
サイクル(18)でRR=“1”となり、2ポートメモリ1のアドレス“16”が読み出され、
サイクル(26)でRR=“1”となり、2ポートメモリ1のアドレス“24”が読み出され、
【0039】
サイクル(34)でRR=“1”となり、2ポートメモリ1のアドレス“32”が読み出され、
サイクル(42)でRR=“1”となり、2ポートメモリ1のアドレス“40”が読み出され、
サイクル(50)でRR=“1”となり、2ポートメモリ1のアドレス“48”が読み出され、
サイクル(58)でRR=“1”となり、2ポートメモリ1のアドレス“56”が読み出され、
サイクル(58)では順序回路20HのQ=“1”、RR=“1”、RV(J8)=“0”であり、D=“1”となっているためサイクル(59)以降もRR=“1”となり、RAMのアドレス1,9,…と順に読み出しが続けられる。
【0040】
サイクル(114)で64個目のデータの読み出しを行うとき、RR=“1”でありカウンタ13の出力y5y4y3y2y1y0=(111111)2 =(63)10であるので順序回路20HのRV(J8)=“1”となり、1ブロック(64個)のデータの読み出しが完了する。
【0041】
このとき、次のブロックのデータが2ポートメモリ1に書き込まれていれば、読み出しは次のサイクルからも継続して行われる。以降、新たなブロックのデータが2ポートメモリ1へ、
1つ以上書き込みを終了していれば、1つを読み出すまで順序回路20AのQ=“1”
9つ以上書き込みを終了していれば、2つを読み出すまで順序回路20BのQ=“1”
17個以上書き込みを終了していれば、3つを読み出すまで順序回路20CのQ=“1”
25個以上書き込みを終了していれば、4つを読み出すまで順序回路20DのQ=“1”
33個以上書き込みを終了していれば、5つを読み出すまで順序回路20EのQ=“1”
41個以上書き込みを終了していれば、6つを読み出すまで順序回路20FのQ=“1”
49個以上書き込みを終了していれば、7つを読み出すまで順序回路20GのQ=“1”
57個以上書き込みを終了していれば、64個を読み出すまで順序回路20HのQ=“1”
であるため、RR=“1”となり、データの読み出しが行われる。
【0042】
〈具体例2の効果〉
以上のように、具体例2では具体例1よりも早く行方向の書き込みが行われた後列方向の読み出し開始が行われる。即ち、56個のデータ書き込みが終了した後、初めてデータの読み出しが行われる場合に比べてデータの読み出し開始が早いため、データの書き込みと読み出しとの間の時間遅れをより小さくすることができる。
その他の機能や効果については具体例1と同様である。
【図面の簡単な説明】
【図1】本発明の装置の具体例を示すブロック図である。
【図2】書き込みアドレス生成部の結線図である。
【図3】読み出しアドレス生成部の結線図である。
【図4】制御回路の結線図である。
【図5】具体例1の概略動作説明図である。
【図6】具体例1の動作タイミングチャートである。
【図7】書き込みアドレス生成部の結線図である。
【図8】読み出しアドレス生成部の結線図である。
【図9】具体例2の制御回路結線図である。
【図10】具体例2の動作タイミングチャートである。
【符号の説明】
1 2ポートメモリ
2,3 DCT回路
4 制御回路
5 書き込みアドレス生成部
6 読み出しアドレス生成部
[0001]
BACKGROUND OF THE INVENTION
  The present invention relates to transposition processing of matrix data applied to a DCT (Discrete Cosine Transform) circuit or the like.MethodAbout.
[0002]
[Prior art]
For example, in an image compression coding technique such as MPEG (Moving Picture Experts Group), determinant calculations are frequently performed when DCT processing is performed on image data. When processing a determinant product, the data in the row direction and the data in the column direction are interchanged. In orthogonal transformation such as DCT processing, so-called transposition processing is performed in various types of arithmetic processing to replace row-direction data and column-direction data of matrix-format data. Conventionally, such processing uses, for example, two sets of RAM (random access memory), writes matrix data in one RAM, and when the writing is completed, the same matrix data in the other RAM. Write. Then, while data is being written in the other RAM, the address is controlled and read out from the one RAM in which the data has already been written so as to perform conversion in the row direction and the column direction. Thereby, data written in the row direction can be read in the column direction and transposed.
[0003]
[Problems to be solved by the invention]
However, the conventional matrix data transposition processing apparatus as described above has the following problems to be solved.
In order to read data written in the memory in the row direction in the column direction, a read address completely different from the write address must be generated and read control must be performed. Therefore, after the matrix data is written to the RAM, the data is read again by switching the address counter. To speed up this process, two sets of RAM are used alternately. Therefore, there is a problem that the circuit scale becomes large.
[0004]
Further, in the above conventional method, in order to write data in the row direction and read data in the column direction, it is necessary to wait until the writing of data to be read in the column direction is completed. Accordingly, since the start of reading is delayed, there is a problem that processing in the subsequent stage of the transposed RAM is also delayed.
[0005]
[Means for Solving the Problems]
  The present invention adopts the following configuration in order to solve the above points.
<Configuration 1>
  The present invention transposes matrix data for writing / reading n × m block data to / from a matrix of n rows × m columns (n, m: an integer of 2 or more) for a memory having each port for writing and reading. A processing method comprising: starting writing of the block data in the row direction with respect to the memory; starting reading in the column direction when data is written in the nth row and the first column; Starting writing the next block data in the direction, and starting reading in the row direction when the data is written in the m-th column first row;
Is a transposition processing method of matrix format data characterized in that
[0006]
<Explanation>
The data write port and the data read port of this memory are independent of each other, and the data write address and the data read address are supplied separately, and data can be read and written simultaneously. Matrix data is data including row elements and column elements, and the contents thereof are arbitrary.
When data is sequentially written in the row direction in the memory, if the data is read in the column direction, the row elements and the column elements of the matrix data can be transposed. Therefore, the control circuit notifies the optimum timing for starting the reading.
[0007]
  On the other hand, the next group of data may be overwritten on the data that has already been read out in the memory, but when data is written in the row direction when data is read in the column direction, New data is overwritten on data that has not been read. Therefore, after writing a group of data in the row direction, data is written in the column direction. When the data writing direction is changed alternately in this way, there is no collision between the write address and the read address when data writing and reading are performed continuously, and there is little wasteful waiting time and data transposition processing using a multi-port memory Can do.
  For example, when data is being written in the row direction, if reading is started after the first column of data to be read first is written, address collision does not occur even if the writing and reading speeds are the same.
[0008]
<Configuration 2>
  In configuration 1,2. The transposition processing method of matrix format data according to claim 1, wherein writing in the same direction is started continuously after the reading is started.
[0011]
<Explanation>
  DeData is read and written one by one, DeDataRead outAs soon as possibleNextDataWrite in the same directionIt doesn't matter.
[0012]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, embodiments of the present invention will be described using specific examples.
<Concrete example>
FIG. 1 is a block diagram showing a specific example of the apparatus of the present invention.
In the present invention, a two-port memory 1 is used for temporarily storing and transposing data in a matrix format as shown in the figure. A DCT circuit 2 and a DCT circuit 3 are connected to the data input terminal DI and the data output terminal DO of the 2-port memory 1, respectively. Each of the DCT circuits 2 and 3 is a circuit that executes a predetermined calculation while performing row and column conversion processing of data in a matrix format. The write address WAO generated by the write address generator 5 is input to the write address input terminal WAI of the 2-port memory 1. The read address RAO generated by the read address generator 6 is input to the read address input terminal RAI.
[0013]
A control circuit 4 is provided for controlling operations of the write address generation unit 5 and the read address generation unit 6. First, a write permission signal WR that permits writing is input to the control circuit 4 from the host device when writing is started. This signal is input not only to the control circuit 4 but also to the write address generator 5. In addition, a reset signal RS is input to reset the read permission signal and the address input to the RAM before the transposition process is started. This signal is input to the control circuit 4, the write address generation unit 5, and the read address generation unit 6.
[0014]
The write address generation unit 5 is configured to output a read timing signal WV to the control circuit 4 when it reaches a readable address after completing the write to a predetermined address. Further, as will be described later, the control circuit 4 receives this read timing signal and outputs a read permission signal RR that permits the read address generation unit 6 to start reading. The read address generation unit 6 outputs a read end signal RV to the control circuit 4 when the series of data read in the matrix format is completed.
[0015]
FIG. 2 shows a specific connection diagram of the write address generation unit.
The write address generation unit 5 includes a counter 11 and a selector 12 as shown in the figure. The counter 11 is configured to receive a reset signal RS and a write permission signal WR. The counter 11 counts up for generating an address signal every time data is written by a clock signal (not shown). The counter 11 outputs a 7-bit signal while counting up for address generation. The selector 12 is configured to receive the output of the counter 11 and select and output one of two types of address signals. That is, the 6-bit count values x0 to x5 of the counter 11 are marked with symbols A0 to A5. Further, the count value obtained by exchanging the upper 3 bits and the lower 3 bits of x0 to x5 of the counter 11 is displayed as B0 to B5.
[0016]
Of the outputs x6, x5, x4, x3, x2, x1 and x0 of the counter 11, x6 is inputted to the selection signal input terminals SA and SB of the selector 12 as shown in the figure. X5, x4, x3, x2, x1, x0 of the counter 11 are connected to A5 and B2, A4 and B1, A3 and B0, A2 and B5, A1 and B4, A0 and B3, respectively. The output WAO of the selector 12 is a write address of the 2-port memory 1 shown in FIG. The selector 12 outputs A5, A4, A3, A2, A1, A0, that is, x5, x4, x3, x2, x1, x0 when X6 = 0 (SA = 1, SB = 0), When x6 = 0 (SA = 0, SB = 1), B5, B4, B3, B2, B1, B0, that is, x2, x1, x0, x5, x4, x3 are output.
Further, the outputs x5, x4, x3, x2, x1, x0 of the counter 11 are decoded by the AND circuit 15 to become a read timing signal WV.
[0017]
FIG. 3 shows a specific connection diagram of the read address generation unit 6.
The read address generation unit 6 is also composed of a counter 13 and a selector 14. Similarly, this circuit is also configured to select the output of the counter 13 and the output obtained by inverting the upper and lower bits by the selector 14 and use it as the read address RAO. That is, y6 of the outputs y6, y5, y4, y3, y2, y1, and y0 of the counter 13 is input to the selection signal input terminals SA and SB of the selector 14 as shown in the figure. Y5, y4, y3, y2, y1, y0 of the counter 13 are connected to A5 and B2, A4 and B1, A3 and B0, A2 and B5, A1 and B4, A0 and B3, respectively. The output RAO of the selector 14 is a read address of the 2-port memory 1. The selector 12 is configured to output A5, A4, A3, A2, A1, A0, that is, y5, y4, y3, y2, y1, y0 when y6 = 1 (SA = 1, SB = 0). Has been.
The outputs y5, y4, y3, y2, y1, and y0 of the counter 13 are decoded by the AND circuit 16 and used as a read end signal RV.
[0018]
The AND circuit 15 shown in FIG. 2 has x5 × 4 × 3 × 2 × 1 = (111000)2 = (56)Ten“1” is output only when the AND circuit 16 shown in FIG. 3 outputs y5y4y3y2y1y0 = (111111).2 = (63)Ten“1” is output only when. Thus, for example, when data is written in the row direction, the AND circuit 15 outputs the read timing signal WV at the timing at which reading in the column direction becomes possible, and performs output start control of read address control. The AND circuit 16 outputs a read end signal RV after all the reading is completed, and is used as a signal for ending the transposition processing.
[0019]
For example, when writing the data of 8 × 8 matrix format, the selector 12 outputs the addresses B0 to B5 from the state where the addresses A0 to A5 were output until then when the writing of 64 data is completed. Switch to state. In this case, since the upper 3 bits and the lower 3 bits are replaced, after the data is written in the row direction, when this is completed, an address signal is output so as to write the data in the column direction. On the other hand, the selector 14 performs the operation opposite to that of the selector 12. That is, when the writing in the row direction is initially performed, the reading address in the column direction is output, and then the data writing is performed in the column direction. For the reading, a reading address in the row direction is output. The selector 12 and the selector 14 are provided for performing such an operation.
[0020]
FIG. 4 shows a specific connection diagram of the control circuit 4.
This circuit includes an AND gate 21 that receives the write permission signal WR and the read timing signal WV, a NOT gate 22 that receives the read end signal RV, an AND gate 23 that controls the outputs of the AND gate 21 and the NOT gate 22, and an OR gate. 24, an AND gate 25, and a flip-flop 26. The AND gate 23 receives the output of the flip-flop 26 and the output of the NOT gate 22. Further, the outputs of the AND gate 21 and the AND gate 23 are input to the OR gate 24. Further, the output of the OR gate 24 and the output of the NOT gate 27 are input to the AND gate 25. A reset signal RS is input to the NOT gate 27.
By configuring this circuit as shown in the figure, a sequential circuit that outputs a read permission signal at a timing described later based on a signal stored in the flip-flop 26 is configured.
[0021]
The outline of the operation of the apparatus of the specific example 1 will be described with reference to FIG.
In this specific example, for example, 8 × 8 square matrix block data is written to the 2-port memory, the block data written in the row direction is read in the row direction, and the block data written in the column direction is read in the row direction. To perform the transposition process.
First, as shown in FIG. 5 (1-a), data writing of the first block is started in the row direction from A to B in an 8 × 8 matrix area.
As writing progresses, as shown in FIG. 5 (1-a), when data is written up to the position C, that is, the address 56, data in the first block can be read, as shown in FIG. 5 (1-b). First, reading is started in the column direction from A to C.
Thereafter, writing and reading are performed in parallel, writing to the position D is completed, and writing of data in the first block is completed. At this time, the reading of the first block is completed for one column from the position of A to C, and the reading is continued until the reading of the first block of data from the next column is completed.
[0022]
If writing of data in the second block is started, writing is started in the column direction in parallel with reading out of the first block, as shown in FIG. 5 (2-a). At this time, the reading of the data of the first block proceeds as shown in FIG. 5B. Therefore, the data of the first block that has not been read is not destroyed, and the write address and the read address Will not corrupt the data.
When the reading of the data of the first block is completed and the writing of the data of the second block is performed at the position B as shown in FIG. 5 (3-a), the data of the second block can be read. As shown in 5 (3-b), reading is started in the row direction from A to B.
Thereafter, writing and reading are performed in parallel, and writing of data in the second block is completed as shown in FIG. 5 (4-a). The reading of the second block is completed up to the position C as shown in FIG. 5 (4-b), and the reading is continued until the reading of the data of the second block from the next row.
In the third and subsequent blocks, reading and writing can be performed in parallel as described above.
[0023]
FIG. 6 shows a timing chart for explaining a more specific operation of the first specific example.
(A) in the figure is an operation cycle counted from the start of data writing to the 2-port memory 1, (b) is a write permission signal WR, (c) is a write address WAO, (d) is a read timing signal WV, ( e) indicates a read permission signal RR, (f) indicates a read address RAO, (g) indicates a read end signal RV, (h) indicates write data, and (i) indicates read data.
[0024]
First, in the circuit of FIG. 1, “1” is input to the reset signal RS, the counters 11 and 13 shown in FIG. 2 are reset to “0000000”, and the D-type flip-flop 26 of the control circuit 4 of FIG. 4 is reset to “0”. Then, the read permission signal RR is also set to “0”.
Next, after the data is processed by the first-dimensional DCT circuit 2 of the two-dimensional DCT circuit shown in FIG. 1, the write permission signal WR to the 2-port memory 1 becomes “1”, and the data input from the terminal DI is written. Is done. The counter 11 in FIG. 2 counts up one by one in synchronization with a clock (not shown) when the write permission signal WR = "1". In response to this, the write address generator 5 outputs the write address 0, 1, 2, 3,... To the 2-port memory 1, and the data input to the terminal DI is written to that address. Since the read timing signal WV and the read end signal RV continue to be “0” until 56 data, that is, data is written to the addresses 0 to 55 in the 2-port memory 1, the flip-flop shown in FIG. The output Q of 26 continues to output “0”, and the read permission signal RR of the 2-port memory 1 also continues to output “0”.
[0025]
When 56 pieces of data are written in the 2-port memory 1, the output of the counter 11 shown in FIG. 2 in cycle 57 is x5x4x3x2x1x0 = (111000)2 = (56)TenIt becomes. At this time, data is written up to addresses 0, 1, 2,..., 55 of the 2-port memory 1.
When the next data is output from the first-dimensional DCT circuit 2 and “1” is input to the write enable signal WR, data is written to the address “56” of the 2-port memory 1. At this time, since the read permission signal WR and the read timing signal WV are input to the control circuit 4 as “1”, “1” is set to the input D of the flip-flop 26 shown in FIG. When the value is accepted in synchronization with the clock in cycle 58, Q outputs “1”.
[0026]
The control circuit 4 once sets D to “1” and Q = “1”, the reset signal RS becomes “1”, or one of WR and WV is “0” and RV is “1”. Unless "1" is input, "1" is continuously output.
As long as the output Q of the flip-flop 26 is “1”, the read permission signal RR of the 2-port memory 1 is “1”, and the reading is continued. In the 2-port memory 1, when an address is input to the address input terminal RAI, data is read from the corresponding address and output from the terminal DO.
[0027]
The counter 13 shown in FIG. 3 counts up one by one in synchronization with the clock when the read permission signal RR = “1”. In response to this, read addresses 0, 8, 16,... Are output from the terminal RAO. Thus, data reading in the column direction is performed.
After 63 pieces of data are read from the 2-port memory 1, the input RV of the control circuit 4 becomes "1". Since RR is “1”, the 64th data is read from the address 63 in the next cycle. When WR and WV are not “1”, “0” is input to the D terminal of the flip-flop 26, and reading of the 2-port memory 1 is stopped from the next cycle. If WR and WV are “1”, “1” is input to the D terminal, and reading is continued.
[0028]
After the counter 11 counts up 64, x6 = "1", so that writing to the 2-port memory 1 is performed in the order of addresses 0, 8, 16,. This is writing in the column direction. After the counter 13 counts up 64 times, y6 = "1", so that reading from the 2-port memory 1 is performed in the order of addresses 0, 1, 2, 3,. This is readout in the row direction.
In the two-dimensional DCT circuit, eight data (one row or one column) out of 64 blocks (8 rows × 8 columns) are handled and processed, so the 57th data as in the above method. If it is detected that the first to fourth DCT circuits can output the 58th to 64th data, it is possible to start reading the data.
[0029]
<Effect of specific example 1>
As described above, if a two-port memory is used as a memory so that data can be read out simultaneously with data writing, the circuit scale can be reduced as compared with the conventional method in which two memories having the same configuration are provided. In addition, by controlling the write address and the read address as described above, the data read and write can be processed simultaneously in parallel, and when the matrix data is written and read more than twice. The time delay between them can be minimized. In the above example, an example in which data in an 8 × 8 matrix format is handled has been described. However, the present invention can also be applied to a matrix that is not necessarily a square matrix and has different data amounts in the row direction and the column direction. is there. In addition to the DCT circuit, various circuits can be used as the circuits positioned before and after the circuit for the transposition processing.
[0030]
<Specific example 2>
The configuration and operation of the specific example 2 will be described below with reference to FIG. The block showing the overall configuration of Example 2 is exactly the same as that shown in FIG. The write address generation unit 5 of the specific example 2 has the configuration shown in FIG. Further, the read address generation unit 6 has the configuration shown in FIG. The counter 11 and selector 12 of the write address generation unit shown in FIG. 7 and the connections and input / output signals between them are exactly the same as those of the first specific example. In this specific example 2, an AND gate group 18 for outputting a read timing signal is provided as follows. These AND gate groups are hereinafter denoted as 18-1 to 18-8, respectively.
[0031]
The outputs x5, x4, x3, x2, x1, x0 of the counter 11 are AND circuits 18-1, 18-2, 18-3, 18-4, 18-5, 18-6, 18- as shown in the figure. 7, 18-8.
The AND circuit 18-1 has x5x4x3x2x1x0 = (000000)2 = (0)Ten“1” is output only when.
The AND circuit 18-2 has x5x4x3x2x1x0 = (001000)2 = (8)Ten“1” is output only when.
The AND circuit 18-3 has x5x4x3x2x1x0 = (010000)2 = (16)Ten“1” is output only when.
The AND circuit 18-4 has x5x4x3x2x1x0 = (011000)2 = (24)Ten“1” is output only when.
The AND circuit 18-5 has x5x4x3x2x1x0 = (100,000).2 = (32)Ten“1” is output only when.
The AND circuit 18-6 is x5x4x3x2x1x0 = (101000)2 = (40)Ten“1” is output only when.
The AND circuit 18-7 has x5x4x3x2x1x0 = (110000)2 = (48)Ten“1” is output only when.
The AND circuit 18-8 has x5x4x3x2x1x0 = (111000)2 = (56)Ten“1” is output only when.
[0032]
The read address generator shown in FIG. 8 is also connected to the counter 13 and the selector 14 in the same manner as in the first specific example. There is no change in the input / output signals. Only the AND gate group 19 for outputting the read end signal is different from the first specific example. These AND gate groups are called 19-1 to 19-8, respectively.
The outputs y5, y4, y3, y2, y1, y0 of the counter 13 are AND circuits 19-1, 19-2, 19-3, 19-4, 19-5, 19-6, 19- as shown in the figure. 7, 19-8.
The AND circuit 19-1 has y5y4y3y2y1y0 = (000000)2 = (0)Ten“1” is output only when.
The AND circuit 19-2 has y5y4y3y2y1y0 = (000001).2 = (1)Ten“1” is output only when.
The AND circuit 19-3 has y5y4y3y2y1y0 = (000010).2 = (2)Ten“1” is output only when.
[0033]
The AND circuit 19-4 has y5y4y3y2y1y0 = (0000011).2 = (3)Ten“1” is output only when.
The AND circuit 19-5 has y5y4y3y2y1y0 = (000100)2 = (4)Ten“1” is output only when.
The AND circuit 19-6 has y5y4y3y2y1y0 = (000101).2 = (5)Ten“1” is output only when.
The AND circuit 19-7 has y5y4y3y2y1y0 = (000110)2 = (6)Ten“1” is output only when.
The AND circuit 19-8 has y5y4y3y2y1y0 = (111111)2 = (63)Ten“1” is output only when.
[0034]
FIG. 9 shows a connection diagram of the control circuit of the second specific example.
In this circuit, eight sequential circuits 20A to 20H are provided. The internal connection is exactly the same as the circuit shown in FIG. The sequential circuits 20A to 20H are configured to receive the read timing signals P1 to P8 and the write timing signals J1 to J8 from the write address generation unit and the read address generation unit illustrated in FIGS. 7 and 8, respectively. Has been. The Q outputs of all the sequential circuits 20A to 20H are output as read permission signals via the OR gate 28. In this way, the read permission signal is re-input to the sequential circuits 20A to 20H.
[0035]
The above circuit operates as follows.
FIG. 10 shows an operation timing chart of the second specific example.
(A) is an operation cycle, (b) is a write permission signal WR, (c) is a read permission signal RR, (d) is a write address WAO, (e) is a read address RAO, and (f) is a read timing signal. WV, (g) indicates a read end signal RV, (h) indicates write data, and (i) indicates read data.
[0036]
First, the reset signal RS is set to “1” and the counters 11 and 13 are set to “000000” in the circuit of FIG. The signal RR is set to “0”.
Next, data is processed in the first-dimensional circuit of the two-dimensional DCT circuit, the write permission signal becomes WR = “1”, and writing is performed to the address “0” of the 2-port memory. At this time, since the counters 11 and 13 are “0000000”, WV (P1) and RV (J1) are “1”. Since WR = “1” and XV (P1) = “1”, the input D = “1” of the D flip-flop of the sequential circuit 20A.
[0037]
In the next cycle (2), the counter 11 is incremented by 1 and writing to address 1 of the 2-port memory 1 is performed. Further, since the Q terminal of the sequential circuit 20A = “1” and the read permission signal RR = “1”, the address “0” is read. At this time, WV (P1) = “0” of the sequential circuit 20A, RR = 1, RV (J1) = 1, and D = “0”.
In the next cycle (3), the counter 11 counts up by “1” and writing is performed to the address “2” of the 2-port memory 1. The counter 13 counts up by “1” and RV (J1) = “0” and RV (J2) = “1”. Further, RR = “0”, and no reading is performed.
[0038]
Thereafter, when WR = “1” and the counter 11 counts up one by one in synchronization with the clock, and the write address of the 2-port memory 1 changes to “3”, “4”, “5”,.
In cycle (10), RR = “1” and the address “8” of the 2-port memory 1 is read.
In cycle (18), RR = “1” and the address “16” of the 2-port memory 1 is read.
In cycle (26), RR = “1” and the address “24” of the 2-port memory 1 is read.
[0039]
In cycle (34), RR = "1" and the address "32" of the 2-port memory 1 is read.
In cycle (42), RR = “1” and the address “40” of the 2-port memory 1 is read.
In cycle (50), RR = “1” and the address “48” of the 2-port memory 1 is read.
In cycle (58), RR = "1" and the address "56" of the 2-port memory 1 is read out.
In the cycle (58), Q = “1”, RR = “1”, RV (J8) = “0” of the sequential circuit 20H, and D = “1”. Reading is continued in the order of RAM addresses 1, 9,...
[0040]
When the 64th data is read in the cycle (114), RR = "1" and the output of the counter 13 y5y4y3y2y1y0 = (111111)2 = (63)TenTherefore, RV (J8) of the sequential circuit 20H = “1”, and reading of data of one block (64 pieces) is completed.
[0041]
At this time, if the data of the next block is written in the 2-port memory 1, the reading is continued from the next cycle. Thereafter, the new block data is transferred to the 2-port memory 1.
If one or more writing has been completed, Q of sequential circuit 20A is “1” until one is read.
If writing of nine or more has been completed, Q of sequential circuit 20B is “1” until two are read.
If writing of 17 or more has been completed, Q of sequential circuit 20C is “1” until three are read.
If writing of 25 or more has been completed, Q of sequential circuit 20D is “1” until four are read.
If writing of 33 or more has been completed, Q of sequential circuit 20E is “1” until 5 are read.
If writing of 41 or more has been completed, Q of sequential circuit 20F is “1” until 6 are read.
If writing of 49 or more has been completed, Q of sequential circuit 20G is “1” until 7 are read.
If writing of 57 or more has been completed, Q of sequential circuit 20H is “1” until 64 are read.
Therefore, RR = "1" and data is read out.
[0042]
<Effect of specific example 2>
As described above, in the second specific example, the writing in the row direction is performed earlier than the first specific example, and then the reading in the column direction is started. That is, since the data reading starts earlier than when data reading is performed for the first time after 56 data writing is completed, the time delay between data writing can be further reduced.
Other functions and effects are the same as in the first specific example.
[Brief description of the drawings]
FIG. 1 is a block diagram showing a specific example of an apparatus according to the present invention.
FIG. 2 is a connection diagram of a write address generation unit.
FIG. 3 is a connection diagram of a read address generation unit.
FIG. 4 is a connection diagram of a control circuit.
FIG. 5 is a schematic operation explanatory diagram of a specific example 1;
6 is an operation timing chart of Example 1. FIG.
FIG. 7 is a connection diagram of a write address generation unit.
FIG. 8 is a connection diagram of a read address generation unit.
FIG. 9 is a control circuit connection diagram of a specific example 2;
10 is an operation timing chart of the specific example 2. FIG.
[Explanation of symbols]
1 2-port memory
2,3 DCT circuit
4 Control circuit
5 Write address generator
6 Read address generator

Claims (2)

書き込み及び読み出し用の各ポートを備えるメモリに対しn×m個のブロックデータをn行×m列(n、m:二以上の整数)のマトリクスに書き込み及び読み出すマトリクス形式データの転置処理方法であって、
前記メモリに対し行方向に前記ブロックデータの書き込みを開始し、n行1列目にデータを書き込んだ時点で列方向での読み出しを開始するステップと、
前記メモリに対し列方向に次のブロックデータの書き込みを開始し、m列1行目にデータを書き込んだ時点で行方向での読み出しを開始するステップと、
を含むことを特徴とするマトリクス形式データの転置処理方法。
This is a transposition processing method of matrix format data for writing and reading n × m block data to a matrix of n rows × m columns (n, m: an integer of 2 or more) for a memory having each port for writing and reading. And
Starting writing the block data in the row direction to the memory, and starting reading in the column direction when the data is written in the nth row and the first column;
Starting writing next block data in the column direction to the memory, and starting reading in the row direction when the data is written in the m-th column first row;
A transposition processing method for matrix format data, comprising:
前記読み出しの開始後に連続させて同一方向への書き込みを開始することを特徴とする請求項1記載のマトリクス形式データの転置処理方法。  2. The transposition processing method for matrix format data according to claim 1, wherein writing in the same direction is started continuously after the reading is started.
JP17859396A 1996-06-19 1996-06-19 Transposition processing method for matrix data Expired - Fee Related JP3731191B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP17859396A JP3731191B2 (en) 1996-06-19 1996-06-19 Transposition processing method for matrix data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP17859396A JP3731191B2 (en) 1996-06-19 1996-06-19 Transposition processing method for matrix data

Publications (2)

Publication Number Publication Date
JPH1011422A JPH1011422A (en) 1998-01-16
JP3731191B2 true JP3731191B2 (en) 2006-01-05

Family

ID=16051180

Family Applications (1)

Application Number Title Priority Date Filing Date
JP17859396A Expired - Fee Related JP3731191B2 (en) 1996-06-19 1996-06-19 Transposition processing method for matrix data

Country Status (1)

Country Link
JP (1) JP3731191B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2007010694A1 (en) * 2005-07-15 2009-01-29 パナソニック株式会社 Image coding apparatus and image coding method
KR100826329B1 (en) 2005-09-22 2008-05-02 삼성전기주식회사 An apparatus for transposing data in a round scanning display of 10bit one panel

Also Published As

Publication number Publication date
JPH1011422A (en) 1998-01-16

Similar Documents

Publication Publication Date Title
JPS62152050A (en) Semiconductor memory
US6105114A (en) Two-dimensional array transposition circuit reading two-dimensional array in an order different from that for writing
JPS6247786A (en) Exclusive memory for adjacent image processing
CN106846255B (en) Image rotation realization method and device
JP3731191B2 (en) Transposition processing method for matrix data
WO2013094389A1 (en) Image processing device
JP3092526B2 (en) 2D inverse discrete cosine transform circuit
JP2851804B2 (en) 2D orthogonal transform device
JP3288327B2 (en) Video memory circuit
JP2610887B2 (en) Image data rotation processor
JPS62299892A (en) Access system for character generator memory
JP4906007B2 (en) Encoder system
KR950009076B1 (en) Dual port memory and control method
JP2553726B2 (en) Method and apparatus for rotating image by 90 degrees
JPH0268671A (en) Picture memory
JP2000020705A (en) Parallel image processing processor
JP2528998B2 (en) Scan converter control circuit
JP2824976B2 (en) 2D array data rotation device
JPH08305819A (en) Two-dimensional orthogonal transformation arithmetic unit
JPH04360425A (en) Semiconductor storage device
JPH03283189A (en) Semiconductor memory device
JPS63163560A (en) Information processor
JPH0675799A (en) Memory access device and memory device
JPS62102334A (en) Register saving system
JPH03116322A (en) Matrix transforming device

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20041202

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050111

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050314

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: 20050906

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050930

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20081021

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20091021

Year of fee payment: 4

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

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

Free format text: PAYMENT UNTIL: 20091021

Year of fee payment: 4

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20091021

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20101021

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20111021

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20111021

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20121021

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20121021

Year of fee payment: 7

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

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

Free format text: PAYMENT UNTIL: 20121021

Year of fee payment: 7

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20121021

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20131021

Year of fee payment: 8

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees