(57)【特許請求の範囲】
【請求項１】
書き込み及び読み出し用の各ポートを備えるメモリに対しｎ×ｍ個のブロックデータをｎ行×ｍ列（ｎ、ｍ：二以上の整数）のマトリクスに書き込み及び読み出すマトリクス形式データの転置処理方法であって、
前記メモリに対し行方向に前記ブロックデータの書き込みを開始し、ｎ行１列目にデータを書き込んだ時点で列方向での読み出しを開始するステップと、
前記メモリに対し列方向に次のブロックデータの書き込みを開始し、ｍ列１行目にデータを書き込んだ時点で行方向での読み出しを開始するステップと、
を含むことを特徴とするマトリクス形式データの転置処理方法。
【請求項２】
前記読み出しの開始後に連続させて同一方向への書き込みを開始することを特徴とする請求項１記載のマトリクス形式データの転置処理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＤＣＴ（離散コサイン変換）回路等に応用されるマトリクス形式データの転置処理方法に関する。
【０００２】
【従来の技術】
例えば、ＭＰＥＧ（Moving Picture Experts Group）のような画像圧縮符号化技術においては、画像データをＤＣＴ処理する際に頻繁に行列式の演算が行われる。行列式の積を処理する場合には、行方向のデータと列方向のデータの入れ換えが行われる。ＤＣＴ処理等の直交変換では、各種の演算処理において、マトリクス形式のデータの行方向のデータと列方向のデータを置き換える、いわゆる転置処理が行われる。このような処理は、従来、例えば２組のＲＡＭ（ランダム・アクセス・メモリ）を使用し、一方のＲＡＭにマトリクス形式のデータを書き込み、その書込みが終了すると他方のＲＡＭに同様のマトリクス形式のデータを書き込む。そして、他方のＲＡＭにデータを書き込んでいる間に既にデータを書き込んだ一方のＲＡＭから行方向と列方向の変換を行うようにアドレスを制御し読出しをする。これによって、行方向に書き込んだデータを列方向に読み出し転置処理を行うことができる。
【０００３】
【発明が解決しようとする課題】
ところで、上記のような従来のマトリクス形式データの転置処理装置には次のような解決すべき課題があった。
行方向にメモリに書き込んだデータを列方向に読み出すためには、書き込みアドレスとは全く異なる読み出しアドレスを生成し、読み出し制御を行わなければならない。従って、ＲＡＭにマトリクス形式のデータ書き込み終了後、アドレスカウンタを切り換えて改めてデータの読み出しを行うといった作業になる。この処理を高速化するには２組のＲＡＭを交互に使用する。このため、回路規模が大きくなるという問題があった。
【０００４】
また、上記の従来の方法では、行方向にデータを書き込み、列方向にデータを読み出すためには、列方向に読み出すべきデータの書き込みが終るまで読み出しを待たなければならない。従って、読み出し開始が遅れるため、転置ＲＡＭの後段での処理も遅れてしまうという問題点があった。
【０００５】
【課題を解決するための手段】
本発明は以上の点を解決するため次の構成を採用する。
〈構成１〉
本発明は、書き込み及び読み出し用の各ポートを備えるメモリに対しｎ×ｍ個のブロックデータをｎ行×ｍ列（ｎ、ｍ：二以上の整数）のマトリクスに書き込み及び読み出すマトリクス形式データの転置処理方法であって、前記メモリに対し行方向に前記ブロックデータの書き込みを開始し、ｎ行１列目にデータを書き込んだ時点で列方向での読み出しを開始するステップと、前記メモリに対し列方向に次のブロックデータの書き込みを開始し、ｍ列１行目にデータを書き込んだ時点で行方向での読み出しを開始するステップと、
を含むことを特徴とするマトリクス形式データの転置処理方法である。
【０００６】
〈説明〉
このメモリのデータ書き込み用のポートとデータ読み出し用のポートとは、互いに独立しており、データ書き込み用アドレスとデータ読み出し用アドレスが別々に供給されて、同時にデータの読み書きができる。マトリクス形式のデータとは、行要素と列要素とを含むデータでその内容は任意である。
メモリにデータが行方向に順に書き込まれたとき、そのデータを列方向に読み出せば、マトリクス形式のデータの行要素と列要素の転置ができる。そこで、制御回路が、その読み出し開始のための最適なタイミングを通知する。
【０００７】
一方、メモリ中で既に読み出しを終了したデータ上には、次の一群のデータを上書きして差し支えないが、列方向に読み出しをしている場合に、行方向にデータの書き込みを行うと、まだ読み出されていないデータの上に新たなデータを上書きすることになる。そこで、一群のデータ書き込みを行方向に行った後は、今度は列方向にデータの書き込みを行う。こうしてデータの書き込み方向を交互に変更すると、データの書き込みと読み出しを連続的に行う場合に書き込みアドレスと読み出しアドレスとの衝突もなく、無駄な待ち時間も少なく多ポートメモリを使用したデータの転置処理ができる。
例えば行方向にデータを書き込んでいるとき、最初に読み出すべき１列目のデータが書き込まれてから、読み出しを開始すれば、書き込みと読み出しの速度が同一でもアドレスの衝突が起きない。
【０００８】
〈構成２〉
構成１において、前記読み出しの開始後に連続させて同一方向への書き込みを開始することを特徴とする請求項１記載のマトリクス形式データの転置処理方法。
【００１１】
〈説明〉
データは１データずつ読み書きされるから、データが読み出されたらすぐに次のデータを同一方向に書き込むようにしても差し支えない。
【００１２】
【発明の実施の形態】
以下、本発明の実施の形態を具体例を用いて説明する。
〈具体例〉
図１は、本発明の装置の具体例を示すブロック図である。
この発明では、図に示すようにマトリクス形式のデータを一時格納し転置処理するために、２ポートメモリ１を使用する。２ポートメモリ１のデータ入力端子ＤＩとデータ出力端子ＤＯには、それぞれＤＣＴ回路２とＤＣＴ回路３が接続されている。ＤＣＴ回路２及び３はいずれもマトリクス形式のデータの行と列の変換処理を行いながら所定の演算を実行する回路である。この２ポートメモリ１の書き込みアドレス入力端子ＷＡＩには書き込みアドレス生成部５の生成した書き込みアドレスＷＡＯが入力する。また、読み出しアドレス入力端子ＲＡＩには読み出しアドレス生成部６が生成した読み出しアドレスＲＡＯが入力する。
【００１３】
この書き込みアドレス生成部５や読み出しアドレス生成部６の動作制御のために制御回路４が設けられている。この制御回路４には、まず上位装置から書き込み開始時に、書き込みを許可する書き込み許可信号ＷＲが入力する。この信号は制御回路４だけでなく書き込みアドレス生成部５にも入力する。また、転置処理を開始する以前に読み出し許可信号及びＲＡＭに入力するアドレスのリセットを行うために、リセット信号ＲＳが入力する。この信号は制御回路４、書き込みアドレス生成部５及び読み出しアドレス生成部６に入力する。
【００１４】
書き込みアドレス生成部５は、所定のアドレスまで書き込みを終了した後、読み出し可能なアドレスに達すると、制御回路４に対して読み出しタイミング信号ＷＶを出力するよう構成されている。また、制御回路４は、後で説明するように、この読み出しタイミング信号を受け入れて読み出しアドレス生成部６に対し読み出し開始を許可する読み出し許可信号ＲＲを出力する。また、読み出しアドレス生成部６は、マトリクス形式の一連のデータ読み出しを終了すると、制御回路４に対し読み出し終了信号ＲＶを出力する。
【００１５】
図２には、書き込みアドレス生成部の具体的な結線図を示す。
この書き込みアドレス生成部５は、図に示すようにカウンタ１１及びセレクタ１２から構成されている。カウンタ１１には、リセット信号ＲＳと書き込み許可信号ＷＲが入力するよう構成されている。そして、カウンタ１１は図示しないクロック信号によりデータの書き込み毎にアドレス信号生成のためのカウントアップを行う。なお、カウンタ１１はアドレス生成のために７ビットの信号をカウントアップしながら出力する。セレクタ１２は、カウンタ１１の出力を受け入れて２種類のアドレス信号のうちいずれか一方を選択して出力するよう構成されている。即ち、カウンタ１１のｘ０〜ｘ５の６ビットのカウント値にはＡ０〜Ａ５という記号を付した。また、カウンタ１１のｘ０〜ｘ５の上位３ビットと下位３ビットを入れ換えたカウント値をＢ０〜Ｂ５というように表示した。
【００１６】
カウンタ１１の出力ｘ６，ｘ５，ｘ４，ｘ３，ｘ２，ｘ１，ｘ０のうちｘ６は図のようにセレクタ１２の選択信号入力端子ＳＡ，ＳＢに入力されている。カウンタ１１のｘ５，ｘ４，ｘ３，ｘ２，ｘ１，ｘ０はそれぞれＡ５及びＢ２、Ａ４及びＢ１、Ａ３及びＢ０、Ａ２及びＢ５、Ａ１及びＢ４、Ａ０及びＢ３に接続されている。セレクタ１２の出力ＷＡＯは図１に示す２ポートメモリ１の書き込みアドレスである。なお、このセレクタ１２からは、Ｘ６＝０（ＳＡ＝１，ＳＢ＝０）のとき、Ａ５，Ａ４，Ａ３，Ａ２，Ａ１，Ａ０つまりｘ５，ｘ４，ｘ３，ｘ２，ｘ１，ｘ０が出力され、ｘ６＝０（ＳＡ＝０，ＳＢ＝１）のときＢ５，Ｂ４，Ｂ３，Ｂ２，Ｂ１，Ｂ０つまりｘ２，ｘ１，ｘ０，ｘ５，ｘ４，ｘ３が出力されるように構成されている。
また、カウンタ１１の出力ｘ５，ｘ４，ｘ３，ｘ２，ｘ１，ｘ０はアンド回路１５によってデコードされ、読み出しタイミング信号ＷＶとされる。
【００１７】
図３には、読み出しアドレス生成部６の具体的な結線図を示す。
この読み出しアドレス生成部６もカウンタ１３及びセレクタ１４から構成されている。そして、この回路も同様にセレクタ１４によってカウンタ１３の出力と、その上位ビット及び下位ビットを反転した出力を選択して、読み出しアドレスＲＡＯとするように構成されている。即ち、カウンタ１３の出力ｙ６，ｙ５，ｙ４，ｙ３，ｙ２，ｙ１，ｙ０のうちｙ６は図のようにセレクタ１４の選択信号入力端子ＳＡ，ＳＢに入力されている。カウンタ１３のｙ５，ｙ４，ｙ３，ｙ２，ｙ１，ｙ０はそれぞれＡ５及びＢ２、Ａ４及びＢ１、Ａ３及びＢ０、Ａ２及びＢ５、Ａ１及びＢ４、Ａ０及びＢ３に接続されている。セレクタ１４の出力ＲＡＯは２ポートメモリ１の読み出しアドレスである。このセレクタ１２からはｙ６＝１（ＳＡ＝１，ＳＢ＝０）のとき、Ａ５，Ａ４，Ａ３，Ａ２，Ａ１，Ａ０つまりｙ５，ｙ４，ｙ３，ｙ２，ｙ１，ｙ０が出力されるように構成されている。
カウンタ１３の出力ｙ５，ｙ４，ｙ３，ｙ２，ｙ１，ｙ０はＡＮＤ回路１６によってデコードされ、読み出し終了信号ＲＶとされる。
【００１８】
図２に示すＡＮＤ回路１５はｘ５ｘ４ｘ３ｘ２ｘ１＝（１１１０００）2 ＝（５６）10のときのみ“１”を出力し、図３に示すＡＮＤ回路１６はｙ５ｙ４ｙ３ｙ２ｙ１ｙ０＝（１１１１１１）2 ＝（６３）10のときのみ“１”を出力する。こうしてＡＮＤ回路１５は、例えば行方向にデータを書き込んだ場合に、列方向の読み出しが可能になったタイミングで読み出しタイミング信号ＷＶを出力し読み出しアドレス制御の出力開始制御を行う。また、ＡＮＤ回路１６は、全ての読み出しが終了した後に読み出し終了信号ＲＶを出力して転置処理終了の合図等に利用される。
【００１９】
また、セレクタ１２は、例えば８×８のマトリクス形式データを書き込む場合に、６４個のデータ書き込みを終了すると、それまでＡ０〜Ａ５のアドレスを出力していた状態からＢ０〜Ｂ５のアドレスを出力する状態に切り換わる。この場合、上位３ビットと下位３ビットを取り替えていることから、行方向にデータを書き込んだ後、これが終了すると次は列方向にデータを書き込むようアドレス信号が出力される。一方、セレクタ１４は丁度セレクタ１２と反対の動作を行う。即ち、当初行方向への書き込みが行われていた場合には列方向の読み出しアドレスが出力され、その後、列方向にデータ書き込みを行うようになる。その読み出しのためには行方向の読み出しアドレスが出力される。セレクタ１２及びセレクタ１４はこのような動作を行うために設けられている。
【００２０】
図４には、制御回路４の具体的な結線図を示す。
この回路は、書き込み許可信号ＷＲと読み出しタイミング信号ＷＶとを受け入れるＡＮＤゲート２１と、読み出し終了信号ＲＶを受け入れるＮＯＴゲート２２と、ＡＮＤゲート２１とＮＯＴゲート２２の出力を制御するＡＮＤゲート２３、ＯＲゲート２４、ＡＮＤゲート２５と、フリップフロップ２６から構成される。なお、ＡＮＤゲート２３にはフリップフロップ２６の出力とＮＯＴゲート２２の出力とが入力する。また、ＯＲゲート２４にはＡＮＤゲート２１とＡＮＤゲート２３の出力が入力する。更に、ＡＮＤゲート２５にはＯＲゲート２４の出力とＮＯＴゲート２７の出力が入力する。このＮＯＴゲート２７にはリセット信号ＲＳが入力する。
この回路は図のように構成することによって、フリップフロップ２６に格納した信号をもとに、後で説明するようなタイミングで読み出し許可信号を出力する順序回路を構成している。
【００２１】
図５を用いて、具体例１の装置の動作の概略を説明する。
この具体例では、例えば８×８個の正方マトリクス形式のブロックデータを２ポートメモリに書き込み、行方向に書き込んだブロックデータは行方向に読み出し、列方向に書き込んだブロックデータは行方向に読み出すようにして転置処理を行う。
まず、図５（１−ａ）に示すように、８×８のマトリクス状領域にＡからＢに向かって行方向に１ブロック目のデータの書き込みを開始する。
書き込みが進み、図５（１−ａ）に示すように、Ｃの位置、即ちアドレス５６の位置まで書き込まれるとき、１ブロック目のデータの読み出しが可能となり、図５（１−ｂ）のようにＡからＣに向かって列方向に読み出しが開始される。
以降、書き込みと読み出しが並行して行われ、Ｄの位置まで書き込んで、１ブロック目のデータの書き込みが終了する。このとき１ブロック目の読み出しは、ＡからＣの位置までの一列分終了しており、読み出しは次の列から１ブロック目のデータを読み終るまで継続される。
【００２２】
もし２ブロック目のデータの書き込みが続けて開始される場合は、図５（２−ａ）に示すように、１ブロック目の読み出しと並行して、列方向に書き込みが開始される。このとき、１ブロック目のデータの読み出しは、図５（２−ｂ）のように進んでいるため、読み出しを終えていない１ブロック目のデータは壊されることもなく、また書き込みアドレスと読み出しアドレスが一致してデータが壊されることもない。
１ブロック目のデータの読み出しが終了し、図５（３−ａ）に示すように２ブロック目のデータの書き込みがＢの位置に行われるとき、２ブロック目のデータの読み出しが可能となり、図５（３−ｂ）に示すように、ＡからＢに向かって行方向に読み出しが開始される。
以降、書き込みと読み出しが並行して行われ、図５（４−ａ）に示すように、２ブロック目のデータの書き込みが終了する。２ブロック目の読み出しは、図５（４−ｂ）に示すようにＣの位置まで終了しており、読み出しは次の行から２ブロック目のデータを読み終るまで継続される。
３ブロック目以降も、上記のようにして読み出しと書き込みを並行して行うことができる。
【００２３】
図６には、具体例１の更に具体的な動作を説明するためのタイミングチャートを図示した。
図の（ａ）は、２ポートメモリ１へのデータ書き込み開始から数えた動作サイクルで、（ｂ）は書き込み許可信号ＷＲ、（ｃ）は書き込みアドレスＷＡＯ、（ｄ）は読み出しタイミング信号ＷＶ、（ｅ）は読み出し許可信号ＲＲ、（ｆ）は読み出しアドレスＲＡＯ、（ｇ）は読み出し終了信号ＲＶ、（ｈ）は書き込みデータ、（ｉ）は読み出しデータを表している。
【００２４】
まず図１の回路で、リセット信号ＲＳに“１”が入力され、図２に示すカウンタ１１，１３は“０００００００”に、図４の制御回路４のＤ型フリップフロップ２６は“０”にリセットされ、読み出し許可信号ＲＲも“０”とされる。
次に図１に示す２次元ＤＣＴ回路の１次元目のＤＣＴ回路２でデータが処理された後、２ポートメモリ１への書き込み許可信号ＷＲが“１”となり、端子ＤＩから入力したデータの書き込みが行われる。図２のカウンタ１１は書き込み許可信号ＷＲ＝“１”のとき図示しないクロックに同期して１ずつカウントアップを行う。これに応じて書き込みアドレス生成部５から２ポートメモリ１へ書き込みアドレスが０，１，２，３，…と出力され、端子ＤＩに入力されたデータがそのアドレスへ書き込まれる。２ポートメモリ１に５６個のデータつまり０〜５５のアドレスにデータが書き込まれるまで、読み出しタイミング信号ＷＶと読み出し終了信号ＲＶは“０”が続くため、制御回路４の図４に示したフリップフロップ２６の出力Ｑからは“０”が出力され続け、２ポートメモリ１の読み出し許可信号ＲＲも“０”が出力され続けている。
【００２５】
２ポートメモリ１に５６個のデータが書き込まれると、サイクル５７で図２に示すカウンタ１１の出力はｘ５ｘ４ｘ３ｘ２ｘ１ｘ０＝（１１１０００）2 ＝（５６）10となる。この時点で２ポートメモリ１のアドレス０，１，２，…，５５まではデータが書き込まれている。
次のデータが１次元目のＤＣＴ回路２から出力され書き込み許可信号ＷＲに“１”が入力されると、２ポートメモリ１のアドレス“５６”にデータの書き込みを行おうとする。このとき、制御回路４に読み出し許可信号ＷＲと読み出しタイミング信号ＷＶが“１”となって入力されるので、図４に示すフリップフロップ２６の入力Ｄに“１”がセットされる。サイクル５８でクロックに同期してその値が受け付けられると、Ｑから“１”が出力される。
【００２６】
制御回路４は一度Ｄに“１”がセットされＱ＝“１”となると、リセット信号ＲＳが“１”となるかまたは、ＷＲ，ＷＶのどちらかが“０”でかつＲＶに“１”が入力されない限り“１”を出力し続ける。
フリップフロップ２６の出力Ｑが“１”である限り、２ポートメモリ１の読み出し許可信号ＲＲは“１”であり、読み出しが継続される。２ポートメモリ１はアドレス入力端子ＲＡＩにアドレスが入力すると、対応するアドレスからデータが読み出されて端子ＤＯから出力される。
【００２７】
図３に示すカウンタ１３は読み出し許可信号ＲＲ＝“１”のときクロックに同期して１ずつカウントアップを行う。これに応じて端子ＲＡＯから読み出しアドレスが０，８，１６，…と出力される。これで列方向のデータ読み出しがされる。
２ポートメモリ１から６３個のデータが読み出された後、制御回路４の入力ＲＶは“１”となる。ＲＲは“１”であるため、次のサイクルで６４個目のデータがアドレス６３から読み出される。ＷＲ，ＷＶが“１”でない場合、フリップフロップ２６のＤ端子には“０”が入力されるため、次のサイクルから２ポートメモリ１の読み出しは中止される。ＷＲ，ＷＶが“１”であればＤ端子には“１”が入力されるので、読み出しは継続される。
【００２８】
カウンタ１１が６４個カウントアップを行った後はｘ６＝“１”となるので２ポートメモリ１への書き込みは０，８，１６，…のアドレスの順に行われる。これは列方向の書き込みとなる。カウンタ１３が６４回カウントアップを行った後はｙ６＝“１”となるので２ポートメモリ１の読み出しは０，１，２，３，…のアドレスの順に行われる。これは行方向の読み出しとなる。
２次元ＤＣＴ回路では１ブロック６４個（８行×８列）のうち８つのデータ（１行または１列分）をまとめて扱い処理を行うので、上記の方法のように、５７個目のデータが書き込まれたことを検出すれば続いて５８番目以降６４番目までのデータを１次元目のＤＣＴ回路が出力できることを示しており、データの読み出しを開始することができる。
【００２９】
〈具体例１の効果〉
以上のように、メモリに２ポートメモリを使用し、データの書き込みと同時に読み出しを行えるように構成すれば、同一構成のメモリを二重に設ける従来方法よりも回路規模を小さくすることができる。しかも、上記のように書き込みアドレスと読み出しアドレスを制御することによって、データの読み出しと書き込みを同時並行処理することができ、しかも２回以上繰り返してマトリクス状のデータの書き込みと読み出しを行う場合には両者の時間的な遅れを最小限にすることができる。なお、上記の例では８×８マトリクス形式のデータを取り扱った例を示したが、必ずしも正方行列でなく、行方向と列方向のデータ量が異なるようなものにも本発明の適用が可能である。また、このような転置処理のための回路の前後に位置する回路はＤＣＴ回路の他、各種の回路とすることができる。
【００３０】
〈具体例２〉
図７以下には、具体例２の構成及び動作を説明する。なお、具体例２の全体構成を示すブロックは図１に示したものと全く同様である。そして、具体例２の書き込みアドレス生成部５は、図７に示した構成とされる。また、読み出しアドレス生成部６は図８に示した構成とされる。図７に示す書き込みアドレス生成部のカウンタ１１及びセレクタ１２と、及びこれらの間の接続や入出力信号は具体例１のものと全く同様である。この具体例２では、次のように読み出しタイミング信号を出力するためのＡＮＤゲート群１８が設けられている。これらのＡＮＤゲート群を以下、それぞれ１８−１〜１８−８というように表示する。
【００３１】
カウンタ１１の出力ｘ５，ｘ４，ｘ３，ｘ２，ｘ１，ｘ０は図に示すように、ＡＮＤ回路１８−１，１８−２，１８−３，１８−４，１８−５，１８−６，１８−７，１８−８に接続されている。
ＡＮＤ回路１８−１は、ｘ５ｘ４ｘ３ｘ２ｘ１ｘ０＝（００００００）2 ＝（０）10のときのみ“１”を出力する。
ＡＮＤ回路１８−２は、ｘ５ｘ４ｘ３ｘ２ｘ１ｘ０＝（００１０００）2 ＝（８）10のときのみ“１”を出力する。
ＡＮＤ回路１８−３は、ｘ５ｘ４ｘ３ｘ２ｘ１ｘ０＝（０１００００）2 ＝（１６）10のときのみ“１”を出力する。
ＡＮＤ回路１８−４は、ｘ５ｘ４ｘ３ｘ２ｘ１ｘ０＝（０１１０００）2 ＝（２４）10のときのみ“１”を出力する。
ＡＮＤ回路１８−５は、ｘ５ｘ４ｘ３ｘ２ｘ１ｘ０＝（１０００００）2 ＝（３２）10のときのみ“１”を出力する。
ＡＮＤ回路１８−６は、ｘ５ｘ４ｘ３ｘ２ｘ１ｘ０＝（１０１０００）2 ＝（４０）10のときのみ“１”を出力する。
ＡＮＤ回路１８−７は、ｘ５ｘ４ｘ３ｘ２ｘ１ｘ０＝（１１００００）2 ＝（４８）10のときのみ“１”を出力する。
ＡＮＤ回路１８−８は、ｘ５ｘ４ｘ３ｘ２ｘ１ｘ０＝（１１１０００）2 ＝（５６）10のときのみ“１”を出力する。
【００３２】
図８に示した読み出しアドレス生成部も具体例１のものと同様にカウンタ１３及びセレクタ１４の結線がなされている。その入出力信号も変わるところはない。そして、読み出し終了信号を出力するためのＡＮＤゲート群１９のみが具体例１と異なっている。このＡＮＤゲート群はそれぞれ１９−１〜１９−８と呼ぶ。
カウンタ１３の出力ｙ５，ｙ４，ｙ３，ｙ２，ｙ１，ｙ０は図に示すように、ＡＮＤ回路１９−１，１９−２，１９−３，１９−４，１９−５，１９−６，１９−７，１９−８に接続されている。
ＡＮＤ回路１９−１は、ｙ５ｙ４ｙ３ｙ２ｙ１ｙ０＝（００００００）2 ＝（０）10のときのみ“１”を出力する。
ＡＮＤ回路１９−２は、ｙ５ｙ４ｙ３ｙ２ｙ１ｙ０＝（０００００１）2 ＝（１）10のときのみ“１”を出力する。
ＡＮＤ回路１９−３は、ｙ５ｙ４ｙ３ｙ２ｙ１ｙ０＝（００００１０）2 ＝（２）10のときのみ“１”を出力する。
【００３３】
ＡＮＤ回路１９−４は、ｙ５ｙ４ｙ３ｙ２ｙ１ｙ０＝（００００１１）2 ＝（３）10のときのみ“１”を出力する。
ＡＮＤ回路１９−５は、ｙ５ｙ４ｙ３ｙ２ｙ１ｙ０＝（０００１００）2 ＝（４）10のときのみ“１”を出力する。
ＡＮＤ回路１９−６は、ｙ５ｙ４ｙ３ｙ２ｙ１ｙ０＝（０００１０１）2 ＝（５）10のときのみ“１”を出力する。
ＡＮＤ回路１９−７は、ｙ５ｙ４ｙ３ｙ２ｙ１ｙ０＝（０００１１０）2 ＝（６）10のときのみ“１”を出力する。
ＡＮＤ回路１９−８は、ｙ５ｙ４ｙ３ｙ２ｙ１ｙ０＝（１１１１１１）2 ＝（６３）10のときのみ“１”を出力する。
【００３４】
図９には、具体例２の制御回路の結線図を示す。
この回路には８個の順序回路２０Ａ〜２０Ｈが設けられている。その内部結線は具体例１で説明した図４に示す回路と全く同一のものである。そして、これらの順序回路２０Ａ〜２０Ｈには、それぞれ図７と図８に示した書き込みアドレス生成部及び読み出しアドレス生成部から読み出しタイミング信号Ｐ１〜Ｐ８及び書き込みタイミング信号Ｊ１〜Ｊ８が入力するように構成されている。全ての順序回路２０Ａ〜２０ＨのＱ出力はＯＲゲート２８を介して読み出し許可信号として出力される構成となっている。なお、このように読み出し許可信号は各順序回路２０Ａ〜２０Ｈに再入力する構成となっている。
【００３５】
以上の回路は次のように動作する。
図１０は、具体例２の動作タイミングチャートを示す。
図の（ａ）は動作サイクル、（ｂ）は書き込み許可信号ＷＲ、（ｃ）は読み出し許可信号ＲＲ、（ｄ）は書き込みアドレスＷＡＯ、（ｅ）は読み出しアドレスＲＡＯ、（ｆ）は読み出しタイミング信号ＷＶ、（ｇ）は読み出し終了信号ＲＶ、（ｈ）は書き込みデータ、（ｉ）は読み出しデータを示している。
【００３６】
まず、図１の回路でリセット信号ＲＳを“１”としてカウンタ１１，１３を“００００００”とし、制御回路４の全ての順序回路２０Ａ〜２０Ｈのフリップフロップ２６を“０”にリセットし、読み出し許可信号ＲＲを“０”とする。
次に、２次元ＤＣＴ回路の１次元目の回路でデータが処理され、書き込み許可信号がＷＲ＝“１”となり、２ポートメモリのアドレス“０”に書き込みが行われる。このとき、カウンタ１１，１３は“０００００００”であるためＷＶ（Ｐ１），ＲＶ（Ｊ１）は“１”となっている。ＷＲ＝“１”、ＸＶ（Ｐ１）＝“１”であるため順序回路２０ＡのＤフリップフロップの入力Ｄ＝“１”となる。
【００３７】
次のサイクル（２）でカウンタ１１は１カウントアップし、２ポートメモリ１のアドレス１に書き込みが行われる。また、順序回路２０ＡのＱ端子＝“１”となり、読み出し許可信号ＲＲ＝“１”となるので、アドレス“０”が読み出される。このとき、順序回路２０ＡのＷＶ（Ｐ１）＝“０”、ＲＲ＝１，ＲＶ（Ｊ１）＝１であり、Ｄ＝“０”となる。
次のサイクル（３）でカウンタ１１は“１”カウントアップし、２ポートメモリ１のアドレス“２”に書き込みが行われる。カウンタ１３は“１”カウントアップしてＲＶ（Ｊ１）＝“０”、ＲＶ（Ｊ２）＝“１”となる。また、ＲＲ＝“０”となり、読み出しは行われない。
【００３８】
以降、ＷＲ＝“１”でカウンタ１１はクロックに同期して１ずつカウントアップし２ポートメモリ１の書き込みアドレスは“３”、“４”、“５”、…と変化すると、
サイクル（１０）でＲＲ＝“１”となり、２ポートメモリ１のアドレス“８”が読み出され、
サイクル（１８）でＲＲ＝“１”となり、２ポートメモリ１のアドレス“１６”が読み出され、
サイクル（２６）でＲＲ＝“１”となり、２ポートメモリ１のアドレス“２４”が読み出され、
【００３９】
サイクル（３４）でＲＲ＝“１”となり、２ポートメモリ１のアドレス“３２”が読み出され、
サイクル（４２）でＲＲ＝“１”となり、２ポートメモリ１のアドレス“４０”が読み出され、
サイクル（５０）でＲＲ＝“１”となり、２ポートメモリ１のアドレス“４８”が読み出され、
サイクル（５８）でＲＲ＝“１”となり、２ポートメモリ１のアドレス“５６”が読み出され、
サイクル（５８）では順序回路２０ＨのＱ＝“１”、ＲＲ＝“１”、ＲＶ（Ｊ８）＝“０”であり、Ｄ＝“１”となっているためサイクル（５９）以降もＲＲ＝“１”となり、ＲＡＭのアドレス１，９，…と順に読み出しが続けられる。
【００４０】
サイクル（１１４）で６４個目のデータの読み出しを行うとき、ＲＲ＝“１”でありカウンタ１３の出力ｙ５ｙ４ｙ３ｙ２ｙ１ｙ０＝（１１１１１１）2 ＝（６３）10であるので順序回路２０ＨのＲＶ（Ｊ８）＝“１”となり、１ブロック（６４個）のデータの読み出しが完了する。
【００４１】
このとき、次のブロックのデータが２ポートメモリ１に書き込まれていれば、読み出しは次のサイクルからも継続して行われる。以降、新たなブロックのデータが２ポートメモリ１へ、
１つ以上書き込みを終了していれば、１つを読み出すまで順序回路２０ＡのＱ＝“１”
９つ以上書き込みを終了していれば、２つを読み出すまで順序回路２０ＢのＱ＝“１”
１７個以上書き込みを終了していれば、３つを読み出すまで順序回路２０ＣのＱ＝“１”
２５個以上書き込みを終了していれば、４つを読み出すまで順序回路２０ＤのＱ＝“１”
３３個以上書き込みを終了していれば、５つを読み出すまで順序回路２０ＥのＱ＝“１”
４１個以上書き込みを終了していれば、６つを読み出すまで順序回路２０ＦのＱ＝“１”
４９個以上書き込みを終了していれば、７つを読み出すまで順序回路２０ＧのＱ＝“１”
５７個以上書き込みを終了していれば、６４個を読み出すまで順序回路２０ＨのＱ＝“１”
であるため、ＲＲ＝“１”となり、データの読み出しが行われる。
【００４２】
〈具体例２の効果〉
以上のように、具体例２では具体例１よりも早く行方向の書き込みが行われた後列方向の読み出し開始が行われる。即ち、５６個のデータ書き込みが終了した後、初めてデータの読み出しが行われる場合に比べてデータの読み出し開始が早いため、データの書き込みと読み出しとの間の時間遅れをより小さくすることができる。
その他の機能や効果については具体例１と同様である。
【図面の簡単な説明】
【図１】本発明の装置の具体例を示すブロック図である。
【図２】書き込みアドレス生成部の結線図である。
【図３】読み出しアドレス生成部の結線図である。
【図４】制御回路の結線図である。
【図５】具体例１の概略動作説明図である。
【図６】具体例１の動作タイミングチャートである。
【図７】書き込みアドレス生成部の結線図である。
【図８】読み出しアドレス生成部の結線図である。
【図９】具体例２の制御回路結線図である。
【図１０】具体例２の動作タイミングチャートである。
【符号の説明】
１  ２ポートメモリ
２，３  ＤＣＴ回路
４  制御回路
５  書き込みアドレス生成部
６  読み出しアドレス生成部
【図１】
0003731191.tif 000002
【図２】
0003731191.tif 000003
【図３】
0003731191.tif 000004
【図４】
0003731191.tif 000005
【図５】
0003731191.tif 000006
【図６】
0003731191.tif 000007
【図７】
0003731191.tif 000008
【図８】
0003731191.tif 000009
【図９】
0003731191.tif 000010
【図１０】
0003731191.tif 000011