JP3546437B2 - 適応形ビデオ信号演算処理装置 - Google Patents
適応形ビデオ信号演算処理装置 Download PDFInfo
- Publication number
- JP3546437B2 JP3546437B2 JP07476893A JP7476893A JP3546437B2 JP 3546437 B2 JP3546437 B2 JP 3546437B2 JP 07476893 A JP07476893 A JP 07476893A JP 7476893 A JP7476893 A JP 7476893A JP 3546437 B2 JP3546437 B2 JP 3546437B2
- Authority
- JP
- Japan
- Prior art keywords
- unit
- data
- arithmetic
- units
- multiplication
- 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
Links
- 238000012545 processing Methods 0.000 title claims abstract description 139
- 230000003044 adaptive effect Effects 0.000 title claims description 35
- 230000015654 memory Effects 0.000 claims abstract description 76
- 238000000034 method Methods 0.000 claims description 49
- 230000008569 process Effects 0.000 claims description 43
- 238000013139 quantization Methods 0.000 claims description 33
- 238000009825 accumulation Methods 0.000 claims description 24
- 239000013598 vector Substances 0.000 claims description 19
- 238000001514 detection method Methods 0.000 claims description 12
- 230000006835 compression Effects 0.000 claims description 3
- 238000007906 compression Methods 0.000 claims description 3
- 230000006837 decompression Effects 0.000 claims description 3
- 230000009466 transformation Effects 0.000 abstract 2
- 238000007792 addition Methods 0.000 description 41
- 238000010586 diagram Methods 0.000 description 27
- 230000006870 function Effects 0.000 description 21
- 230000035508 accumulation Effects 0.000 description 14
- 238000004364 calculation method Methods 0.000 description 12
- 238000004422 calculation algorithm Methods 0.000 description 5
- 239000011159 matrix material Substances 0.000 description 4
- 230000002457 bidirectional effect Effects 0.000 description 3
- 238000000926 separation method Methods 0.000 description 3
- 238000000354 decomposition reaction Methods 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000010845 search algorithm Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/14—Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
- G06F17/147—Discrete orthonormal transforms, e.g. discrete cosine transform, discrete sine transform, and variations therefrom, e.g. modified discrete cosine transform, integer transforms approximating the discrete cosine transform
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Mathematical Optimization (AREA)
- Discrete Mathematics (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Algebra (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Image Processing (AREA)
- Complex Calculations (AREA)
- Advance Control (AREA)
- Picture Signal Circuits (AREA)
Description
【0001】
【産業上の利用分野】
本発明は、例えば、数値計算、画像処理、グラフィックス処理等に用いられる計算機システムにおける中央処理装置(プロセッサ)に関するものであり、特に画像圧縮符号化(コーデック:CODEC)のようなビデオ信号処理に好適なディジタルシグナルプロセッサ(DSP)などの適応形ビデオ信号演算処理装置に関する。
【0002】
【従来の技術】
近年、CCITT H.261勧告やMPEG等の画像圧縮符号化/伸長復号化標準に基づく画像コーデック用ディジタルシグナルプロセッサ(DSP)が多数提案されている。
本発明は、これらのDSPのうちで、文献、Yamauchi,et al,“Architecture and Implementation of a Highly Parallel Single−Chip Video DSP“,IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY,VOL.2,NO.2,JUNE 1992,pp.207−220、に提案されているように、算術論理演算ユニット、乗算器、累算器等からなる演算ユニットを複数有し、それらの演算ユニットが単一の命令流により複数のデータを並列に処理する「単一命令ストリーム・多重データストリーム:SIMD(Single Instruction stream Multiple Data stream)」制御方式のDSPに関する。
この文献に記載されている構成を図17に示した。
このDSPの演算ユニットは、演算器をパイプライン接続可能であり、演算パイプライン処理も行う。
【0003】
まず、演算パイプラインの原理について簡単に説明する。
図18に、演算パイプラインの構成例を示す。
この演算パイプラインは、2入力X,Yを算術論理演算ユニット(ALU)A1において加算した後に、加算結果と係数メモリA3からの係数とを乗算器A2において乗算し、さらにその乗算結果を累算器A3において累算する。
このような演算の連鎖を複数のデータに対して連続的に行うことを演算パイプライン処理と呼ぶ。
【0004】
図19は図18の演算パイプラインにおける処理のタイムチャートを示すグラフである。
簡単化のため、演算パイプラインの各演算器A1,A2,A4は1クロックサイクルで演算を完了するものとする。
図19における処理単位は、2入力端子に入力されるデータの組(X,Y)を意味する。
図19に示すように、例えばi番目の処理単位についてみると、
(k−1)番目のクロックサイクルにおいてALU(A1)が加算処理を行い、
k番目のクロックサイクルにおいて乗算器A2が乗算処理を行い、
(k+1)番目のクロックサイクルにおいて累算器A4が累積処理を行う。
また、k番目のクロックサイクルについてみると、
加算処理、乗算処理を終えた(i−1)番目の処理単位が累算器A4において累算され、
加算を終えたi番目の処理単位が乗算器A2において乗算され、
(i+1)番目の処理単位が加算器A1において加算されている。
このような動作を複数の処理単位に対して繰り返し行うことにより演算パイプライン処理が実現できる。
【0005】
次に、従来の技術について説明する。
ここでは、4組の演算ユニットが単一の命令流により複数のデータを並列に処理する、上述した文献において提案されている「単一命令ストリーム・多重データストリーム:SIMD」制御方式のDSPを考える。
前提として、各演算ユニットは、加算、減算および論理演算を行う算術論理演算ユニット(ALU)、乗算器、累算器の3種の演算器からなるとする。
また、簡単化のため、各演算器は1クロックサイクルで演算を完了するものとする。
したがって、このDSPは、1クロックサイクルで最大12演算(例えば、4加算、4乗算、4累算)を実行することができる。
さらに、このDSPは、演算器へデータを供給あるいは演算器からのデータを格納するためのデータメモリをチップ内あるいはチップ外に持つとする。
【0006】
最初に、上記の前提の下で、最も自由度の高い演算パイプラインを実現する構成について述べる。
図20(A)〜(D)に示したように、最も自由度の高い演算パイプラインは、データメモリをパイプラインレジスタとみなし、ソフトウェアにより演算パイプライン処理(ソフトウェア・パイプライニングと呼ばれる)を行うことにより実現できる。このとき、各々の演算器はデータメモリを介してのみ結合されている。なお、図20(A)〜(D)はそれぞれ、4個の並列に設けられた演算処理ユニットの動作形態を示す。
したがって、データメモリは、1クロックサイクル毎にすべての演算器の入力に対して任意のデータを供給し、同時にすべての演算器からの出力のデータを任意のアドレスに格納する必要がある。
データメモリのポート数は、図20(A)〜(D)の図解から判るように、演算器への入力のために16ポート必要で、演算器からの出力のために12ポート必要である。したがって、合計28ポートのマルチポートメモリが必要である。このポート数は、現在の半導体回路技術と考え合わせてみて、非現実的であり、事実上実現困難である。
【0007】
そこで、データメモリをバンク分けして、1バンク当たりのポート数を減らす手法が考えられる。
しかしながら、例えばデータメモリを4バンクに分割したとしても、上記の例では、なおも1バンク当たり7ポートのマルチポートメモリを必要とする。
したがって、アプリケーション・プログラムに応じて演算パイプラインの自由度をある程度限定し、データメモリのポート数の減少を図るアプローチが採られる。
【0008】
例えば、上述した文献に提案されているように、ALU、乗算器、累算器からなる演算パイプラインを4本備え、演算パイプラインの入出力のみをデータメモリに接続する。この場合のデータメモリに要求されるポート数は、演算パイプラインへの入力のために8ポート、演算パイプラインからの出力のために4ポートとなる。
【0009】
【発明が解決しようとする課題】
ところが、上述した従来のDSPの演算パイプラインの構成では、演算パイプラインの自由度に制約がある。例えば、乗算した後に論理演算を行う演算については、パイプライン演算ができない。この場合、すべてのデータに対して、まず乗算器を用いて乗算のパイプライン処理を行い、次に乗算後のすべてのデータに対して、ALUを用いて論理演算のパイプライン処理を行う。したがって、乗算時はALUが使用されず、論理演算時は乗算器が使用されていないため、演算器の使用効率が低下し、性能低下を招く。また、演算パイプライン処理を2回に分けて行うため、演算パイプラインの立ち上げ時の初期設定が2回必要となる。
さらに、上述した従来のDSPにおいては、1回目の演算パイプライン処理が完了した時点で中間結果を格納する必要があるので、データメモリ容量が増大する。
【0010】
画像コーデックの要素処理では、上記の例のように乗算した後に論理演算を行う演算の他に、乗算を連続して行う演算や、乗算した結果同士を加算する演算等が必要となる。このような演算のそれぞれについて、上述した問題と同様の問題が発生する。
【0011】
また、上述した従来のDSPの演算パイプライン構成では、本出願人による、特許出願、特願平4年338183号、「2次元8x8離散コサイン変換回路および2次元8x8離散コサイン逆変換回路」において提案するような高速演算アルゴリズムにおける、バタフライ演算(加算および減算)と乗加算の演算パイプラインの構成を実現できない。
この先行する特許出願は、2次元8x8離散コサイン変換、または、2次元8x8離散コサイン逆変換を行うに際して、行列分解を適用して演算処理するものであるが、その詳細は、図5および図6を参照して後述する。
【0012】
上記のように、演算パイプライン構成ができない理由としては、データメモリのポート数の制約上、バタフライ演算(従来例では2演算ユニットを使用)を行っているときには乗加算を並列に行えないためである。よって、バタフライ演算と乗加算は逐次的に実行されるので、上記特許出願において提案したような理想的な演算パイプライン構成と比較して、性能は著しく低下する。
【0013】
【課題を解決するための手段】
上述した課題を解決するために、本発明では、ビデオ信号処理を行うディジタルシグナルプロセッサ(DSP)、つまり、適応形ビデオ信号演算処理装置において、算術論理演算ユニット(ALU)、乗算器、累算器からなる演算ユニットを複数有し、これらの演算ユニット内の演算器の接続形態および演算ユニット間の接続形態を適宜切り替えることにより、画像コーデック処理における
離散コサイン変換/離散コサイン逆変換(DCT/IDCT)
量子化/逆量子化
動きベクトル検出
動き補償(仮想画素生成、予測画素生成)
フィルタ(内積演算)
画像加算、画像差分
等の要素処理の各々に適応した演算パイプラインを実現する構造可変な演算パイプラインを設ける。
【0014】
したがって、本発明によれば、離散コサイン変換/離散コサイン逆変換、量子化/逆量子化、動きベクトル検出、動き補償、内積演算、画像データ加算および画像データ差分処理などの画像圧縮符号化/伸長復号化処理を、mxnの大きさのブロックの画像データについて、適応的に行う演算処理装置であって、
それぞれが、加算、減算、各種論理演算、大小比較、差分絶対値演算、バタフライ加算・減算処理を行う拡張算術論理演算ユニット、該拡張算術論理演算ユニットの後段に設けられた第1の内部パイプラインメモリ、該第1の内部パイプラインメモリの後段に設けられた乗算ユニット、該乗算ユニットに係数を提供する係数メモリ、該乗算ユニットに後段に設けられた第2の内部パイプラインメモリ、該第2の内部パイプラインメモリの後段に設けられた累積演算ユニット、該累積演算ユニットに後段に設けられた第3の内部パイプラインメモリを有する、複数の並列に設けられた演算ユニット、
これら複数の並列に設けられた演算ユニットのうち、隣接する演算ユニットを接続するように配設された相互接続パイプラインメモリ、および、
前記複数の演算ユニットに入力データを選択的に印加するデータセレクタ
を有し、
前記演算ユニット内において、前記拡張算術論理演算ユニット、前記乗算ユニット、前記累積演算ユニットが、パイプライン処理動作を行い、
前記拡張算術論理演算ユニットは、第1の入力データの極性を反転する正負反転器、該正負反転器の後段に設けられ、前記第1の入力データまたは前記極性反転された第1のデータを選択的に出力する第1のデータセレクタ、該第1のデータセレクタの選択出力データおよび第2の入力データとを加算する加算器、前記第1の入力データから前記第2の入力データを減じる減算器、前記第1の入力データと前記第2のデータとの、論理和、論理積、排他的論理和、否定などの論理処理を行う論理演算器、前記加算器および前記減算器の出力を入力して正負判定を行う正負判定器、前記加算器、前記減算器、および、前記正負判定器の出力を入力し、選択的に出力する第2のデータセレクタ、該第2のデータセレクタに接続された第1の出力端子、および、前記減算器に接続された第2の出力端子を有し、加算、減算、各種論理演算、大小比較、差分絶対値演算、バタフライ加算・減算処理のいずれかの処理内容に応じて、前記正負反転器と、前記第1のデータセレクタと、前記加算器と、前記減算器と、前記論理演算器と、前記正負判定器と、前記第2のデータセレクタとを組み合わせた回路を構成可能であり、
前記相互接続パイプラインメモリを介して隣接する演算ユニットを結合し、かつ、ビデオ信号処理の内容に応じて前記演算ユニット内の内部パイプラインメモリを選択して所定のデータ流れが形成される演算パイプライン回路を有する、
適応形ビデオ信号演算処理装置が提供される。
【0015】
好適には、前記演算ユニット内において、前記拡張算術論理演算ユニット、前記乗算ユニット、前記累積演算ユニットが、パイプライン処理動作を行う。
【0017】
【作用】
上記の構成によれば、算術論理演算ユニット(ALU)、乗算器、累算器からなる演算ユニットを複数有し、これらの演算ユニット内の演算器の接続形態および演算ユニット間の接続形態を適宜切り替えることにより、画像コーデックの各要素処理を並列にパイプライン処理できる。
【0018】
好適には、前記適応形ビデオ信号演算処理装置は、単一の命令ストリームで多重のデータストリーム処理を行う、「単一命令ストリーム・多重データストリーム:SIMD」制御方式で動作する。
【0019】
離散コサイン変換処理用および離散コサイン逆変換処理用を行う場合には、前記複数の演算ユニットの初段の演算ユニットに、離散コサイン変換処理用データを入力する端子が設けられ、前記複数の演算ユニットの最終段の演算ユニットに、離散コサイン逆変換処理用データを出力する端子が設けられる。
mxn画像データをブロックとして、バタフライ演算およびパイプラインメモリ処理を複数回数行って離散コサイン変換処理を行う際には、前記離散コサイン変換処理用データを前記最終段の演算ユニットを除く複数の演算ユニット内の拡張算術論理演算ユニットに入力し、該拡張算術論理演算ユニットにおける処理結果を隣接する前記相互接続パイプラインメモリに出力し、全ての演算ユニット内の乗算ユニットに最終段の相互接続パイプラインメモリのデータを入力し、その乗算結果を前記累積ユニットにおいて累積させる。
【0020】
また、mxn画像データをブロックとして、パイプラインメモリ処理およびバタフライ演算を複数回数行って離散コサイン逆変換処理を行う際には、前記離散コサイン逆変換用データを全ての演算ユニット内の乗算ユニットに入力し、その乗算結果を前記累算ユニットにおいて累積させ、
その出力を前記初段の演算ユニットを除く複数の演算ユニット内の拡張算術論理演算ユニットに入力し、該拡張算術論理演算ユニットにおける処理結果を隣接する相互接続パイプラインメモリに出力する。
【0021】
量子化処理を行う際には、隣接する演算ユニット内の第1の演算ユニットの乗算ユニットの出力端子を第2の演算ユニットの乗算ユニットの入力端子に接続し、該第2の乗算ユニットの乗算結果をその後段の累積ユニットに入力し、前記第1の乗算ユニットに量子化対象のデータを入力する。
【0022】
逆量子化処理を行う際には、隣接する演算ユニット内の第1の演算ユニットの乗算ユニットの出力端子を第2の演算ユニットの乗算ユニットの入力端子に接続し、該第2の乗算ユニットの乗算結果をその後段の累積ユニットに入力し、第1の演算ユニットに逆量子化対象のデータおよび定数を入力し、その演算結果を第1の乗算ユニットに入力する。
【0023】
動きベクトル検出処理の際には、全ての演算ユニット内の拡張算術論理演算ユニットを累積演算ユニットに接続し、前記拡張算術論理演算ユニットに動きベクトル検出対象の2つのデータを入力する。
【0024】
動き補償における仮想画素生成処理の際には、全ての演算ユニット内の拡張算術論理演算ユニットを累積演算ユニットに接続し、前記拡張算術論理演算ユニットに動き補償における仮想画素生成対象の2つのデータを入力する。
【0025】
動き補償における予測画素生成処理の際には、隣接する演算ユニットの一方の乗算ユニットの出力を他方の拡張算術論理演算ユニットの一方の入力端子に印加し、他方の乗算ユニットの出力を該他方の拡張算術論理演算ユニットの他方の入力端子に印加し、該他方の拡張算術論理演算ユニットの演算結果を他方の累積ユニットにおいて累積させる。
【0026】
内積演算処理の際には、全ての演算ユニット内の乗算ユニットに内積対象のデータを入力し、該乗算結果を対応する累積ユニットにおいて累積する。
【0027】
画像データ加算処理の際、または、画像データ減算処理の際には、
全ての演算ユニット内の拡張算術論理演算ユニットに処理対象のデータを入力し、該処理結果を出力する。
【0028】
【実施例】
以下、図面を参照し、本発明の実施例の適応形ビデオ信号演算処理装置について詳述する。
本発明の実施例においても、従来技術と同様に、4組の演算ユニットが単一の命令流により並列動作する、上記文献において提案されている「単一命令ストリーム・多重データストリーム:SIMD」制御方式のDSPを考える。
前提として、各演算ユニットは、加算、減算および論理演算を行うALU、乗算器、累算器の3種の演算器からなるとする。また、簡単のため、各演算器は1クロックサイクルで演算を完了するものとする。したがって、このDSPは、1クロックサイクルで最大12演算を実行することができる。さらに、このDSPは演算器にデータを供給し、また、演算器からのデータを格納するためのデータメモリをチップ内あるいはチップ外に持つとする。
【0029】
以下、演算ユニットの構成を述べたあと、画像コーデックの要素処理における演算ユニットの動作を説明する。
なお、ここで例示する画像コーデックの要素処理は、主にMPEGで使用される要素処理である。
(1)演算ユニットの構成
図1に、4組の演算ユニット1〜4間の結合形態を示す。図1では、データメモリは図示していない。
実際には、データ入力端子(Xin0〜Xin3)11〜14、および、データ入力端子(Yin0〜Yin3)21〜24、および、データ出力端子(Out1〜Out3)31〜34は、何らかの相互結合網を介してデータメモリ(図示せず)に接続されている。
ここでは簡単のため、データメモリは、上記8個のデータ入力端子11〜14、21〜24に1クロックサイクル毎にデータを供給でき、同時に上記4個のデータ出力端子31〜34からのデータを1クロックサイクル毎に書き込むことができるとする。すなわち、演算ユニット1〜4とデータメモリ(図示せず)とは、上記のデータ転送能力を備えた相互結合網により結合されているとする。
また、演算ユニット1〜4間を結合するメモリ(以下、相互接続パイプラインメモリと呼ぶ)0(5)、1(6)、2(7)や、パラレル−シリアル変換器9、シリアル−パラレル変換器10、データセレクタ8,41〜44は、後述する離散コサイン変換/離散コサイン逆変換(DCT/IDCT)の高速演算アルゴリズムにおけるマクロな演算パイプライン構成を実現する際に必要となる。
なお、図1に示したDCT入力端子51およびIDCT出力端子52についても、相互結合網(図示せず)を介してデータメモリ(図示せず)に接続されており、1クロックサイクル毎のデータ入出力が可能となっている。
【0030】
図2および図3に演算ユニットの内部構成を示す。
図2は演算ユニット0(1)および演算ユニット2(3)の内部構成図であり、図3が演算ユニット1(2)および演算ユニット3(4)の内部構成図である。
図2および図3に示すように、演算ユニット内では、加算、減算、論理演算および後述するバタフライ演算等の演算を行う拡張算術論理演算ユニット(EALU)61、係数メモリ63、乗算器62、累算とシフト演算を行うシフト機能付き累算器64、さらには入力端子(Xink)1k(kはk番目を示す)および(Yink)2k、および、出力端子(Outk)3kが、データセレクタ71〜75を介して相互に結合されている。簡単化のため、これらの演算器は、全て1クロックサイクルで演算を完了するものとする。したがって、演算器61、62、64の後段に設けられている内部パイプラインメモリ(図示省略)が存在する。
このような演算器61、62、63および内部パイプラインメモリの結合形態を採ることにより、データセレクタ71〜75の設定に従って、内部パイプラインメモリを介して、演算器61、62、64間のデータパスを変化させることが可能となる。よって、この演算ユニットは、1〜3段の構造可変な演算パイプライン構成を採りうる。
【0031】
図2に示した演算ユニットと図3に示した演算ユニットとの相違は、図3に示した演算ユニットには、データセレクタ71および73に第3の入力データが印加される構成になっていることである。
【0032】
図4に拡張算術論理演算ユニット(EALU)61の構成を示す。
EALU61は、正負反転器301、データセレクタ306、加算器302、減算器303、論理演算器304、正負判定器305、データセレクタ307を有する。
このEALU61は、通常のALUの基本機能である加算、減算、論理演算(否定、論理和、論理積、排他的論理和等)の他に、大小比較演算min(X,Y)、max(X,Y)、差分絶対値演算|X−Y|、バタフライ演算(2入力について加算と減算を同時に行う)を拡張機能として備える。
これらの基本機能および拡張機能は、上述した各種演算器301、302、303、304および305を適切に結合することによって実現される。
以下、上記の基本機能および拡張機能をEALU61が各種演算器を用いていかに実現するかを述べる。
【0033】
加算
入力端子311および312に印加された2入力データXおよびYの加算は加算器302を用いて実現する。
入力データXについては、正負反転器301を経由しないデータXが加算器302に印加されるように、予めデータセレクタ306を設定する。これにより、加算器302からは加算結果(X+Y)が出力される。データセレクタ307は、加算器302の加算出力をEALU61の出力として、A側出力端子313から出力する。
【0034】
減算
入力端子311および312に印加された2入力データ(X−Y)の演算は減算器303を用いて実現する。
減算器83からは減算結果(X−Y)が出力される。この減算結果はB側出力端子314から出力される。
【0035】
論理演算
入力端子311および312に印加された2入力データ(X,Y)の論理演算は論理演算器304を用いて実現する。
論理演算器304は、否定、論理和、論理積、排他的論理和などの論理演算を行い、この演算結果が、データセレクタ307を介して、A側出力端子313からEALU61の結果として出力される。
【0036】
大小比較演算:min(X,Y),max(X,Y)
入力端子311および312に印加された2入力データ(X,Y)の大小比較は、正負反転器301、加算器302、減算器303および正負判定器305を用いて行う。
入力データXは正負反転器301で反転され、反転された(−X)がデータセレクタ306を介して加算器302に印加される。これにより、加算器302から減算結果(Y−X)が出力される。一方、減算器303において減算(X−Y)の演算が行われる。加算結果(Y−X)および減算結果(X−Y)が正負判定器305に印加されて、入力データXとYとの大小比較判定が行われる。
正負判定器305は下記の判定基準に従って、大小判定を行う。
1.最小値:min(X,Y)
(Y−X)≧0とき、最小値=X
(Y−X)<0とき、最小値=Y
2.最大値:max(X,Y)
(X−Y)≧0とき、最大値=Y
(X−Y)<0とき、最大値=X
ただし、最小値と最大値とをを同時に出力はできない。データセレクタ307は、正負判定器305の出力をEALU61の出力として、A側出力端子313から出力する。
【0037】
差分絶対値演算|X−Y|
入力端子311および312に印加された2入力データ(X,Y)の差分絶対値演算は、正負反転器301、加算器302、減算器303および正負判定器305を用いて行う。
入力データXについては正負反転器301で極性反転された−Xがデータセレクタ306から加算器302に選択出力されるように、予めデータセレクタ306を設定しておく。加算器302は加算(Y−X)を行い、減算器303は減算(X−Y)を行う。これらの演算結果が正負判定器305に入力される。正負判定器305は、下記の差分絶対値演算を行う。
(Y−X)≧0とき、差分絶対値=Y−X
(X−Y)<0とき、差分絶対値=X−Y
データセレクタ307は上記演算された差分絶対値をA側出力端子313から出力する。
【0038】
バタフライ演算
入力端子311および312に印加された2入力データ(X,Y)についてのバタフライ演算は、加算器302および減算器303を用いて実現する。
入力データXが正負反転器301を経由しないで加算器302に印加されるように、予めデータセレクタ306を設定しておく。加算器302は加算(X+Y)を行い、減算器303は減算(X−Y)を行う。データセレクタ307が加算器302の出力をEALU61の出力としてA側出力端子313から出力すると同時に、減算器303の減算結果がB側出力端子314から出力される。
このバタフライ演算の場合のみ、EALU61は2入力2出力の演算器として動作する。上述した他の演算においては、EALU61は2入力1出力の演算器として動作する。
【0039】
以下、DCT/IDCT、量子化などの画像コーデックの各要素処理における演算ユニットの動作を個別的に説明する。
離散コサイン変換/離散コサイン逆変換(DCT/IDCT)
離散コサイン変換/離散コサイン逆変換(DCT/IDCT)の要素処理において、本発明の実施例における演算ユニットでは、本出願人が先に出願した、特願平4年338183号の明細書及び図面で提案するような高速演算アルゴリズムに適応するバタフライ演算(加算および減算)と乗加算のマクロな演算パイプラインの構成を以下のように実現する。
【0040】
図5は8x8DCTの演算パイプライン構成の概略図を示し、図6は8x8IDCTの演算パイプライン構成の概略図を示す。
これらの演算パイプラインの処理単位は8x8の画像ブロック(64画素)であり、パイプラインメモリ131〜133を介した4段の演算パイプライン構成となる。したがって、通常の画素単位で1クロックサイクル毎にパイプライン処理を行う演算パイプラインとは異なり、64クロックサイクル毎にパイプライン処理を行うことから、マクロな演算パイプラインと考えられる。
【0041】
以下、8x8DCTを例にとって上記の演算パイプラインの高速演算アルゴリズムを簡単に説明する。
前述の特許出願、特願平4年338183号において提案したような行列分解により、8x8DCTは、8×8の画像ブロック(64画素)に対して165回のバタフライ演算(加算165回および減算165回)を行い、さらに、220回の乗加算(乗算220回および累算220回)を行うことにより実現できる。したがって、図5に示すような4段の演算パイプラインの構成、つまり、3個のバタフライ演算器101〜103と4個の乗加算器111による回路構成を採ることにより、64クロックサイクル周期(理想的には55クロックサイクル)で演算パイプライン処理を行い、8×8DCTを計算することが可能となる。
また、8×8IDCTについても、乗加算とバタフライ演算の順序が入れ替わるだけで、演算量や演算パイプライン段数は変わらない。
なお、上述した出願では、乗加算器数を3個にするために、さらに乗加算回数を減らす工夫を行っているが、本発明の実施例においては乗加算器数は4個であると仮定しているため、この工夫は必要ない。
【0042】
図7(A)〜(D)に、本発明の実施例における演算ユニットを用いて、上述の8×8DCTの演算パイプライン構成を実現した場合の演算器およびメモリの結合形態(データパス)を示す。図7(A)〜(D)はそれぞれ、4系統の演算ユニットの動作形態を示す。
図7(A)〜(D)および図1に示すように、演算ユニット0(1),1(2),2(3)内のEALU61をメモリ0(5),1(6),2(7)、つまり、パイプラインメモリ5,6,7を介してパイプライン接続する。さらに、演算ユニット2(3)のEALU61の出力を、シリアル−パラレル変換器10、データセレクタ41〜44を介して、4個の乗算器62に接続し、各々の乗算器62の出力をシフト機能付き累算器64にパイプライン接続する。なお、この時のEALU61は、前述したEALUとしての拡張機能であるバタフライ演算を行うため、2入力2出力となっている。
このような演算器およびメモリの結合形態を採ることにより、図5に示すようなマクロな演算パイプライン構成を実現する。
【0043】
また、図8(A)〜(D)に、本発明の実施例における演算ユニットを用いて、上述の8×8IDCTの演算パイプライン構成を実現した場合の演算器およびメモリの結合形態(データパス)を示す。図8(A)〜(D)はそれぞれ、4系統の演算ユニットの動作形態を示す。
図8(A)〜(D)および図1に示すように、各演算ユニットの4個の乗算器62を各々シフト機能付き累算器64にパイプライン接続する。さらに、すべてのシフト機能付き累算器64の出力を、パラレル−シリアル変換器9、データセレクタ8を介して、メモリ0(5)に接続する。また、演算ユニット1(2),2(3),3(4)のEALU61をメモリ0(5),1(6),2(7)、つまり、パイプラインメモリ5,6,7を介してパイプライン接続する。なお、この時のEALU61は、前述したEALU61の拡張機能であるバタフライ演算を行うため、2入力2出力となっている。
このような演算器およびメモリの結合形態を採ることにより、図6に示すようなマクロな演算パイプライン構成を実現する。
【0044】
量子化/逆量子化処理
(イ)量子化
画像コーデックの量子化処理においては、下式1のように乗算を連続して行い、さらにシフト演算を行う演算パターンが存在する。これは、量子化処理において最も複雑な演算パターンである。
【0045】
【数1】
【0046】
ただし、Xは量子化前の画素値であり、
Yは量子化後の画素値を表し、
Wは量子化行列の係数を示し、
QPは量子化スケールパラメータを表す。
【0047】
図9(A)〜(D)に本発明の実施例における演算ユニットを用いて上式の演算を実現した場合の演算器の結合形態(データパス)を示す。図9(A)〜(D)はそれぞれ4系統の演算ユニットの動作形態を示す。
図9(A)〜(D)のように、2個の乗算器62およびシフト機能付き累算器64をパイプライン接続するデータパスを実現することにより、上式の演算パターンを分割処理することなく1本の演算パイプラインで処理できる。この量子化処理の演算パターンにおいて、本発明の実施例における演算ユニットの構成では、図9(A)〜(D)に示すように3段の演算パイプラインを2本実現できる。このような演算パイプライン構成を採ることにより、画像ブロック内の全画素に対する量子化を2並列にパイプライン処理できる。
【0048】
ロ)逆量子化
画像コーデックの逆量子化処理においては、下式2のようにシフトおよび加算を行ったあと、乗算を連続して行い、さらに、シフト演算を行う演算パターンが存在する。これは、逆量子化処理において最も複雑な演算パターンである。
【0049】
【数2】
【0050】
ただし、Xは量子化前の画素値であり、
Yは量子化後の画素値を表し、
Kは逆量子化時に必要となる定数を表し、
(K= 0、1または−1)
Wは量子化行列の係数であり、
QP量子化スケールパラメータを表す。
【0051】
図10(A)〜(D)に本発明の一実施例における演算ユニットを用いて、上式の演算を実現した場合の演算器の結合形態(データパス)を示す。図10(A)〜(D)はそれぞれ、4系統の演算ユニットの動作形態を示す。
図10(A)〜(D)に示すように、EALU61と2個の乗算器62およびシフト機能付き累算器64をパイプライン接続するデータパスを構成することにより、上式の演算パターンを分割することなく1本の演算パイプラインで実現できる。なお、シフトおよび定数加算は、EALU61で1クロックサイクルで実行可能とする。この逆量子化処理の演算パターンにおいて、本発明の実施例における演算ユニットの構成では、図10(A)〜(D)に示すように4段の演算パイプラインを2本実現できる。このような演算パイプライン構成を採ることにより、画像ブロック内の全画素に対する逆量子化を2並列にパイプライン処理できる。
【0052】
動きベクトル検出
画像コーデックの動きベクトル検出処理においては、下式のような差分絶対値和演算が動きベクトル候補の数だけ必要となる(ただし、探索アルゴリズムにブロックマッチングの全探索を採用した場合)。
【0053】
【数3】
【0054】
ただし、Xは動きベクトル探索の基準となる画像ブロック(参照ブロックと呼ばれる)の画素値を表し、
Yは動きベクトル探索の対象となる画像ブロック(候補ブロックと呼ばれる)の画素値を表す。
【0055】
図11(A)〜(D)に本発明の一実施例における演算ユニットを用いて、上式の演算を実現した場合の演算器の結合形態(データパス)を示す。図11(A)〜(D)はそれぞれ4系統の演算ユニットの動作形態を示す。
図11(A)〜(D)のように、EALU61およびシフト機能付き累算器64をパイプライン接続するデータパスを構成することにより、上式の差分絶対値和演算を分割することなく1本の演算パイプラインで実現できる。なお、差分絶対値演算には、前述したEALU61の拡張機能である差分絶対値演算機能を用いる。この動きベクトル検出処理の差分絶対値和演算において、本発明の実施例における演算ユニットの構成では、図11(A)〜(D)に示すように2段の演算パイプラインを4本実現できる。
このような演算パイプライン構成を採ることにより、全候補ブロックに対する動きベクトル検出を4並列にパイプライン処理できる。
【0056】
動き補償(仮想画素生成、予測画素生成)
画像コーデックにおける動き補償処理は、動きベクトルの値やブロックのモードにより、様々な処理に場合分けされる。このうち、最も複雑な演算を行う場合について考える。
このとき、動き補償処理は、仮想画素生成および予測画素生成の2つの処理に分けられる。
以下、本発明の実施例における演算ユニットにおいて、上記2つの処理のそれぞれに適応する演算パイプラインの構成をどのように実現するかを説明する。
【0057】
(イ)仮想画素生成
仮想画素生成処理は、1/2画素精度の動きベクトルに伴い、画素間の補間を行って仮想画素を生成する処理である。
図12に仮想画素の生成規則を示す。
図12から分かるように、最も複雑な仮想画素生成処理は、近傍4画素から中央の1仮想画素を生成する場合である。
【0058】
【数4】
【0059】
ただし、aは仮想画素を表し、
x,y,z,wは、近傍の4画素を表す。
【0060】
図13(A)〜(D)に本発明の実施例における演算ユニットを用いて、上式の演算を実現した場合の演算器の結合形態(データパス)を示す。図13(A)〜(D)はそれぞれ、4系統の演算ユニットの動作形態を示す。
図13(A)〜(D)のように、EALU61およびシフト機能付き累算器64をパイプライン接続するデータパスを構成することにより、上式の演算パターンを分割することなく1本の演算パイプラインで処理できる。
この仮想画素生成処理において、本発明の一実施例における演算ユニットの構成では、図13(A)〜(D)に示すように2段の演算パイプラインを4本実現できる。
このような演算パイプライン構成を採ることにより、画像ブロック内の全画素に対する仮想画素生成を4並列にパイプライン処理できる。
【0061】
(ロ)予測画素生成
予測画素生成処理は、単方向(前向きあるいは後ろ向き)動き補償予測か両方向動き補償予測かのモードにより異なる。
単方向動き補償予測の場合は、単に動きベクトルに従ってフレームメモリにアクセスし、当該画像ブロックを得ればよい。
ところが、両方向動き補償予測の場合は、前向きおよび後ろ向きの2種の動きベクトルに従って2つのフレームメモリからそれぞれ画像ブロックを得、さらにそれらの画素を時間的距離によって平均化して予測値を得る。
【0062】
【数5】
【0063】
ただし、aは両方向動き補償予測値を示し、
x,yはそれぞれ前向きおよび後ろ向きの動き補償予測値を示し、
Aは2つの画像ブロックの時間的距離によって決定するパラメータである。
【0064】
図14(A)〜(D)に本発明の一実施例における演算ユニットを用いて、上式の演算を実現した場合の演算器の結合形態(データパス)を示す。図14(A)〜(D)はそれぞれ、4系統の演算ユニットの動作形態を示す。
図14(A)〜(D)に示すように、2個の乗算器62の出力をEALU61の入力とし、さらにシフト機能付き累算器64をパイプライン接続するデータパスを構成することにより、上式の演算パターンを分割することなく1本の演算パイプラインで実現できる。
この予測画素生成処理において、本発明の実施例における演算ユニットの構成では、図14(A)〜(D)に示すように3段の演算パイプラインを2本実現できる。
このような演算パイプライン構成を採ることにより、画像ブロック内の全画素に対する予測画素生成を2並列にパイプライン処理できる。
【0065】
フィルタ(内積演算)
画像コーデックに限らず、フィルタ処理は画像処理の基本的な要素処理である。ここでは、画像ブロック内の全画素に対して1次元フィルタ処理を行う場合を考える。
フィルタ処理においては下式のような内積演算が必要となる。
【0066】
【数6】
【0067】
ただし、cはフィルタ係数を示し、
xは画像ブロック内の画素を示す。
【0068】
図15(A)〜(D)に本発明の実施例の演算ユニットを用いて上式の演算を実現した場合の演算器の結合形態(データパス)を示す。図15(A)〜(D)はそれぞれ、4系統の演算ユニットの動作形態を示す。
図15(A)〜(D)に示すように、乗算器62およびシフト機能付き累算器64をパイプライン接続するデータパスを構成することにより、上式の内積演算を分割することなく1本の演算パイプラインで実現できる。このフィルタ処理において、本発明の実施例における演算ユニットの構成では、図15(A)〜(D)に示すように2段の演算パイプラインを4本実現できる。
このような演算パイプライン構成を採ることにより、画像ブロック内の全画素に対するフィルタ処理を4並列にパイプライン処理できる。
【0069】
画像加算、画像差分
画像加算および画像差分もまた、画像コーデックに限らず、画像処理の基本的な要素処理である。
ここでは、画像ブロック間で画像加算あるいは画像差分を計算する場合を考える。
図16(A)〜(D)に本発明の一実施例における演算ユニットを用いて、画像加算あるいは画像差分を実現した場合の演算器の結合形態(データパス)を示す。図16(A)〜(D)はそれぞれ、4系統の演算ユニットの動作形態を示す。
本発明の実施例における演算ユニットの構成では、図16(A)〜(D)に示すようにEALU61を用いた1段の演算パイプラインを4本実現できる。このような演算パイプライン構成を採ることにより、画像ブロック内の全画素に対する画像加算あるいは画像差分を4並列にパイプライン処理できる。
【0070】
以上の実施例は、適応形ビデオ信号の代表的な処理について述べたが、本発明き適応形ビデオ信号演算処理装置においては、上述した信号処理例に限定されず、上記同様の他の信号処理にも適用できる。
【0071】
【発明の効果】
本発明によれば、画像コーデックの要素処理における、乗算した後に論理演算を行う演算、乗算を連続して行う演算、あるいは、乗算した結果同士を加算する種々の演算を適応的に1つの適応形ビデオ信号演算処理装置で実現できる。
また、本発明の適応形ビデオ信号演算処理装置は、「単一命令ストリーム・多重データストリーム:SIMD」制御方式に基づく、1本の演算パイプラインを用いた1回のパイプライン処理で実現できる。
したがって、従来の構成と比較して、本発明の適応形ビデオ信号演算処理装置は異なる演算器を用いる演算を並列に実行できるため、演算器の使用効率は低下しない。
また、本発明の適応形ビデオ信号演算処理装置は演算パイプラインの立ち上げ時の初期設定も1回でよい。さらには、本発明の適応形ビデオ信号演算処理装置は中間結果を格納する必要はないので、データメモリの容量は増大しない。
【0072】
また、本発明の適応形ビデオ信号演算処理装置はバタフライ演算器3個と乗加算器をパイプライン・メモリで接続したマクロな演算パイプライン構成を実現可能としているため、前述の特願平4年338183号出願(平成4年11月25日出願)にて提案したような回路構成による、DCT高速演算アルゴリズムにおけるバタフライ演算と乗加算の演算パイプラインの構成が実現可能となる。これにより、本発明の適応形ビデオ信号演算処理装置は、画像コーデックのDCT/IDCTの要素処理における演算器使用効率が従来の構成と比較して大幅に向上し、性能が向上する。
【図面の簡単な説明】
【図1】本発明の実施例による演算ユニットの結合形態を示す適応形ビデオ信号演算処理装置の構成図である。
【図2】本発明の実施例による演算ユニット0,2の構成を示す図である。
【図3】本発明の実施例による演算ユニット1,3の構成を示す図である。
【図4】本発明の実施例による拡張論理演算ユニット(EALU)の構成を示す図である。
【図5】8×8DCTの演算パイプライン構成図である。
【図6】8×8IDCTの演算パイプライン構成図である。
【図7】本発明の実施例によるDCT処理時の適応形ビデオ信号演算処理装置の演算パイプラインの構成を示す図であり、(A)〜(D)はそれぞれ4系統の演算ユニットの動作形態を示す図である。
【図8】本発明の実施例によるIDCT処理時の適応形ビデオ信号演算処理装置の演算パイプラインの構成を示す図であり、(A)〜(D)はそれぞれ4系統の演算ユニットの動作形態を示す図である。
【図9】本発明の実施例による量子化処理時の適応形ビデオ信号演算処理装置の演算パイプラインの構成を示す図であり、(A)〜(D)はそれぞれ4系統の演算ユニットの動作形態を示す図である。
【図10】本発明の実施例による逆量子化処理時の適応形ビデオ信号演算処理装置の演算パイプラインの構成を示す図であり、(A)〜(D)はそれぞれ4系統の演算ユニットの動作形態を示す図である。
【図11】本発明の実施例による動きベクトル検出処理時の適応形ビデオ信号演算処理装置の演算パイプラインの構成を示す図であり、(A)〜(D)はそれぞれ4系統の演算ユニットの動作形態を示す図である。
【図12】画像コーデックの動き補償処理の仮想画素生成規則を示す図である。
【図13】本発明の実施例による動き補償における仮想画素生成処理時の演算パイプラインの構成を示す図であり、(A)〜(D)はそれぞれ4系統の演算ユニットの動作形態を示す図である。
【図14】本発明の実施例による動き補償における予測画素生成処理時の演算パイプラインの構成を示す図であり、(A)〜(D)はそれぞれ4系統の演算ユニットの動作形態を示す図である。
【図15】本発明の実施例によるフィルタ処理時の演算パイプラインの構成を示す図であり、(A)〜(D)はそれぞれ4系統の演算ユニットの動作形態を示す図である。
【図16】本発明の実施例による画像加算あるいは画像差分処理時の適応形ビデオ信号演算処理装置の演算パイプラインの構成を示す図であり、(A)〜(D)はそれぞれ4系統の演算ユニットの動作形態を示す図である。
【図17】「単一命令ストリーム・多重データストリーム:SIMD」制御方式のプロセッサの構成図である。
【図18】演算パイプラインの例を示す図である。
【図19】図18の演算パイプライン処理におけるタイムチャートを示すグラフである。
【図20】最も自由度の高い演算パイプラインの構成を示す図であり、(A)〜(D)はそれぞれ4系統の演算ユニットの動作形態を示す図である。
【符号の説明】
A1・・算術論理演算ユニット(ALU)
A2・・乗算器
A3・・係数メモリ
A4・・累算器
1〜4・・本発明の実施例における演算ユニット
5〜7・・相互接続パイプラインメモリ
8・・データセレクタ
9・・パラレル−シリアル変換器
10・・シリアル−パラレル変換器
11〜14,21〜24…演算ユニットの入力端子
31〜34・・演算ユニットの出力端子
41〜44・・データセレクタ
51・・8x8DCT用入力端子
52・・8x8IDCT用出力端子
61・・拡張論理演算ユニット(EALU)
62・・乗算器
63・・係数メモリ
64・・シフト機能付き累算器
71〜75・・データセレクタ
301・・正負反転器
302・・加算器
303・・減算器
304・・論理演算器
305・・正負判定器
306,307・・データセレクタ
311,312・・EALUの入力端子
313,314・・EALUの出力端子
101〜103・・バタフライ演算器
111・・乗加算器
121・・シリアル−パラレル変換器
122・・パラレル−シリアル変換器
131〜133・・パイプラインメモリ
141・・データメモリ
【産業上の利用分野】
本発明は、例えば、数値計算、画像処理、グラフィックス処理等に用いられる計算機システムにおける中央処理装置(プロセッサ)に関するものであり、特に画像圧縮符号化(コーデック:CODEC)のようなビデオ信号処理に好適なディジタルシグナルプロセッサ(DSP)などの適応形ビデオ信号演算処理装置に関する。
【0002】
【従来の技術】
近年、CCITT H.261勧告やMPEG等の画像圧縮符号化/伸長復号化標準に基づく画像コーデック用ディジタルシグナルプロセッサ(DSP)が多数提案されている。
本発明は、これらのDSPのうちで、文献、Yamauchi,et al,“Architecture and Implementation of a Highly Parallel Single−Chip Video DSP“,IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY,VOL.2,NO.2,JUNE 1992,pp.207−220、に提案されているように、算術論理演算ユニット、乗算器、累算器等からなる演算ユニットを複数有し、それらの演算ユニットが単一の命令流により複数のデータを並列に処理する「単一命令ストリーム・多重データストリーム:SIMD(Single Instruction stream Multiple Data stream)」制御方式のDSPに関する。
この文献に記載されている構成を図17に示した。
このDSPの演算ユニットは、演算器をパイプライン接続可能であり、演算パイプライン処理も行う。
【0003】
まず、演算パイプラインの原理について簡単に説明する。
図18に、演算パイプラインの構成例を示す。
この演算パイプラインは、2入力X,Yを算術論理演算ユニット(ALU)A1において加算した後に、加算結果と係数メモリA3からの係数とを乗算器A2において乗算し、さらにその乗算結果を累算器A3において累算する。
このような演算の連鎖を複数のデータに対して連続的に行うことを演算パイプライン処理と呼ぶ。
【0004】
図19は図18の演算パイプラインにおける処理のタイムチャートを示すグラフである。
簡単化のため、演算パイプラインの各演算器A1,A2,A4は1クロックサイクルで演算を完了するものとする。
図19における処理単位は、2入力端子に入力されるデータの組(X,Y)を意味する。
図19に示すように、例えばi番目の処理単位についてみると、
(k−1)番目のクロックサイクルにおいてALU(A1)が加算処理を行い、
k番目のクロックサイクルにおいて乗算器A2が乗算処理を行い、
(k+1)番目のクロックサイクルにおいて累算器A4が累積処理を行う。
また、k番目のクロックサイクルについてみると、
加算処理、乗算処理を終えた(i−1)番目の処理単位が累算器A4において累算され、
加算を終えたi番目の処理単位が乗算器A2において乗算され、
(i+1)番目の処理単位が加算器A1において加算されている。
このような動作を複数の処理単位に対して繰り返し行うことにより演算パイプライン処理が実現できる。
【0005】
次に、従来の技術について説明する。
ここでは、4組の演算ユニットが単一の命令流により複数のデータを並列に処理する、上述した文献において提案されている「単一命令ストリーム・多重データストリーム:SIMD」制御方式のDSPを考える。
前提として、各演算ユニットは、加算、減算および論理演算を行う算術論理演算ユニット(ALU)、乗算器、累算器の3種の演算器からなるとする。
また、簡単化のため、各演算器は1クロックサイクルで演算を完了するものとする。
したがって、このDSPは、1クロックサイクルで最大12演算(例えば、4加算、4乗算、4累算)を実行することができる。
さらに、このDSPは、演算器へデータを供給あるいは演算器からのデータを格納するためのデータメモリをチップ内あるいはチップ外に持つとする。
【0006】
最初に、上記の前提の下で、最も自由度の高い演算パイプラインを実現する構成について述べる。
図20(A)〜(D)に示したように、最も自由度の高い演算パイプラインは、データメモリをパイプラインレジスタとみなし、ソフトウェアにより演算パイプライン処理(ソフトウェア・パイプライニングと呼ばれる)を行うことにより実現できる。このとき、各々の演算器はデータメモリを介してのみ結合されている。なお、図20(A)〜(D)はそれぞれ、4個の並列に設けられた演算処理ユニットの動作形態を示す。
したがって、データメモリは、1クロックサイクル毎にすべての演算器の入力に対して任意のデータを供給し、同時にすべての演算器からの出力のデータを任意のアドレスに格納する必要がある。
データメモリのポート数は、図20(A)〜(D)の図解から判るように、演算器への入力のために16ポート必要で、演算器からの出力のために12ポート必要である。したがって、合計28ポートのマルチポートメモリが必要である。このポート数は、現在の半導体回路技術と考え合わせてみて、非現実的であり、事実上実現困難である。
【0007】
そこで、データメモリをバンク分けして、1バンク当たりのポート数を減らす手法が考えられる。
しかしながら、例えばデータメモリを4バンクに分割したとしても、上記の例では、なおも1バンク当たり7ポートのマルチポートメモリを必要とする。
したがって、アプリケーション・プログラムに応じて演算パイプラインの自由度をある程度限定し、データメモリのポート数の減少を図るアプローチが採られる。
【0008】
例えば、上述した文献に提案されているように、ALU、乗算器、累算器からなる演算パイプラインを4本備え、演算パイプラインの入出力のみをデータメモリに接続する。この場合のデータメモリに要求されるポート数は、演算パイプラインへの入力のために8ポート、演算パイプラインからの出力のために4ポートとなる。
【0009】
【発明が解決しようとする課題】
ところが、上述した従来のDSPの演算パイプラインの構成では、演算パイプラインの自由度に制約がある。例えば、乗算した後に論理演算を行う演算については、パイプライン演算ができない。この場合、すべてのデータに対して、まず乗算器を用いて乗算のパイプライン処理を行い、次に乗算後のすべてのデータに対して、ALUを用いて論理演算のパイプライン処理を行う。したがって、乗算時はALUが使用されず、論理演算時は乗算器が使用されていないため、演算器の使用効率が低下し、性能低下を招く。また、演算パイプライン処理を2回に分けて行うため、演算パイプラインの立ち上げ時の初期設定が2回必要となる。
さらに、上述した従来のDSPにおいては、1回目の演算パイプライン処理が完了した時点で中間結果を格納する必要があるので、データメモリ容量が増大する。
【0010】
画像コーデックの要素処理では、上記の例のように乗算した後に論理演算を行う演算の他に、乗算を連続して行う演算や、乗算した結果同士を加算する演算等が必要となる。このような演算のそれぞれについて、上述した問題と同様の問題が発生する。
【0011】
また、上述した従来のDSPの演算パイプライン構成では、本出願人による、特許出願、特願平4年338183号、「2次元8x8離散コサイン変換回路および2次元8x8離散コサイン逆変換回路」において提案するような高速演算アルゴリズムにおける、バタフライ演算(加算および減算)と乗加算の演算パイプラインの構成を実現できない。
この先行する特許出願は、2次元8x8離散コサイン変換、または、2次元8x8離散コサイン逆変換を行うに際して、行列分解を適用して演算処理するものであるが、その詳細は、図5および図6を参照して後述する。
【0012】
上記のように、演算パイプライン構成ができない理由としては、データメモリのポート数の制約上、バタフライ演算(従来例では2演算ユニットを使用)を行っているときには乗加算を並列に行えないためである。よって、バタフライ演算と乗加算は逐次的に実行されるので、上記特許出願において提案したような理想的な演算パイプライン構成と比較して、性能は著しく低下する。
【0013】
【課題を解決するための手段】
上述した課題を解決するために、本発明では、ビデオ信号処理を行うディジタルシグナルプロセッサ(DSP)、つまり、適応形ビデオ信号演算処理装置において、算術論理演算ユニット(ALU)、乗算器、累算器からなる演算ユニットを複数有し、これらの演算ユニット内の演算器の接続形態および演算ユニット間の接続形態を適宜切り替えることにより、画像コーデック処理における
離散コサイン変換/離散コサイン逆変換(DCT/IDCT)
量子化/逆量子化
動きベクトル検出
動き補償(仮想画素生成、予測画素生成)
フィルタ(内積演算)
画像加算、画像差分
等の要素処理の各々に適応した演算パイプラインを実現する構造可変な演算パイプラインを設ける。
【0014】
したがって、本発明によれば、離散コサイン変換/離散コサイン逆変換、量子化/逆量子化、動きベクトル検出、動き補償、内積演算、画像データ加算および画像データ差分処理などの画像圧縮符号化/伸長復号化処理を、mxnの大きさのブロックの画像データについて、適応的に行う演算処理装置であって、
それぞれが、加算、減算、各種論理演算、大小比較、差分絶対値演算、バタフライ加算・減算処理を行う拡張算術論理演算ユニット、該拡張算術論理演算ユニットの後段に設けられた第1の内部パイプラインメモリ、該第1の内部パイプラインメモリの後段に設けられた乗算ユニット、該乗算ユニットに係数を提供する係数メモリ、該乗算ユニットに後段に設けられた第2の内部パイプラインメモリ、該第2の内部パイプラインメモリの後段に設けられた累積演算ユニット、該累積演算ユニットに後段に設けられた第3の内部パイプラインメモリを有する、複数の並列に設けられた演算ユニット、
これら複数の並列に設けられた演算ユニットのうち、隣接する演算ユニットを接続するように配設された相互接続パイプラインメモリ、および、
前記複数の演算ユニットに入力データを選択的に印加するデータセレクタ
を有し、
前記演算ユニット内において、前記拡張算術論理演算ユニット、前記乗算ユニット、前記累積演算ユニットが、パイプライン処理動作を行い、
前記拡張算術論理演算ユニットは、第1の入力データの極性を反転する正負反転器、該正負反転器の後段に設けられ、前記第1の入力データまたは前記極性反転された第1のデータを選択的に出力する第1のデータセレクタ、該第1のデータセレクタの選択出力データおよび第2の入力データとを加算する加算器、前記第1の入力データから前記第2の入力データを減じる減算器、前記第1の入力データと前記第2のデータとの、論理和、論理積、排他的論理和、否定などの論理処理を行う論理演算器、前記加算器および前記減算器の出力を入力して正負判定を行う正負判定器、前記加算器、前記減算器、および、前記正負判定器の出力を入力し、選択的に出力する第2のデータセレクタ、該第2のデータセレクタに接続された第1の出力端子、および、前記減算器に接続された第2の出力端子を有し、加算、減算、各種論理演算、大小比較、差分絶対値演算、バタフライ加算・減算処理のいずれかの処理内容に応じて、前記正負反転器と、前記第1のデータセレクタと、前記加算器と、前記減算器と、前記論理演算器と、前記正負判定器と、前記第2のデータセレクタとを組み合わせた回路を構成可能であり、
前記相互接続パイプラインメモリを介して隣接する演算ユニットを結合し、かつ、ビデオ信号処理の内容に応じて前記演算ユニット内の内部パイプラインメモリを選択して所定のデータ流れが形成される演算パイプライン回路を有する、
適応形ビデオ信号演算処理装置が提供される。
【0015】
好適には、前記演算ユニット内において、前記拡張算術論理演算ユニット、前記乗算ユニット、前記累積演算ユニットが、パイプライン処理動作を行う。
【0017】
【作用】
上記の構成によれば、算術論理演算ユニット(ALU)、乗算器、累算器からなる演算ユニットを複数有し、これらの演算ユニット内の演算器の接続形態および演算ユニット間の接続形態を適宜切り替えることにより、画像コーデックの各要素処理を並列にパイプライン処理できる。
【0018】
好適には、前記適応形ビデオ信号演算処理装置は、単一の命令ストリームで多重のデータストリーム処理を行う、「単一命令ストリーム・多重データストリーム:SIMD」制御方式で動作する。
【0019】
離散コサイン変換処理用および離散コサイン逆変換処理用を行う場合には、前記複数の演算ユニットの初段の演算ユニットに、離散コサイン変換処理用データを入力する端子が設けられ、前記複数の演算ユニットの最終段の演算ユニットに、離散コサイン逆変換処理用データを出力する端子が設けられる。
mxn画像データをブロックとして、バタフライ演算およびパイプラインメモリ処理を複数回数行って離散コサイン変換処理を行う際には、前記離散コサイン変換処理用データを前記最終段の演算ユニットを除く複数の演算ユニット内の拡張算術論理演算ユニットに入力し、該拡張算術論理演算ユニットにおける処理結果を隣接する前記相互接続パイプラインメモリに出力し、全ての演算ユニット内の乗算ユニットに最終段の相互接続パイプラインメモリのデータを入力し、その乗算結果を前記累積ユニットにおいて累積させる。
【0020】
また、mxn画像データをブロックとして、パイプラインメモリ処理およびバタフライ演算を複数回数行って離散コサイン逆変換処理を行う際には、前記離散コサイン逆変換用データを全ての演算ユニット内の乗算ユニットに入力し、その乗算結果を前記累算ユニットにおいて累積させ、
その出力を前記初段の演算ユニットを除く複数の演算ユニット内の拡張算術論理演算ユニットに入力し、該拡張算術論理演算ユニットにおける処理結果を隣接する相互接続パイプラインメモリに出力する。
【0021】
量子化処理を行う際には、隣接する演算ユニット内の第1の演算ユニットの乗算ユニットの出力端子を第2の演算ユニットの乗算ユニットの入力端子に接続し、該第2の乗算ユニットの乗算結果をその後段の累積ユニットに入力し、前記第1の乗算ユニットに量子化対象のデータを入力する。
【0022】
逆量子化処理を行う際には、隣接する演算ユニット内の第1の演算ユニットの乗算ユニットの出力端子を第2の演算ユニットの乗算ユニットの入力端子に接続し、該第2の乗算ユニットの乗算結果をその後段の累積ユニットに入力し、第1の演算ユニットに逆量子化対象のデータおよび定数を入力し、その演算結果を第1の乗算ユニットに入力する。
【0023】
動きベクトル検出処理の際には、全ての演算ユニット内の拡張算術論理演算ユニットを累積演算ユニットに接続し、前記拡張算術論理演算ユニットに動きベクトル検出対象の2つのデータを入力する。
【0024】
動き補償における仮想画素生成処理の際には、全ての演算ユニット内の拡張算術論理演算ユニットを累積演算ユニットに接続し、前記拡張算術論理演算ユニットに動き補償における仮想画素生成対象の2つのデータを入力する。
【0025】
動き補償における予測画素生成処理の際には、隣接する演算ユニットの一方の乗算ユニットの出力を他方の拡張算術論理演算ユニットの一方の入力端子に印加し、他方の乗算ユニットの出力を該他方の拡張算術論理演算ユニットの他方の入力端子に印加し、該他方の拡張算術論理演算ユニットの演算結果を他方の累積ユニットにおいて累積させる。
【0026】
内積演算処理の際には、全ての演算ユニット内の乗算ユニットに内積対象のデータを入力し、該乗算結果を対応する累積ユニットにおいて累積する。
【0027】
画像データ加算処理の際、または、画像データ減算処理の際には、
全ての演算ユニット内の拡張算術論理演算ユニットに処理対象のデータを入力し、該処理結果を出力する。
【0028】
【実施例】
以下、図面を参照し、本発明の実施例の適応形ビデオ信号演算処理装置について詳述する。
本発明の実施例においても、従来技術と同様に、4組の演算ユニットが単一の命令流により並列動作する、上記文献において提案されている「単一命令ストリーム・多重データストリーム:SIMD」制御方式のDSPを考える。
前提として、各演算ユニットは、加算、減算および論理演算を行うALU、乗算器、累算器の3種の演算器からなるとする。また、簡単のため、各演算器は1クロックサイクルで演算を完了するものとする。したがって、このDSPは、1クロックサイクルで最大12演算を実行することができる。さらに、このDSPは演算器にデータを供給し、また、演算器からのデータを格納するためのデータメモリをチップ内あるいはチップ外に持つとする。
【0029】
以下、演算ユニットの構成を述べたあと、画像コーデックの要素処理における演算ユニットの動作を説明する。
なお、ここで例示する画像コーデックの要素処理は、主にMPEGで使用される要素処理である。
(1)演算ユニットの構成
図1に、4組の演算ユニット1〜4間の結合形態を示す。図1では、データメモリは図示していない。
実際には、データ入力端子(Xin0〜Xin3)11〜14、および、データ入力端子(Yin0〜Yin3)21〜24、および、データ出力端子(Out1〜Out3)31〜34は、何らかの相互結合網を介してデータメモリ(図示せず)に接続されている。
ここでは簡単のため、データメモリは、上記8個のデータ入力端子11〜14、21〜24に1クロックサイクル毎にデータを供給でき、同時に上記4個のデータ出力端子31〜34からのデータを1クロックサイクル毎に書き込むことができるとする。すなわち、演算ユニット1〜4とデータメモリ(図示せず)とは、上記のデータ転送能力を備えた相互結合網により結合されているとする。
また、演算ユニット1〜4間を結合するメモリ(以下、相互接続パイプラインメモリと呼ぶ)0(5)、1(6)、2(7)や、パラレル−シリアル変換器9、シリアル−パラレル変換器10、データセレクタ8,41〜44は、後述する離散コサイン変換/離散コサイン逆変換(DCT/IDCT)の高速演算アルゴリズムにおけるマクロな演算パイプライン構成を実現する際に必要となる。
なお、図1に示したDCT入力端子51およびIDCT出力端子52についても、相互結合網(図示せず)を介してデータメモリ(図示せず)に接続されており、1クロックサイクル毎のデータ入出力が可能となっている。
【0030】
図2および図3に演算ユニットの内部構成を示す。
図2は演算ユニット0(1)および演算ユニット2(3)の内部構成図であり、図3が演算ユニット1(2)および演算ユニット3(4)の内部構成図である。
図2および図3に示すように、演算ユニット内では、加算、減算、論理演算および後述するバタフライ演算等の演算を行う拡張算術論理演算ユニット(EALU)61、係数メモリ63、乗算器62、累算とシフト演算を行うシフト機能付き累算器64、さらには入力端子(Xink)1k(kはk番目を示す)および(Yink)2k、および、出力端子(Outk)3kが、データセレクタ71〜75を介して相互に結合されている。簡単化のため、これらの演算器は、全て1クロックサイクルで演算を完了するものとする。したがって、演算器61、62、64の後段に設けられている内部パイプラインメモリ(図示省略)が存在する。
このような演算器61、62、63および内部パイプラインメモリの結合形態を採ることにより、データセレクタ71〜75の設定に従って、内部パイプラインメモリを介して、演算器61、62、64間のデータパスを変化させることが可能となる。よって、この演算ユニットは、1〜3段の構造可変な演算パイプライン構成を採りうる。
【0031】
図2に示した演算ユニットと図3に示した演算ユニットとの相違は、図3に示した演算ユニットには、データセレクタ71および73に第3の入力データが印加される構成になっていることである。
【0032】
図4に拡張算術論理演算ユニット(EALU)61の構成を示す。
EALU61は、正負反転器301、データセレクタ306、加算器302、減算器303、論理演算器304、正負判定器305、データセレクタ307を有する。
このEALU61は、通常のALUの基本機能である加算、減算、論理演算(否定、論理和、論理積、排他的論理和等)の他に、大小比較演算min(X,Y)、max(X,Y)、差分絶対値演算|X−Y|、バタフライ演算(2入力について加算と減算を同時に行う)を拡張機能として備える。
これらの基本機能および拡張機能は、上述した各種演算器301、302、303、304および305を適切に結合することによって実現される。
以下、上記の基本機能および拡張機能をEALU61が各種演算器を用いていかに実現するかを述べる。
【0033】
加算
入力端子311および312に印加された2入力データXおよびYの加算は加算器302を用いて実現する。
入力データXについては、正負反転器301を経由しないデータXが加算器302に印加されるように、予めデータセレクタ306を設定する。これにより、加算器302からは加算結果(X+Y)が出力される。データセレクタ307は、加算器302の加算出力をEALU61の出力として、A側出力端子313から出力する。
【0034】
減算
入力端子311および312に印加された2入力データ(X−Y)の演算は減算器303を用いて実現する。
減算器83からは減算結果(X−Y)が出力される。この減算結果はB側出力端子314から出力される。
【0035】
論理演算
入力端子311および312に印加された2入力データ(X,Y)の論理演算は論理演算器304を用いて実現する。
論理演算器304は、否定、論理和、論理積、排他的論理和などの論理演算を行い、この演算結果が、データセレクタ307を介して、A側出力端子313からEALU61の結果として出力される。
【0036】
大小比較演算:min(X,Y),max(X,Y)
入力端子311および312に印加された2入力データ(X,Y)の大小比較は、正負反転器301、加算器302、減算器303および正負判定器305を用いて行う。
入力データXは正負反転器301で反転され、反転された(−X)がデータセレクタ306を介して加算器302に印加される。これにより、加算器302から減算結果(Y−X)が出力される。一方、減算器303において減算(X−Y)の演算が行われる。加算結果(Y−X)および減算結果(X−Y)が正負判定器305に印加されて、入力データXとYとの大小比較判定が行われる。
正負判定器305は下記の判定基準に従って、大小判定を行う。
1.最小値:min(X,Y)
(Y−X)≧0とき、最小値=X
(Y−X)<0とき、最小値=Y
2.最大値:max(X,Y)
(X−Y)≧0とき、最大値=Y
(X−Y)<0とき、最大値=X
ただし、最小値と最大値とをを同時に出力はできない。データセレクタ307は、正負判定器305の出力をEALU61の出力として、A側出力端子313から出力する。
【0037】
差分絶対値演算|X−Y|
入力端子311および312に印加された2入力データ(X,Y)の差分絶対値演算は、正負反転器301、加算器302、減算器303および正負判定器305を用いて行う。
入力データXについては正負反転器301で極性反転された−Xがデータセレクタ306から加算器302に選択出力されるように、予めデータセレクタ306を設定しておく。加算器302は加算(Y−X)を行い、減算器303は減算(X−Y)を行う。これらの演算結果が正負判定器305に入力される。正負判定器305は、下記の差分絶対値演算を行う。
(Y−X)≧0とき、差分絶対値=Y−X
(X−Y)<0とき、差分絶対値=X−Y
データセレクタ307は上記演算された差分絶対値をA側出力端子313から出力する。
【0038】
バタフライ演算
入力端子311および312に印加された2入力データ(X,Y)についてのバタフライ演算は、加算器302および減算器303を用いて実現する。
入力データXが正負反転器301を経由しないで加算器302に印加されるように、予めデータセレクタ306を設定しておく。加算器302は加算(X+Y)を行い、減算器303は減算(X−Y)を行う。データセレクタ307が加算器302の出力をEALU61の出力としてA側出力端子313から出力すると同時に、減算器303の減算結果がB側出力端子314から出力される。
このバタフライ演算の場合のみ、EALU61は2入力2出力の演算器として動作する。上述した他の演算においては、EALU61は2入力1出力の演算器として動作する。
【0039】
以下、DCT/IDCT、量子化などの画像コーデックの各要素処理における演算ユニットの動作を個別的に説明する。
離散コサイン変換/離散コサイン逆変換(DCT/IDCT)
離散コサイン変換/離散コサイン逆変換(DCT/IDCT)の要素処理において、本発明の実施例における演算ユニットでは、本出願人が先に出願した、特願平4年338183号の明細書及び図面で提案するような高速演算アルゴリズムに適応するバタフライ演算(加算および減算)と乗加算のマクロな演算パイプラインの構成を以下のように実現する。
【0040】
図5は8x8DCTの演算パイプライン構成の概略図を示し、図6は8x8IDCTの演算パイプライン構成の概略図を示す。
これらの演算パイプラインの処理単位は8x8の画像ブロック(64画素)であり、パイプラインメモリ131〜133を介した4段の演算パイプライン構成となる。したがって、通常の画素単位で1クロックサイクル毎にパイプライン処理を行う演算パイプラインとは異なり、64クロックサイクル毎にパイプライン処理を行うことから、マクロな演算パイプラインと考えられる。
【0041】
以下、8x8DCTを例にとって上記の演算パイプラインの高速演算アルゴリズムを簡単に説明する。
前述の特許出願、特願平4年338183号において提案したような行列分解により、8x8DCTは、8×8の画像ブロック(64画素)に対して165回のバタフライ演算(加算165回および減算165回)を行い、さらに、220回の乗加算(乗算220回および累算220回)を行うことにより実現できる。したがって、図5に示すような4段の演算パイプラインの構成、つまり、3個のバタフライ演算器101〜103と4個の乗加算器111による回路構成を採ることにより、64クロックサイクル周期(理想的には55クロックサイクル)で演算パイプライン処理を行い、8×8DCTを計算することが可能となる。
また、8×8IDCTについても、乗加算とバタフライ演算の順序が入れ替わるだけで、演算量や演算パイプライン段数は変わらない。
なお、上述した出願では、乗加算器数を3個にするために、さらに乗加算回数を減らす工夫を行っているが、本発明の実施例においては乗加算器数は4個であると仮定しているため、この工夫は必要ない。
【0042】
図7(A)〜(D)に、本発明の実施例における演算ユニットを用いて、上述の8×8DCTの演算パイプライン構成を実現した場合の演算器およびメモリの結合形態(データパス)を示す。図7(A)〜(D)はそれぞれ、4系統の演算ユニットの動作形態を示す。
図7(A)〜(D)および図1に示すように、演算ユニット0(1),1(2),2(3)内のEALU61をメモリ0(5),1(6),2(7)、つまり、パイプラインメモリ5,6,7を介してパイプライン接続する。さらに、演算ユニット2(3)のEALU61の出力を、シリアル−パラレル変換器10、データセレクタ41〜44を介して、4個の乗算器62に接続し、各々の乗算器62の出力をシフト機能付き累算器64にパイプライン接続する。なお、この時のEALU61は、前述したEALUとしての拡張機能であるバタフライ演算を行うため、2入力2出力となっている。
このような演算器およびメモリの結合形態を採ることにより、図5に示すようなマクロな演算パイプライン構成を実現する。
【0043】
また、図8(A)〜(D)に、本発明の実施例における演算ユニットを用いて、上述の8×8IDCTの演算パイプライン構成を実現した場合の演算器およびメモリの結合形態(データパス)を示す。図8(A)〜(D)はそれぞれ、4系統の演算ユニットの動作形態を示す。
図8(A)〜(D)および図1に示すように、各演算ユニットの4個の乗算器62を各々シフト機能付き累算器64にパイプライン接続する。さらに、すべてのシフト機能付き累算器64の出力を、パラレル−シリアル変換器9、データセレクタ8を介して、メモリ0(5)に接続する。また、演算ユニット1(2),2(3),3(4)のEALU61をメモリ0(5),1(6),2(7)、つまり、パイプラインメモリ5,6,7を介してパイプライン接続する。なお、この時のEALU61は、前述したEALU61の拡張機能であるバタフライ演算を行うため、2入力2出力となっている。
このような演算器およびメモリの結合形態を採ることにより、図6に示すようなマクロな演算パイプライン構成を実現する。
【0044】
量子化/逆量子化処理
(イ)量子化
画像コーデックの量子化処理においては、下式1のように乗算を連続して行い、さらにシフト演算を行う演算パターンが存在する。これは、量子化処理において最も複雑な演算パターンである。
【0045】
【数1】
【0046】
ただし、Xは量子化前の画素値であり、
Yは量子化後の画素値を表し、
Wは量子化行列の係数を示し、
QPは量子化スケールパラメータを表す。
【0047】
図9(A)〜(D)に本発明の実施例における演算ユニットを用いて上式の演算を実現した場合の演算器の結合形態(データパス)を示す。図9(A)〜(D)はそれぞれ4系統の演算ユニットの動作形態を示す。
図9(A)〜(D)のように、2個の乗算器62およびシフト機能付き累算器64をパイプライン接続するデータパスを実現することにより、上式の演算パターンを分割処理することなく1本の演算パイプラインで処理できる。この量子化処理の演算パターンにおいて、本発明の実施例における演算ユニットの構成では、図9(A)〜(D)に示すように3段の演算パイプラインを2本実現できる。このような演算パイプライン構成を採ることにより、画像ブロック内の全画素に対する量子化を2並列にパイプライン処理できる。
【0048】
ロ)逆量子化
画像コーデックの逆量子化処理においては、下式2のようにシフトおよび加算を行ったあと、乗算を連続して行い、さらに、シフト演算を行う演算パターンが存在する。これは、逆量子化処理において最も複雑な演算パターンである。
【0049】
【数2】
【0050】
ただし、Xは量子化前の画素値であり、
Yは量子化後の画素値を表し、
Kは逆量子化時に必要となる定数を表し、
(K= 0、1または−1)
Wは量子化行列の係数であり、
QP量子化スケールパラメータを表す。
【0051】
図10(A)〜(D)に本発明の一実施例における演算ユニットを用いて、上式の演算を実現した場合の演算器の結合形態(データパス)を示す。図10(A)〜(D)はそれぞれ、4系統の演算ユニットの動作形態を示す。
図10(A)〜(D)に示すように、EALU61と2個の乗算器62およびシフト機能付き累算器64をパイプライン接続するデータパスを構成することにより、上式の演算パターンを分割することなく1本の演算パイプラインで実現できる。なお、シフトおよび定数加算は、EALU61で1クロックサイクルで実行可能とする。この逆量子化処理の演算パターンにおいて、本発明の実施例における演算ユニットの構成では、図10(A)〜(D)に示すように4段の演算パイプラインを2本実現できる。このような演算パイプライン構成を採ることにより、画像ブロック内の全画素に対する逆量子化を2並列にパイプライン処理できる。
【0052】
動きベクトル検出
画像コーデックの動きベクトル検出処理においては、下式のような差分絶対値和演算が動きベクトル候補の数だけ必要となる(ただし、探索アルゴリズムにブロックマッチングの全探索を採用した場合)。
【0053】
【数3】
【0054】
ただし、Xは動きベクトル探索の基準となる画像ブロック(参照ブロックと呼ばれる)の画素値を表し、
Yは動きベクトル探索の対象となる画像ブロック(候補ブロックと呼ばれる)の画素値を表す。
【0055】
図11(A)〜(D)に本発明の一実施例における演算ユニットを用いて、上式の演算を実現した場合の演算器の結合形態(データパス)を示す。図11(A)〜(D)はそれぞれ4系統の演算ユニットの動作形態を示す。
図11(A)〜(D)のように、EALU61およびシフト機能付き累算器64をパイプライン接続するデータパスを構成することにより、上式の差分絶対値和演算を分割することなく1本の演算パイプラインで実現できる。なお、差分絶対値演算には、前述したEALU61の拡張機能である差分絶対値演算機能を用いる。この動きベクトル検出処理の差分絶対値和演算において、本発明の実施例における演算ユニットの構成では、図11(A)〜(D)に示すように2段の演算パイプラインを4本実現できる。
このような演算パイプライン構成を採ることにより、全候補ブロックに対する動きベクトル検出を4並列にパイプライン処理できる。
【0056】
動き補償(仮想画素生成、予測画素生成)
画像コーデックにおける動き補償処理は、動きベクトルの値やブロックのモードにより、様々な処理に場合分けされる。このうち、最も複雑な演算を行う場合について考える。
このとき、動き補償処理は、仮想画素生成および予測画素生成の2つの処理に分けられる。
以下、本発明の実施例における演算ユニットにおいて、上記2つの処理のそれぞれに適応する演算パイプラインの構成をどのように実現するかを説明する。
【0057】
(イ)仮想画素生成
仮想画素生成処理は、1/2画素精度の動きベクトルに伴い、画素間の補間を行って仮想画素を生成する処理である。
図12に仮想画素の生成規則を示す。
図12から分かるように、最も複雑な仮想画素生成処理は、近傍4画素から中央の1仮想画素を生成する場合である。
【0058】
【数4】
【0059】
ただし、aは仮想画素を表し、
x,y,z,wは、近傍の4画素を表す。
【0060】
図13(A)〜(D)に本発明の実施例における演算ユニットを用いて、上式の演算を実現した場合の演算器の結合形態(データパス)を示す。図13(A)〜(D)はそれぞれ、4系統の演算ユニットの動作形態を示す。
図13(A)〜(D)のように、EALU61およびシフト機能付き累算器64をパイプライン接続するデータパスを構成することにより、上式の演算パターンを分割することなく1本の演算パイプラインで処理できる。
この仮想画素生成処理において、本発明の一実施例における演算ユニットの構成では、図13(A)〜(D)に示すように2段の演算パイプラインを4本実現できる。
このような演算パイプライン構成を採ることにより、画像ブロック内の全画素に対する仮想画素生成を4並列にパイプライン処理できる。
【0061】
(ロ)予測画素生成
予測画素生成処理は、単方向(前向きあるいは後ろ向き)動き補償予測か両方向動き補償予測かのモードにより異なる。
単方向動き補償予測の場合は、単に動きベクトルに従ってフレームメモリにアクセスし、当該画像ブロックを得ればよい。
ところが、両方向動き補償予測の場合は、前向きおよび後ろ向きの2種の動きベクトルに従って2つのフレームメモリからそれぞれ画像ブロックを得、さらにそれらの画素を時間的距離によって平均化して予測値を得る。
【0062】
【数5】
【0063】
ただし、aは両方向動き補償予測値を示し、
x,yはそれぞれ前向きおよび後ろ向きの動き補償予測値を示し、
Aは2つの画像ブロックの時間的距離によって決定するパラメータである。
【0064】
図14(A)〜(D)に本発明の一実施例における演算ユニットを用いて、上式の演算を実現した場合の演算器の結合形態(データパス)を示す。図14(A)〜(D)はそれぞれ、4系統の演算ユニットの動作形態を示す。
図14(A)〜(D)に示すように、2個の乗算器62の出力をEALU61の入力とし、さらにシフト機能付き累算器64をパイプライン接続するデータパスを構成することにより、上式の演算パターンを分割することなく1本の演算パイプラインで実現できる。
この予測画素生成処理において、本発明の実施例における演算ユニットの構成では、図14(A)〜(D)に示すように3段の演算パイプラインを2本実現できる。
このような演算パイプライン構成を採ることにより、画像ブロック内の全画素に対する予測画素生成を2並列にパイプライン処理できる。
【0065】
フィルタ(内積演算)
画像コーデックに限らず、フィルタ処理は画像処理の基本的な要素処理である。ここでは、画像ブロック内の全画素に対して1次元フィルタ処理を行う場合を考える。
フィルタ処理においては下式のような内積演算が必要となる。
【0066】
【数6】
【0067】
ただし、cはフィルタ係数を示し、
xは画像ブロック内の画素を示す。
【0068】
図15(A)〜(D)に本発明の実施例の演算ユニットを用いて上式の演算を実現した場合の演算器の結合形態(データパス)を示す。図15(A)〜(D)はそれぞれ、4系統の演算ユニットの動作形態を示す。
図15(A)〜(D)に示すように、乗算器62およびシフト機能付き累算器64をパイプライン接続するデータパスを構成することにより、上式の内積演算を分割することなく1本の演算パイプラインで実現できる。このフィルタ処理において、本発明の実施例における演算ユニットの構成では、図15(A)〜(D)に示すように2段の演算パイプラインを4本実現できる。
このような演算パイプライン構成を採ることにより、画像ブロック内の全画素に対するフィルタ処理を4並列にパイプライン処理できる。
【0069】
画像加算、画像差分
画像加算および画像差分もまた、画像コーデックに限らず、画像処理の基本的な要素処理である。
ここでは、画像ブロック間で画像加算あるいは画像差分を計算する場合を考える。
図16(A)〜(D)に本発明の一実施例における演算ユニットを用いて、画像加算あるいは画像差分を実現した場合の演算器の結合形態(データパス)を示す。図16(A)〜(D)はそれぞれ、4系統の演算ユニットの動作形態を示す。
本発明の実施例における演算ユニットの構成では、図16(A)〜(D)に示すようにEALU61を用いた1段の演算パイプラインを4本実現できる。このような演算パイプライン構成を採ることにより、画像ブロック内の全画素に対する画像加算あるいは画像差分を4並列にパイプライン処理できる。
【0070】
以上の実施例は、適応形ビデオ信号の代表的な処理について述べたが、本発明き適応形ビデオ信号演算処理装置においては、上述した信号処理例に限定されず、上記同様の他の信号処理にも適用できる。
【0071】
【発明の効果】
本発明によれば、画像コーデックの要素処理における、乗算した後に論理演算を行う演算、乗算を連続して行う演算、あるいは、乗算した結果同士を加算する種々の演算を適応的に1つの適応形ビデオ信号演算処理装置で実現できる。
また、本発明の適応形ビデオ信号演算処理装置は、「単一命令ストリーム・多重データストリーム:SIMD」制御方式に基づく、1本の演算パイプラインを用いた1回のパイプライン処理で実現できる。
したがって、従来の構成と比較して、本発明の適応形ビデオ信号演算処理装置は異なる演算器を用いる演算を並列に実行できるため、演算器の使用効率は低下しない。
また、本発明の適応形ビデオ信号演算処理装置は演算パイプラインの立ち上げ時の初期設定も1回でよい。さらには、本発明の適応形ビデオ信号演算処理装置は中間結果を格納する必要はないので、データメモリの容量は増大しない。
【0072】
また、本発明の適応形ビデオ信号演算処理装置はバタフライ演算器3個と乗加算器をパイプライン・メモリで接続したマクロな演算パイプライン構成を実現可能としているため、前述の特願平4年338183号出願(平成4年11月25日出願)にて提案したような回路構成による、DCT高速演算アルゴリズムにおけるバタフライ演算と乗加算の演算パイプラインの構成が実現可能となる。これにより、本発明の適応形ビデオ信号演算処理装置は、画像コーデックのDCT/IDCTの要素処理における演算器使用効率が従来の構成と比較して大幅に向上し、性能が向上する。
【図面の簡単な説明】
【図1】本発明の実施例による演算ユニットの結合形態を示す適応形ビデオ信号演算処理装置の構成図である。
【図2】本発明の実施例による演算ユニット0,2の構成を示す図である。
【図3】本発明の実施例による演算ユニット1,3の構成を示す図である。
【図4】本発明の実施例による拡張論理演算ユニット(EALU)の構成を示す図である。
【図5】8×8DCTの演算パイプライン構成図である。
【図6】8×8IDCTの演算パイプライン構成図である。
【図7】本発明の実施例によるDCT処理時の適応形ビデオ信号演算処理装置の演算パイプラインの構成を示す図であり、(A)〜(D)はそれぞれ4系統の演算ユニットの動作形態を示す図である。
【図8】本発明の実施例によるIDCT処理時の適応形ビデオ信号演算処理装置の演算パイプラインの構成を示す図であり、(A)〜(D)はそれぞれ4系統の演算ユニットの動作形態を示す図である。
【図9】本発明の実施例による量子化処理時の適応形ビデオ信号演算処理装置の演算パイプラインの構成を示す図であり、(A)〜(D)はそれぞれ4系統の演算ユニットの動作形態を示す図である。
【図10】本発明の実施例による逆量子化処理時の適応形ビデオ信号演算処理装置の演算パイプラインの構成を示す図であり、(A)〜(D)はそれぞれ4系統の演算ユニットの動作形態を示す図である。
【図11】本発明の実施例による動きベクトル検出処理時の適応形ビデオ信号演算処理装置の演算パイプラインの構成を示す図であり、(A)〜(D)はそれぞれ4系統の演算ユニットの動作形態を示す図である。
【図12】画像コーデックの動き補償処理の仮想画素生成規則を示す図である。
【図13】本発明の実施例による動き補償における仮想画素生成処理時の演算パイプラインの構成を示す図であり、(A)〜(D)はそれぞれ4系統の演算ユニットの動作形態を示す図である。
【図14】本発明の実施例による動き補償における予測画素生成処理時の演算パイプラインの構成を示す図であり、(A)〜(D)はそれぞれ4系統の演算ユニットの動作形態を示す図である。
【図15】本発明の実施例によるフィルタ処理時の演算パイプラインの構成を示す図であり、(A)〜(D)はそれぞれ4系統の演算ユニットの動作形態を示す図である。
【図16】本発明の実施例による画像加算あるいは画像差分処理時の適応形ビデオ信号演算処理装置の演算パイプラインの構成を示す図であり、(A)〜(D)はそれぞれ4系統の演算ユニットの動作形態を示す図である。
【図17】「単一命令ストリーム・多重データストリーム:SIMD」制御方式のプロセッサの構成図である。
【図18】演算パイプラインの例を示す図である。
【図19】図18の演算パイプライン処理におけるタイムチャートを示すグラフである。
【図20】最も自由度の高い演算パイプラインの構成を示す図であり、(A)〜(D)はそれぞれ4系統の演算ユニットの動作形態を示す図である。
【符号の説明】
A1・・算術論理演算ユニット(ALU)
A2・・乗算器
A3・・係数メモリ
A4・・累算器
1〜4・・本発明の実施例における演算ユニット
5〜7・・相互接続パイプラインメモリ
8・・データセレクタ
9・・パラレル−シリアル変換器
10・・シリアル−パラレル変換器
11〜14,21〜24…演算ユニットの入力端子
31〜34・・演算ユニットの出力端子
41〜44・・データセレクタ
51・・8x8DCT用入力端子
52・・8x8IDCT用出力端子
61・・拡張論理演算ユニット(EALU)
62・・乗算器
63・・係数メモリ
64・・シフト機能付き累算器
71〜75・・データセレクタ
301・・正負反転器
302・・加算器
303・・減算器
304・・論理演算器
305・・正負判定器
306,307・・データセレクタ
311,312・・EALUの入力端子
313,314・・EALUの出力端子
101〜103・・バタフライ演算器
111・・乗加算器
121・・シリアル−パラレル変換器
122・・パラレル−シリアル変換器
131〜133・・パイプラインメモリ
141・・データメモリ
Claims (12)
- 離散コサイン変換/離散コサイン逆変換、量子化/逆量子化、動きベクトル検出、動き補償、内積演算、画像データ加算および画像データ差分処理などの画像圧縮符号化/伸長復号化処理を、mxnの大きさのブロックの画像データについて、適応的に行う演算処理装置であって、
それぞれが、加算、減算、各種論理演算、大小比較、差分絶対値演算、バタフライ加算・減算処理を行う拡張算術論理演算ユニット、該拡張算術論理演算ユニットの後段に設けられた第1の内部パイプラインメモリ、該第1の内部パイプラインメモリの後段に設けられた乗算ユニット、該乗算ユニットに係数を提供する係数メモリ、該乗算ユニットに後段に設けられた第2の内部パイプラインメモリ、該第2の内部パイプラインメモリの後段に設けられた累積演算ユニット、該累積演算ユニットに後段に設けられた第3の内部パイプラインメモリを有する、複数の並列に設けられた演算ユニット、
これら複数の並列に設けられた演算ユニットのうち、隣接する演算ユニットを接続するように配設された相互接続パイプラインメモリ、および、
前記複数の演算ユニットに入力データを選択的に印加するデータセレクタ
を有し、
前記演算ユニット内において、前記拡張算術論理演算ユニット、前記乗算ユニット、前記累積演算ユニットが、パイプライン処理動作を行い、
前記拡張算術論理演算ユニットは、
第1の入力データの極性を反転する正負反転器、
該正負反転器の後段に設けられ、前記第1の入力データまたは前記極性反転された第1のデータを選択的に出力する第1のデータセレクタ、
該第1のデータセレクタの選択出力データおよび第2の入力データとを加算する加算器、
前記第1の入力データから前記第2の入力データを減じる減算器、
前記第1の入力データと前記第2のデータとの、論理和、論理積、排他的論理和、否定などの論理処理を行う論理演算器、
前記加算器および前記減算器の出力を入力して正負判定を行う正負判定器、
前記加算器、前記減算器、および、前記正負判定器の出力を入力し、選択的に出力する第2のデータセレクタ、
該第2のデータセレクタに接続された第1の出力端子、および、
前記減算器に接続された第2の出力端子
を有し、加算、減算、各種論理演算、大小比較、差分絶対値演算、バタフライ加算・減算処理のいずれかの処理内容に応じて、前記正負反転器と、前記第1のデータセレクタと、前記加算器と、前記減算器と、前記論理演算器と、前記正負判定器と、前記第2のデータセレクタとを組み合わせた回路を構成可能であり、 前記相互接続パイプラインメモリを介して隣接する演算ユニットを結合し、かつ、ビデオ信号処理の内容に応じて前記演算ユニット内の内部パイプラインメモリを選択して所定のデータ流れが形成される演算パイプライン回路を有する、
適応形ビデオ信号演算処理装置。 - 前記適応形ビデオ信号演算処理装置は、単一の命令ストリームで多重のデータストリーム処理を行う、「単一命令ストリーム・多重データストリーム:SIMD」制御回路を有する、
請求項1記載の適応形ビデオ信号演算処理装置。 - 前記複数の演算ユニットの初段の演算ユニットに、離散コサイン変換処理用データを入力する端子が設けられ、
前記複数の演算ユニットの最終段の演算ユニットに、離散コサイン逆変換処理用データを出力する端子が設けられた、
請求項1または2記載の適応形ビデオ信号演算処理装置。 - mxn画像データをブロックとして、バタフライ演算およびパイプラインメモリ処理を複数回数行って離散コサイン変換処理を行う際、
前記離散コサイン変換処理用データを前記最終段の演算ユニットを除く複数の演算ユニット内の拡張算術論理演算ユニットに入力し、該拡張算術論理演算ユニットにおける処理結果を隣接する前記相互接続パイプラインメモリに出力し、
全ての演算ユニット内の乗算ユニットに最終段の相互接続パイプラインメモリのデータを入力し、その乗算結果を前記累積ユニットにおいて累積させる、
回路を構成可能な、
請求項3記載の適応形ビデオ信号演算処理装置。 - mxn画像データをブロックとして、パイプラインメモリ処理およびバタフライ演算を複数回数行って離散コサイン逆変換処理を行う際、
前記離散コサイン逆変換用データを全ての演算ユニット内の乗算ユニットに入力し、その乗算結果を前記累算ユニットにおいて累積させ、
その出力を前記初段の演算ユニットを除く複数の演算ユニット内の拡張算術論理演算ユニットに入力し、該拡張算術論理演算ユニットにおける処理結果を隣接する前記相互接続パイプラインメモリに出力する、
回路を構成可能な、
請求項3記載の適応形ビデオ信号演算処理装置。 - 量子化処理を行う際、
隣接する演算ユニット内の第1の演算ユニットの乗算ユニットの出力端子を第2の演算ユニットの乗算ユニットの入力端子に接続し、
該第2の乗算ユニットの乗算結果をその後段の累積ユニットに入力し、
前記第1の乗算ユニットに量子化対象のデータを入力する、
回路を構成可能な、
請求項1または2記載の適応形ビデオ信号演算処理装置。 - 逆量子化処理を行う際、隣接する演算ユニット内の第1の演算ユニットの乗算ユニットの出力端子を第2の演算ユニットの乗算ユニットの入力端子に接続し、該第2の乗算ユニットの乗算結果をその後段の累積ユニットに入力し、第1の演算ユニットに逆量子化対象のデータおよび定数を入力し、その演算結果を第1の乗算ユニットに入力する、回路を構成可能な、
請求項1または2記載の適応形ビデオ信号演算処理装置。 - 動きベクトル検出処理の際、全ての演算ユニット内の拡張算術論理演算ユニットを累積演算ユニットに接続し、前記拡張算術論理演算ユニットに動きベクトル検出対象の2つのデータを入力する、回路を構成可能な、
請求項1または2記載の適応形ビデオ信号演算処理装置。 - 動き補償における仮想画素生成処理の際、全ての演算ユニット内の拡張算術論理演算ユニットを累積演算ユニットに接続し、前記拡張算術論理演算ユニットに動き補償における仮想画素生成対象の2つのデータを入力する、回路を構成可能な、
請求項1または2記載の適応形ビデオ信号演算処理装置。 - 動き補償における予測画素生成処理の際、隣接する演算ユニットの一方の乗算ユニットの出力を他方の拡張算術論理演算ユニットの一方の入力端子に印加し、他方の乗算ユニットの出力を該他方の拡張算術論理演算ユニットの他方の入力端子に印加し、該他方の拡張算術論理演算ユニットの演算結果を他方の累積ユニットにおいて累積させる、回路を構成可能な、
請求項1または2記載の適応形ビデオ信号演算処理装置。 - 内積演算処理の際、全ての演算ユニット内の乗算ユニットに内積対象のデータを入力し、該乗算結果を対応する累積ユニットにおいて累積する、回路を構成可能な、
請求項1または2記載の適応形ビデオ信号演算処理装置。 - 画像データ加算処理の際、または、画像データ減算処理の際、全ての演算ユニット内の拡張算術論理演算ユニットに処理対象のデータを入力し、該処理結果を出力する、回路を構成可能な、
請求項1または2記載の適応形ビデオ信号演算処理装置。
Priority Applications (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP07476893A JP3546437B2 (ja) | 1993-03-31 | 1993-03-31 | 適応形ビデオ信号演算処理装置 |
EP94910573A EP0644492B1 (en) | 1993-03-31 | 1994-03-30 | Apparatus for adaptively processing video signals |
PCT/JP1994/000525 WO1994023384A1 (en) | 1993-03-31 | 1994-03-30 | Apparatus for adaptively processing video signals |
AU62921/94A AU668298B2 (en) | 1993-03-31 | 1994-03-30 | Apparatus for adaptively processing video signals |
CNB94190248XA CN1149496C (zh) | 1993-03-31 | 1994-03-30 | 自适应视频信号运算处理装置 |
US08/343,537 US5594679A (en) | 1993-03-31 | 1994-03-30 | Adaptive video signal processing apparatus |
AT94910573T ATE228255T1 (de) | 1993-03-31 | 1994-03-30 | Gerät zur adaptiven vidio-signalverarbeitung. |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP07476893A JP3546437B2 (ja) | 1993-03-31 | 1993-03-31 | 適応形ビデオ信号演算処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH06292178A JPH06292178A (ja) | 1994-10-18 |
JP3546437B2 true JP3546437B2 (ja) | 2004-07-28 |
Family
ID=13556799
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP07476893A Expired - Fee Related JP3546437B2 (ja) | 1993-03-31 | 1993-03-31 | 適応形ビデオ信号演算処理装置 |
Country Status (7)
Country | Link |
---|---|
US (1) | US5594679A (ja) |
EP (1) | EP0644492B1 (ja) |
JP (1) | JP3546437B2 (ja) |
CN (1) | CN1149496C (ja) |
AT (1) | ATE228255T1 (ja) |
AU (1) | AU668298B2 (ja) |
WO (1) | WO1994023384A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
USRE48845E1 (en) | 2002-04-01 | 2021-12-07 | Broadcom Corporation | Video decoding system supporting multiple standards |
Families Citing this family (55)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0714212A3 (en) * | 1994-11-21 | 1999-03-31 | SICAN, GESELLSCHAFT FÜR SILIZIUM-ANWENDUNGEN UND CAD/CAT NIEDERSACHSEN mbH | Video decoder using concurrent processing and resource sharing |
JP2657903B2 (ja) * | 1994-11-29 | 1997-09-30 | 乾彌 呉 | パイプライン式及び心収縮式の単命令多重データストリームのアレイプロセッサ及びその方法 |
KR100225690B1 (ko) * | 1995-04-18 | 1999-10-15 | 모리시다 요이치 | 상관도 연산장치, 병렬상관도 연산장치 및 상관도연산방법 |
JPH096614A (ja) * | 1995-06-21 | 1997-01-10 | Sanyo Electric Co Ltd | データ処理装置 |
US7301541B2 (en) * | 1995-08-16 | 2007-11-27 | Microunity Systems Engineering, Inc. | Programmable processor and method with wide operations |
US7395298B2 (en) * | 1995-08-31 | 2008-07-01 | Intel Corporation | Method and apparatus for performing multiply-add operations on packed data |
US6385634B1 (en) * | 1995-08-31 | 2002-05-07 | Intel Corporation | Method for performing multiply-add operations on packed data |
US5984515A (en) * | 1995-12-15 | 1999-11-16 | Intel Corporation | Computer implemented method for providing a two dimensional rotation of packed data |
AU1465497A (en) * | 1995-12-19 | 1997-07-28 | Intel Corporation | A computer system performing a two-dimensional rotation of packed data representing multimedia information |
US5825680A (en) * | 1996-06-21 | 1998-10-20 | Digital Equipment Corporation | Method and apparatus for performing fast division |
JP3092526B2 (ja) * | 1996-09-20 | 2000-09-25 | 日本電気株式会社 | 2次元逆離散コサイン変換回路 |
JPH10254839A (ja) * | 1997-03-11 | 1998-09-25 | Sony Corp | Simd制御並列プロセッサおよび演算方法 |
KR100435257B1 (ko) * | 1997-08-07 | 2004-07-16 | 삼성전자주식회사 | 영상신호 처리 시스템에서의 이미지 포맷 변환장치 및 방법 |
US5864703A (en) * | 1997-10-09 | 1999-01-26 | Mips Technologies, Inc. | Method for providing extended precision in SIMD vector arithmetic operations |
US6137916A (en) * | 1997-11-17 | 2000-10-24 | Sony Electronics, Inc. | Method and system for improved digital video data processing using 8-point discrete cosine transforms |
CN1149499C (zh) * | 1997-11-17 | 2004-05-12 | 索尼电子有限公司 | 用于采用离散变换进行数字视频数据压缩的方法和系统 |
US6215909B1 (en) | 1997-11-17 | 2001-04-10 | Sony Electronics, Inc. | Method and system for improved digital video data processing using 4-point discrete cosine transforms |
US6367003B1 (en) | 1998-03-04 | 2002-04-02 | Micron Technology, Inc. | Digital signal processor having enhanced utilization of multiply accumulate (MAC) stage and method |
JP4158864B2 (ja) | 1998-03-18 | 2008-10-01 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | マトリックスのコサイン変換を計算するためのデータ処理装置およびその方法 |
US6377970B1 (en) * | 1998-03-31 | 2002-04-23 | Intel Corporation | Method and apparatus for computing a sum of packed data elements using SIMD multiply circuitry |
US6292814B1 (en) * | 1998-06-26 | 2001-09-18 | Hitachi America, Ltd. | Methods and apparatus for implementing a sign function |
US6571268B1 (en) * | 1998-10-06 | 2003-05-27 | Texas Instruments Incorporated | Multiplier accumulator circuits |
CN1109992C (zh) * | 1998-11-26 | 2003-05-28 | 松下电器产业株式会社 | 运算装置和使用运算装置的图象处理装置 |
US6690728B1 (en) | 1999-12-28 | 2004-02-10 | Sony Corporation | Methods and apparatus for motion estimation in compressed domain |
US6671319B1 (en) | 1999-12-28 | 2003-12-30 | Sony Corporation | Methods and apparatus for motion estimation using neighboring macroblocks |
US6483876B1 (en) | 1999-12-28 | 2002-11-19 | Sony Corporation | Methods and apparatus for reduction of prediction modes in motion estimation |
US6850566B2 (en) | 2000-02-22 | 2005-02-01 | Intervideo, Inc. | Implementation of quantization for SIMD architecture |
JP2001309386A (ja) * | 2000-04-19 | 2001-11-02 | Mitsubishi Electric Corp | 画像処理装置 |
JP4686048B2 (ja) * | 2000-04-21 | 2011-05-18 | パナソニック株式会社 | 画素演算装置 |
US7039906B1 (en) | 2000-09-29 | 2006-05-02 | International Business Machines Corporation | Compiler for enabling multiple signed independent data elements per register |
US6834337B1 (en) | 2000-09-29 | 2004-12-21 | International Business Machines Corporation | System and method for enabling multiple signed independent data elements per register |
US7430578B2 (en) * | 2001-10-29 | 2008-09-30 | Intel Corporation | Method and apparatus for performing multiply-add operations on packed byte data |
US7127482B2 (en) * | 2001-11-19 | 2006-10-24 | Intel Corporation | Performance optimized approach for efficient downsampling operations |
JP4136432B2 (ja) | 2002-04-15 | 2008-08-20 | 松下電器産業株式会社 | 図形描画装置 |
FI118654B (fi) * | 2002-11-06 | 2008-01-31 | Nokia Corp | Menetelmä ja järjestelmä laskuoperaatioiden suorittamiseksi ja laite |
FI118612B (fi) * | 2002-11-06 | 2008-01-15 | Nokia Corp | Menetelmä ja järjestelmä laskuoperaatioiden suorittamiseksi ja laite |
EP1443645B1 (en) * | 2002-11-18 | 2010-01-06 | STMicroelectronics Pvt. Ltd. | Linearly scalable finite impulse response (FIR) filter |
JP4516020B2 (ja) * | 2003-08-28 | 2010-08-04 | 株式会社日立超エル・エス・アイ・システムズ | 画像処理装置 |
JP4663223B2 (ja) * | 2003-09-11 | 2011-04-06 | パナソニック株式会社 | 演算処理装置 |
TWI289992B (en) | 2003-12-03 | 2007-11-11 | Via Tech Inc | Method and device for sharing MPEG frame buffers |
KR101160640B1 (ko) * | 2003-12-30 | 2012-06-28 | 삼성전자주식회사 | 데이터 처리 시스템 및 데이터 처리 방법 |
US7558972B2 (en) | 2005-01-25 | 2009-07-07 | Panasonic Corporation | Data processing apparatus |
KR100782815B1 (ko) * | 2005-08-09 | 2007-12-06 | 삼성전자주식회사 | 인텐서티 보상을 위한 영상 디코딩 방법 및 장치 |
US7760951B2 (en) * | 2006-02-14 | 2010-07-20 | Broadcom Corporation | Method and system for pipelined processing in an integrated embedded image and video accelerator |
CN101207818B (zh) * | 2006-12-20 | 2010-08-11 | 普诚科技股份有限公司 | 数据转换装置 |
US8589469B2 (en) * | 2007-01-10 | 2013-11-19 | Analog Devices Technology | Bandwidth efficient instruction-driven multiplication engine |
CN101114020B (zh) * | 2007-09-12 | 2011-04-13 | 电子科技大学 | 雷达信号处理中动态加载的asic实现方法 |
US8181003B2 (en) * | 2008-05-29 | 2012-05-15 | Axis Semiconductor, Inc. | Instruction set design, control and communication in programmable microprocessor cores and the like |
US8755515B1 (en) | 2008-09-29 | 2014-06-17 | Wai Wu | Parallel signal processing system and method |
CN101989254B (zh) * | 2009-08-05 | 2012-03-14 | 鸿富锦精密工业(深圳)有限公司 | 离散余弦转换及其逆转换电路 |
JP5530198B2 (ja) | 2009-11-20 | 2014-06-25 | パナソニック株式会社 | 画像符号化方法、復号化方法、装置 |
GB2501145A (en) * | 2012-04-12 | 2013-10-16 | Supercell Oy | Rendering and modifying objects on a graphical user interface |
CN103067718B (zh) * | 2013-01-30 | 2015-10-14 | 上海交通大学 | 适用于数字视频编解码的一维离散余弦逆变换模块电路 |
CN105468335B (zh) * | 2015-11-24 | 2017-04-12 | 中国科学院计算技术研究所 | 流水级运算装置、数据处理方法及片上网络芯片 |
US10565036B1 (en) | 2019-02-14 | 2020-02-18 | Axis Semiconductor, Inc. | Method of synchronizing host and coprocessor operations via FIFO communication |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6491272A (en) * | 1987-10-01 | 1989-04-10 | Nec Corp | Arithmetic circuit |
US4996661A (en) * | 1988-10-05 | 1991-02-26 | United Technologies Corporation | Single chip complex floating point numeric processor |
JPH0827708B2 (ja) * | 1990-04-04 | 1996-03-21 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Alu状況判定装置 |
GB2243469B (en) * | 1990-04-27 | 1993-10-20 | Pioneer Electronic Corp | Digital signal processor |
JPH0679315B2 (ja) * | 1990-04-27 | 1994-10-05 | パイオニア株式会社 | ディジタル信号プロセッサ |
US5179531A (en) * | 1990-04-27 | 1993-01-12 | Pioneer Electronic Corporation | Accelerated digital signal processor |
JPH0484317A (ja) * | 1990-07-27 | 1992-03-17 | Nec Corp | 算術論理演算ユニット |
JP2959104B2 (ja) * | 1990-10-31 | 1999-10-06 | 日本電気株式会社 | 信号処理プロセッサ |
JPH04252372A (ja) * | 1991-01-28 | 1992-09-08 | Nippon Telegr & Teleph Corp <Ntt> | 可変パイプライン構造 |
-
1993
- 1993-03-31 JP JP07476893A patent/JP3546437B2/ja not_active Expired - Fee Related
-
1994
- 1994-03-30 US US08/343,537 patent/US5594679A/en not_active Expired - Lifetime
- 1994-03-30 AT AT94910573T patent/ATE228255T1/de not_active IP Right Cessation
- 1994-03-30 AU AU62921/94A patent/AU668298B2/en not_active Ceased
- 1994-03-30 EP EP94910573A patent/EP0644492B1/en not_active Expired - Lifetime
- 1994-03-30 CN CNB94190248XA patent/CN1149496C/zh not_active Expired - Fee Related
- 1994-03-30 WO PCT/JP1994/000525 patent/WO1994023384A1/ja active IP Right Grant
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
USRE48845E1 (en) | 2002-04-01 | 2021-12-07 | Broadcom Corporation | Video decoding system supporting multiple standards |
Also Published As
Publication number | Publication date |
---|---|
AU668298B2 (en) | 1996-04-26 |
EP0644492A4 (en) | 1997-07-02 |
EP0644492B1 (en) | 2002-11-20 |
WO1994023384A1 (en) | 1994-10-13 |
AU6292194A (en) | 1994-10-24 |
CN1149496C (zh) | 2004-05-12 |
JPH06292178A (ja) | 1994-10-18 |
CN1108865A (zh) | 1995-09-20 |
EP0644492A1 (en) | 1995-03-22 |
US5594679A (en) | 1997-01-14 |
ATE228255T1 (de) | 2002-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3546437B2 (ja) | 適応形ビデオ信号演算処理装置 | |
KR100715770B1 (ko) | 연산을 수행하는 방법 및 시스템 및 장치 | |
KR100714358B1 (ko) | 연산을 수행하기 위한 방법, 시스템 및 장치 | |
US7127482B2 (en) | Performance optimized approach for efficient downsampling operations | |
EP0506111B1 (en) | DCT/IDCT processor and data processing method | |
US5452466A (en) | Method and apparatus for preforming DCT and IDCT transforms on data signals with a preprocessor, a post-processor, and a controllable shuffle-exchange unit connected between the pre-processor and post-processor | |
JPH0526229B2 (ja) | ||
CN100531393C (zh) | 以管线架构应用于离散余弦变换与反离散余弦变换的方法 | |
US5563813A (en) | Area/time-efficient motion estimation micro core | |
WO1993023816A1 (en) | System and method for cross correlation with application to video motion vector estimation | |
JPH04128982A (ja) | プロセッサエレメント、プロセッシングユニット、プロセッサ、及びその演算処理方法 | |
KR20010067275A (ko) | 벡터화 데이터에 대한 연산 동작 방법 및 장치 | |
JP2001331474A (ja) | 単一命令複数データ指示を備えた逆離散コサイン変換の実行方法、圧縮データの伸張方法、圧縮データ信号の伸張装置、並びに、コンピュータ・プログラム製品 | |
JP3401823B2 (ja) | 画像コーデック用プロセッサ | |
JPH06149861A (ja) | Dct及び逆dct演算装置並びにその演算方法 | |
Hsiao et al. | A cost-efficient and fully-pipelinable architecture for DCT/IDCT | |
CN115713104A (zh) | 用于神经网络的数据处理电路、神经网络电路和处理器 | |
Maruyama et al. | VLSI architecture and implementation of a multifunction, forward/inverse discrete cosine transform processor | |
JP4409526B2 (ja) | オプティカルフロープロセッサ | |
Kwan et al. | Implementation of DSP-RAM: an architecture for parallel digital signal processing in memory | |
Demassieux et al. | Orthogonal transforms | |
US6374280B1 (en) | Computationally efficient inverse discrete cosine transform method and apparatus | |
CN1422402A (zh) | 在通用处理器中有效多输入累加的最优化乘法器结构 | |
US6201895B1 (en) | Orthogonal converting apparatus | |
KR100434391B1 (ko) | 디에스피 프로세서 및 마이크로프로세서의 실시간영상데이터 처리를 위한 연산회로 및 그 연산방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040116 |
|
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: 20040323 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040405 |
|
LAPS | Cancellation because of no payment of annual fees |