(57)【特許請求の範囲】
【請求項１】
汎用演算回路と専用演算回路とを有し、前記汎用演算回路は複数のベクトル命令を実装し、前記専用演算回路とともに前記ベクトル命令に基づくパイプライン演算を実行する演算装置であって、
前記汎用演算回路は、
前記専用演算回路の演算内容を通知する専用パイプライン演算回路選択信号と、
前記汎用演算回路における複数個の演算結果と、
前記複数個の演算結果の出力タイミングを通知する汎用演算回路出力データイネーブル信号と、を前記専用演算回路に出力し、
前記専用演算回路における複数個の専用演算結果と、
前記複数個の専用演算結果の出力タイミングと出力データの終了タイミングを認識する専用演算回路出力データイネーブル信号と、を前記専用演算回路から入力し、
前記専用演算回路は、
パイプライン段数通知信号を出力すると共に、前記汎用演算回路における前記複数の演算結果に対するパイプライン演算を実行する、複数個の専用パイプライン演算回路と、
前記汎用演算回路における前記専用パイプライン演算回路選択信号に従って、前記複数の専用パイプライン演算回路それぞれから出力された専用演算結果の中から１つの専用演算結果を任意に選択し、前記任意に選択された専用演算結果を前記複数の専用演算結果として前記汎用演算回路に出力するデータ選択回路と、
前記複数の専用パイプライン演算回路のそれぞれから出力されたパイプライン段数通知信号、および前記汎用演算回路の前記専用パイプライン演算回路選択信号と前記汎用演算回路出力データイネーブル信号の入力を受け、専用演算回路出力データイネーブル信号を前記汎用演算回路に出力する制御回路と、を備えたものであることを特徴とする演算装置。
【請求項２】
汎用演算回路と専用演算回路とを有し、前記汎用演算回路は複数のベクトル命令を実装し、前記専用演算回路とともに前記ベクトル命令に基づくパイプライン演算を実行する演算装置であって、
前記汎用演算回路は、
第１の起動信号、第２の起動信号、第１の演算回路選択信号、第２の演算回路選択信号、専用パイプライン演算回路選択信号および汎用演算回路出力データイネーブル信号を出力し、専用演算回路出力データイネーブル信号の入力を受けるプログラム制御回路と、
前記プログラム制御回路からの前記第１の起動信号に基づいて、Ｍ個の第１のアドレスを連続的に出力する第１のアドレス発生器と、
前記第１のアドレス発生器からの前記第１のアドレスに基づいて、Ｍ個の第１のデータを出力する第１のデータメモリと、
前記プログラム制御回路からの前記第１の演算回路選択信号に従って、前記第１のデータメモリからの前記第１のデータに対するパイプライン演算を実行してＭ個の第１の演算結果を順次出力する第１のパイプライン演算回路と、
前記プログラム制御回路からの前記第２の演算回路選択信号に従って、前記専用演算回路からの第２の演算結果に対するパイプライン演算を実行してＭ個の第３の演算結果を順次出力する第２のパイプライン演算回路と、
前記プログラム制御回路からの前記第２の起動信号に基づいて、Ｍ個の第２のアドレスを連続的に出力する第２のアドレス発生器と、
前記第２のアドレス発生器からの前記第２のアドレスに基づいて、前記第２のパイプライン演算回路からのＭ個の前記第３の演算結果を格納する第２のデータメモリと、を備え、
前記専用演算回路は、
パイプライン段数通知信号を出力し、前記汎用演算回路における前記第１のパイプライン演算回路からの前記第１の演算結果に対するパイプライン演算を実行してそれぞれがＮ個ある複数の専用パイプライン演算回路と、
前記汎用演算回路における前記プログラム制御回路からの前記専用パイプライン演算回路選択信号に従って、前記Ｎ個の専用パイプライン演算回路のそれぞれから出力された専用演算結果の中から１つの、第ｎの専用演算結果を選択して、この第ｎの専用演算結果を前記第２の演算結果として前記汎用演算回路の前記第２のパイプライン演算回路に出力するデータ選択回路と、
前記複数の専用パイプライン演算回路のそれぞれから出力されたパイプライン段数通知信号、および前記汎用演算回路の前記プログラム制御回路からの前記専用パイプライン演算回路選択信号と前記汎用演算回路出力データイネーブル信号の入力を受け、専用演算回路出力データイネーブル信号を前記汎用演算回路の前記プログラム制御回路に出力する制御回路と、を備えたものであることを特徴とする演算装置。
【請求項３】
請求項２に記載の演算装置において、
前記汎用演算回路における第１のパイプライン演算回路は、
前記プログラム制御回路からの前記第１の演算回路選択信号に基づいて、前記第１のデータメモリからの前記第１のデータを入力とし、第２のデータを出力とする第１のレジスタと、
あらかじめ格納されている第３のデータを出力する第２のレジスタと、
前記第１のレジスタからの前記第２のデータと前記第２のレジスタからの前記第３のデータとの入力を受け、それらの乗算結果を第４のデータとして出力する乗算器と、
前記乗算器からの第４のデータを入力とし、第５のデータを出力する第３のレジスタと、
あらかじめ格納されている第６のデータを出力する第４のレジスタと、
前記第３のレジスタからの前記第５のデータと前記第４のレジスタからの前記第６のデータとの入力を受け、これらの算術結果を第７のデータとして出力する算術演算器と、
前記算術演算器からの前記第７のデータを入力とし、本第１のパイプライン演算回路の出力となる第１の演算結果を出力する第５のレジスタと、を備え、
前記汎用演算回路における第２のパイプライン演算回路は、前記プログラム制御回路からの第２の演算回路選択信号に基づいて、前記専用演算回路からの第２の演算結果を入力とし、本第２のパイプライン演算回路の出力となる第３の演算結果を出力する第６のレジスタを備え、
前記専用演算回路における特定の専用パイプライン演算回路は、前記第１のパイプライン演算回路からの前記第１の演算結果を入力とし、１次元の逆離散コサイン変換を施して本専用パイプライン演算回路の出力となる専用演算結果を出力するＩＤＣＴ（Ｉｎｖｅｒｓｉｏｎ Ｄｉｓｃｒｅｔｅ Ｃｏｓｉｎｅ Ｔｒａｎｓｆｏｒｍ）演算器を備えたものであることを特徴とする演算装置。
【請求項４】
請求項２に記載の演算装置において、
前記汎用演算回路における第１のパイプライン演算回路は、前記プログラム制御回路からの第１の演算回路選択信号に基づいて、前記第１のデータメモリからの第１のデータを入力とし、本第１のパイプライン演算回路の出力となる第１の演算結果を出力とする第１のレジスタを備え、
前記汎用演算回路における第２のパイプライン演算回路は、
前記プログラム制御回路からの第２の演算回路選択信号に基づいて、前記専用演算回路からの第２の演算結果を入力とし、第２のデータを出力とする第２のレジスタと、
あらかじめ格納されている第３のデータを出力する第３のレジスタと、
前記第２のレジスタからの前記第２のデータと前記第３のレジスタからの前記第３のデータとの入力を受け、これらの算術結果を第４のデータとして出力する算術演算器と、
前記算術演算器からの前記第４のデータを入力とし、第５のデータを出力する第４のレジスタと、
あらかじめ格納されている第６のデータを出力する第５のレジスタと、
前記第４のレジスタからの前記第５のデータと前記第５のレジスタからの前記第６のデータを入力とし、それらの乗算結果を第７のデータとして出力する乗算器と、
前記乗算器からの前記第７のデータを入力とし、本第２のパイプライン演算回路の出力となる第３の演算結果を出力する第６のレジスタと、を備え、
前記専用演算回路における特定の専用パイプライン演算回路は、前記汎用演算回路の第１のパイプライン演算回路からの第１の演算結果を入力とし、１次元の離散コサイン変換を施して本専用パイプライン演算回路の出力となる第２の専用演算結果を出力するＤＣＴ（Ｄｉｓｃｒｅｔｅ Ｃｏｓｉｎｅ Ｔｒａｎｓｆｏｒｍ）演算器を備えたものであることを特徴とする演算装置。
【請求項５】
請求項３又は請求項４に記載の演算装置において、
前記算術演算器は、
第１の入力と第２の入力とを受け、その加算結果を出力する加算器と、
前記第１の入力と前記第２の入力とを受け、前記第１の入力から前記第２の入力の減算結果を出力する減算器と、
前記加算器の加算結果、前記減算器の減算結果、及び０を入力とし、それらの中から選択したデータを出力とするものであって、前記第１の入力が正数の場合は前記加算器の加算結果を選択出力し、前記第１の入力が０の場合は０を選択出力し、その他の場合は前記減算器の減算結果を選択出力する出力選択器と、
を備えたものであることを特徴とする演算装置。
【請求項６】
請求項２に記載の演算装置を２個搭載し、それぞれを第１の演算装置、第２の演算装置とする画像処理装置であって、
第１の専用パイプライン演算回路として、前記第１の演算結果を入力とし、この入力に対して１次元の離散コサイン変換を施して第１の専用演算結果を出力するＤＣＴ演算回路と、第２の専用パイプライン演算回路として、前記第１の演算結果を入力とし、この入力に対して１次元の逆離散コサイン変換を施して第２の専用演算結果を出力するＩＤＣＴ演算回路とを有する前記第１の演算装置と、
第１の専用パイプライン演算回路として前記第１の演算結果を入力とし、この入力に対してハーフペル演算を施して第１の専用演算結果を出力するハーフペル演算回路と、第２の専用パイプライン演算回路として、前記第１の演算結果を入力とし、この入力に対してポストノイズ除去フィルタを施して第２の専用演算結果を出力するポストノイズ除去フィルタ演算回路とを有する前記第２の演算装置と、
ホストマイコンとのデータの受け渡しをするホストインタフェースと、
画像ＡＤ変換器から画像データを入力しプリスケーリングを施して、ＣＩＦ（Ｃｏｍｍｏｎ Ｉｎｔｅｒｎｅｔ Ｆｉｌｅ）データもしくはＱＣＩＦ（Ｑｕａｄｒａｔｕｒｅ Ｃｏｍｍｏｎ Ｉｎｔｅｒｎｅｔ Ｆｉｌｅ）データを出力し、またＣＩＦデータもしくはＱＣＩＦデータの入力を受けてポストスケーリングを施して画像ＤＡ変換器へ出力するビデオインタフェースと、
大容量メモリとの間で、前記ホストインタフェースを介した前記ホストマイコンからのデータ入出力、前記第１の演算装置における第１のデータメモリもしくは第２のデータメモリからのデータの入出力、前記第２の演算装置における第１のデータメモリもしくは第２のデータメモリからのデータの入出力、および前記ビデオインタフェースからの前記ＣＩＦデータもしくはＱＣＩＦデータの入出力を制御するＤＭＡ（Ｄｉｒｅｃｔ Ｍｅｍｏｒｙ Ａｃｃｅｓｓ）制御回路と、
前記第１の演算装置と前記第２の演算装置との間でデータを転送する機能を有する共有メモリとを備えたものであることを特徴とする画像処理装置。
【発明の詳細な説明】
【０００１】
技術分野
本発明は、マルチメディア信号処理を高速に実行する演算装置及びこれを用いた画像処理装置に関するものである。
【０００２】
背景技術
従来のプログラム制御方式のプロセッサ（演算装置）は、ベクトル命令を実装することにより、その高性能化を実現している。図１４に示す従来の演算装置は、ベクトル命令を解読して第１の起動信号と第２の起動信号を出力するプログラム制御回路１４０１と、前記第１の起動信号により第１のアドレスを出力する第１のアドレス発生器１４０２と、前記第１のアドレスに基づいて第１のデータを出力する第１のデータメモリ１４０３と、前記第１のデータに基づいてパイプライン演算を実行するパイプライン演算回路１４０４と、前記第２の起動信号により第２のアドレスを出力する第２のアドレス発生器１４０５と、前記第２のアドレスに基づいて前記パイプライン演算回路１４０４による演算結果を格納する第２のデータメモリ１４０６とを備えるものである。
【０００３】
図１４に示すように、この演算装置は、プログラム制御回路１４０１でベクトル命令が解読されると、プログラム制御回路１４０１から第１の起動信号が出力され、この第１の起動信号により第１のアドレス発生器１４０２からＮ個のアドレス発生を開始する。このＮ個のアドレスが入力される第１のデータメモリ１４０３は、パイプライン演算回路１４０４へＮ個のデータを供給する。パイプライン演算回路１４０４ではこのＮ個のデータ供給を受けてパイプライン演算処理を実行する。
【０００４】
また、プログラム制御回路１４０１は、パイプライン演算回路１４０４からの先頭処理データの出力タイミングに合わせて第２の起動信号を出力し、この第２の起動信号により第２のアドレス発生器１４０５からはＮ個のアドレスを第２のデータメモリ１４０６に出力する。これにより、第２のデータメモリ１４０６ではパイプライン演算回路１４０４から出力される演算結果を順次に格納する。
【０００５】
そして、第１のアドレス発生器１４０２、および第２のアドレス発生器１４０５は、Ｎ個のデータ出力を終えると、それぞれ第１の終了信号、第２の終了信号をプログラム制御回路１４０１へ出力して、これによってベクトル命令を終了する。
【０００６】
ところで、リアルタイム画像処理等、非常に高い演算性能が要求されるアプリケーションに対しては、汎用のパイプライン演算回路ではその演算性能が不足する場合がある。このような場合、特定の高負荷演算を、専用のパイプライン演算回路（例えば、ＤＣＴ（Ｄｉｓｃｒｅｔｅ Ｃｏｓｉｎｅ Ｔｒａｎｓｆｏｒｍ）演算回路）に処理させ、それ以外の処理を汎用演算回路で処理するというハイブリッド構成により演算性能を向上させ、リアルタイム性を確保している。しかしながら、対象とする処理内容に依存して、必要となる専用のパイプライン演算回路が異なるため、プログラム制御回路でのタイミング設計が専用のパイプライン演算回路に固有となり、言い換えれば、アプリケーションに固有なものとなってしまうという問題があった。これでは今後のＩＰ（Ｉｎｔｅｌｌｅｃｔｕａｌ  Ｐｒｏｐｅｒｔｙ）化時代を考えた場合、用途に応じてプロセッサの最も複雑な部分であるプログラム制御回路の変更を伴うのは、大きな課題である。
【０００７】
本発明は、かかる課題に鑑みなされたものであって、汎用演算回路と専用演算回路に分離して、専用演算回路の用途毎の変更が汎用演算回路へ影響を与えないように構成することで、さまざまなアプリケーションに適用することのできる演算装置およびこれを用いた画像処理装置を実現するものである。
【０００８】
発明の開示
本発明に係る演算装置（請求項１）は、汎用演算回路と専用演算回路とを有し、前記汎用演算回路は複数のベクトル命令を実装し、前記専用演算回路とともに前記ベクトル命令に基づくパイプライン演算を実行する演算装置であって、前記汎用演算回路は、前記専用演算回路の演算内容を通知する専用パイプライン演算回路選択信号と、前記汎用演算回路における複数個の演算結果と、前記複数個の演算結果の出力タイミングを通知する汎用演算回路出力データイネーブル信号と、を前記専用演算回路に出力し、前記専用演算回路における複数個の専用演算結果と、前記複数個の専用演算結果の出力タイミングと出力データの終了タイミングを認識する専用演算回路出力データイネーブル信号と、を前記専用演算回路から入力し、前記専用演算回路は、パイプライン段数通知信号を出力すると共に、前記汎用演算回路における前記複数の演算結果に対するパイプライン演算を実行する、複数個の専用パイプライン演算回路と、前記汎用演算回路における前記専用パイプライン演算回路選択信号に従って、前記複数の専用パイプライン演算回路それぞれから出力された専用演算結果の中から１つの専用演算結果を任意に選択し、前記任意に選択された専用演算結果を前記複数の専用演算結果として前記汎用演算回路に出力するデータ選択回路と、前記複数の専用パイプライン演算回路のそれぞれから出力されたパイプライン段数通知信号、および前記汎用演算回路の前記専用パイプライン演算回路選択信号と前記汎用演算回路出力データイネーブル信号の入力を受け、専用演算回路出力データイネーブル信号を前記汎用演算回路に出力する制御回路と、を備えたものであることを特徴とするものである。
【０００９】
以上のように構成することにより、汎用演算回路の構成に関係なく、プログラム制御回路を変更することなく、用途毎に適した任意の専用パイプライン演算回路を搭載することができ、その結果、さまざまなアプリケーションに適用することのできる演算装置を実現することができるという効果がある。
【００１０】
本発明に係る演算装置（請求項２）は、汎用演算回路と専用演算回路とを有し、前記汎用演算回路は複数のベクトル命令を実装し、前記専用演算回路とともに前記ベクトル命令に基づくパイプライン演算を実行する演算装置であって、前記汎用演算回路は、第１の起動信号、第２の起動信号、第１の演算回路選択信号、第２の演算回路選択信号、専用パイプライン演算回路選択信号および汎用演算回路出力データイネーブル信号を出力し、専用演算回路出力データイネーブル信号の入力を受けるプログラム制御回路と、前記プログラム制御回路からの前記第１の起動信号に基づいて、Ｍ個の第１のアドレスを連続的に出力する第１のアドレス発生器と、前記第１のアドレス発生器からの前記第１のアドレスに基づいて、Ｍ個の第１のデータを出力する第１のデータメモリと、前記プログラム制御回路からの前記第１の演算回路選択信号に従って、前記第１のデータメモリからの前記第１のデータに対するパイプライン演算を実行してＭ個の第１の演算結果を順次出力する第１のパイプライン演算回路と、前記プログラム制御回路からの前記第２の演算回路選択信号に従って、前記専用演算回路からの第２の演算結果に対するパイプライン演算を実行してＭ個の第３の演算結果を順次出力する第２のパイプライン演算回路と、前記プログラム制御回路からの前記第２の起動信号に基づいて、Ｍ個の第２のアドレスを連続的に出力する第２のアドレス発生器と、前記第２のアドレス発生器からの前記第２のアドレスに基づいて、前記第２のパイプライン演算回路からのＭ個の前記第３の演算結果を格納する第２のデータメモリと、を備え、前記専用演算回路は、パイプライン段数通知信号を出力し、前記汎用演算回路における前記第１のパイプライン演算回路からの前記第１の演算結果に対するパイプライン演算を実行してそれぞれがＮ個ある複数の専用パイプライン演算回路と、前記汎用演算回路における前記プログラム制御回路からの前記専用パイプライン演算回路選択信号に従って、前記複数の専用パイプライン演算回路のそれぞれから出力された専用演算結果の中から１つの、第ｎの専用演算結果を選択して、この第ｎの専用演算結果を前記第２の演算結果として前記汎用演算回路の前記第２のパイプライン演算回路に出力するデータ選択回路と、前記複数の専用パイプライン演算回路のそれぞれから出力されたパイプライン段数通知信号、および前記汎用演算回路の前記プログラム制御回路からの前記専用パイプライン演算回路選択信号と前記汎用演算回路出力データイネーブル信号の入力を受け、専用演算回路出力データイネーブル信号を前記汎用演算回路の前記プログラム制御回路に出力する制御回路と、を備えたものであることを特徴とするものである。
【００１１】
以上のように構成することにより、汎用演算回路と専用演算回路に分離し、専用演算回路の用途毎の変更が汎用演算回路でのパイプライン演算に影響を与えないように、汎用演算回路中のプログラム制御回路でのタイミング制御に必要な専用演算回路固有の情報である専用演算回路出力データイネーブルを専用演算回路から汎用演算回路へ通知し、汎用演算回路中のプログラム制御回路はその通知情報である専用演算回路出力データイネーブル信号に基づいて、パイプライン演算回路の出力タイミングを制御する構成とした。すなわち、前記汎用演算回路におけるプログラム制御回路は、ベクトル命令の解読後、第１の起動信号をアサートし、この第１の起動信号のアサート後、第１のパイプライン演算回路のパイプライン段数に基づいてこの第１のパイプライン演算回路からの第１番目の第１の演算結果の出力タイミングを検出する。これと同時に前記プログラム制御回路は、汎用演算回路出力データイネーブルをアサートし、前記第１の起動信号のアサート後でＭサイクル後に前記第１の起動信号をネゲートし、この第１の起動信号のネゲート後、前記第１のパイプライン演算回路のパイプライン段数に基づいて前記第１のパイプライン演算回路からの第Ｍ番目の前記第１の演算結果の出力タイミングを検出すると同時に、前記汎用演算回路出力データイネーブル信号をネゲートする。前記専用演算回路における制御回路は、前記汎用演算回路出力データイネーブル信号がアサート後、専用パイプライン演算回路選択信号に従って選択された第ｎのパイプライン段数通知信号に基づいてこの第ｎの専用パイプライン演算回路からの第１番目の第ｎの専用演算結果の出力タイミングを検出する。これと同時に制御回路は、専用演算回路出力データイネーブル信号をアサートし、前記汎用演算回路出力データイネーブル信号がネゲート後、前記専用パイプライン演算回路選択信号に従って選択された前記第ｎのパイプライン段数通知信号に基づいて前記第ｎの専用パイプライン演算回路からの第Ｍ番目の前記第ｎの専用演算結果の出力タイミングを検出すると同時に、前記専用演算回路出力データイネーブル信号をネゲートする。そして、前記プログラム制御回路は、前記専用演算回路出力データイネーブル信号のアサート後、前記第２のパイプライン演算回路のパイプライン段数に基づいて前記第２のパイプライン演算回路からの前記第３の演算結果の第１番目の出力タイミングを検出すると同時に、前記第２の起動信号をアサートし、前記専用演算回路出力データイネーブル信号のネゲート後、前記第２のパイプライン演算回路のパイプライン段数に基づいて前記第２のパイプライン演算回路からの第Ｍ番目の前記第３の演算結果の出力タイミングを検出すると同時に、前記第２の起動信号をネゲートするようにしている。したがって、本発明の演算装置は、プログラム制御回路を変更することなく、用途毎に適した任意の専用パイプライン演算回路を搭載することができ、その結果、さまざまなアプリケーションに適用することのできる演算装置を実現することができるという効果がある。
【００１２】
本発明に係る演算装置（請求項３）は、請求項２に記載の演算装置において、前記汎用演算回路における第１のパイプライン演算回路は、前記プログラム制御回路からの前記第１の演算回路選択信号に基づいて、前記第１のデータメモリからの前記第１のデータを入力とし、第２のデータを出力とする第１のレジスタと、あらかじめ格納されている第３のデータを出力する第２のレジスタと、前記第１のレジスタからの前記第２のデータと前記第２のレジスタからの前記第３のデータとの入力を受け、それらの乗算結果を第４のデータとして出力する乗算器と、前記乗算器からの第４のデータを入力とし、第５のデータを出力する第３のレジスタと、あらかじめ格納されている第６のデータを出力する第４のレジスタと、前記第３のレジスタからの前記第５のデータと前記第４のレジスタからの前記第６のデータとの入力を受け、これらの算術結果を第７のデータとして出力する算術演算器と、前記算術演算器からの前記第７のデータを入力とし、本第１のパイプライン演算回路の出力となる第１の演算結果を出力する第５のレジスタと、を備え、前記汎用演算回路における第２のパイプライン演算回路は、前記プログラム制御回路からの第２の演算回路選択信号に基づいて、前記専用演算回路からの第２の演算結果を入力とし、本第２のパイプライン演算回路の出力となる第３の演算結果を出力する第６のレジスタを備え、前記専用演算回路における特定の専用パイプライン演算回路は、前記第１のパイプライン演算回路からの前記第１の演算結果を入力とし、１次元の逆離散コサイン変換を施して本専用パイプライン演算回路の出力となる専用演算結果を出力するＩＤＣＴ（Ｉｎｖｅｒｓｉｏｎ Ｄｉｓｃｒｅｔｅ Ｃｏｓｉｎｅ Ｔｒａｎｓｆｏｒｍ）演算器を備えたものであることを特徴とするものである。
【００１３】
以上のように構成することにより、汎用演算回路における第１パイプライン演算回路によって逆量子化演算を行い、専用演算回路における専用パイプライン演算回路によって逆ＤＣＴ演算を行うようにしており、これにより、逆量子化と逆ＤＣＴ演算を連続してパイプライン演算することができるという効果を有する。
【００１４】
本発明に係る演算装置（請求項４）は、請求項２に記載の演算装置において、前記汎用演算回路における第１のパイプライン演算回路は、前記プログラム制御回路からの第１の演算回路選択信号に基づいて、前記第１のデータメモリからの第１のデータを入力とし、本第１のパイプライン演算回路の出力となる第１の演算結果を出力とする第１のレジスタを備え、前記汎用演算回路における第２のパイプライン演算回路は、前記プログラム制御回路からの第２の演算回路選択信号に基づいて、前記専用演算回路からの第２の演算結果を入力とし、第２のデータを出力とする第２のレジスタと、あらかじめ格納されている第３のデータを出力する第３のレジスタと、前記第２のレジスタからの前記第２のデータと前記第３のレジスタからの前記第３のデータとの入力を受け、これらの算術結果を第４のデータとして出力する算術演算器と、前記算術演算器からの前記第４のデータを入力とし、第５のデータを出力する第４のレジスタと、あらかじめ格納されている第６のデータを出力する第５のレジスタと、前記第４のレジスタからの前記第５のデータと前記第５のレジスタからの前記第６のデータを入力とし、それらの乗算結果を第７のデータとして出力する乗算器と、前記乗算器からの前記第７のデータを入力とし、本第２のパイプライン演算回路の出力となる第３の演算結果を出力する第６のレジスタと、を備え、前記専用演算回路における特定の専用パイプライン演算回路は、前記汎用演算回路の第１のパイプライン演算回路からの第１の演算結果を入力とし、１次元の離散コサイン変換を施して本専用パイプライン演算回路の出力となる第２の専用演算結果を出力するＤＣＴ（Ｄｉｓｃｒｅｔｅ Ｃｏｓｉｎｅ Ｔｒａｎｓｆｏｒｍ）演算器を備えたものであることを特徴とするものである。
【００１５】
以上のように構成することにより、汎用演算回路における第２のパイプライン演算回路によって量子化演算を行い、専用演算回路における専用パイプライン演算回路によってＤＣＴ演算を行うようにしており、これにより、ＤＣＴ演算と量子化演算を連続してパイプライン演算することができるという効果を有する。
【００１６】
本発明に係る演算装置（請求項５）は、請求項３または請求項４に記載の演算装置において、前記算術演算器は、第１の入力と第２の入力とを受け、その加算結果を出力する加算器と、前記第１の入力と前記第２の入力とを受け、前記第１の入力から前記第２の入力の減算結果を出力する減算器と、前記加算器の加算結果、前記減算器の減算結果、及び０を入力とし、それらの中から選択したデータを出力とするものであって、前記第１の入力が正数の場合は前記加算器の加算結果を選択出力し、前記第１の入力が０の場合は０を選択出力し、その他の場合は前記減算器の減算結果を選択出力する出力選択器と、を備えたものであることを特徴とするものである。
【００１７】
以上のように構成することにより、汎用演算回路における第１パイプライン演算回路によって逆量子化演算を行い、専用演算回路における専用パイプライン演算回路によって逆ＤＣＴ演算を行うようにしており、これにより、逆量子化と逆ＤＣＴ演算を連続してパイプライン演算することができるという効果を有する。
【００１８】
本発明に係る画像処理装置（請求項６）は、請求項２に記載の演算装置を複数搭載した画像処理装置であって、第１の専用パイプライン演算回路として、前記第１の演算結果を入力とし、この入力に対して１次元の離散コサイン変換を施して第１の専用演算結果を出力するＤＣＴ演算回路と、第２の専用パイプライン演算回路として、前記第１の演算結果を入力とし、この入力に対して１次元の逆離散コサイン変換を施して第２の専用演算結果を出力するＩＤＣＴ演算回路とを有する第１の演算装置と、第１の専用パイプライン演算回路として前記第１の演算結果を入力とし、この入力に対してハーフペル演算を施して第１の専用演算結果を出力するハーフペル演算回路と、第２の専用パイプライン演算回路として、前記第１の演算結果を入力とし、この入力に対してポストノイズ除去フィルタを施して第２の専用演算結果を出力するポストノイズ除去フィルタ演算回路とを有する第２の演算装置と、ホストマイコンとのデータの受け渡しをするホストインタフェースと、画像ＡＤ変換器から画像データを入力しプリスケーリングを施して、ＣＩＦ（Ｃｏｍｍｏｎ Ｉｎｔｅｒｎｅｔ Ｆｉｌｅ）データもしくはＱＣＩＦ（Ｑｕａｄｒａｔｕｒｅ Ｃｏｍｍｏｎ Ｉｎｔｅｒｎｅｔ Ｆｉｌｅ）データを出力し、またＣＩＦデータもしくはＱＣＩＦデータの入力を受けてポストスケーリングを施して画像ＤＡ変換器へ出力するビデオインタフェースと、大容量メモリとの間で、前記ホストインタフェースを介した前記ホストマイコンからのデータ入出力、前記第１の演算装置における第１のデータメモリもしくは第２のデータメモリからのデータの入出力、前記第２の演算装置における第１のデータメモリもしくは第２のデータメモリからのデータの入出力、および前記ビデオインタフェースからの前記ＣＩＦデータもしくはＱＣＩＦデータの入出力を制御するＤＭＡ（Ｄｉｒｅｃｔ Ｍｅｍｏｒｙ Ａｃｃｅｓｓ）制御回路と、前記第１の演算装置と前記第２の演算装置との間でデータを転送する機能を有する共有メモリとを備えたものであることを特徴とするものである。
【００１９】
以上のように構成することにより、汎用演算回路における第２のパイプライン演算回路によって量子化演算を行い、専用演算回路における専用パイプライン演算回路によってＤＣＴ演算を行うようにしており、これにより、ＤＣＴ演算と量子化演算を連続してパイプライン演算することができるという効果を有する。また、汎用演算回路と専用演算回路とを含む上記演算装置を複数搭載し、第１の専用演算回路はＤＣＴ演算回路とＩＤＣＴ演算回路とを備え、第２の専用演算回路はポストノイズ除去フィルタ演算回路とハーフペル演算回路とを備えているので、本発明の画像処理装置は、エンコーダ動作のみを実行した場合はエンコーダ装置として働き、デコーダ動作のみを実行した場合はデコーダ装置として働き、さらにエンコーダ動作とデコーダ動作を時分割に実行した場合はコーデック装置として働くという画像処理装置を実現することができるという効果がある。
【００２０】
発明を実施するための最良の形態
以下、本発明の実施の形態について、図１から図８を用いて説明する。尚、ここで示す実施の形態はあくまでも一例であって、必ずしもこの実施の形態に限定されるものではない。
【００２１】
実施の形態１．
図１は、本発明の実施の形態１による演算装置の構成を示すブロック図である。
実施の形態１に係る演算装置は、ベクトル命令を搭載したプログラム制御型のプロセッサであり、図１に示すように、汎用演算回路１０１と専用演算回路１０２とに分離し、汎用演算回路１０１は、プログラム制御回路１０３、第１のアドレス発生器１０４、第１のデータメモリ１０５、第１のパイプライン演算回路１０６、第２のアドレス発生器１１３、第２のデータメモリ１１４、および第２のパイプライン演算回路１１２を備えており、また、専用演算回路１０２は、制御回路１１５、および用途毎の高負荷演算に特化した、第１の専用パイプライン演算回路１０７、第２の専用パイプライン演算回路１０８、第３の専用パイプライン演算回路１０９、…、第Ｎの専用パイプライン演算回路１１０を備えるものである。
【００２２】
プログラム制御回路１０３は、プログラムメモリ、命令デコーダ、シーケンサから構成され、通常のスカラ命令に加えて、ベクトル命令に対する命令解析機能、命令実行制御機能を有しており、ベクトル命令実行時は、まず、第１の演算回路選択信号、第２の演算回路選択信号、専用パイプライン演算回路選択信号を出力すると同時に、第１の起動信号をアサートし、その後、第１のパイプライン演算回路１０６のパイプライン段数分のサイクル後に、汎用演算回路出力データイネーブルをアサートし、専用演算回路出力データイネーブルのアサート後、第２のパイプライン演算回路のパイプライン段数分のサイクル数後に、第２の起動信号をアサートし、あらかじめ設定されているベクトルデータの長さをＭ個とすると、最初の第１の起動信号のアサート後、Ｍサイクル後に、第１の起動信号をネゲートし、その後、第１のパイプライン演算回路１０６のパイプライン段数分のサイクル数後、汎用演算回路出力データイネーブルをネゲートし、専用演算回路出力データイネーブルのネゲート後、第２のパイプライン演算回路１１２のパイプライン段数分のサイクル後に、第２の起動信号をネゲートする。
【００２３】
第１のアドレス発生器１０４は、第１の起動信号がアサートされている期間に、所定のアドレスを第１のアドレスとして出力する。
第１のデータメモリ１０５は、第１のアドレスに従い、第１のデータを出力する。
第１のパイプライン演算回路１０６は、乗算器、算術論理演算器、バレルシフタ等の基本演算器を、プログラム制御回路１０３で、命令解析後出力される第１の演算回路選択信号に従い、組み合わせることにより構成され、第１のデータに対してパイプライン演算を施し、第１の演算結果を出力する。
【００２４】
第２のアドレス発生器１１３は、第２の起動信号がアサートされている期間に、所定のアドレスを第２のアドレスとして出力する。
第２のパイプライン演算回路１１２は、乗算器、算術論理演算器、バレルシフタ等の基本演算器を、プログラム制御回路１０３で、命令解析後出力される第２の演算回路選択信号に従い、組み合わせることにより構成され、第２のデータに対してパイプライン演算を施し、第３の演算結果を出力する。
第２のデータメモリ１１４は、第２のアドレスに従い、第３の演算結果を格納する。
【００２５】
制御回路１１５は、汎用演算回路出力データイネーブルのアサート後、専用パイプライン演算回路選択信号に従って選択された、第１のパイプライン段数通知信号、第２のパイプライン段数通知信号、第３のパイプライン段数通知信号、…、第Ｎのパイプライン段数通知信号の中から選択された第ｎのパイプライン段数通知信号が示す段数分のサイクル数後、専用演算回路出力データイネーブルをアサートし、汎用演算回路出力データイネーブルのネゲート後で、第ｎのパイプライン段数通知信号が示す段数分のサイクル数後に専用演算回路出力データイネーブルをネゲートする。
【００２６】
第１の専用パイプライン演算回路１０７、第２の専用パイプライン演算回路１０８、第３の専用パイプライン演算回路１０９、…、第Ｎの専用パイプライン演算回路１１０は、第１の演算結果に対して、パイプライン演算を施し、それぞれ第１の専用演算結果、第２の専用演算結果、第３の専用演算結果、…、第Ｎの専用演算結果を出力し、一方では、各々の専用パイプライン演算回路１０７〜１１０のパイプライン段数の、第１のパイプライン段数通知信号、第２のパイプライン段数通知信号、第３のパイプライン段数通知信号、…、第Ｎのパイプライン段数通知信号を出力する。
【００２７】
データ選択回路１１１は、専用パイプライン演算回路選択信号に従って、第１の専用演算結果、第２の専用演算結果、第３の専用演算結果、…、第Ｎの専用演算結果から一つを選択して出力する。
【００２８】
次に、プログラム制御回路１０３で、ベクトル命令が解析され、Ｍ個のベクトルデータに対するパイプライン演算を実行する時の動作を説明する。
【００２９】
まず、第１の起動信号がアサートされ、第１のアドレス発生器１０４からＭ個の連続した第１のアドレスが発行され始める。第１のアドレスに従い、第１のデータメモリからＭ個の連続した第１のデータが読み出され、第１のパイプライン演算回路１０６へ入力される。第１のパイプライン演算回路１０６は、第１のデータに対する演算を順次実行し、第１の演算結果として順次出力する。このとき、第１のパイプライン演算回路１０６から、第１番目の第１のデータの出力タイミングを検出して、汎用演算回路出力イネーブルをアサートする。第１の専用パイプライン演算回路１０７、第２の専用パイプライン演算回路１０８、第３の専用パイプライン演算回路１０９、…、第Ｎの専用パイプライン演算回路１１０は、第１の演算結果に対する演算を順次実行し、その結果を、第１の専用演算結果、第２の専用演算結果、第３の専用演算結果、…、第Ｎの専用演算結果として、それぞれ順次出力する。これらの専用演算結果の中から、プログラム制御回路１０３で、ベクトル命令が解析されたときに出力された専用パイプライン演算回路選択信号に従って、データ選択回路１１１により選択され、第２の演算結果として出力される。このとき、汎用演算回路出力データイネーブルのアサートタイミングと、プログラム制御回路から出力されている専用パイプライン演算回路選択信号により選択された第１のパイプライン段数通知信号、第２のパイプライン段数通知信号、第３のパイプライン段数通知信号、…、第Ｎのパイプライン段数通知信号の一つから、第１番目の第２の演算結果の出力タイミングを検出して、専用演算回路出力データイネーブルをアサートする。第２のパイプライン演算回路１１２は、第２の演算結果に対する演算を順次実行し、第３の演算結果として順次出力する。専用演算回路出力データイネーブルのアサートタイミングと、第２のパイプライン演算回路１１２のパイプライン段数から、第１番目の第３の演算結果の出力タイミングを検出して、第２の起動信号をアサートする。第２のアドレス発生器１１３は、アサートされた第２の起動信号に従い、第２のアドレス発生器１１３からＭ個の連続したアドレスが発行し始める。第２のアドレスに従い、第２のデータメモリへＭ個の連続した第３の演算結果が格納される。プログラム制御回路１０３は、第１のデータメモリ１０５からＭ番目の第１のデータが読み出されるタイミングを検出して、第１の起動信号をネゲートする。次に、第１の起動信号のネゲートタイミングと第１のパイプライン演算回路１０６のパイプライン段数より、第１のパイプライン演算回路１０６から第Ｍ番目の第１の演算結果が出力されるタイミングを検出して、汎用演算回路出力データイネーブルをネゲートする。制御回路１１５は、汎用演算回路出力データイネーブルのネゲートタイミングとプログラム制御回路から出力されている専用パイプライン演算回路選択信号により選択された第１のパイプライン段数通知信号、第２のパイプライン段数通知信号、第３のパイプライン段数通知信号、…、第Ｎのパイプライン段数通知信号の一つから、第Ｍ番目の第２の演算結果の出力タイミングを検出して、専用演算回路出力データイネーブルをネゲートする。プログラム制御回路は、専用演算回路出力データイネーブルのネゲートタイミングと、第２のパイプライン演算回路のパイプライン段数より、第Ｍ番目の第２のパイプライン演算回路からの出力タイミングを検出して、第２の起動信号をネゲートし、本命令を終了する。
【００３０】
以上のように、本実施の形態１による演算装置によれば、汎用演算回路１０１と専用演算回路１０２に分離し、専用演算回路１０２の用途毎の変更が汎用演算回路１０１へ影響を与えないように、汎用演算回路１０１中のプログラム制御回路１０３でのタイミング制御に必要な専用演算回路１０２固有の情報である専用演算回路出力データイネーブルを専用演算回路１０２から汎用演算回路１０１へ通知し、汎用演算回路１０１中のプログラム制御回路１０３はその通知情報である専用演算回路出力データイネーブルに基づいて、タイミングを制御する構成としたので、これにより、さまざまなアプリケーションに適用することのできる演算装置を実現することができるという効果がある。さらに、今後迎えるであろうＩＰ（Ｉｎｔｅｌｌｅｃｔｕａｌ  Ｐｒｏｐｅｒｔｙ）化時代を考えた場合、より一層アプリケーションに対する柔軟性を発揮することができるという効果がある。
【００３１】
実施の形態２．
図２は、本発明の実施の形態２による演算装置の概略構成を示すブロック図である。
実施の形態２の演算装置は、図１に示す実施の形態１の演算装置において、図２中、２０１は実施の形態１の第１のデータメモリ１０５に対応し、２１１は実施の形態１の第２のデータメモリ１１４に対応し、２１２は実施の形態１の第１のパイプライン演算回路１０６に対応し、２１３は実施の形態１の第２のパイプライン演算回路１１２に対応し、２１４は実施の形態１の複数の専用パイプライン演算回路１０７〜１１０のうちの一つに対応する。本実施の形態２の演算装置における上記以外の他の構成については、図１に示す実施の形態１と同様の構成を有する。
【００３２】
前記第１のパイプライン演算回路２１２は、第１のレジスタ２０２、第２のレジスタ２０３、乗算器２０４、第３のレジスタ２０５、第４のレジスタ２０６、算術演算器２０７、および第５のレジスタ２０８を備える。前記第２のパイプラン演算回路２１３は、第６のレジスタ２１０を備える。前記専用パイプライン演算回路２１４は、ＩＤＣＴ（Ｉｎｖｅｒｓｉｏｎ Ｄｉｓｃｒｅｔｅ Ｃｏｓｉｎｅ Ｔｒａｎｓｆｏｒｍ）演算器２０９を備える。このＩＤＣＴ演算器２０９は、１次元の逆離散コサイン変換を施すものである。
【００３３】
図３は、本実施の形態２の演算装置における逆量子化の演算式を示している。  図３中、式（ａ）、式（ｂ）、式（ｃ）、式（ｄ）を展開すると、式（ｅ）、式（ｆ）、式（ｇ）、式（ｈ）、式（ｉ）となる。つまり、式（ａ）〜（ｃ）に基づいて式（ｄ）が決定され、この式（ｄ）より式（ｅ）〜（ｉ）のいずれかが求められる。
【００３４】
あらかじめ第１のデータメモリ２０１には逆量子化対象データである図３中のＬＥＶＥＬを、第２のレジスタ２０３には図３中の（２×ＱＵＡＮＴ）を、第４のレジスタ２０６にはＱＵＡＮＴが奇数の場合はＱＵＡＮＴ、ＱＵＡＮＴが偶数の場合には（ＱＵＡＮＴ−１）をそれぞれ格納しておく。
【００３５】
図４は、図２中の算術演算器２０７の構成を示している。算術演算器２０７は、図４に示すように、加算器４０１、減算器４０２、および出力選択器４０３を備える。この算術演算器２０７の出力選択器４０３は、図５に示すように、第１の入力の符号に従って動作する。図４において、第１の入力は第３のレジスタ２０５の出力である第５のデータに相当し、第２の入力は第４のレジスタ２０６の第６のデータに相当する。出力選択器４０３は、図５に示すように、第１の入力の符号が正の場合は加算器４０１の出力を、第１の入力の符号が０の場合は第１の入力を、第１の入力の符号が負の場合は減算器４０２からの出力を、その出力とする。従って、算術演算器２０７の入出力関係は、図６のようになる。
【００３６】
そして、本実施の形態２の演算装置について、実施の形態１で説明した制御手順に従って、図２に示す各パイプライン演算回路２１２、２１４、２１３を制御した場合、そのデータの流れは、図７に従う。ここで図７において、横軸にサイクル、縦軸に各演算器での処理内容を示しており、Ｄ１、Ｄ２、…、Ｄｉ、…、ＤＭ−１、ＤＭというＭ個のベクトルデータが各パイプライン演算回路を流れている様子を示している。最終的に、第２のデータメモリ２１１に書き込まれるのは、図３に示されるＲＥＣである。
【００３７】
以上のように、本実施の形態２による演算装置によれば、汎用演算回路１０１における第１パイプライン演算回路２１２によって逆量子化演算を行い、専用演算回路１０２における専用パイプライン演算回路２１４によって逆ＤＣＴ演算を行うようにしており、これにより、逆量子化と逆ＤＣＴ演算を連続してパイプライン演算することができるという効果を有する。
【００３８】
実施の形態３．
図８は、本発明の実施の形態３による演算装置の概略構成を示すブロック図である。
【００３９】
実施の形態３の演算装置は、図１に示す実施の形態１の演算装置において、図８中、８０１は実施の形態１の第１のデータメモリ１０５に対応し、８１２は実施の形態１の第１のパイプライン演算回路１０６に対応し、８１３は実施の形態１の第２のパイプライン演算回路１１２に対応し、８１４は実施の形態１の複数の専用パイプライン演算回路１０７〜１１０のうちの一つに対応し、本実施の形態３の演算装置における上記以外の他の構成については、図１に示す実施の形態１と同様の構成を有する。
【００４０】
前記第１のパイプライン演算回路８１２は、第１のレジスタ８０２備える。前記第２のパイプライン演算回路８１３は、第２のレジスタ８０４、第３のレジスタ８０５、算術演算部８０５、第４のレジスタ８０７、第５のレジスタ８０８、乗算器８０９、および第６のレジスタ８１０を備える。また、前記専用パイプライン演算回路８１４は、ＤＣＴ（Ｄｉｓｃｒｅｔｅ Ｃｏｓｉｎｅ Ｔｒａｎｓｆｏｒｍ）演算器８０３を備える。このＤＣＴ演算器８０３は、離散コサイン変換を施すものである。
【００４１】
図９は、本実施の形態３の演算装置における量子化の演算式を示している。
図９中、式（ａ）、式（ｂ）、式（ｃ）、式（ｄ）を展開すると、式（ｅ）、式（ｆ）、式（ｇ）、式（ｈ）、式（ｉ）となる。つまり、式（ａ）〜（ｃ）に基づいて式（ｄ）が決定され、この式（ｄ）より式（ｅ）〜（ｉ）のいずれかが求められる。
【００４２】
あらかじめ第１のデータメモリ８０１にはＤＣＴ対象データである図９中のＲＥＣを、第２のレジスタ８０２にはＱＵＡＮＴが奇数の場合は図９中の（−ＱＵＡＮＴ）、偶数の場合には（−ＱＵＡＮＴ＋１）を、第５のレジスタ８０８には２×ＱＵＡＮＴの逆数を格納しておく。
【００４３】
なお、算術演算器８０６は、図４で示した実施の形態２のものと同じ構成であって、その第１の入力は第２のレジスタ８０４からの第２のデータに相当し、第２の入力は第３のレジスタ８０５からの第３のデータに相当する。また、この算術演算器８０６における入出力関係も図５および図６に示したようになる。
【００４４】
そして、本実施の形態３の演算装置について、実施の形態１で説明した制御手順に従って、図８に示す各パイプライン演算回路８１２、８１４、８１３を制御した場合、そのデータの流れは、図１０に従う。ここで図１０において、横軸にサイクル、縦軸に各演算器での処理内容を示しており、Ｄ１、Ｄ２、…、Ｄｉ、…、ＤＭ−１、ＤＭというＭ個のベクトルデータが各パイプライン演算回路を流れている様子を示している。最終的に、第２のデータメモリ８１１に書き込まれるのは、図９に示されるＬＥＶＥＬである。
【００４５】
以上のように、本実施の形態３による演算装置によれば、汎用演算回路１０１における第２のパイプライン演算回路８１３によって量子化演算を行い、専用演算回路１０２における専用パイプライン演算回路８１４によってＤＣＴ演算を行うようにしており、これにより、ＤＣＴ演算と量子化演算を連続してパイプライン演算することができるという効果を有する。
【００４６】
実施の形態４．
図１１は、本発明の実施の形態４による画像処理装置の構成を示すブロック図である。
【００４７】
実施の形態４の画像処理装置は、図１１において、第１のＤＳＰ（Ｄｉｇｉｔａｌ Ｓｉｇｎａｌ Ｐｒｏｃｅｓｓｏｒ）コア１１０１と第２のＤＳＰ（Ｄｉｇｉｔａｌ Ｓｉｇｎａｌ Ｐｒｏｃｅｓｓｏｒ）コア１１０２は、プログラム制御型のプロセッサであって、第１の汎用演算回路１１１８と第２の汎用演算回路１１１９は、図１の実施の形態１で示した汎用演算回路１０１に対応するものである。また、第１の専用演算器１１０３と第２の専用演算回路１１０４は、図１の実施の形態１で示した専用演算回路１０２に対応し、第１の専用演算回路１１０３は、専用パイプライン演算回路１０７〜１１０のいずれかとしてＤＣＴ演算回路１１０５とＩＤＣＴ演算回路１１０６を搭載しており、第２の専用演算回路１１０４は、専用パイプライン演算回路１０７〜１１０のいずれかとしてポストノイズ除去フィルタ演算回路１１０７とハーフペル演算回路１１０８を搭載している。本実施の形態４の画像処理装置は、前記の他に、第１の共有メモリ１１０９、第２の共有メモリ１１１０、第３の共有メモリ１１１１、ホストインタフェース１１１２、ビデオインタフェース１１１３、フレームメモリ１１１４、ＤＭＡ（Ｄｉｒｅｃｔ Ｍｅｍｏｒｙ Ａｃｃｅｓｓ）制御回路１１１５、ＡＤ変換器１１１６、およびＤＡ変換器１１１７を備えている。
【００４８】
第１のＤＳＰコア１１０１は、プログラムに従って、第１のＤＳＰコア１１０１内で閉じた演算の実行、第１の専用演算回路１１０３を用いた演算の実行、並びに第２のＤＳＰコア１１０２、ホストインタフェース１１１２、及びＤＭＡ制御回路１１１５のそれぞれとデータ転送を実行する機能を有するものである。
【００４９】
第１の専用演算回路１１０３は、第１のＤＳＰコア１１０１の制御に従い、ＤＣＴ演算、およびＩＤＣＴ演算を実行する機能を有するものである。
【００５０】
第２のＤＳＰコア１１０２は、プログラムに従って、第２のＤＳＰコア１１０２内で閉じた演算の実行、第２の専用演算回路１１０４を用いた演算の実行、並びに第１のＤＳＰコア１１０１、及びＤＭＡ制御回路１１１５のそれぞれとデータ転送を実行する機能を有するものである。
【００５１】
第２の専用演算回路１１０４は、第２のＤＳＰコア１１０２の制御に従い、ハーフペル演算、およびポストノイズ除去フィルタ演算を実行する機能を有するものである。
【００５２】
第１の共有メモリ１１０９は、第１のＤＳＰコア１１０１とＤＭＡ制御回路１１１５との間でデータを転送する機能を有するものである。
第２の共有メモリ１１１０は、第２のＤＳＰコア１１０２とＤＭＡ制御回路１１１５との間でデータを転送する機能を有するものである。
第３の共有メモリ１１１１は、第１のＤＳＰコア１１０１と第２のＤＳＰコア１１０２との間でデータを転送する機能を有するものである。
【００５３】
ホストインタフェース１１１２は、ビットストリームやコマンドデータの入出力機能、並びに第１のＤＳＰコア１１０１、及びＤＭＡ制御回路１１１５のそれぞれとの間でデータを転送する機能を有するものである。
【００５４】
フレームメモリ１１１４は、格納データをＤＭＡ制御回路１１１５へ出力、ＤＭＡ制御回路１１１５からの入力データを格納する機能を有するものである。
【００５５】
ＤＭＡ制御回路１１１５は、第１の共有メモリ１１０９、第２の共有メモリ１１１０、ホストインタフェース１１１２、及びビデオインタフェース１１１３のそれぞれからの入力データをフレームメモリ１１１４へ格納する機能と、フレームメモリ１１１４からの出力データを、これら第１の共有メモリ１１０９、第２の共有メモリ１１１０、ホストインタフェース１１１２、及びビデオインタフェース１１１３のそれぞれに出力する機能を有するものである。
【００５６】
ビデオインタフェース１１１３は、ＤＭＡ制御回路１１１５との間でデータを転送する機能と、ポストスケーリング機能と、ポストスケーリング後のデータをＤＡ変換器１１１７へ出力する機能と、ＡＤ変換器１１１６から画像データを入力する機能と、ＡＤ変換器１１１６から入力した画像データをプリスケーリングする機能とを有するものである。
【００５７】
ＡＤ変換器１１１６は、入力したアナログ画像データをデジタル変換してビデオインタフェース１１１３に出力する機能を有するものである。
【００５８】
ＤＡ変換器１１１７は、ビデオインターフェース１１１３から入力したデジタル画像データをアナログに変換して出力する機能を有するものである。
【００５９】
次に、本実施の形態４の画像処理装置におけるエンコーダ処理およびデコーダ処理について説明する。
最初に、エンコーダ処理の動作を説明する。図１２に、本実施の形態４の画像処理装置によるエンコーダ処理の各ブロック１１１２、１１０１、１１０２、１１１３での処理内容を表す。本実施の形態４の画像処理装置によるエンコーダ処理は、この図１２にまとめた各ブロックへの分担処理を、各ブロックで並列処理することにより効率的に実行している。
【００６０】
エンコーダ処理では、まず、アナログ画像データがＡＤ変換器１１１６に入力され、デジタル変換された後、ビデオインタフェース１１１３に入力される。ビデオインタフェース１１１３に入力されたデータには、プリスケーラが施され、ＣＩＦ（Ｃｏｍｍｏｎ Ｉｎｔｅｒｎｅｔ Ｆｉｌｅ）もしくはＱＣＩＦ（Ｑｕａｄｒａｔｕｒｅ Ｃｏｍｍｏｎ Ｉｎｔｅｒｎｅｔ Ｆｉｌｅ）フォーマットに変換されて、ＤＭＡ制御回路１１１５を経て、フレームメモリ１１１４の所定の領域に格納される。プリスケーラが施された後の符号化対象データに対して、第２のＤＳＰコア１１０２のプログラムに従って、第２の共有メモリ１１１０を介して、ＭＥ（動き検出）処理が施される。この過程で、ハーフペル演算が必要となるため、第２の専用演算回路１１０４を用いて、そのハーフペル演算回路１１０８によってハーフペル演算を実行する。ＭＥ処理が終わると、第３の共有メモリ１１１１を介して、符号化対象データを第１のＤＳＰコア１１０１に転送し、第１のＤＳＰコア１１０１では、プログラムに従って、ＭＣ（動き補償）処理、ＤＣＴ演算処理、Ｑ（量子化）処理、ＩＱ（逆量子化）処理、ＩＤＣＴ演算処理、ＶＬＣ（可変長符号化）処理が施され、符号化された画像データを最終的にフレームメモリ１１１４の所定の領域へＤＭＡ制御回路１１１５を介して格納する。この過程で、ＤＣＴ演算処理、ＩＤＣＴ演算処理は、第１の専用演算回路１１０３のＤＣＴ演算回路１１０５およびＩＤＣＴ演算回路１１０６を用いて実行する。一方、符号化データは、ホストインタフェース１１１２が受け取るコマンドデータに従い、フレームメモリ１１１４からＤＭＡ制御回路１１１５を介して、ホストインタフェース１１１２へ読み出され、ビットストリームとして送出する。
【００６１】
次に、デコーダ処理の動作を説明する。図１３に、本実施の形態４の画像処理装置によるデコーダ処理の各ブロック１１１２、１１０１、１１０２、１１１３での処理内容を表す。本実施の形態４の画像処理装置によるデコーダ処理は、この図１３にまとめた各ブロックへの分担処理を、各ブロックで並列処理することにより効率的に実行している。
【００６２】
デコーダ処理では、まず、ホストインタフェース１１１２が受け取るコマンドデータに従い、ビットストリームを入力し、ＤＭＡ制御回路１１１５を介して、フレームメモリ１１１４の所定の領域へ格納する。ビットストリームデータは、ＤＭＡ制御回路１１１５を介して、フレームメモリ１１１４から第１の共有メモリ１１０９へ読み出され、第１のＤＳＰコア１１０１のプログラムに従って、ＶＬＤ（可変長復号化）処理、ＩＱ（逆量子化）処理、ＩＤＣＴ演算処理、ＭＣ（動き補償）処理が施され、ＤＭＡ制御回路１１１５を介して、第１の共有メモリ１１０９からフレームメモリ１１１４の所定の領域へ復号化画像データとして格納される。復号化画像データは、第２のＤＳＰコア１１０２のプログラムに従って、ＤＭＡ制御回路１１１５を介して、フレームメモリ１１１４から第２の共有メモリへ読み出され、第２の専用演算回路１１０４を用いて、ポストノイズ除去フィルタが施され、ＤＭＡ制御回路１１１５を介して、第２の共有メモリ１１１０からフレームメモリ１１１４の所定の領域へ格納される。ポストノイズ除去フィルタが施されたデータは、ＤＭＡ制御回路１１１５を介して、フレームメモリ１１１４からビデオインタフェース１１１３に入力され、ポストスケーラを施し、ＤＡ変換器１１１７へ出力される。ＤＡ変換器１１１７では、入力されたデジタル画像データをアナログデータに変換し出力する。
【００６３】
以上のように、本実施の形態４による画像処理装置によれば、図１に示す汎用演算回路１０１と専用演算回路１０２とを含む演算装置を２個搭載し、第１の専用演算回路１１０３はＤＣＴ演算回路１１０５とＩＤＣＴ演算回路１１０６とを備え、第２の専用演算回路１１０４はポストノイズ除去フィルタ演算回路１１０７とハーフペル演算回路１１０８とを備えているので、本実施の形態４は、エンコーダ動作のみを実行した場合はエンコーダ装置として働き、デコーダ動作のみを実行した場合はデコーダ装置として働き、さらにエンコーダ動作とデコーダ動作を時分割に実行した場合はコーデック装置として働くという画像処理装置を実現することができるという効果がある。
【００６４】
産業上の利用可能性
以上のように本発明に係る演算装置は、プログラム制御回路を変更すること無く、用途毎に適した任意の専用パイプライン演算回路を搭載することができ、その結果様々なアプリケーションに適用することの出来る演算装置を実現するものとして、極めて有用である。さらに、本発明に係る演算装置を用いた画像処理装置であれば、エンコーダ動作のみを実行した場合はエンコーダ装置として働き、デコーダ動作のみを実行した場合はデコーダ装置として働き、さらにエンコーダ動作とデコーダ動作を時分割に実行した場合はコーデック装置として働く、という画像処理装置を実現するものとして、極めて有用である。
【図面の簡単な説明】
【図１】実施の形態１による演算装置の構成を示すブロック図である。
【図２】実施の形態２による演算装置の概略構成を示すブロック図である。
【図３】実施の形態２の演算装置における逆量子化演算式を示す図である。
【図４】実施の形態２の演算装置における算術演算器の構成を示ブロック図である。
【図５】実施の形態２の演算装置における算術演算器中の出力選択器の出力データ制御を表す図である。
【図６】実施の形態２の演算装置における算術演算器の入出力関係を表す図である。
【図７】実施の形態２の演算装置におけるパイプライン演算器中でのベクトルデータの流れを表す図である。
【図８】実施の形態３による演算装置の概略構成を示すブロック図である。
【図９】実施の形態３の演算装置における量子化演算式を示す図である。
【図１０】実施の形態３の演算装置におけるパイプライン演算器中でのベクトルデータの流れを表す図である。
【図１１】実施の形態４による画像処理装置の構成を示すブロック図である。
【図１２】実施の形態４の画像処理装置におけるエンコード時の各ブロックでの処理分担を示す図である。
【図１３】実施の形態４の画像処理装置におけるデコード時の各ブロックでの処理分担を示す図である。
【図１４】従来の演算装置の構成を示すブロック図である。
【図１】
0003619456.tif 000002
【図２】
0003619456.tif 000003
【図３】
0003619456.tif 000004
【図４】
0003619456.tif 000005
【図５】
0003619456.tif 000006
【図６】
0003619456.tif 000007
【図７】
0003619456.tif 000008
【図８】
0003619456.tif 000009
【図９】
0003619456.tif 000010
【図１０】
0003619456.tif 000011
【図１１】
0003619456.tif 000012
【図１２】
0003619456.tif 000013
【図１３】
0003619456.tif 000014
【図１４】
0003619456.tif 000015