説明

行列データ乗算装置および行列データ乗算方法

【目的】 同一回路かつ同一行列データで行列乗算およびその転置行列乗算を行うことのできる行列デ─タ乗算装置を提供する。
【構成】 本発明の行列デ─タ乗算装置1は、シリアル入力データを行列の次数分だけ保持するホールド回路10と、入力と行列データの乗算を行う乗算回路50と、前段または自己の乗算結果を累加算する加算回路70からなる単位演算回路110をデータ行列の次数分だけ有する。前記単位演算回路は選択信号により、(1)入力データをホールド回路へ、あるいは乗算回路へ入力する、(2)加算回路の入力を前段の乗算結果とするか、あるいは自己の加算結果とするか、を選択することができる。前記の選択により、前記単位演算回路の入出力関係を、(1)入力について行列乗算を行う関係、(2)入力についてその転置行列乗算を行う関係、に変更することができる。前記選択信号により、パラレル/シリアル変換回路出力あるいは最後段のレジスタ出力が選択される。

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、デジタル信号処理における行列データ乗算装置、特に離散余弦変換(DCT)および逆離散余弦変換(IDCT)演算装置に関する。
【0002】
【従来の技術】入力データI0、I1、I2、I3がnビット並列に、順次時間順(シリアル)に入力され、式1の演算を行われた結果として出力データY0、Y1、Y2、Y3がnビット並列に、順次シリアルに出力される装置構成として、図7、図8に示される装置構成が知られている。
【数1】


【0003】(装置2の装置構成の動作説明)図7は従来の行列データ乗算装置2の構成を示した図である。図7R>7の回路構成の行列データ乗算装置2で式1の演算を行う場合の動作は以下の通り。図7中のレジスタ60、61、62、63は、入力データI0、I1、I2、I3の入力に先立ち、初期化(クリア)される。その後、図2R>2に示すタイミングで動作サイクル信号100に同期した入力データI0、I1、I2、I3が各乗算回路50、51、52、53に順次シリアル入力される。これと同時に、各メモリ41、42、43、44より各乗算回路50、51、52、53にそれぞれ係数データ“A0〜A3”、“B0〜B3”、“C0〜C3”、“D0〜D3”が読みだされる。各係数メモリ40〜43から読みだされた係数データ“A0〜A3”、“B0〜B3”、“C0〜C3”、“D0〜D3”は、それぞれI0〜I3と乗算回路50、51、52、53において乗算される。これらの演算結果は、それぞれ加算回路70とレジスタ60、加算回路71とレジスタ61、加算回路72とレジスタ62、加算回路73とレジスタ63により構成される累加算回路により累加算の結果、Y0〜Y3が計算される。各累加算回路で計算されたY0〜Y3は、並列/直列変換回路(パラレル/シリアル変換回路)80によりシリアル変換され、出力される。
【0004】この場合、演算に当たり、メモリ40には、A0,A1,A2,A3 を格納し、メモリ41には、B0,B1,B2,B3 を格納し、メモリ42には、C0,C1,C2,C3 を格納し、メモリ43には、D0,D1,D2,D3 を格納することにより行列計算をすることができ、さらにメモリ40には、A0,B0,C0,D0 を格納し、メモリ41には、A1,B1,C1,D1 を格納し、メモリ42には、A2,B2,C2,D2 を格納し、メモリ43には、A3,B3,C3,D3 を格納することにより、式1の定数行列の転置行列の計算をすることができる。よって、一つの行列データ乗算装置で定数行列による乗算と、その転置行列による乗算を行う場合、メモリ40には、A0,A1,A2,A3,B0,C0,D0 を格納し、メモリ41には、B0,B1,B2,B3,A1,C1,D1 を格納し、メモリ42には、C0,C1,C2,C3,A2,B2,D2 を格納し、メモリ43には、D0,D1,D2,D3,A3,B3,C3 を格納することが必要となる。
【0005】(装置3の装置構成の動作説明)図8は従来の行列データ乗算装置3の構成を示した図である。図8R>8の装置構成で式1の演算を行う場合の動作は以下の通り。図8中のホールド回路10、11、12、13は、入力データI0、I1、I2、I3の入力に先立ちクリアされる。その後、図3に示すタイミングで入力データI0、I1、I2、I3は、ホールド回路制御信号94により、各ホールド回路10、11、12、13に4動作サイクルの間保持される。また、図2に示されるタイミングで、各メモリ44、45、46、47より各乗算回路51、52、53、54にそれぞれ係数データ“A0、B0、C0、D0”、“A1、B1、C1、D1”、“A2、B2、C2、D2”、“A3、B3、C3、D3”が読みだされる。各係数メモリから読みだされた係数データ“A0、B0、C0、D0”、“A1、B1、C1、D1”、“A2、B2、C2、D2”、“A3、B3、C3、D3”とホールド回路に保持された入力データI0〜I3は乗算回路50、51、52、53において乗算される。これらの演算結果は、それぞれ加算回路70、71、72、73により加算されてゆくが、そのつどレジスタ60、61、62、63を介するので1動作サイクル信号ずれた乗算結果が加算され、この結果Y0〜Y3がシリアル出力される。
【0006】この場合、演算に当たり、メモリ44には、A0,B0,C0,D0 を格納し、メモリ45には、A1,B1,C1,D1 を格納し、メモリ46には、A2,B2,C2,D2 を格納し、メモリ47には、A3,B3,C3,D3 を格納することにより行列計算をすることができ、さらにメモリ44には、A0,A1,A2,A3 を格納し、メモリ45には、B0,B1,B2,B3 を格納し、メモリ46には、C0,C1,C2,C3 を格納し、メモリ47には、D0,D1,D2,D3 を格納することにより、式1の定数行列の転置行列の計算をすることができる。よって、一つの行列演算装置で定数行列による乗算と、その転置行列による乗算を行う場合、行列データ乗算装置3の装置構成の動作説明で示したのと同じく、メモリ44には、A0,A1,A2,A3,B0,C0,D0 を格納し、メモリ45には、B0,B1,B2,B3,A1,C1,D1 を格納し、メモリ46には、C0,C1,C2,C3,A2,B2,D2 を格納し、メモリ47には、D0,D1,D2,D3,A3,B3,C3 を格納することが必要となる。
【0007】次に、離散余弦変換(DCT)とその逆変換である逆離散余弦変換(IDCT)を上記の行列データ乗算回路で計算する場合について述べる。DCTの計算
【数2】


と、その逆変換であるIDCTの計算
【数3】


を行う場合である。但し、式2、および式3において、 E=cos(2π/8)、F=cos(1π/8)、G=cos(3π/8)
・・・式4とする。
【0008】(DCT/IDCTの計算を行列データ乗算装置2で行う場合の従来例)DCTの計算(式2)を従来の行列データ乗算装置2で行う場合は、式1における各定数を、 A0= E, A1= E, A2= E, A3= E B0= F, B1= G, B2=−G, B3=−F C0= E, C1=−E, C2=−E, C3= E D0= G, D1=−F, D2= F, D3=−G ・・・式5と考えることにより計算することができる。すなわち、メモリ40には、E を格納し、メモリ41には、F, G,−F,−G を格納し、メモリ42には、E,−E を格納し、メモリ43には、F, G,−F,−G を格納することにより、DCTの計算(式2)を従来の行列データ乗算装置2で行うことができる。
【0009】IDCTの計算(式3)を従来の行列データ乗算装置3で行う場合は、式1における各定数を、 A0= E, A1= F, A2= E, A3= G B0= E, B1= G, B2=−E, B3=−F C0= E, C1=−G, C2=−E, C3= F D0= E, D1=−F, D2= E, D3=−G ・・・式6と考えることにより計算することができる。すなわち、メモリ40には、 E, F, G を格納し、メモリ41には、 F, G,−F,−G を格納し、メモリ42には、 E, F,−E,−G を格納し、メモリ43には、 E,−F,−G を格納することにより、IDCTの計算(式3)を従来の回路(図7)で行うことができる。したがって、メモリ40には、E, F, G を格納し、メモリ41には、E, F, G,−E,−F,−G を格納し、メモリ42には、E, F,−E,−G を格納し、メモリ43には、E, F, G,−F,−G を格納することによって、DCTおよびIDCTの演算を行うことができる。
【0010】(DCT/IDCTの計算を図8の回路で行う場合の従来例)DCTの計算(式2)を従来の装置3で行う場合は、図7の回路と同様に考えて、メモリ44には、 E, F, G を格納し、メモリ45には、 F, G,−E,−F を格納し、メモリ46には、 E, F,−E,−G を格納し、メモリ47には、 E,−F,−G を格納することにより、DCTの計算(式2)を行うことができる。
【0011】IDCTの計算(式3)を行列データ乗算装置3で行う場合は、行列デ─タ乗算装置2と同様に考えて、メモリ44には、 E を格納し、メモリ45には、 F, G,−F,−G を格納し、メモリ46には、 E,−E を格納し、メモリ47には、 E, G,−F,−G を格納することにより、IDCTの計算(式3)を行うことができる。したがって、図7の回路と同様に、メモリ44には、E, F, G を格納し、メモリ45には、E, F, G,−E,−F,−G を格納し、メモリ46には、E, F,−E,−G を格納し、メモリ47には、E, F, G,−F,−G を格納することによって、DCTおよびIDCTの演算を行うことができる。
【0012】
【発明が解決しようとする課題】DCTとIDCT演算のような、定数行列の乗算とその転置行列の乗算の関係にある計算を一つの演算装置で行いたいという要請があるが、例えば4×4の定数行列の場合、定数行列あるいはその転置行列の一方の乗算を行う場合に必要なデータは16個なのに対し、定数行列とその転置行列の乗算を一つの演算装置で行おうとすると、一般的には28個のデータをメモリ上に格納しておく必要がある。また、同じく4×4の定数行列によるDCT、IDCT演算に限った場合でも、どちらか片方の乗算のみを行う場合、必要なデータは11個であるのに対し、双方の乗算を行うためには、18個のデータをメモリ上に格納しておく必要があり、メモリが大きくなりすぎるという問題があった。この問題は整数データに比べて定数データのビット数が大きくなる浮動小数点データを取り扱う乗算を行う場合、特に重要となる。本発明は、このような従来技術の問題点に鑑みてなされたものであり、定数行列乗算およびその転置行列乗算を同一の装置で行うことができ、しかも定数行列乗算のみを行う乗算装置、あるいはその転置行列演算のみを行う乗算装置に比べて定数データ格納用メモリの大きさが増えない定数行列およびその転置行列データ乗算用装置を提供することを目的とする。
【0013】
【課題を解決するための手段】上記目的を達成するために、本発明の行列データ演算回路は、対応する次数の入力データをその次数分だけ保持し、順次出力するデータ保持回路と、選択信号に応じて上記入力データ、また、上記データ保持回路からの保持データを選択的に出力するセレクタ回路と、定数行列の次数分だけ対応する次数の係数を保持している係数保持回路と、上記セレクタ回路からの出力と、上記係数保持回路からの係数を乗算する乗算回路と、上記選択信号に応じて、前段のデータ、また、自己の累加算結果と上記乗算回路の乗算結果との累加算を行う累加算回路からなる単位演算回路が次数分並列に設けられ、前段の累加算結果が次段累加算回路の入力のひとつとして接続されることを特徴としている。
【0014】
【作用】図1の行列データ乗算装置1の動作について述べる。本発明に係る図1の行列データ乗算装置1は、図7R>7、および図8に示したような、同一の定数行列データを使用した場合、入出力が互いに定数行列データとして転置行列データを使用し乗算を行ったのと等価の関係になる二種類の行列データ乗算装置2、3を含む。行列データ乗算装置1は、内包する行列データ乗算装置2、3を制御信号により用途に合わせて選択することにより内部構成を変更し、入出力関係を変更する。よって、行列データ乗算装置1は、同一の行列データ乗算装置および同一の行列データによって定数行列およびその転置行列による乗算を行うことができる。本発明によれば、同一の行列データ乗算装置および同一の行列データによって定数行列およびその転置行列による乗算を行う行列デ─タ乗算装置および行列デ─タ乗算方法を得ることができる。なお、この行列デ─タ乗算装置および行列デ─タ乗算方法はDCTおよびIDCT演算に好適である。
【0015】
【実施例】以下、本発明の第一実施例を図面を参照して説明する。図1は本発明に係る行列データ乗算装置1の装置構成図である。図1において、ホールド回路10、セレクタ20、24、メモリ30、乗算回路50、レジスタ60、および加算回路70は単位演算回路110を構成する。他の単位演算回路111、112、113、114についても同様である。パラレル/シリアル変換回路80、出力バッファ81とセレクタ28は出力回路120を構成する。ホールド回路10、11、12、13は入力データをデータ入力から定数行列の次数分の動作サイクルの間保持する。本実施例では定数行列は4次であるため、4動作サイクルの間保持する。
【0016】セレクタ20、21、22、23、24、25、26、27、28は行列演算制御回路90から出力されるセレクタ制御用信号91により制御され、それぞれ2入力のうちひとつを選択し、出力する。この内、セレクタ20〜23は入力データ選択用のセレクタであり、0側に選択された場合、入力信号をそのまま乗算回路50、51、52、53に入力し、1側に選択された場合、ホールド回路を介した入力信号を乗算回路50、51、52、53に入力する。セレクタ24、25、26、27は加算回路70、71、72、73に入力されるデータを選択する。0側に選択された場合、加算回路71、72、73に入力されるデータはそれぞれレジスタ60、61、62の出力となり、1側に選択された場合、それぞれ前段のレジスタの値が加算回路71、72、73に入力される。出力回路120のセレクタ28は行列データ乗算装置1の出力を選択する。0側に選択された場合、行列データ乗算装置1の出力はパラレル/シリアル変換回路80からのものとなり、1側に選択された場合、レジスタ63の出力が行列データ乗算装置1の出力となる。この際、出力バッファ81は出力Y0、Y1、Y2、Y3のない場合、行列演算制御回路90から出力される出力制御信号95により制御され、ハイインピーダンス状態となるものとする。
【0017】メモリ30、31、32、33は定数データ格納用のメモリである。乗算回路50、51、52、53は入力データとメモリ30、31、32、33に格納された定数データの乗算を行う。レジスタ60、61、62、63は加算回路70、71、72、73の結果を格納する。加算回路70、71、72、73は乗算回路50、51、52、53の出力を累加算する。レジスタ60と加算回路70、レジスタ61と加算回路71、レジスタ62と加算回路72、レジスタ63と加算回路73がそれぞれ組になり、累加算回路を形成する。パラレル/シリアル変換回路80は加算回路70、71、72、73に格納されるパラレルデータをシリアルに変換し、出力する。行列演算制御回路90は行列データ乗算装置1のセレクタ制御、初期化制御、メモリ制御、ホールド回路制御および出力回路制御を行う。セレクタ制御信号用91は、行列演算制御回路90から出力され、セレクタ20、21、22、23、24、25、26、27、28の制御を行う。初期化制御用信号92は、行列演算制御回路90から出力され、レジスタ60、61、62、63およびホールド回路10、11、12、13の初期化を制御する。メモリ制御信号93は、行列演算制御回路90から出力され、定数乗算時のメモリ制御を行う。ホールド回路制御用信号94は、行列演算制御回路90から出力され、定数乗算時のメモリ制御を行う。出力制御用信号95は出力回路120を制御する。制御信号91〜94はいずれもハイアクテイブの制御信号である。動作サイクル信号100は行列データ乗算装置1の動作サイクルのタイミングを規定する。単位演算回路110、111、112、113はセレクタ20、21、22、23により機能選択され、セレクタの0側を選択された場合、入力データI0、I1、I2、I3と行列の各行ごとの演算を行い、セレクタの1側を選択された場合、入力データI0、I1、I2、I3と行列の各列ごとの演算を行う。出力回路120は乗算結果の出力制御を行う。なお、上記各回路は特に断らない限り、デジタル論理回路で構成されるものとする。
【0018】行列データ乗算装置1は以上のように構成されるので、図1の行列データ乗算装置1は2入力1出力のセレクタ20、21、22、23、24、25、26、27、28を連動して0側に切り換えることにより、図7の行列データ乗算装置2と同じ入出力関係を有するように設定でき、同じく1側に設定することにより図8の行列データ乗算装置3と同じ入出力関係を有するように設定できる。
【0019】式1の演算を行うためにメモリ30に A0,A1,A2,A3 を格納し、メモリ31に B0,B1,B2,B3 を格納し、メモリ32に C0,C1,C2,C3 を格納し、メモリ33に D0,D1,D2,D3 を格納し、さらに2入力1出力のセレクタ20、21、22、23、24、25、26、27、28を0側に設定することにより、図7の行列データ乗算装置2と同一の入出力関係になるように設定する。図1の回路構成で式1の演算を行う場合の動作は以下の通り。図1中の各単位演算回路110、111、112、113に含まれるレジスタ60、61、62、63は、入力データI0、I1、I2、I3の入力に先立ち、初期化用制御信号92によりクリアされる。その後、図2に示すタイミングで動作サイクル信号100に同期した入力データI0、I1、I2、I3がnビット並列(n=16)に、各乗算回路50、51、52、53に順次シリアル入力される。これと同時に、メモリ制御信号93により、各係数メモリ30、31、32、33より各乗算回路50、51、52、53にそれぞれ係数データ“A0〜A3”、“B0〜B3”、“C0〜C3”、“D0〜D3”が読みだされる。この際の行列データ乗算装置1のメモリセル30内部のメモリセル30a〜30dとメモリセル制御信号93a〜93dの関係を図6Aに示す。図6Aにはメモリ30のみの構成の詳細を記すが、メモリ31、32、33についても同様の構成である。各係数メモリから読みだされた係数データ“A0〜A3”、“B0〜B3”、“C0〜C3”、“D0〜D3”は、それぞれI0〜I3と乗算回路50、51、52、53において乗算される。これらの演算結果は、それぞれ加算回路70とレジスタ69、加算回路71とレジスタ61、加算回路72とレジスタ62、加算回路73とレジスタ63により構成される累加算器により累加算の結果、Y0〜Y3が計算される。各累加算器で計算されたY0〜Y3は、パラレル/シリアル変換回路80によりシリアル変換され、nビット並列に出力される。つまり、図7の行列演算装置おけるメモリ40、41、42、43をそれぞれメモリ30、31、32、33に置き換えたことと等価である。
【0020】次に図1の行列データ乗算装置1により転置行列演算を行う場合について述べる。この場合、メモリ30、31、32、33の内容は変えず、セレクタ制御信号81により、2入力1出力のセレクタ20、21、22、23、24、25、25、27、28を1側に設定することにより、図8の行列データ乗算装置3と同一の入出力関係になるように設定する。図1中の各単位演算回路110、111、112、113に含まれるホールド回路10、11、12、13は、入力データI0、I1、I2、I3の入力に先立ち、図2に示すのと同様のタイミングで初期化用制御信号92によりクリアされる。その後、図3に示すタイミングで動作サイクル信号100に同期した入力データI0、I1、I2、I3は、ホールド回路制御信号94a〜dにより、各ホールド回路10、11、12、13に4動作サイクルの間保持される。また、図3に示されるタイミングで、メモリ制御信号93により、各係数メモリ30、31、32、33より各乗算回路70、71、72、73にそれぞれ係数データ“A0〜A3”、“B0〜B3”、“C0〜C3”、“D0〜D3”が読みだされる。各係数メモリから読みだされた係数データ“A0〜A3”、“B0〜B3”、“C0〜C3”、“D0〜D3”とホールド回路に保持された入力データI0〜I3は乗算回路50、51、52、53において乗算される。これらの演算結果は、それぞれ加算回路70、71、72、73により加算されてゆくが、そのつどレジスタ60、61、62、63を介するので1動作サイクルずれた乗算結果が加算され、この結果Y0〜Y3が出力回路120よりシリアル出力される。この動作は図8のメモリ44、45、46、47をそれぞれメモリ30、31、32、33に置き換え、メモリ30の内容を、A0,B0,C0,D0の転置行列用定数に相当するA0,A1,A2,A3に置き換え、メモリ31の内容を、A1,B1,C1,D1の転置行列用定数に相当するA0,A1,A2,A3に置き換え、メモリ32の内容を、A2,B2,C2,D2の転置行列用定数に相当するC0,C1,C2,C3に置き換え、メモリ33の内容を、A3,B3,C3,D3の転置行列用定数に相当するD0,D1,D2,D3に置き換えたことに等価である。以上のように、2入力1出力のセレクタ20、21、22、23、24、25、26、27、28を切り換えることにより同一の行列データ乗算装置1において、メモリ量を増やすことなく行列乗算とその転置行列乗算を行うことができる。なお、初期入力96は行列デ─タ乗算装置1を多段に重ねて使用する場合の外部入力であり、この実施例ではここから入力される信号を0とする。
【0021】以下、本発明の第2実施例について述べる。ここでは、本発明の行列データ乗算装置1で離散余弦変換(DCT)とその逆変換である逆離散余弦変換(IDCT)を計算する場合について述べる。DCTの計算およびその逆変換であるIDCTの計算についてのは従来例の説明で述べた通りである。DCTの計算(式2)を行列データ乗算装置1で行う場合は、先ず、メモリ30に、E を格納し、メモリ31に、F, G,−G,−F を格納し、メモリ32に、E,−E を格納し、メモリ33に、G,─F, F,−G を格納する。また、セレクタ20〜28を0側に選択し、入出力関係を行列データ乗算装置2と等価になるように設定する。メモリ30は常にEを出力するように設定し、メモリ32はE、−E、−E、Eの順に、その他のメモリ31、33は上記の通りの順番で出力するようメモリ30、31、32、33を制御する構成とする。メモリ30、31、32、33中の各メモリセル30a、31a、31b、32a〜32d、33a〜33dはメモリセル制御信号93a〜dがハイレベルでその内容を出力する。この際の行列データ乗算装置1の入出力関係を図4に、メモリセルとメモリ制御信号の関係を図6Bに示す。このような設定、構成とすることにより、第1実施例でセレクタ20〜29を0側に選択した場合について述べたのと同様の動作でDCT演算を行うことができる。IDCT演算を行う場合はセレクタ20〜29を1側に選択する。他の構成はDCT演算と同じとする。この際の行列データ乗算装置1の入出力関係を図5に示す。セレクタ20〜29を1側に選択することにより、第1実施例でセレクタ20〜29を0側に選択した場合について述べたのと同様の動作でIDCT演算を行うことができる。各種制御信号は本実施例では全てハイアクテイブの信号としたが、回路の構成上必要に応じてローアクテイブの信号としてもよい。
【0022】なお、本発明の実施例では、メモリ30〜33に定数行列データを設定し、セレクタ20〜28を0側に選択して行う演算を行列乗算とし、セレクタ20〜28を1側に設定して行う演算を転置行列演算としたが、メモリ30〜33に上記行列と転置関係にある定数行列データを設定し、セレクタ20〜28を1側に選択して行う演算を行列乗算とし、セレクタ20〜28を0側に設定して行う演算を転置行列乗算としてもよい。これと同様の関係はDCTおよびIDCT演算についても同じである。
【0023】また、本発明の実施例では、4×4行列についてのみ述べたが、単位演算回路を次数分だけ設け、それに応じた定数データ格納用メモリの構成とし、定数データ格納用メモリに定数を格納することにより、任意の次数の行列乗算についての本発明に係る行列データ乗算装置を得ることができる。これはDCTおよびIDCT演算についても同様である。また、本発明の実施例に示した各単位演算回路は同等の機能を有する他の回路構成に置き換えることができる。また、入出力形式として本実施例ではシリアル入出力としたが、用途によっては全ての入出力をパラレル入出力としてもよい。また、本発明の実施例では入出力データは16ビット並列(n=16)としたが、nは他の値としてもよい。さらに、シリアル入出力(n=1)としてもよい。また、入力と出力のビット長が同じでなくともよい。また、本発明の実施例では、係数データ格納メモリと乗算回路を有することにより入力データと係数データの乗算を行っているが、ルックアップテーブルを用いて乗算を行ってもよい。
【0024】
【発明の効果】以上述べたように本発明の行列データ乗算装置によれば、互いに同一定数格納メモリ内の定数データについて乗算をした場合、入出力関係が定数行列とその転置行列の乗算となる乗算装置を内蔵し、それらをセレクタにて切り換えて乗算を行うので、一種類の定数用メモリを使用して、定数行列乗算と、その転置行列乗算を同一回路で行うことができ、定数行列とその転置行列の両方を入力について行うことができるにもかかわらず、いずれか一方のみを行う行列データ乗算装置と比べて定数データ格納用メモリが増大しない行列データ乗算装置を得ることができる。
【図面の簡単な説明】
【図1】本発明の行列データ乗算装置である。
【図2】本発明の行列データ乗算装置1および第1の従来の行列データ乗算装置の定数行列乗算動作のタイミングを示す図である。
【図3】本発明の行列データ乗算装置および第2の従来の行列データ乗算装置の転置定数行列乗算動作のタイミングを示す図である。
【図4】本発明の行列データ乗算装置におけるDCT演算のタイミングを示す図である。
【図5】本発明の行列データ乗算装置におけるIDCT演算のタイミングを示す図である。
【図6】本発明の実施例の行列データ乗算装置におけるメモリ構成とメモリ制御信号のタイミングを示す図である。
【図7】第1の従来の行列データ乗算装置の構成図である。
【図8】第2の従来の行列データ乗算装置の動作タイミングを示す図である。
【符号の説明】
1・・・本発明の実施例の行列データ乗算装置
10〜13・・・ホールド回路
20〜28・・・セレクタ
30〜33・・・本発明の定数データ格納用メモリ
30a〜33d・・・メモリセル
50〜53・・・乗算回路
60〜63・・・レジスタ
70〜73・・・加算回路
80・・・パラレル/シリアル変換回路
81・・・出力バッファ
90・・・行列演算制御回路
91・・・セレクタ制御用信号
92・・・初期化用制御信号
93・・・メモリ制御信号
93a〜93d・・・メモリセル制御信号
94・・・ホールド制御信号
94a〜94d・・・各ホールド回路へのホールド制御信号
95・・・出力制御信号
96・・・外部入力
100・・・動作サイクル信号
110〜113・・・単位演算回路
120・・・出力回路

【特許請求の範囲】
【請求項1】対応する次数の入力データをその次数分だけ保持し、順次出力するデータ保持回路と、選択信号に応じて上記入力データ、または上記データ保持回路からの保持データを選択的に出力するセレクタ回路と、定数行列の次数分だけ対応する次数の係数を保持している係数保持回路と、上記セレクタ回路からの出力と、上記係数保持回路からの係数を乗算する乗算回路と、上記選択信号に応じて、前段のデータ、または自己の累加算結果と上記乗算回路の乗算結果との累加算を行う累加算回路からなる単位演算回路が次数分並列に設けられ、前段の累加算結果が次段累加算回路の入力のひとつとして接続される行列データ乗算装置。
【請求項2】対応する次数の入力データをその次数分だけ保持し、順次出力するデータ保持回路と、選択信号に応じて上記入力データ、または上記データ保持回路からの保持データを選択的に出力するセレクタ回路と、定数行列の次数分だけ対応する次数の離散余弦変換および逆離散余弦変換に使用する係数を保持している係数保持回路と、上記セレクタ回路からの出力と、上記係数保持回路からの係数を乗算する乗算回路と、上記選択信号に応じて、前段のデータ、または自己の累加算結果と上記乗算回路の乗算結果との累加算を行う累加算回路からなる単位演算回路が次数分並列に設けられ、前段の累加算結果が次段累加算回路の入力のひとつとして接続される離散余弦変換および逆離散余弦変換演算装置。
【請求項3】対応する次数の入力データをその次数分だけ保持し、順次出力し、選択信号に応じて上記入力データと、または上記保持され、順次出力されたデータを選択的に出力し、定数行列の次数分だけ対応する次数の係数を保持し、上記入力データと、または上記保持され、順次出力されたデータと、上記係数を乗算し、上記選択信号に応じて、前段のデータ、または自己の累加算結果と上記乗算結果との累加算を行い、これらの単位演算を次数分並列に行い、前段の累加算結果が次段累加算の入力のひとつとなる行列データ乗算方法。
【請求項4】対応する次数の入力データをその次数分だけ保持し、順次出力し、選択信号に応じて上記入力データと、または上記保持され、順次出力されたデータを選択的に出力し、定数行列の次数分だけ対応する次数の離散余弦変換および逆離散余弦変換に使用する係数を保持し、上記入力データと、または上記保持され、順次出力されたデータと、上記係数を乗算し、上記選択信号に応じて、前段のデータ、または自己の累加算結果と上記乗算結果との累加算を行い、これらの単位演算を次数分並列に行い、前段の累加算結果が次段累加算の入力のひとつとなる離散余弦変換および逆離散余弦変換演算方法。

【図1】
image rotate


【図2】
image rotate


【図6】
image rotate


【図3】
image rotate


【図4】
image rotate


【図5】
image rotate


【図7】
image rotate


【図8】
image rotate


【公開番号】特開平5−346935
【公開日】平成5年(1993)12月27日
【国際特許分類】
【出願番号】特願平4−180475
【出願日】平成4年(1992)6月15日
【出願人】(000002185)ソニー株式会社 (34,172)