JPH0844704A - デジタルシグナルプロセッサ装置 - Google Patents

デジタルシグナルプロセッサ装置

Info

Publication number
JPH0844704A
JPH0844704A JP17905394A JP17905394A JPH0844704A JP H0844704 A JPH0844704 A JP H0844704A JP 17905394 A JP17905394 A JP 17905394A JP 17905394 A JP17905394 A JP 17905394A JP H0844704 A JPH0844704 A JP H0844704A
Authority
JP
Japan
Prior art keywords
matrix
data
register
stored
expression
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP17905394A
Other languages
English (en)
Other versions
JP3697720B2 (ja
Inventor
Mitsuharu Oki
光晴 大木
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 JP17905394A priority Critical patent/JP3697720B2/ja
Publication of JPH0844704A publication Critical patent/JPH0844704A/ja
Application granted granted Critical
Publication of JP3697720B2 publication Critical patent/JP3697720B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】 【目的】DCT/IDCTを高速に行うDSPを提供す
る。 【構成】IO部15より入力された実空間の2次元8×
8画像データ〔X〕はメモリ14に記憶され、データバ
ス17を介して1行づつコプロセッサ部20に入力され
る。コプロセッサ部20では、順次入力されるデータを
パイプラインレジスタで記憶し、そのパイプラインレジ
スタを通過中の所定のデータに、乗算器、加減算器、加
算器、減算器により適宜所定の演算を行う。これを8行
について行い〔Y〕=〔X〕〔Mt 〕を求める。さら
に、この処理を繰り返し〔Zt 〕=〔Yt 〕〔Mt 〕を
求める。そして、メインプロセッサ部11の演算器12
において、〔C〕=’(1/4)〔W〕〔Z〕〔Wt 〕
を演算し、周波数空間の8×8画像データ〔C〕を求め
る。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、デジタル信号の処理を
行う信号処理装置に関し、特に、2次元離散コサイン変
換(DCT(Discrete Cosine Transform))、および、
2次元逆離散コサイン変換(IDCT(Inverse DCT) )
を行うのに好ましいデジタルシグナルプロセッサ装置に
関する。
【0002】
【従来の技術】近年、画像圧縮に関しては2次元8×8
DCT、および、2次元8×8IDCTを用いる方法が
主流を占めている。その2次元8×8DCT、および、
2次元8×8IDCTは各々式15および式16で示さ
れる変換である。
【0003】
【数15】
【0004】
【数16】
【0005】式15および式16において、行列〔X〕
は、たとえば8×8の実空間の画像行列データであり、
行列〔C〕は行列〔X〕に対応する8×8の周波数空間
の画像行列データである。行列〔N〕は行列〔C〕を行
列〔X〕に変換するための8×8定数行列である。ま
た、添え字の「t 」は転置行列を示し、たとえば行列
〔N〕と行列〔Nt 〕は転置行列であることを示す。そ
の行列〔N〕および行列〔Nt 〕は式17、式18のよ
うに表される。
【0006】
【数17】
【0007】
【数18】
【0008】ところで、式15に示した8×8DCTの
計算、および、式16に示した8×8IDCTの計算
を、各々その計算式の通りに行うと、乗算回数が多くな
り演算速度が非常に遅くなり、また、回路規模が大きく
なるという問題を生じる。この問題を解決し、乗算回数
を減少させて高速演算を可能にし、さらに、回路規模が
小さくできる変換方法としては、本願出願人による特開
平6−35952号公報に開示されている変換装置の演
算方法が挙げられる。以下、この特開平6−35952
号公報に開示されている8×8DCTの変換方法、およ
び、8×8IDCTの変換方法について説明する。
【0009】まず、この8×8DCTの変換方法によれ
ば、式19に示すように、行列〔N〕を、対角線成分が
無理数で他の成分が全て「0」の式20に示す行列
〔W〕と、各成分が無理数、「+1」、「−1」のいず
れかの式21に示す行列〔M〕とに行列分解する。
【0010】
【数19】
【0011】
【数20】
【0012】
【数21】
【0013】また、式22に示すように、行列〔Nt 〕
を、行列〔W〕の転置行列である式23に示す行列〔W
t 〕と、行列〔M〕の転置行列である式24に示す行列
〔M t 〕とに行列分解する。
【0014】
【数22】
【0015】
【数23】
【0016】
【数24】
【0017】そして、これらの行列分解した行列式に基
づいて式15を式25に変換し、さらに、式25の計算
式を式26に示すように3つの計算ステップに分割す
る。
【0018】
【数25】
【0019】
【数26】
【0020】次に、このステップS1〜S3の計算を順
次行う。式26のステップS1の計算は、式27に示す
行列演算を8回繰り返すことにより実現できる。
【0021】
【数27】
【0022】すなわち、入力データxxk(k=0〜
7)として、行列〔X〕の第0行目のデータx0k(k
=0〜7)を入力し、式27を計算することにより、行
列〔Y〕の第0行目のデータy0k(k=0〜7)が出
力データyyk(k=0〜7)として出力される。以降
同様に、第1行目〜第7行目までのデータx1k(k=
0〜7)〜x7k(k=0〜7)を入力データとして式
27を計算することにより、行列〔Y〕の第1行目から
第7行目のデータy1k(k=0〜7)〜y7k(k=
0〜7)が順次出力され、行列〔Y〕が得られる。
【0023】なお、式27のシグナルフローを図8に示
す。入力されたデータxx0〜xx7に対して、図8に
示すような各演算を施すことにより、出力データyy0
〜yy7が得られる。
【0024】一方、転置行列の性質より、式28が成立
する。
【0025】
【数28】
【0026】これを利用すると、式26のステップS2
の計算も、式27の計算を8回繰り返すことにより実現
できる。行列〔Y〕の、第0列目のデータyk0(k=
0〜7)、すなわち、行列〔Yt 〕の第0行目のデータ
を式27に入力して計算を行うと、出力されたデータ
は、行列〔Z〕の転置行列〔Zt 〕の第0行目のデー
タ、すなわち、行列〔Z〕の第0列目のデータzk0
(k=0〜7)である。以降同様に、第1列目〜第7列
目までのデータyk1(k=0〜7)〜yk7(k=0
〜7)を入力データとして式27を計算することによ
り、行列〔Z〕の第1列目から第7列目のデータzk1
(k=0〜7)〜zk7(k=0〜7)が順次出力さ
れ、行列〔Z〕が得られる。
【0027】式26のステップS3の計算は、行列
〔W〕,〔Wt 〕が対角成分以外の要素が全て0の定数
行列なので、行列〔Z〕の各要素に各々所定の定数を乗
じる演算に変換できる。その乗じる定数を行列〔B〕と
して式29に示す。
【0028】
【数29】
【0029】行列〔B〕の各要素を用いると、式26の
ステップS3の計算は、式30に示す計算に変換でき
る。
【0030】
【数30】
【0031】このように、2次元8×8DCTの計算を
行うには、式26に従って、まず、8×8行列〔X〕の
各行を単位として、図8に示す計算を行い、8×8行列
〔Y〕を行単位で求める(ステップS1)。次に、その
行列〔Y〕の各列を単位として、再び図8に示す計算を
行い、8×8行列〔Z〕を列単位に求める(ステップS
2)。そして、8×8行列〔Z〕の各要素に対して、式
29に示す行列〔B〕の対応する各要素を各々乗じるこ
とにより、8×8行列〔C〕の各要素を求める(ステッ
プS3)。これにより、式15に示した計算式をそのま
ま計算するより、少ない乗算回数で2次元8×8DCT
計算ができる。
【0032】次に、この特開平6−35952号公報に
開示されている8×8IDCTの変換方法について説明
する。この8×8IDCTの変換方法によれば、まず、
式31に示すように、行列〔N〕を、対角線成分が無理
数で他の成分が全て「0」の式32に示す行列〔G〕
と、各成分が無理数、「+1」、「−1」のいずれかの
式33に示す行列〔F〕とに行列分解する。
【0033】
【数31】
【0034】
【数32】
【0035】
【数33】
【0036】また、式34に示すように、行列〔Nt 〕
を、行列〔G〕の転置行列である式35に示す行列〔G
t 〕と、行列〔F〕の転置行列である式36に示す行列
〔F t 〕とに行列分解する。
【0037】
【数34】
【0038】
【数35】
【0039】
【数36】
【0040】そして、これらの行列分解した行列式に基
づいて式16を式37に変換し、さらに、式37の計算
式を式38に示すように3つの計算ステップに分割す
る。
【0041】
【数37】
【0042】
【数38】
【0043】次に、このステップS1〜S3の計算を順
次行う。式38のステップS1の計算は、行列〔G〕,
〔Gt 〕が対角成分以外の要素が全て0の定数行列なの
で、行列〔C〕の各要素に各々所定の定数を乗じる演算
に変換できる。その乗じる定数を行列〔H〕として式3
9に示す。行列〔H〕の各要素を用いると、式38のス
テップS1の計算は、式40に示す計算に変換できる。
【0044】
【数39】
【0045】
【数40】
【0046】式38のステップS2の計算は、式41に
示す行列演算を8回繰り返すことにより実現できる。
【0047】
【数41】
【0048】すなわち、入力データppk(k=0〜
7)として、行列〔P〕の第0行目のデータp0k(k
=0〜7)を入力し、式41を計算することにより、行
列〔Q〕の第0行目のデータq0k(k=0〜7)が出
力データqqk(k=0〜7)として出力される。以降
同様に、第1行目〜第7行目までのデータp1k(k=
0〜7)〜p7k(k=0〜7)を入力データとして式
41を計算することにより、行列〔Q〕の第1行目から
第7行目のデータq1k(k=0〜7)〜q7k(k=
0〜7)が順次出力され、行列〔Q〕が得られる。
【0049】なお、式41のシグナルフローを図9に示
す。入力されたデータpp0〜pp7に対して、図9に
示すような各演算を施すことにより、出力データqq0
〜qq7が得られる。
【0050】一方、転置行列の性質より、式42が成立
する。
【0051】
【数42】
【0052】これを利用すると、式38のステップS3
の計算も、式41の計算を8回繰り返すことにより実現
できる。行列〔Q〕の、第0列目のデータqk0(k=
0〜7)、すなわち、行列〔Qt 〕の第0行目のデータ
を式41に入力して計算を行うと、出力されたデータ
は、行列〔X〕の転置行列〔Xt 〕の第0行目のデー
タ、すなわち、行列〔X〕の第0列目のデータxk0
(k=0〜7)である。以降同様に、第1列目〜第7列
目までのデータqk1(k=0〜7)〜qk7(k=0
〜7)を入力データとして式41を計算することによ
り、行列〔X〕の第1列目から第7列目のデータxk1
(k=0〜7)〜xk7(k=0〜7)が順次出力さ
れ、行列〔X〕が得られる。
【0053】このように、2次元8×8IDCTの計算
を行うには、式40に従って、まず、8×8行列〔C〕
の各要素に対して、式39に示す行列〔H〕の対応する
各要素を各々乗じることにより、8×8行列〔P〕の各
要素を求める(ステップS1)。次に、8×8行列
〔P〕の各行を単位として、図9に示す計算を行い、8
×8行列〔Q〕を行単位で求める(ステップS2)。そ
して、その行列〔Q〕の各列を単位として、再び図9に
示す計算を行い、8×8行列〔X〕を列単位に求める
(ステップS3)。これにより、式16に示した計算式
をそのまま計算するより、少ない乗算回数で2次元8×
8IDCT計算ができる。
【0054】このように高速な演算方法の2次元8×8
DCT、および、2次元8×8IDCTは、通常、デジ
タルシグナルプロセッサ(以後、DSPと言う)により
その演算が実行され、画像データの圧縮、伸張が行われ
る。図10に、一般的なDSPの構成を示す。DSP9
0は、メインプロセッサ部91、メモリ94、IO部9
5、および、制御部96より構成される。メインプロセ
ッサ部91は、演算器92と、レジスタファイル93よ
り構成される。また、メインプロセッサ部91とメモリ
94間はデータバス97により、メインプロセッサ部9
1内の演算器92とレジスタファイル93間はデータバ
ス98により、各々データ転送可能なように接続されて
いる。
【0055】このDSP90の動作について説明する。
外部からのデータは、IO部95より入力され、メモリ
94に一時記憶される。メモリ94に記憶されたデータ
は、データバス97を介してメインプロセッサ部91内
のレジスタファイル93に転送される。演算器92はデ
ータバス98を介してレジスタファイル93のデータを
読み込み、演算処理を行い、演算結果のデータを再びレ
ジスタファイル93に書き込む。そして、レジスタファ
イル93のデータはデータバス97を介してメモリ94
に記憶された後、IO部95より外部に出力される。こ
れらの、データの転送、演算などの制御は制御部96に
より行われる。
【0056】
【発明が解決しようとする課題】しかし、前述したよう
な、乗算回数を減らして高速化した方法の2次元8×8
DCTおよび2次元8×8IDCTであっても、このよ
うな通常のDSPを用いて変換を行う場合には、十分満
足できる演算速度は実現できず、より高速に演算を行い
たいという要求があった。図10に示すDSP90にお
いて、式24および式36の各演算を行う場合、全ての
演算は演算器92によって行わなければならない。その
ため、演算器92の負荷が非常に大きくなり、DCTお
よびIDCTの変換時間を短縮できなかった。また、演
算器92の負荷を減らすような構成、たとえば、コプロ
セッサ部を有する構成のDSPであっても、式24およ
び式36の演算を効率よく高速に実現できる構成のDS
Pはなかった。
【0057】したがって、本発明の目的は、前述したよ
うな2次元8×8DCTおよび2次元8×8IDCTの
演算を効率よく高速に実現できる構成のDSPを提供す
るこにある。
【0058】
【課題を解決するための手段】前述した演算方法の2次
元8×8DCTおよび2次元8×8IDCTの演算を効
率よく行うために、コプロセッサを用いて、DSPの演
算器の負荷を減らすようにした。そして、そのコプロセ
ッサは、式26のステップS1およびステップS2、お
よび、式38のステップS3、ステップS4の行列演算
を高速に行えるようなコプロセッサを設けることにし
た。
【0059】したがって、本発明のDSP装置は、デー
タの入出力を行う入出力回路と、データを記憶するメモ
リ回路と、そのメモリ回路に記憶されているメモリに対
して所定の演算を行う第1の演算回路とを有し、さら
に、直列的に接続され、順次データを転送可能な複数の
記憶素子と、その記憶素子より供給されるデータを用い
て所定の演算を行い、その演算の結果を所定の記憶素子
に出力する各々並列に動作可能な複数の演算器とを有
し、順次入力される一連のデータを順次後段の前記記憶
回路に転送するその転送過程において前記演算器により
所定の演算を行い出力データ系列を得る第2の演算回路
とを有する。
【0060】特定的には、本発明のDSP装置は、入力
行列に対して、少なくとも1の対角成分が無理数であり
他の成分が「0」である第1の行列と、各成分が無理
数、「+1」、「−1」のいずれかである第2の行列と
に行列分解できる第1の係数行列を左側から、前記第2
の行列の転置行列である第3の行列と、前記第1の行列
の転置行列である第4の行列とに行列分解できる第2の
係数行列を右側からそれぞれ乗算し、その乗算結果であ
る出力行列を得るデジタルシグナルプロセッサ装置であ
って、前記第2の演算回路において、前記第2の行列と
前記入力行列と前記第3の行列との乗算に相当する所定
の計算を行い、前記第1の演算回路において、前記第2
の演算回路回路の演算結果に対して左側から前記第1の
行列を乗算し右側から前記第4の行列を乗算する演算に
相当する所定の計算を行う。
【0061】好適には、前記第2の演算回路は、直列に
接続されパイプライン方式でデータの転送が可能な少な
くとも13個のレジスタと、該レジスタの任意のデータ
に対して演算可能な少なくとも1個の乗算器と1個の加
減算器と1個の加算器と2個の減算器より構成され、そ
の第2の演算回路で式26のステップS1およびステッ
プS2の演算を行い、前記第1の演算回路で式26のス
テップS3の演算を行うことにより、2次元8×8離散
コサイン変換を行う。
【0062】また特定的には、本発明のDSP装置は、
入力行列に対して、少なくとも1の対角成分が無理数で
あり他の成分が「0」である第1の行列と、各成分が無
理数、「+1」、「−1」のいずれかである第2の行列
とに行列分解できる第1の係数行列を右側から、前記第
2の行列の転置行列である第3の行列と、前記第1の行
列の転置行列である第4の行列とに行列分解できる第2
の係数行列を左側からそれぞれ乗算し、その乗算結果で
ある出力行列を得るデジタルシグナルプロセッサ装置で
あって、前記第2の演算回路において、前記第4の行列
と前記入力行列と前記第1の行列との乗算に相当する所
定の計算を行い、前記第1の演算回路において、前記第
2の演算回路回路の演算結果に対して左側から前記第3
の行列を乗算し右側から前記第2の行列を乗算する演算
に相当する所定の計算を行う。
【0063】好適には、前記第2の演算回路は、直列に
接続されパイプライン方式でデータの転送が可能な少な
くとも13個のレジスタと、該レジスタの任意のデータ
に対して演算可能な少なくとも1個の乗算器と1個の加
減算器と2個の加算器と1個の減算器より構成され、前
記第1の演算回路で式38のステップS1の演算を行
い、前記第2の演算回路で式38のステップS2および
ステップS3の演算を行うことにより、2次元8×8逆
離散コサイン変換を行う。
【0064】
【作用】本発明のDSP装置においては、第2の演算回
路において、入力データの系列を順次パイプライン方式
の記憶素子に入力し、その記憶素子を通過中のデータに
対して、各々並列に動作する複数の演算器により演算を
行うことができるので、式26のステップS1およびス
テップS2、式38のステップS2およびステップS3
の行列演算を、高速に実行することができる。そして、
第1の演算回路においては、式26のステップS3およ
び式38のステップS1の演算を行えばよいので、その
負荷が軽減できる。
【0065】
【実施例】本発明の一実施例のDSPについて、図1〜
図7を参照して説明する。図1は、本実施例のDSPの
構成を示すブロック図である。DSP10は、メインプ
ロセッサ部11、コプロセッサ部20、IO部15、メ
モリ14、および、制御部16より構成されている。メ
インプロセッサ部11は演算器12およびレジスタファ
イル13より構成されている。メインプロセッサ部1
1、メモリ14、および、コプロセッサ部20は、デー
タバス17を介して相互にデータの転送が可能な構成で
ある。また、メインプロセッサ部11の演算器12はデ
ータバス18を介してレジスタファイル13よりデータ
の読み出しおよび書き込みが可能な構成である。
【0066】まず、各部の構成について説明する。IO
部15は、データの入出力を行うIOポートである。メ
モリ14は、データを記憶するメモリである。メモリ1
4は、データバス17を介してメインプロセッサ部11
およびコプロセッサ部20よりデータを転送される。ま
た、IO部15より入出力されるデータは、一旦、メモ
リ14に記憶され、IO部15より出力されるデータ
も、メモリ14に記憶されているデータより出力され
る。画像データ、および、圧縮画像データはこのメモリ
14に記憶される。
【0067】メインプロセッサ部11の演算器12は、
四則演算、論理演算、シフト演算を行う演算回路であ
る。演算器12は、データバス18を介してレジスタフ
ァイル13よりデータを読み込み、所定の演算を実行し
て、演算結果のデータを再びレジスタファイル13に書
き込む。レジスタファイル13は、演算器12で演算を
行うためのデータ、および、演算結果のデータを格納す
る複数のレジスタより構成されるレジスタファイルであ
る。制御部16は、前記各構成部、および、データバス
17、データバス18を制御する制御部である。
【0068】コプロセッサ部20の構成について図2を
参照して説明する。図2は、コプロセッサ部20の構成
を示すブロック図である。コプロセッサ部20は、13
個のレジスタR0〜R12、12個のデータセレクタS
1〜S12、2つの加減算器AS1,AS2、加算器A
DD、減算器SU、乗算器MPY、および、内部データ
バスBUSより構成される。
【0069】13個のレジスタR0〜R12は直列に接
続されており、パイプラインレジスタを構成している。
初段のレジスタR0は入力端子INに接続されており、
最終段のレジスタR12は出力端子OUTに接続されて
いる。各レジスタR0〜R12の間には、12個のデー
タセレクタS1〜S12が設けられている。このデータ
セレクタSi(i=1〜12)は、レジスタRi-1 (i
=0〜11)からのデータか、内部データバスからのデ
ータか、いずれかを選択するためのセレクタであり、選
択されたデータは、次段のレジスタRi(i=1〜1
2)へ入力される。
【0070】加減算器AS1,AS2は、各々内部デー
タバスBUSと接続されており、内部データバスBUS
を介して供給されたレジスタR0〜R12の任意の2つ
のレジスタのデータについて、加算または減算を行い、
その結果を内部データバスBUSを介して任意のレジス
タに格納する。加減算器AS1,AS2においては、前
記演算を1クロックサイクルで行う。加算器ADDも、
内部データバスBUSと接続されており、レジスタR0
〜R12の任意の2つのレジスタのデータを加算し、そ
の結果を任意のレジスタに格納する。この加算も1クロ
ックサイクルで行われる。減算器SUBも、内部データ
バスBUSと接続されており、レジスタR0〜R12の
任意のレジスタのデータを減算値および被減算値とし
て、減算を行い、その結果を任意のレジスタに格納す
る。この減算も1クロックサイクルで行われる。
【0071】乗算器MPYは、内部データバスBUSと
接続されており、レジスタR0〜R12の任意のレジス
タのデータと、制御部16より供給される乗数との乗算
を計算する。この乗算は2クロックサイクルで行われる
が、乗算器MPY内部が2段にパイプライン化されてい
るため、データの入力、乗算結果の出力はともに1クロ
ックサイクル周期で可能である。ただし、入力したデー
タに対する乗算結果は1クロックサイクル遅れて出力さ
れる。出力されたデータは、内部データバスBUSを介
して任意のレジスタに格納される。
【0072】内部データバスBUSは、レジスタR0〜
R12のデータを各演算器に供給するため、制御部16
から乗算器MPYに乗数を供給するため、および、各演
算器での演算結果をレジスタR0〜R12に転送するた
めのデータバスである。これらの転送は、全て1クロッ
クサイクルの間に行われる。そのために、このデータバ
スBUSは、1クロックサイクルをさらに時分割した転
送クロックにしたがって、この転送を行う。また、これ
らの転送のための各レジスタR0〜R12、および、各
演算器の制御は制御部16からの制御信号により適宜行
われる。
【0073】次に、このような構成のDSP10によ
り、前述した2次元8×8DCTの計算を行う方法につ
いて説明する。まず、コプロセッサ部20において、図
8にシグナルフローを示した式27の計算を行うことに
ついて図3および図4を参照して説明する。図3は、コ
プロセッサ部20のレジスタR0〜R12のデータの流
れを示す図である。図4は、コプロセッサ部20の各演
算器で行われる演算を示す図である。
【0074】まず、1〜8サイクル目に、入力端子IN
より入力データを、データxx6,xx7,xx5,x
x4,xx3,xx2,xx1,xx0の順に入力す
る。各データは、レジスタR0から順次後段のレジスタ
に格納される。6サイクル目より入力された各データを
用いて順次演算が行われる。まず、6サイクル目に、レ
ジスタR0に格納されているデータxx3と、レジスタ
R1に格納されているデータxx4を演算器ADDおよ
び演算器SUBに供給し、各々データxx3、xx4の
加算および減算を行い、その加算結果のデータxa3を
レジスタR2に、減算結果のデータxa4をレジスタR
1に格納する。
【0075】7サイクル目には、加算器ADDにおい
て、レジスタR0に格納されているデータxx2とレジ
スタR3に格納されているデータxx5との加算が行わ
れ、加算結果のデータxa2がレジスタR4に格納され
る。また、減算器SUBにおいては、レジスタR0に格
納されているデータxx2よりレジスタR3に格納され
ているデータxx5が減じられ、減算結果のデータxa
5がレジスタR1に格納される。
【0076】8サイクル目には、加算器ADDにおい
て、レジスタR0に格納されているデータxx1とレジ
スタR6に格納されているデータxx6との加算が行わ
れ、加算結果のデータxa1がレジスタR7に格納され
る。また、減算器SUBにおいては、レジスタR0に格
納されているデータxx1よりレジスタR6に格納され
ているデータxx6が減じられ、減算結果のデータxa
6がレジスタR1に格納される。
【0077】9サイクル目には、乗算器MPYにおい
て、制御部16より供給された乗数2a4(=2×co
s(4×π/16))と、レジスタR1に格納されてい
るデータxa6との乗算が行われる。この乗算には2サ
イクルが必要なため、この乗算結果のデータxb5は1
0サイクル目にレジスタR3に格納される。加減算器1
AS2においては、レジスタR2に格納されているデー
タxa5と、レジスタR1に格納されているデータxa
6との加算が行われ、加算結果のデータxb6がレジス
タR3に格納される。加算器ADDにおいては、レジス
タR0に格納されているデータxx0とレジスタR6に
格納されているデータxx7との加算を行い、加算結果
のデータxa0をレジスタR7に格納する。減算器SU
Bにおいては、レジスタR0に格納されているデータx
x0よりレジスタR6に格納されているデータxx7が
減じられ、減算結果のデータxa7をレジスタR1に格
納する。
【0078】10サイクル目には、乗算器MPYにおい
て、制御部16より供給された乗数2a4(=2×co
s(4×π/16))と、レジスタR1に格納されてい
るデータxa7との乗算が行われる。この乗算には2サ
イクルが必要なため、この乗算結果のデータxb4は1
1サイクル目にレジスタR3に格納される。加減算器A
S2においては、レジスタR4に格納されているデータ
xa4と、レジスタR1に格納されているデータxa5
との加算が行われ、加算結果のデータxb7がレジスタ
R5に格納される。加算器ADDにおいては、レジスタ
R8に格納されているデータxa1とレジスタR6に格
納されているデータxa2との加算を行い、加算結果の
データxc1をレジスタR9に格納する。減算器SUB
においては、レジスタR8に格納されているデータxa
1よりレジスタR6に格納されているデータxa2が減
じられ、減算結果のデータxc3をレジスタR7に格納
する。
【0079】11サイクル目には、加算器ADDにおい
て、レジスタR8に格納されているデータxa0とレジ
スタR6に格納されているデータxa3との加算が行わ
れ、加算結果のデータxc0がレジスタR9に格納され
る。また、減算器SUBにおいては、レジスタR8に格
納されているデータxa0よりレジスタR6に格納され
ているデータxa3が減じられ、減算結果のデータxc
2がレジスタR7に格納される。
【0080】12サイクル目には、加減算器AS1にお
いて、レジスタR10に格納されているデータxc1と
レジスタR9に格納されているデータxc0との加算が
行われ、加算結果のデータyy0がレジスタR12に格
納される。乗算器MPYにおいては、制御部16より供
給された乗数2a4(=2×cos(4×π/16))
と、レジスタR7に格納されているデータxc2との乗
算が行われる。この乗算には2サイクルが必要なため、
この乗算結果のデータxd2は13サイクル目にレジス
タR9に格納される。加減算器AS2においては、レジ
スタR8に格納されているデータxc3と、レジスタR
7に格納されているデータxc2との加算が行われ、加
算結果のデータxd3がレジスタR9に格納される。加
算器ADDにおいては、レジスタR4に格納されている
データxb5とレジスタR6に格納されているデータx
b7との加算を行い、加算結果のデータxc5をレジス
タR7に格納する。減算器SUBにおいては、レジスタ
R4に格納されているデータxb5よりレジスタR6に
格納されているデータxb7が減じられ、減算結果のデ
ータxc7をレジスタR5に格納する。
【0081】13サイクル目には、加減算器AS1にお
いて、レジスタR10に格納されているデータxc0よ
りレジスタR11に格納されているデータxc1が減じ
られ、減算結果のデータyy4がレジスタR12に格納
される。加算器ADDにおいては、レジスタR4に格納
されているデータxb4とレジスタR6に格納されてい
るデータxb6との加算を行い、加算結果のデータxc
4をレジスタR7に格納する。減算器SUBにおいて
は、レジスタR4に格納されているデータxb4よりレ
ジスタR6に格納されているデータxb6が減じられ、
減算結果のデータxc6をレジスタR5に格納する。
【0082】14サイクル目には、加減算器AS1にお
いて、レジスタR10に格納されているデータxd3と
レジスタR9に格納されているデータxd2との加算が
行われ、加算結果のデータyy2がレジスタR12に格
納される。乗算器MPYにおいては、制御部16より供
給された乗数2a4(=2×cos(4×π/16))
と、レジスタR7に格納されているデータxc4との乗
算が行われる。この乗算には2サイクルが必要なため、
この乗算結果のデータxd4は15サイクル目にレジス
タR9に格納される。加減算器AS2においては、レジ
スタR8に格納されているデータxc5と、レジスタR
7に格納されているデータxc4との加算が行われ、加
算結果のデータxd5がレジスタR9に格納される。
【0083】15サイクル目には、加減算器AS1にお
いて、レジスタR10に格納されているデータxd2よ
りレジスタR11に格納されているデータxd3が減じ
られ、減算結果のデータyy6がレジスタR12に格納
される。
【0084】16サイクル目には、加減算器AS1にお
いて、レジスタR10に格納されているデータxd5と
レジスタR9に格納されているデータxd4との加算が
行われ、加算結果のデータyy1がレジスタR12に格
納される。乗算器MPYにおいては、制御部16より供
給された乗数2a4(=2×cos(4×π/16))
と、レジスタR7に格納されているデータxc6との乗
算が行われる。この乗算には2サイクルが必要なため、
この乗算結果のデータxd6は17サイクル目にレジス
タR9に格納される。加減算器AS2においては、レジ
スタR8に格納されているデータxc7と、レジスタR
7に格納されているデータxc6との加算が行われ、加
算結果のデータxd7がレジスタR9に格納される。
【0085】17サイクル目には、加減算器AS1にお
いて、レジスタR10に格納されているデータxd4よ
りレジスタR11に格納されているデータxd5が減じ
られ、減算結果のデータyy7がレジスタR12に格納
される。18サイクル目には、加減算器AS1におい
て、レジスタR10に格納されているデータxd7とレ
ジスタR9に格納されているデータxd6との加算が行
われ、加算結果のデータyy3がレジスタR12に格納
される。19サイクル目には、加減算器AS1におい
て、レジスタR10に格納されているデータxd6より
レジスタR11に格納されているデータxd7が減じら
れ、減算結果のデータyy5がレジスタR12に格納さ
れる。
【0086】コプロセッサ部20においては、このよう
にして図8に示した式27の計算を実行する。計算結果
は、13〜20サイクルの間に、データyy0,yy
4,yy2,yy6,yy1,yy7,yy3,yy5
の順に出力端子OUTより出力される。
【0087】次に、2次元8×8DCTの計算を行う方
法について説明する。まず、IO部15より入力された
入力データである行列〔X〕は、順次メモリ14に記憶
される。行列〔X〕は、64個の要素xij(i,j=
0〜7)より構成される8×8の行列である。入力され
た行列データ〔X〕に対して、まず、式26のステップ
S1の演算が、コプロセッサ部20において行われる。
【0088】まず、メモリ14に記憶されている行列
〔X〕の第0行目のデータが、データバス17を介し
て、データx06,x07,x05,x04,x03,
x02,x01,x00の順にコプロセッサ部20に入
力される。入力されたデータは、コプロセッサ部20に
おいて、前述した処理が行われ、式27が計算される。
この計算結果のデータは、式26の行列〔Y〕の第0行
目のデータに相当し、前述したように、データy00,
y04,y02,y06,y01,y07,y03,y
05の順に出力される。なお、データyijは行列
〔Y〕の要素であり、i,j=0〜7である。出力され
たデータはデータバス17を介してメモリ14に記憶さ
れる。
【0089】以下同様にして、行列〔X〕の第1〜7行
目のデータが、順次コプロセッサ部20に入力され、式
27の計算が行われ、計算結果が再びメモリ14に記憶
される。その結果、式26の行列〔Y〕が得られる。
【0090】次に、式26のステップS2の演算を、同
じくコプロセッサ部20において同様に行う。式26の
ステップS2の演算は、式28のように変換できるの
で、実際にはこの式28の演算を行う。まず、メモリ1
4に記憶されている行列〔Y〕の第0列目のデータが、
データバス17を介して、データy60,y70,y5
0,y40,y30,y20,y10,y00の順にコ
プロセッサ部20に入力される。入力されたデータは、
コプロセッサ部20において、前述した処理が行われ、
式27が計算される。この計算結果のデータは、式28
の行列〔Z〕の第0列目のデータに相当し、前述したよ
うに、データz00,z40,z20,z60,z1
0,z70,z30,z50の順に出力される。なお、
データzijは行列〔Z〕の要素であり、i,j=0〜
7である。出力されたデータはデータバス17を介して
メモリ14に記憶される。
【0091】以下同様にして、行列〔Y〕の第1〜7列
目のデータが、順次コプロセッサ部20に入力され、式
27の計算が行われ、計算結果が再びメモリ14に記憶
される。その結果、式26および式28の行列〔Z〕が
得られる。
【0092】最後に、式26のステップS3の演算を、
メインプロセッサ部11において行う。まず、メモリ1
4に記憶されている行列〔Z〕のデータz00を読み出
し、データバス17、データバス18を介してメインプ
ロセッサ部11のレジスタファイル13に格納する。ま
た、メモリ14に予め記憶されている式29の定数行列
〔B〕の、データz00に対応するデータb00も同様
にレジスタファイル13に転送する。そして、演算器1
2において、データz00とデータb00の乗算が行わ
れ、演算結果のデータc00がレジスタファイル13に
格納される。その結果のデータc00は、再びデータバ
ス17、データバス18を介してメモリ14に記憶され
る。以下同様にして、行列〔Z〕の各要素に対して、行
列〔B〕の対応する要素との乗算が計算される。これに
より、式26のステップS3の計算結果の行列〔C〕が
得られる。
【0093】このように、DSP10においては、式2
6のステップS1およびステップS2の演算はコプロセ
ッサ部20で、ステップS3の演算はメインプロセッサ
部11で実行して、2次元8×8DCTの演算が行うこ
とができる。したがって、メインプロセッサ部11に負
荷が集中しない。また、メインプロセッサ部11とコプ
ロセッサ部20の処理は並列に行うことができる。その
ため、高速に、効率よく2次元8×8DCTの演算が行
える。
【0094】次に、このような構成のDSP10によ
り、前述した2次元8×8IDCTの計算を行う方法に
ついてを参照して説明する。まず、コプロセッサ部20
において、図9にシグナルフローを示した式41の計算
を行うことについて図5および図6を参照して説明す
る。図5は、コプロセッサ部20のレジスタR0〜R1
2のデータの流れを示す図である。図6は、コプロセッ
サ部20の各演算器で行われる演算を示す図である。
【0095】まず、入力端子INより1〜8サイクル目
に入力データpp3,pp5,pp1,pp7,pp
2,pp6,pp0,pp4を順次入力する。各データ
はレジスタR0から順次後段のレジスタに格納される。
3サイクル目より入力された各データを用いて順次演算
が行われる。まず、3サイクル目に、加減算器AS1に
おいて、レジスタR0に格納されているデータpp5と
レジスタR1に格納されているデータpp3との加算が
行われ、加算結果のデータpa6がレジスタR3に格納
される。
【0096】4サイクル目には、加減算器AS1におい
て、レジスタR2に格納されているデータpp3よりレ
ジスタR1に格納されているデータpp5が減じられ、
減算結果のデータpa7がレジスタR3に格納される。
乗算器MPYにおいては、制御部16より供給された乗
数aa6{=1/(2×cos(6×π/16))}
と、レジスタR3に格納されているデータpa6との乗
算が行われる。この乗算には2サイクルが必要なため、
この乗算結果のデータpb6は5サイクル目にレジスタ
R5に格納される。
【0097】5サイクル目に、加減算器AS1におい
て、レジスタR0に格納されているデータpp7と、レ
ジスタR1に格納されているデータpp1との加算が行
われ、加算結果のデータpa4がレジスタR3に格納さ
れる。
【0098】6サイクル目には、加減算器AS1におい
て、レジスタR2に格納されているデータpp1よりレ
ジスタR1に格納されているデータpp7が減じられ、
減算結果のデータpa5がレジスタR3に格納される。
乗算器MPYにおいては、制御部16より供給された乗
数aa2{=1/(2×cos(2×π/16))}
と、レジスタR3に格納されているデータpa4との乗
算が行われる。この乗算には2サイクルが必要なため、
この乗算結果のデータpb4は7サイクル目にレジスタ
R5に格納される。加減算器AS2においては、レジス
タR4に格納されているデータpa7よりレジスタR5
に格納されているデータpb6が減じられ、減算結果の
データpb7がレジスタR5に格納される。
【0099】7サイクル目に、加減算器AS1におい
て、レジスタR0に格納されているデータpp6とレジ
スタR1に格納されているデータpp2との加算が行わ
れ、加算結果のデータpa2がレジスタR3に格納され
る。
【0100】8サイクル目には、加減算器AS1におい
て、レジスタR2に格納されているデータpp2よりレ
ジスタR1に格納されているデータpp6が減じられ、
減算結果のデータpa3がレジスタR3に格納される。
乗算器MPYにおいては、制御部16より供給された乗
数aa4{=1/(2×cos(4×π/16))}
と、レジスタR3に格納されているデータpa2との乗
算が行われる。この乗算には2サイクルが必要なため、
この乗算結果のデータpb2は9サイクル目にレジスタ
R5に格納される。加減算器AS2においては、レジス
タR4に格納されているデータpa5よりレジスタR5
に格納されているデータpb4が減じられ、減算結果の
データpb5がレジスタR5に格納される。加算器AD
Dにおいては、レジスタR5に格納されているデータp
b4とレジスタR7に格納されているデータpb5との
加算が行われ、加算結果のデータpc4がレジスタR8
に格納される。減算器SUBにおいては、レジスタR5
に格納されているデータpb4よりレジスタR7に格納
されているデータpb6が減じられ、減算結果のデータ
pc6がレジスタR6に格納される。
【0101】9サイクル目には、加減算器AS1におい
て、レジスタR0に格納されているデータpp4とレジ
スタR1に格納されているデータpp0との加算が実行
され、加算結果のデータpa0がレジスタR3に格納さ
れる。乗算器MPYにおいては、制御部16より供給さ
れた乗数aa4{=1/(2×cos(4×π/1
6))}と、レジスタR8に格納されているデータpc
4との乗算が行われる。この乗算には2サイクルが必要
なため、この乗算結果のデータpd4は10サイクル目
にレジスタR10に格納される。加算器ADDにおいて
は、レジスタR5に格納されているデータpb5とレジ
スタR7に格納されているデータpb7との加算が行わ
れ、加算結果のデータpc5がレジスタR8に格納され
る。減算器SUBにおいては、レジスタR5に格納され
ているデータpb5よりレジスタR7に格納されている
データpb7が減じられ、減算結果のデータpc7がレ
ジスタR6に格納される。
【0102】10サイクル目には、加減算器AS1にお
いて、レジスタR2に格納されているデータpp0より
レジスタR1に格納されているデータpp4が減じら
れ、減算結果のデータpa1がレジスタR3に格納され
る。乗算器MPYにおいては、制御部16より供給され
た乗数aa4{=1/(2×cos(4×π/1
6))}と、レジスタR8に格納されているデータpc
5との乗算が行われる。この乗算には2サイクルが必要
なため、この乗算結果のデータpd5は11サイクル目
にレジスタR10に格納される。加減算器AS2におい
ては、レジスタR4に格納されているデータpa3より
レジスタR5に格納されているデータpb2が減じら
れ、減算結果のデータpb3がレジスタR5に格納され
る。加算器ADDにおいては、レジスタR3に格納され
ているデータpa0とレジスタR5に格納されているデ
ータpb2との加算が行われ、加算結果のデータpc0
がレジスタR4に格納される。減算器SUBにおいて
は、レジスタR3に格納されているデータpa0よりレ
ジスタR5に格納されているデータpb2が減じられ、
減算結果のデータpc2がレジスタR6に格納される。
【0103】11サイクル目には、加減算器AS2にお
いて、レジスタR7に格納されているデータpc7より
レジスタR10に格納されているデータpd4が減じら
れ、減算結果のデータpd7がレジスタR8に格納され
る。加算器ADDにおいては、レジスタR3に格納され
ているデータpa1とレジスタR5に格納されているデ
ータpb3との加算が行われ、加算結果のデータpc1
がレジスタR4に格納される。減算器SUBにおいて
は、レジスタR3に格納されているデータpa1よりレ
ジスタR5に格納されているデータpb3が減じられ、
減算結果のデータpc3がレジスタR6に格納される。
【0104】12サイクル目には、加減算器AS2にお
いて、レジスタR9に格納されているデータpc6より
レジスタR10に格納されているデータpd5が減じら
れ、減算結果のデータpd6がレジスタR10に格納さ
れる。加算器ADDにおいては、レジスタR5に格納さ
れているデータpc0とレジスタR11に格納されてい
るデータpd4との加算が行われ、加算結果のデータq
q0がレジスタR12に格納される。減算器SUBにお
いては、レジスタR5に格納されているデータpc0よ
りレジスタR11に格納されているデータpd4が減じ
られ、減算結果のデータqq7がレジスタR6に格納さ
れる。
【0105】13サイクル目には、加算器ADDにおい
て、レジスタR5に格納されているデータpc1とレジ
スタR11に格納されているデータpd5との加算が行
われ、加算結果のデータqq1がレジスタR12に格納
される。減算器SUBにおいては、レジスタR5に格納
されているデータpc1よりレジスタR11に格納され
ているデータpd5が減じられ、減算結果のデータqq
6がレジスタR6に格納される。
【0106】14サイクル目には、加算器ADDにおい
て、レジスタR8に格納されているデータpc3とレジ
スタR11に格納されているデータpd6との加算が行
われ、加算結果のデータqq2がレジスタR12に格納
される。減算器SUBにおいては、レジスタR8に格納
されているデータpc3よりレジスタR11に格納され
ているデータpd6が減じられ、減算結果のデータqq
5がレジスタR9に格納される。
【0107】15サイクル目には、加算器ADDにおい
て、レジスタR10に格納されているデータpc2とレ
ジスタR11に格納されているデータpd7との加算が
行われ、加算結果のデータqq3がレジスタR12に格
納される。減算器SUBにおいては、レジスタR10に
格納されているデータpc2よりレジスタR11に格納
されているデータpd7が減じられ、減算結果のデータ
qq4がレジスタR11に格納される。
【0108】コプロセッサ部20においては、このよう
にして図9に示した式41の計算を実行する。計算結果
は、13〜20サイクルの間に、データqq0,qq
1,qq2,qq3,qq4,qq5,qq7,qq6
の順に出力される。
【0109】次に、2次元8×8IDCTの計算を行う
方法について説明する。まず、IO部15より入力され
た入力データである行列〔C〕は、順次メモリ14に記
憶される。行列〔C〕は、64個の要素cij(i,j
=0〜7)より構成される8×8の行列である。入力さ
れた行列データ〔C〕に対して、まず、式38のステッ
プS1の演算が、メインプロセッサ部11において行わ
れる。
【0110】まず、メモリ14に記憶されている行列
〔C〕のデータc00を読み出し、データバス17、デ
ータバス18を介してメインプロセッサ部11のレジス
タファイル13に格納する。また、メモリ14に予め記
憶されている式39に示す定数行列〔H〕の、データc
00に対応するデータh00も同様にレジスタファイル
13に転送する。そして、演算器12において、データ
z00とデータh00の乗算が行われ、演算結果のデー
タp00がレジスタファイル13に格納される。その結
果のデータp00は、再びデータバス17、データバス
18を介してメモリ14に記憶される。以下同様にし
て、行列〔C〕の各要素に対して、行列〔H〕の対応す
る要素との乗算が計算される。これにより、式38のス
テップS1の計算結果の行列〔P〕が得られる。
【0111】次に、行列〔P〕に対して、式38のステ
ップS2の演算が、コプロセッサ部20において行われ
る。メモリ14に記憶されている行列〔P〕の第0行目
のデータが、データバス17を介して、データp03,
p05,p01,p07,p02,p06,p00,p
04の順にコプロセッサ部20に入力される。入力され
たデータは、コプロセッサ部20において、前述した処
理が行われ、式41が計算される。この計算結果のデー
タは、式38の行列〔Q〕の第0行目のデータに相当
し、前述したように、データq00,q01,q02,
q03,q04,q05,q07,q06の順に出力さ
れる。なお、データqijは行列〔Q〕の要素であり、
i,j=0〜7である。出力されたデータはデータバス
17を介してメモリ14に記憶される。
【0112】以下同様にして、行列〔P〕の第1〜7行
目のデータが、順次コプロセッサ部20に入力され、式
41の計算が行われ、計算結果が再びメモリ14に記憶
される。その結果、式38の行列〔Q〕が得られる。
【0113】最後に、式38のステップS3の演算を、
同じくコプロセッサ部20において同様に行う。式38
のステップS3の演算は、式42のように変換できるの
で、実際にはこの式42の演算を行う。したがって、ま
ず、メモリ14に記憶されている行列〔Q〕の第0列目
のデータが、データバス17を介して、データq30,
q50,q10,q70,q20,q60,q00,q
40の順にコプロセッサ部20に入力される。入力され
たデータは、コプロセッサ部20において、前述した処
理が行われ、式41が計算される。この計算結果のデー
タは、式42の行列〔X〕の第0列目のデータに相当
し、前述したように、データx00,x10,x20,
x30,x40,x50,x70,x60の順に出力さ
れる。なお、データxijは行列〔X〕の要素であり、
i,j=0〜7である。出力されたデータはデータバス
17を介してメモリ14に記憶される。
【0114】以下同様にして、行列〔Q〕の第1〜7列
目のデータが、順次コプロセッサ部20に入力され、式
41の計算が行われ、計算結果が再びメモリ14に記憶
される。その結果、式38および式42の行列〔X〕が
得られる。
【0115】このように、DSP10においては、式3
8のステップS1の演算はメインプロセッサ部11で、
ステップS2およびステップS3の演算はコプロセッサ
部20で実行して、2次元8×8IDCTの演算が行う
ことができる。したがって、メインプロセッサ部11に
負荷が集中しない。また、メインプロセッサ部11とコ
プロセッサ部20の処理は並列に行うことができる。そ
のため、高速に、効率よく2次元8×8IDCTの演算
が行える。
【0116】なお、本発明は本実施例に限られるもので
はなく、本実施例以外の種々の形態で実現されてよい。
たとえば、コプロセッサ部20の構成は、図2に示した
本実施例の構成に限られず種々の構成のコプロセッサを
用いてよい。
【0117】本実施例においては、コプロセッサ部20
は、1個の乗算器、2個の加減算器、1個の加算器、1
個の減算器を有する構成とした。しかし、これに2次元
8×8DCTおよび2次元8×8IDCTの演算を行う
場合の最適な一構成例であり、これ以外の構成の演算器
でもよい。たとえば、2次元8×8DCTの演算のみを
行う場合には、1個の乗算器、1個の加減算器、2個の
加算器、1個の減算器を有する構成でよい。また、2次
元8×8IDCTの演算のみを行う場合には、1個の乗
算器、1個の加減算器、1個の加算器、2個の減算器を
有する構成でよい。
【0118】本発明のDSP装置は、レジスタを直列に
接続してパイプラインレジスタを形成し、そのパイプラ
インレジスタをデータがワードシリアルに通過していく
間に必要なデータを、適切な時刻に演算器に供給し、演
算結果を再びパイプラインレジスタに戻すことが可能な
構成のコプロセッサを有することを特徴とする。そのよ
うなコプロセッサの一般的な構成は図7のように示され
る。図7に示すコプロセッサ部30は、直列に接続され
た複数のレジスタよりなるパイプラインレジスタPL
と、そのパイプラインレジスタPLの任意のレジスタの
データに対して演算を行い、任意のレジスタにデータを
出力可能な演算器EXU1〜EXU4と、前記パイプラ
インレジスタPLと演算器EXU1〜EXU4とのデー
タの転送を行う内部データバスBUSより構成される。
このような構成のコプロセッサを有するDSP装置であ
れば、適宜制御を行うことにより、メインプロセッサ部
のみのDSPと比較して、高速に効率よく、2次元8×
8DCT、または、2次元8×8IDCTが実行可能で
ある。
【0119】また、コプロセッサ部20の内部データバ
スBUSは、レジスタR0〜R12および各演算器の間
でデータを転送をするためのデータバスであり、この内
部データバスBUSでは、1クロックサイクルをさらに
時分割した転送クロックに従って転送を行い、全ての転
送を1クロックサイクル内で行っていた。しかし、内部
データバスBUSの機能は、各演算器と各レジスタのデ
ータの転送であり、これ以外の他の転送手段を用いても
よい。特に、本DSPの動作速度が高速になった場合、
さらに高周波数で動作するこのデータ転送が、全体とし
ての高速化の妨げとなる場合などには、次のような転送
手段を用いるのが好ましい。
【0120】たとえば、内部データバスBUSのバス幅
を拡張して、複数のデータの転送が平行に行えるような
構成にしてよい。平行なバスの数に応じて、前記転送ク
ロックのサイクルを長くすることができる。また、図2
に示したコプロセッサ部20においては、5系統のデー
タバスを用いるようにすれば、各演算器ごとに1つのデ
ータバスを専有することができる。さらに、各演算器の
各入力、また各レジスタへの入力を、各々並列に任意に
選択できるような構成にしてもよい。この場合、バス形
式のデータ転送手段とは言えず、複数のスイッチ、セレ
クタなどの選択手段により構成されたデータ転送手段で
ある。
【0121】さらに、本DSPが、DCTおよびIDC
T専用のDSPとして用いる場合のように、特定の用
途、特定の演算のために用いられる場合であれば、全て
のレジスタと演算器の間でデータの転送が可能なような
転送手段を設ける必要はない。その特定の演算に基づい
た所定の組み合わせで、各々データの転送が可能なよう
な転送手段でよい。すなわち、ある演算器へのデータの
入力としては、特定のレジスタのデータが入力可能、あ
るいは、特定の複数レジスタからのデータが選択可能な
ように、データバス、セレクタへ配線されているような
構成でよい。
【0122】また、本DSP装置は、物理的に1つのL
SIチップ上に構成されるか、あるいは、複数のLSI
チップ上に構成されるかを限定されるものではない。1
つのLSIチップ上に構成し、DCT/IDCT機能を
搭載したDSPチップ、あるいは、DCT/IDCT専
用DSPとして実施してもよい。また、そのコプロセッ
サ部と高速にデータの転送が可能なデータ転送手段を別
のLSIチップ上に設け、メインプロセッサ部を有する
汎用DSPチップと共に2個のLSIチップにより構成
してもよい。
【0123】
【発明の効果】本発明のDSP装置によれば、入力デー
タ系列を順次パイプライン方式の記憶素子に入力し、そ
の記憶素子を通過中のデータに対して各々並列に動作す
る複数の演算器により演算を行うことができるコプロセ
ッサ部を設けたので、行列演算を、高速に実行すること
ができた。また、そのため、メインプロセッサ部の負荷
が軽減でき、演算時間が短縮できた。したがって、2次
元8×8DCTおよび2次元8×8IDCTの演算を効
率よく高速に実現できるDSPを提供できた。
【図面の簡単な説明】
【図1】本実施例のDSPの構成を示すブロック図であ
る。
【図2】図1に示したDSPのコプロセッサ部の構成を
示すブロック図である。
【図3】2次元8×8DCTの演算を行う時の図1に示
したDSPのコプロセッサ部の各レジスタのデータの流
れを示す図である。
【図4】2次元8×8DCTの演算を行う時の図1に示
したDSPのコプロセッサ部の各演算器で行われる演算
を示す図である。
【図5】2次元8×8IDCTの演算を行う時の図1に
示したDSPのコプロセッサ部の各レジスタのデータの
流れを示す図である。
【図6】2次元8×8IDCTの演算を行う時の図1に
示したDSPのコプロセッサ部の各演算器で行われる演
算を示す図である。
【図7】本発明のDSP装置に用いるコプロセッサ部の
一般的構成を示す図である。
【図8】式27のシグナルフローである。
【図9】式41のシグナルフローである。
【図10】通常のDSPの構成を示すブロック図であ
る。
【符号の説明】
10…DSP 11…メインプロセッサ部 12…演算器 13…レジスタファイル 14…メモリ 15…IO部 16…制御部 17、18…データバス 20…コプロセッサ部 R0〜R12…レジスタ S1〜S12…デ
ータセレクタ AS1,AS2…加減算器 ADD…加算器 SUB…減算器 MPY…乗算器 BUS…内部データバス IN…入力端子 OUT…出力端子 30…コプロセッサ部 PL…パイプラインレジスタ BUS…内部デー
タバス EXU1〜EXU4…演算器 90…DSP 91…メインプロセッサ部 92…演算器 93…レジスタファイル 94…メモリ 95…IO部 96…制御部 97、98…データバス
フロントページの続き (51)Int.Cl.6 識別記号 庁内整理番号 FI 技術表示箇所 G06T 1/20 1/00 H03H 17/00 Z 8842−5J 17/02 B 8842−5J H04N 1/41 B 7/30 G06F 15/66 L M H04N 7/133 Z

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】データの入出力を行う入出力回路と、デー
    タを記憶するメモリ回路と、該メモリ回路に記憶されて
    いるデータに対して所定の演算を行う第一の演算回路と
    を有するデジタルシグナルプロセッサ装置であって、 直列的に接続され、順次データを転送可能な複数の記憶
    素子と、 前記記憶素子より供給されるデータを用いて所定の演算
    を行い、該演算の結果を所定の前記記憶素子に出力する
    各々並列に動作可能な複数の演算器とを有し、順次入力
    される一連のデータを順次後段の前記記憶素子に転送
    し、該転送過程において前記演算器により所定の演算を
    行い出力データ系列を得る第2の演算回路をさらに有す
    るデジタルシグナルプロセッサ装置。
  2. 【請求項2】入力行列に対して、少なくとも1の対角成
    分が無理数であり他の成分が「0」である第1の行列
    と、各成分が無理数、「+1」、「−1」のいずれかで
    ある第2の行列とに行列分解できる第1の係数行列を左
    側から、前記第2の行列の転置行列である第3の行列
    と、前記第1の行列の転置行列である第4の行列とに行
    列分解できる第2の係数行列を右側からそれぞれ乗算
    し、その乗算結果である出力行列を得るデジタルシグナ
    ルプロセッサ装置であって、 前記第2の演算回路は、前記第2の行列と、前記入力行
    列と、前記第3の行列との順次左側からの乗算に相当す
    る所定の演算を行い、 前記第1の演算回路は、前記第1の行列と、前記第2の
    演算回路回路の演算結果と、前記第4の行列との順次左
    側からの乗算に相当する所定の演算を行い出力行列を得
    る請求項1記載のデジタルシグナルプロセッサ装置。
  3. 【請求項3】前記第2の演算回路は、直列に接続されパ
    イプライン方式でデータの転送が可能な少なくとも13
    個のレジスタと、該レジスタの任意のデータに対して演
    算可能な少なくとも1個の乗算器と1個の加減算器と1
    個の加算器と2個の減算器より構成され、 該第2の演算回路は、行列〔M〕の転置行列〔Mt 〕が
    式1で定義されるとき、 【数1】 式2の行列演算を繰り返し行うことにより、 【数2】 入力された8×8の実空間の画像行列データ〔X〕に対
    して、式3の行列演算を実行し、 【数3】 式3の演算の結果得られた行列〔Y〕の転置行列
    〔Yt 〕に対する式4の行列演算を、式2の行列演算を
    繰り返すことにより行い、 【数4】 前記第1の演算回路は、行列〔W〕が式5で定義される
    とき、 【数5】 前記第2の演算回路により式4の行列演算の結果得られ
    た行列〔Zt 〕を転置行列とする行列〔Z〕に対して式
    6の演算を行い、 【数6】 8×8の周波数空間の画像行列データ〔C〕を求める式
    7の2次元8×8離散コサイン変換を行う 【数7】 請求項1または2記載のデジタルシグナルプロセッサ装
    置。
  4. 【請求項4】入力行列に対して、少なくとも1の対角成
    分が無理数であり他の成分が「0」である第1の行列
    と、各成分が無理数、「+1」、「−1」のいずれかで
    ある第2の行列とに行列分解できる第1の係数行列を右
    側から、前記第2の行列の転置行列である第3の行列
    と、前記第1の行列の転置行列である第4の行列とに行
    列分解できる第2の係数行列を左側からそれぞれ乗算
    し、その乗算結果である出力行列を得るデジタルシグナ
    ルプロセッサ装置であって、 前記第2の演算回路は、前記第4の行列と、前記入力行
    列と、前記第1の行列との順次左側からの乗算に相当す
    る所定の演算を行い、 前記第1の演算回路は、前記第3の行列と、前記第2の
    演算回路の演算結果と、前記第2の行列との順次左側か
    らの乗算に相当する所定の演算を行い出力行列を得る請
    求項1〜3いずれか記載のデジタルシグナルプロセッサ
    装置。
  5. 【請求項5】前記第2の演算回路は、直列に接続されパ
    イプライン方式でデータの転送が可能な少なくとも13
    個のレジスタと、該レジスタの任意のデータに対して演
    算可能な少なくとも1個の乗算器と1個の加減算器と2
    個の加算器と1個の減算器より構成され、 前記第1の演算回路は、行列〔G〕が式8により定義さ
    れるとき、 【数8】 8×8の周波数空間の画像行列データ〔C〕に対して式
    9の演算を行い、 【数9】 前記第2の演算回路は、行列〔F〕が式10で定義され
    るとき、 【数10】 式11の行列演算を繰り返し行うことにより、 【数11】 前記第1の演算回路において式9の行列演算の結果得ら
    れた行列〔P〕に対して、式12の行列演算を実行し、 【数12】 式12の演算の結果得られた行列〔Q〕の転置行列〔Q
    t 〕に対する式13の行列演算を、式11の行列演算を
    繰り返すことにより行い、 【数13】 8×8の実空間の画像行列データ〔X〕を求める式14
    の2次元8×8逆離散コサイン変換を行う 【数14】 請求項1〜4いずれか記載のデジタルシグナルプロセッ
    サ装置。
JP17905394A 1994-07-29 1994-07-29 デジタルシグナルプロセッサ装置 Expired - Fee Related JP3697720B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP17905394A JP3697720B2 (ja) 1994-07-29 1994-07-29 デジタルシグナルプロセッサ装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP17905394A JP3697720B2 (ja) 1994-07-29 1994-07-29 デジタルシグナルプロセッサ装置

Publications (2)

Publication Number Publication Date
JPH0844704A true JPH0844704A (ja) 1996-02-16
JP3697720B2 JP3697720B2 (ja) 2005-09-21

Family

ID=16059300

Family Applications (1)

Application Number Title Priority Date Filing Date
JP17905394A Expired - Fee Related JP3697720B2 (ja) 1994-07-29 1994-07-29 デジタルシグナルプロセッサ装置

Country Status (1)

Country Link
JP (1) JP3697720B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006319944A (ja) * 2005-04-15 2006-11-24 Sony Corp 復号制御装置および方法、記録媒体、並びに、プログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006319944A (ja) * 2005-04-15 2006-11-24 Sony Corp 復号制御装置および方法、記録媒体、並びに、プログラム

Also Published As

Publication number Publication date
JP3697720B2 (ja) 2005-09-21

Similar Documents

Publication Publication Date Title
JP2646778B2 (ja) ディジタル信号処理装置
KR100311251B1 (ko) 2차원이산코사인변환장치,2차원역이산코사인변환장치및디지탈신호처리장치
EP0506111B1 (en) DCT/IDCT processor and data processing method
US4791598A (en) Two-dimensional discrete cosine transform processor
US4689762A (en) Dynamically configurable fast Fourier transform butterfly circuit
US4385363A (en) Discrete cosine transformer
JP2010102351A (ja) 複合ガロア体エンジンおよびガロア体除算器および平方根エンジンおよび方法
US5408425A (en) Split-radix discrete cosine transform
JPH04242860A (ja) 演算装置
JPH04242861A (ja) 内積演算回路
JP2725544B2 (ja) Dct及び逆dct演算装置並びにその演算方法
JP3697720B2 (ja) デジタルシグナルプロセッサ装置
US6023719A (en) Signal processor and method for fast Fourier transformation
JP2822684B2 (ja) 離散コサイン変換装置および逆離散コサイン変換装置
Maruyama et al. VLSI architecture and implementation of a multifunction, forward/inverse discrete cosine transform processor
JP2646844B2 (ja) 離散コサイン変換装置
JP3697716B2 (ja) 行列データ乗算装置
JP3052516B2 (ja) 符号化データ処理装置
JPH0335353A (ja) 離散的コサイン変換装置
JPH05174046A (ja) 演算回路
KR0126109B1 (ko) 이산적 코사인변환 및 역변환을 위한 집적회로 프로세서
JP3652717B2 (ja) 離散コサイン高速演算器
JP2953918B2 (ja) 演算装置
JPH06195369A (ja) 高速アルゴリズム離散コサイン変換器/逆変換器
JPH06124300A (ja) 2次元4x4離散コサイン変換回路および2次元4x4離散コサイン逆変換回路

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20040901

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040914

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20041111

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050627

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

Free format text: PAYMENT UNTIL: 20080715

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20090715

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees