(57)【要約】【課題】  画像データの復号化において、周波数領域から空間領域にデータを変換する処理を高速化すること。【解決手段】  演算処理装置１は、逆ＤＣＴ変換を行う際に、ブロックの行あるいは列について、使用される逆ＤＣＴ係数が“０”であるか否かによって、その行あるいは列に関する１次元逆ＤＣＴ変換処理が省略可能であるか否か判定する。そして、省略不可能であると判定した場合にのみ、逆ＤＣＴ変換処理を実行する。また、ブロックを処理する際に、各行の１次元逆ＤＣＴ変換処理を行った後、各列について１次元逆ＤＣＴ変換処理を行う。したがって、各行あるいは各列を処理する際に逆ＤＣＴ係数を固定して、処理が不要な行あるいは列についての逆ＤＣＴ変換処理を省略することができるため、逆ＤＣＴ変換処理の高速化を図ることが可能となる。【選択図】  図２
2005229182.tif 000002
【特許請求の範囲】
【請求項１】
直交変換を含む符号化処理が施された画像データを復号化処理する際の処理単位となるブロックにおいて、各行および各列に逆直交変換処理を施すベクトルプロセッサであって、
前記ブロックの行あるいは列についての逆直交変換処理を省略可能であるか否か判定し、省略可能でないと判定した場合に該行あるいは列についての逆直交変換処理を施し、省略可能であると判定した場合に該行あるいは列についての逆直交変換処理を省略する１次元処理を、ベクトルパイプライン処理する１次元処理手段を備え、
前記１次元処理手段は、前記１次元処理を、前記ブロックの各行に施した後、該ブロックの各列に施すことを特徴とするベクトルプロセッサ。
【請求項２】
前記１次元処理手段は、前記ブロックの行あるいは列における逆直交変換係数が零である場合に、該行あるいは列についての前記逆直交変換処理を省略可能であると判定し、前記ブロックの行あるいは列における逆直交変換係数が零でない場合に、該行あるいは列についての前記逆直交変換処理を省略可能でないと判定することを特徴とする請求項１記載のベクトルプロセッサ。
【請求項３】
前記１次元処理手段は、前記ブロックの行あるいは列の少なくともいずれかを処理する際に、逆直交変換係数として零でない値が連続する確率がより低い行順あるいは列順に前記１次元処理を施すことを特徴とする請求項１または２記載のベクトルプロセッサ。
【請求項４】
前記１次元処理手段は、前記ブロックの行あるいは列の少なくともいずれかを処理する際に、該ブロックにおけるより低周波側の行あるいは列と、該ブロックにおけるより高周波側の行あるいは列とを交互に１次元処理することを特徴とする請求項３記載のベクトルプロセッサ。
【請求項５】
前記１次元処理をＳＩＭＤ演算によって並列処理することを特徴とする請求項１から４のいずれか１項に記載のベクトルプロセッサ。
【請求項６】
直交変換を含む符号化処理が施された画像データを復号化処理する際の処理単位となるブロックにおいて、各行および各列に逆直交変換処理を施す画像処理方法であって、
前記ブロックの行あるいは列についての逆直交変換処理を省略可能であるか否か判定し、省略可能でないと判定された場合に該行あるいは列についての逆直交変換処理を施し、省略可能であると判定された場合に該行あるいは列についての逆直交変換処理を省略する１次元処理ステップを、前記ブロックの各行に施した後、該ブロックの各列に施すことを特徴とする画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ベクトル命令を実行可能なベクトルプロセッサおよびベクトル命令を用いた画像処理方法に関する。
【背景技術】
【０００２】
従来、動画像の復号処理において、逆ＤＣＴ（Discrete CosineTransform）変換等、符号化によって周波数領域に変換されたデータを空間領域に戻す処理（逆直交変換処理）が行われている。
例えば、逆ＤＣＴ変換においては、次式に基づく演算が行われる。
【０００３】
【数１】
2005229182.tif 000003
【０００４】
なお、上式において、ＭＰＥＧ（Moving Picture Experts Group）等の動画像の場合にはＮ＝８である。
このとき、１つのｆ（ｘ，ｙ）の値を算出するために、上式右辺の
【０００５】
【数２】
2005229182.tif 000004
【０００６】
なる演算をｕ，ｖそれぞれについて８回ずつ行う必要がある。また、０≦ｘ，ｙ≦７であるため、合計６４個のｆ（ｘ，ｙ）を算出する必要があり、合計で８×８×６４＝４０９６回の演算を行うこととなる。ただし、（１）式に示す演算において、Ｃ（ｕ）、Ｃ（ｖ）は定数であり、ｃｏｓ（２ｘ＋１）ｕπ／２Ｎとｃｏｓ（２ｙ＋１）ｖπ／２Ｎとの積も予め算出しておくことができるため、上式は、Ｆ（ｕ，ｖ）と所定定数との乗算であると考えることができる（以下、上述の方法を「第１の逆ＤＣＴ変換方法」と称する。）。
【０００７】
このように、第１の逆ＤＣＴ変換方法では、６４個のｆ（ｘ，ｙ）を出力するために、合計４０９６回の乗算・加算が必要となり、演算回数は多大なものとなる。
そこで、逆ＤＣＴ変換における演算回数を低減するための方法が提案されている。その１つは、図４に示すように、１次元の逆ＤＣＴ変換を縦方向および横方向にそれぞれ行うものであり、この場合、次式に基づく演算が行われる。
【０００８】
【数３】
2005229182.tif 000005
【０００９】
このとき、１つのｆ（ｘ）を算出するために、乗算・加算回数は８回ずつとなり、１列あるいは１行の逆ＤＣＴ変換では８×８回＝６４回となる。このような処理を８行、８列分のｆ（ｘ）について行うため、合計で８×８×８＋８×８×８＝１０２４回の演算を行うこととなる（以下、上述の方法を「第２の逆ＤＣＴ変換方法」と称する。）。
なお、その他にも、逆ＤＣＴ変換を高速化する方法は、例えば特開平７−３０６８４９号公報等に開示されている。
【特許文献１】特開平７−３０６８４９号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、上述の第２の逆ＤＣＴ変換方法のように、乗算・加算回数を１０２４回とした場合であっても、その演算回数は少ないものではなく、逆ＤＣＴ変換処理の高速化を妨げる要因となっていた。
なお、特開平７−３０６８４９号公報に記載された方法は、所定のルックアップテーブルを参照して逆ＤＣＴ変換を高速化するものであり、必ずしも、一般的な処理装置で逆ＤＣＴ変換を行う場合に適用できるものではなかった。特に、複雑な条件判定による処理の分岐を行う必要があることから、ベクトル命令を用いて逆ＤＣＴ変換を行うことに適しているとは言えなかった。
【００１１】
上述の問題は、逆ＤＣＴ変換を始め、逆直交変換において一般的な問題である。
このように、符号化されたデータを周波数領域から空間領域に変換する処理（逆直交変換処理）を高速化することは困難であった。
本発明の課題は、画像データの復号化において、周波数領域から空間領域にデータを変換する処理（逆直交変換処理）を高速化することである。
【課題を解決するための手段】
【００１２】
以上の課題を解決するため、本発明は、
直交変換（例えば、ＤＣＴ変換等）を含む符号化処理が施された画像データを復号化処理する際の処理単位となるブロック（例えば、ＭＰＥＧ復号化におけるブロック）において、各行および各列に逆直交変換処理（例えば、逆ＤＣＴ変換処理）を施すベクトルプロセッサ（即ち、１次元逆直交変換処理を行うベクトルプロセッサ）であって、前記ブロックの行あるいは列についての逆直交変換処理を省略可能であるか否か判定し（例えば、発明を実施するための最良の形態におけるＢＥＱＩ命令を実行し）、省略可能でないと判定した場合に該行あるいは列についての逆直交変換処理（例えば、発明を実施するための最良の形態におけるＭＰＨ命令およびＡＤＤＷ命令による処理）を施し、省略可能であると判定した場合に該行あるいは列についての逆直交変換処理を省略する１次元処理を、ベクトルパイプライン処理する１次元処理手段（例えば、ＢＥＱＩ命令、ＭＰＨ命令およびＡＤＤＷ命令を実行する図３のベクトルプロセッサ２）を備え、前記１次元処理手段は、前記１次元処理を、前記ブロックの各行に施した後、該ブロックの各列に施すことを特徴としている。
【００１３】
また、本発明は、
直交変換を含む符号化処理が施された画像データを復号化処理する際の処理単位となるブロックにおいて、各行および各列に逆直交変換処理を施す画像処理方法であって、前記ブロックの行あるいは列についての逆直交変換処理を省略可能であるか否か判定し、省略可能でないと判定された場合に該行あるいは列についての逆直交変換処理を施し、省略可能であると判定された場合に該行あるいは列についての逆直交変換処理を省略する１次元処理ステップを、前記ブロックの各行に施した後、該ブロックの各列に施すことを特徴としている。
【００１４】
これにより、処理が不要な行あるいは列についての逆直交変換処理を省略することができるため、符号化されたデータを周波数領域から空間領域に変換する処理（逆直交変換処理）の高速化を図ることが可能となる。
また、ブロックを処理する際に、各行の１次元逆直交変換処理を行った後、各列について１次元逆直交変換処理を行う。
【００１５】
したがって、各行あるいは各列を処理する際に逆直交変換係数を固定して処理することができるため、その行あるいは列についての逆直交変換処理が不要であるか否かの判定や、逆直交変換処理を行う際の演算を効率的に行うことが可能となる。
また、前記１次元処理手段は、前記ブロックの行あるいは列における逆直交変換係数が零である場合に、該行あるいは列についての前記逆直交変換処理を省略可能であると判定し、前記ブロックの行あるいは列における逆直交変換係数が零でない場合に、該行あるいは列についての前記逆直交変換処理を省略可能でないと判定することを特徴としている。
【００１６】
これにより、例えば逆ＤＣＴ係数等の逆直交変換係数に基づいて、容易に逆直交変換処理の省略の可否を判定することが可能となる。
また、前記１次元処理手段は、前記ブロックの行あるいは列の少なくともいずれかを処理する際に、逆直交変換係数として零でない値が連続する確率がより低い行順あるいは列順（例えば、図２に示す順番）に前記１次元処理を施すことを特徴としている。
【００１７】
これにより、非零の逆直交変換が連続し、逆直交変換処理が省略されないことによってベクトルプロセッサにおける演算ユニットが連続して使用され、インターロックが発生することを低減することが可能となる。
また、前記１次元処理手段は、前記ブロックの行あるいは列の少なくともいずれかを処理する際に、該ブロックにおけるより低周波側の行あるいは列と、該ブロックにおけるより高周波側の行あるいは列とを交互に１次元処理することを特徴としている。
【００１８】
例えば、ブロックの全行あるいは全列において、ＤＣ成分側の半数の行あるいは列と、高周波側の半数の行あるいは列とを交互に処理することが可能である。
これにより、逆直交変換係数が零になる確率が高い高周波側の行あるいは列と、逆直交変換係数が非零となる確率が高い低周波側の行あるいは列とが交互に処理されるため、ベクトルプロセッサにおいてインターロックが発生する事態を低減することが可能となる。
【００１９】
また、前記１次元処理をＳＩＭＤ（SingleInstruction/Multiple Data）演算によって並列処理することとしても良い。
ここで、前記１次元処理は、単純化された命令によって実現されていることからＳＩＭＤ演算に適したものとなっている。
これにより、逆直交変換をさらに高速に行うことが可能となる。
【００２０】
このように、本発明によれば、画像データの復号化において、周波数領域から空間領域にデータを変換する処理（逆直交変換処理）を高速化することが可能となる。
【発明を実施するための最良の形態】
【００２１】
以下、図を参照して本発明に係るベクトルプロセッサの実施の形態を説明する。
本発明に係るベクトルプロセッサにおいては、上述の第２の逆ＤＣＴ変換方法を利用し、さらに、ＳＩＭＤ演算およびベクトルパイプライン処理を行うことによって、逆ＤＣＴ変換（あるいは他の逆直交変換）を高速化することを可能としている。
そこで、初めに、本発明における逆ＤＣＴ変換の処理方法について説明する。
【００２２】
上述の第２の逆ＤＣＴ変換方法では、図４に示す通り、１つのｆ（ｘ）を算出する際に、（３）式の演算をブロックの縦方向に８列分（即ち、１列の処理においてｕ＝０〜７まで順次変化させて８列分）行い、続いて、ブロックの横方向に８行分（即ち、１行の処理においてｕを固定し、ｕ＝０〜７まで８行分）行う。このとき、１行あるいは１列分の演算をベクトル命令によって処理する。
【００２３】
一方、このような処理は、以下のように行うことによっても等価的な結果を得ることができる。
即ち、第２の逆ＤＣＴ変換方法における行および列の処理順序を、図１に示す順序に変更する。
このように、１行の処理においてｕを固定して、ベクトル命令によって１行分のｆ（ｘ）を算出し、さらに、算出されたｆ（ｘ）に、ベクトル命令によって算出した次行のｆ（ｘ）を加算していく。そして、このような処理を縦および横方向それぞれについて行う（以下、この方法を「第３の逆ＤＣＴ変換方法」と称する。）。
【００２４】
第３の逆ＤＣＴ変換方法のような処理順序とした場合、１回のベクトル命令において使用されるＦ（ｕ）の値を固定することができる。そして、Ｆ（ｕ）は、動画像において多くの場合“０”となる。そのため、Ｆ（ｕ）＝０である場合には、そのＦ（ｕ）を使用するベクトル命令を省略することが可能となり、第３の逆ＤＣＴ変換方法における演算の多くが省略できることとなる。
【００２５】
第３の逆ＤＣＴ変換方法をベクトル命令として表せば、１行あるいは１列分の命令は、例えば、
ＭＰＨ［８］  ％ｄｓｔ，Ｆ（ｕ），ｋ
ＡＤＤＷ［８］  ％ｒｅｓｕｌｔ
となり、実際には１６サイクルにわたる命令が２サイクルのベクトル命令として記述できる。なお、“ＭＰＨ”は乗算命令、“ＡＤＤＷ”は加算命令であり、“％ｄｓｔ”は乗算結果を格納するデスティネーションレジスタ、“ｋ”は（３）式におけるＣ（ｕ）ｃｏｓ（２ｘ＋１）ｕπ／２Ｎで示される定数、“％ｒｅｓｕｌｔ“は加算結果を格納するデスティネーションレジスタである。
【００２６】
また、Ｆ（ｕ）＝０である場合には、上述の２行の命令を省略することができるため、各行あるいは列における上記２行の命令の前に、その行あるいは列についての処理を省略可能であるか否かを判定するものとする。
すると、１行あるいは１列分の命令は、例えば、
ＢＥＱＩ  Ｆ（ｕ），＃０，ＬＡＢＥＬ２
ＭＰＨ［８］  ％ｄｓｔ，Ｆ（ｕ），ｋ
ＡＤＤＷ［８］  ％ｒｅｓｕｌｔ
（ＬＡＢＥＬ２：次行あるいは次列の命令）
となる。なお、“ＢＥＱＩ”は入力値（Ｆ（ｕ））が比較値（＃０）と等しければ指定されたラベル（ＬＡＢＥＬ２）へジャンプさせる命令である。
【００２７】
このように、Ｆ（ｕ）を固定してベクトル命令を実行することとし、Ｆ（ｕ）が“０”である場合には、その行あるいは列の処理を省略し、次行あるいは次列の処理へと移行することにより、第３の逆ＤＣＴ変換方法をさらに高速に処理することが可能となる。
ただし、このような処理手順とした場合であっても、Ｆ（ｕ）＝０でない場合が連続すると、同一の演算ユニットを使用するベクトル命令が連続することとなり、インターロックが頻繁に発生する。
【００２８】
このとき、ベクトル命令として処理する意義が希薄なものとなることから、Ｆ（ｕ）＝０である場合が連続することが望ましい。
そこで、第３の逆ＤＣＴ変換方法における処理順序を調整し、Ｆ（ｕ）＝０でない場合が連続しないような順序とする（以下、この方法を「第４の逆ＤＣＴ変換方法」と称する。）。
【００２９】
具体的には、図２に示す順序で行あるいは列の処理を行うこととし、Ｆ（ｕ）＝０でない場合が連続することを回避する。これは、逆ＤＣＴ変換処理においては、８×８のブロック中、左上の要素（ＤＣ成分に近い要素）ほど非零の値が多く、左上から離れるほど、零の値が多くなることに基づいている。
第４の逆ＤＣＴ変換方法のような処理順序とすることで、Ｆ（ｕ）が非零の割合が高い行あるいは列と、Ｆ（ｕ）が零の割合が高い行あるいは列とが交互に処理されることとなり、インターロックが発生する事態を低減することが可能となる。
【００３０】
なお、上述の命令（ＭＰＨ，ＡＤＤＷ）は、ＳＩＭＤ演算によって処理することができ、並列的に処理することも可能である。このように処理することで、さらに逆ＤＣＴ変換を高速に行うことが可能となる。
続いて、第４の逆ＤＣＴ変換方法を実行するベクトルプロセッサについて説明する。
図３は、本発明に係るベクトルプロセッサ２を備えた演算処理装置１の機能構成を示すブロック図である。
【００３１】
図３において、演算処理装置１は、フェッチ部１０と、デコード部２０と、プログラム制御部３０と、ＡＬＵ（Arithmetic and Logical Unit）部４０と、乗算部５０と、加減算部６０と、ロード部７０と、ストア部８０と、レジスタファイル部９０と、メモリ制御部１００と、メモリ１１０とを含んで構成される。なお、図３において、フェッチ部１０と、デコード部２０と、プログラム制御部３０と、ＡＬＵ部４０と、乗算部５０と、加減算部６０と、ロード部７０と、ストア部８０と、レジスタファイル部９０とからなる部分は、ベクトルプロセッサ２を構成している。
【００３２】
フェッチ部１０は、メモリ１１０から命令コード（例えば、上述のＢＥＱＩ、ＭＰＨあるいはＡＤＤＷ等）をフェッチする。そして、フェッチ部１０は、フェッチした命令コードを一時的に記憶した後、デコード部２０に出力する。
デコード部２０は、フェッチ部１０から入力された命令コードをデコードし、デコード結果を、ＡＬＵ部４０、乗算部５０、加減算部６０、ロード部７０およびストア部８０に出力する。また、デコード部２０は、同様に、デコード結果をプログラム制御部３０に出力する。
【００３３】
プログラム制御部３０は、演算処理装置１全体を制御するものであり、例えば、実行する命令の管理や、割り込み発生時におけるステータスの変更等、演算処理装置１における動作状態の管理等を行う。
また、プログラム制御部３０は、デコード部２０から入力されるデコード結果に基づいて、レジスタファイル部９０におけるデータの読み出しあるいは書き込みを制御したり、次に実行する命令が記憶されたアドレスをメモリ１１０に出力したりする。
【００３４】
ＡＬＵ部４０は、デコード部２０から入力されたデコード結果が論理演算である場合に、デコード結果に基づいて、レジスタファイル部９０から演算するデータを読み出す。そして、ＡＬＵ部４０は、読み出したデータの論理演算を実行し、演算結果をレジスタファイル部９０に出力する。
乗算部５０は、デコード部２０から入力されたデコード結果が乗算である場合に、デコード結果に基づいて、レジスタファイル部９０から乗算するデータを読み出す。そして、乗算部５０は、読み出したデータの乗算を実行し、乗算結果をレジスタファイル部９０に出力する。
【００３５】
加減算部６０は、デコード部２０から入力されたデコード結果が加算あるいは減算である場合に、デコード結果に基づいて、レジスタファイル部９０から加算あるいは減算するデータを読み出す。そして、加減算部６０は、読み出したデータの加算あるいは減算を実行し、加減算結果をレジスタファイル部９０に出力する。
ロード部７０は、デコード部２０から入力されたデコード結果がロード命令である場合に、デコード結果に基づいて、ロード命令の対象となるアドレスをメモリに出力する。そして、ロード部７０は、そのアドレスのデータがメモリから入力されると、入力されたデータをレジスタファイル部９０に出力する。
【００３６】
ストア部８０は、デコード部２０から入力されたデコード結果がストア命令である場合に、デコード結果に基づいて、ストア命令の対象となるデータをレジスタファイル部９０から読み出す。そして、ストア部８０は、ストア命令の対象となるアドレスおよびレジスタファイル部９０から読み出したデータをメモリに出力する。
レジスタファイル部９０は、所定数のスカラレジスタおよびベクトルレジスタを備え、ＡＬＵ部４０、乗算部５０、加減算部６０、ロード部７０およびストア部８０の処理対象となるデータを記憶する。また、レジスタファイル部９０には、プログラム制御部３０から、データの読み出しあるいは書き込みを行うための制御信号が入力される。
【００３７】
メモリ制御部１００は、メモリ１１０に対するアクセス、即ち、データの読み出しや書き込みを制御する。例えば、メモリ制御部１００は、ＡＬＵ部４０、乗算部５０、加減算部６０、ロード部７０あるいはストア部８０によって指定されたメモリ１１０のアドレスからデータを読み出したり、メモリ１１０から読み出されたデータをレジスタファイル部９０に出力したりする。
【００３８】
メモリ１１０は、２次元的に配列された記憶領域を有し、２次元アクセス（行および列の指定によるアクセス）が可能なメモリである。また、メモリ１１０は、命令コードあるいは演算対象となるデータを記憶しており、メモリ制御部１００を介して、フェッチ部１０、ＡＬＵ部４０、乗算部５０、加減算部６０、ロード部７０、ストア部８０あるいはレジスタファイル部９０とデータを入出力することが可能である。
【００３９】
なお、メモリ１１０は２次元アクセスが可能なメモリであるため、第４の逆ＤＣＴ変換方法を実行する際に、転置等の処理を行うことなく、行および列に対する逆ＤＣＴ変換を容易に切り換えて行うことが可能である。
次に、動作を説明する。
以下、第４の逆ＤＣＴ変換方法を実行するため、
ＢＥＱＩ  Ｆ（ｕ），＃０，ＬＡＢＥＬ２
ＭＰＨ［８］  ％ｄｓｔ，Ｆ（ｕ），ｋ
ＡＤＤＷ［８］  ％ｒｅｓｕｌｔ
（ＬＡＢＥＬ２：次行あるいは次列の命令）
の命令が順に入力される場合を例に挙げて、演算処理装置１の動作を具体的に説明する。
【００４０】
演算処理装置１にＢＥＱＩ命令が入力されると、プログラム制御部３０が、Ｆ（ｕ）の値が“０”であるか否かを判定し、Ｆ（ｕ）の値が“０”であると判定した場合には、ＬＡＢＥＬ２（次の行あるいは列に関する命令）にジャンプする。
一方、プログラム制御部３０が、Ｆ（ｕ）の値が“０”でないと判定した場合、続いて、乗算部５０がＭＰＨ命令を実行する。具体的には、乗算部５０が、Ｆ（ｕ）の値を所定の定数“ｋ”と乗算し、乗算結果を所定のベクトルレジスタ（％ｄｓｔ）に格納する。なお、この処理は、ベクトルパイプライン処理される。
【００４１】
また、ＭＰＨ命令が実行を開始された次のサイクルにおいて、加減算部６０がＡＤＤＷ命令を実行する。具体的には、ＭＰＨ命令の処理結果である８個の要素（％ｄｓｔに格納される各値）を加減算部６０が加算し総和を算出する。
ここで、ベクトルプロセッサ２には、このような命令をブロックの各行に施した後、各列に施す内容のプログラムが入力され、ベクトルプロセッサ２がそのプログラムを実行することにより、処理対象であるブロックが順次処理される。
【００４２】
なお、ベクトルプロセッサ２を、乗算部５０の処理結果が加減算部６０に直接入力される構成とした場合には、逆ＤＣＴ変換処理をより高速化することが可能となる。
また、ＳＩＭＤ演算により並列処理することとすれば、さらに高速化することが可能である。例えば、１ブロックについて１０２４回（１０２４サイクル）の乗算・加算を要する逆ＤＣＴ変換処理を行う場合、ＳＩＭＤ演算により２並列で処理することにより、１／２のサイクル（５１２サイクル）で同等の演算を行うことが可能である。
【００４３】
なお、上述の命令を実行する際、ＢＥＱＩ命令の実行は、ベクトルパイプライン処理により前行あるいは前列のＭＰＨ命令およびＡＤＤＷ命令の実行と並行して行うことが可能である。そのため、ＢＥＱＩ命令を挿入することによっても、逆ＤＣＴ変換処理全体として捉えた場合、処理時間の増大を招くことなく、不要な処理（Ｆ（ｕ）＝０である場合の乗算・加算）を省略することができる。
【００４４】
以上のように、本実施の形態に係る演算処理装置１は、逆ＤＣＴ変換を行う際に、ブロックの行あるいは列について、使用される逆ＤＣＴ係数が“０”であるか否かによって、その行あるいは列に関する１次元逆ＤＣＴ変換処理が省略可能であるか否か判定する。そして、省略可能であると判定した場合、その行あるいは列に関する逆ＤＣＴ変換処理を省略し、省略不可能であると判定した場合にのみ、逆ＤＣＴ変換処理を実行する。
【００４５】
したがって、処理が不要な行あるいは列についての逆ＤＣＴ変換処理を省略することができるため、逆ＤＣＴ変換処理の高速化を図ることが可能となる。
また、ブロックを処理する際に、各行の１次元逆ＤＣＴ変換処理を行った後、各列について１次元逆ＤＣＴ変換処理を行う。
したがって、各行あるいは各列を処理する際に逆ＤＣＴ係数を固定して処理することができるため、その行あるいは列についての逆ＤＣＴ変換処理が不要であるか否かの判定や、逆ＤＣＴ変換処理を行う際の乗算・加算を効率的に行うことが可能となる。
【００４６】
なお、本実施の形態においては、離散コサイン変換（ＤＣＴ）された画像データを復号化する処理（逆ＤＣＴ変換）を例に挙げて説明したが、ウォルシュ・アダマール変換（ＷＨＴ）、離散フーリエ変換（ＤＦＴ）、離散サイン変換（ＤＳＴ）、ハール変換、スラント変換、カルーネン／レーベ変換（ＫＬＴ）等、ＤＣＴ以外で直行変換された画像データを復号化する処理の場合にも適用することが可能である。
【図面の簡単な説明】
【００４７】
【図１】第３の逆ＤＣＴ変換方法の処理順序を示す図である。
【図２】第４の逆ＤＣＴ変換方法の処理順序を示す図である。
【図３】本発明に係るベクトルプロセッサ２を備えた演算処理装置１の機能構成を示すブロック図である。
【図４】従来の１次元逆ＤＣＴ変換（第２の逆ＤＣＴ変換方法）の処理順序を示す図である。
【符号の説明】
【００４８】
１  演算処理装置、１０  フェッチ部、２０  デコード部、３０  プログラム制御部、４０  ＡＬＵ部、５０  乗算部、６０  加減算部、７０  ロード部、８０  ストア部、９０    レジスタファイル部、１００  メモリ制御部、１１０  メモリ
【図１】
2005229182.tif 000006
【図２】
2005229182.tif 000007
【図３】
2005229182.tif 000008
【図４】
2005229182.tif 000009