(57)【要約】  単一回路で各種の符号化方式に対応した逆量子化を行うことができる汎用性の高い逆量子化回路、逆量子化方法及び画像再生装置を提供する。  第１の乗算値生成部１０は、第１の乗算値Ｍ１を生成し、第２の乗算値生成部２０は、第２の乗算値Ｍ２を生成し、シフト量生成部１８０は、ビットシフト量を示すシフト量データＳＦを生成し、乗算処理部１４０は、第１の乗算値Ｍ１及び第２の乗算値Ｍ２を量子化係数データＣＤに乗算し、シフト処理部１７０は、シフト量データＳＦに応じてビットシフト演算を行い、乗算処理部１４０及びシフト処理部１７０のうちの少なくとも１つは、演算処理を行うか否かを符号化方式に応じて決定し、第１の乗算値生成部１０、第２の乗算値生成部２０及びシフト量生成部１８０のうちの少なくとも１つは、生成する値又は値の生成方法を符号化方式に応じて決定する。
2008120433.tif 000002
【特許請求の範囲】
【請求項１】
画像データを符号化方式に基づいて変換することで求めた周波数ごとの係数値を量子化した量子化係数データに対し、演算処理を施すことで逆量子化を行い、前記係数値を復元する逆量子化回路であって、
前記量子化係数データに対する前記演算処理を施すための第１の乗算値を生成する第１の乗算値生成部と、
前記量子化係数データに対する前記演算処理を施すための第２の乗算値を生成する第２の乗算値生成部と、
前記量子化係数データに対する前記演算処理を施すためのビットシフト量を示すシフト量データを生成するシフト量生成部と、
前記第１の乗算値生成部によって生成された前記第１の乗算値及び前記第２の乗算値生成部によって生成された前記第２の乗算値を前記量子化係数データに乗算する乗算処理部と、
前記シフト量生成部によって生成された前記シフト量データに応じて、前記乗算処理部から出力されたデータに対してビットシフト演算を行うシフト処理部とを備え、
前記乗算処理部及び前記シフト処理部のうちの少なくとも１つは、前記演算処理を行うか否かを前記符号化方式に応じて決定し、及び／又は、
前記第１の乗算値生成部、前記第２の乗算値生成部及び前記シフト量生成部のうちの少なくとも１つは、生成する値又は値の生成方法を前記符号化方式に応じて決定することを特徴とする逆量子化回路。
【請求項２】
前記量子化係数データに対する前記演算処理を施すための加算値を生成する加算値生成部と、
前記加算値生成部によって生成された前記加算値を前記乗算処理部から出力されたデータに加算する加算処理部とをさらに備え、
前記シフト処理部は、前記シフト量生成部によって生成された前記シフト量データに応じて、前記加算処理部から出力されたデータに対してビットシフト演算を行い、
前記乗算処理部、前記加算処理部及び前記シフト処理部のうちの少なくとも１つは、前記演算処理を行うか否かを符号化方式に応じて決定し、及び／又は、
前記第１の乗算値生成部、前記第２の乗算値生成部、前記加算値生成部及び前記シフト量生成部のうちの少なくとも１つは、生成する値又は値の生成方法を符号化方式に応じて決定することを特徴とする請求項１記載の逆量子化回路。
【請求項３】
前記第１の乗算値生成部は、量子化幅を示す量子化スケール値を含む前記第１の乗算値を生成し、
前記第２の乗算値生成部は、周波数ごとの量子化幅を示す量子化マトリックス値を含む前記第２の乗算値を生成することを特徴とする請求項１又は２記載の逆量子化回路。
【請求項４】
前記第１の乗算値生成部は、
前記量子化スケール値を生成するスケール値生成部と、
前記量子化スケール値に対して演算処理を施すとともに、前記量子化スケール値及び前記演算処理により得られた値のいずれかを前記第１の乗算値として出力するスケール処理部とを含み、
前記第２の乗算値生成部は、
周波数ごとの前記量子化マトリックス値を生成し、生成した前記量子化マトリックス値を前記第２の乗算値として出力するマトリックス値生成部を含むことを特徴とする請求項３記載の逆量子化回路。
【請求項５】
前記スケール処理部は、前記量子化スケール値、前記量子化スケール値を演算処理することにより得られた値及び所定の定数値のいずれかを前記第１の乗算値として出力し、
前記マトリックス値生成部は、周波数ごとの前記量子化マトリックス値及び所定の定数値のいずれかを前記第２の乗算値として出力することを特徴とする請求項４記載の逆量子化回路。
【請求項６】
前記加算値生成部は、
前記スケール値生成部によって生成された前記量子化スケール値と、前記マトリックス値生成部によって生成された前記量子化マトリックス値とを乗算する乗算器と、
前記量子化スケール値、前記量子化マトリックス値、及び前記量子化スケール値と前記量子化マトリックス値とを乗算することにより得られた値のうちのいずれかの値を選択し、選択した値を前記加算値として前記加算処理部に供給する選択部とを含むことを特徴とする請求項４記載の逆量子化回路。
【請求項７】
前記選択部は、前記量子化スケール値、前記量子化マトリックス値、前記量子化スケール値と前記量子化マトリックス値とを乗算することにより得られた値、及び所定の定数値のうちのいずれかの値を選択し、選択した値を前記加算値として前記加算処理部に供給することを特徴とする請求項６記載の逆量子化回路。
【請求項８】
前記スケール値生成部は、
供給されたデータを量子化スケール値に変換する１種類又は複数種類の第１のスケール変換部と、
前記スケール変換部によって変換された量子化スケール値をさらに変換する第２のスケール変換部と、
前記第１のスケール変換部によって変換された量子化スケール値と前記第２のスケール変換部によってさらに変換された量子化スケール値とのいずれかを選択し、選択した量子化スケール値を前記スケール処理部へ出力する選択部とを含むことを特徴とする請求項４記載の逆量子化回路。
【請求項９】
前記スケール処理部は、
前記スケール値生成部によって生成された前記量子化スケール値に対して演算処理を施す演算部と、
前記スケール値生成部によって生成された前記量子化スケール値と、前記演算部により演算処理が施された量子化スケール値と、所定の定数値とのうちのいずれかの値を選択し、選択した値を前記第１の乗算値として出力する選択部とを含むことを特徴とする請求項４記載の逆量子化回路。
【請求項１０】
前記シフト量生成部は、前記スケール値生成部の前記スケール変換部から出力された前記量子化スケール値を前記シフト量データに変換するシフト量変換部を含むことを特徴とする請求項８記載の逆量子化回路。
【請求項１１】
前記シフト量生成部は、前記シフト量変換部によって変換された前記シフト量データと、所定の定数値とのいずれかを前記シフト量データとして選択し、選択した前記シフト量データを前記シフト処理部に供給する選択部をさらに含むことを特徴とする請求項１０記載の逆量子化回路。
【請求項１２】
前記シフト量生成部は、前記シフト量変換部によって変換された前記シフト量データに対してシフト加算値を加算した値をシフト量データとして前記シフト処理部に供給する加算器をさらに含むことを特徴とする請求項１０記載の逆量子化回路。
【請求項１３】
前記乗算処理部は、前記量子化係数データに前記第１の乗算値を乗算した値、前記量子化係数データに前記第２の乗算値を乗算した値、及び前記量子化係数データに前記第１の乗算値と前記第２の乗算値とを乗算した値のうちのいずれかの値を選択し、選択した値を出力データとして前記加算処理部に供給することを特徴とする請求項２記載の逆量子化回路。
【請求項１４】
前記加算処理部は、前記乗算処理部から供給されたデータの値、及び前記乗算処理部から供給されたデータに前記加算値生成部によって生成された前記加算値を加算することにより得られた値のうちのいずれかの値を選択し、選択した値を出力データとして前記シフト処理部に供給することを特徴とする請求項２記載の逆量子化回路。
【請求項１５】
前記シフト処理部は、前記加算処理部から供給されたデータの値、及び前記ビットシフト演算により得られた値のうちのいずれかの値を選択し、選択した値を出力データとして出力することを特徴とする請求項２に記載の逆量子化回路。
【請求項１６】
前記シフト量生成部によって生成された前記シフト量データに応じた値を前記加算処理部からの出力データに加算することで丸め処理を行い、前記丸め処理を行った処理済データと前記丸め処理を行わない非処理データとを選択的に切替えて前記シフト処理部に出力する丸め処理部をさらに備えることを特徴とする請求項２記載の逆量子化回路。
【請求項１７】
前記シフト処理部から出力されたデータに対して、離散コサイン変換ミスマッチ制御処理を行う演算処理機能と、前記シフト処理部から出力されたデータに対して、クリッピングする範囲が設定可能な飽和処理を行う演算処理機能とを含み、前記離散コサイン変換ミスマッチ制御処理及び前記飽和処理において、それぞれ処理済データと非処理データとを選択的に切替えて出力する後段処理部をさらに備えることを特徴とする請求項１又は２記載の逆量子化回路。
【請求項１８】
前記量子化係数データを整数倍する演算処理機能と、デッドゾーンに対応した加算値を前記量子化係数データに加算する演算処理機能とを含み、前記量子化係数データを整数倍する演算処理及び前記量子化係数データに前記加算値を加算する演算処理において、それぞれ演算処理済データと非演算処理データとを選択的に切替えて出力する前段処理部をさらに備えることを特徴とする請求項１記載の逆量子化回路。
【請求項１９】
画像データを符号化方式に基づいて変換することで求めた周波数ごとの係数値を量子化した量子化係数データに対し、演算処理を施すことで逆量子化を行い、前記係数値を復元する逆量子化方法であって、
前記量子化係数データに対する前記演算処理を施すための第１の乗算値を生成する第１の乗算値生成ステップと、
前記量子化係数データに対する前記演算処理を施すための第２の乗算値を生成する第２の乗算値生成ステップと、
前記量子化係数データに対する前記演算処理を施すためのビットシフト量を示すシフト量データを生成するシフト量生成ステップと、
前記第１の乗算値生成ステップにおいて生成された前記第１の乗算値及び前記第２の乗算値生成ステップにおいて生成された前記第２の乗算値を前記量子化係数データに乗算する乗算処理ステップと、
前記シフト量生成ステップにおいて生成された前記シフト量データに応じて、前記乗算処理ステップにおいて出力されたデータに対してビットシフト演算を行うシフト処理ステップとを含み、
前記乗算処理ステップ及び前記シフト処理ステップのうちの少なくとも１つは、前記演算処理を行うか否かを前記符号化方式に応じて決定し、及び／又は、
前記第１の乗算値生成ステップ、前記第２の乗算値生成ステップ及び前記シフト量生成ステップのうちの少なくとも１つは、前記生成する値又は値の生成方法を前記符号化方式に応じて決定することを特徴とする逆量子化方法。
【請求項２０】
量子化係数データを取得する量子化係数データ取得部と、
前記量子化係数データ取得部によって取得された量子化係数データを逆量子化することで係数値を復元する前記請求項１記載の逆量子化回路と、
前記逆量子化回路によって復元された係数値を画像データに変換する変換部と、
前記変換部によって変換された画像データを出力する出力部とを備えることを特徴とする画像再生装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像の符号化方式に基づいた復号処理における逆量子化回路、逆量子化方法及び画像再生装置に関するものである。
【背景技術】
【０００２】
近年、ネットワークの高速化や、パーソナルコンピュータ及びデジタルテレビジョン受信機などの一般家庭への急速な普及により、各種マルチメディアサービスが広く実用化されている。とりわけ、デジタル放送システムやインターネットを利用したコンテンツ配信システムなどでは、映像や音声などのコンテンツデータをＭＰＥＧ（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）方式などの規格に基づいて圧縮符号化し、圧縮符号化したコンテンツデータである符号化データの断片をパケットとし、パケットの集合をストリーム信号として伝送したり、あるいはハードディスク、ＤＶＤ又はメモリカードなどに記録するような形態が一般的となっている。また、このようなストリーム信号を受け取る、パーソナルコンピュータ、セットトップボックス、携帯情報端末装置又は携帯電話機などの情報機器は、ストリーム信号に含まれる符号化データを抽出し、抽出した符号化データに対して復号化処理を施すことで、コンテンツデータを復元する。【０００３】
このような、画像を圧縮符号化する方式として、静止画像を圧縮符号化する方式では、デジタルカメラなどに広く利用されているＪＰＥＧ（Ｊｏｉｎｔ  Ｐｈｏｔｏｇｒａｐｈｉｃ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）方式がある。また、動画像を圧縮符号化する方式では、ＣＤ−ＲＯＭなどへ動画像を記録するＭＰＥＧ−１方式がある。これによって、例えば離散コサイン変換に基づく画像圧縮符号化手法などの基本技術が確立された。このような基本技術に基づき、例えばデジタル放送で利用されているＭＰＥＧ−２方式、インターネットを利用したコンテンツなどに利用されるＭＰＥＧ−４方式、そしてさらに高圧縮符号化を目的としたＭＰＥＧ−４ＡＶＣ方式などが画像信号を扱う分野で標準方式として利用されている。【０００４】
このような画像圧縮符号化の基本アルゴリズムは、動き補償予測方式に上述の離散コサイン変換方式を組み合わせたハイブリッド圧縮符号化方式である。ハイブリッド圧縮符号化方式では、画像に対して１画面内データそのものを離散コサイン変換したデータと、動き補償画面間予測したデータに対して離散コサイン変換したデータとの両方を組み合わせて画像圧縮符号化が行われる。【０００５】
また、離散コサイン変換は、マクロブロックと呼ばれるブロック単位で行われる。このマクロブロックを構成する各画素データは、離散コサイン変換により、直流成分から高周波成分までの周波数ごとの振幅強度を示す複数の係数値へと変換される。さらに、各係数値は、各圧縮符号化方式に基づいた手法で量子化される。このようなアルゴリズムを基本として画像の圧縮符号化が行われる。また、圧縮符号化により生成されたデータに対し、その圧縮符号化に対応した復号化処理を行うことで画像が復元できる。すなわち、量子化された係数値である量子化係数データに対して逆量子化を行い、逆量子化により復元されたデータに対して逆離散コサイン変換を施すことで、マクロブロック単位の画素データが復元できる。【０００６】
一方、このように、さまざまな画像の圧縮符号化方式が提案されているため、従来、パーソナルコンピュータや携帯情報端末装置など一つの装置において異なった圧縮符号化方式に対応するような圧縮符号化のための回路を設けた装置などが提案されている。例えば、特許文献１では、Ｈ．２６３方式の逆量子化部と、ＭＰＥＧ−２方式の逆量子化部とを備える画像復号化装置において、それぞれの符号化方式の量子化係数データに応じてそれぞれの逆量子化部を切替えて逆量子化を行うような手法が提案されている。【０００７】
しかしながら、従来の画像復号化装置のように、それぞれの符号化方式に対応させてそれぞれ個別に逆量子化部を構成した場合、回路規模が大きくなるとともに、例えば、新たな符号化方式が提案された場合、迅速に対応することが難しく、復号化処理を行うためのＬＳＩ（大規模集積回路）などの再設計が必要になるなどの問題があった。
【特許文献１】特開２００４−２０１３４５号公報
【発明の開示】
【０００８】
本発明は、上記の問題を解決するためになされたもので、単一の回路で各種の画像符号化方式に対応した逆量子化を行うことができる汎用性の高い逆量子化回路、逆量子化方法及び画像再生装置を提供することを目的とするものである。
【０００９】
本発明の一局面に係る逆量子化回路は、画像データを符号化方式に基づいて変換することで求めた周波数ごとの係数値を量子化した量子化係数データに対し、演算処理を施すことで逆量子化を行い、前記係数値を復元する逆量子化回路であって、前記量子化係数データに対する前記演算処理を施すための第１の乗算値を生成する第１の乗算値生成部と、前記量子化係数データに対する前記演算処理を施すための第２の乗算値を生成する第２の乗算値生成部と、前記量子化係数データに対する前記演算処理を施すためのビットシフト量を示すシフト量データを生成するシフト量生成部と、前記第１の乗算値生成部によって生成された前記第１の乗算値及び前記第２の乗算値生成部によって生成された前記第２の乗算値を前記量子化係数データに乗算する乗算処理部と、前記シフト量生成部によって生成された前記シフト量データに応じて、前記乗算処理部から出力されたデータに対してビットシフト演算を行うシフト処理部とを備え、前記乗算処理部及び前記シフト処理部のうちの少なくとも１つは、前記演算処理を行うか否かを前記符号化方式に応じて決定し、及び／又は、前記第１の乗算値生成部、前記第２の乗算値生成部及び前記シフト量生成部のうちの少なくとも１つは、生成する値又は値の生成方法を前記符号化方式に応じて決定する。
【００１０】
この構成によれば、量子化係数データに対する演算処理を施すための第１の乗算値が生成され、量子化係数データに対する演算処理を施すための第２の乗算値が生成され、量子化係数データに対する演算処理を施すためのビットシフト量を示すシフト量データが生成される。そして、乗算処理部によって、第１の乗算値及び第２の乗算値が量子化係数データに乗算され、シフト処理部によって、シフト量データに応じて、乗算処理部から出力されたデータに対してビットシフト演算が行われる。乗算処理部及びシフト処理部のうちの少なくとも１つにおいて、演算処理を行うか否かが符号化方式に応じて決定される。また、第１の乗算値生成部、第２の乗算値生成部及びシフト量生成部のうちの少なくとも１つにおいて、生成する値又は値の生成方法が符号化方式に応じて決定される。
【００１１】
本発明によれば、演算処理を行うか否か、及び生成する値又は値の生成方法が符号化方式に応じて決定されるので、単一の回路で各種の符号化方式に対応した逆量子化を行うことができ、回路規模の削減を図れるとともに、新たな符号化方式が提案された場合にも迅速に対応することができる。また、復号化処理を行うためのＬＳＩなどの再設計が不要となるなど、汎用性の高い逆量子化回路を提供することができる。
【００１２】
本発明の目的、特徴及び利点は、以下の詳細な説明と添付図面とによって、より明白となる。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施の形態１における逆量子化回路の構成を示すブロック図である。
【図２】ＪＰＥＧ方式、ＭＰＥＧ−１方式及びＭＰＥＧ−２方式における逆量子化式を示す図である。
【図３】Ｈ．２６３方式及びＭＰＥＧ−４における逆量子化式を示す図である。
【図４】Ｈ．２６４方式における逆量子化式を示す図である。
【図５】本発明の実施の形態１の逆量子化回路において、各逆量子化式に対応した演算処理の一覧を示す図である。
【図６】図１に示す第１の乗算値生成部、第２の乗算値生成部、加算値生成部及びシフト量生成部の詳細な構成を示すブロック図である。
【図７】本発明の実施の形態２における逆量子化回路の構成を示すブロック図である。
【図８】本発明の実施の形態２の逆量子化回路において、各逆量子化式に対応した演算処理の一覧を示す図である。
【図９】本発明の実施の形態３に係る画像再生装置の構成を示すブロック図である。
【発明を実施するための最良の形態】
【００１４】
以下、本発明の実施の形態について図面を参照しながら詳細に説明する。尚、以下の実施の形態は、本発明を具体化した一例であって、本発明の技術的範囲を限定する性格のものではない。【００１５】
（実施の形態１）
図１は、本発明の実施の形態１における逆量子化回路の構成を示すブロック図である。【００１６】
図１に示すように、本発明の実施の形態１における逆量子化回路は、入力端子１３に供給された量子化係数データ（以下、適宜、“係数データ”と呼ぶ）ＣＤに対し、各種の演算処理を施し、元の係数値を復元し、復元した係数値である復元データＲＤを出力端子１９に出力する。また、本逆量子化回路は、画像の符号化方式として知られる、静止画像を対象にしたＪＰＥＧ方式、動画像を対象にしたＭＰＥＧ−１方式、ＭＰＥＧ−２方式、ＭＰＥＧ−４方式、Ｈ．２６３方式、ＭＰＥＧ−４ＡＶＣ方式とも呼ばれるＨ．２６４方式などにおける逆量子化回路を実現している。さらに、これらの符号化方式に加えて、将来提案される符号化方式に対しても対応可能な構成としている。【００１７】
図１において、本逆量子化回路には、係数データＣＤが入力端子１３に供給される。係数データＣＤは、画像の符号化方式に基づき画像データを例えば直交変換することで求めた周波数ごとの係数値を量子化したデータである。本逆量子化回路は、このような係数データＣＤに対し、各種の符号化方式やその符号化方式の符号化種別に応じて演算処理を選択的に施すことで、画像データのブロック単位での例えば離散コサイン変換（ＤＣＴ：Ｄｉｓｃｒｅｔｅ  Ｃｏｓｉｎｅ  Ｔｒａｎｓｆｏｒｍ、以下、適宜、“ＤＣＴ”と呼ぶ）で求めた各周波数成分の係数値を復元する。【００１８】
図１に示す逆量子化回路は、係数データＣＤに対し逆量子化のための各種演算処理を行うための演算処理部を備える。逆量子化回路は、演算処理部として、乗算処理部１４０、加算処理部１５０、シフト処理部１７０及び後段処理部１９０を備える。【００１９】
乗算処理部１４０は、係数データＣＤに対し量子化スケールに基づく逆量子化を行うとともに、係数データＣＤに対し量子化マトリックスに基づく逆量子化を行う。加算処理部１５０は、係数データＣＤに対し所定の加算値を加算する。シフト処理部１７０は、係数データＣＤに対し所定のビット数（シフト量）だけシフトさせるビットシフト演算を行う。後段処理部１９０は、係数データＣＤに対し飽和処理及びＤＣＴミスマッチ制御処理を行う。【００２０】
また、逆量子化回路は、第１の乗算値生成部１０、第２の乗算値生成部２０、加算値生成部１６０及びシフト量生成部１８０を備える。第１の乗算値生成部１０は、乗算処理部１４０において量子化スケールに基づく逆量子化を行うための第１の乗算値Ｍ１を生成する。第２の乗算値生成部２０は、乗算処理部１４０において量子化マトリックスに基づく逆量子化を行うための第２の乗算値Ｍ２を生成する。加算値生成部１６０は、加算処理部１５０に供給するための所定の加算値ＯＦを生成する。シフト量生成部１８０は、シフト処理部１７０に供給するためのシフト量データＳＦを生成する。【００２１】
また、逆量子化回路は、制御部１００を備える。制御部１００は、乗算処理部１４０、加算処理部１５０、シフト処理部１７０及び後段処理部１９０に対し、それぞれの演算処理を実行するか否かを指示する制御情報を出力する。【００２２】
本発明の実施の形態１における逆量子化回路において、それぞれの演算処理部は、指示に応じて、逆量子化のための演算処理の内容が選択可能であるとともに、逆量子化のための演算処理に含めるか否かを選択可能としている。すなわち、各演算処理部は、その演算処理部の演算処理を逆量子化処理に含めるよう指示されるとその演算処理部の演算処理を実行したデータ値を出力し、その演算処理部の演算処理を逆量子化処理に含めないよう指示されるとその演算処理部の演算処理を実行しないデータ値を出力する。このように、各演算処理部は、例えば、演算処理済データと非演算処理データとを選択的に切替えて出力する。さらに、演算処理部は、例えばビットシフトさせるシフト演算処理の場合のシフト量のような演算処理の内容についても選択可能としている。【００２３】
さらに、本発明の実施の形態１における逆量子化回路は、乗算値生成部１０、乗算値生成部２０、加算値生成部１６０及びシフト量生成部１８０においても、生成する値又はデータの生成方法をそれぞれに選択可能としている。すなわち、制御部１００は、乗算値生成部１０、乗算値生成部２０、加算値生成部１６０及びシフト量生成部１８０に対し、生成する値又はデータの生成方法を指示する制御情報を出力する。【００２４】
ここで、逆量子化回路に入力される量子化係数データについて説明する。符号化データを含む符号化ストリームは、不図示の可変長復号化部に供給される。可変長復号化部は、供給された符号化ストリームに含まれる符号化データから量子化係数値、及び以下で説明する抽出情報などを復元する。すなわち、供給された符号化データのうち、例えば量子化係数値は一般的にランレベル符号化されたデータで構成されている。そのため、まず、可変長復号化部は、ゼロの量子化係数値の個数であるランデータと、非ゼロの量子化係数値であるレベルデータとを復元する。【００２５】
次に、可変長復号化部は、復元したランデータとレベルデータとから、符号化処理におけるスキャンパターンの順序に従った１次元の量子化係数列を復元する。可変長復号化部は、このように復元した量子化係数値を量子化係数データとして、順次、不図示の符号化情報抽出部に供給する。同様に、量子化係数値以外の抽出情報についても復元を行い符号化情報抽出部に供給する。【００２６】
次に、符号化情報抽出部は、可変長復号化部において復元したデータから、逆量子化処理を行うための符号化データに関する情報を抽出情報として抽出する。符号化情報抽出部は、このような抽出情報として、符号化データの種別に関した情報としての符号化種別情報及びマクロブロック種別情報などを抽出する。【００２７】
符号化種別情報は、符号化データを生成するのに用いられた符号化方式を示す情報である。ピクチャ種別情報は、現在供給されている符号化データが、例えばＭＰＥＧ−２方式において、Ｉピクチャと呼ばれる画面内符号化処理により生成されたデータ、Ｐピクチャと呼ばれる画面間前方予測符号化処理により生成されたデータ、及びＢピクチャと呼ばれる画面間双方向予測符号化処理により生成されたデータのうちのどのデータであるかを示す情報である。なお、ＰピクチャやＢピクチャにはピクチャ内にイントラのマクロブロックが含まれる場合があり、このような情報はマクロブロック種別情報として別途抽出される。本実施の形態では、ピクチャ種別情報及びマクロブロック種別情報を、現在処理中のブロックが画面内符号化であるイントラか、あるいは画面間符号化であるインターや非イントラかを識別するための情報として利用している。符号化情報抽出部は、量子化係数データを入力端子１３に供給するとともに、抽出情報を制御部１００に通知する。制御部１００は、符号化種別情報及びマクロブロック種別情報に基づいて、入力される係数データの符号化方式の種類を識別し、符号化方式の種類に応じた制御情報を出力する。【００２８】
本発明の実施の形態１における逆量子化回路は、このような基本構成であり、各種の符号化方式に応じて各演算処理部の演算処理の実行の有無や処理内容を選択的に切替えることにより、単一の回路で各種の画像符号化方式に対応できる汎用性の高い逆量子化回路を実現している。特に、本発明の実施の形態１における逆量子化回路は、汎用性を重視した構成であり、既存の各種符号化方式に対応するとともに、将来実施される符号化方式に対しても対応可能なような構成としている。以下、本発明の実施の形態１における逆量子化回路の詳細な構成について説明する。【００２９】
図１に示すように、本逆量子化回路の入力端子１３に供給された係数データＣＤは、まず、乗算処理部１４０に供給される。乗算処理部１４０は、第１の乗算器１４１（以下、適宜、単に“乗算器１４１”と呼ぶ）及び第２の乗算器１４２（以下、適宜、単に“乗算器１４２”と呼ぶ）を有する。乗算器１４１は、入力端子１３に供給された係数データＣＤに対して第１の乗算値生成部１０（以下、適宜、単に“乗算値生成部１０”と呼ぶ）から供給された第１の乗算値Ｍ１（以下、適宜、単に“乗算値Ｍ１”と呼ぶ）を乗算する。乗算器１４２は、乗算器１４１から出力されたデータに対して第２の乗算値生成部２０（以下、適宜、単に“乗算値生成部２０”と呼ぶ）から供給された第２の乗算値Ｍ２（以下、適宜、単に“乗算値Ｍ２”と呼ぶ）を乗算する。【００３０】
また、乗算処理部１４０において、乗算器１４１は、制御部１００からの制御情報ＣＮＴ＿Ｍ１により乗算値Ｍ１を乗算する演算処理を行うか否かの切替制御が可能なように構成されている。また、乗算器１４２は、制御部１００からの制御情報ＣＮＴ＿Ｍ２により乗算値Ｍ２を乗算する演算処理を行うか否かの切替制御が可能なように構成されている。このような乗算処理部１４０の構成により、例えば、制御情報ＣＮＴ＿Ｍ１及び制御情報ＣＮＴ＿Ｍ２を用いて、制御部１００によってそれぞれ演算処理を行わないよう指示されると、乗算処理部１４０からは、入力端子１３に供給された係数データＣＤが、乗算処理部１４０の出力データＭＤとして出力される。また、例えば逆に、制御情報ＣＮＴ＿Ｍ１及び制御情報ＣＮＴ＿Ｍ２を用いて、制御部１００によってそれぞれ演算処理を行うよう指示されると、乗算処理部１４０からは、係数データＣＤに対して乗算値Ｍ１及び乗算値Ｍ２を乗算した値のデータが出力データＭＤとして出力される。【００３１】
以上のように、乗算処理部１４０は、係数データＣＤに対して乗算値Ｍ１及び乗算値Ｍ２を乗算する演算処理の機能を有するとともに、これら演算処理を演算対象に含めるか否かをそれぞれに選択可能とし、このような乗算演算の処理において演算処理済データと非演算処理データとを選択的に切替えて出力するように構成されている。【００３２】
なお、乗算処理部１４０において、図１に示すような係数データＣＤに対してまず乗算値Ｍ１を乗算し次に乗算値Ｍ２を乗算するような構成に代えて、係数データＣＤに対してまず乗算値Ｍ２を乗算し次に乗算値Ｍ１を乗算するような構成であってもよい。また、乗算処理部１４０は、乗算値Ｍ１と乗算値Ｍ２とを乗算した値を、係数データＣＤに対して乗算するような構成であってもよい。【００３３】
このように、乗算処理部１４０は、係数データＣＤに乗算値Ｍ１を乗算した値、係数データＣＤに乗算値Ｍ２を乗算した値、及び係数データＣＤに乗算値Ｍ１と乗算値Ｍ２とを乗算した値のうちのいずれかの値を、制御情報ＣＮＴ＿Ｍ１及び制御情報ＣＮＴ＿Ｍ２を用いて選択する選択機能を有し、選択された値を出力データＭＤとして加算処理部１５０に供給する。また、乗算処理部１４０におけるこのような選択機能は、係数データＣＤの種類に応じて各値が選択される。【００３４】
次に、乗算値生成部１０は、上述した乗算処理部１４０に供給するための乗算値Ｍ１を生成する。乗算値生成部１０は、主に、画像の符号化方式において量子化スケールと呼ばれているマクロブロックなどのブロックごとに定めた量子化幅を示す量子化スケール値（以下、適宜、“スケール値”と呼ぶ）を生成する。乗算値生成部１０は、このようなスケール値を生成するため、図１に示すように、スケール値を生成するためのスケール値生成部１１０を有している。さらに、乗算値生成部１０は、スケール値生成部１１０で生成したスケール値に対して各符号化方式や符号化方式における符号化種別に対応させた演算処理を選択的に施すことで乗算値Ｍ１を出力するスケール処理部２１０を有している。【００３５】
本実施の形態における逆量子化回路は、このような乗算値生成部１０に対し量子化スケールインデックス（以下、適宜、“スケールインデックス”と呼ぶ）ＳＣＩを供給する入力端子１１を備えている。入力端子１１に供給されたスケールインデックスＳＣＩは、乗算値生成部１０のスケール値生成部１１０に供給される。スケールインデックスＳＣＩは、実際のスケール値に対応させた、例えば連続の整数値とするようなコードである。すなわち、例えば、ＭＰＥＧ−２方式のスケール値は、１、２、・・・、１０４、１１２のように増加する３１個の非線形スケールとなるような特性値として規定されている。このようなスケール値を選択する場合、例えば、スケールインデックスＳＣＩが０のときスケール値として１が選択され、スケールインデックスＳＣＩが１のときスケール値として２が選択され、スケールインデックスＳＣＩが３０のときスケール値として１０４が選択され、スケールインデックスＳＣＩが３１のときスケール値として１１２が選択される。【００３６】
スケール値生成部１１０は、このようなスケールインデックスＳＣＩから実際のスケール値に変換するような変換機能を有している。変換機能は、例えば変換テーブルや変換演算器などによって構成されており、制御部１００からの制御情報ＣＮＴ＿ＳＣにより変換の種類が切替可能なように構成されている。さらに、乗算値生成部１０において、スケール処理部２１０は、スケール値生成部１１０で生成したスケール値及びスケール処理部２１０による演算により得られた値のいずれかを、制御部１００からの制御情報ＣＮＴ＿ＳＰの指示に従って選択し、選択した値を乗算値Ｍ１として出力する。【００３７】
このような構成により、乗算値生成部１０は、制御情報ＣＮＴ＿ＳＣ及びＣＮＴ＿ＳＰに応じて、例えばＭＰＥＧ−１方式、ＭＰＥＧ−２方式、ＭＰＥＧ−４方式及びＨ．２６３方式の場合には、上述したようなスケール値を乗算値Ｍ１として出力する。また、乗算値生成部１０は、例えばＪＰＥＧ方式の場合には、固定値を乗算値Ｍ１として出力する。さらに、乗算値生成部１０は、Ｈ．２６４方式の場合には、Ｈ．２６４方式に基づき正規化されたスケール値である正規化係数の値を乗算値Ｍ１として出力する。以上のように、乗算値生成部１０は、係数データＣＤに対する演算処理を施すための乗算値Ｍ１を生成する。【００３８】
次に、乗算値生成部２０は、上述した乗算処理部１４０に供給する乗算値Ｍ２を生成する。乗算値生成部２０は、主に、画像の符号化方式において周波数ごとに量子化幅を設定した量子化マトリックスと呼ばれている量子化マトリックス値（以下、適宜、“マトリックス値”と呼ぶ）を生成する。このため、図１に示すように、乗算値生成部２０は、このようなマトリックス値を生成するためのマトリックス値生成部１２０を有している。【００３９】
本実施の形態における逆量子化回路は、量子化マトリックスデータ（以下、適宜、“マトリックスデータ”と呼ぶ）ＭＸＤが供給される入力端子１２を備えている。入力端子１２に供給されたマトリックスデータＭＸＤは、マトリックス値生成部１２０に供給される。マトリックス値生成部１２０は、例えばこのようなマトリックスデータＭＸＤに応じて書き換えが可能なメモリなどの記憶部で構成され、周波数ごとのマトリックス値を出力する。マトリックス値生成部１２０における記憶部は、例えばマトリックス値を順番に格納したテーブルなどで構成され、制御部１００からの制御情報ＣＮＴ＿ＭＸによりマトリックス値の種類が切替可能なように構成されている。【００４０】
このような構成により、マトリックス値生成部１２０は、制御情報ＣＮＴ＿ＭＸに応じて、例えばＪＰＥＧ方式、ＭＰＥＧ−１方式、ＭＰＥＧ−２方式、ＭＰＥＧ−４方式及びＨ．２６４方式の場合には、上述したようなマトリックス値を乗算値Ｍ２として出力する。また、マトリックス値生成部１２０は、例えばＨ．２６３方式の場合には、固定値を乗算値Ｍ２として出力する。以上のように、乗算値生成部２０は、係数データＣＤに対する演算処理を施すための乗算値Ｍ２を生成する。【００４１】
次に、乗算処理部１４０から出力された出力データＭＤは、図１に示すように、加算処理部１５０に供給される。加算処理部１５０は、乗算処理部１４０からの出力データＭＤに対して加算値生成部１６０から供給された加算値ＯＦを加算する加算器１５１を有している。【００４２】
また、加算処理部１５０において、加算器１５１は、制御部１００からの制御情報ＣＮＴ＿ＡＰにより加算値ＯＦを加算する演算処理を行うか否かの切替制御が可能なように構成されている。このような加算処理部１５０の構成により、例えば、制御情報ＣＮＴ＿ＡＰを用いて、加算演算処理を行わないよう指示されると、加算処理部１５０からは、乗算処理部１４０からの出力データＭＤが加算処理部１５０の出力データＡＤとして出力される。また、例えば逆に、制御情報ＣＮＴ＿ＡＰを用いて、加算演算処理を行うよう指示されると、加算処理部１５０からは、乗算処理部１４０からの出力データＭＤに対して加算値ＯＦを加算した値のデータが出力データＡＤとして出力される。出力データＡＤは、以下で説明する丸め処理部１５５に供給される。【００４３】
以上のように、加算処理部１５０は、係数データＣＤに対して加算値ＯＦを加算する演算処理の機能を有するとともに、この加算演算処理を演算対象に含めるか否かを選択可能とし、このような加算演算処理において演算処理済データと非演算処理データとを選択的に切替えて出力するように構成されている。【００４４】
このように、加算処理部１５０は、乗算処理部１４０から供給された出力データＭＤの値及び乗算処理部１４０から供給された出力データＭＤに対する加算値ＯＦの加算により得られた値のうちのいずれかの値が制御情報ＣＮＴ＿ＡＰを用いて選択できる選択機能を有しており、選択された値を出力データＡＤとして丸め処理部１５５に出力する。【００４５】
次に、加算値生成部１６０は、上述した加算処理部１５０に供給する加算値ＯＦを生成する。加算値生成部１６０は、制御部１００からの制御情報ＣＮＴ＿ＯＦによる指示に従って、各符号化方式に応じた加算値ＯＦを選択的に出力し、加算処理部１５０に供給する。以上のように、加算値生成部１６０は、係数データＣＤに対する演算処理を施すための加算値ＯＦを生成する。【００４６】
なお、加算処理部１５０及び加算値生成部１６０は、ＭＰＥＧ−１方式、ＭＰＥＧ−２方式、ＭＰＥＧ−４方式及びＨ．２６３方式などで規定されているデッドゾーンのある量子化方式に対応するために設けている。例えば、ＭＰＥＧ−２方式の場合、符号化種別として画面内符号化のデータに対してはデッドゾーン処理を行わず、画面間符号化のデータに対してはデッドゾーン処理を行うよう規定されている。量子化方式におけるこのようなデッドゾーンとは、係数データＣＤの値を０に丸める範囲のことを示しており、上述の符号化方式においてこのデッドゾーンの範囲を所定の範囲として指定することで圧縮量を制御している。通常、量子化においてこのようなデッドゾーンを設ける場合、係数データＣＤの値が０になる範囲を他の値となる範囲よりも広くすることにより高圧縮化を図っている。【００４７】
よって、例えば、ＭＰＥＧ−２の係数データＣＤに対して逆量子化処理を行う場合、入力端子１３に画面内符号化の係数データＣＤが供給された場合にはデッドゾーンのある量子化に対応する逆量子化の処理を行わないように、また画面間符号化の係数データＣＤが供給された場合にはデッドゾーンのある量子化に対応する逆量子化の処理を行うように、加算処理部１５０及び加算値生成部１６０が制御される。これにより、ＭＰＥＧ−２方式に規定されたデッドゾーンのある量子化に対応する処理を行うことができる。【００４８】
本実施の形態では、加算値生成部１６０においてデッドゾーンの範囲に応じた値を加算値ＯＦとして生成し、加算処理部１５０において乗算処理部１４０からの出力データＭＤに加算値ＯＦを加算することで、このようなデッドゾーンのある量子化に対応する逆量子化の処理を行っている。また、加算処理部１５０における制御情報ＣＮＴ＿ＡＰ、及び加算値生成部１６０における制御情報ＣＮＴ＿ＯＦを利用して、それぞれの符号化方式で規定されたデッドゾーンに対する処理の有無を切替えている。【００４９】
次に、加算処理部１５０から出力された出力データＡＤは、図１に示すように、丸め処理部１５５に供給される。丸め処理部１５５は、加算処理部１５０からの出力データＡＤに対して丸め処理を行う丸め演算器１５６を有している。また、丸め処理部１５５において、丸め演算器１５６は、制御部１００からの制御情報ＣＮＴ＿ＲＮの指示内容により丸め演算処理を行うか否かの切替制御が可能なように構成されている。【００５０】
丸め演算器１５６は、制御部１００からの制御情報ＣＮＴ＿ＲＮの指示内容により丸め演算処理を行うよう指示されると、以下で説明するシフト処理部１７０でのシフト演算処理の内容及びそのシフト量に応じた丸め値を加算することで、シフト処理部１７０と組み合わせた丸め付きの除算処理を実現する。すなわち、例えば、後段のシフト処理部１７０において右シフトが行われる際には、そのシフト量に対応する丸め値が丸め演算器１５６で加算され、このようにして、丸め処理部１５５とシフト処理部１７０とによる除算処理が実行される。【００５１】
このような丸め処理部１５５の構成により、例えば、制御情報ＣＮＴ＿ＲＮを用いて、制御部１００によって丸め演算処理を行わないよう指示されると、丸め処理部１５５からは、加算処理部１５０からの出力データＡＤが丸め処理部１５５の出力データＲＮとして出力される。また、例えば逆に、制御情報ＣＮＴ＿ＲＮを用いて、丸め演算処理を行うよう指示されると、丸め処理部１５５からは、加算処理部１５０からの出力データＡＤに対して丸め処理を行った値のデータが出力データＲＮとして出力される。出力データＲＮは、シフト処理部１７０に供給される。【００５２】
次に、丸め処理部１５５から出力された出力データＲＮは、図１に示すように、シフト処理部１７０に供給される。シフト処理部１７０は、丸め処理部１５５からの出力データＲＮに対してシフト量生成部１８０から供給されたシフト量データＳＦに応じて出力データＲＮのビットシフトを行うシフト演算器１７１を有している。【００５３】
また、シフト処理部１７０において、シフト演算器１７１は、制御部１００からの制御情報ＣＮＴ＿ＳＰの指示内容によりシフト演算処理を行うか否かの切替制御が可能なように構成されている。このようなシフト処理部１７０の構成により、例えば、制御情報ＣＮＴ＿ＳＰを用いて、制御部１００によってシフト演算処理を行わないよう指示されると、シフト処理部１７０からは、丸め処理部１５５からの出力データＲＮがシフト処理部１７０の出力データＳＤとして出力される。また、例えば逆に、制御情報ＣＮＴ＿ＳＰを用いて、制御部１００によってシフト演算処理を行うよう指示されると、シフト処理部１７０からは、丸め処理部１５５からの出力データＲＮに対してシフト量データＳＦに応じてビットシフトした値のデータが出力データＳＤとして出力される。出力データＳＤは、後段処理部１９０に供給される。【００５４】
さらに、シフト演算器１７１は、制御情報ＣＮＴ＿ＳＰの指示内容により、シフト演算器１７１によるシフト演算処理内容の切替制御も可能なように構成されている。すなわち、シフト演算器１７１は、制御情報ＣＮＴ＿ＳＰにより、シフト演算処理の内容としてシフト演算のシフト方向やシフト量の制御も可能である。【００５５】
以上のように、シフト処理部１７０は、丸め処理部１５５から出力された出力データＲＮに対してシフト量データＳＦに応じてビットシフト演算を行うシフト演算処理の機能を有し、さらに、このシフト演算処理の内容及びこのシフト演算処理を演算対象に含めるか否かを選択可能とし、このようなシフト演算処理において演算処理済データと非演算処理データとを選択的に切替えて出力するように構成されている。【００５６】
このように、シフト処理部１７０は、丸め処理部１５５から供給された出力データＲＮの値、及びビットシフト演算により得られた値のうちのいずれかの値が制御情報ＣＮＴ＿ＳＰを用いて選択できる選択機能を有しており、選択した値を出力データＳＤとして出力する。【００５７】
次に、シフト量生成部１８０は、上述したシフト処理部１７０に供給するシフト量を示すシフト量データＳＦを生成する。このようなシフト量データＳＦは、各符号化方式において規定されたスケール合わせのために用いられる。シフト量生成部１８０は、制御部１００からの制御情報ＣＮＴ＿ＳＦによる指示に従って、このような符号化方式に応じたシフト量データＳＦを選択的に出力し、シフト処理部１７０に供給する。以上のように、シフト量生成部１８０は、係数データに対するシフト演算処理を施すためのシフト量データＳＦを生成する。【００５８】
なお、丸め処理部１５５は、シフト処理部１７０におけるビットシフト演算が右方向へのシフトの場合のみ、加算処理部１５０からの出力データＡＤに対して、シフト量生成部１８０によって生成されたシフト量データＳＦに応じた値を加算することで丸め処理を行う。【００５９】
次に、シフト処理部１７０から出力された出力データＳＤは、図１に示すように、後段処理部１９０に供給される。後段処理部１９０は、シフト処理部１７０からの出力データＳＤに対してＤＣＴミスマッチ制御処理を行うＤＣＴミスマッチ処理部１９１及び１９３と、所定の値以上や所定の値以下の値を所定の値にクリッピングするような飽和処理を行う飽和処理部１９２とを有している。【００６０】
また、飽和処理部１９２は、制御部１００からの制御情報ＣＮＴ＿ＣＬにより飽和処理を行うか否かの切替制御が可能なように構成されている。ＤＣＴミスマッチ処理部１９１は、制御部１００からの制御情報ＣＮＴ＿ＭＳ１により、ＤＣＴミスマッチ制御処理を行うか否かの切替制御が可能なように構成されている。また、ＤＣＴミスマッチ処理部１９３は、制御部１００からの制御情報ＣＮＴ＿ＭＳ２により、ＤＣＴミスマッチ制御処理を行うか否かの切替制御が可能なように構成されている。【００６１】
このような飽和処理及びＤＣＴミスマッチ制御処理は、ＭＰＥＧ−１方式及びＭＰＥＧ−２方式などで規定されている。すなわち、ＭＰＥＧ−１方式やＭＰＥＧ−２方式などの符号化処理及び復号化処理では、それぞれにおいて逆ＤＣＴ処理が必要となるが、符号化器と復号化器の逆ＤＣＴ処理の演算方式によっては、それぞれで復号化した画像が異なり、その誤りが蓄積してしまう可能性があった。このため、符号化方式によっては、このような不具合を改善する目的で、ＤＣＴミスマッチ制御処理が規定されている。【００６２】
また、このようなＤＣＴミスマッチ制御処理の具体的な一例として、例えば、ＭＰＥＧ−１方式の場合には、全ての復元する係数値をゼロに近づける方向で奇数化するような処理が行われる。また、例えば、ＭＰＥＧ−２方式の場合には、全ての係数値を加算して、その和が偶数のときには、最も高周波である成分、すなわち係数［７］［７］成分の値を変更するような処理が行われる。【００６３】
また、飽和処理において、具体的には、飽和処理部１９２は、飽和処理部１９２に供給された係数値が“−２０４８”以下の場合には、“−２０４８”とする値にクリッピングし、飽和処理部１９２に供給された係数値が“２０４７”以上の場合には、“２０４７”とする値にクリッピングするような飽和処理を行う。【００６４】
また、ＭＰＥＧ−１方式などでは、ＤＣＴミスマッチ制御処理の次に飽和処理を行うよう規定されており、ＭＰＥＧ−２方式では、飽和処理の次にＤＣＴミスマッチ制御処理を行うよう規定されている。【００６５】
このため、本逆量子化回路における制御部１００は、ＭＰＥＧ−１方式の係数データＣＤに対して逆量子化処理を行う場合、制御情報ＣＮＴ＿ＭＳ１によりＤＣＴミスマッチ処理部１９１のＤＣＴミスマッチ制御処理を行うよう指示し、制御情報ＣＮＴ＿ＣＬにより飽和処理部１９２の飽和処理を行うよう指示し、制御情報ＣＮＴ＿ＭＳ２によりＤＣＴミスマッチ処理部１９３のＤＣＴミスマッチ制御処理を行わないよう指示する。これにより、ＭＰＥＧ−１方式で規定されたＤＣＴミスマッチ制御処理の次に飽和処理が実行される。【００６６】
また、制御部１００は、ＭＰＥＧ−２方式の係数データＣＤに対して逆量子化処理を行う場合、制御情報ＣＮＴ＿ＭＳ１によりＤＣＴミスマッチ処理部１９１のＤＣＴミスマッチ制御処理を行わないよう指示し、制御情報ＣＮＴ＿ＣＬにより飽和処理部１９２の飽和処理を行うよう指示し、制御情報ＣＮＴ＿ＭＳ２によりＤＣＴミスマッチ処理部１９３のＤＣＴミスマッチ制御処理を行わないよう指示する。これにより、ＭＰＥＧ−２方式で規定された飽和処理の次にＤＣＴミスマッチ制御処理が実行される。【００６７】
このように、ＤＣＴミスマッチ処理部１９１及びＤＣＴミスマッチ処理部１９３を設けることで、飽和処理部１９２の前段あるいは後段でＤＣＴミスマッチ制御処理を行うことが選択できる。なお、ＤＣＴミスマッチ処理部１９１及びＤＣＴミスマッチ処理部１９３に対して、ＤＣＴミスマッチ制御処理を行う条件が設定できるような構成であってもよい。また、ＤＣＴミスマッチ処理部１９１及びＤＣＴミスマッチ処理部１９３に対して、係数データＣＤの種類に応じて演算の有無や演算内容を制御できるような構成であってもよい。【００６８】
以上説明したような演算処理が、それぞれの制御情報に従って各符号化方式に応じて実行される。後段処理部１９０からは、復元された係数値を有した復元データＲＤが出力端子１９に出力される。【００６９】
なお、以下、上述したように、各処理部における演算処理及び各生成部における値やデータの生成方法がそれぞれ選択可能であるとして説明するが、本発明は特にこれに限定されない。例えば、対応する符号化方式の種類に応じて、乗算処理部１４０、加算処理部１５０及びシフト処理部１７０のうちの少なくとも１つの演算処理部において演算処理を演算対象に含めるか否かを選択可能とするような構成であってもよく、第１の乗算値生成部１０、第２の乗算値生成部２０、加算値生成部１６０及びシフト量生成部１８０のうちの少なくとも１つの生成部において生成する値又はデータの生成方法を選択可能とするような構成であってもよい。【００７０】
次に、各符号化方式において規定された逆量子化式について説明する。【００７１】
図２から図４までは、各符号化方式において規定された逆量子化式を示した図である。図２は、静止画像を圧縮符号化する方式として広く利用されているＪＰＥＧ方式、動画像を圧縮符号化する方式として広く利用されているＭＰＥＧ−１方式及びＭＰＥＧ−２方式における逆量子化式を示す図である。図３は、電気通信に関する国際標準機関であるＩＴＵ−Ｔ（Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｔｅｌｅｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｕｎｉｏｎ−Ｔｅｌｅｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｓｔａｎｄａｒｄｉｚａｔｉｏｎ  Ｓｅｃｔｏｒ）勧告により規定されているＨ．２６３方式、及び動画像を圧縮符号化する方式として広く利用されているＭＰＥＧ−４方式における逆量子化式を示す図である。また、図４は、ＩＴＵ−Ｔ勧告により規定されているＨ．２６４方式における逆量子化式を示す図である。また、図２から図４までにおいて、区分で示す項目は、係数データの符号化種別に応じて異なった逆量子化を行うように規定された場合の区分を示しており、Ｉｎｔｒａは画面内符号化、ｎｏｎ−Ｉｎｔｒａは画面間符号化、ＤＣは直流成分、ＡＣは交流成分、ｌｕｍａは輝度データ、ｃｈｒｏｍａは色データである係数データをそれぞれ示している。【００７２】
これら各符号化方式において、ＪＰＥＧ方式の場合、図２に示すように、Ｓｑｖｕで示す係数データに対してＱｖｕで示すマトリックス値を乗算することで逆量子化を行い、逆量子化により復元した係数データＲｖｕを得る。【００７３】
ＭＰＥＧ−１方式の場合、図２に示すように、画面内符号化における直流成分の係数データに対しては、係数データｄｃｔ＿ｚｚ［０］を単に８倍することで逆量子化を行い、逆量子化により復元した係数データｄｃｔ＿ｒｅｃｏｎ［０］［０］を得る。また、画面内符号化における交流成分の係数データに対しては、係数データｄｃｔ＿ｚｚ［ｉ］に対して、スケール値ｑｕａｎｔｉｚｅｒ＿ｓｃａｌｅを２倍した値、マトリックス値ｉｎｔｒａ＿ｑｕａｎｔ［ｍ］［ｎ］、及びスケール合わせとしての１／１６を乗算することで逆量子化を行う。このようにして、逆量子化により復元した係数データｄｃｔ＿ｒｅｃｏｎ［ｍ］［ｎ］を得る。【００７４】
また、画面間符号化における係数データに対しては、係数データｄｃｔ＿ｚｚ［ｉ］を２倍するとともに、その係数データの符号Ｓｉｇｎ（ｄｃｔ＿ｚｚ［ｉ］）を加算し、このようにして得たデータに対して、スケール値ｑｕａｎｔｉｚｅｒ＿ｓｃａｌｅ、マトリックス値ｎｏｎ＿ｉｎｔｒａ＿ｑｕａｎｔ［ｍ］［ｎ］、及びスケール合わせとしての１／１６を乗算することで逆量子化を行う。このようにして、逆量子化により復元した係数データｄｃｔ＿ｒｅｃｏｎ［ｍ］［ｎ］を得る。【００７５】
また、ＭＰＥＧ−１方式における飽和処理及びＤＣＴミスマッチ制御処理においては、ｉｎｔｒａＤＣ以外の係数データに対して、その復元係数値が偶数の場合に、その符号、すなわちＳｉｇｎ（ｄｃｔ＿ｚｚ［ｉ］）が引き算され、ゼロに近づける方向に奇数化される。また、ＤＣＴミスマッチ制御処理を行った後に飽和処理が実行される。【００７６】
次に、ＭＰＥＧ−２方式における逆量子化について説明する。ＭＰＥＧ−２方式の場合、図２で示すように規定された逆量子化の演算式において、例えば、ＱＦ［ｖ］［ｕ］は画面間符号化の係数データを示し、Ｆ”［ｖ］［ｕ］は逆量子化により復元した係数データを示し、Ｗ［ｗ］［ｖ］［ｕ］は画面間符号化におけるマトリックス値を示し、ｑｕａｎｔｉｚｅｒ＿ｓｃａｌｅはスケール値を示している。また、Ｓｉｇｎ（）は、引数の符号を示し、引数の符号が正であれば１、負であれば−１、０であれば０を返すような関数を示している。すなわち、ＭＰＥＧ−２方式での画面間符号化の係数データＱＦ［ｖ］［ｕ］に対しては、係数データＱＦ［ｖ］［ｕ］を２倍するとともに、Ｓｉｇｎ（ＱＦ［ｖ］［ｕ］）で示す上述の関数定義に従った係数データの符号ｋを加算し、このようにして得たデータに対して、マトリックス値Ｗ［ｗ］［ｖ］［ｕ］、スケール値ｑｕａｎｔｉｚｅｒ＿ｓｃａｌｅ、及びスケール合わせとしての１／３２を乗算することで逆量子化を行う。このようにして、逆量子化により復元した復元データＦ”［ｖ］［ｕ］を得る。【００７７】
なお、ＭＰＥＧ−２方式の画面内符号化における交流成分の係数データＱＦ［ｖ］［ｕ］に対しては、係数データＱＦ［ｖ］［ｕ］を２倍した値に対して、マトリックス値Ｗ［ｗ］［ｖ］［ｕ］、スケール値ｑｕａｎｔｉｚｅｒ＿ｓｃａｌｅ、及びスケール合わせとしての１／３２を乗算することで逆量子化を行う。このようにして、逆量子化により復元した復元データＦ”［ｖ］［ｕ］を得る。【００７８】
また、ＭＰＥＧ−２方式の画面内符号化における直流成分の係数データに対しては、係数データＱＦ［０］［０］にスケール値ｉｎｔｒａ＿ｄｃ＿ｍｕｌｔを乗算することで逆量子化を行い、復元データＦ”［０］［０］を得る。【００７９】
また、ＭＰＥＧ−２方式における飽和処理及びＤＣＴミスマッチ制御処理においては、復元係数値の全ての和が偶数の場合に、その復元係数値での最も高周波である成分、すなわち係数［７］［７］成分の値の最下位ビットが反転される。また、飽和処理を行った後にＤＣＴミスマッチ制御処理が実行される。【００８０】
また、ＭＰＥＧ−１方式におけるＳｉｇｎ（ｄｃｔ＿ｚｚ［ｉ］）やＭＰＥＧ−２方式におけるＳｉｇｎ（ＱＦ［ｖ］［ｕ］）、あるいは次に説明するＭＰＥＧ−４方式におけるＳｉｇｎ（ＱＦ［ｖ］［ｕ］）は、それぞれの式において、上述したデッドゾーンとしての機能を表現している。すなわち、例えばＭＰＥＧ−２方式における画面間符号化の係数データＱＦ［ｖ］［ｕ］に対して、係数データＱＦ［ｖ］［ｕ］を２倍した値に符号の値Ｓｉｇｎ（ＱＦ［ｖ］［ｕ］）を加算することで、逆量子化におけるデッドゾーン処理を行うことができる。【００８１】
次に、図３に示すＭＰＥＧ−４方式における逆量子化について説明する。ＭＰＥＧ−４方式の場合、例えば、方式１における画面間符号化及び画面内符号化における交流成分の係数データＱＦ［ｖ］［ｕ］に対しては、図３で示すように規定された逆量子化の演算式が用いられる。演算式において、Ｆ”［ｖ］［ｕ］は逆量子化により復元した係数データを示し、Ｗ［ｗ］［ｖ］［ｕ］は画面間符号化におけるマトリックス値を示し、ｑｕａｎｔｉｚｅｒ＿ｓｃａｌｅはスケール値を示している。また、ｋは、画面内符号化のブロックであるか非画面内符号化（画面間符号化）のブロックであるかにより、デッドゾーン処理を行うか否かを示しており、非画面内符号化のブロックの係数データに対しては、ＭＰＥＧ−２方式での画面間符号化のようにＳｉｇｎ（ＱＦ［ｖ］［ｕ］）で示すデッドゾーン処理を行う。【００８２】
すなわち、例えば、ＭＰＥＧ−４方式の方式１における画面間符号化の係数データＱＦ［ｖ］［ｕ］に対しては、係数データＱＦ［ｖ］［ｕ］が０でない場合、係数データＱＦ［ｖ］［ｕ］を２倍するとともに、係数データの符号Ｓｉｇｎ（ＱＦ［ｖ］［ｕ］）を加算し、このようにして得たデータに対して、マトリックス値Ｗ［ｗ］［ｖ］［ｕ］、スケール値ｑｕａｎｔｉｚｅｒ＿ｓｃａｌｅ、及びスケール合わせとしての１／１６を乗算することで逆量子化を行う。このようにして、逆量子化により復元した係数データＦ”［ｖ］［ｕ］を得る。【００８３】
また、ＭＰＥＧ−４方式における飽和処理及びＤＣＴミスマッチ制御処理においては、方式１のときには、復元係数値の全ての和が偶数の場合に、その復元係数値での最も高周波である成分、すなわち係数［７］［７］成分の値の最下位ビットが反転される。また、方式２のときには、ｉｎｔｒａＤＣ以外の係数データに対して、その復元係数値が偶数の場合に、その絶対値、すなわち｜Ｆ”［ｖ］［ｕ］｜から数値“１”が引き算され、このようにしてゼロに近づける方向に奇数化される。ただし、係数データがゼロの場合には、ゼロが出力される。また、ＤＣＴミスマッチ制御処理を行った後に飽和処理が実行される。【００８４】
次に、図３に示すＨ．２６３方式における逆量子化について説明する。Ｈ．２６３方式の場合、例えば、画面間符号化及び画面内符号化における交流成分の係数データＬＥＶＥＬに対しては、図３で示すように規定された逆量子化の演算式が用いられる。演算式において、ＲＥＣは逆量子化により復元した係数データ、ＱＵＡＮＴはスケール値を示している。すなわち、例えば、Ｈ．２６３方式の画面間符号化の係数データＬＥＶＥＬに対しては、スケール値ＱＵＡＮＴが偶数の場合、係数データＬＥＶＥＬの絶対値を２倍するとともに、１を加算し、このようにして得たデータに対して、スケール値ＱＵＡＮＴを乗算し、さらに、このようにして得たデータに対して、係数データＬＥＶＥＬの符号Ｓｉｇｎ（ＬＥＶＥＬ）が乗算されることで逆量子化が行われる。【００８５】
また、Ｈ．２６３方式における飽和処理及びＤＣＴミスマッチ制御処理においては、ｉｎｔｒａＤＣ以外の係数データに対して、その復元係数値が偶数の場合に、その絶対値、すなわち｜ＲＥＣ｜から数値“１”が引き算され、ゼロに近づける方向に奇数化される。ただし、係数データがゼロの場合には、ゼロが出力される。また、ＤＣＴミスマッチ制御処理を行った後に飽和処理が実行される。【００８６】
次に、図４に示すＨ．２６４方式における逆量子化について説明する。Ｈ．２６４方式は、上述のようなデッドゾーンを採用していないことを１つの特徴としている。さらに、Ｈ．２６４方式は、量子化スケール値を直接符号化せず、量子化パラメータｑＰを符号化し、量子化パラメータｑＰから量子化スケール値を導出するような手法が採用されている。【００８７】
すなわち、Ｈ．２６４方式では、例えば量子化パラメータｑＰが６だけ増加すると量子化スケール値が２倍となるような、量子化パラメータｑＰと量子化スケールの対数とが比例するような仕組みが導入されている。このため、ｑＰを６で除算した余りを（ｑＰ％６）とし、ｑＰを６で除算した商を（ｑＰ／６）とするとき、量子化スケール値は、（ｑＰ％６）の量子化スケール値に、２の（ｑＰ／６）乗の値を乗算した値となる。【００８８】
さらに、Ｈ．２６４方式では、このような量子化パラメータｑＰと量子化スケールとの変換に変換テーブルを利用するとともに、逆量子化と直交変換で必要な８／５倍などの正規化のための演算にも変換テーブルを利用し、（ｑＰ％６）の量子化スケールを（ｑＰ／６）ビット左シフトすることで、任意のｑＰに対応する量子化スケールを求めることができる。なお、図４において、記号“＜＜”は左シフトを表しており、また記号“＞＞”は右シフトを表している。【００８９】
また、例えば、図４に示す画面内符号化Ｉｎｔｒａでの１６×１６のブロックに対する輝度ｌｕｍａの直流成分ＤＣにおいては、量子化パラメータＱＰ’Ｙが数値“３６”より小さい場合、図４の式に従って、右シフトが行われるとともに、そのシフト量に対応する丸め値（２５−ＱＰ’Ｙ／６）が丸め処理部１５５の丸め演算器１５６で加算される。このようにして、丸め処理部１５５とシフト処理部１７０とによる除算処理が実行される。【００９０】
なお、本実施の形態の逆量子化回路は、例えば、図２で示した基本的な逆量子化のための演算式に対し、これらの式を展開し、その展開した式に基づいた回路構成としている。例えば、ＭＰＥＧ−２方式における画面間符号化の係数データＱＦ［ｖ］［ｕ］に対する逆量子化の場合、本実施の形態の逆量子化回路では、係数データＱＦ［ｖ］［ｕ］を（２×Ｗ［ｗ］［ｖ］［ｕ］×ｑｕａｎｔｉｚｅｒ＿ｓｃａｌｅ）倍した値に、（Ｓｉｇｎ（ＱＦ［ｖ］［ｕ］）×Ｗ［ｗ］［ｖ］［ｕ］×ｑｕａｎｔｉｚｅｒ＿ｓｃａｌｅ）となる値を加算することでデッドゾーン処理を行うような構成としている。【００９１】
以上、それぞれの符号化方式における逆量子化式のさらに詳細な説明については省略するが、本実施の形態の逆量子化回路は、各符号化方式において図２から図４に示すような演算式に基づき、上述の各符号化方式の例のように、供給された係数データに対して、スケール値やマトリックス値などのような所定の乗算値を乗算したり加算値を加算したりするなどの演算を行うことで逆量子化が行われる。【００９２】
図５は、本発明の実施の形態１の逆量子化回路において、各逆量子化式に対応した演算処理の一覧を示す図である。図５では、図２から図４までの各逆量子化式を共通の演算処理で実現可能なように一覧としてまとめている。特に、本実施の形態の逆量子化回路は、図２から図４までの各逆量子化式を展開した式を含めた演算式に基づき、各部を構成したことを特徴としている。【００９３】
図５において、演算項ＣＤに対応する“係数”は逆量子化するための係数データＣＤを示し、演算項Ｍ２に対応する“行列”はマトリックス値を示す。また、演算項Ｍ１に対応する、“２”は乗数２を示し、“スケール”はスケール値を示し、“正規化”はＨ．２６４方式で規定された正規化係数値を示している。また、演算項Ｓｉｇｎに対応する“符号”は係数データの正負を示す符号であり係数データの符号を利用したデッドゾーンのある量子化方式に対応する演算処理などを示している。【００９４】
また、演算項ＯＦに対応する“行列”はマトリックス値を示し、“スケール”はスケール値を示している。また、演算項ＲＮに対応する“丸め”はＨ．２６４方式における丸め値を示している。また、演算項ＳＦに対応する“シフト”はシフト処理部１７０のシフト演算処理を示し、“後段”は後段処理部１９０の処理を示している。また、各演算項における“０”、“１”及び“８”などの数字はその値が示す定数を示している。また、“シフト”で示した箇所はシフト演算処理を実行することを示し、矢印で示した箇所はシフト演算処理を実行しないことを示している。また、“後段”で示した箇所は後段処理部１９０の処理を実行することを示し、矢印で示した箇所は後段処理部１９０の処理を実行しないことを示している。【００９５】
このように、図２から図４までの各符号化方式の各逆量子化式は、図５に示すような共通の演算処理で表現することができる。すなわち、図１で説明した本発明の実施の形態１における逆量子化回路の構成は、図５に示すような共通の演算処理を実現した回路であり、上述したような制御情報による各演算処理の実行の切替えを行うことでそれぞれの符号化方式に対応させている。本発明の実施の形態１における逆量子化回路は、演算処理の共通化を図ることで回路規模が増大することを抑制している。【００９６】
図６は、図５に示すような共通の演算処理を実現するため、乗算値生成部１０、乗算値生成部２０、加算値生成部１６０及びシフト量生成部１８０のより詳細な構成の一例を示すブロック図である。【００９７】
図６において、乗算値生成部１０は、上述のようにスケール値生成部１１０とスケール処理部２１０とにより構成されている。【００９８】
図６において、スケール値生成部１１０は、供給されたスケールインデックスＳＣＩを変換する１種類あるいは複数種類のスケールテーブル（第１のスケール変換部）１１１と、スケールテーブル１１１から出力された値をさらに変換する正規化テーブル（第２のスケール変換部）１１２と、スケールテーブル１１１から出力された値と正規化テーブル１１２から出力された値とのいずれかを選択するセレクタ（選択部）１１９とを有している。セレクタ１１９は、制御部１００からの制御情報ＣＮＴ＿ＳＧの指示内容に応じて、スケールテーブル１１１から出力された値と正規化テーブル１１２から出力された値とのいずれかを選択し、選択した値をスケール処理部２１０へと出力する。また、スケールテーブル１１１から出力された値はシフト量生成部１８０へと出力される。【００９９】
図６に示すスケール値生成部１１０において、正規化テーブル１１２は、特にＨ．２６４方式に対応させるために設けたテーブルである。すなわち、Ｈ．２６４方式に基づき逆量子化を行う場合、入力端子１１には、スケールインデックスＳＣＩとして量子化パラメータｑＰが供給される。さらに、量子化パラメータｑＰは、スケールテーブル１１１によりスケール値に変換され、変換されたスケール値が正規化テーブル１１２により正規化された係数の値へと変換される。さらに、Ｈ．２６４方式の場合、制御部１００は、制御情報ＣＮＴ＿ＳＧにより、セレクタ１１９が正規化テーブル１１２を選択するように指示することにより、スケール値生成部１１０からは、Ｈ．２６４方式に対応した正規化されたスケール値である正規化係数値が出力される。【０１００】
このように、スケール値生成部１１０は、入力端子１１に供給されたスケールインデックスＳＣＩなどのデータをスケール値に変換する１種類あるいは複数種類のスケールテーブル１１１を有し、スケールテーブル１１１により変換された値をスケール値として出力する。さらに、スケール値生成部１１０は、スケールテーブル１１１から出力された値をさらに変換する正規化テーブル１１２と、スケールテーブル１１１から出力された値と正規化テーブル１１２から出力された値とのいずれかを選択するセレクタ１１９とを有し、選択された値をスケール値として出力する。【０１０１】
次に、図６において、スケール処理部２１０は、スケール値生成部１１０で生成されたスケール値に対して演算処理を施す演算部２１１、及びスケール値とスケール値に対する演算処理により得られた値と所定の定数値とのうちのいずれかの値を選択するセレクタ（選択部）２１９とを有している。なお、演算部２１１は、スケール値を所定の定数倍するなどとともに、将来提案される符号化方式などに対しても対応可能なように設けた演算部であり、例えば、スケール値に対する定数値の乗算やその乗算結果に対する定数値の加算などの演算処理を選択的に行う。セレクタ２１９は、制御情報ＣＮＴ＿ＳＰの指示内容に応じて、スケール値と演算部２１１により得られた値と所定の定数値とのうちのいずれかの値を選択し、選択した値を乗算値Ｍ１として乗算処理部１４０へと出力する。【０１０２】
すなわち、スケール処理部２１０は、図５での演算項Ｍ１に対応した、主に各符号化方式やその符号化種別に応じたスケール値に関連する乗算値Ｍ１を選択的に出力する。【０１０３】
例えば、ＭＰＥＧ−１方式の画面内符号化の直流成分における係数データを逆量子化する場合、図５での演算項Ｍ１に従って、制御情報ＣＮＴ＿ＳＰによりセレクタ２１９は定数である“８”を選択し、スケール処理部２１０からは、セレクタ２１９が選択した定数値“８”が乗算値Ｍ１として出力される。【０１０４】
また、ＭＰＥＧ−１方式の画面内符号化の交流成分における係数データを逆量子化する場合、図５での演算項Ｍ１に従って、スケール値生成部１１０においてスケールテーブル１１１から出力されるスケール値が選択され、この選択されたスケール値がスケール処理部２１０へと出力される。さらに、スケール処理部２１０において、制御情報ＣＮＴ＿ＳＰによりセレクタ２１９は演算部２１１から２倍されて出力された値を選択し、スケール処理部２１０からは、セレクタ２１９が選択した値、すなわちスケール値を２倍した値が乗算値Ｍ１として出力される。【０１０５】
また、Ｈ．２６４方式における係数データを逆量子化する場合、図５での演算項Ｍ１に従って、スケール値生成部１１０において正規化テーブル１１２から出力される正規化係数値が選択され、この選択された正規化係数値がスケール処理部２１０へと出力される。さらに、スケール処理部２１０において、制御部１００からの制御情報ＣＮＴ＿ＳＰによりセレクタ２１９はスケール値生成部１１０から出力された正規化係数値を選択し、スケール処理部２１０からは、セレクタ２１９が選択した値、すなわち正規化係数値が乗算値Ｍ１として出力される。【０１０６】
このように、スケール処理部２１０は、スケール値、演算部２１１による演算により得られた値及び所定の定数値のいずれかを乗算値Ｍ１として出力する。また、スケール処理部２１０は、スケール値生成部１１０からのスケール値に対して、所定の整数倍するなどの演算処理を施す演算部２１１、及びスケール値と演算部２１１により得られた値と所定の定数値とのうちのいずれかの値を選択するセレクタ２１９を有し、選択した値を乗算値Ｍ１として出力する。また、選択機能としてのセレクタ２１９は、係数データＣＤの種類に応じて各値を選択する。【０１０７】
次に、図６において、乗算値生成部２０のマトリックス値生成部１２０は、供給されたマトリックスデータＭＸＤに応じたマトリックス値を出力するマトリックステーブル１２１と、このマトリックス値及び所定の定数値のいずれかの値を選択するセレクタ１２９とを有している。セレクタ１２９は、制御部１００からの制御情報ＣＮＴ＿ＭＸの指示内容に応じて、マトリックス値と定数値とのうちのいずれかの値を選択し、選択した値を乗算値Ｍ２として乗算処理部１４０へと出力する。【０１０８】
すなわち、マトリックス値生成部１２０は、図５での演算項Ｍ２に対応した、主に各符号化方式やその符号化種別に応じたマトリックス値に関連する乗算値Ｍ２を選択的に出力する。例えば、ＭＰＥＧ−１方式の画面内符号化の直流成分における係数データを逆量子化する場合、図５での演算項Ｍ２に従って、制御情報ＣＮＴ＿ＭＸによりセレクタ１２９は定数である“１”を選択し、マトリックス値生成部１２０からは、セレクタ１２９が選択した定数値“１”が乗算値Ｍ２として出力される。【０１０９】
また、ＭＰＥＧ−１方式の画面内符号化の交流成分における係数データを逆量子化する場合、図５での演算項Ｍ２に従って、制御情報ＣＮＴ＿ＭＸによりセレクタ１２９はマトリックステーブル１２１から出力されたマトリックス値を選択し、マトリックス値生成部１２０からは、セレクタ１２９が選択したマトリックス値が乗算値Ｍ２として出力される。【０１１０】
このように、マトリックス値生成部１２０は、周波数ごとのマトリックス値及び所定の定数値のいずれかを乗算値Ｍ２として出力する。【０１１１】
次に、図６において、加算値生成部１６０は、スケール値生成部１１０で生成されたスケール値とマトリックス値生成部１２０で生成されたマトリックス値とを乗算する乗算器１６１と、スケール値、マトリックス値、乗算器１６１によりスケール値とマトリックス値とを乗算することにより得られた値、及び所定の定数値のうちのいずれかの値を選択するセレクタ１６９とを有している。なお、セレクタ１６９は、スケール値、マトリックス値、乗算器１６１によりスケール値とマトリックス値とを乗算することにより得られた値、及び所定の定数値のうちのいくつかの値から、いずれかの値が選択できるような構成であってもよい。セレクタ２１９は、制御部１００からの制御情報ＣＮＴ＿ＯＦの指示内容に応じて、スケール値、マトリックス値、乗算器１６１によりスケール値とマトリックス値とを乗算することにより得られた値、及び所定の定数値のうちのいずれかの値を選択し、選択した値を加算値ＯＦとして加算処理部１５０へ出力する。【０１１２】
すなわち、加算値生成部１６０は、図５での演算項ＯＦに対応した、主に各符号化方式やその符号化種別に応じたデッドゾーンに関連する加算値ＯＦを選択的に出力する。例えば、ＭＰＥＧ−１方式の画面内符号化の直流成分における係数データを逆量子化する場合、図５での演算項ＯＦに従って、制御情報ＣＮＴ＿ＯＦによりセレクタ１６９は定数である“０”を選択し、加算値生成部１６０からは、セレクタ１６９が選択した定数値“０”が加算値ＯＦとして出力される。【０１１３】
また、ＭＰＥＧ−１方式の画面間符号化における係数データを逆量子化する場合、図５での演算項ＯＦに従って、制御部１００からの制御情報ＣＮＴ＿ＯＦによりセレクタ１６９は乗算器１６１から出力された値を選択し、加算値生成部１６０からは、セレクタ１６９が選択した乗算器１６１からの値が加算値ＯＦとして出力される。【０１１４】
また、Ｈ．２６３方式の画面内符号化の交流成分における係数データを逆量子化する場合、図５での演算項ＯＦに従って、制御部１００からの制御情報ＣＮＴ＿ＯＦによりセレクタ１６９はスケール値生成部１１０から出力された値を選択し、加算値生成部１６０からは、セレクタ１６９が選択したスケール値生成部１１０から出力された値が加算値ＯＦとして出力される。【０１１５】
このように、加算値生成部１６０は、スケール値生成部１１０のスケール値とマトリックス値生成部１２０のマトリックス値とを乗算する乗算器１６１と、スケール値、マトリックス値、スケール値とマトリックス値とを乗算することにより得られた値、及び所定の定数値のうちのいずれかの値を選択するセレクタ２１９とを有し、選択した値を加算値ＯＦとして加算処理部１５０に供給する。【０１１６】
次に、図６において、シフト量生成部１８０は、スケール値生成部１１０のスケールテーブル１１１から出力された値をシフト量データに変換するシフト量テーブル（シフト量変換部）１８１を有している。さらに、シフト量生成部１８０は、シフト量テーブル１８１から出力された値に対して所定の値であるシフト量加算値ＳＦ＿ＯＦを加算する加算器１８２と、シフト量テーブル１８１から出力された値、加算器１８２から出力された値及び所定の定数値のうちのいずれかの値を、制御部１００からの制御情報ＣＮＴ＿ＳＦの指示に応じて選択するセレクタ１８９とを有している。シフト量生成部１８０は、制御部１００からの制御情報ＣＮＴ＿ＳＦの指示内容に応じて、シフト量テーブル１８１により変換された値、加算器１８２から出力された値及び所定の定数値のうちのいずれかをシフト量データＳＦとしてシフト処理部１７０へ出力する。【０１１７】
このように、シフト量生成部１８０は、スケール値生成部１１０のスケールテーブル１１１から出力された値をシフト量データに変換するシフト量テーブル１８１を有し、シフト量テーブル１８１により変換された値をシフト量データＳＦとしてシフト処理部１７０に供給する。さらに、シフト量生成部１８０は、シフト量テーブル１８１により変換された値及び所定の定数値のいずれかをシフト量データＳＦとしてセレクタ１８９により選択し、シフト処理部１７０に供給する。さらに、セレクタ１８９は、係数データＣＤの種類に応じて各値を選択する。さらに、シフト量生成部１８０は、選択したシフト量データＳＦに対しシフト量加算値ＳＦ＿ＯＦを加えた値をシフト量データＳＦとしてシフト処理部１７０に供給する。このシフト量加算値ＳＦ＿ＯＦは、係数データＣＤの種類に応じて選択される加算値であり、制御部１００から出力される。【０１１８】
なお、スケールテーブル１１１、正規化テーブル１１２、シフト量テーブル１８１、マトリックステーブル１２１及び定数は、書き換え可能なメモリに記憶されている。これにより、新たな規格の符号化方式が出現した場合であっても、メモリ内のテーブルデータや数値を書き換えるのみで新たな規格の符号化方式に対応することが可能となる。なお、メモリ内のテーブルデータや数値は、ネットワークを介してダウンロードすることで書き換えられるが、本発明は特にこれに限定されず、コンピュータ読み取り可能な記録媒体から読み出すことにより書き換えてもよい。【０１１９】
以下、図１から図６までを参照しながら本発明の実施の形態１における逆量子化回路の具体的な動作についていくつかの符号化方式の例を挙げながら説明する。【０１２０】
まず、ＪＰＥＧ方式で量子化された係数データを逆量子化する処理について説明する。例えばＪＰＥＧ方式の逆量子化を行う場合、図５で示す演算構成に従って、制御情報により各演算処理の切替えが行われる。すなわち、ＪＰＥＧ方式の場合、図５に示すように、係数データＣＤに対してマトリックス値生成部１２０からのマトリックス値を乗算するのみでよい。そのため、制御部１００は、次のような制御情報をそれぞれの演算処理部及び生成部に通知する。【０１２１】
例えば、逆量子化回路を制御する制御部１００は、乗算器１４１に対しては、制御情報ＣＮＴ＿Ｍ１により、乗算処理を行わないように指示する。また、制御部１００は、乗算器１４２に対しては、制御情報ＣＮＴ＿Ｍ２により乗算処理を行うよう指示する。また、制御部１００は、マトリックス値生成部１２０に対しては、制御情報ＣＮＴ＿ＭＸによりマトリックス値を出力するよう指示する。また、制御部１００は、加算器１５１に対しては、制御情報ＣＮＴ＿ＡＰにより加算処理を行わないよう指示する。【０１２２】
さらに、制御部１００は、丸め演算器１５６に対しては、制御情報ＣＮＴ＿ＲＮにより丸め処理を行わないよう指示する。また、制御部１００は、シフト演算器１７１に対しては、制御情報ＣＮＴ＿ＳＰによりシフト演算処理を行わないよう指示する。また、制御部１００は、ＤＣＴミスマッチ処理部１９１及び１９３に対しては、ＤＣＴミスマッチ制御処理を行わないよう指示する。また、制御部１００は、飽和処理部１９２に対しては、飽和処理を行わないよう指示する。【０１２３】
これにより、乗算処理部１４０からは、係数データＣＤの値に乗算値Ｍ２であるマトリックス値を乗算した値の出力データＭＤが出力される。さらに、加算処理部１５０、丸め処理部１５５、シフト処理部１７０及び後段処理部１９０からも出力データＭＤと同じ値のデータが出力される。その結果、出力端子１９からは、係数データＣＤの値に乗算値Ｍ２であるマトリックス値を乗算した値の復元データＲＤが出力される。このように、図１の構成において上述したようなそれぞれの制御情報を各部に通知することで、図２のＪＰＥＧの項に示すような係数データＳｑｖｕにマトリックス値Ｑｖｕを乗算して復元データＲｖｕを求めるような逆量子化式を実現できる。【０１２４】
また、例えばＭＰＥＧ−２方式の逆量子化を行う場合、図５に示すように係数データの種別で区分して逆量子化を行う。【０１２５】
まず、ＭＰＥＧ−２方式で量子化された画面内符号化の直流成分の係数データを逆量子化する処理について説明する。入力端子１３に供給された係数データがＭＰＥＧ−２方式の画面内符号化の直流成分の係数データのとき、図５に示すように、係数データに対してスケール値を乗算するのみでよい。そのため、制御部１００は、次のような制御情報をそれぞれの演算処理部及び生成部に通知する。【０１２６】
例えば、制御部１００は、乗算器１４１に対しては、制御情報ＣＮＴ＿Ｍ１により、乗算処理を行うように指示する。また、制御部１００は、乗算器１４２に対しては、制御情報ＣＮＴ＿Ｍ２により乗算処理を行わないよう指示する。また、制御部１００は、スケール値生成部１１０に対しては、制御情報ＣＮＴ＿ＳＧにより、制御情報ＣＮＴ＿ＳＣで指定されるスケールインデックスＳＣＩに対応したスケール値が格納されたスケールテーブル１１１からの出力値を選択するよう指示する。また、制御部１００は、スケール処理部２１０に対しては、制御情報ＣＮＴ＿ＳＰにより、スケール値を選択するよう指示する。これにより、乗算処理を行うように指示された乗算器１４１に、スケール値である乗算値Ｍ１が供給される。【０１２７】
さらに、制御部１００は、加算器１５１に対しては、制御情報ＣＮＴ＿ＡＰにより、加算処理を行わないよう指示する。また、制御部１００は、丸め演算器１５６に対しては、制御情報ＣＮＴ＿ＲＮにより、丸め処理を行わないよう指示する。また、制御部１００は、シフト演算器１７１に対しては、制御情報ＣＮＴ＿ＳＰにより、シフト演算処理を行わないよう指示する。また、制御部１００は、ＤＣＴミスマッチ処理部１９１に対しては、制御情報ＣＮＴ＿ＭＳ１により、ＤＣＴミスマッチ制御処理を行わないよう指示する。また、制御部１００は、飽和処理部１９２に対しては、制御情報ＣＮＴ＿ＣＬにより、飽和処理を行うよう指示する。また、制御部１００は、ＤＣＴミスマッチ処理部１９３に対しては、制御情報ＣＮＴ＿ＭＳ２により、ＤＣＴミスマッチ制御処理を行うよう指示する。【０１２８】
これにより、乗算処理部１４０からは、係数データＣＤの値にスケール値である乗算値Ｍ１を乗算した値の出力データＭＤが出力される。さらに、加算処理部１５０、丸め処理部１５５及びシフト処理部１７０からも出力データＭＤと同じ値のデータが出力される。さらに、後段処理部１９０において、まず、飽和処理部１９２が、出力データＭＤと同じ値のデータである出力データＳＤに対して飽和処理を行う。すなわち、飽和処理部１９２は、出力データＳＤの値が例えば“−２０４８”以下の場合には、“−２０４８”とする値にクリッピングし、飽和処理部１９２に供給された係数値が例えば“２０４７”以上の場合には、“２０４７”とする値にクリッピングするような飽和処理を行う。【０１２９】
さらに、後段処理部１９０において、次に、ＤＣＴミスマッチ処理部１９３が、飽和処理部１９２から供給されたデータに対して、供給された全てのデータの値を加算して、その和が偶数のときには、最も高周波である成分、すなわち係数［７］［７］成分の値を変更するような処理を行う。すなわち、ＤＣＴミスマッチ処理部１９３は、飽和処理部１９２から供給されたデータの全ての和が偶数の場合に、そのデータでの最も高周波である成分、すなわち係数［７］［７］成分の値の最下位ビットを反転し、このようなデータを復元データＲＤとして後段処理部１９０から出力する。【０１３０】
このように、図１の構成において上述したようなそれぞれの制御情報が各部に通知されることで、図２のＭＰＥＧ−２のＩｎｔｒａＤＣの項に示すような係数データＱＦ［０］［０］にスケール値ｉｎｔｒａ＿ｄｃ＿ｍｕｌｔを乗算し復元データＦ”［０］［０］を求めるような逆量子化式を実現できる。【０１３１】
次に、ＭＰＥＧ−２方式で量子化された画面内符号化の交流成分の係数データを逆量子化する処理について説明する。入力端子１３に供給された係数データがＭＰＥＧ−２方式の画面内符号化の交流成分の係数データのとき、図５に示すように、係数データＣＤに対して、“行列”で示すマトリックス値及び“スケール”で示すスケール値の２倍の値を乗算し、“シフト”で示すシフト演算を行い、さらに“後段”で示すＤＣＴミスマッチ制御処理及び飽和処理を行えばよい。そのため、制御部１００は、次のような制御情報をそれぞれの演算処理部及び生成部に通知する。【０１３２】
例えば、制御部１００は、乗算器１４１に対しては、制御情報ＣＮＴ＿Ｍ１により、乗算処理を行うように指示する。また、制御部１００は、乗算器１４２に対しては、制御情報ＣＮＴ＿Ｍ２により、乗算処理を行うよう指示する。また、制御部１００は、スケール値生成部１１０に対しては、制御情報ＣＮＴ＿ＳＧにより、制御情報ＣＮＴ＿ＳＣで指定されるスケールインデックスＳＣＩに対応したスケール値が格納されたスケールテーブル１１１からの出力値を選択するよう指示する。また、制御部１００は、スケール処理部２１０に対しては、制御情報ＣＮＴ＿ＳＰにより、演算部２１１から出力されたスケール値の２倍の値を選択するよう指示する。これにより、乗算処理を行うように指示された乗算器１４１に、スケール値の２倍である乗算値Ｍ１が供給される。【０１３３】
また、制御部１００は、マトリックス値生成部１２０に対しては、制御情報ＣＮＴ＿ＭＸにより、入力端子１２に供給されたマトリックスデータＭＸＤに応じて選択されたマトリックステーブル１２１からのマトリックス値を出力するよう指示する。これにより、乗算処理を行うように指示された乗算器１４２に、マトリックス値である乗算値Ｍ２が供給される。【０１３４】
さらに、制御部１００は、加算器１５１に対しては、制御情報ＣＮＴ＿ＡＰにより、加算処理を行わないよう指示する。また、制御部１００は、丸め演算器１５６に対しては、制御情報ＣＮＴ＿ＲＮにより、丸め処理を行わないよう指示する。また、制御部１００は、シフト演算器１７１に対しては、制御情報ＣＮＴ＿ＳＰにより、シフト演算処理を行うよう指示する。また、制御部１００は、シフト量生成部１８０に対しては、制御情報ＣＮＴ＿ＳＦにより、１／３２に対応した５ビットの右シフトに相当するシフト量データＳＦを出力するよう指示する。また、制御部１００は、ＤＣＴミスマッチ処理部１９１に対しては、制御情報ＣＮＴ＿ＭＳ１により、ＤＣＴミスマッチ制御処理を行わないよう指示する。また、制御部１００は、飽和処理部１９２に対しては、制御情報ＣＮＴ＿ＣＬにより、飽和処理を行うよう指示する。また、制御部１００は、ＤＣＴミスマッチ処理部１９３に対しては、制御情報ＣＮＴ＿ＭＳ２により、ＤＣＴミスマッチ制御処理を行うよう指示する。【０１３５】
これにより、乗算処理部１４０からは、係数データＣＤを２倍し、さらにスケール値及びマトリックス値を乗算した出力データＭＤが出力される。さらに、加算処理部１５０からは、出力データＭＤと同じ値の出力データＡＤが出力され、丸め処理部１５５からも、出力データＭＤと同じ値の出力データＲＮが出力される。このようにして、シフト処理部１７０からは、係数データＣＤを２倍し、さらにスケール値及びマトリックス値を乗算した値を５ビットだけ右にシフトさせた、すなわち３２で割った値が出力データＳＤとして出力される。その結果、シフト処理部１７０からは、係数データＣＤを２倍し、さらにスケール値及びマトリックス値を乗算し、３２で割った値の出力データＳＤが出力される。【０１３６】
さらに、画面内符号化の直流成分の係数データのときと同様に、後段処理部１９０において、まず、飽和処理部１９２は、出力データＳＤに対して飽和処理を行う。次に、ＤＣＴミスマッチ処理部１９３は、飽和処理部１９２から供給されたデータに対して、供給された全てのデータの値を加算して、その和が偶数のときには、最も高周波である成分、すなわち係数［７］［７］成分の値を変更するような処理を行う。このようにして、後段処理部１９０から復元データＲＤが出力される。【０１３７】
このように、図１の構成において上述したようなそれぞれの制御情報が各部に通知される。したがって、係数データＱＦ［ｖ］［ｕ］に、定数“２”、マトリックス値Ｗ［ｗ］［ｖ］［ｕ］及びスケール値ｑｕａｎｔｉｚｅｒ＿ｓｃａｌｅを乗算し、３２で割ることで、図２のＭＰＥＧ−２のＩｎｔｒａＡＣの項に示すような復元データＦ”［ｖ］［ｕ］を求める逆量子化式を実現できる。【０１３８】
次に、ＭＰＥＧ−２方式で量子化された画面間符号化の係数データを逆量子化する処理について説明する。入力端子１３に供給された係数データがＭＰＥＧ−２方式の画面間符号化の係数データのとき、図５に示すように、係数データＣＤに対して、“行列”で示すマトリックス値及び“スケール”で示すスケール値の２倍の値を乗算するとともに、マトリックス値とスケール値とを乗算した値に符号をつけた値を加算し、その値をさらに“シフト”で示すシフト演算を行い、さらに“後段”で示すＤＣＴミスマッチ制御処理及び飽和処理を行えばよい。そのため、制御部１００は、次のような制御情報をそれぞれの演算処理部及び生成部に通知する。【０１３９】
例えば、制御部１００は、乗算器１４１に対しては、制御情報ＣＮＴ＿Ｍ１により、乗算処理を行うように指示する。また、制御部１００は、乗算器１４２に対しては、制御情報ＣＮＴ＿Ｍ２により、乗算処理を行うよう指示する。また、制御部１００は、スケール値生成部１１０に対しては、制御情報ＣＮＴ＿ＳＧにより、制御情報ＣＮＴ＿ＳＣで指定されるスケールインデックスＳＣＩに対応したスケール値が格納されたスケールテーブル１１１からの出力値を選択するよう指示する。また、制御部１００は、スケール処理部２１０に対しては、制御情報ＣＮＴ＿ＳＰにより、演算部２１１から出力されたスケール値の２倍の値を選択するよう指示する。これにより、乗算処理を行うように指示された乗算器１４１に、スケール値の２倍である乗算値Ｍ１が供給される。【０１４０】
また、制御部１００は、マトリックス値生成部１２０に対しては、制御情報ＣＮＴ＿ＭＸにより、入力端子１２に供給されたマトリックスデータＭＸＤに応じて選択されたマトリックステーブル１２１からのマトリックス値を出力するよう指示する。これにより、乗算処理を行うように指示された乗算器１４２に、マトリックス値である乗算値Ｍ２が供給される。【０１４１】
さらに、制御部１００は、加算値生成部１６０に対しては、制御情報ＣＮＴ＿ＯＦにより、乗算器１６１でスケール値とマトリックス値とを乗算することにより得られた値を加算値ＯＦとして出力するよう指示する。これとともに、制御部１００は、加算器１５１に対しては、制御情報ＣＮＴ＿ＡＰにより、加算処理を行うよう指示する。さらに、制御部１００は、加算器１５１に対して、係数データＣＤの符号が正の場合には、乗算処理部１４０からの出力データＭＤに加算値生成部１６０からの加算値ＯＦを加算し、係数データＣＤの符号が負の場合には、出力データＭＤから加算値ＯＦを減算するよう指示する。すなわち、このような加算処理を行うことで、例えば、デッドゾーンのある量子化方式に対応する逆量子化が実行される。【０１４２】
さらに、制御部１００は、丸め演算器１５６に対しては、制御情報ＣＮＴ＿ＲＮにより、丸め処理を行わないよう指示する。また、制御部１００は、シフト演算器１７１に対しては、制御情報ＣＮＴ＿ＳＰにより、シフト演算処理を行うよう指示する。また、制御部１００は、シフト量生成部１８０に対しては、制御情報ＣＮＴ＿ＳＧにより、１／３２に対応した５ビットの右シフトに相当するシフト量を出力するよう指示する。また、制御部１００は、ＤＣＴミスマッチ処理部１９１に対しては、制御情報ＣＮＴ＿ＭＳ１により、ＤＣＴミスマッチ制御処理を行わないよう指示する。また、制御部１００は、飽和処理部１９２に対しては、制御情報ＣＮＴ＿ＣＬにより、飽和処理を行うよう指示する。また、制御部１００は、ＤＣＴミスマッチ処理部１９３に対しては、制御情報ＣＮＴ＿ＭＳ２により、ＤＣＴミスマッチ制御処理を行うよう指示する。【０１４３】
これにより、乗算処理部１４０からは、係数データＣＤを２倍し、さらにスケール値及びマトリックス値を乗算した出力データＭＤが出力される。さらに、加算処理部１５０からは、出力データＭＤに対しデッドゾーンのある量子化に対応する逆量子化を施した出力データＡＤが出力され、シフト処理部１７０からは、加算処理部１５０からの出力データＡＤを５ビットだけ右にシフトさせた、すなわち３２で割った出力データＳＤが出力される。【０１４４】
さらに、画面内符号化の直流成分の係数データのときと同様に、後段処理部１９０において、まず、飽和処理部１９２が、出力データＳＤに対して飽和処理を行う。次に、ＤＣＴミスマッチ処理部１９３が、飽和処理部１９２から供給されたデータに対して、供給された全てのデータの値を加算して、その和が偶数のときには、最も高周波である成分、すなわち係数［７］［７］成分の値を変更するような処理を行う。このようにして、後段処理部１９０から復元データＲＤが出力される。【０１４５】
このように、図１の構成において上述したようなそれぞれの制御情報が各部に通知される。したがって、係数データＱＦ［ｖ］［ｕ］に定数“２”を乗算し係数データの符号Ｓｉｇｎ（ＱＦ［ｖ］［ｕ］）を加算した値（２×ＱＦ［ｖ］［ｕ］＋Ｓｉｇｎ（ＱＦ［ｖ］［ｕ］））に対し、スケール値ｑｕａｎｔｉｚｅｒ＿ｓｃａｌｅ及びマトリックス値Ｗ［ｗ］［ｍ］［ｎ］を乗算し、３２で割ることで、図２のＭＰＥＧ−２のｎｏｎ−ｉｎｔｒａの項に示すような復元データＦ”［ｖ］［ｕ］を求める逆量子化式を実現できる。【０１４６】
以上説明したように、本発明の実施の形態１における逆量子化回路は、量子化係数データＣＤに対する演算処理を施すための第１の乗算値Ｍ１を生成する第１の乗算値生成部１０と、量子化係数データＣＤに対する演算処理を施すための第２の乗算値Ｍ２を生成する第２の乗算値生成部２０と、量子化係数データＣＤに対する演算処理を施すための加算値ＯＦを生成する加算値生成部１６０と、量子化係数データＣＤに対する演算処理を施すためのビットシフト量を示すシフト量データＳＦを生成するシフト量生成部１８０と、量子化係数データＣＤに対して第１の乗算値Ｍ１及び第２の乗算値Ｍ２を乗算する乗算処理部１４０と、乗算処理部１４０から出力された出力データＭＤに対して加算値ＯＦを加算する加算処理部１５０と、加算処理部１５０から出力された出力データＡＤに対してシフト量データＳＦに応じてビットシフト演算を行うシフト処理部１７０とを備える。【０１４７】
そして、乗算処理部１４０、加算処理部１５０及びシフト処理部１７０のうちの少なくとも１つの演算処理部において、演算処理を行うか否かを選択可能としている。また、第１の乗算値生成部１０、第２の乗算値生成部２０、加算値生成部１６０及びシフト量生成部１８０のうちの少なくとも１つの生成部において、生成する値又はデータ（値）の生成方法を選択可能としている。【０１４８】
このため、符号化方式に応じてそれぞれの逆量子化回路を備える必要はなく、各種の符号化方式に応じて各演算処理部の演算処理を選択でき、柔軟性のある逆量子化回路を構成できるため、単一の回路で各種の画像符号化方式に対応できる汎用性の高い逆量子化回路を提供することができる。【０１４９】
なお、以上の説明では、図１に示すような機能ブロックで構成される逆量子化回路により逆量子化を行うような実施の形態の一例を説明したが、本発明は特にこれに限定されない。例えば、量子化係数データＣＤに対する演算処理を施すための第１の乗算値Ｍ１を生成する第１の乗算値生成ステップと、量子化係数データＣＤに対する演算処理を施すための第２の乗算値Ｍ２を生成する第２の乗算値生成ステップと、量子化係数データＣＤに対する演算処理を施すための加算値ＯＦを生成する加算値生成ステップと、量子化係数データＣＤに対する演算処理を施すためのビットシフト量を示すシフト量データＳＦを生成するシフト量生成ステップと、量子化係数データＣＤに対して第１の乗算値Ｍ１及び第２の乗算値Ｍ２を乗算する乗算処理ステップと、乗算処理ステップからの出力データＭＤに対して加算値を加算する加算処理ステップと、加算処理ステップからの出力データＡＤに対してシフト量データＳＦに応じてビットシフト演算を行うシフト処理ステップとを含む逆量子化方法であってもよい。【０１５０】
そして、乗算処理ステップ、加算処理ステップ及びシフト処理ステップのうちの少なくとも１つの演算処理ステップにおいて、演算処理を行うか否かを選択可能としてもよい。また、第１の乗算値生成ステップ、第２の乗算値生成ステップ、加算値生成ステップ及びシフト量生成ステップのうちの少なくとも１つの生成ステップにおいて、生成する値又はデータの生成方法を選択可能としてもよい。【０１５１】
具体的には、このような逆量子化方法の各ステップを実行するようなプログラムをメモリなどに記憶させ、例えば、マイクロプロセッサのようなＣＰＵが、メモリに記憶されたプログラムを順次読み取り、読み取ったプログラムに従って処理を実行するような構成であってもよい。【０１５２】
（実施の形態２）
図７は、本発明の実施の形態２における逆量子化回路の構成を示すブロック図である。【０１５３】
図７に示すように、本発明の実施の形態２における逆量子化回路は、実施の形態１と同様に、入力端子１３に供給された係数データＣＤに対し、各種の演算処理を施し、元の係数値を復元し、復元した係数値である復元データＲＤを出力端子１９に出力する逆量子化回路である。また、本実施の形態の逆量子化回路も、画像の符号化方式として知られる、静止画像を対象にしたＪＰＥＧ方式、動画像を対象にしたＭＰＥＧ−１方式、ＭＰＥＧ−２方式、ＭＰＥＧ−４方式、Ｈ．２６３方式及びＭＰＥＧ−４ＡＶＣ方式とも呼ばれるＨ．２６４方式における逆量子化回路を実現している。特に、本実施の形態の逆量子化回路は、実施の形態１との比較において、より回路規模の削減を図るとともに、上述のような各種の符号化方式への対応を図った構成としている。なお、図７において、図１と同じ符号を付した構成要素は同一の構成であり詳細な説明は省略する。【０１５４】
図７において、逆量子化回路には、係数データＣＤが入力端子１３に供給される。本実施の形態２に係る逆量子化回路も、このような係数データＣＤに対し、各種の符号化方式やその符号化方式の符号化種別に応じて演算処理を選択的に施すことで、画像データのブロック単位での例えば離散コサイン変換で求めた各周波数成分の係数値を復元する。【０１５５】
図７に示す逆量子化回路は、係数データＣＤに対し逆量子化のための各種演算処理を行うための演算処理部を備える。逆量子化回路は、演算処理部として、前段処理部１３０、乗算処理部１４０、加算処理部１５０、シフト処理部１７０及び後段処理部１９９を備える。【０１５６】
前段処理部１３０は、係数データＣＤを２倍にするとともに、デッドゾーンのある量子化に対応する逆量子化を行う。乗算処理部１４０は、係数データＣＤに対し量子化スケールに基づく逆量子化を行うとともに係数データＣＤに対し量子化マトリックスに基づく逆量子化を行う。加算処理部１５０は、係数データＣＤに対し所定の加算値を加算する。シフト処理部１７０は、係数データＣＤに対し所定のビット数だけのシフト量としてビットシフトさせる。後段処理部１９０は、係数データＣＤに対し飽和処理及びＤＣＴミスマッチ制御処理を行う。【０１５７】
また、逆量子化回路は、第１の乗算値生成部１０、第２の乗算値生成部２０、加算値生成部１６０及びシフト量生成部１８０を備える。第１の乗算値生成部１０は、乗算処理部１４０における量子化スケールに基づく逆量子化を行うための第１の乗算値Ｍ１を生成する。第２の乗算値生成部２０は、乗算処理部１４０における量子化マトリックスに基づく逆量子化を行うための第２の乗算値Ｍ２を生成する。加算値生成部１６０は、加算処理部１５０に供給するための所定の加算値ＯＦを生成する。シフト量生成部１８０は、シフト処理部１７０に供給するためのシフト量データＳＦを生成する。【０１５８】
また、逆量子化回路は、制御部１００を備える。制御部１００は、前段処理部１３０、乗算処理部１４０、加算処理部１５０、シフト処理部１７０及び後段処理部１９９に対し、それぞれの演算処理を実行するか否かを指示する制御情報を出力する。【０１５９】
本発明の実施の形態２における逆量子化回路も、実施の形態１と同様に、それぞれの演算処理部が、指示に応じて、逆量子化のための演算処理に含めるか否かを選択可能としている。すなわち、各演算処理部において、例えば、演算処理済データと非演算処理データとを選択的に切替えて出力するような構成としている。また、例えばビットシフトさせるシフト演算処理の場合のシフト量のような演算処理の内容についても選択可能としている。【０１６０】
さらに、制御部１００は、乗算値生成部１０、乗算値生成部２０、加算値生成部１６０及びシフト量生成部１８０に対し、生成する値又はデータの生成方法を指示する制御情報を出力する。【０１６１】
本発明の実施の形態２における逆量子化回路はこのような基本構成であり、各種の符号化方式に応じて各演算処理部の演算処理の実行の有無や処理内容を選択的に切替えることにより、単一の回路で各種の画像符号化方式に対応できる汎用性の高い逆量子化回路を実現している。特に、本発明の実施の形態２における逆量子化回路は、既存の各種符号化方式に対応するとともに、回路規模の削減を図った構成である。以下、本発明の実施の形態２における逆量子化回路の詳細な構成について説明する。【０１６２】
図７に示すように、逆量子化回路の入力端子１３に供給された係数データＣＤは、まず、前段処理部１３０に供給される。前段処理部１３０は、係数データＣＤを２倍にするための２倍乗算器１３１と、ＭＰＥＧ−１方式、ＭＰＥＧ−２方式、ＭＰＥＧ−４方式及びＨ．２６３方式などで規定されているデッドゾーンのある量子化方式に対応する処理を行うための加算器１３２とを有している。加算器１３２は、デッドゾーンのある量子化方式に対応するために設けている。前段処理部１３０に供給された係数データＣＤは、２倍乗算器１３１に供給され、２倍乗算器１３１の出力データが加算器１３２の一方の入力端に供給される。また、加算器１３２の他方の入力端には、係数データＣＤの符号ビットが供給される。また、加算器１３２の出力データが前段処理部１３０の出力データＦＤとして乗算処理部１４０に供給される。【０１６３】
また、前段処理部１３０において、２倍乗算器１３１は、制御部１００からの制御情報ＣＮＴ＿Ｆ１により２倍の演算処理を行うか否かの切替制御が可能なように構成されている。また、加算器１３２は、制御部１００からの制御情報ＣＮＴ＿Ｆ２によりデッドゾーンのある量子化に対する処理を行うか否かの切替制御が可能なように構成されている。【０１６４】
このような前段処理部１３０の構成により、例えば、制御情報ＣＮＴ＿Ｆ１及び制御情報ＣＮＴ＿Ｆ２を用いて、制御部１００によってそれぞれ演算処理を行わないよう指示されると、前段処理部１３０からは入力端子１３に供給された係数データＣＤが前段処理部１３０の出力データＦＤとして出力される。【０１６５】
また、例えば逆に、制御情報ＣＮＴ＿Ｆ１及び制御情報ＣＮＴ＿Ｆ２を用いて、制御部１００によってそれぞれ演算処理を行うよう指示されると、前段処理部１３０からは、入力端子１３に供給された係数データＣＤを２倍しさらにデッドゾーンのある量子化に対する処理を行ったデータが出力データＦＤとして出力される。【０１６６】
以上のように、前段処理部１３０は、係数データＣＤに対して２倍する演算処理の機能、及び係数データＣＤに対するデッドゾーンの範囲に対応した値を加算する演算処理の機能を有するとともに、これら演算処理を演算対象に含めるか否かをそれぞれに選択可能としている。そして、前段処理部１３０は、これら演算処理において、演算処理済データと非演算処理データとを選択的に切替えて出力するように構成されている。【０１６７】
なお、前段処理部１３０において、２倍乗算器１３１は乗算器による２倍の乗算に代えて、例えば１ビット左シフト回路などでもよく、係数データＣＤを２倍する演算処理の機能を有していればよい。また、さらに、２倍乗算器１３１を、例えば、外部から倍数を設定可能な乗算器あるいはシフト回路とし、適宜、処理に応じた倍数を選択するような構成であってもよい。また、加算器１３２は、２倍乗算器１３１からのデータに符号ビットを加算するのに代えて、２倍乗算器１３１からのデータに所定の値を加算するような回路などでもよく、符号化方式に基づいたデッドゾーンのある量子化に対応した演算処理の機能を有していればよい。【０１６８】
次に、前段処理部１３０から出力された出力データＦＤは、図７に示すように、乗算処理部１４０に供給される。乗算処理部１４０は、実施の形態１と同様の構成であり、第１の乗算器１４１（以下、適宜、単に“乗算器１４１”と呼ぶ）及び第２の乗算器１４２（以下、適宜、単に“乗算器１４２”と呼ぶ）を有する。乗算器１４１は、前段処理部１３０からの出力データＦＤに対して第１の乗算値生成部１０（以下、適宜、単に“乗算値生成部１０”と呼ぶ）から供給された第１の乗算値Ｍ１（以下、適宜、単に“乗算値Ｍ１”と呼ぶ）を乗算する。乗算器１４２は、乗算器１４１から出力されたデータに対して第２の乗算値生成部２０（以下、適宜、単に“乗算値生成部２０”と呼ぶ）から供給された第２の乗算値Ｍ２（以下、適宜、単に“乗算値Ｍ２”と呼ぶ）を乗算する。【０１６９】
また、乗算処理部１４０において、乗算器１４１は、制御部１００からの制御情報ＣＮＴ＿Ｍ１により乗算値Ｍ１を乗算する演算処理を行うか否かの切替制御が可能なように構成されている。また、乗算器１４２は、制御部１００からの制御情報ＣＮＴ＿Ｍ２により乗算値Ｍ２を乗算する演算処理を行うか否かの切替制御が可能なように構成されている。このような乗算処理部１４０の構成により、例えば、制御情報ＣＮＴ＿Ｍ１及び制御情報ＣＮＴ＿Ｍ２を用いて、制御部１００によってそれぞれ演算処理を行わないよう指示されると、乗算処理部１４０からは、前段処理部１３０からの出力データＦＤが乗算処理部１４０の出力データＭＤとして出力される。【０１７０】
また、例えば逆に、制御情報ＣＮＴ＿Ｍ１及び制御情報ＣＮＴ＿Ｍ２を用いて、制御部１００によってそれぞれ演算処理を行うよう指示されると、乗算処理部１４０からは、前段処理部１３０からの出力データＦＤに対して乗算値Ｍ１及び乗算値Ｍ２を乗算した値のデータが出力データＭＤとして出力される。【０１７１】
以上のように、乗算処理部１４０は、係数データＣＤに対して乗算値Ｍ１及び乗算値Ｍ２を乗算する演算処理の機能を有するとともに、このような乗算演算の処理において演算処理済データと非演算処理データとを選択的に切替えて出力するように構成されている。【０１７２】
なお、乗算処理部１４０において、図７に示すような出力データＦＤに対してまず乗算値Ｍ１を乗算し次に乗算値Ｍ２を乗算するような構成に代えて、出力データＦＤに対してまず乗算値Ｍ２を乗算し次に乗算値Ｍ１を乗算するような構成であってもよい。また、乗算処理部１４０は、出力データＦＤに対して、乗算値Ｍ１と乗算値Ｍ２とを乗算した値を乗算するような構成であってもよい。【０１７３】
次に、乗算値生成部１０は、実施の形態１と同様の構成であり、上述した乗算処理部１４０に供給するための乗算値Ｍ１を生成する。乗算値生成部１０は、主に、画像の符号化方式において量子化スケールと呼ばれているマクロブロックなどのブロックごとに定めた量子化幅を示すスケール値を生成する。乗算値生成部１０は、このようなスケール値を生成するため、図７に示すように、スケール値を生成するためのスケール値生成部１１０を有している。スケール値生成部１１０は、入力端子１１に供給されたスケールインデックスＳＣＩを、例えば所定の変換ルールに基づき変換する変換機能を有しており、所定のスケール値を出力する。さらに、乗算値生成部１０は、スケール値生成部１１０で生成したスケール値に対して各符号化方式や符号化方式における符号化種別に対応させた演算処理を選択的に施すことで乗算値Ｍ１を出力するスケール処理部２１０を有している。【０１７４】
次に、乗算値生成部２０も、実施の形態１と同様の構成であり、上述した乗算処理部１４０に供給する乗算値Ｍ２を生成する。乗算値生成部２０は、主に、画像の符号化方式において周波数ごとに量子化幅を設定した量子化マトリックスと呼ばれているマトリックス値を生成する。このため、図７に示すように、乗算値生成部２０は、このようなマトリックス値を生成するためのマトリックス値生成部１２０を有している。【０１７５】
次に、乗算処理部１４０から出力された出力データＭＤは、図７に示すように、加算処理部１５０に供給される。加算処理部１５０も、実施の形態１と同様の構成であり、乗算処理部１４０からの出力データＭＤに対して加算値生成部１６０から供給された加算値ＯＦを加算する加算器１５１を有している。【０１７６】
次に、加算値生成部１６０は、上述した加算処理部１５０に供給する加算値ＯＦを生成する。加算値生成部１６０は、このような加算値ＯＦとして、Ｈ．２６３方式及びＭＰＥＧ−４方式の逆量子化を行う場合には、ＤＣＴミスマッチ制御処理における加算処理のための加算値を出力し、Ｈ．２６４方式の逆量子化を行う場合には、右シフトに対する丸め処理のための加算値を出力する。また、加算値生成部１６０は、制御部１００からの制御情報ＣＮＴ＿ＡＧによる指示に従って、このような符号化方式に応じた加算値ＯＦを選択的に出力し、加算処理部１５０に供給する。以上のように、加算値生成部１６０は、係数データに対する演算処理を施すための加算値ＯＦを生成する。【０１７７】
次に、加算処理部１５０から出力された出力データＡＤは、図７に示すように、シフト処理部１７０に供給される。シフト処理部１７０も、実施の形態１と同様の構成であり、加算処理部１５０からの出力データＡＤに対してシフト量生成部１８０から供給されたシフト量データＳＦに応じて出力データＡＤのビットシフトを行うシフト演算器１７１を有している。【０１７８】
次に、シフト量生成部１８０も、実施の形態１と同様の構成であり、各符号化方式において規定されたスケール合わせのため、上述したシフト処理部１７０に供給するシフト量を示すシフト量データＳＦを生成する。【０１７９】
次に、シフト処理部１７０から出力された出力データＳＤは、図７に示すように、後段処理部１９９に供給される。後段処理部１９９は、シフト処理部１７０からの出力データＳＤに対して飽和処理を行う飽和処理部１９２と、ＤＣＴミスマッチ制御処理を行うＤＣＴミスマッチ処理部１９３とを有している。また、飽和処理部１９２は、制御部１００からの制御情報ＣＮＴ＿ＣＬにより飽和処理を行うか否かの切替制御が可能なように構成されており、ＤＣＴミスマッチ処理部１９３は、制御部１００からの制御情報ＣＮＴ＿ＭＳによりＤＣＴミスマッチ制御処理を行うか否かの切替制御が可能なように構成されている。【０１８０】
上述したように、ＭＰＥＧ−１方式、ＭＰＥＧ−４方式及びＨ．２６３方式では、ＤＣＴミスマッチ制御処理の次に飽和処理を行うよう規定されており、ＭＰＥＧ−２方式では、飽和処理の次にＤＣＴミスマッチ制御処理を行うよう規定されている。このため、本実施の形態における逆量子化回路では、例えば、ＭＰＥＧ−１方式の係数データＣＤに対して逆量子化処理を行う場合、制御部１００は、制御情報ＣＮＴ＿ＣＬにより飽和処理部１９２の飽和処理を行うよう指示するとともに、制御情報ＣＮＴ＿ＭＳによりＤＣＴミスマッチ処理部１９３のＤＣＴミスマッチ制御処理を行わないよう指示する。さらに、制御部１００は、加算値生成部１６０に対して制御情報ＣＮＴ＿ＡＧによりＤＣＴミスマッチ制御処理における加算処理のための加算値ＯＦを出力するように指示し、加算処理部１５０に対して制御情報ＣＮＴ＿ＡＰにより加算値ＯＦを加算するように指示する。【０１８１】
すなわち、ＭＰＥＧ−１方式において、ｉｎｔｒａＤＣ以外の係数データに対して、その復元係数値が偶数の場合に、係数データの符号、すなわちＳｉｇｎ（ｄｃｔ＿ｚｚ［ｉ］）を引き算するため、加算値生成部１６０は係数データの符号を反転した値を加算値ＯＦとして出力する。これにより、ＭＰＥＧ−１方式で規定されているように、ＤＣＴミスマッチ制御処理の次に飽和処理が実行される。【０１８２】
また、ＭＰＥＧ−２方式の係数データＣＤに対して逆量子化処理を行う場合、制御部１００は、制御情報ＣＮＴ＿ＣＬにより飽和処理部１９２の飽和処理を行うよう指示するとともに、制御情報ＣＮＴ＿ＭＳによりＤＣＴミスマッチ処理部１９３のＤＣＴミスマッチ制御処理を行うよう指示する。さらに、制御部１００は、加算処理部１５０に対して制御情報ＣＮＴ＿ＡＰにより加算値ＯＦを加算しないように指示する。これにより、ＭＰＥＧ−２方式で規定されているように、飽和処理の次にＤＣＴミスマッチ制御処理が実行される。【０１８３】
本実施の形態の逆量子化回路では、以上説明したような演算処理が、それぞれの制御情報に従って各符号化方式に応じて実行され、後段処理部１９９からは、復元された係数値を有した復元データＲＤが出力端子１９に出力される。【０１８４】
なお、以下、上述したように、各演算処理部における演算処理及び各生成部における値やデータの生成方法がそれぞれに選択可能であるとして説明するが、本発明は特にこれに限定されない。例えば、対応する符号化方式の種類に応じて、乗算処理部１４０及びシフト処理部１７０のうちの少なくとも１つの演算処理部において演算処理を行うか否かを選択可能とするような構成であってもよく、第１の乗算値生成部１０、第２の乗算値生成部２０及びシフト量生成部１８０のうちの少なくとも１つの生成部において生成する値又はデータの生成方法を選択可能とするような構成であってもよい。【０１８５】
以下、以上のように構成された本発明の実施の形態２における逆量子化回路の動作について説明する。【０１８６】
図８は、本発明の実施の形態２の逆量子化回路において、各逆量子化式に対応した演算処理の一覧を示す図である。図８では、図２から図４までの各逆量子化式を共通の演算処理で実現可能なように一覧としてまとめている。図８において、“係数”は逆量子化するための係数データを示し、“２”は乗数２を示し、“符号”は係数データの正負を示す符号であり係数データの符号を利用したデッドゾーンのある量子化の処理などを示している。また、“行列”はマトリックス値を示し、“スケール”はスケール値を示し、“加算値”は逆量子化における加算値を示し、“シフト”はシフト演算を示し、“クリップ”は飽和処理を示し、“ＤＣＴミス”はＤＣＴミスマッチ制御処理を示している。また、“正規化”は、Ｈ．２６４方式で規定された正規化係数値を示している。また、“０”、“１”及び“８”などの数字はその値が示す定数を示している。また、“シフト”、“クリップ”及び“ＤＣＴミス”で示した箇所はそれぞれの処理を実行することを示し、矢印で示した箇所はその処理を実行しないことを示している。【０１８７】
特に、図８における“符号”で示す演算においては、ＭＰＥＧ−１方式のＳｉｇｎ（ｄｃｔ＿ｚｚ［ｉ］）と、ＭＰＥＧ−２方式のＳｉｇｎ（ＱＦ［ｖ］［ｕ］）と、Ｈ．２６３Ｈ及びＭＰＥＧ−４方式の１の加算とで表されるデッドゾーンのある量子化の加算値を加算する処理の共通化を図っている。さらに、図８における“加算値”で示す演算においては、Ｈ．２６３方式及びＭＰＥＧ−４方式のＤＣＴミスマッチ制御処理と、Ｈ．２６４方式のスケール合わせのための右シフトに対する丸め処理との共通化を図り、回路規模の削減を図っている。【０１８８】
このように、図２から図４までの各符号化方式の各逆量子化式は、図８に示すような共通の演算式でも表現することができる。すなわち、図７で説明した本発明の実施の形態２における逆量子化回路の構成は、図８に示すような共通の演算式を実現した回路であり、上述したような制御情報による各演算処理の実行の切替えを行うことでそれぞれの符号化方式に対応させている。本発明の実施の形態２における逆量子化回路は、演算処理の共通化を図ることで、さらに回路規模が増大することを抑制している。【０１８９】
以下、図２から図４、図７及び図８を参照しながら本発明の実施の形態２における逆量子化回路の具体的な動作についていくつかの符号化方式の例を挙げながら説明する。【０１９０】
まず、ＪＰＥＧ方式で量子化された係数データを逆量子化する処理について説明する。例えばＪＰＥＧ方式の逆量子化を行う場合、図８で示す演算構成に従って、制御情報により各演算処理の切替えが行われる。すなわち、ＪＰＥＧ方式の場合、図８に示すように、係数データＣＤに対してマトリックス値生成部１２０からのマトリックス値を乗算するのみでよい。そのため、制御部１００は、次のような制御情報をそれぞれの処理部及び生成部に通知する。【０１９１】
例えば、逆量子化回路を制御する制御部１００は、２倍乗算器１３１に対し、制御情報ＣＮＴ＿Ｆ１により、２倍の演算処理を行わないように指示する。また、制御部１００は、加算器１３２に対しては、制御情報ＣＮＴ＿Ｆ２により、デッドゾーンのある量子化に対する加算処理を行わないように指示する。また、制御部１００は、乗算器１４１に対しては、制御情報ＣＮＴ＿Ｍ１により、乗算処理を行わないように指示する。また、制御部１００は、乗算器１４２に対しては、制御情報ＣＮＴ＿Ｍ２により乗算処理を行うよう指示する。【０１９２】
また、制御部１００は、マトリックス値生成部１２０に対しては、制御情報ＣＮＴ＿ＭＸにより、マトリックス値を出力するよう指示する。また、制御部１００は、加算器１５１に対しては、制御情報ＣＮＴ＿ＡＰにより、加算処理を行わないよう指示する。また、制御部１００は、シフト演算器１７１に対しては、制御情報ＣＮＴ＿ＳＰにより、シフト演算処理を行わないよう指示する。また、制御部１００は、飽和処理部１９２に対しては、制御情報ＣＮＴ＿ＣＬにより、飽和処理を行わないよう指示する。また、制御部１００は、ＤＣＴミスマッチ処理部１９３に対しては、制御情報ＣＮＴ＿ＭＳにより、ＤＣＴミスマッチ制御処理を行わないよう指示する。【０１９３】
これにより、前段処理部１３０からは、入力端子１３に供給された係数データＣＤと同じ値の出力データＦＤが出力され、乗算処理部１４０からは、係数データＣＤの値に乗算値Ｍ２であるマトリックス値を乗算した値の出力データＭＤが出力される。さらに、加算処理部１５０、シフト処理部１７０及び後段処理部１９９からも出力データＭＤと同じ値のデータが出力される。その結果、出力端子１９からは、係数データＣＤの値に乗算値Ｍ２であるマトリックス値を乗算した値の復元データＲＤが出力される。このように、図７の構成において上述したようなそれぞれの制御情報を各部に通知することで、図２のＪＰＥＧの項に示すような係数データＳｑｖｕにマトリックス値Ｑｖｕを乗算して復元データＲｖｕを求めるような逆量子化式を実現できる。【０１９４】
また、例えばＭＰＥＧ−２方式の逆量子化を行う場合、図８に示すように係数データの種別で区分して逆量子化を行う。【０１９５】
まず、ＭＰＥＧ−２方式で量子化された画面内符号化の直流成分の係数データを逆量子化する処理について説明する。入力端子１３に供給された係数データがＭＰＥＧ−２方式の画面内符号化の直流成分の係数データのとき、図８に示すように、係数データに対してスケール値を乗算するのみでよい。そのため、制御部１００は、次のような制御情報をそれぞれの演算処理部及び生成部に通知する。【０１９６】
例えば、制御部１００は、２倍乗算器１３１に対し、制御情報ＣＮＴ＿Ｆ１により、２倍の演算処理を行わないように指示する。また、制御部１００は、加算器１３２に対しては、制御情報ＣＮＴ＿Ｆ２により、デッドゾーンのある量子化に対する加算処理を行わないように指示する。また、制御部１００は、乗算器１４１に対しては、制御情報ＣＮＴ＿Ｍ１により、乗算処理を行うように指示する。また、制御部１００は、乗算器１４２に対しては、制御情報ＣＮＴ＿Ｍ２により、乗算処理を行わないよう指示する。【０１９７】
また、制御部１００は、スケール値生成部１１０に対しては、制御情報ＣＮＴ＿ＳＧにより、制御情報ＣＮＴ＿ＳＣで指定されるスケールインデックスＳＣＩに対応したスケール値を出力するよう指示する。また、制御部１００は、加算器１５１に対しては、制御情報ＣＮＴ＿ＡＰにより、加算処理を行わないよう指示する。また、制御部１００は、シフト演算器１７１に対しては、制御情報ＣＮＴ＿ＳＰにより、シフト演算処理を行わないよう指示する。また、制御部１００は、飽和処理部１９２に対しては、制御情報ＣＮＴ＿ＣＬにより、飽和処理を行うよう指示する。ＤＣＴミスマッチ処理部１９３に対しては、制御情報ＣＮＴ＿ＭＳにより、ＤＣＴミスマッチ制御処理を行うよう指示する。【０１９８】
これにより、前段処理部１３０からは、入力端子１３に供給された係数データＣＤと同じ値の出力データＦＤが出力され、乗算処理部１４０からは、係数データＣＤの値に乗算値Ｍ１であるスケール値を乗算した値の出力データＭＤが出力される。さらに、加算処理部１５０及びシフト処理部１７０からも出力データＭＤと同じ値のデータが出力される。その結果、シフト処理部１７０からは、係数データＣＤの値にスケール値を乗算した値の出力データＳＤが出力される。【０１９９】
さらに、実施の形態１のときと同様に、後段処理部１９９において、まず、飽和処理部１９２は、出力データＳＤに対して飽和処理を行う。次に、ＤＣＴミスマッチ処理部１９３は、飽和処理部１９２から供給されたデータに対して、供給された全てのデータの値を加算して、その和が偶数のときには、最も高周波である成分、すなわち係数［７］［７］成分の値を変更するような処理を行う。このようにして、後段処理部１９９から復元データＲＤが出力される。【０２００】
このように、図７の構成において上述したようなそれぞれの制御情報が各部に通知されることで、図２のＭＰＥＧ−２のＩｎｔｒａＤＣの項に示すような係数データＱＦ［０］［０］にスケール値ｉｎｔｒａ＿ｄｃ＿ｍｕｌｔを乗算し復元データＦ”［０］［０］を求めるような逆量子化式を実現できる。【０２０１】
次に、ＭＰＥＧ−２方式で量子化された画面内符号化の交流成分の係数データを逆量子化する処理について説明する。入力端子１３に供給された係数データがＭＰＥＧ−２方式の画面内符号化の交流成分の係数データのとき、図８に示すように、係数データに対して、定数“２”、“スケール”で示すスケール値及び“行列”で示すマトリックス値を乗算し、さらに“シフト”で示すシフト演算を行えばよい。そのため、制御部１００は、次のような制御情報をそれぞれの演算処理部及び生成部に通知する。【０２０２】
例えば、制御部１００は、２倍乗算器１３１に対し、制御情報ＣＮＴ＿Ｆ１により、２倍の演算処理を行うように指示する。また、制御部１００は、加算器１３２に対しては、制御情報ＣＮＴ＿Ｆ２により、デッドゾーンのある量子化に対する加算処理を行わないように指示する。また、制御部１００は、乗算器１４１に対しては、制御情報ＣＮＴ＿Ｍ１により、乗算処理を行うように指示する。また、制御部１００は、乗算器１４２に対しては、制御情報ＣＮＴ＿Ｍ２により、乗算処理を行うように指示する。【０２０３】
また、制御部１００は、スケール値生成部１１０に対しては、制御情報ＣＮＴ＿ＳＧにより、制御情報ＣＮＴ＿ＳＣで指定されるスケールインデックスＳＣＩに対応したスケール値が格納されたスケールテーブルからの出力値を選択するよう指示する。また、制御部１００は、スケール処理部２１０に対しては、制御情報ＣＮＴ＿ＳＰにより、スケール値生成部１１０から出力されたスケール値を選択するよう指示する。これにより、乗算処理を行うように指示された乗算器１４１に、スケール値が乗算値Ｍ１として供給される。【０２０４】
また、制御部１００は、マトリックス値生成部１２０に対しては、制御情報ＣＮＴ＿ＭＸにより、入力端子１２に供給されたマトリックスデータＭＸＤに応じたマトリックス値を出力するよう指示する。また、制御部１００は、加算器１５１に対しては、制御情報ＣＮＴ＿ＡＰにより、加算処理を行わないよう指示する。また、制御部１００は、シフト演算器１７１に対しては、制御情報ＣＮＴ＿ＳＰにより、シフト演算処理を行うよう指示する。また、制御部１００は、シフト量生成部１８０に対しては、制御情報ＣＮＴ＿ＳＧにより、１／３２に対応した５ビットの右シフトに相当するシフト量データＳＦを出力するよう指示する。また、制御部１００は、飽和処理部１９２に対しては、制御情報ＣＮＴ＿ＣＬにより、飽和処理を行うよう指示する。また、制御部１００は、ＤＣＴミスマッチ処理部１９３に対しては、制御情報ＣＮＴ＿ＭＳにより、ＤＣＴミスマッチ制御処理を行うよう指示する。【０２０５】
これにより、前段処理部１３０からは、入力端子１３に供給された係数データＣＤを２倍した出力データＦＤが出力される。また、乗算処理部１４０からは、係数データＣＤを２倍し、さらにスケール値及びマトリックス値を乗算した出力データＭＤが出力される。さらに、加算処理部１５０からは、出力データＭＤと同じ値の出力データＡＤが出力される。シフト処理部１７０からは、係数データＣＤを２倍し、さらにスケール値及びマトリックス値を乗算した値を５ビットだけ右にシフトさせた、すなわち３２で割った値が出力データＳＤとして出力される。その結果、シフト処理部１７０からは、係数データＣＤを２倍し、さらにスケール値及びマトリックス値を乗算し、３２で割った値の出力データＳＤが出力される。【０２０６】
さらに、実施の形態１のときと同様に、後段処理部１９９において、まず、飽和処理部１９２は、出力データＳＤに対して飽和処理を行う。次に、ＤＣＴミスマッチ処理部１９３は、飽和処理部１９２から供給されたデータに対して、供給された全てのデータの値を加算して、その和が偶数のときには、最も高周波である成分、すなわち係数［７］［７］成分の値を変更するような処理を行う。このようにして、後段処理部１９９から復元データＲＤが出力される。【０２０７】
このように、図７の構成において上述したようなそれぞれの制御情報が各部に通知される。したがって、係数データＱＦ［ｖ］［ｕ］に、定数“２”、マトリックス値Ｗ［ｗ］［ｖ］［ｕ］及びスケール値ｑｕａｎｔｉｚｅｒ＿ｓｃａｌｅを乗算し、３２で割ることで、図２のＭＰＥＧ−２のＩｎｔｒａＡＣの項に示すような復元データＦ”［ｖ］［ｕ］を求める逆量子化式を実現できる。【０２０８】
次に、ＭＰＥＧ−２方式で量子化された画面間符号化の係数データを逆量子化する処理について説明する。入力端子１３に供給された係数データがＭＰＥＧ−２方式の画面間符号化の係数データのとき、図８に示すように、係数データに対して定数“２”を乗算するとともに“符号”で示すデッドゾーンのある量子化に対する加算処理を施し、このようなデータ値に対して“スケール”で示すスケール値及び“行列”で示すマトリックス値を乗算し、さらに“シフト”で示すシフト演算を行い、さらに“クリップ”で示す飽和処理及び“ＤＣＴミス”で示すＤＣＴミスマッチ制御処理を行えばよい。そのため、制御部１００は、次のような制御情報をそれぞれの演算処理部及び生成部に通知する。【０２０９】
例えば、制御部１００は、２倍乗算器１３１に対し、制御情報ＣＮＴ＿Ｆ１により、２倍の演算処理を行うように指示する。また、制御部１００は、加算器１３２に対しては、制御情報ＣＮＴ＿Ｆ２により、デッドゾーンのある量子化の加算値に対する加算処理を行うように指示する。また、制御部１００は、乗算器１４１に対しては、制御情報ＣＮＴ＿Ｍ１により、乗算処理を行うように指示する。また、制御部１００は、乗算器１４２に対しては、制御情報ＣＮＴ＿Ｍ２により、乗算処理を行うよう指示する。【０２１０】
また、制御部１００は、スケール値生成部１１０に対しては、制御情報ＣＮＴ＿ＳＧにより、制御情報ＣＮＴ＿ＳＣで指定されるスケールインデックスＳＣＩに対応したスケール値が格納されたスケールテーブルからの出力値を選択するよう指示する。また、制御部１００は、スケール処理部２１０に対しては、制御情報ＣＮＴ＿ＳＰにより、スケール値生成部１１０から出力されたスケール値を選択するよう指示する。これにより、乗算処理を行うように指示された乗算器１４１に、スケール値が乗算値Ｍ１として供給される。【０２１１】
また、制御部１００は、マトリックス値生成部１２０に対しては、制御情報ＣＮＴ＿ＭＸにより、入力端子１２に供給されたマトリックスデータＭＸＤに応じたマトリックス値を出力するよう指示する。また、制御部１００は、加算器１５１に対しては、制御情報ＣＮＴ＿ＡＰにより、加算処理を行わないよう指示する。【０２１２】
また、制御部１００は、シフト演算器１７１に対しては、制御情報ＣＮＴ＿ＳＰにより、シフト演算処理を行うよう指示する。また、制御部１００は、シフト量生成部１８０に対しては、制御情報ＣＮＴ＿ＳＧにより、１／３２に対応した５ビットの右シフトに相当するシフト量データＳＦを出力するよう指示する。また、制御部１００は、飽和処理部１９２に対しては、制御情報ＣＮＴ＿ＣＬにより、飽和処理を行うよう指示する。また、制御部１００は、ＤＣＴミスマッチ処理部１９３に対しては、制御情報ＣＮＴ＿ＭＳにより、ＤＣＴミスマッチ制御処理を行うよう指示する。【０２１３】
これにより、前段処理部１３０からは、入力端子１３に供給された係数データＣＤを２倍し、さらにデッドゾーンのある量子化に対応する逆量子化を施した出力データＦＤが出力される。また、乗算処理部１４０からは、前段処理部１３０からの出力データＦＤに対しスケール値及びマトリックス値を乗算した出力データＭＤが出力される。さらに、加算処理部１５０からは、出力データＭＤに等しい出力データＡＤが出力される。シフト処理部１７０からは、加算処理部１５０からの出力データＡＤを５ビットだけ右にシフトさせた、すなわち３２で割った出力データＳＤが出力される。さらに、後段処理部１９９からは、シフト処理部１７０からの出力データＳＤを飽和処理及びＤＣＴミスマッチ制御処理したデータが出力される。【０２１４】
このように、図７の構成において上述したようなそれぞれの制御情報が各部に通知される。したがって、係数データＱＦ［ｖ］［ｕ］に定数“２”を乗算し係数データの符号Ｓｉｇｎ（ＱＦ［ｖ］［ｕ］）を加算した値（２×ＱＦ［ｖ］［ｕ］＋Ｓｉｇｎ（ＱＦ［ｖ］［ｕ］））に対し、スケール値ｑｕａｎｔｉｚｅｒ＿ｓｃａｌｅ及びマトリックス値Ｗ［ｗ］［ｍ］［ｎ］を乗算し、３２で割ることで、図２のＭＰＥＧ−２のｎｏｎ−ｉｎｔｒａの項に示すような復元データＦ”［ｖ］［ｕ］を求める逆量子化式を実現できる。【０２１５】
以上説明したように、本発明の実施の形態２における逆量子化回路は、量子化係数データＣＤに対する演算処理を施すための第１の乗算値Ｍ１を生成する第１の乗算値生成部１０と、量子化係数データＣＤに対する演算処理を施すための第２の乗算値Ｍ２を生成する第２の乗算値生成部２０と、量子化係数データＣＤに対する演算処理を施すためのビットシフト量を示すシフト量データＳＦを生成するシフト量生成部１８０と、量子化係数データＣＤに対して第１の乗算値Ｍ１及び第２の乗算値Ｍ２を乗算する乗算処理部１４０と、乗算処理部１４０から出力された出力データＭＤに対してシフト量データＳＦに応じてビットシフト演算を行うシフト処理部１７０とを備える。【０２１６】
そして、乗算処理部１４０及びシフト処理部１７０のうちの少なくとも１つの演算処理部において、演算処理を行うか否かを選択可能としている。また、第１の乗算値生成部１０、第２の乗算値生成部２０及びシフト量生成部１８０のうちの少なくとも１つの生成部において、生成する値又はデータの生成方法を選択可能としている。【０２１７】
このため、符号化方式に応じてそれぞれの逆量子化回路を備える必要はなく、各種の符号化方式に応じて各演算処理部の演算処理を選択でき、柔軟性のある逆量子化回路を構成できるため、単一の回路で各種の画像符号化方式に対応できる汎用性の高い逆量子化回路を提供することができる。【０２１８】
なお、以上の説明では、図７に示すような機能ブロックで構成される逆量子化回路により逆量子化を行うような実施の形態の一例を説明したが、本発明は特にこれに限定されない。例えば、量子化係数データＣＤに対する演算処理を施すための第１の乗算値Ｍ１を生成する第１の乗算値生成ステップと、量子化係数データＣＤに対する演算処理を施すための第２の乗算値Ｍ２を生成する第２の乗算値生成ステップと、量子化係数データＣＤに対する演算処理を施すためのビットシフト量を示すシフト量データＳＦを生成するシフト量生成ステップと、量子化係数データＣＤに対して第１の乗算値Ｍ１及び第２の乗算値Ｍ２を乗算する乗算処理ステップと、乗算処理ステップからの出力データＭＤに対してシフト量データＳＦに応じてビットシフト演算を行うシフト処理ステップとを含む逆量子化方法であってもよい。【０２１９】
そして、乗算処理ステップ及びシフト処理ステップのうちの少なくとも１つの演算処理ステップにおいて、演算処理を行うか否かを選択可能としてもよい。また、第１の乗算値生成ステップ、第２の乗算値生成ステップ及びシフト量生成ステップのうちの少なくとも１つの生成ステップにおいて、生成する値又はデータの生成方法を選択可能としてもよい。【０２２０】
具体的には、このような逆量子化方法の各ステップを実行するようなプログラムをメモリなどに記憶させ、例えば、マイクロプロセッサのようなＣＰＵが、メモリに記憶されたプログラムを順次読み取り、読み取ったプログラムに従って処理を実行するような構成であってもよい。【０２２１】
ここで、実施の形態１における逆量子化回路と実施の形態２における逆量子化回路との差について説明する。実施の形態１における逆量子化回路は、汎用性を重視した構成であり、実施の形態２における逆量子化回路は、回路規模の小型化を重視した構成である。【０２２２】
その一例として、図８において、画面間符号化のＭＰＥＧ−１方式におけるＤＣＴミスマッチ制御処理と、Ｈ．２６４方式における丸め処理とは、同一の演算項（図８に示す“加算値”）で表されている。このように、ＤＣＴミスマッチ制御処理と丸め処理とを同一の演算項で表現した場合、将来の新たな符号化方式において、ＤＣＴミスマッチ制御処理と丸め処理との両方の要素を含む規格が出現したときに対応が困難となる。そこで、図５に示す演算構成では、ＤＣＴミスマッチ制御処理と丸め処理とを別々の演算項として表している。このように、実施の形態１では、複数の異なる演算処理を１つの演算処理部に行わせることがないため、より汎用性の高い逆量子化回路を実現することができる。【０２２３】
また、別の例として、図８に示す演算構成では、デッドゾーン付き量子化のためのオフセット（“符号”で示す演算項）は、量子化スケール値と量子化行列とに結びついており、独立性が低くなっている。これに対し、図５に示す演算構成では、量子化スケール値（乗算値Ｍ１）と、デッドゾーン付き量子化のためのオフセット（加算値ＯＦ）とが分離して表現されている。デッドゾーン付きの量子化とは、ゼロ付近の値をゼロに丸める処理であり、どれだけの範囲の値をゼロに丸めるか、すなわちどのようなオフセットを加算するかは符号化方式に応じて異なる。このため、実施の形態１では、各演算項の依存関係を最小にすることによって、各演算処理が独立して制御されるので、より汎用性の高い逆量子化回路を実現することができる。【０２２４】
さらに別の例として、図７に示す実施の形態２における逆量子化回路は、係数データを２倍する２倍乗算器１３１を備えている。この２倍乗算器１３１は、量子化スケールの値の調整や、量子化スケールとデッドゾーン付き量子化のためのオフセットとの関係を調整するために設けられているが、将来的に２以外の数値を係数データに乗算する符号化方式が出現する虞がある。そこで、実施の形態１における逆量子化回路では、この係数データを２倍する演算を図６に示す演算部２１１により行っている。ここで、演算部２１１が乗算する値は固定ではなく、符号化方式に応じて変更が可能である。したがって、実施の形態１では、調整する余地のあるパラメータについては固定化されないので、より汎用性の高い逆量子化回路を実現することができる。【０２２５】
以上のように、実施の形態１における逆量子化回路は、汎用性をより高めた構成となっている。【０２２６】
（実施の形態３）
図９は、本発明の実施の形態３に係る画像再生装置の構成を示すブロック図である。なお、画像再生装置は、例えば、パーソナルコンピュータ、セットトップボックス、光ディスクレコーダ、光ディスクプレーヤ、テレビ、携帯情報端末装置及び携帯電話機を含む。【０２２７】
図９に示す画像再生装置３００は、符号化ストリーム取得部３０１、量子化係数データ抽出部３０２、逆量子化回路３０３、画像データ変換部３０４及び出力部３０５を備える。【０２２８】
符号化ストリーム取得部３０１は、符号化ストリームを取得する。なお、符号化ストリーム取得部３０１は、ネットワークを介して符号化ストリームを取得したり、ＤＶＤ、Ｂｌｕ−ｒａｙディスク等の光ディスクを読み取ることにより符号化ストリームを取得したり、アンテナを介して放送波から符号化ストリームを取得したりする。【０２２９】
量子化係数データ抽出部３０２は、符号化ストリーム取得部３０１によって取得された符号化ストリームの中から、画像データを符号化方式に基づいて変換することで求めた周波数ごとの係数値を量子化した量子化係数データを抽出する。【０２３０】
逆量子化回路３０３は、実施の形態１又は実施の形態２で述べたいずれかの逆量子化回路である。逆量子化回路３０３は、量子化係数データ抽出部３０２によって抽出された量子化係数データに対し、演算処理を施すことで逆量子化を行い、係数値を復元する。【０２３１】
画像データ変換部３０４は、逆量子化回路３０３によって復元された係数値を画像データに変換する。出力部３０５は、画像データ変換部３０４によって変換された画像データをモニタ３１０に出力する。モニタ３１０は、出力部３０５によって出力された画像データを表示する。【０２３２】
画像再生装置３００は、実施の形態１又は実施の形態２で述べたいずれかの逆量子化回路を搭載しているので、本実施の形態における画像再生装置３００は、単一回路で各種の符号化方式に対応した逆量子化を行うことができる。【０２３３】
なお、上述した具体的実施形態には以下の構成を有する発明が主に含まれている。【０２３４】
本発明の一局面に係る逆量子化回路は、画像データを符号化方式に基づいて変換することで求めた周波数ごとの係数値を量子化した量子化係数データに対し、演算処理を施すことで逆量子化を行い、前記係数値を復元する逆量子化回路であって、前記量子化係数データに対する前記演算処理を施すための第１の乗算値を生成する第１の乗算値生成部と、前記量子化係数データに対する前記演算処理を施すための第２の乗算値を生成する第２の乗算値生成部と、前記量子化係数データに対する前記演算処理を施すためのビットシフト量を示すシフト量データを生成するシフト量生成部と、前記第１の乗算値生成部によって生成された前記第１の乗算値及び前記第２の乗算値生成部によって生成された前記第２の乗算値を前記量子化係数データに乗算する乗算処理部と、前記シフト量生成部によって生成された前記シフト量データに応じて、前記乗算処理部から出力されたデータに対してビットシフト演算を行うシフト処理部とを備え、前記乗算処理部及び前記シフト処理部のうちの少なくとも１つは、前記演算処理を行うか否かを前記符号化方式に応じて決定し、及び／又は、前記第１の乗算値生成部、前記第２の乗算値生成部及び前記シフト量生成部のうちの少なくとも１つは、生成する値又は値の生成方法を前記符号化方式に応じて決定する。【０２３５】
この構成によれば、第１の乗算値生成部によって、量子化係数データに対する演算処理を施すための第１の乗算値が生成され、第２の乗算値生成部によって、量子化係数データに対する演算処理を施すための第２の乗算値が生成され、シフト量生成部によって、量子化係数データに対する演算処理を施すためのビットシフト量を示すシフト量データが生成される。そして、乗算処理部によって、第１の乗算値及び第２の乗算値が量子化係数データに乗算され、シフト処理部によって、シフト量データに応じて、乗算処理部から出力されたデータに対してビットシフト演算が行われる。乗算処理部及びシフト処理部のうちの少なくとも１つにおいて、演算処理を行うか否かが符号化方式に応じて決定される。また、第１の乗算値生成部、第２の乗算値生成部及びシフト量生成部のうちの少なくとも１つにおいて、生成する値又は値の生成方法が符号化方式に応じて決定される。【０２３６】
したがって、演算処理を行うか否か、及び生成する値又は値の生成方法が符号化方式に応じて決定されるので、単一の回路で各種の符号化方式に対応した逆量子化を行うことができ、回路規模の削減を図れるとともに、新たな符号化方式が提案された場合にも迅速に対応することができる。また、復号化処理を行うためのＬＳＩなどの再設計が不要となるなど、汎用性の高い逆量子化回路を提供することができる。【０２３７】
また、上記の逆量子化回路において、前記量子化係数データに対する前記演算処理を施すための加算値を生成する加算値生成部と、前記加算値生成部によって生成された前記加算値を前記乗算処理部から出力されたデータに加算する加算処理部とをさらに備え、前記シフト処理部は、前記シフト量生成部によって生成された前記シフト量データに応じて、前記加算処理部から出力されたデータに対してビットシフト演算を行い、前記乗算処理部、前記加算処理部及び前記シフト処理部のうちの少なくとも１つは、前記演算処理を行うか否かを符号化方式に応じて決定し、及び／又は、前記第１の乗算値生成部、前記第２の乗算値生成部、前記加算値生成部及び前記シフト量生成部のうちの少なくとも１つは、生成する値又は値の生成方法を符号化方式に応じて決定することが好ましい。【０２３８】
この構成によれば、加算値生成部によって、量子化係数データに対する演算処理を施すための加算値が生成され、加算処理部によって、生成された加算値が乗算処理部から出力されたデータに加算される。また、シフト処理部によって、シフト量生成部により生成されたシフト量データに応じて、加算処理部から出力されたデータに対してビットシフト演算が行われる。乗算処理部、加算処理部及びシフト処理部のうちの少なくとも１つにおいて、演算処理を行うか否かが符号化方式に応じて決定される。また、第１の乗算値生成部、第２の乗算値生成部、加算値生成部及びシフト量生成部のうちの少なくとも１つにおいて、生成する値又は値の生成方法が符号化方式に応じて決定される。【０２３９】
したがって、乗算処理部から出力されたデータに加算値を加算する演算処理を施すことができ、単一の回路で各種の符号化方式に対応した逆量子化をさらに行うことができる。【０２４０】
また、上記の逆量子化回路において、前記第１の乗算値生成部は、量子化幅を示す量子化スケール値を含む前記第１の乗算値を生成し、前記第２の乗算値生成部は、周波数ごとの量子化幅を示す量子化マトリックス値を含む前記第２の乗算値を生成することが好ましい。【０２４１】
この構成によれば、第１の乗算値生成部によって、量子化幅を示す量子化スケール値を含む第１の乗算値が生成され、第２の乗算値生成部によって、周波数ごとの量子化幅を示す量子化マトリックス値を含む第２の乗算値が生成される。したがって、量子化幅を示す量子化スケール値を乗算する演算処理を行うことができるとともに、周波数ごとの量子化幅を示す量子化マトリックス値を乗算する演算処理を行うことができる。【０２４２】
また、上記の逆量子化回路において、前記第１の乗算値生成部は、前記量子化スケール値を生成するスケール値生成部と、前記量子化スケール値に対して演算処理を施すとともに、前記量子化スケール値及び前記演算処理により得られた値のいずれかを前記第１の乗算値として出力するスケール処理部とを含み、前記第２の乗算値生成部は、周波数ごとの前記量子化マトリックス値を生成し、生成した前記量子化マトリックス値を前記第２の乗算値として出力するマトリックス値生成部を含むことが好ましい。【０２４３】
この構成によれば、ケール値生成部によって、量子化スケール値が生成され、スケール処理部によって、量子化スケール値に対して演算処理が施されるとともに、量子化スケール値及び演算処理により得られた値のいずれかが第１の乗算値として出力される。また、マトリックス値生成部によって、周波数ごとの量子化マトリックス値が生成され、生成された量子化マトリックス値が第２の乗算値として出力される。【０２４４】
したがって、量子化スケール値を生成し、生成した量子化スケール値に対して演算処理を施すことができ、量子化スケール値及び演算処理により得られた値のいずれかを第１の乗算値として出力することができる。また、周波数ごとの量子化マトリックス値を生成し、生成した量子化マトリックス値を第２の乗算値として出力することができる。【０２４５】
また、上記の逆量子化回路において、前記スケール処理部は、前記量子化スケール値、前記量子化スケール値を演算処理することにより得られた値及び所定の定数値のいずれかを前記第１の乗算値として出力し、前記マトリックス値生成部は、周波数ごとの前記量子化マトリックス値及び所定の定数値のいずれかを前記第２の乗算値として出力することが好ましい。【０２４６】
この構成によれば、量子化スケール値、量子化スケール値を演算処理することにより得られた値及び所定の定数値のいずれかが第１の乗算値として出力され、周波数ごとの量子化マトリックス値及び所定の定数値のいずれかが第２の乗算値として出力される。【０２４７】
したがって、量子化スケール値、量子化スケール値を演算処理することにより得られた値及び所定の定数値のいずれかを乗算する演算処理を施すことができるとともに、量子化マトリックス値及び所定の定数値のいずれかを乗算する演算処理を施すことができ、単一の回路で各種の符号化方式に対応した逆量子化をさらに行うことができる。【０２４８】
また、上記の逆量子化回路において、前記加算値生成部は、前記スケール値生成部によって生成された前記量子化スケール値と、前記マトリックス値生成部によって生成された前記量子化マトリックス値とを乗算する乗算器と、前記量子化スケール値、前記量子化マトリックス値、及び前記量子化スケール値と前記量子化マトリックス値とを乗算することにより得られた値のうちのいずれかの値を選択し、選択した値を前記加算値として前記加算処理部に供給する選択部とを含むことが好ましい。【０２４９】
この構成によれば、乗算器によって、スケール値生成部により生成された量子化スケール値と、マトリックス値生成部により生成された量子化マトリックス値とが乗算される。そして、選択部によって、量子化スケール値、量子化マトリックス値、及び量子化スケール値と量子化マトリックス値とを乗算することにより得られた値のうちのいずれかの値が選択され、選択された値が加算値として加算処理部に供給される。【０２５０】
したがって、量子化スケール値、量子化マトリックス値、及び量子化スケール値と量子化マトリックス値とを乗算することにより得られた値のうちのいずれかの値を加算する演算処理を施すことができ、単一の回路で各種の符号化方式に対応した逆量子化をさらに行うことができる。【０２５１】
また、上記の逆量子化回路において、前記選択部は、前記量子化スケール値、前記量子化マトリックス値、前記量子化スケール値と前記量子化マトリックス値とを乗算することにより得られた値、及び所定の定数値のうちのいずれかの値を選択し、選択した値を前記加算値として前記加算処理部に供給することが好ましい。【０２５２】
この構成によれば、量子化スケール値、量子化マトリックス値、量子化スケール値と量子化マトリックス値とを乗算することにより得られた値、及び所定の定数値のうちのいずれかの値が選択され、選択された値が加算値として加算処理部に供給される。【０２５３】
したがって、量子化マトリックス値、量子化スケール値と量子化マトリックス値とを乗算することにより得られた値、及び所定の定数値のうちのいずれかの値を加算する演算処理を施すことができ、単一の回路で各種の符号化方式に対応した逆量子化をさらに行うことができる。【０２５４】
また、上記の逆量子化回路において、前記スケール値生成部は、供給されたデータを量子化スケール値に変換する１種類又は複数種類のスケール変換部を含むことが好ましい。【０２５５】
この構成によれば、１種類又は複数種類のスケール変換部によって、供給されたデータが量子化スケール値に変換されるので、符号化方式に応じてスケール変換部の変換内容を変えることができる。【０２５６】
また、上記の逆量子化回路において、前記スケール値生成部は、供給されたデータを量子化スケール値に変換する１種類又は複数種類の第１のスケール変換部と、前記スケール変換部によって変換された量子化スケール値をさらに変換する第２のスケール変換部と、前記第１のスケール変換部によって変換された量子化スケール値と前記第２のスケール変換部によってさらに変換された量子化スケール値とのいずれかを選択し、選択した量子化スケール値を前記スケール処理部へ出力する選択部とを含むことが好ましい。【０２５７】
この構成によれば、１種類又は複数種類の第１のスケール変換部によって、供給されたデータが量子化スケール値に変換され、第２のスケール変換部によって、第１のスケール変換部により変換された量子化スケール値がさらに変換される。そして、選択部によって、第１のスケール変換部により変換された量子化スケール値と、第２のスケール変換部によりさらに変換された量子化スケール値とのいずれかが選択され、選択された量子化スケール値がスケール処理部へ出力される。【０２５８】
したがって、第１のスケール変換部により変換された量子化スケール値と、第２のスケール変換部によりさらに変換された量子化スケール値とのいずれかを用いた演算処理を施すことができ、単一の回路で各種の符号化方式に対応した逆量子化をさらに行うことができる。【０２５９】
また、上記の逆量子化回路において、前記スケール処理部は、前記スケール値生成部によって生成された前記量子化スケール値に対して演算処理を施す演算部と、前記スケール値生成部によって生成された前記量子化スケール値と、前記演算部により演算処理が施された量子化スケール値と、所定の定数値とのうちのいずれかの値を選択し、選択した値を前記第１の乗算値として出力する選択部とを含むことが好ましい。【０２６０】
この構成によれば、演算部によって、スケール値生成部により生成された量子化スケール値に対して演算処理が施され、選択部によって、スケール値生成部により生成された量子化スケール値と、演算部により演算処理が施された量子化スケール値と、所定の定数値とのうちのいずれかの値が選択され、選択された値が第１の乗算値として出力される。【０２６１】
したがって、量子化スケール値と、演算処理が施された量子化スケール値と、所定の定数値とのうちのいずれかの値を用いた演算処理を施すことができ、単一の回路で各種の符号化方式に対応した逆量子化をさらに行うことができる。【０２６２】
また、上記の逆量子化回路において、前記スケール処理部の前記選択部は、前記量子化係数データの種類に応じて、前記スケール値生成部によって生成された前記量子化スケール値と、前記演算部により演算処理が施された量子化スケール値と、所定の定数値とのうちのいずれかの値を選択することが好ましい。【０２６３】
この構成によれば、量子化係数データの種類に応じて、スケール値生成部により生成された量子化スケール値と、演算部により演算処理が施された量子化スケール値と、所定の定数値とのうちのいずれかの値が選択される。量子化係数データの種類に応じて、選択する値を変えることができ、各種の符号化方式に対応した逆量子化を行うことができる。【０２６４】
また、上記の逆量子化回路において、前記シフト量生成部は、前記スケール値生成部の前記スケール変換部から出力された前記量子化スケール値を前記シフト量データに変換するシフト量変換部を含むことが好ましい。【０２６５】
この構成によれば、シフト量変換部によって、スケール値生成部のスケール変換部から出力された量子化スケール値がシフト量データに変換されるので、量子化スケール値からシフト量データを生成することができる。【０２６６】
また、上記の逆量子化回路において、前記シフト量生成部は、前記シフト量変換部によって変換された前記シフト量データと、所定の定数値とのいずれかを前記シフト量データとして選択し、選択した前記シフト量データを前記シフト処理部に供給する選択部をさらに含むことが好ましい。【０２６７】
この構成によれば、シフト量変換部により変換されたシフト量データと、所定の定数値とのいずれかがシフト量データとして選択され、選択されたシフト量データがシフト処理部に供給される。したがって、シフト量変換部により変換されたシフト量データと、所定の定数値とのいずれかを用いてビットシフト演算を行うことができ、単一の回路で各種の符号化方式に対応した逆量子化をさらに行うことができる。【０２６８】
また、上記の逆量子化回路において、前記シフト量生成部の選択部は、量子化係数データの種類に応じて、前記シフト量変換部によって変換された前記シフト量データと、所定の定数値とのいずれかを選択することが好ましい。【０２６９】
この構成によれば、量子化係数データの種類に応じて、シフト量変換部により変換されたシフト量データと、所定の定数値とのいずれかが選択されるので、量子化係数データの種類に応じて、ビットシフト演算に用いる値を変えることができ、各種の符号化方式に対応した逆量子化を行うことができる。【０２７０】
また、上記の逆量子化回路において、前記シフト量生成部は、前記シフト量変換部によって変換された前記シフト量データに対してシフト加算値を加算した値をシフト量データとして前記シフト処理部に供給する加算器をさらに含むことが好ましい。【０２７１】
この構成によれば、加算器によって、シフト量変換部により変換されたシフト量データに対してシフト加算値を加算した値がシフト量データとしてシフト処理部に供給される。したがって、シフト量データに対してシフト加算値を加算する演算処理を施すことができ、単一の回路で各種の符号化方式に対応した逆量子化をさらに行うことができる。【０２７２】
また、上記の逆量子化回路において、前記加算器は、量子化係数データの種類に応じて選択したシフト加算値を、前記シフト量変換部によって変換された前記シフト量データに加算することが好ましい。【０２７３】
この構成によれば、量子化係数データの種類に応じて選択したシフト加算値が、シフト量変換部により変換されたシフト量データに加算されるので、量子化係数データの種類に応じて、シフト量データに加算するシフト加算値を変えることができ、各種の符号化方式に対応した逆量子化を行うことができる。【０２７４】
また、上記の逆量子化回路において、前記シフト処理部は、前記加算処理部から出力されたデータに対して、前記シフト量生成部によって生成された前記シフト量データに応じたビット数だけビットシフトするビットシフト演算を行うことが好ましい。【０２７５】
この構成によれば、加算処理部から出力されたデータに対して、シフト量生成部により生成されたシフト量データに応じたビット数だけビットシフトするビットシフト演算が行われる。したがって、加算処理部から出力されたデータに対して、シフト量データに応じたビット数だけビットシフトするビットシフト演算を行うことができる。【０２７６】
また、上記の逆量子化回路において、前記乗算処理部は、前記量子化係数データに前記第１の乗算値を乗算した値、前記量子化係数データに前記第２の乗算値を乗算した値、及び前記量子化係数データに前記第１の乗算値と前記第２の乗算値とを乗算した値のうちのいずれかの値を選択し、選択した値を出力データとして前記加算処理部に供給することが好ましい。【０２７７】
この構成によれば、量子化係数データに第１の乗算値を乗算した値、量子化係数データに第２の乗算値を乗算した値、及び量子化係数データに第１の乗算値と第２の乗算値とを乗算した値のうちのいずれかの値が選択され、選択された値が出力データとして加算処理部に供給される。【０２７８】
したがって、量子化係数データに第１の乗算値を乗算した値、量子化係数データに第２の乗算値を乗算した値、及び量子化係数データに第１の乗算値と第２の乗算値とを乗算した値のうちのいずれかの値を加算処理部に供給することができ、単一の回路で各種の符号化方式に対応した逆量子化をさらに行うことができる。【０２７９】
また、上記の逆量子化回路において、前記乗算処理部における選択機能は、量子化係数データの種類に応じて、前記量子化係数データに前記第１の乗算値を乗算した値、前記量子化係数データに前記第２の乗算値を乗算した値、及び前記量子化係数データに前記第１の乗算値と前記第２の乗算値とを乗算した値のうちのいずれかの値を選択することが好ましい。【０２８０】
この構成によれば、量子化係数データの種類に応じて、量子化係数データに第１の乗算値を乗算した値、量子化係数データに記第２の乗算値を乗算した値、及び量子化係数データに第１の乗算値と第２の乗算値とを乗算した値のうちのいずれかの値が選択される。したがって、量子化係数データの種類に応じて、乗算処理部から出力される値を変えることができ、各種の符号化方式に対応した逆量子化を行うことができる。【０２８１】
また、上記の逆量子化回路において、前記加算処理部は、前記乗算処理部から供給されたデータの値、及び前記乗算処理部から供給されたデータに前記加算値生成部によって生成された前記加算値を加算することにより得られた値のうちのいずれかの値を選択し、選択した値を出力データとして前記シフト処理部に供給することが好ましい。【０２８２】
この構成によれば、乗算処理部から供給されたデータの値、及び乗算処理部から供給されたデータに加算値生成部により生成された加算値を加算することにより得られた値のうちのいずれかの値が選択され、選択された値が出力データとしてシフト処理部に供給される。【０２８３】
したがって、乗算処理部から供給されたデータの値、及び乗算処理部から供給されたデータに加算値生成部により生成された加算値を加算することにより得られた値のうちのいずれかの値をシフト処理部に供給することができ、単一の回路で各種の符号化方式に対応した逆量子化をさらに行うことができる。【０２８４】
また、上記の逆量子化回路において、前記シフト処理部は、前記加算処理部から供給されたデータの値、及び前記ビットシフト演算により得られた値のうちのいずれかの値を選択し、選択した値を出力データとして出力することが好ましい。【０２８５】
この構成によれば、シフト処理部によって、加算処理部から供給されたデータの値、及びビットシフト演算により得られた値のうちのいずれかの値が選択され、選択された値が出力データとして出力される。【０２８６】
したがって、加算処理部から供給されたデータの値、及びビットシフト演算により得られた値のうちのいずれかの値をシフト処理部から出力することができ、単一の回路で各種の符号化方式に対応した逆量子化をさらに行うことができる。【０２８７】
また、上記の逆量子化回路において、前記シフト量生成部によって生成された前記シフト量データに応じた値を前記加算処理部からの出力データに加算することで丸め処理を行い、前記丸め処理を行った処理済データと前記丸め処理を行わない非処理データとを選択的に切替えて前記シフト処理部に出力する丸め処理部をさらに備えることが好ましい。【０２８８】
この構成によれば、丸め処理部によって、シフト量生成部により生成されたシフト量データに応じた値を加算処理部からの出力データに加算することで丸め処理が行われ、丸め処理を行った処理済データと丸め処理を行わない非処理データとが選択的に切替えてシフト処理部に出力される。したがって、丸め処理を行う符号化方式に対応した逆量子化を行うことができ、単一の回路で各種の符号化方式に対応した逆量子化をさらに行うことができる。【０２８９】
また、上記の逆量子化回路において、前記丸め処理部は、前記シフト処理部におけるビットシフト演算が右方向へのシフトの場合のみ、前記加算処理部からの出力データに対して、前記シフト量生成部によって生成された前記シフト量データに応じた値を加算することで前記丸め処理を行うことが好ましい。【０２９０】
この構成によれば、シフト処理部におけるビットシフト演算が右方向へのシフトの場合のみ、シフト量生成部により生成されたシフト量データに応じた値を加算処理部からの出力データに加算することで丸め処理が行われる。したがって、ビットシフト演算が右方向へのシフトの場合のみ丸め処理が行われるので、ビットを右方向へシフトする符号化方式に対応した逆量子化を行うことができ、単一の回路で各種の符号化方式に対応した逆量子化をさらに行うことができる。【０２９１】
また、上記の逆量子化回路において、前記シフト処理部から出力されたデータに対して、離散コサイン変換ミスマッチ制御処理を行う演算処理機能と、前記シフト処理部から出力されたデータに対して、クリッピングする範囲が設定可能な飽和処理を行う演算処理機能とを含み、前記離散コサイン変換ミスマッチ制御処理及び前記飽和処理において、それぞれ処理済データと非処理データとを選択的に切替えて出力する後段処理部をさらに備えることが好ましい。【０２９２】
この構成によれば、シフト処理部から出力されたデータに対して、離散コサイン変換ミスマッチ制御処理を行う演算処理機能と、シフト処理部から出力されたデータに対して、クリッピングする範囲が設定可能な飽和処理を行う演算処理機能とにおいて、それぞれ処理済データと非処理データとが選択的に切替えて出力される。【０２９３】
したがって、離散コサイン変換ミスマッチ制御処理が行われた処理済データと、離散コサイン変換ミスマッチ制御処理が行われていない非処理データとが選択的に出力され、飽和処理が行われた処理済データと、飽和処理が行われていない非処理データとが選択的に出力されるので、離散コサイン変換ミスマッチ制御処理を行う符号化方式及び飽和処理を行う符号化方式に対応した逆量子化を行うことができ、単一の回路で各種の符号化方式に対応した逆量子化をさらに行うことができる。【０２９４】
また、上記の逆量子化回路において、前記後段処理部は、前記離散コサイン変換ミスマッチ制御処理を行う条件が設定できることが好ましい。この構成によれば、符号化方式に応じて、離散コサイン変換ミスマッチ制御処理を行う条件を設定することができる。【０２９５】
また、上記の逆量子化回路において、前記後段処理部は、前記量子化係数データの種類に応じて前記離散コサイン変換ミスマッチ制御処理を行うか否かを制御できることが好ましい。この構成によれば、量子化係数データの種類に応じて前記離散コサイン変換ミスマッチ制御処理を行うか否かを制御することができる。【０２９６】
また、上記の逆量子化回路において、前記後段処理部は、前記離散コサイン変換ミスマッチ制御処理の演算内容を制御できることが好ましい。この構成によれば、離散コサイン変換ミスマッチ制御処理の演算内容を制御することができる。【０２９７】
また、上記の逆量子化回路において、前記後段処理部は、前記飽和処理の前段及び後段のいずれかにおいて前記離散コサイン変換ミスマッチ制御処理を行うことが好ましい。この構成によれば、飽和処理の前段及び後段のいずれかにおいて離散コサイン変換ミスマッチ制御処理が行われるので、飽和処理の前に離散コサイン変換ミスマッチ制御処理を行う符号化方式、及び飽和処理の後に離散コサイン変換ミスマッチ制御処理を行う符号化方式に対応した逆量子化を行うことができる。【０２９８】
また、上記の逆量子化回路において、前記量子化係数データを整数倍する演算処理機能と、デッドゾーンに対応した加算値を前記量子化係数データに加算する演算処理機能とを含み、前記量子化係数データを整数倍する演算処理及び前記量子化係数データに前記加算値を加算する演算処理において、それぞれ演算処理済データと非演算処理データとを選択的に切替えて出力する前段処理部をさらに備えることが好ましい。【０２９９】
この構成によれば、量子化係数データを整数倍する演算処理機能と、デッドゾーンに対応した加算値を量子化係数データに加算する演算処理機能とにおいて、それぞれ演算処理済データと非演算処理データとが選択的に切替えて出力される。【０３００】
したがって、量子化係数データを整数倍した演算処理済データと、量子化係数データを整数倍していない非演算処理データとが選択的に出力され、デッドゾーンに対応した加算値を量子化係数データに加算した演算処理済データと、デッドゾーンに対応した加算値を量子化係数データに加算していない非演算処理データとが選択的に出力されるので、量子化係数データを整数倍する符号化方式及びデッドゾーンに対応した加算値を量子化係数データに加算する符号化方式に対応した逆量子化を行うことができ、単一の回路で各種の符号化方式に対応した逆量子化をさらに行うことができる。【０３０１】
本発明の他の局面に係る逆量子化方法は、画像データを符号化方式に基づいて変換することで求めた周波数ごとの係数値を量子化した量子化係数データに対し、演算処理を施すことで逆量子化を行い、前記係数値を復元する逆量子化方法であって、前記量子化係数データに対する前記演算処理を施すための第１の乗算値を生成する第１の乗算値生成ステップと、前記量子化係数データに対する前記演算処理を施すための第２の乗算値を生成する第２の乗算値生成ステップと、前記量子化係数データに対する前記演算処理を施すためのビットシフト量を示すシフト量データを生成するシフト量生成ステップと、前記第１の乗算値生成ステップにおいて生成された前記第１の乗算値及び前記第２の乗算値生成ステップにおいて生成された前記第２の乗算値を前記量子化係数データに乗算する乗算処理ステップと、前記シフト量生成ステップにおいて生成された前記シフト量データに応じて、前記乗算処理ステップにおいて出力されたデータに対してビットシフト演算を行うシフト処理ステップとを含み、前記乗算処理ステップ及び前記シフト処理ステップのうちの少なくとも１つは、前記演算処理を行うか否かを前記符号化方式に応じて決定し、及び／又は、前記第１の乗算値生成ステップ、前記第２の乗算値生成ステップ及び前記シフト量生成ステップのうちの少なくとも１つは、前記生成する値又は値の生成方法を前記符号化方式に応じて決定する。【０３０２】
この構成によれば、第１の乗算値生成ステップにおいて、量子化係数データに対する演算処理を施すための第１の乗算値が生成され、第２の乗算値生成ステップにおいて、量子化係数データに対する演算処理を施すための第２の乗算値が生成され、シフト量生成ステップにおいて、量子化係数データに対する演算処理を施すためのビットシフト量を示すシフト量データが生成される。そして、乗算処理ステップにおいて、第１の乗算値及び第２の乗算値が量子化係数データに乗算され、シフト処理ステップにおいて、シフト量データに応じて、乗算処理部から出力されたデータに対してビットシフト演算が行われる。乗算処理ステップ及びシフト処理ステップのうちの少なくとも１つにおいて、演算処理を行うか否かが符号化方式に応じて決定される。また、第１の乗算値生成ステップ、第２の乗算値生成ステップ及びシフト量生成ステップのうちの少なくとも１つにおいて、生成する値又は値の生成方法が符号化方式に応じて決定される。【０３０３】
したがって、演算処理を行うか否か、及び生成する値又は値の生成方法が符号化方式に応じて決定されるので、単一の回路で各種の符号化方式に対応した逆量子化を行うことができ、回路規模の削減を図れるとともに、新たな符号化方式が提案された場合にも迅速に対応することができる。また、復号化処理を行うためのＬＳＩなどの再設計が不要となるなど、汎用性の高い逆量子化方法を提供することができる。【０３０４】
本発明の他の局面に係る画像再生装置は、量子化係数データを取得する量子化係数データ取得部と、前記量子化係数データ取得部によって取得された量子化係数データを逆量子化することで係数値を復元する上記の逆量子化回路と、前記逆量子化回路によって復元された係数値を画像データに変換する変換部と、前記変換部によって変換された画像データを出力する出力部とを備える。【０３０５】
この構成によれば、量子化係数データ取得部によって、量子化係数データが取得され、逆量子化回路によって、量子化係数データ取得部により取得された量子化係数データを逆量子化することで係数値が復元される。そして、変換部によって、逆量子化回路により復元された係数値が画像データに変換され、出力部によって、変換部により変換された画像データが出力される。【０３０６】
したがって、例えば、パーソナルコンピュータ、セットトップボックス、携帯情報端末装置及び携帯電話機などの画像再生装置に上記の逆量子化回路を適用することができる。
【産業上の利用可能性】
【０３０７】
本発明に係る逆量子化回路及び逆量子化方法は、例えば、画像の符号化方式に基づき符号化されたデータである符号化データに対して復号化処理を施す機能を備えた集積回路や、このような集積回路を備えた、パーソナルコンピュータ、セットトップボックス、携帯情報端末装置又は携帯電話機などの情報機器、及びその他の装置に利用することが可能である。
【図１】
2008120433.tif 000003
【図２】
2008120433.tif 000004
【図３】
2008120433.tif 000005
【図４】
2008120433.tif 000006
【図５】
2008120433.tif 000007
【図６】
2008120433.tif 000008
【図７】
2008120433.tif 000009
【図８】
2008120433.tif 000010
【図９】
2008120433.tif 000011
【手続補正書】
【提出日】平成21年2月18日(2009.2.18)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
画像データを符号化方式に基づいて変換することで求めた周波数ごとの係数値を量子化した量子化係数データに対し、演算処理を施すことで逆量子化を行い、前記係数値を復元する逆量子化回路であって、
前記量子化係数データに対する前記演算処理を施すための第１の乗算値を生成する第１の乗算値生成部と、
前記量子化係数データに対する前記演算処理を施すための第２の乗算値を生成する第２の乗算値生成部と、
前記量子化係数データに対する前記演算処理を施すためのビットシフト量を示すシフト量データを生成するシフト量生成部と、
前記第１の乗算値生成部によって生成された前記第１の乗算値及び前記第２の乗算値生成部によって生成された前記第２の乗算値を前記量子化係数データに乗算する乗算処理部と、
前記シフト量生成部によって生成された前記シフト量データに応じて、前記乗算処理部から出力されたデータに対してビットシフト演算を行うシフト処理部とを備え、
前記乗算処理部及び前記シフト処理部のうちの少なくとも１つは、前記演算処理を行うか否かを前記符号化方式に応じて決定し、及び／又は、
前記第１の乗算値生成部、前記第２の乗算値生成部及び前記シフト量生成部のうちの少なくとも１つは、生成する値又は値の生成方法を前記符号化方式に応じて決定することを特徴とする逆量子化回路。
【請求項２】
前記量子化係数データに対する前記演算処理を施すための加算値を生成する加算値生成部と、
前記加算値生成部によって生成された前記加算値を前記乗算処理部から出力されたデータに加算する加算処理部とをさらに備え、
前記シフト処理部は、前記シフト量生成部によって生成された前記シフト量データに応じて、前記加算処理部から出力されたデータに対してビットシフト演算を行い、
前記乗算処理部、前記加算処理部及び前記シフト処理部のうちの少なくとも１つは、前記演算処理を行うか否かを符号化方式に応じて決定し、及び／又は、
前記第１の乗算値生成部、前記第２の乗算値生成部、前記加算値生成部及び前記シフト量生成部のうちの少なくとも１つは、生成する値又は値の生成方法を符号化方式に応じて決定することを特徴とする請求項１記載の逆量子化回路。
【請求項３】
前記第１の乗算値生成部は、量子化幅を示す量子化スケール値を含む前記第１の乗算値を生成し、
前記第２の乗算値生成部は、周波数ごとの量子化幅を示す量子化マトリックス値を含む前記第２の乗算値を生成することを特徴とする請求項１又は２記載の逆量子化回路。
【請求項４】
前記第１の乗算値生成部は、
前記量子化スケール値を生成するスケール値生成部と、
前記量子化スケール値に対して演算処理を施すとともに、前記量子化スケール値及び前記演算処理により得られた値のいずれかを前記第１の乗算値として出力するスケール処理部とを含み、
前記第２の乗算値生成部は、
周波数ごとの前記量子化マトリックス値を生成し、生成した前記量子化マトリックス値を前記第２の乗算値として出力するマトリックス値生成部を含むことを特徴とする請求項３記載の逆量子化回路。
【請求項５】
前記スケール処理部は、前記量子化スケール値、前記量子化スケール値を演算処理することにより得られた値及び所定の定数値のいずれかを前記第１の乗算値として出力し、
前記マトリックス値生成部は、周波数ごとの前記量子化マトリックス値及び所定の定数値のいずれかを前記第２の乗算値として出力することを特徴とする請求項４記載の逆量子化回路。
【請求項６】
前記加算値生成部は、
前記スケール値生成部によって生成された前記量子化スケール値と、前記マトリックス値生成部によって生成された前記量子化マトリックス値とを乗算する乗算器と、
前記量子化スケール値、前記量子化マトリックス値、及び前記量子化スケール値と前記量子化マトリックス値とを乗算することにより得られた値のうちのいずれかの値を選択し、選択した値を前記加算値として前記加算処理部に供給する選択部とを含むことを特徴とする請求項４記載の逆量子化回路。
【請求項７】
前記選択部は、前記量子化スケール値、前記量子化マトリックス値、前記量子化スケール値と前記量子化マトリックス値とを乗算することにより得られた値、及び所定の定数値のうちのいずれかの値を選択し、選択した値を前記加算値として前記加算処理部に供給することを特徴とする請求項６記載の逆量子化回路。
【請求項８】
前記スケール値生成部は、
供給されたデータを量子化スケール値に変換する１種類又は複数種類の第１のスケール変換部と、
前記スケール変換部によって変換された量子化スケール値をさらに変換する第２のスケール変換部と、
前記第１のスケール変換部によって変換された量子化スケール値と前記第２のスケール変換部によってさらに変換された量子化スケール値とのいずれかを選択し、選択した量子化スケール値を前記スケール処理部へ出力する選択部とを含むことを特徴とする請求項４記載の逆量子化回路。
【請求項９】
前記スケール処理部は、
前記スケール値生成部によって生成された前記量子化スケール値に対して演算処理を施す演算部と、
前記スケール値生成部によって生成された前記量子化スケール値と、前記演算部により演算処理が施された量子化スケール値と、所定の定数値とのうちのいずれかの値を選択し、選択した値を前記第１の乗算値として出力する選択部とを含むことを特徴とする請求項４記載の逆量子化回路。
【請求項１０】
前記シフト量生成部は、前記スケール値生成部の前記スケール変換部から出力された前記量子化スケール値を前記シフト量データに変換するシフト量変換部を含むことを特徴とする請求項８記載の逆量子化回路。
【請求項１１】
前記シフト量生成部は、前記シフト量変換部によって変換された前記シフト量データと、所定の定数値とのいずれかを前記シフト量データとして選択し、選択した前記シフト量データを前記シフト処理部に供給する選択部をさらに含むことを特徴とする請求項１０記載の逆量子化回路。
【請求項１２】
前記シフト量生成部は、前記シフト量変換部によって変換された前記シフト量データに対してシフト加算値を加算した値をシフト量データとして前記シフト処理部に供給する加算器をさらに含むことを特徴とする請求項１０記載の逆量子化回路。
【請求項１３】
前記乗算処理部は、前記量子化係数データに前記第１の乗算値を乗算した値、前記量子化係数データに前記第２の乗算値を乗算した値、及び前記量子化係数データに前記第１の乗算値と前記第２の乗算値とを乗算した値のうちのいずれかの値を選択し、選択した値を出力データとして前記加算処理部に供給することを特徴とする請求項２記載の逆量子化回路。
【請求項１４】
前記加算処理部は、前記乗算処理部から供給されたデータの値、及び前記乗算処理部から供給されたデータに前記加算値生成部によって生成された前記加算値を加算することにより得られた値のうちのいずれかの値を選択し、選択した値を出力データとして前記シフト処理部に供給することを特徴とする請求項２記載の逆量子化回路。
【請求項１５】
前記シフト処理部は、前記加算処理部から供給されたデータの値、及び前記ビットシフト演算により得られた値のうちのいずれかの値を選択し、選択した値を出力データとして出力することを特徴とする請求項２に記載の逆量子化回路。
【請求項１６】
前記シフト量生成部によって生成された前記シフト量データに応じた値を前記加算処理部からの出力データに加算することで丸め処理を行い、前記丸め処理を行った処理済データと前記丸め処理を行わない非処理データとを選択的に切替えて前記シフト処理部に出力する丸め処理部をさらに備えることを特徴とする請求項２記載の逆量子化回路。
【請求項１７】
前記シフト処理部から出力されたデータに対して、離散コサイン変換ミスマッチ制御処理を行う演算処理機能と、前記シフト処理部から出力されたデータに対して、クリッピングする範囲が設定可能な飽和処理を行う演算処理機能とを含み、前記離散コサイン変換ミスマッチ制御処理及び前記飽和処理において、それぞれ処理済データと非処理データとを選択的に切替えて出力する後段処理部をさらに備えることを特徴とする請求項１又は２記載の逆量子化回路。
【請求項１８】
前記量子化係数データを整数倍する演算処理機能と、デッドゾーンに対応した加算値を前記量子化係数データに加算する演算処理機能とを含み、前記量子化係数データを整数倍する演算処理及び前記量子化係数データに前記加算値を加算する演算処理において、それぞれ演算処理済データと非演算処理データとを選択的に切替えて出力する前段処理部をさらに備えることを特徴とする請求項１記載の逆量子化回路。
【請求項１９】
画像データを符号化方式に基づいて変換することで求めた周波数ごとの係数値を量子化した量子化係数データに対し、演算処理を施すことで逆量子化を行い、前記係数値を復元する逆量子化方法であって、
前記量子化係数データに対する前記演算処理を施すための第１の乗算値を生成する第１の乗算値生成ステップと、
前記量子化係数データに対する前記演算処理を施すための第２の乗算値を生成する第２の乗算値生成ステップと、
前記量子化係数データに対する前記演算処理を施すためのビットシフト量を示すシフト量データを生成するシフト量生成ステップと、
前記第１の乗算値生成ステップにおいて生成された前記第１の乗算値及び前記第２の乗算値生成ステップにおいて生成された前記第２の乗算値を前記量子化係数データに乗算する乗算処理ステップと、
前記シフト量生成ステップにおいて生成された前記シフト量データに応じて、前記乗算処理ステップにおいて出力されたデータに対してビットシフト演算を行うシフト処理ステップとを含み、
前記乗算処理ステップ及び前記シフト処理ステップのうちの少なくとも１つは、前記演算処理を行うか否かを前記符号化方式に応じて決定し、及び／又は、
前記第１の乗算値生成ステップ、前記第２の乗算値生成ステップ及び前記シフト量生成ステップのうちの少なくとも１つは、前記生成する値又は値の生成方法を前記符号化方式に応じて決定することを特徴とする逆量子化方法。
【請求項２０】
量子化係数データを取得する量子化係数データ取得部と、
前記量子化係数データ取得部によって取得された量子化係数データを逆量子化することで係数値を復元する前記請求項１記載の逆量子化回路と、
前記逆量子化回路によって復元された係数値を画像データに変換する変換部と、
前記変換部によって変換された画像データを出力する出力部とを備えることを特徴とする画像再生装置。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像の符号化方式に基づいた復号処理における逆量子化回路、逆量子化方法及び画像再生装置に関するものである。
【背景技術】
【０００２】
近年、ネットワークの高速化や、パーソナルコンピュータ及びデジタルテレビジョン受信機などの一般家庭への急速な普及により、各種マルチメディアサービスが広く実用化されている。とりわけ、デジタル放送システムやインターネットを利用したコンテンツ配信システムなどでは、映像や音声などのコンテンツデータをＭＰＥＧ（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）方式などの規格に基づいて圧縮符号化し、圧縮符号化したコンテンツデータである符号化データの断片をパケットとし、パケットの集合をストリーム信号として伝送したり、あるいはハードディスク、ＤＶＤ又はメモリカードなどに記録するような形態が一般的となっている。また、このようなストリーム信号を受け取る、パーソナルコンピュータ、セットトップボックス、携帯情報端末装置又は携帯電話機などの情報機器は、ストリーム信号に含まれる符号化データを抽出し、抽出した符号化データに対して復号化処理を施すことで、コンテンツデータを復元する。
【０００３】
このような、画像を圧縮符号化する方式として、静止画像を圧縮符号化する方式では、デジタルカメラなどに広く利用されているＪＰＥＧ（Ｊｏｉｎｔ  Ｐｈｏｔｏｇｒａｐｈｉｃ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）方式がある。また、動画像を圧縮符号化する方式では、ＣＤ−ＲＯＭなどへ動画像を記録するＭＰＥＧ−１方式がある。これによって、例えば離散コサイン変換に基づく画像圧縮符号化手法などの基本技術が確立された。このような基本技術に基づき、例えばデジタル放送で利用されているＭＰＥＧ−２方式、インターネットを利用したコンテンツなどに利用されるＭＰＥＧ−４方式、そしてさらに高圧縮符号化を目的としたＭＰＥＧ−４ＡＶＣ方式などが画像信号を扱う分野で標準方式として利用されている。
【０００４】
このような画像圧縮符号化の基本アルゴリズムは、動き補償予測方式に上述の離散コサイン変換方式を組み合わせたハイブリッド圧縮符号化方式である。ハイブリッド圧縮符号化方式では、画像に対して１画面内データそのものを離散コサイン変換したデータと、動き補償画面間予測したデータに対して離散コサイン変換したデータとの両方を組み合わせて画像圧縮符号化が行われる。
【０００５】
また、離散コサイン変換は、マクロブロックと呼ばれるブロック単位で行われる。このマクロブロックを構成する各画素データは、離散コサイン変換により、直流成分から高周波成分までの周波数ごとの振幅強度を示す複数の係数値へと変換される。さらに、各係数値は、各圧縮符号化方式に基づいた手法で量子化される。このようなアルゴリズムを基本として画像の圧縮符号化が行われる。また、圧縮符号化により生成されたデータに対し、その圧縮符号化に対応した復号化処理を行うことで画像が復元できる。すなわち、量子化された係数値である量子化係数データに対して逆量子化を行い、逆量子化により復元されたデータに対して逆離散コサイン変換を施すことで、マクロブロック単位の画素データが復元できる。
【０００６】
一方、このように、さまざまな画像の圧縮符号化方式が提案されているため、従来、パーソナルコンピュータや携帯情報端末装置など一つの装置において異なった圧縮符号化方式に対応するような圧縮符号化のための回路を設けた装置などが提案されている。例えば、特許文献１では、Ｈ．２６３方式の逆量子化部と、ＭＰＥＧ−２方式の逆量子化部とを備える画像復号化装置において、それぞれの符号化方式の量子化係数データに応じてそれぞれの逆量子化部を切替えて逆量子化を行うような手法が提案されている。
【特許文献１】特開２００４−２０１３４５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、従来の画像復号化装置のように、それぞれの符号化方式に対応させてそれぞれ個別に逆量子化部を構成した場合、回路規模が大きくなるとともに、例えば、新たな符号化方式が提案された場合、迅速に対応することが難しく、復号化処理を行うためのＬＳＩ（大規模集積回路）などの再設計が必要になるなどの問題があった。
【０００８】
本発明は、上記の問題を解決するためになされたもので、単一の回路で各種の画像符号化方式に対応した逆量子化を行うことができる汎用性の高い逆量子化回路、逆量子化方法及び画像再生装置を提供することを目的とするものである。
【課題を解決するための手段】
【０００９】
本発明の一局面に係る逆量子化回路は、画像データを符号化方式に基づいて変換することで求めた周波数ごとの係数値を量子化した量子化係数データに対し、演算処理を施すことで逆量子化を行い、前記係数値を復元する逆量子化回路であって、前記量子化係数データに対する前記演算処理を施すための第１の乗算値を生成する第１の乗算値生成部と、前記量子化係数データに対する前記演算処理を施すための第２の乗算値を生成する第２の乗算値生成部と、前記量子化係数データに対する前記演算処理を施すためのビットシフト量を示すシフト量データを生成するシフト量生成部と、前記第１の乗算値生成部によって生成された前記第１の乗算値及び前記第２の乗算値生成部によって生成された前記第２の乗算値を前記量子化係数データに乗算する乗算処理部と、前記シフト量生成部によって生成された前記シフト量データに応じて、前記乗算処理部から出力されたデータに対してビットシフト演算を行うシフト処理部とを備え、前記乗算処理部及び前記シフト処理部のうちの少なくとも１つは、前記演算処理を行うか否かを前記符号化方式に応じて決定し、及び／又は、前記第１の乗算値生成部、前記第２の乗算値生成部及び前記シフト量生成部のうちの少なくとも１つは、生成する値又は値の生成方法を前記符号化方式に応じて決定する。
【００１０】
この構成によれば、量子化係数データに対する演算処理を施すための第１の乗算値が生成され、量子化係数データに対する演算処理を施すための第２の乗算値が生成され、量子化係数データに対する演算処理を施すためのビットシフト量を示すシフト量データが生成される。そして、乗算処理部によって、第１の乗算値及び第２の乗算値が量子化係数データに乗算され、シフト処理部によって、シフト量データに応じて、乗算処理部から出力されたデータに対してビットシフト演算が行われる。乗算処理部及びシフト処理部のうちの少なくとも１つにおいて、演算処理を行うか否かが符号化方式に応じて決定される。また、第１の乗算値生成部、第２の乗算値生成部及びシフト量生成部のうちの少なくとも１つにおいて、生成する値又は値の生成方法が符号化方式に応じて決定される。
【発明の効果】
【００１１】
本発明によれば、演算処理を行うか否か、及び生成する値又は値の生成方法が符号化方式に応じて決定されるので、単一の回路で各種の符号化方式に対応した逆量子化を行うことができ、回路規模の削減を図れるとともに、新たな符号化方式が提案された場合にも迅速に対応することができる。また、復号化処理を行うためのＬＳＩなどの再設計が不要となるなど、汎用性の高い逆量子化回路を提供することができる。
【００１２】
本発明の目的、特徴及び利点は、以下の詳細な説明と添付図面とによって、より明白となる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明の実施の形態について図面を参照しながら詳細に説明する。尚、以下の実施の形態は、本発明を具体化した一例であって、本発明の技術的範囲を限定する性格のものではない。
【００１４】
（実施の形態１）
図１は、本発明の実施の形態１における逆量子化回路の構成を示すブロック図である。
【００１５】
図１に示すように、本発明の実施の形態１における逆量子化回路は、入力端子１３に供給された量子化係数データ（以下、適宜、“係数データ”と呼ぶ）ＣＤに対し、各種の演算処理を施し、元の係数値を復元し、復元した係数値である復元データＲＤを出力端子１９に出力する。また、本逆量子化回路は、画像の符号化方式として知られる、静止画像を対象にしたＪＰＥＧ方式、動画像を対象にしたＭＰＥＧ−１方式、ＭＰＥＧ−２方式、ＭＰＥＧ−４方式、Ｈ．２６３方式、ＭＰＥＧ−４ＡＶＣ方式とも呼ばれるＨ．２６４方式などにおける逆量子化回路を実現している。さらに、これらの符号化方式に加えて、将来提案される符号化方式に対しても対応可能な構成としている。
【００１６】
図１において、本逆量子化回路には、係数データＣＤが入力端子１３に供給される。係数データＣＤは、画像の符号化方式に基づき画像データを例えば直交変換することで求めた周波数ごとの係数値を量子化したデータである。本逆量子化回路は、このような係数データＣＤに対し、各種の符号化方式やその符号化方式の符号化種別に応じて演算処理を選択的に施すことで、画像データのブロック単位での例えば離散コサイン変換（ＤＣＴ：Ｄｉｓｃｒｅｔｅ  Ｃｏｓｉｎｅ  Ｔｒａｎｓｆｏｒｍ、以下、適宜、“ＤＣＴ”と呼ぶ）で求めた各周波数成分の係数値を復元する。
【００１７】
図１に示す逆量子化回路は、係数データＣＤに対し逆量子化のための各種演算処理を行うための演算処理部を備える。逆量子化回路は、演算処理部として、乗算処理部１４０、加算処理部１５０、シフト処理部１７０及び後段処理部１９０を備える。
【００１８】
乗算処理部１４０は、係数データＣＤに対し量子化スケールに基づく逆量子化を行うとともに、係数データＣＤに対し量子化マトリックスに基づく逆量子化を行う。加算処理部１５０は、係数データＣＤに対し所定の加算値を加算する。シフト処理部１７０は、係数データＣＤに対し所定のビット数（シフト量）だけシフトさせるビットシフト演算を行う。後段処理部１９０は、係数データＣＤに対し飽和処理及びＤＣＴミスマッチ制御処理を行う。
【００１９】
また、逆量子化回路は、第１の乗算値生成部１０、第２の乗算値生成部２０、加算値生成部１６０及びシフト量生成部１８０を備える。第１の乗算値生成部１０は、乗算処理部１４０において量子化スケールに基づく逆量子化を行うための第１の乗算値Ｍ１を生成する。第２の乗算値生成部２０は、乗算処理部１４０において量子化マトリックスに基づく逆量子化を行うための第２の乗算値Ｍ２を生成する。加算値生成部１６０は、加算処理部１５０に供給するための所定の加算値ＯＦを生成する。シフト量生成部１８０は、シフト処理部１７０に供給するためのシフト量データＳＦを生成する。
【００２０】
また、逆量子化回路は、制御部１００を備える。制御部１００は、乗算処理部１４０、加算処理部１５０、シフト処理部１７０及び後段処理部１９０に対し、それぞれの演算処理を実行するか否かを指示する制御情報を出力する。
【００２１】
本発明の実施の形態１における逆量子化回路において、それぞれの演算処理部は、指示に応じて、逆量子化のための演算処理の内容が選択可能であるとともに、逆量子化のための演算処理に含めるか否かを選択可能としている。すなわち、各演算処理部は、その演算処理部の演算処理を逆量子化処理に含めるよう指示されるとその演算処理部の演算処理を実行したデータ値を出力し、その演算処理部の演算処理を逆量子化処理に含めないよう指示されるとその演算処理部の演算処理を実行しないデータ値を出力する。このように、各演算処理部は、例えば、演算処理済データと非演算処理データとを選択的に切替えて出力する。さらに、演算処理部は、例えばビットシフトさせるシフト演算処理の場合のシフト量のような演算処理の内容についても選択可能としている。
【００２２】
さらに、本発明の実施の形態１における逆量子化回路は、乗算値生成部１０、乗算値生成部２０、加算値生成部１６０及びシフト量生成部１８０においても、生成する値又はデータの生成方法をそれぞれに選択可能としている。すなわち、制御部１００は、乗算値生成部１０、乗算値生成部２０、加算値生成部１６０及びシフト量生成部１８０に対し、生成する値又はデータの生成方法を指示する制御情報を出力する。
【００２３】
ここで、逆量子化回路に入力される量子化係数データについて説明する。符号化データを含む符号化ストリームは、不図示の可変長復号化部に供給される。可変長復号化部は、供給された符号化ストリームに含まれる符号化データから量子化係数値、及び以下で説明する抽出情報などを復元する。すなわち、供給された符号化データのうち、例えば量子化係数値は一般的にランレベル符号化されたデータで構成されている。そのため、まず、可変長復号化部は、ゼロの量子化係数値の個数であるランデータと、非ゼロの量子化係数値であるレベルデータとを復元する。
【００２４】
次に、可変長復号化部は、復元したランデータとレベルデータとから、符号化処理におけるスキャンパターンの順序に従った１次元の量子化係数列を復元する。可変長復号化部は、このように復元した量子化係数値を量子化係数データとして、順次、不図示の符号化情報抽出部に供給する。同様に、量子化係数値以外の抽出情報についても復元を行い符号化情報抽出部に供給する。
【００２５】
次に、符号化情報抽出部は、可変長復号化部において復元したデータから、逆量子化処理を行うための符号化データに関する情報を抽出情報として抽出する。符号化情報抽出部は、このような抽出情報として、符号化データの種別に関した情報としての符号化種別情報及びマクロブロック種別情報などを抽出する。
【００２６】
符号化種別情報は、符号化データを生成するのに用いられた符号化方式を示す情報である。ピクチャ種別情報は、現在供給されている符号化データが、例えばＭＰＥＧ−２方式において、Ｉピクチャと呼ばれる画面内符号化処理により生成されたデータ、Ｐピクチャと呼ばれる画面間前方予測符号化処理により生成されたデータ、及びＢピクチャと呼ばれる画面間双方向予測符号化処理により生成されたデータのうちのどのデータであるかを示す情報である。なお、ＰピクチャやＢピクチャにはピクチャ内にイントラのマクロブロックが含まれる場合があり、このような情報はマクロブロック種別情報として別途抽出される。本実施の形態では、ピクチャ種別情報及びマクロブロック種別情報を、現在処理中のブロックが画面内符号化であるイントラか、あるいは画面間符号化であるインターや非イントラかを識別するための情報として利用している。符号化情報抽出部は、量子化係数データを入力端子１３に供給するとともに、抽出情報を制御部１００に通知する。制御部１００は、符号化種別情報及びマクロブロック種別情報に基づいて、入力される係数データの符号化方式の種類を識別し、符号化方式の種類に応じた制御情報を出力する。
【００２７】
本発明の実施の形態１における逆量子化回路は、このような基本構成であり、各種の符号化方式に応じて各演算処理部の演算処理の実行の有無や処理内容を選択的に切替えることにより、単一の回路で各種の画像符号化方式に対応できる汎用性の高い逆量子化回路を実現している。特に、本発明の実施の形態１における逆量子化回路は、汎用性を重視した構成であり、既存の各種符号化方式に対応するとともに、将来実施される符号化方式に対しても対応可能なような構成としている。以下、本発明の実施の形態１における逆量子化回路の詳細な構成について説明する。
【００２８】
図１に示すように、本逆量子化回路の入力端子１３に供給された係数データＣＤは、まず、乗算処理部１４０に供給される。乗算処理部１４０は、第１の乗算器１４１（以下、適宜、単に“乗算器１４１”と呼ぶ）及び第２の乗算器１４２（以下、適宜、単に“乗算器１４２”と呼ぶ）を有する。乗算器１４１は、入力端子１３に供給された係数データＣＤに対して第１の乗算値生成部１０（以下、適宜、単に“乗算値生成部１０”と呼ぶ）から供給された第１の乗算値Ｍ１（以下、適宜、単に“乗算値Ｍ１”と呼ぶ）を乗算する。乗算器１４２は、乗算器１４１から出力されたデータに対して第２の乗算値生成部２０（以下、適宜、単に“乗算値生成部２０”と呼ぶ）から供給された第２の乗算値Ｍ２（以下、適宜、単に“乗算値Ｍ２”と呼ぶ）を乗算する。
【００２９】
また、乗算処理部１４０において、乗算器１４１は、制御部１００からの制御情報ＣＮＴ＿Ｍ１により乗算値Ｍ１を乗算する演算処理を行うか否かの切替制御が可能なように構成されている。また、乗算器１４２は、制御部１００からの制御情報ＣＮＴ＿Ｍ２により乗算値Ｍ２を乗算する演算処理を行うか否かの切替制御が可能なように構成されている。このような乗算処理部１４０の構成により、例えば、制御情報ＣＮＴ＿Ｍ１及び制御情報ＣＮＴ＿Ｍ２を用いて、制御部１００によってそれぞれ演算処理を行わないよう指示されると、乗算処理部１４０からは、入力端子１３に供給された係数データＣＤが、乗算処理部１４０の出力データＭＤとして出力される。また、例えば逆に、制御情報ＣＮＴ＿Ｍ１及び制御情報ＣＮＴ＿Ｍ２を用いて、制御部１００によってそれぞれ演算処理を行うよう指示されると、乗算処理部１４０からは、係数データＣＤに対して乗算値Ｍ１及び乗算値Ｍ２を乗算した値のデータが出力データＭＤとして出力される。
【００３０】
以上のように、乗算処理部１４０は、係数データＣＤに対して乗算値Ｍ１及び乗算値Ｍ２を乗算する演算処理の機能を有するとともに、これら演算処理を演算対象に含めるか否かをそれぞれに選択可能とし、このような乗算演算の処理において演算処理済データと非演算処理データとを選択的に切替えて出力するように構成されている。
【００３１】
なお、乗算処理部１４０において、図１に示すような係数データＣＤに対してまず乗算値Ｍ１を乗算し次に乗算値Ｍ２を乗算するような構成に代えて、係数データＣＤに対してまず乗算値Ｍ２を乗算し次に乗算値Ｍ１を乗算するような構成であってもよい。また、乗算処理部１４０は、乗算値Ｍ１と乗算値Ｍ２とを乗算した値を、係数データＣＤに対して乗算するような構成であってもよい。
【００３２】
このように、乗算処理部１４０は、係数データＣＤに乗算値Ｍ１を乗算した値、係数データＣＤに乗算値Ｍ２を乗算した値、及び係数データＣＤに乗算値Ｍ１と乗算値Ｍ２とを乗算した値のうちのいずれかの値を、制御情報ＣＮＴ＿Ｍ１及び制御情報ＣＮＴ＿Ｍ２を用いて選択する選択機能を有し、選択された値を出力データＭＤとして加算処理部１５０に供給する。また、乗算処理部１４０におけるこのような選択機能は、係数データＣＤの種類に応じて各値が選択される。
【００３３】
次に、乗算値生成部１０は、上述した乗算処理部１４０に供給するための乗算値Ｍ１を生成する。乗算値生成部１０は、主に、画像の符号化方式において量子化スケールと呼ばれているマクロブロックなどのブロックごとに定めた量子化幅を示す量子化スケール値（以下、適宜、“スケール値”と呼ぶ）を生成する。乗算値生成部１０は、このようなスケール値を生成するため、図１に示すように、スケール値を生成するためのスケール値生成部１１０を有している。さらに、乗算値生成部１０は、スケール値生成部１１０で生成したスケール値に対して各符号化方式や符号化方式における符号化種別に対応させた演算処理を選択的に施すことで乗算値Ｍ１を出力するスケール処理部２１０を有している。
【００３４】
本実施の形態における逆量子化回路は、このような乗算値生成部１０に対し量子化スケールインデックス（以下、適宜、“スケールインデックス”と呼ぶ）ＳＣＩを供給する入力端子１１を備えている。入力端子１１に供給されたスケールインデックスＳＣＩは、乗算値生成部１０のスケール値生成部１１０に供給される。スケールインデックスＳＣＩは、実際のスケール値に対応させた、例えば連続の整数値とするようなコードである。すなわち、例えば、ＭＰＥＧ−２方式のスケール値は、１、２、・・・、１０４、１１２のように増加する３１個の非線形スケールとなるような特性値として規定されている。このようなスケール値を選択する場合、例えば、スケールインデックスＳＣＩが０のときスケール値として１が選択され、スケールインデックスＳＣＩが１のときスケール値として２が選択され、スケールインデックスＳＣＩが３０のときスケール値として１０４が選択され、スケールインデックスＳＣＩが３１のときスケール値として１１２が選択される。
【００３５】
スケール値生成部１１０は、このようなスケールインデックスＳＣＩから実際のスケール値に変換するような変換機能を有している。変換機能は、例えば変換テーブルや変換演算器などによって構成されており、制御部１００からの制御情報ＣＮＴ＿ＳＣにより変換の種類が切替可能なように構成されている。さらに、乗算値生成部１０において、スケール処理部２１０は、スケール値生成部１１０で生成したスケール値及びスケール処理部２１０による演算により得られた値のいずれかを、制御部１００からの制御情報ＣＮＴ＿ＳＰの指示に従って選択し、選択した値を乗算値Ｍ１として出力する。
【００３６】
このような構成により、乗算値生成部１０は、制御情報ＣＮＴ＿ＳＣ及びＣＮＴ＿ＳＰに応じて、例えばＭＰＥＧ−１方式、ＭＰＥＧ−２方式、ＭＰＥＧ−４方式及びＨ．２６３方式の場合には、上述したようなスケール値を乗算値Ｍ１として出力する。また、乗算値生成部１０は、例えばＪＰＥＧ方式の場合には、固定値を乗算値Ｍ１として出力する。さらに、乗算値生成部１０は、Ｈ．２６４方式の場合には、Ｈ．２６４方式に基づき正規化されたスケール値である正規化係数の値を乗算値Ｍ１として出力する。以上のように、乗算値生成部１０は、係数データＣＤに対する演算処理を施すための乗算値Ｍ１を生成する。
【００３７】
次に、乗算値生成部２０は、上述した乗算処理部１４０に供給する乗算値Ｍ２を生成する。乗算値生成部２０は、主に、画像の符号化方式において周波数ごとに量子化幅を設定した量子化マトリックスと呼ばれている量子化マトリックス値（以下、適宜、“マトリックス値”と呼ぶ）を生成する。このため、図１に示すように、乗算値生成部２０は、このようなマトリックス値を生成するためのマトリックス値生成部１２０を有している。
【００３８】
本実施の形態における逆量子化回路は、量子化マトリックスデータ（以下、適宜、“マトリックスデータ”と呼ぶ）ＭＸＤが供給される入力端子１２を備えている。入力端子１２に供給されたマトリックスデータＭＸＤは、マトリックス値生成部１２０に供給される。マトリックス値生成部１２０は、例えばこのようなマトリックスデータＭＸＤに応じて書き換えが可能なメモリなどの記憶部で構成され、周波数ごとのマトリックス値を出力する。マトリックス値生成部１２０における記憶部は、例えばマトリックス値を順番に格納したテーブルなどで構成され、制御部１００からの制御情報ＣＮＴ＿ＭＸによりマトリックス値の種類が切替可能なように構成されている。
【００３９】
このような構成により、マトリックス値生成部１２０は、制御情報ＣＮＴ＿ＭＸに応じて、例えばＪＰＥＧ方式、ＭＰＥＧ−１方式、ＭＰＥＧ−２方式、ＭＰＥＧ−４方式及びＨ．２６４方式の場合には、上述したようなマトリックス値を乗算値Ｍ２として出力する。また、マトリックス値生成部１２０は、例えばＨ．２６３方式の場合には、固定値を乗算値Ｍ２として出力する。以上のように、乗算値生成部２０は、係数データＣＤに対する演算処理を施すための乗算値Ｍ２を生成する。
【００４０】
次に、乗算処理部１４０から出力された出力データＭＤは、図１に示すように、加算処理部１５０に供給される。加算処理部１５０は、乗算処理部１４０からの出力データＭＤに対して加算値生成部１６０から供給された加算値ＯＦを加算する加算器１５１を有している。
【００４１】
また、加算処理部１５０において、加算器１５１は、制御部１００からの制御情報ＣＮＴ＿ＡＰにより加算値ＯＦを加算する演算処理を行うか否かの切替制御が可能なように構成されている。このような加算処理部１５０の構成により、例えば、制御情報ＣＮＴ＿ＡＰを用いて、加算演算処理を行わないよう指示されると、加算処理部１５０からは、乗算処理部１４０からの出力データＭＤが加算処理部１５０の出力データＡＤとして出力される。また、例えば逆に、制御情報ＣＮＴ＿ＡＰを用いて、加算演算処理を行うよう指示されると、加算処理部１５０からは、乗算処理部１４０からの出力データＭＤに対して加算値ＯＦを加算した値のデータが出力データＡＤとして出力される。出力データＡＤは、以下で説明する丸め処理部１５５に供給される。
【００４２】
以上のように、加算処理部１５０は、係数データＣＤに対して加算値ＯＦを加算する演算処理の機能を有するとともに、この加算演算処理を演算対象に含めるか否かを選択可能とし、このような加算演算処理において演算処理済データと非演算処理データとを選択的に切替えて出力するように構成されている。
【００４３】
このように、加算処理部１５０は、乗算処理部１４０から供給された出力データＭＤの値及び乗算処理部１４０から供給された出力データＭＤに対する加算値ＯＦの加算により得られた値のうちのいずれかの値が制御情報ＣＮＴ＿ＡＰを用いて選択できる選択機能を有しており、選択された値を出力データＡＤとして丸め処理部１５５に出力する。
【００４４】
次に、加算値生成部１６０は、上述した加算処理部１５０に供給する加算値ＯＦを生成する。加算値生成部１６０は、制御部１００からの制御情報ＣＮＴ＿ＯＦによる指示に従って、各符号化方式に応じた加算値ＯＦを選択的に出力し、加算処理部１５０に供給する。以上のように、加算値生成部１６０は、係数データＣＤに対する演算処理を施すための加算値ＯＦを生成する。
【００４５】
なお、加算処理部１５０及び加算値生成部１６０は、ＭＰＥＧ−１方式、ＭＰＥＧ−２方式、ＭＰＥＧ−４方式及びＨ．２６３方式などで規定されているデッドゾーンのある量子化方式に対応するために設けている。例えば、ＭＰＥＧ−２方式の場合、符号化種別として画面内符号化のデータに対してはデッドゾーン処理を行わず、画面間符号化のデータに対してはデッドゾーン処理を行うよう規定されている。量子化方式におけるこのようなデッドゾーンとは、係数データＣＤの値を０に丸める範囲のことを示しており、上述の符号化方式においてこのデッドゾーンの範囲を所定の範囲として指定することで圧縮量を制御している。通常、量子化においてこのようなデッドゾーンを設ける場合、係数データＣＤの値が０になる範囲を他の値となる範囲よりも広くすることにより高圧縮化を図っている。
【００４６】
よって、例えば、ＭＰＥＧ−２の係数データＣＤに対して逆量子化処理を行う場合、入力端子１３に画面内符号化の係数データＣＤが供給された場合にはデッドゾーンのある量子化に対応する逆量子化の処理を行わないように、また画面間符号化の係数データＣＤが供給された場合にはデッドゾーンのある量子化に対応する逆量子化の処理を行うように、加算処理部１５０及び加算値生成部１６０が制御される。これにより、ＭＰＥＧ−２方式に規定されたデッドゾーンのある量子化に対応する処理を行うことができる。
【００４７】
本実施の形態では、加算値生成部１６０においてデッドゾーンの範囲に応じた値を加算値ＯＦとして生成し、加算処理部１５０において乗算処理部１４０からの出力データＭＤに加算値ＯＦを加算することで、このようなデッドゾーンのある量子化に対応する逆量子化の処理を行っている。また、加算処理部１５０における制御情報ＣＮＴ＿ＡＰ、及び加算値生成部１６０における制御情報ＣＮＴ＿ＯＦを利用して、それぞれの符号化方式で規定されたデッドゾーンに対する処理の有無を切替えている。
【００４８】
次に、加算処理部１５０から出力された出力データＡＤは、図１に示すように、丸め処理部１５５に供給される。丸め処理部１５５は、加算処理部１５０からの出力データＡＤに対して丸め処理を行う丸め演算器１５６を有している。また、丸め処理部１５５において、丸め演算器１５６は、制御部１００からの制御情報ＣＮＴ＿ＲＮの指示内容により丸め演算処理を行うか否かの切替制御が可能なように構成されている。
【００４９】
丸め演算器１５６は、制御部１００からの制御情報ＣＮＴ＿ＲＮの指示内容により丸め演算処理を行うよう指示されると、以下で説明するシフト処理部１７０でのシフト演算処理の内容及びそのシフト量に応じた丸め値を加算することで、シフト処理部１７０と組み合わせた丸め付きの除算処理を実現する。すなわち、例えば、後段のシフト処理部１７０において右シフトが行われる際には、そのシフト量に対応する丸め値が丸め演算器１５６で加算され、このようにして、丸め処理部１５５とシフト処理部１７０とによる除算処理が実行される。
【００５０】
このような丸め処理部１５５の構成により、例えば、制御情報ＣＮＴ＿ＲＮを用いて、制御部１００によって丸め演算処理を行わないよう指示されると、丸め処理部１５５からは、加算処理部１５０からの出力データＡＤが丸め処理部１５５の出力データＲＮとして出力される。また、例えば逆に、制御情報ＣＮＴ＿ＲＮを用いて、丸め演算処理を行うよう指示されると、丸め処理部１５５からは、加算処理部１５０からの出力データＡＤに対して丸め処理を行った値のデータが出力データＲＮとして出力される。出力データＲＮは、シフト処理部１７０に供給される。
【００５１】
次に、丸め処理部１５５から出力された出力データＲＮは、図１に示すように、シフト処理部１７０に供給される。シフト処理部１７０は、丸め処理部１５５からの出力データＲＮに対してシフト量生成部１８０から供給されたシフト量データＳＦに応じて出力データＲＮのビットシフトを行うシフト演算器１７１を有している。
【００５２】
また、シフト処理部１７０において、シフト演算器１７１は、制御部１００からの制御情報ＣＮＴ＿ＳＰの指示内容によりシフト演算処理を行うか否かの切替制御が可能なように構成されている。このようなシフト処理部１７０の構成により、例えば、制御情報ＣＮＴ＿ＳＰを用いて、制御部１００によってシフト演算処理を行わないよう指示されると、シフト処理部１７０からは、丸め処理部１５５からの出力データＲＮがシフト処理部１７０の出力データＳＤとして出力される。また、例えば逆に、制御情報ＣＮＴ＿ＳＰを用いて、制御部１００によってシフト演算処理を行うよう指示されると、シフト処理部１７０からは、丸め処理部１５５からの出力データＲＮに対してシフト量データＳＦに応じてビットシフトした値のデータが出力データＳＤとして出力される。出力データＳＤは、後段処理部１９０に供給される。
【００５３】
さらに、シフト演算器１７１は、制御情報ＣＮＴ＿ＳＰの指示内容により、シフト演算器１７１によるシフト演算処理内容の切替制御も可能なように構成されている。すなわち、シフト演算器１７１は、制御情報ＣＮＴ＿ＳＰにより、シフト演算処理の内容としてシフト演算のシフト方向やシフト量の制御も可能である。
【００５４】
以上のように、シフト処理部１７０は、丸め処理部１５５から出力された出力データＲＮに対してシフト量データＳＦに応じてビットシフト演算を行うシフト演算処理の機能を有し、さらに、このシフト演算処理の内容及びこのシフト演算処理を演算対象に含めるか否かを選択可能とし、このようなシフト演算処理において演算処理済データと非演算処理データとを選択的に切替えて出力するように構成されている。
【００５５】
このように、シフト処理部１７０は、丸め処理部１５５から供給された出力データＲＮの値、及びビットシフト演算により得られた値のうちのいずれかの値が制御情報ＣＮＴ＿ＳＰを用いて選択できる選択機能を有しており、選択した値を出力データＳＤとして出力する。
【００５６】
次に、シフト量生成部１８０は、上述したシフト処理部１７０に供給するシフト量を示すシフト量データＳＦを生成する。このようなシフト量データＳＦは、各符号化方式において規定されたスケール合わせのために用いられる。シフト量生成部１８０は、制御部１００からの制御情報ＣＮＴ＿ＳＦによる指示に従って、このような符号化方式に応じたシフト量データＳＦを選択的に出力し、シフト処理部１７０に供給する。以上のように、シフト量生成部１８０は、係数データに対するシフト演算処理を施すためのシフト量データＳＦを生成する。
【００５７】
なお、丸め処理部１５５は、シフト処理部１７０におけるビットシフト演算が右方向へのシフトの場合のみ、加算処理部１５０からの出力データＡＤに対して、シフト量生成部１８０によって生成されたシフト量データＳＦに応じた値を加算することで丸め処理を行う。
【００５８】
次に、シフト処理部１７０から出力された出力データＳＤは、図１に示すように、後段処理部１９０に供給される。後段処理部１９０は、シフト処理部１７０からの出力データＳＤに対してＤＣＴミスマッチ制御処理を行うＤＣＴミスマッチ処理部１９１及び１９３と、所定の値以上や所定の値以下の値を所定の値にクリッピングするような飽和処理を行う飽和処理部１９２とを有している。
【００５９】
また、飽和処理部１９２は、制御部１００からの制御情報ＣＮＴ＿ＣＬにより飽和処理を行うか否かの切替制御が可能なように構成されている。ＤＣＴミスマッチ処理部１９１は、制御部１００からの制御情報ＣＮＴ＿ＭＳ１により、ＤＣＴミスマッチ制御処理を行うか否かの切替制御が可能なように構成されている。また、ＤＣＴミスマッチ処理部１９３は、制御部１００からの制御情報ＣＮＴ＿ＭＳ２により、ＤＣＴミスマッチ制御処理を行うか否かの切替制御が可能なように構成されている。
【００６０】
このような飽和処理及びＤＣＴミスマッチ制御処理は、ＭＰＥＧ−１方式及びＭＰＥＧ−２方式などで規定されている。すなわち、ＭＰＥＧ−１方式やＭＰＥＧ−２方式などの符号化処理及び復号化処理では、それぞれにおいて逆ＤＣＴ処理が必要となるが、符号化器と復号化器の逆ＤＣＴ処理の演算方式によっては、それぞれで復号化した画像が異なり、その誤りが蓄積してしまう可能性があった。このため、符号化方式によっては、このような不具合を改善する目的で、ＤＣＴミスマッチ制御処理が規定されている。
【００６１】
また、このようなＤＣＴミスマッチ制御処理の具体的な一例として、例えば、ＭＰＥＧ−１方式の場合には、全ての復元する係数値をゼロに近づける方向で奇数化するような処理が行われる。また、例えば、ＭＰＥＧ−２方式の場合には、全ての係数値を加算して、その和が偶数のときには、最も高周波である成分、すなわち係数［７］［７］成分の値を変更するような処理が行われる。
【００６２】
また、飽和処理において、具体的には、飽和処理部１９２は、飽和処理部１９２に供給された係数値が“−２０４８”以下の場合には、“−２０４８”とする値にクリッピングし、飽和処理部１９２に供給された係数値が“２０４７”以上の場合には、“２０４７”とする値にクリッピングするような飽和処理を行う。
【００６３】
また、ＭＰＥＧ−１方式などでは、ＤＣＴミスマッチ制御処理の次に飽和処理を行うよう規定されており、ＭＰＥＧ−２方式では、飽和処理の次にＤＣＴミスマッチ制御処理を行うよう規定されている。
【００６４】
このため、本逆量子化回路における制御部１００は、ＭＰＥＧ−１方式の係数データＣＤに対して逆量子化処理を行う場合、制御情報ＣＮＴ＿ＭＳ１によりＤＣＴミスマッチ処理部１９１のＤＣＴミスマッチ制御処理を行うよう指示し、制御情報ＣＮＴ＿ＣＬにより飽和処理部１９２の飽和処理を行うよう指示し、制御情報ＣＮＴ＿ＭＳ２によりＤＣＴミスマッチ処理部１９３のＤＣＴミスマッチ制御処理を行わないよう指示する。これにより、ＭＰＥＧ−１方式で規定されたＤＣＴミスマッチ制御処理の次に飽和処理が実行される。
【００６５】
また、制御部１００は、ＭＰＥＧ−２方式の係数データＣＤに対して逆量子化処理を行う場合、制御情報ＣＮＴ＿ＭＳ１によりＤＣＴミスマッチ処理部１９１のＤＣＴミスマッチ制御処理を行わないよう指示し、制御情報ＣＮＴ＿ＣＬにより飽和処理部１９２の飽和処理を行うよう指示し、制御情報ＣＮＴ＿ＭＳ２によりＤＣＴミスマッチ処理部１９３のＤＣＴミスマッチ制御処理を行うよう指示する。これにより、ＭＰＥＧ−２方式で規定された飽和処理の次にＤＣＴミスマッチ制御処理が実行される。
【００６６】
このように、ＤＣＴミスマッチ処理部１９１及びＤＣＴミスマッチ処理部１９３を設けることで、飽和処理部１９２の前段あるいは後段でＤＣＴミスマッチ制御処理を行うことが選択できる。なお、ＤＣＴミスマッチ処理部１９１及びＤＣＴミスマッチ処理部１９３に対して、ＤＣＴミスマッチ制御処理を行う条件が設定できるような構成であってもよい。また、ＤＣＴミスマッチ処理部１９１及びＤＣＴミスマッチ処理部１９３に対して、係数データＣＤの種類に応じて演算の有無や演算内容を制御できるような構成であってもよい。
【００６７】
以上説明したような演算処理が、それぞれの制御情報に従って各符号化方式に応じて実行される。後段処理部１９０からは、復元された係数値を有した復元データＲＤが出力端子１９に出力される。
【００６８】
なお、以下、上述したように、各処理部における演算処理及び各生成部における値やデータの生成方法がそれぞれ選択可能であるとして説明するが、本発明は特にこれに限定されない。例えば、対応する符号化方式の種類に応じて、乗算処理部１４０、加算処理部１５０及びシフト処理部１７０のうちの少なくとも１つの演算処理部において演算処理を演算対象に含めるか否かを選択可能とするような構成であってもよく、第１の乗算値生成部１０、第２の乗算値生成部２０、加算値生成部１６０及びシフト量生成部１８０のうちの少なくとも１つの生成部において生成する値又はデータの生成方法を選択可能とするような構成であってもよい。
【００６９】
次に、各符号化方式において規定された逆量子化式について説明する。
【００７０】
図２から図４までは、各符号化方式において規定された逆量子化式を示した図である。図２は、静止画像を圧縮符号化する方式として広く利用されているＪＰＥＧ方式、動画像を圧縮符号化する方式として広く利用されているＭＰＥＧ−１方式及びＭＰＥＧ−２方式における逆量子化式を示す図である。図３は、電気通信に関する国際標準機関であるＩＴＵ−Ｔ（Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｔｅｌｅｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｕｎｉｏｎ−Ｔｅｌｅｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｓｔａｎｄａｒｄｉｚａｔｉｏｎ  Ｓｅｃｔｏｒ）勧告により規定されているＨ．２６３方式、及び動画像を圧縮符号化する方式として広く利用されているＭＰＥＧ−４方式における逆量子化式を示す図である。また、図４は、ＩＴＵ−Ｔ勧告により規定されているＨ．２６４方式における逆量子化式を示す図である。また、図２から図４までにおいて、区分で示す項目は、係数データの符号化種別に応じて異なった逆量子化を行うように規定された場合の区分を示しており、Ｉｎｔｒａは画面内符号化、ｎｏｎ−Ｉｎｔｒａは画面間符号化、ＤＣは直流成分、ＡＣは交流成分、ｌｕｍａは輝度データ、ｃｈｒｏｍａは色データである係数データをそれぞれ示している。
【００７１】
これら各符号化方式において、ＪＰＥＧ方式の場合、図２に示すように、Ｓｑｖｕで示す係数データに対してＱｖｕで示すマトリックス値を乗算することで逆量子化を行い、逆量子化により復元した係数データＲｖｕを得る。
【００７２】
ＭＰＥＧ−１方式の場合、図２に示すように、画面内符号化における直流成分の係数データに対しては、係数データｄｃｔ＿ｚｚ［０］を単に８倍することで逆量子化を行い、逆量子化により復元した係数データｄｃｔ＿ｒｅｃｏｎ［０］［０］を得る。また、画面内符号化における交流成分の係数データに対しては、係数データｄｃｔ＿ｚｚ［ｉ］に対して、スケール値ｑｕａｎｔｉｚｅｒ＿ｓｃａｌｅを２倍した値、マトリックス値ｉｎｔｒａ＿ｑｕａｎｔ［ｍ］［ｎ］、及びスケール合わせとしての１／１６を乗算することで逆量子化を行う。このようにして、逆量子化により復元した係数データｄｃｔ＿ｒｅｃｏｎ［ｍ］［ｎ］を得る。
【００７３】
また、画面間符号化における係数データに対しては、係数データｄｃｔ＿ｚｚ［ｉ］を２倍するとともに、その係数データの符号Ｓｉｇｎ（ｄｃｔ＿ｚｚ［ｉ］）を加算し、このようにして得たデータに対して、スケール値ｑｕａｎｔｉｚｅｒ＿ｓｃａｌｅ、マトリックス値ｎｏｎ＿ｉｎｔｒａ＿ｑｕａｎｔ［ｍ］［ｎ］、及びスケール合わせとしての１／１６を乗算することで逆量子化を行う。このようにして、逆量子化により復元した係数データｄｃｔ＿ｒｅｃｏｎ［ｍ］［ｎ］を得る。
【００７４】
また、ＭＰＥＧ−１方式における飽和処理及びＤＣＴミスマッチ制御処理においては、ｉｎｔｒａＤＣ以外の係数データに対して、その復元係数値が偶数の場合に、その符号、すなわちＳｉｇｎ（ｄｃｔ＿ｚｚ［ｉ］）が引き算され、ゼロに近づける方向に奇数化される。また、ＤＣＴミスマッチ制御処理を行った後に飽和処理が実行される。
【００７５】
次に、ＭＰＥＧ−２方式における逆量子化について説明する。ＭＰＥＧ−２方式の場合、図２で示すように規定された逆量子化の演算式において、例えば、ＱＦ［ｖ］［ｕ］は画面間符号化の係数データを示し、Ｆ”［ｖ］［ｕ］は逆量子化により復元した係数データを示し、Ｗ［ｗ］［ｖ］［ｕ］は画面間符号化におけるマトリックス値を示し、ｑｕａｎｔｉｚｅｒ＿ｓｃａｌｅはスケール値を示している。また、Ｓｉｇｎ（）は、引数の符号を示し、引数の符号が正であれば１、負であれば−１、０であれば０を返すような関数を示している。すなわち、ＭＰＥＧ−２方式での画面間符号化の係数データＱＦ［ｖ］［ｕ］に対しては、係数データＱＦ［ｖ］［ｕ］を２倍するとともに、Ｓｉｇｎ（ＱＦ［ｖ］［ｕ］）で示す上述の関数定義に従った係数データの符号ｋを加算し、このようにして得たデータに対して、マトリックス値Ｗ［ｗ］［ｖ］［ｕ］、スケール値ｑｕａｎｔｉｚｅｒ＿ｓｃａｌｅ、及びスケール合わせとしての１／３２を乗算することで逆量子化を行う。このようにして、逆量子化により復元した復元データＦ”［ｖ］［ｕ］を得る。
【００７６】
なお、ＭＰＥＧ−２方式の画面内符号化における交流成分の係数データＱＦ［ｖ］［ｕ］に対しては、係数データＱＦ［ｖ］［ｕ］を２倍した値に対して、マトリックス値Ｗ［ｗ］［ｖ］［ｕ］、スケール値ｑｕａｎｔｉｚｅｒ＿ｓｃａｌｅ、及びスケール合わせとしての１／３２を乗算することで逆量子化を行う。このようにして、逆量子化により復元した復元データＦ”［ｖ］［ｕ］を得る。
【００７７】
また、ＭＰＥＧ−２方式の画面内符号化における直流成分の係数データに対しては、係数データＱＦ［０］［０］にスケール値ｉｎｔｒａ＿ｄｃ＿ｍｕｌｔを乗算することで逆量子化を行い、復元データＦ”［０］［０］を得る。
【００７８】
また、ＭＰＥＧ−２方式における飽和処理及びＤＣＴミスマッチ制御処理においては、復元係数値の全ての和が偶数の場合に、その復元係数値での最も高周波である成分、すなわち係数［７］［７］成分の値の最下位ビットが反転される。また、飽和処理を行った後にＤＣＴミスマッチ制御処理が実行される。
【００７９】
また、ＭＰＥＧ−１方式におけるＳｉｇｎ（ｄｃｔ＿ｚｚ［ｉ］）やＭＰＥＧ−２方式におけるＳｉｇｎ（ＱＦ［ｖ］［ｕ］）、あるいは次に説明するＭＰＥＧ−４方式におけるＳｉｇｎ（ＱＦ［ｖ］［ｕ］）は、それぞれの式において、上述したデッドゾーンとしての機能を表現している。すなわち、例えばＭＰＥＧ−２方式における画面間符号化の係数データＱＦ［ｖ］［ｕ］に対して、係数データＱＦ［ｖ］［ｕ］を２倍した値に符号の値Ｓｉｇｎ（ＱＦ［ｖ］［ｕ］）を加算することで、逆量子化におけるデッドゾーン処理を行うことができる。
【００８０】
次に、図３に示すＭＰＥＧ−４方式における逆量子化について説明する。ＭＰＥＧ−４方式の場合、例えば、方式１における画面間符号化及び画面内符号化における交流成分の係数データＱＦ［ｖ］［ｕ］に対しては、図３で示すように規定された逆量子化の演算式が用いられる。演算式において、Ｆ”［ｖ］［ｕ］は逆量子化により復元した係数データを示し、Ｗ［ｗ］［ｖ］［ｕ］は画面間符号化におけるマトリックス値を示し、ｑｕａｎｔｉｚｅｒ＿ｓｃａｌｅはスケール値を示している。また、ｋは、画面内符号化のブロックであるか非画面内符号化（画面間符号化）のブロックであるかにより、デッドゾーン処理を行うか否かを示しており、非画面内符号化のブロックの係数データに対しては、ＭＰＥＧ−２方式での画面間符号化のようにＳｉｇｎ（ＱＦ［ｖ］［ｕ］）で示すデッドゾーン処理を行う。
【００８１】
すなわち、例えば、ＭＰＥＧ−４方式の方式１における画面間符号化の係数データＱＦ［ｖ］［ｕ］に対しては、係数データＱＦ［ｖ］［ｕ］が０でない場合、係数データＱＦ［ｖ］［ｕ］を２倍するとともに、係数データの符号Ｓｉｇｎ（ＱＦ［ｖ］［ｕ］）を加算し、このようにして得たデータに対して、マトリックス値Ｗ［ｗ］［ｖ］［ｕ］、スケール値ｑｕａｎｔｉｚｅｒ＿ｓｃａｌｅ、及びスケール合わせとしての１／１６を乗算することで逆量子化を行う。このようにして、逆量子化により復元した係数データＦ”［ｖ］［ｕ］を得る。
【００８２】
また、ＭＰＥＧ−４方式における飽和処理及びＤＣＴミスマッチ制御処理においては、方式１のときには、復元係数値の全ての和が偶数の場合に、その復元係数値での最も高周波である成分、すなわち係数［７］［７］成分の値の最下位ビットが反転される。また、方式２のときには、ｉｎｔｒａＤＣ以外の係数データに対して、その復元係数値が偶数の場合に、その絶対値、すなわち｜Ｆ”［ｖ］［ｕ］｜から数値“１”が引き算され、このようにしてゼロに近づける方向に奇数化される。ただし、係数データがゼロの場合には、ゼロが出力される。また、ＤＣＴミスマッチ制御処理を行った後に飽和処理が実行される。
【００８３】
次に、図３に示すＨ．２６３方式における逆量子化について説明する。Ｈ．２６３方式の場合、例えば、画面間符号化及び画面内符号化における交流成分の係数データＬＥＶＥＬに対しては、図３で示すように規定された逆量子化の演算式が用いられる。演算式において、ＲＥＣは逆量子化により復元した係数データ、ＱＵＡＮＴはスケール値を示している。すなわち、例えば、Ｈ．２６３方式の画面間符号化の係数データＬＥＶＥＬに対しては、スケール値ＱＵＡＮＴが偶数の場合、係数データＬＥＶＥＬの絶対値を２倍するとともに、１を加算し、このようにして得たデータに対して、スケール値ＱＵＡＮＴを乗算し、さらに、このようにして得たデータに対して、係数データＬＥＶＥＬの符号Ｓｉｇｎ（ＬＥＶＥＬ）が乗算されることで逆量子化が行われる。
【００８４】
また、Ｈ．２６３方式における飽和処理及びＤＣＴミスマッチ制御処理においては、ｉｎｔｒａＤＣ以外の係数データに対して、その復元係数値が偶数の場合に、その絶対値、すなわち｜ＲＥＣ｜から数値“１”が引き算され、ゼロに近づける方向に奇数化される。ただし、係数データがゼロの場合には、ゼロが出力される。また、ＤＣＴミスマッチ制御処理を行った後に飽和処理が実行される。
【００８５】
次に、図４に示すＨ．２６４方式における逆量子化について説明する。Ｈ．２６４方式は、上述のようなデッドゾーンを採用していないことを１つの特徴としている。さらに、Ｈ．２６４方式は、量子化スケール値を直接符号化せず、量子化パラメータｑＰを符号化し、量子化パラメータｑＰから量子化スケール値を導出するような手法が採用されている。
【００８６】
すなわち、Ｈ．２６４方式では、例えば量子化パラメータｑＰが６だけ増加すると量子化スケール値が２倍となるような、量子化パラメータｑＰと量子化スケールの対数とが比例するような仕組みが導入されている。このため、ｑＰを６で除算した余りを（ｑＰ％６）とし、ｑＰを６で除算した商を（ｑＰ／６）とするとき、量子化スケール値は、（ｑＰ％６）の量子化スケール値に、２の（ｑＰ／６）乗の値を乗算した値となる。
【００８７】
さらに、Ｈ．２６４方式では、このような量子化パラメータｑＰと量子化スケールとの変換に変換テーブルを利用するとともに、逆量子化と直交変換で必要な８／５倍などの正規化のための演算にも変換テーブルを利用し、（ｑＰ％６）の量子化スケールを（ｑＰ／６）ビット左シフトすることで、任意のｑＰに対応する量子化スケールを求めることができる。なお、図４において、記号“＜＜”は左シフトを表しており、また記号“＞＞”は右シフトを表している。
【００８８】
また、例えば、図４に示す画面内符号化Ｉｎｔｒａでの１６×１６のブロックに対する輝度ｌｕｍａの直流成分ＤＣにおいては、量子化パラメータＱＰ’Ｙが数値“３６”より小さい場合、図４の式に従って、右シフトが行われるとともに、そのシフト量に対応する丸め値（２５−ＱＰ’Ｙ／６）が丸め処理部１５５の丸め演算器１５６で加算される。このようにして、丸め処理部１５５とシフト処理部１７０とによる除算処理が実行される。
【００８９】
なお、本実施の形態の逆量子化回路は、例えば、図２で示した基本的な逆量子化のための演算式に対し、これらの式を展開し、その展開した式に基づいた回路構成としている。例えば、ＭＰＥＧ−２方式における画面間符号化の係数データＱＦ［ｖ］［ｕ］に対する逆量子化の場合、本実施の形態の逆量子化回路では、係数データＱＦ［ｖ］［ｕ］を（２×Ｗ［ｗ］［ｖ］［ｕ］×ｑｕａｎｔｉｚｅｒ＿ｓｃａｌｅ）倍した値に、（Ｓｉｇｎ（ＱＦ［ｖ］［ｕ］）×Ｗ［ｗ］［ｖ］［ｕ］×ｑｕａｎｔｉｚｅｒ＿ｓｃａｌｅ）となる値を加算することでデッドゾーン処理を行うような構成としている。
【００９０】
以上、それぞれの符号化方式における逆量子化式のさらに詳細な説明については省略するが、本実施の形態の逆量子化回路は、各符号化方式において図２から図４に示すような演算式に基づき、上述の各符号化方式の例のように、供給された係数データに対して、スケール値やマトリックス値などのような所定の乗算値を乗算したり加算値を加算したりするなどの演算を行うことで逆量子化が行われる。
【００９１】
図５は、本発明の実施の形態１の逆量子化回路において、各逆量子化式に対応した演算処理の一覧を示す図である。図５では、図２から図４までの各逆量子化式を共通の演算処理で実現可能なように一覧としてまとめている。特に、本実施の形態の逆量子化回路は、図２から図４までの各逆量子化式を展開した式を含めた演算式に基づき、各部を構成したことを特徴としている。
【００９２】
図５において、演算項ＣＤに対応する“係数”は逆量子化するための係数データＣＤを示し、演算項Ｍ２に対応する“行列”はマトリックス値を示す。また、演算項Ｍ１に対応する、“２”は乗数２を示し、“スケール”はスケール値を示し、“正規化”はＨ．２６４方式で規定された正規化係数値を示している。また、演算項Ｓｉｇｎに対応する“符号”は係数データの正負を示す符号であり係数データの符号を利用したデッドゾーンのある量子化方式に対応する演算処理などを示している。
【００９３】
また、演算項ＯＦに対応する“行列”はマトリックス値を示し、“スケール”はスケール値を示している。また、演算項ＲＮに対応する“丸め”はＨ．２６４方式における丸め値を示している。また、演算項ＳＦに対応する“シフト”はシフト処理部１７０のシフト演算処理を示し、“後段”は後段処理部１９０の処理を示している。また、各演算項における“０”、“１”及び“８”などの数字はその値が示す定数を示している。また、“シフト”で示した箇所はシフト演算処理を実行することを示し、矢印で示した箇所はシフト演算処理を実行しないことを示している。また、“後段”で示した箇所は後段処理部１９０の処理を実行することを示し、矢印で示した箇所は後段処理部１９０の処理を実行しないことを示している。
【００９４】
このように、図２から図４までの各符号化方式の各逆量子化式は、図５に示すような共通の演算処理で表現することができる。すなわち、図１で説明した本発明の実施の形態１における逆量子化回路の構成は、図５に示すような共通の演算処理を実現した回路であり、上述したような制御情報による各演算処理の実行の切替えを行うことでそれぞれの符号化方式に対応させている。本発明の実施の形態１における逆量子化回路は、演算処理の共通化を図ることで回路規模が増大することを抑制している。
【００９５】
図６は、図５に示すような共通の演算処理を実現するため、乗算値生成部１０、乗算値生成部２０、加算値生成部１６０及びシフト量生成部１８０のより詳細な構成の一例を示すブロック図である。
【００９６】
図６において、乗算値生成部１０は、上述のようにスケール値生成部１１０とスケール処理部２１０とにより構成されている。
【００９７】
図６において、スケール値生成部１１０は、供給されたスケールインデックスＳＣＩを変換する１種類あるいは複数種類のスケールテーブル（第１のスケール変換部）１１１と、スケールテーブル１１１から出力された値をさらに変換する正規化テーブル（第２のスケール変換部）１１２と、スケールテーブル１１１から出力された値と正規化テーブル１１２から出力された値とのいずれかを選択するセレクタ（選択部）１１９とを有している。セレクタ１１９は、制御部１００からの制御情報ＣＮＴ＿ＳＧの指示内容に応じて、スケールテーブル１１１から出力された値と正規化テーブル１１２から出力された値とのいずれかを選択し、選択した値をスケール処理部２１０へと出力する。また、スケールテーブル１１１から出力された値はシフト量生成部１８０へと出力される。
【００９８】
図６に示すスケール値生成部１１０において、正規化テーブル１１２は、特にＨ．２６４方式に対応させるために設けたテーブルである。すなわち、Ｈ．２６４方式に基づき逆量子化を行う場合、入力端子１１には、スケールインデックスＳＣＩとして量子化パラメータｑＰが供給される。さらに、量子化パラメータｑＰは、スケールテーブル１１１によりスケール値に変換され、変換されたスケール値が正規化テーブル１１２により正規化された係数の値へと変換される。さらに、Ｈ．２６４方式の場合、制御部１００は、制御情報ＣＮＴ＿ＳＧにより、セレクタ１１９が正規化テーブル１１２を選択するように指示することにより、スケール値生成部１１０からは、Ｈ．２６４方式に対応した正規化されたスケール値である正規化係数値が出力される。
【００９９】
このように、スケール値生成部１１０は、入力端子１１に供給されたスケールインデックスＳＣＩなどのデータをスケール値に変換する１種類あるいは複数種類のスケールテーブル１１１を有し、スケールテーブル１１１により変換された値をスケール値として出力する。さらに、スケール値生成部１１０は、スケールテーブル１１１から出力された値をさらに変換する正規化テーブル１１２と、スケールテーブル１１１から出力された値と正規化テーブル１１２から出力された値とのいずれかを選択するセレクタ１１９とを有し、選択された値をスケール値として出力する。
【０１００】
次に、図６において、スケール処理部２１０は、スケール値生成部１１０で生成されたスケール値に対して演算処理を施す演算部２１１、及びスケール値とスケール値に対する演算処理により得られた値と所定の定数値とのうちのいずれかの値を選択するセレクタ（選択部）２１９とを有している。なお、演算部２１１は、スケール値を所定の定数倍するなどとともに、将来提案される符号化方式などに対しても対応可能なように設けた演算部であり、例えば、スケール値に対する定数値の乗算やその乗算結果に対する定数値の加算などの演算処理を選択的に行う。セレクタ２１９は、制御情報ＣＮＴ＿ＳＰの指示内容に応じて、スケール値と演算部２１１により得られた値と所定の定数値とのうちのいずれかの値を選択し、選択した値を乗算値Ｍ１として乗算処理部１４０へと出力する。
【０１０１】
すなわち、スケール処理部２１０は、図５での演算項Ｍ１に対応した、主に各符号化方式やその符号化種別に応じたスケール値に関連する乗算値Ｍ１を選択的に出力する。
【０１０２】
例えば、ＭＰＥＧ−１方式の画面内符号化の直流成分における係数データを逆量子化する場合、図５での演算項Ｍ１に従って、制御情報ＣＮＴ＿ＳＰによりセレクタ２１９は定数である“８”を選択し、スケール処理部２１０からは、セレクタ２１９が選択した定数値“８”が乗算値Ｍ１として出力される。
【０１０３】
また、ＭＰＥＧ−１方式の画面内符号化の交流成分における係数データを逆量子化する場合、図５での演算項Ｍ１に従って、スケール値生成部１１０においてスケールテーブル１１１から出力されるスケール値が選択され、この選択されたスケール値がスケール処理部２１０へと出力される。さらに、スケール処理部２１０において、制御情報ＣＮＴ＿ＳＰによりセレクタ２１９は演算部２１１から２倍されて出力された値を選択し、スケール処理部２１０からは、セレクタ２１９が選択した値、すなわちスケール値を２倍した値が乗算値Ｍ１として出力される。
【０１０４】
また、Ｈ．２６４方式における係数データを逆量子化する場合、図５での演算項Ｍ１に従って、スケール値生成部１１０において正規化テーブル１１２から出力される正規化係数値が選択され、この選択された正規化係数値がスケール処理部２１０へと出力される。さらに、スケール処理部２１０において、制御部１００からの制御情報ＣＮＴ＿ＳＰによりセレクタ２１９はスケール値生成部１１０から出力された正規化係数値を選択し、スケール処理部２１０からは、セレクタ２１９が選択した値、すなわち正規化係数値が乗算値Ｍ１として出力される。
【０１０５】
このように、スケール処理部２１０は、スケール値、演算部２１１による演算により得られた値及び所定の定数値のいずれかを乗算値Ｍ１として出力する。また、スケール処理部２１０は、スケール値生成部１１０からのスケール値に対して、所定の整数倍するなどの演算処理を施す演算部２１１、及びスケール値と演算部２１１により得られた値と所定の定数値とのうちのいずれかの値を選択するセレクタ２１９を有し、選択した値を乗算値Ｍ１として出力する。また、選択機能としてのセレクタ２１９は、係数データＣＤの種類に応じて各値を選択する。
【０１０６】
次に、図６において、乗算値生成部２０のマトリックス値生成部１２０は、供給されたマトリックスデータＭＸＤに応じたマトリックス値を出力するマトリックステーブル１２１と、このマトリックス値及び所定の定数値のいずれかの値を選択するセレクタ１２９とを有している。セレクタ１２９は、制御部１００からの制御情報ＣＮＴ＿ＭＸの指示内容に応じて、マトリックス値と定数値とのうちのいずれかの値を選択し、選択した値を乗算値Ｍ２として乗算処理部１４０へと出力する。
【０１０７】
すなわち、マトリックス値生成部１２０は、図５での演算項Ｍ２に対応した、主に各符号化方式やその符号化種別に応じたマトリックス値に関連する乗算値Ｍ２を選択的に出力する。例えば、ＭＰＥＧ−１方式の画面内符号化の直流成分における係数データを逆量子化する場合、図５での演算項Ｍ２に従って、制御情報ＣＮＴ＿ＭＸによりセレクタ１２９は定数である“１”を選択し、マトリックス値生成部１２０からは、セレクタ１２９が選択した定数値“１”が乗算値Ｍ２として出力される。
【０１０８】
また、ＭＰＥＧ−１方式の画面内符号化の交流成分における係数データを逆量子化する場合、図５での演算項Ｍ２に従って、制御情報ＣＮＴ＿ＭＸによりセレクタ１２９はマトリックステーブル１２１から出力されたマトリックス値を選択し、マトリックス値生成部１２０からは、セレクタ１２９が選択したマトリックス値が乗算値Ｍ２として出力される。
【０１０９】
このように、マトリックス値生成部１２０は、周波数ごとのマトリックス値及び所定の定数値のいずれかを乗算値Ｍ２として出力する。
【０１１０】
次に、図６において、加算値生成部１６０は、スケール値生成部１１０で生成されたスケール値とマトリックス値生成部１２０で生成されたマトリックス値とを乗算する乗算器１６１と、スケール値、マトリックス値、乗算器１６１によりスケール値とマトリックス値とを乗算することにより得られた値、及び所定の定数値のうちのいずれかの値を選択するセレクタ１６９とを有している。なお、セレクタ１６９は、スケール値、マトリックス値、乗算器１６１によりスケール値とマトリックス値とを乗算することにより得られた値、及び所定の定数値のうちのいくつかの値から、いずれかの値が選択できるような構成であってもよい。セレクタ２１９は、制御部１００からの制御情報ＣＮＴ＿ＯＦの指示内容に応じて、スケール値、マトリックス値、乗算器１６１によりスケール値とマトリックス値とを乗算することにより得られた値、及び所定の定数値のうちのいずれかの値を選択し、選択した値を加算値ＯＦとして加算処理部１５０へ出力する。
【０１１１】
すなわち、加算値生成部１６０は、図５での演算項ＯＦに対応した、主に各符号化方式やその符号化種別に応じたデッドゾーンに関連する加算値ＯＦを選択的に出力する。例えば、ＭＰＥＧ−１方式の画面内符号化の直流成分における係数データを逆量子化する場合、図５での演算項ＯＦに従って、制御情報ＣＮＴ＿ＯＦによりセレクタ１６９は定数である“０”を選択し、加算値生成部１６０からは、セレクタ１６９が選択した定数値“０”が加算値ＯＦとして出力される。
【０１１２】
また、ＭＰＥＧ−１方式の画面間符号化における係数データを逆量子化する場合、図５での演算項ＯＦに従って、制御部１００からの制御情報ＣＮＴ＿ＯＦによりセレクタ１６９は乗算器１６１から出力された値を選択し、加算値生成部１６０からは、セレクタ１６９が選択した乗算器１６１からの値が加算値ＯＦとして出力される。
【０１１３】
また、Ｈ．２６３方式の画面内符号化の交流成分における係数データを逆量子化する場合、図５での演算項ＯＦに従って、制御部１００からの制御情報ＣＮＴ＿ＯＦによりセレクタ１６９はスケール値生成部１１０から出力された値を選択し、加算値生成部１６０からは、セレクタ１６９が選択したスケール値生成部１１０から出力された値が加算値ＯＦとして出力される。
【０１１４】
このように、加算値生成部１６０は、スケール値生成部１１０のスケール値とマトリックス値生成部１２０のマトリックス値とを乗算する乗算器１６１と、スケール値、マトリックス値、スケール値とマトリックス値とを乗算することにより得られた値、及び所定の定数値のうちのいずれかの値を選択するセレクタ２１９とを有し、選択した値を加算値ＯＦとして加算処理部１５０に供給する。
【０１１５】
次に、図６において、シフト量生成部１８０は、スケール値生成部１１０のスケールテーブル１１１から出力された値をシフト量データに変換するシフト量テーブル（シフト量変換部）１８１を有している。さらに、シフト量生成部１８０は、シフト量テーブル１８１から出力された値に対して所定の値であるシフト量加算値ＳＦ＿ＯＦを加算する加算器１８２と、シフト量テーブル１８１から出力された値、加算器１８２から出力された値及び所定の定数値のうちのいずれかの値を、制御部１００からの制御情報ＣＮＴ＿ＳＦの指示に応じて選択するセレクタ１８９とを有している。シフト量生成部１８０は、制御部１００からの制御情報ＣＮＴ＿ＳＦの指示内容に応じて、シフト量テーブル１８１により変換された値、加算器１８２から出力された値及び所定の定数値のうちのいずれかをシフト量データＳＦとしてシフト処理部１７０へ出力する。
【０１１６】
このように、シフト量生成部１８０は、スケール値生成部１１０のスケールテーブル１１１から出力された値をシフト量データに変換するシフト量テーブル１８１を有し、シフト量テーブル１８１により変換された値をシフト量データＳＦとしてシフト処理部１７０に供給する。さらに、シフト量生成部１８０は、シフト量テーブル１８１により変換された値及び所定の定数値のいずれかをシフト量データＳＦとしてセレクタ１８９により選択し、シフト処理部１７０に供給する。さらに、セレクタ１８９は、係数データＣＤの種類に応じて各値を選択する。さらに、シフト量生成部１８０は、選択したシフト量データＳＦに対しシフト量加算値ＳＦ＿ＯＦを加えた値をシフト量データＳＦとしてシフト処理部１７０に供給する。このシフト量加算値ＳＦ＿ＯＦは、係数データＣＤの種類に応じて選択される加算値であり、制御部１００から出力される。
【０１１７】
なお、スケールテーブル１１１、正規化テーブル１１２、シフト量テーブル１８１、マトリックステーブル１２１及び定数は、書き換え可能なメモリに記憶されている。これにより、新たな規格の符号化方式が出現した場合であっても、メモリ内のテーブルデータや数値を書き換えるのみで新たな規格の符号化方式に対応することが可能となる。なお、メモリ内のテーブルデータや数値は、ネットワークを介してダウンロードすることで書き換えられるが、本発明は特にこれに限定されず、コンピュータ読み取り可能な記録媒体から読み出すことにより書き換えてもよい。
【０１１８】
以下、図１から図６までを参照しながら本発明の実施の形態１における逆量子化回路の具体的な動作についていくつかの符号化方式の例を挙げながら説明する。
【０１１９】
まず、ＪＰＥＧ方式で量子化された係数データを逆量子化する処理について説明する。例えばＪＰＥＧ方式の逆量子化を行う場合、図５で示す演算構成に従って、制御情報により各演算処理の切替えが行われる。すなわち、ＪＰＥＧ方式の場合、図５に示すように、係数データＣＤに対してマトリックス値生成部１２０からのマトリックス値を乗算するのみでよい。そのため、制御部１００は、次のような制御情報をそれぞれの演算処理部及び生成部に通知する。
【０１２０】
例えば、逆量子化回路を制御する制御部１００は、乗算器１４１に対しては、制御情報ＣＮＴ＿Ｍ１により、乗算処理を行わないように指示する。また、制御部１００は、乗算器１４２に対しては、制御情報ＣＮＴ＿Ｍ２により乗算処理を行うよう指示する。また、制御部１００は、マトリックス値生成部１２０に対しては、制御情報ＣＮＴ＿ＭＸによりマトリックス値を出力するよう指示する。また、制御部１００は、加算器１５１に対しては、制御情報ＣＮＴ＿ＡＰにより加算処理を行わないよう指示する。
【０１２１】
さらに、制御部１００は、丸め演算器１５６に対しては、制御情報ＣＮＴ＿ＲＮにより丸め処理を行わないよう指示する。また、制御部１００は、シフト演算器１７１に対しては、制御情報ＣＮＴ＿ＳＰによりシフト演算処理を行わないよう指示する。また、制御部１００は、ＤＣＴミスマッチ処理部１９１及び１９３に対しては、ＤＣＴミスマッチ制御処理を行わないよう指示する。また、制御部１００は、飽和処理部１９２に対しては、飽和処理を行わないよう指示する。
【０１２２】
これにより、乗算処理部１４０からは、係数データＣＤの値に乗算値Ｍ２であるマトリックス値を乗算した値の出力データＭＤが出力される。さらに、加算処理部１５０、丸め処理部１５５、シフト処理部１７０及び後段処理部１９０からも出力データＭＤと同じ値のデータが出力される。その結果、出力端子１９からは、係数データＣＤの値に乗算値Ｍ２であるマトリックス値を乗算した値の復元データＲＤが出力される。このように、図１の構成において上述したようなそれぞれの制御情報を各部に通知することで、図２のＪＰＥＧの項に示すような係数データＳｑｖｕにマトリックス値Ｑｖｕを乗算して復元データＲｖｕを求めるような逆量子化式を実現できる。
【０１２３】
また、例えばＭＰＥＧ−２方式の逆量子化を行う場合、図５に示すように係数データの種別で区分して逆量子化を行う。
【０１２４】
まず、ＭＰＥＧ−２方式で量子化された画面内符号化の直流成分の係数データを逆量子化する処理について説明する。入力端子１３に供給された係数データがＭＰＥＧ−２方式の画面内符号化の直流成分の係数データのとき、図５に示すように、係数データに対してスケール値を乗算するのみでよい。そのため、制御部１００は、次のような制御情報をそれぞれの演算処理部及び生成部に通知する。
【０１２５】
例えば、制御部１００は、乗算器１４１に対しては、制御情報ＣＮＴ＿Ｍ１により、乗算処理を行うように指示する。また、制御部１００は、乗算器１４２に対しては、制御情報ＣＮＴ＿Ｍ２により乗算処理を行わないよう指示する。また、制御部１００は、スケール値生成部１１０に対しては、制御情報ＣＮＴ＿ＳＧにより、制御情報ＣＮＴ＿ＳＣで指定されるスケールインデックスＳＣＩに対応したスケール値が格納されたスケールテーブル１１１からの出力値を選択するよう指示する。また、制御部１００は、スケール処理部２１０に対しては、制御情報ＣＮＴ＿ＳＰにより、スケール値を選択するよう指示する。これにより、乗算処理を行うように指示された乗算器１４１に、スケール値である乗算値Ｍ１が供給される。
【０１２６】
さらに、制御部１００は、加算器１５１に対しては、制御情報ＣＮＴ＿ＡＰにより、加算処理を行わないよう指示する。また、制御部１００は、丸め演算器１５６に対しては、制御情報ＣＮＴ＿ＲＮにより、丸め処理を行わないよう指示する。また、制御部１００は、シフト演算器１７１に対しては、制御情報ＣＮＴ＿ＳＰにより、シフト演算処理を行わないよう指示する。また、制御部１００は、ＤＣＴミスマッチ処理部１９１に対しては、制御情報ＣＮＴ＿ＭＳ１により、ＤＣＴミスマッチ制御処理を行わないよう指示する。また、制御部１００は、飽和処理部１９２に対しては、制御情報ＣＮＴ＿ＣＬにより、飽和処理を行うよう指示する。また、制御部１００は、ＤＣＴミスマッチ処理部１９３に対しては、制御情報ＣＮＴ＿ＭＳ２により、ＤＣＴミスマッチ制御処理を行うよう指示する。
【０１２７】
これにより、乗算処理部１４０からは、係数データＣＤの値にスケール値である乗算値Ｍ１を乗算した値の出力データＭＤが出力される。さらに、加算処理部１５０、丸め処理部１５５及びシフト処理部１７０からも出力データＭＤと同じ値のデータが出力される。さらに、後段処理部１９０において、まず、飽和処理部１９２が、出力データＭＤと同じ値のデータである出力データＳＤに対して飽和処理を行う。すなわち、飽和処理部１９２は、出力データＳＤの値が例えば“−２０４８”以下の場合には、“−２０４８”とする値にクリッピングし、飽和処理部１９２に供給された係数値が例えば“２０４７”以上の場合には、“２０４７”とする値にクリッピングするような飽和処理を行う。
【０１２８】
さらに、後段処理部１９０において、次に、ＤＣＴミスマッチ処理部１９３が、飽和処理部１９２から供給されたデータに対して、供給された全てのデータの値を加算して、その和が偶数のときには、最も高周波である成分、すなわち係数［７］［７］成分の値を変更するような処理を行う。すなわち、ＤＣＴミスマッチ処理部１９３は、飽和処理部１９２から供給されたデータの全ての和が偶数の場合に、そのデータでの最も高周波である成分、すなわち係数［７］［７］成分の値の最下位ビットを反転し、このようなデータを復元データＲＤとして後段処理部１９０から出力する。
【０１２９】
このように、図１の構成において上述したようなそれぞれの制御情報が各部に通知されることで、図２のＭＰＥＧ−２のＩｎｔｒａＤＣの項に示すような係数データＱＦ［０］［０］にスケール値ｉｎｔｒａ＿ｄｃ＿ｍｕｌｔを乗算し復元データＦ”［０］［０］を求めるような逆量子化式を実現できる。
【０１３０】
次に、ＭＰＥＧ−２方式で量子化された画面内符号化の交流成分の係数データを逆量子化する処理について説明する。入力端子１３に供給された係数データがＭＰＥＧ−２方式の画面内符号化の交流成分の係数データのとき、図５に示すように、係数データＣＤに対して、“行列”で示すマトリックス値及び“スケール”で示すスケール値の２倍の値を乗算し、“シフト”で示すシフト演算を行い、さらに“後段”で示すＤＣＴミスマッチ制御処理及び飽和処理を行えばよい。そのため、制御部１００は、次のような制御情報をそれぞれの演算処理部及び生成部に通知する。
【０１３１】
例えば、制御部１００は、乗算器１４１に対しては、制御情報ＣＮＴ＿Ｍ１により、乗算処理を行うように指示する。また、制御部１００は、乗算器１４２に対しては、制御情報ＣＮＴ＿Ｍ２により、乗算処理を行うよう指示する。また、制御部１００は、スケール値生成部１１０に対しては、制御情報ＣＮＴ＿ＳＧにより、制御情報ＣＮＴ＿ＳＣで指定されるスケールインデックスＳＣＩに対応したスケール値が格納されたスケールテーブル１１１からの出力値を選択するよう指示する。また、制御部１００は、スケール処理部２１０に対しては、制御情報ＣＮＴ＿ＳＰにより、演算部２１１から出力されたスケール値の２倍の値を選択するよう指示する。これにより、乗算処理を行うように指示された乗算器１４１に、スケール値の２倍である乗算値Ｍ１が供給される。
【０１３２】
また、制御部１００は、マトリックス値生成部１２０に対しては、制御情報ＣＮＴ＿ＭＸにより、入力端子１２に供給されたマトリックスデータＭＸＤに応じて選択されたマトリックステーブル１２１からのマトリックス値を出力するよう指示する。これにより、乗算処理を行うように指示された乗算器１４２に、マトリックス値である乗算値Ｍ２が供給される。
【０１３３】
さらに、制御部１００は、加算器１５１に対しては、制御情報ＣＮＴ＿ＡＰにより、加算処理を行わないよう指示する。また、制御部１００は、丸め演算器１５６に対しては、制御情報ＣＮＴ＿ＲＮにより、丸め処理を行わないよう指示する。また、制御部１００は、シフト演算器１７１に対しては、制御情報ＣＮＴ＿ＳＰにより、シフト演算処理を行うよう指示する。また、制御部１００は、シフト量生成部１８０に対しては、制御情報ＣＮＴ＿ＳＦにより、１／３２に対応した５ビットの右シフトに相当するシフト量データＳＦを出力するよう指示する。また、制御部１００は、ＤＣＴミスマッチ処理部１９１に対しては、制御情報ＣＮＴ＿ＭＳ１により、ＤＣＴミスマッチ制御処理を行わないよう指示する。また、制御部１００は、飽和処理部１９２に対しては、制御情報ＣＮＴ＿ＣＬにより、飽和処理を行うよう指示する。また、制御部１００は、ＤＣＴミスマッチ処理部１９３に対しては、制御情報ＣＮＴ＿ＭＳ２により、ＤＣＴミスマッチ制御処理を行うよう指示する。
【０１３４】
これにより、乗算処理部１４０からは、係数データＣＤを２倍し、さらにスケール値及びマトリックス値を乗算した出力データＭＤが出力される。さらに、加算処理部１５０からは、出力データＭＤと同じ値の出力データＡＤが出力され、丸め処理部１５５からも、出力データＭＤと同じ値の出力データＲＮが出力される。このようにして、シフト処理部１７０からは、係数データＣＤを２倍し、さらにスケール値及びマトリックス値を乗算した値を５ビットだけ右にシフトさせた、すなわち３２で割った値が出力データＳＤとして出力される。その結果、シフト処理部１７０からは、係数データＣＤを２倍し、さらにスケール値及びマトリックス値を乗算し、３２で割った値の出力データＳＤが出力される。
【０１３５】
さらに、画面内符号化の直流成分の係数データのときと同様に、後段処理部１９０において、まず、飽和処理部１９２は、出力データＳＤに対して飽和処理を行う。次に、ＤＣＴミスマッチ処理部１９３は、飽和処理部１９２から供給されたデータに対して、供給された全てのデータの値を加算して、その和が偶数のときには、最も高周波である成分、すなわち係数［７］［７］成分の値を変更するような処理を行う。このようにして、後段処理部１９０から復元データＲＤが出力される。
【０１３６】
このように、図１の構成において上述したようなそれぞれの制御情報が各部に通知される。したがって、係数データＱＦ［ｖ］［ｕ］に、定数“２”、マトリックス値Ｗ［ｗ］［ｖ］［ｕ］及びスケール値ｑｕａｎｔｉｚｅｒ＿ｓｃａｌｅを乗算し、３２で割ることで、図２のＭＰＥＧ−２のＩｎｔｒａＡＣの項に示すような復元データＦ”［ｖ］［ｕ］を求める逆量子化式を実現できる。
【０１３７】
次に、ＭＰＥＧ−２方式で量子化された画面間符号化の係数データを逆量子化する処理について説明する。入力端子１３に供給された係数データがＭＰＥＧ−２方式の画面間符号化の係数データのとき、図５に示すように、係数データＣＤに対して、“行列”で示すマトリックス値及び“スケール”で示すスケール値の２倍の値を乗算するとともに、マトリックス値とスケール値とを乗算した値に符号をつけた値を加算し、その値をさらに“シフト”で示すシフト演算を行い、さらに“後段”で示すＤＣＴミスマッチ制御処理及び飽和処理を行えばよい。そのため、制御部１００は、次のような制御情報をそれぞれの演算処理部及び生成部に通知する。
【０１３８】
例えば、制御部１００は、乗算器１４１に対しては、制御情報ＣＮＴ＿Ｍ１により、乗算処理を行うように指示する。また、制御部１００は、乗算器１４２に対しては、制御情報ＣＮＴ＿Ｍ２により、乗算処理を行うよう指示する。また、制御部１００は、スケール値生成部１１０に対しては、制御情報ＣＮＴ＿ＳＧにより、制御情報ＣＮＴ＿ＳＣで指定されるスケールインデックスＳＣＩに対応したスケール値が格納されたスケールテーブル１１１からの出力値を選択するよう指示する。また、制御部１００は、スケール処理部２１０に対しては、制御情報ＣＮＴ＿ＳＰにより、演算部２１１から出力されたスケール値の２倍の値を選択するよう指示する。これにより、乗算処理を行うように指示された乗算器１４１に、スケール値の２倍である乗算値Ｍ１が供給される。
【０１３９】
また、制御部１００は、マトリックス値生成部１２０に対しては、制御情報ＣＮＴ＿ＭＸにより、入力端子１２に供給されたマトリックスデータＭＸＤに応じて選択されたマトリックステーブル１２１からのマトリックス値を出力するよう指示する。これにより、乗算処理を行うように指示された乗算器１４２に、マトリックス値である乗算値Ｍ２が供給される。
【０１４０】
さらに、制御部１００は、加算値生成部１６０に対しては、制御情報ＣＮＴ＿ＯＦにより、乗算器１６１でスケール値とマトリックス値とを乗算することにより得られた値を加算値ＯＦとして出力するよう指示する。これとともに、制御部１００は、加算器１５１に対しては、制御情報ＣＮＴ＿ＡＰにより、加算処理を行うよう指示する。さらに、制御部１００は、加算器１５１に対して、係数データＣＤの符号が正の場合には、乗算処理部１４０からの出力データＭＤに加算値生成部１６０からの加算値ＯＦを加算し、係数データＣＤの符号が負の場合には、出力データＭＤから加算値ＯＦを減算するよう指示する。すなわち、このような加算処理を行うことで、例えば、デッドゾーンのある量子化方式に対応する逆量子化が実行される。
【０１４１】
さらに、制御部１００は、丸め演算器１５６に対しては、制御情報ＣＮＴ＿ＲＮにより、丸め処理を行わないよう指示する。また、制御部１００は、シフト演算器１７１に対しては、制御情報ＣＮＴ＿ＳＰにより、シフト演算処理を行うよう指示する。また、制御部１００は、シフト量生成部１８０に対しては、制御情報ＣＮＴ＿ＳＧにより、１／３２に対応した５ビットの右シフトに相当するシフト量を出力するよう指示する。また、制御部１００は、ＤＣＴミスマッチ処理部１９１に対しては、制御情報ＣＮＴ＿ＭＳ１により、ＤＣＴミスマッチ制御処理を行わないよう指示する。また、制御部１００は、飽和処理部１９２に対しては、制御情報ＣＮＴ＿ＣＬにより、飽和処理を行うよう指示する。また、制御部１００は、ＤＣＴミスマッチ処理部１９３に対しては、制御情報ＣＮＴ＿ＭＳ２により、ＤＣＴミスマッチ制御処理を行うよう指示する。
【０１４２】
これにより、乗算処理部１４０からは、係数データＣＤを２倍し、さらにスケール値及びマトリックス値を乗算した出力データＭＤが出力される。さらに、加算処理部１５０からは、出力データＭＤに対しデッドゾーンのある量子化に対応する逆量子化を施した出力データＡＤが出力され、シフト処理部１７０からは、加算処理部１５０からの出力データＡＤを５ビットだけ右にシフトさせた、すなわち３２で割った出力データＳＤが出力される。
【０１４３】
さらに、画面内符号化の直流成分の係数データのときと同様に、後段処理部１９０において、まず、飽和処理部１９２が、出力データＳＤに対して飽和処理を行う。次に、ＤＣＴミスマッチ処理部１９３が、飽和処理部１９２から供給されたデータに対して、供給された全てのデータの値を加算して、その和が偶数のときには、最も高周波である成分、すなわち係数［７］［７］成分の値を変更するような処理を行う。このようにして、後段処理部１９０から復元データＲＤが出力される。
【０１４４】
このように、図１の構成において上述したようなそれぞれの制御情報が各部に通知される。したがって、係数データＱＦ［ｖ］［ｕ］に定数“２”を乗算し係数データの符号Ｓｉｇｎ（ＱＦ［ｖ］［ｕ］）を加算した値（２×ＱＦ［ｖ］［ｕ］＋Ｓｉｇｎ（ＱＦ［ｖ］［ｕ］））に対し、スケール値ｑｕａｎｔｉｚｅｒ＿ｓｃａｌｅ及びマトリックス値Ｗ［ｗ］［ｍ］［ｎ］を乗算し、３２で割ることで、図２のＭＰＥＧ−２のｎｏｎ−ｉｎｔｒａの項に示すような復元データＦ”［ｖ］［ｕ］を求める逆量子化式を実現できる。
【０１４５】
以上説明したように、本発明の実施の形態１における逆量子化回路は、量子化係数データＣＤに対する演算処理を施すための第１の乗算値Ｍ１を生成する第１の乗算値生成部１０と、量子化係数データＣＤに対する演算処理を施すための第２の乗算値Ｍ２を生成する第２の乗算値生成部２０と、量子化係数データＣＤに対する演算処理を施すための加算値ＯＦを生成する加算値生成部１６０と、量子化係数データＣＤに対する演算処理を施すためのビットシフト量を示すシフト量データＳＦを生成するシフト量生成部１８０と、量子化係数データＣＤに対して第１の乗算値Ｍ１及び第２の乗算値Ｍ２を乗算する乗算処理部１４０と、乗算処理部１４０から出力された出力データＭＤに対して加算値ＯＦを加算する加算処理部１５０と、加算処理部１５０から出力された出力データＡＤに対してシフト量データＳＦに応じてビットシフト演算を行うシフト処理部１７０とを備える。
【０１４６】
そして、乗算処理部１４０、加算処理部１５０及びシフト処理部１７０のうちの少なくとも１つの演算処理部において、演算処理を行うか否かを選択可能としている。また、第１の乗算値生成部１０、第２の乗算値生成部２０、加算値生成部１６０及びシフト量生成部１８０のうちの少なくとも１つの生成部において、生成する値又はデータ（値）の生成方法を選択可能としている。
【０１４７】
このため、符号化方式に応じてそれぞれの逆量子化回路を備える必要はなく、各種の符号化方式に応じて各演算処理部の演算処理を選択でき、柔軟性のある逆量子化回路を構成できるため、単一の回路で各種の画像符号化方式に対応できる汎用性の高い逆量子化回路を提供することができる。
【０１４８】
なお、以上の説明では、図１に示すような機能ブロックで構成される逆量子化回路により逆量子化を行うような実施の形態の一例を説明したが、本発明は特にこれに限定されない。例えば、量子化係数データＣＤに対する演算処理を施すための第１の乗算値Ｍ１を生成する第１の乗算値生成ステップと、量子化係数データＣＤに対する演算処理を施すための第２の乗算値Ｍ２を生成する第２の乗算値生成ステップと、量子化係数データＣＤに対する演算処理を施すための加算値ＯＦを生成する加算値生成ステップと、量子化係数データＣＤに対する演算処理を施すためのビットシフト量を示すシフト量データＳＦを生成するシフト量生成ステップと、量子化係数データＣＤに対して第１の乗算値Ｍ１及び第２の乗算値Ｍ２を乗算する乗算処理ステップと、乗算処理ステップからの出力データＭＤに対して加算値を加算する加算処理ステップと、加算処理ステップからの出力データＡＤに対してシフト量データＳＦに応じてビットシフト演算を行うシフト処理ステップとを含む逆量子化方法であってもよい。
【０１４９】
そして、乗算処理ステップ、加算処理ステップ及びシフト処理ステップのうちの少なくとも１つの演算処理ステップにおいて、演算処理を行うか否かを選択可能としてもよい。また、第１の乗算値生成ステップ、第２の乗算値生成ステップ、加算値生成ステップ及びシフト量生成ステップのうちの少なくとも１つの生成ステップにおいて、生成する値又はデータの生成方法を選択可能としてもよい。
【０１５０】
具体的には、このような逆量子化方法の各ステップを実行するようなプログラムをメモリなどに記憶させ、例えば、マイクロプロセッサのようなＣＰＵが、メモリに記憶されたプログラムを順次読み取り、読み取ったプログラムに従って処理を実行するような構成であってもよい。
【０１５１】
（実施の形態２）
図７は、本発明の実施の形態２における逆量子化回路の構成を示すブロック図である。
【０１５２】
図７に示すように、本発明の実施の形態２における逆量子化回路は、実施の形態１と同様に、入力端子１３に供給された係数データＣＤに対し、各種の演算処理を施し、元の係数値を復元し、復元した係数値である復元データＲＤを出力端子１９に出力する逆量子化回路である。また、本実施の形態の逆量子化回路も、画像の符号化方式として知られる、静止画像を対象にしたＪＰＥＧ方式、動画像を対象にしたＭＰＥＧ−１方式、ＭＰＥＧ−２方式、ＭＰＥＧ−４方式、Ｈ．２６３方式及びＭＰＥＧ−４ＡＶＣ方式とも呼ばれるＨ．２６４方式における逆量子化回路を実現している。特に、本実施の形態の逆量子化回路は、実施の形態１との比較において、より回路規模の削減を図るとともに、上述のような各種の符号化方式への対応を図った構成としている。なお、図７において、図１と同じ符号を付した構成要素は同一の構成であり詳細な説明は省略する。
【０１５３】
図７において、逆量子化回路には、係数データＣＤが入力端子１３に供給される。本実施の形態２に係る逆量子化回路も、このような係数データＣＤに対し、各種の符号化方式やその符号化方式の符号化種別に応じて演算処理を選択的に施すことで、画像データのブロック単位での例えば離散コサイン変換で求めた各周波数成分の係数値を復元する。
【０１５４】
図７に示す逆量子化回路は、係数データＣＤに対し逆量子化のための各種演算処理を行うための演算処理部を備える。逆量子化回路は、演算処理部として、前段処理部１３０、乗算処理部１４０、加算処理部１５０、シフト処理部１７０及び後段処理部１９９を備える。
【０１５５】
前段処理部１３０は、係数データＣＤを２倍にするとともに、デッドゾーンのある量子化に対応する逆量子化を行う。乗算処理部１４０は、係数データＣＤに対し量子化スケールに基づく逆量子化を行うとともに係数データＣＤに対し量子化マトリックスに基づく逆量子化を行う。加算処理部１５０は、係数データＣＤに対し所定の加算値を加算する。シフト処理部１７０は、係数データＣＤに対し所定のビット数だけのシフト量としてビットシフトさせる。後段処理部１９９は、係数データＣＤに対し飽和処理及びＤＣＴミスマッチ制御処理を行う。
【０１５６】
また、逆量子化回路は、第１の乗算値生成部１０、第２の乗算値生成部２０、加算値生成部１６０及びシフト量生成部１８０を備える。第１の乗算値生成部１０は、乗算処理部１４０における量子化スケールに基づく逆量子化を行うための第１の乗算値Ｍ１を生成する。第２の乗算値生成部２０は、乗算処理部１４０における量子化マトリックスに基づく逆量子化を行うための第２の乗算値Ｍ２を生成する。加算値生成部１６０は、加算処理部１５０に供給するための所定の加算値ＯＦを生成する。シフト量生成部１８０は、シフト処理部１７０に供給するためのシフト量データＳＦを生成する。
【０１５７】
また、逆量子化回路は、制御部１００を備える。制御部１００は、前段処理部１３０、乗算処理部１４０、加算処理部１５０、シフト処理部１７０及び後段処理部１９９に対し、それぞれの演算処理を実行するか否かを指示する制御情報を出力する。
【０１５８】
本発明の実施の形態２における逆量子化回路も、実施の形態１と同様に、それぞれの演算処理部が、指示に応じて、逆量子化のための演算処理に含めるか否かを選択可能としている。すなわち、各演算処理部において、例えば、演算処理済データと非演算処理データとを選択的に切替えて出力するような構成としている。また、例えばビットシフトさせるシフト演算処理の場合のシフト量のような演算処理の内容についても選択可能としている。
【０１５９】
さらに、制御部１００は、乗算値生成部１０、乗算値生成部２０、加算値生成部１６０及びシフト量生成部１８０に対し、生成する値又はデータの生成方法を指示する制御情報を出力する。
【０１６０】
本発明の実施の形態２における逆量子化回路はこのような基本構成であり、各種の符号化方式に応じて各演算処理部の演算処理の実行の有無や処理内容を選択的に切替えることにより、単一の回路で各種の画像符号化方式に対応できる汎用性の高い逆量子化回路を実現している。特に、本発明の実施の形態２における逆量子化回路は、既存の各種符号化方式に対応するとともに、回路規模の削減を図った構成である。以下、本発明の実施の形態２における逆量子化回路の詳細な構成について説明する。
【０１６１】
図７に示すように、逆量子化回路の入力端子１３に供給された係数データＣＤは、まず、前段処理部１３０に供給される。前段処理部１３０は、係数データＣＤを２倍にするための２倍乗算器１３１と、ＭＰＥＧ−１方式、ＭＰＥＧ−２方式、ＭＰＥＧ−４方式及びＨ．２６３方式などで規定されているデッドゾーンのある量子化方式に対応する処理を行うための加算器１３２とを有している。加算器１３２は、デッドゾーンのある量子化方式に対応するために設けている。前段処理部１３０に供給された係数データＣＤは、２倍乗算器１３１に供給され、２倍乗算器１３１の出力データが加算器１３２の一方の入力端に供給される。また、加算器１３２の他方の入力端には、係数データＣＤの符号ビットが供給される。また、加算器１３２の出力データが前段処理部１３０の出力データＦＤとして乗算処理部１４０に供給される。
【０１６２】
また、前段処理部１３０において、２倍乗算器１３１は、制御部１００からの制御情報ＣＮＴ＿Ｆ１により２倍の演算処理を行うか否かの切替制御が可能なように構成されている。また、加算器１３２は、制御部１００からの制御情報ＣＮＴ＿Ｆ２によりデッドゾーンのある量子化に対する処理を行うか否かの切替制御が可能なように構成されている。
【０１６３】
このような前段処理部１３０の構成により、例えば、制御情報ＣＮＴ＿Ｆ１及び制御情報ＣＮＴ＿Ｆ２を用いて、制御部１００によってそれぞれ演算処理を行わないよう指示されると、前段処理部１３０からは入力端子１３に供給された係数データＣＤが前段処理部１３０の出力データＦＤとして出力される。
【０１６４】
また、例えば逆に、制御情報ＣＮＴ＿Ｆ１及び制御情報ＣＮＴ＿Ｆ２を用いて、制御部１００によってそれぞれ演算処理を行うよう指示されると、前段処理部１３０からは、入力端子１３に供給された係数データＣＤを２倍しさらにデッドゾーンのある量子化に対する処理を行ったデータが出力データＦＤとして出力される。
【０１６５】
以上のように、前段処理部１３０は、係数データＣＤに対して２倍する演算処理の機能、及び係数データＣＤに対するデッドゾーンの範囲に対応した値を加算する演算処理の機能を有するとともに、これら演算処理を演算対象に含めるか否かをそれぞれに選択可能としている。そして、前段処理部１３０は、これら演算処理において、演算処理済データと非演算処理データとを選択的に切替えて出力するように構成されている。
【０１６６】
なお、前段処理部１３０において、２倍乗算器１３１は乗算器による２倍の乗算に代えて、例えば１ビット左シフト回路などでもよく、係数データＣＤを２倍する演算処理の機能を有していればよい。また、さらに、２倍乗算器１３１を、例えば、外部から倍数を設定可能な乗算器あるいはシフト回路とし、適宜、処理に応じた倍数を選択するような構成であってもよい。また、加算器１３２は、２倍乗算器１３１からのデータに符号ビットを加算するのに代えて、２倍乗算器１３１からのデータに所定の値を加算するような回路などでもよく、符号化方式に基づいたデッドゾーンのある量子化に対応した演算処理の機能を有していればよい。
【０１６７】
次に、前段処理部１３０から出力された出力データＦＤは、図７に示すように、乗算処理部１４０に供給される。乗算処理部１４０は、実施の形態１と同様の構成であり、第１の乗算器１４１（以下、適宜、単に“乗算器１４１”と呼ぶ）及び第２の乗算器１４２（以下、適宜、単に“乗算器１４２”と呼ぶ）を有する。乗算器１４１は、前段処理部１３０からの出力データＦＤに対して第１の乗算値生成部１０（以下、適宜、単に“乗算値生成部１０”と呼ぶ）から供給された第１の乗算値Ｍ１（以下、適宜、単に“乗算値Ｍ１”と呼ぶ）を乗算する。乗算器１４２は、乗算器１４１から出力されたデータに対して第２の乗算値生成部２０（以下、適宜、単に“乗算値生成部２０”と呼ぶ）から供給された第２の乗算値Ｍ２（以下、適宜、単に“乗算値Ｍ２”と呼ぶ）を乗算する。
【０１６８】
また、乗算処理部１４０において、乗算器１４１は、制御部１００からの制御情報ＣＮＴ＿Ｍ１により乗算値Ｍ１を乗算する演算処理を行うか否かの切替制御が可能なように構成されている。また、乗算器１４２は、制御部１００からの制御情報ＣＮＴ＿Ｍ２により乗算値Ｍ２を乗算する演算処理を行うか否かの切替制御が可能なように構成されている。このような乗算処理部１４０の構成により、例えば、制御情報ＣＮＴ＿Ｍ１及び制御情報ＣＮＴ＿Ｍ２を用いて、制御部１００によってそれぞれ演算処理を行わないよう指示されると、乗算処理部１４０からは、前段処理部１３０からの出力データＦＤが乗算処理部１４０の出力データＭＤとして出力される。
【０１６９】
また、例えば逆に、制御情報ＣＮＴ＿Ｍ１及び制御情報ＣＮＴ＿Ｍ２を用いて、制御部１００によってそれぞれ演算処理を行うよう指示されると、乗算処理部１４０からは、前段処理部１３０からの出力データＦＤに対して乗算値Ｍ１及び乗算値Ｍ２を乗算した値のデータが出力データＭＤとして出力される。
【０１７０】
以上のように、乗算処理部１４０は、係数データＣＤに対して乗算値Ｍ１及び乗算値Ｍ２を乗算する演算処理の機能を有するとともに、このような乗算演算の処理において演算処理済データと非演算処理データとを選択的に切替えて出力するように構成されている。
【０１７１】
なお、乗算処理部１４０において、図７に示すような出力データＦＤに対してまず乗算値Ｍ１を乗算し次に乗算値Ｍ２を乗算するような構成に代えて、出力データＦＤに対してまず乗算値Ｍ２を乗算し次に乗算値Ｍ１を乗算するような構成であってもよい。また、乗算処理部１４０は、出力データＦＤに対して、乗算値Ｍ１と乗算値Ｍ２とを乗算した値を乗算するような構成であってもよい。
【０１７２】
次に、乗算値生成部１０は、実施の形態１と同様の構成であり、上述した乗算処理部１４０に供給するための乗算値Ｍ１を生成する。乗算値生成部１０は、主に、画像の符号化方式において量子化スケールと呼ばれているマクロブロックなどのブロックごとに定めた量子化幅を示すスケール値を生成する。乗算値生成部１０は、このようなスケール値を生成するため、図７に示すように、スケール値を生成するためのスケール値生成部１１０を有している。スケール値生成部１１０は、入力端子１１に供給されたスケールインデックスＳＣＩを、例えば所定の変換ルールに基づき変換する変換機能を有しており、所定のスケール値を出力する。さらに、乗算値生成部１０は、スケール値生成部１１０で生成したスケール値に対して各符号化方式や符号化方式における符号化種別に対応させた演算処理を選択的に施すことで乗算値Ｍ１を出力するスケール処理部２１０を有している。
【０１７３】
次に、乗算値生成部２０も、実施の形態１と同様の構成であり、上述した乗算処理部１４０に供給する乗算値Ｍ２を生成する。乗算値生成部２０は、主に、画像の符号化方式において周波数ごとに量子化幅を設定した量子化マトリックスと呼ばれているマトリックス値を生成する。このため、図７に示すように、乗算値生成部２０は、このようなマトリックス値を生成するためのマトリックス値生成部１２０を有している。
【０１７４】
次に、乗算処理部１４０から出力された出力データＭＤは、図７に示すように、加算処理部１５０に供給される。加算処理部１５０も、実施の形態１と同様の構成であり、乗算処理部１４０からの出力データＭＤに対して加算値生成部１６０から供給された加算値ＯＦを加算する加算器１５１を有している。
【０１７５】
次に、加算値生成部１６０は、上述した加算処理部１５０に供給する加算値ＯＦを生成する。加算値生成部１６０は、このような加算値ＯＦとして、Ｈ．２６３方式及びＭＰＥＧ−４方式の逆量子化を行う場合には、ＤＣＴミスマッチ制御処理における加算処理のための加算値を出力し、Ｈ．２６４方式の逆量子化を行う場合には、右シフトに対する丸め処理のための加算値を出力する。また、加算値生成部１６０は、制御部１００からの制御情報ＣＮＴ＿ＡＧによる指示に従って、このような符号化方式に応じた加算値ＯＦを選択的に出力し、加算処理部１５０に供給する。以上のように、加算値生成部１６０は、係数データに対する演算処理を施すための加算値ＯＦを生成する。
【０１７６】
次に、加算処理部１５０から出力された出力データＡＤは、図７に示すように、シフト処理部１７０に供給される。シフト処理部１７０も、実施の形態１と同様の構成であり、加算処理部１５０からの出力データＡＤに対してシフト量生成部１８０から供給されたシフト量データＳＦに応じて出力データＡＤのビットシフトを行うシフト演算器１７１を有している。
【０１７７】
次に、シフト量生成部１８０も、実施の形態１と同様の構成であり、各符号化方式において規定されたスケール合わせのため、上述したシフト処理部１７０に供給するシフト量を示すシフト量データＳＦを生成する。
【０１７８】
次に、シフト処理部１７０から出力された出力データＳＤは、図７に示すように、後段処理部１９９に供給される。後段処理部１９９は、シフト処理部１７０からの出力データＳＤに対して飽和処理を行う飽和処理部１９２と、ＤＣＴミスマッチ制御処理を行うＤＣＴミスマッチ処理部１９３とを有している。また、飽和処理部１９２は、制御部１００からの制御情報ＣＮＴ＿ＣＬにより飽和処理を行うか否かの切替制御が可能なように構成されており、ＤＣＴミスマッチ処理部１９３は、制御部１００からの制御情報ＣＮＴ＿ＭＳによりＤＣＴミスマッチ制御処理を行うか否かの切替制御が可能なように構成されている。
【０１７９】
上述したように、ＭＰＥＧ−１方式、ＭＰＥＧ−４方式及びＨ．２６３方式では、ＤＣＴミスマッチ制御処理の次に飽和処理を行うよう規定されており、ＭＰＥＧ−２方式では、飽和処理の次にＤＣＴミスマッチ制御処理を行うよう規定されている。このため、本実施の形態における逆量子化回路では、例えば、ＭＰＥＧ−１方式の係数データＣＤに対して逆量子化処理を行う場合、制御部１００は、制御情報ＣＮＴ＿ＣＬにより飽和処理部１９２の飽和処理を行うよう指示するとともに、制御情報ＣＮＴ＿ＭＳによりＤＣＴミスマッチ処理部１９３のＤＣＴミスマッチ制御処理を行わないよう指示する。さらに、制御部１００は、加算値生成部１６０に対して制御情報ＣＮＴ＿ＡＧによりＤＣＴミスマッチ制御処理における加算処理のための加算値ＯＦを出力するように指示し、加算処理部１５０に対して制御情報ＣＮＴ＿ＡＰにより加算値ＯＦを加算するように指示する。
【０１８０】
すなわち、ＭＰＥＧ−１方式において、ｉｎｔｒａＤＣ以外の係数データに対して、その復元係数値が偶数の場合に、係数データの符号、すなわちＳｉｇｎ（ｄｃｔ＿ｚｚ［ｉ］）を引き算するため、加算値生成部１６０は係数データの符号を反転した値を加算値ＯＦとして出力する。これにより、ＭＰＥＧ−１方式で規定されているように、ＤＣＴミスマッチ制御処理の次に飽和処理が実行される。
【０１８１】
また、ＭＰＥＧ−２方式の係数データＣＤに対して逆量子化処理を行う場合、制御部１００は、制御情報ＣＮＴ＿ＣＬにより飽和処理部１９２の飽和処理を行うよう指示するとともに、制御情報ＣＮＴ＿ＭＳによりＤＣＴミスマッチ処理部１９３のＤＣＴミスマッチ制御処理を行うよう指示する。さらに、制御部１００は、加算処理部１５０に対して制御情報ＣＮＴ＿ＡＰにより加算値ＯＦを加算しないように指示する。これにより、ＭＰＥＧ−２方式で規定されているように、飽和処理の次にＤＣＴミスマッチ制御処理が実行される。
【０１８２】
本実施の形態の逆量子化回路では、以上説明したような演算処理が、それぞれの制御情報に従って各符号化方式に応じて実行され、後段処理部１９９からは、復元された係数値を有した復元データＲＤが出力端子１９に出力される。
【０１８３】
なお、以下、上述したように、各演算処理部における演算処理及び各生成部における値やデータの生成方法がそれぞれに選択可能であるとして説明するが、本発明は特にこれに限定されない。例えば、対応する符号化方式の種類に応じて、乗算処理部１４０及びシフト処理部１７０のうちの少なくとも１つの演算処理部において演算処理を行うか否かを選択可能とするような構成であってもよく、第１の乗算値生成部１０、第２の乗算値生成部２０及びシフト量生成部１８０のうちの少なくとも１つの生成部において生成する値又はデータの生成方法を選択可能とするような構成であってもよい。
【０１８４】
以下、以上のように構成された本発明の実施の形態２における逆量子化回路の動作について説明する。
【０１８５】
図８は、本発明の実施の形態２の逆量子化回路において、各逆量子化式に対応した演算処理の一覧を示す図である。図８では、図２から図４までの各逆量子化式を共通の演算処理で実現可能なように一覧としてまとめている。図８において、“係数”は逆量子化するための係数データを示し、“２”は乗数２を示し、“符号”は係数データの正負を示す符号であり係数データの符号を利用したデッドゾーンのある量子化の処理などを示している。また、“行列”はマトリックス値を示し、“スケール”はスケール値を示し、“加算値”は逆量子化における加算値を示し、“シフト”はシフト演算を示し、“クリップ”は飽和処理を示し、“ＤＣＴミス”はＤＣＴミスマッチ制御処理を示している。また、“正規化”は、Ｈ．２６４方式で規定された正規化係数値を示している。また、“０”、“１”及び“８”などの数字はその値が示す定数を示している。また、“シフト”、“クリップ”及び“ＤＣＴミス”で示した箇所はそれぞれの処理を実行することを示し、矢印で示した箇所はその処理を実行しないことを示している。
【０１８６】
特に、図８における“符号”で示す演算においては、ＭＰＥＧ−１方式のＳｉｇｎ（ｄｃｔ＿ｚｚ［ｉ］）と、ＭＰＥＧ−２方式のＳｉｇｎ（ＱＦ［ｖ］［ｕ］）と、Ｈ．２６３及びＭＰＥＧ−４方式の１の加算とで表されるデッドゾーンのある量子化の加算値を加算する処理の共通化を図っている。さらに、図８における“加算値”で示す演算においては、Ｈ．２６３方式及びＭＰＥＧ−４方式のＤＣＴミスマッチ制御処理と、Ｈ．２６４方式のスケール合わせのための右シフトに対する丸め処理との共通化を図り、回路規模の削減を図っている。
【０１８７】
このように、図２から図４までの各符号化方式の各逆量子化式は、図８に示すような共通の演算式でも表現することができる。すなわち、図７で説明した本発明の実施の形態２における逆量子化回路の構成は、図８に示すような共通の演算式を実現した回路であり、上述したような制御情報による各演算処理の実行の切替えを行うことでそれぞれの符号化方式に対応させている。本発明の実施の形態２における逆量子化回路は、演算処理の共通化を図ることで、さらに回路規模が増大することを抑制している。
【０１８８】
以下、図２から図４、図７及び図８を参照しながら本発明の実施の形態２における逆量子化回路の具体的な動作についていくつかの符号化方式の例を挙げながら説明する。
【０１８９】
まず、ＪＰＥＧ方式で量子化された係数データを逆量子化する処理について説明する。例えばＪＰＥＧ方式の逆量子化を行う場合、図８で示す演算構成に従って、制御情報により各演算処理の切替えが行われる。すなわち、ＪＰＥＧ方式の場合、図８に示すように、係数データＣＤに対してマトリックス値生成部１２０からのマトリックス値を乗算するのみでよい。そのため、制御部１００は、次のような制御情報をそれぞれの処理部及び生成部に通知する。
【０１９０】
例えば、逆量子化回路を制御する制御部１００は、２倍乗算器１３１に対し、制御情報ＣＮＴ＿Ｆ１により、２倍の演算処理を行わないように指示する。また、制御部１００は、加算器１３２に対しては、制御情報ＣＮＴ＿Ｆ２により、デッドゾーンのある量子化に対する加算処理を行わないように指示する。また、制御部１００は、乗算器１４１に対しては、制御情報ＣＮＴ＿Ｍ１により、乗算処理を行わないように指示する。また、制御部１００は、乗算器１４２に対しては、制御情報ＣＮＴ＿Ｍ２により乗算処理を行うよう指示する。
【０１９１】
また、制御部１００は、マトリックス値生成部１２０に対しては、制御情報ＣＮＴ＿ＭＸにより、マトリックス値を出力するよう指示する。また、制御部１００は、加算器１５１に対しては、制御情報ＣＮＴ＿ＡＰにより、加算処理を行わないよう指示する。また、制御部１００は、シフト演算器１７１に対しては、制御情報ＣＮＴ＿ＳＰにより、シフト演算処理を行わないよう指示する。また、制御部１００は、飽和処理部１９２に対しては、制御情報ＣＮＴ＿ＣＬにより、飽和処理を行わないよう指示する。また、制御部１００は、ＤＣＴミスマッチ処理部１９３に対しては、制御情報ＣＮＴ＿ＭＳにより、ＤＣＴミスマッチ制御処理を行わないよう指示する。
【０１９２】
これにより、前段処理部１３０からは、入力端子１３に供給された係数データＣＤと同じ値の出力データＦＤが出力され、乗算処理部１４０からは、係数データＣＤの値に乗算値Ｍ２であるマトリックス値を乗算した値の出力データＭＤが出力される。さらに、加算処理部１５０、シフト処理部１７０及び後段処理部１９９からも出力データＭＤと同じ値のデータが出力される。その結果、出力端子１９からは、係数データＣＤの値に乗算値Ｍ２であるマトリックス値を乗算した値の復元データＲＤが出力される。このように、図７の構成において上述したようなそれぞれの制御情報を各部に通知することで、図２のＪＰＥＧの項に示すような係数データＳｑｖｕにマトリックス値Ｑｖｕを乗算して復元データＲｖｕを求めるような逆量子化式を実現できる。
【０１９３】
また、例えばＭＰＥＧ−２方式の逆量子化を行う場合、図８に示すように係数データの種別で区分して逆量子化を行う。
【０１９４】
まず、ＭＰＥＧ−２方式で量子化された画面内符号化の直流成分の係数データを逆量子化する処理について説明する。入力端子１３に供給された係数データがＭＰＥＧ−２方式の画面内符号化の直流成分の係数データのとき、図８に示すように、係数データに対してスケール値を乗算するのみでよい。そのため、制御部１００は、次のような制御情報をそれぞれの演算処理部及び生成部に通知する。
【０１９５】
例えば、制御部１００は、２倍乗算器１３１に対し、制御情報ＣＮＴ＿Ｆ１により、２倍の演算処理を行わないように指示する。また、制御部１００は、加算器１３２に対しては、制御情報ＣＮＴ＿Ｆ２により、デッドゾーンのある量子化に対する加算処理を行わないように指示する。また、制御部１００は、乗算器１４１に対しては、制御情報ＣＮＴ＿Ｍ１により、乗算処理を行うように指示する。また、制御部１００は、乗算器１４２に対しては、制御情報ＣＮＴ＿Ｍ２により、乗算処理を行わないよう指示する。
【０１９６】
また、制御部１００は、スケール値生成部１１０に対しては、制御情報ＣＮＴ＿ＳＧにより、制御情報ＣＮＴ＿ＳＣで指定されるスケールインデックスＳＣＩに対応したスケール値を出力するよう指示する。また、制御部１００は、加算器１５１に対しては、制御情報ＣＮＴ＿ＡＰにより、加算処理を行わないよう指示する。また、制御部１００は、シフト演算器１７１に対しては、制御情報ＣＮＴ＿ＳＰにより、シフト演算処理を行わないよう指示する。また、制御部１００は、飽和処理部１９２に対しては、制御情報ＣＮＴ＿ＣＬにより、飽和処理を行うよう指示する。ＤＣＴミスマッチ処理部１９３に対しては、制御情報ＣＮＴ＿ＭＳにより、ＤＣＴミスマッチ制御処理を行うよう指示する。
【０１９７】
これにより、前段処理部１３０からは、入力端子１３に供給された係数データＣＤと同じ値の出力データＦＤが出力され、乗算処理部１４０からは、係数データＣＤの値に乗算値Ｍ１であるスケール値を乗算した値の出力データＭＤが出力される。さらに、加算処理部１５０及びシフト処理部１７０からも出力データＭＤと同じ値のデータが出力される。その結果、シフト処理部１７０からは、係数データＣＤの値にスケール値を乗算した値の出力データＳＤが出力される。
【０１９８】
さらに、実施の形態１のときと同様に、後段処理部１９９において、まず、飽和処理部１９２は、出力データＳＤに対して飽和処理を行う。次に、ＤＣＴミスマッチ処理部１９３は、飽和処理部１９２から供給されたデータに対して、供給された全てのデータの値を加算して、その和が偶数のときには、最も高周波である成分、すなわち係数［７］［７］成分の値を変更するような処理を行う。このようにして、後段処理部１９９から復元データＲＤが出力される。
【０１９９】
このように、図７の構成において上述したようなそれぞれの制御情報が各部に通知されることで、図２のＭＰＥＧ−２のＩｎｔｒａＤＣの項に示すような係数データＱＦ［０］［０］にスケール値ｉｎｔｒａ＿ｄｃ＿ｍｕｌｔを乗算し復元データＦ”［０］［０］を求めるような逆量子化式を実現できる。
【０２００】
次に、ＭＰＥＧ−２方式で量子化された画面内符号化の交流成分の係数データを逆量子化する処理について説明する。入力端子１３に供給された係数データがＭＰＥＧ−２方式の画面内符号化の交流成分の係数データのとき、図８に示すように、係数データに対して、定数“２”、“スケール”で示すスケール値及び“行列”で示すマトリックス値を乗算し、さらに“シフト”で示すシフト演算を行えばよい。そのため、制御部１００は、次のような制御情報をそれぞれの演算処理部及び生成部に通知する。
【０２０１】
例えば、制御部１００は、２倍乗算器１３１に対し、制御情報ＣＮＴ＿Ｆ１により、２倍の演算処理を行うように指示する。また、制御部１００は、加算器１３２に対しては、制御情報ＣＮＴ＿Ｆ２により、デッドゾーンのある量子化に対する加算処理を行わないように指示する。また、制御部１００は、乗算器１４１に対しては、制御情報ＣＮＴ＿Ｍ１により、乗算処理を行うように指示する。また、制御部１００は、乗算器１４２に対しては、制御情報ＣＮＴ＿Ｍ２により、乗算処理を行うように指示する。
【０２０２】
また、制御部１００は、スケール値生成部１１０に対しては、制御情報ＣＮＴ＿ＳＧにより、制御情報ＣＮＴ＿ＳＣで指定されるスケールインデックスＳＣＩに対応したスケール値が格納されたスケールテーブルからの出力値を選択するよう指示する。また、制御部１００は、スケール処理部２１０に対しては、制御情報ＣＮＴ＿ＳＰにより、スケール値生成部１１０から出力されたスケール値を選択するよう指示する。これにより、乗算処理を行うように指示された乗算器１４１に、スケール値が乗算値Ｍ１として供給される。
【０２０３】
また、制御部１００は、マトリックス値生成部１２０に対しては、制御情報ＣＮＴ＿ＭＸにより、入力端子１２に供給されたマトリックスデータＭＸＤに応じたマトリックス値を出力するよう指示する。また、制御部１００は、加算器１５１に対しては、制御情報ＣＮＴ＿ＡＰにより、加算処理を行わないよう指示する。また、制御部１００は、シフト演算器１７１に対しては、制御情報ＣＮＴ＿ＳＰにより、シフト演算処理を行うよう指示する。また、制御部１００は、シフト量生成部１８０に対しては、制御情報ＣＮＴ＿ＳＧにより、１／３２に対応した５ビットの右シフトに相当するシフト量データＳＦを出力するよう指示する。また、制御部１００は、飽和処理部１９２に対しては、制御情報ＣＮＴ＿ＣＬにより、飽和処理を行うよう指示する。また、制御部１００は、ＤＣＴミスマッチ処理部１９３に対しては、制御情報ＣＮＴ＿ＭＳにより、ＤＣＴミスマッチ制御処理を行うよう指示する。
【０２０４】
これにより、前段処理部１３０からは、入力端子１３に供給された係数データＣＤを２倍した出力データＦＤが出力される。また、乗算処理部１４０からは、係数データＣＤを２倍し、さらにスケール値及びマトリックス値を乗算した出力データＭＤが出力される。さらに、加算処理部１５０からは、出力データＭＤと同じ値の出力データＡＤが出力される。シフト処理部１７０からは、係数データＣＤを２倍し、さらにスケール値及びマトリックス値を乗算した値を５ビットだけ右にシフトさせた、すなわち３２で割った値が出力データＳＤとして出力される。その結果、シフト処理部１７０からは、係数データＣＤを２倍し、さらにスケール値及びマトリックス値を乗算し、３２で割った値の出力データＳＤが出力される。
【０２０５】
さらに、実施の形態１のときと同様に、後段処理部１９９において、まず、飽和処理部１９２は、出力データＳＤに対して飽和処理を行う。次に、ＤＣＴミスマッチ処理部１９３は、飽和処理部１９２から供給されたデータに対して、供給された全てのデータの値を加算して、その和が偶数のときには、最も高周波である成分、すなわち係数［７］［７］成分の値を変更するような処理を行う。このようにして、後段処理部１９９から復元データＲＤが出力される。
【０２０６】
このように、図７の構成において上述したようなそれぞれの制御情報が各部に通知される。したがって、係数データＱＦ［ｖ］［ｕ］に、定数“２”、マトリックス値Ｗ［ｗ］［ｖ］［ｕ］及びスケール値ｑｕａｎｔｉｚｅｒ＿ｓｃａｌｅを乗算し、３２で割ることで、図２のＭＰＥＧ−２のＩｎｔｒａＡＣの項に示すような復元データＦ”［ｖ］［ｕ］を求める逆量子化式を実現できる。
【０２０７】
次に、ＭＰＥＧ−２方式で量子化された画面間符号化の係数データを逆量子化する処理について説明する。入力端子１３に供給された係数データがＭＰＥＧ−２方式の画面間符号化の係数データのとき、図８に示すように、係数データに対して定数“２”を乗算するとともに“符号”で示すデッドゾーンのある量子化に対する加算処理を施し、このようなデータ値に対して“スケール”で示すスケール値及び“行列”で示すマトリックス値を乗算し、さらに“シフト”で示すシフト演算を行い、さらに“クリップ”で示す飽和処理及び“ＤＣＴミス”で示すＤＣＴミスマッチ制御処理を行えばよい。そのため、制御部１００は、次のような制御情報をそれぞれの演算処理部及び生成部に通知する。
【０２０８】
例えば、制御部１００は、２倍乗算器１３１に対し、制御情報ＣＮＴ＿Ｆ１により、２倍の演算処理を行うように指示する。また、制御部１００は、加算器１３２に対しては、制御情報ＣＮＴ＿Ｆ２により、デッドゾーンのある量子化の加算値に対する加算処理を行うように指示する。また、制御部１００は、乗算器１４１に対しては、制御情報ＣＮＴ＿Ｍ１により、乗算処理を行うように指示する。また、制御部１００は、乗算器１４２に対しては、制御情報ＣＮＴ＿Ｍ２により、乗算処理を行うよう指示する。
【０２０９】
また、制御部１００は、スケール値生成部１１０に対しては、制御情報ＣＮＴ＿ＳＧにより、制御情報ＣＮＴ＿ＳＣで指定されるスケールインデックスＳＣＩに対応したスケール値が格納されたスケールテーブルからの出力値を選択するよう指示する。また、制御部１００は、スケール処理部２１０に対しては、制御情報ＣＮＴ＿ＳＰにより、スケール値生成部１１０から出力されたスケール値を選択するよう指示する。これにより、乗算処理を行うように指示された乗算器１４１に、スケール値が乗算値Ｍ１として供給される。
【０２１０】
また、制御部１００は、マトリックス値生成部１２０に対しては、制御情報ＣＮＴ＿ＭＸにより、入力端子１２に供給されたマトリックスデータＭＸＤに応じたマトリックス値を出力するよう指示する。また、制御部１００は、加算器１５１に対しては、制御情報ＣＮＴ＿ＡＰにより、加算処理を行わないよう指示する。
【０２１１】
また、制御部１００は、シフト演算器１７１に対しては、制御情報ＣＮＴ＿ＳＰにより、シフト演算処理を行うよう指示する。また、制御部１００は、シフト量生成部１８０に対しては、制御情報ＣＮＴ＿ＳＧにより、１／３２に対応した５ビットの右シフトに相当するシフト量データＳＦを出力するよう指示する。また、制御部１００は、飽和処理部１９２に対しては、制御情報ＣＮＴ＿ＣＬにより、飽和処理を行うよう指示する。また、制御部１００は、ＤＣＴミスマッチ処理部１９３に対しては、制御情報ＣＮＴ＿ＭＳにより、ＤＣＴミスマッチ制御処理を行うよう指示する。
【０２１２】
これにより、前段処理部１３０からは、入力端子１３に供給された係数データＣＤを２倍し、さらにデッドゾーンのある量子化に対応する逆量子化を施した出力データＦＤが出力される。また、乗算処理部１４０からは、前段処理部１３０からの出力データＦＤに対しスケール値及びマトリックス値を乗算した出力データＭＤが出力される。さらに、加算処理部１５０からは、出力データＭＤに等しい出力データＡＤが出力される。シフト処理部１７０からは、加算処理部１５０からの出力データＡＤを５ビットだけ右にシフトさせた、すなわち３２で割った出力データＳＤが出力される。さらに、後段処理部１９９からは、シフト処理部１７０からの出力データＳＤを飽和処理及びＤＣＴミスマッチ制御処理したデータが出力される。
【０２１３】
このように、図７の構成において上述したようなそれぞれの制御情報が各部に通知される。したがって、係数データＱＦ［ｖ］［ｕ］に定数“２”を乗算し係数データの符号Ｓｉｇｎ（ＱＦ［ｖ］［ｕ］）を加算した値（２×ＱＦ［ｖ］［ｕ］＋Ｓｉｇｎ（ＱＦ［ｖ］［ｕ］））に対し、スケール値ｑｕａｎｔｉｚｅｒ＿ｓｃａｌｅ及びマトリックス値Ｗ［ｗ］［ｍ］［ｎ］を乗算し、３２で割ることで、図２のＭＰＥＧ−２のｎｏｎ−ｉｎｔｒａの項に示すような復元データＦ”［ｖ］［ｕ］を求める逆量子化式を実現できる。
【０２１４】
以上説明したように、本発明の実施の形態２における逆量子化回路は、量子化係数データＣＤに対する演算処理を施すための第１の乗算値Ｍ１を生成する第１の乗算値生成部１０と、量子化係数データＣＤに対する演算処理を施すための第２の乗算値Ｍ２を生成する第２の乗算値生成部２０と、量子化係数データＣＤに対する演算処理を施すためのビットシフト量を示すシフト量データＳＦを生成するシフト量生成部１８０と、量子化係数データＣＤに対して第１の乗算値Ｍ１及び第２の乗算値Ｍ２を乗算する乗算処理部１４０と、乗算処理部１４０から出力された出力データＭＤに対してシフト量データＳＦに応じてビットシフト演算を行うシフト処理部１７０とを備える。
【０２１５】
そして、乗算処理部１４０及びシフト処理部１７０のうちの少なくとも１つの演算処理部において、演算処理を行うか否かを選択可能としている。また、第１の乗算値生成部１０、第２の乗算値生成部２０及びシフト量生成部１８０のうちの少なくとも１つの生成部において、生成する値又はデータの生成方法を選択可能としている。
【０２１６】
このため、符号化方式に応じてそれぞれの逆量子化回路を備える必要はなく、各種の符号化方式に応じて各演算処理部の演算処理を選択でき、柔軟性のある逆量子化回路を構成できるため、単一の回路で各種の画像符号化方式に対応できる汎用性の高い逆量子化回路を提供することができる。
【０２１７】
なお、以上の説明では、図７に示すような機能ブロックで構成される逆量子化回路により逆量子化を行うような実施の形態の一例を説明したが、本発明は特にこれに限定されない。例えば、量子化係数データＣＤに対する演算処理を施すための第１の乗算値Ｍ１を生成する第１の乗算値生成ステップと、量子化係数データＣＤに対する演算処理を施すための第２の乗算値Ｍ２を生成する第２の乗算値生成ステップと、量子化係数データＣＤに対する演算処理を施すためのビットシフト量を示すシフト量データＳＦを生成するシフト量生成ステップと、量子化係数データＣＤに対して第１の乗算値Ｍ１及び第２の乗算値Ｍ２を乗算する乗算処理ステップと、乗算処理ステップからの出力データＭＤに対してシフト量データＳＦに応じてビットシフト演算を行うシフト処理ステップとを含む逆量子化方法であってもよい。
【０２１８】
そして、乗算処理ステップ及びシフト処理ステップのうちの少なくとも１つの演算処理ステップにおいて、演算処理を行うか否かを選択可能としてもよい。また、第１の乗算値生成ステップ、第２の乗算値生成ステップ及びシフト量生成ステップのうちの少なくとも１つの生成ステップにおいて、生成する値又はデータの生成方法を選択可能としてもよい。
【０２１９】
具体的には、このような逆量子化方法の各ステップを実行するようなプログラムをメモリなどに記憶させ、例えば、マイクロプロセッサのようなＣＰＵが、メモリに記憶されたプログラムを順次読み取り、読み取ったプログラムに従って処理を実行するような構成であってもよい。
【０２２０】
ここで、実施の形態１における逆量子化回路と実施の形態２における逆量子化回路との差について説明する。実施の形態１における逆量子化回路は、汎用性を重視した構成であり、実施の形態２における逆量子化回路は、回路規模の小型化を重視した構成である。
【０２２１】
その一例として、図８において、画面間符号化のＭＰＥＧ−１方式におけるＤＣＴミスマッチ制御処理と、Ｈ．２６４方式における丸め処理とは、同一の演算項（図８に示す“加算値”）で表されている。このように、ＤＣＴミスマッチ制御処理と丸め処理とを同一の演算項で表現した場合、将来の新たな符号化方式において、ＤＣＴミスマッチ制御処理と丸め処理との両方の要素を含む規格が出現したときに対応が困難となる。そこで、図５に示す演算構成では、ＤＣＴミスマッチ制御処理と丸め処理とを別々の演算項として表している。このように、実施の形態１では、複数の異なる演算処理を１つの演算処理部に行わせることがないため、より汎用性の高い逆量子化回路を実現することができる。
【０２２２】
また、別の例として、図８に示す演算構成では、デッドゾーン付き量子化のためのオフセット（“符号”で示す演算項）は、量子化スケール値と量子化行列とに結びついており、独立性が低くなっている。これに対し、図５に示す演算構成では、量子化スケール値（乗算値Ｍ１）と、デッドゾーン付き量子化のためのオフセット（加算値ＯＦ）とが分離して表現されている。デッドゾーン付きの量子化とは、ゼロ付近の値をゼロに丸める処理であり、どれだけの範囲の値をゼロに丸めるか、すなわちどのようなオフセットを加算するかは符号化方式に応じて異なる。このため、実施の形態１では、各演算項の依存関係を最小にすることによって、各演算処理が独立して制御されるので、より汎用性の高い逆量子化回路を実現することができる。
【０２２３】
さらに別の例として、図７に示す実施の形態２における逆量子化回路は、係数データを２倍する２倍乗算器１３１を備えている。この２倍乗算器１３１は、量子化スケールの値の調整や、量子化スケールとデッドゾーン付き量子化のためのオフセットとの関係を調整するために設けられているが、将来的に２以外の数値を係数データに乗算する符号化方式が出現する虞がある。そこで、実施の形態１における逆量子化回路では、この係数データを２倍する演算を図６に示す演算部２１１により行っている。ここで、演算部２１１が乗算する値は固定ではなく、符号化方式に応じて変更が可能である。したがって、実施の形態１では、調整する余地のあるパラメータについては固定化されないので、より汎用性の高い逆量子化回路を実現することができる。
【０２２４】
以上のように、実施の形態１における逆量子化回路は、汎用性をより高めた構成となっている。
【０２２５】
（実施の形態３）
図９は、本発明の実施の形態３に係る画像再生装置の構成を示すブロック図である。なお、画像再生装置は、例えば、パーソナルコンピュータ、セットトップボックス、光ディスクレコーダ、光ディスクプレーヤ、テレビ、携帯情報端末装置及び携帯電話機を含む。
【０２２６】
図９に示す画像再生装置３００は、符号化ストリーム取得部３０１、量子化係数データ抽出部３０２、逆量子化回路３０３、画像データ変換部３０４及び出力部３０５を備える。
【０２２７】
符号化ストリーム取得部３０１は、符号化ストリームを取得する。なお、符号化ストリーム取得部３０１は、ネットワークを介して符号化ストリームを取得したり、ＤＶＤ、Ｂｌｕ−ｒａｙディスク等の光ディスクを読み取ることにより符号化ストリームを取得したり、アンテナを介して放送波から符号化ストリームを取得したりする。
【０２２８】
量子化係数データ抽出部３０２は、符号化ストリーム取得部３０１によって取得された符号化ストリームの中から、画像データを符号化方式に基づいて変換することで求めた周波数ごとの係数値を量子化した量子化係数データを抽出する。
【０２２９】
逆量子化回路３０３は、実施の形態１又は実施の形態２で述べたいずれかの逆量子化回路である。逆量子化回路３０３は、量子化係数データ抽出部３０２によって抽出された量子化係数データに対し、演算処理を施すことで逆量子化を行い、係数値を復元する。
【０２３０】
画像データ変換部３０４は、逆量子化回路３０３によって復元された係数値を画像データに変換する。出力部３０５は、画像データ変換部３０４によって変換された画像データをモニタ３１０に出力する。モニタ３１０は、出力部３０５によって出力された画像データを表示する。
【０２３１】
画像再生装置３００は、実施の形態１又は実施の形態２で述べたいずれかの逆量子化回路を搭載しているので、本実施の形態における画像再生装置３００は、単一回路で各種の符号化方式に対応した逆量子化を行うことができる。
【０２３２】
なお、上述した具体的実施形態には以下の構成を有する発明が主に含まれている。
【０２３３】
本発明の一局面に係る逆量子化回路は、画像データを符号化方式に基づいて変換することで求めた周波数ごとの係数値を量子化した量子化係数データに対し、演算処理を施すことで逆量子化を行い、前記係数値を復元する逆量子化回路であって、前記量子化係数データに対する前記演算処理を施すための第１の乗算値を生成する第１の乗算値生成部と、前記量子化係数データに対する前記演算処理を施すための第２の乗算値を生成する第２の乗算値生成部と、前記量子化係数データに対する前記演算処理を施すためのビットシフト量を示すシフト量データを生成するシフト量生成部と、前記第１の乗算値生成部によって生成された前記第１の乗算値及び前記第２の乗算値生成部によって生成された前記第２の乗算値を前記量子化係数データに乗算する乗算処理部と、前記シフト量生成部によって生成された前記シフト量データに応じて、前記乗算処理部から出力されたデータに対してビットシフト演算を行うシフト処理部とを備え、前記乗算処理部及び前記シフト処理部のうちの少なくとも１つは、前記演算処理を行うか否かを前記符号化方式に応じて決定し、及び／又は、前記第１の乗算値生成部、前記第２の乗算値生成部及び前記シフト量生成部のうちの少なくとも１つは、生成する値又は値の生成方法を前記符号化方式に応じて決定する。
【０２３４】
この構成によれば、第１の乗算値生成部によって、量子化係数データに対する演算処理を施すための第１の乗算値が生成され、第２の乗算値生成部によって、量子化係数データに対する演算処理を施すための第２の乗算値が生成され、シフト量生成部によって、量子化係数データに対する演算処理を施すためのビットシフト量を示すシフト量データが生成される。そして、乗算処理部によって、第１の乗算値及び第２の乗算値が量子化係数データに乗算され、シフト処理部によって、シフト量データに応じて、乗算処理部から出力されたデータに対してビットシフト演算が行われる。乗算処理部及びシフト処理部のうちの少なくとも１つにおいて、演算処理を行うか否かが符号化方式に応じて決定される。また、第１の乗算値生成部、第２の乗算値生成部及びシフト量生成部のうちの少なくとも１つにおいて、生成する値又は値の生成方法が符号化方式に応じて決定される。
【０２３５】
したがって、演算処理を行うか否か、及び生成する値又は値の生成方法が符号化方式に応じて決定されるので、単一の回路で各種の符号化方式に対応した逆量子化を行うことができ、回路規模の削減を図れるとともに、新たな符号化方式が提案された場合にも迅速に対応することができる。また、復号化処理を行うためのＬＳＩなどの再設計が不要となるなど、汎用性の高い逆量子化回路を提供することができる。
【０２３６】
また、上記の逆量子化回路において、前記量子化係数データに対する前記演算処理を施すための加算値を生成する加算値生成部と、前記加算値生成部によって生成された前記加算値を前記乗算処理部から出力されたデータに加算する加算処理部とをさらに備え、前記シフト処理部は、前記シフト量生成部によって生成された前記シフト量データに応じて、前記加算処理部から出力されたデータに対してビットシフト演算を行い、前記乗算処理部、前記加算処理部及び前記シフト処理部のうちの少なくとも１つは、前記演算処理を行うか否かを符号化方式に応じて決定し、及び／又は、前記第１の乗算値生成部、前記第２の乗算値生成部、前記加算値生成部及び前記シフト量生成部のうちの少なくとも１つは、生成する値又は値の生成方法を符号化方式に応じて決定することが好ましい。
【０２３７】
この構成によれば、加算値生成部によって、量子化係数データに対する演算処理を施すための加算値が生成され、加算処理部によって、生成された加算値が乗算処理部から出力されたデータに加算される。また、シフト処理部によって、シフト量生成部により生成されたシフト量データに応じて、加算処理部から出力されたデータに対してビットシフト演算が行われる。乗算処理部、加算処理部及びシフト処理部のうちの少なくとも１つにおいて、演算処理を行うか否かが符号化方式に応じて決定される。また、第１の乗算値生成部、第２の乗算値生成部、加算値生成部及びシフト量生成部のうちの少なくとも１つにおいて、生成する値又は値の生成方法が符号化方式に応じて決定される。
【０２３８】
したがって、乗算処理部から出力されたデータに加算値を加算する演算処理を施すことができ、単一の回路で各種の符号化方式に対応した逆量子化をさらに行うことができる。
【０２３９】
また、上記の逆量子化回路において、前記第１の乗算値生成部は、量子化幅を示す量子化スケール値を含む前記第１の乗算値を生成し、前記第２の乗算値生成部は、周波数ごとの量子化幅を示す量子化マトリックス値を含む前記第２の乗算値を生成することが好ましい。
【０２４０】
この構成によれば、第１の乗算値生成部によって、量子化幅を示す量子化スケール値を含む第１の乗算値が生成され、第２の乗算値生成部によって、周波数ごとの量子化幅を示す量子化マトリックス値を含む第２の乗算値が生成される。したがって、量子化幅を示す量子化スケール値を乗算する演算処理を行うことができるとともに、周波数ごとの量子化幅を示す量子化マトリックス値を乗算する演算処理を行うことができる。
【０２４１】
また、上記の逆量子化回路において、前記第１の乗算値生成部は、前記量子化スケール値を生成するスケール値生成部と、前記量子化スケール値に対して演算処理を施すとともに、前記量子化スケール値及び前記演算処理により得られた値のいずれかを前記第１の乗算値として出力するスケール処理部とを含み、前記第２の乗算値生成部は、周波数ごとの前記量子化マトリックス値を生成し、生成した前記量子化マトリックス値を前記第２の乗算値として出力するマトリックス値生成部を含むことが好ましい。
【０２４２】
この構成によれば、ケール値生成部によって、量子化スケール値が生成され、スケール処理部によって、量子化スケール値に対して演算処理が施されるとともに、量子化スケール値及び演算処理により得られた値のいずれかが第１の乗算値として出力される。また、マトリックス値生成部によって、周波数ごとの量子化マトリックス値が生成され、生成された量子化マトリックス値が第２の乗算値として出力される。
【０２４３】
したがって、量子化スケール値を生成し、生成した量子化スケール値に対して演算処理を施すことができ、量子化スケール値及び演算処理により得られた値のいずれかを第１の乗算値として出力することができる。また、周波数ごとの量子化マトリックス値を生成し、生成した量子化マトリックス値を第２の乗算値として出力することができる。
【０２４４】
また、上記の逆量子化回路において、前記スケール処理部は、前記量子化スケール値、前記量子化スケール値を演算処理することにより得られた値及び所定の定数値のいずれかを前記第１の乗算値として出力し、前記マトリックス値生成部は、周波数ごとの前記量子化マトリックス値及び所定の定数値のいずれかを前記第２の乗算値として出力することが好ましい。
【０２４５】
この構成によれば、量子化スケール値、量子化スケール値を演算処理することにより得られた値及び所定の定数値のいずれかが第１の乗算値として出力され、周波数ごとの量子化マトリックス値及び所定の定数値のいずれかが第２の乗算値として出力される。
【０２４６】
したがって、量子化スケール値、量子化スケール値を演算処理することにより得られた値及び所定の定数値のいずれかを乗算する演算処理を施すことができるとともに、量子化マトリックス値及び所定の定数値のいずれかを乗算する演算処理を施すことができ、単一の回路で各種の符号化方式に対応した逆量子化をさらに行うことができる。
【０２４７】
また、上記の逆量子化回路において、前記加算値生成部は、前記スケール値生成部によって生成された前記量子化スケール値と、前記マトリックス値生成部によって生成された前記量子化マトリックス値とを乗算する乗算器と、前記量子化スケール値、前記量子化マトリックス値、及び前記量子化スケール値と前記量子化マトリックス値とを乗算することにより得られた値のうちのいずれかの値を選択し、選択した値を前記加算値として前記加算処理部に供給する選択部とを含むことが好ましい。
【０２４８】
この構成によれば、乗算器によって、スケール値生成部により生成された量子化スケール値と、マトリックス値生成部により生成された量子化マトリックス値とが乗算される。そして、選択部によって、量子化スケール値、量子化マトリックス値、及び量子化スケール値と量子化マトリックス値とを乗算することにより得られた値のうちのいずれかの値が選択され、選択された値が加算値として加算処理部に供給される。
【０２４９】
したがって、量子化スケール値、量子化マトリックス値、及び量子化スケール値と量子化マトリックス値とを乗算することにより得られた値のうちのいずれかの値を加算する演算処理を施すことができ、単一の回路で各種の符号化方式に対応した逆量子化をさらに行うことができる。
【０２５０】
また、上記の逆量子化回路において、前記選択部は、前記量子化スケール値、前記量子化マトリックス値、前記量子化スケール値と前記量子化マトリックス値とを乗算することにより得られた値、及び所定の定数値のうちのいずれかの値を選択し、選択した値を前記加算値として前記加算処理部に供給することが好ましい。
【０２５１】
この構成によれば、量子化スケール値、量子化マトリックス値、量子化スケール値と量子化マトリックス値とを乗算することにより得られた値、及び所定の定数値のうちのいずれかの値が選択され、選択された値が加算値として加算処理部に供給される。
【０２５２】
したがって、量子化マトリックス値、量子化スケール値と量子化マトリックス値とを乗算することにより得られた値、及び所定の定数値のうちのいずれかの値を加算する演算処理を施すことができ、単一の回路で各種の符号化方式に対応した逆量子化をさらに行うことができる。
【０２５３】
また、上記の逆量子化回路において、前記スケール値生成部は、供給されたデータを量子化スケール値に変換する１種類又は複数種類のスケール変換部を含むことが好ましい。
【０２５４】
この構成によれば、１種類又は複数種類のスケール変換部によって、供給されたデータが量子化スケール値に変換されるので、符号化方式に応じてスケール変換部の変換内容を変えることができる。
【０２５５】
また、上記の逆量子化回路において、前記スケール値生成部は、供給されたデータを量子化スケール値に変換する１種類又は複数種類の第１のスケール変換部と、前記スケール変換部によって変換された量子化スケール値をさらに変換する第２のスケール変換部と、前記第１のスケール変換部によって変換された量子化スケール値と前記第２のスケール変換部によってさらに変換された量子化スケール値とのいずれかを選択し、選択した量子化スケール値を前記スケール処理部へ出力する選択部とを含むことが好ましい。
【０２５６】
この構成によれば、１種類又は複数種類の第１のスケール変換部によって、供給されたデータが量子化スケール値に変換され、第２のスケール変換部によって、第１のスケール変換部により変換された量子化スケール値がさらに変換される。そして、選択部によって、第１のスケール変換部により変換された量子化スケール値と、第２のスケール変換部によりさらに変換された量子化スケール値とのいずれかが選択され、選択された量子化スケール値がスケール処理部へ出力される。
【０２５７】
したがって、第１のスケール変換部により変換された量子化スケール値と、第２のスケール変換部によりさらに変換された量子化スケール値とのいずれかを用いた演算処理を施すことができ、単一の回路で各種の符号化方式に対応した逆量子化をさらに行うことができる。
【０２５８】
また、上記の逆量子化回路において、前記スケール処理部は、前記スケール値生成部によって生成された前記量子化スケール値に対して演算処理を施す演算部と、前記スケール値生成部によって生成された前記量子化スケール値と、前記演算部により演算処理が施された量子化スケール値と、所定の定数値とのうちのいずれかの値を選択し、選択した値を前記第１の乗算値として出力する選択部とを含むことが好ましい。
【０２５９】
この構成によれば、演算部によって、スケール値生成部により生成された量子化スケール値に対して演算処理が施され、選択部によって、スケール値生成部により生成された量子化スケール値と、演算部により演算処理が施された量子化スケール値と、所定の定数値とのうちのいずれかの値が選択され、選択された値が第１の乗算値として出力される。
【０２６０】
したがって、量子化スケール値と、演算処理が施された量子化スケール値と、所定の定数値とのうちのいずれかの値を用いた演算処理を施すことができ、単一の回路で各種の符号化方式に対応した逆量子化をさらに行うことができる。
【０２６１】
また、上記の逆量子化回路において、前記スケール処理部の前記選択部は、前記量子化係数データの種類に応じて、前記スケール値生成部によって生成された前記量子化スケール値と、前記演算部により演算処理が施された量子化スケール値と、所定の定数値とのうちのいずれかの値を選択することが好ましい。
【０２６２】
この構成によれば、量子化係数データの種類に応じて、スケール値生成部により生成された量子化スケール値と、演算部により演算処理が施された量子化スケール値と、所定の定数値とのうちのいずれかの値が選択される。量子化係数データの種類に応じて、選択する値を変えることができ、各種の符号化方式に対応した逆量子化を行うことができる。
【０２６３】
また、上記の逆量子化回路において、前記シフト量生成部は、前記スケール値生成部の前記スケール変換部から出力された前記量子化スケール値を前記シフト量データに変換するシフト量変換部を含むことが好ましい。
【０２６４】
この構成によれば、シフト量変換部によって、スケール値生成部のスケール変換部から出力された量子化スケール値がシフト量データに変換されるので、量子化スケール値からシフト量データを生成することができる。
【０２６５】
また、上記の逆量子化回路において、前記シフト量生成部は、前記シフト量変換部によって変換された前記シフト量データと、所定の定数値とのいずれかを前記シフト量データとして選択し、選択した前記シフト量データを前記シフト処理部に供給する選択部をさらに含むことが好ましい。
【０２６６】
この構成によれば、シフト量変換部により変換されたシフト量データと、所定の定数値とのいずれかがシフト量データとして選択され、選択されたシフト量データがシフト処理部に供給される。したがって、シフト量変換部により変換されたシフト量データと、所定の定数値とのいずれかを用いてビットシフト演算を行うことができ、単一の回路で各種の符号化方式に対応した逆量子化をさらに行うことができる。
【０２６７】
また、上記の逆量子化回路において、前記シフト量生成部の選択部は、量子化係数データの種類に応じて、前記シフト量変換部によって変換された前記シフト量データと、所定の定数値とのいずれかを選択することが好ましい。
【０２６８】
この構成によれば、量子化係数データの種類に応じて、シフト量変換部により変換されたシフト量データと、所定の定数値とのいずれかが選択されるので、量子化係数データの種類に応じて、ビットシフト演算に用いる値を変えることができ、各種の符号化方式に対応した逆量子化を行うことができる。
【０２６９】
また、上記の逆量子化回路において、前記シフト量生成部は、前記シフト量変換部によって変換された前記シフト量データに対してシフト加算値を加算した値をシフト量データとして前記シフト処理部に供給する加算器をさらに含むことが好ましい。
【０２７０】
この構成によれば、加算器によって、シフト量変換部により変換されたシフト量データに対してシフト加算値を加算した値がシフト量データとしてシフト処理部に供給される。したがって、シフト量データに対してシフト加算値を加算する演算処理を施すことができ、単一の回路で各種の符号化方式に対応した逆量子化をさらに行うことができる。
【０２７１】
また、上記の逆量子化回路において、前記加算器は、量子化係数データの種類に応じて選択したシフト加算値を、前記シフト量変換部によって変換された前記シフト量データに加算することが好ましい。
【０２７２】
この構成によれば、量子化係数データの種類に応じて選択したシフト加算値が、シフト量変換部により変換されたシフト量データに加算されるので、量子化係数データの種類に応じて、シフト量データに加算するシフト加算値を変えることができ、各種の符号化方式に対応した逆量子化を行うことができる。
【０２７３】
また、上記の逆量子化回路において、前記シフト処理部は、前記加算処理部から出力されたデータに対して、前記シフト量生成部によって生成された前記シフト量データに応じたビット数だけビットシフトするビットシフト演算を行うことが好ましい。
【０２７４】
この構成によれば、加算処理部から出力されたデータに対して、シフト量生成部により生成されたシフト量データに応じたビット数だけビットシフトするビットシフト演算が行われる。したがって、加算処理部から出力されたデータに対して、シフト量データに応じたビット数だけビットシフトするビットシフト演算を行うことができる。
【０２７５】
また、上記の逆量子化回路において、前記乗算処理部は、前記量子化係数データに前記第１の乗算値を乗算した値、前記量子化係数データに前記第２の乗算値を乗算した値、及び前記量子化係数データに前記第１の乗算値と前記第２の乗算値とを乗算した値のうちのいずれかの値を選択し、選択した値を出力データとして前記加算処理部に供給することが好ましい。
【０２７６】
この構成によれば、量子化係数データに第１の乗算値を乗算した値、量子化係数データに第２の乗算値を乗算した値、及び量子化係数データに第１の乗算値と第２の乗算値とを乗算した値のうちのいずれかの値が選択され、選択された値が出力データとして加算処理部に供給される。
【０２７７】
したがって、量子化係数データに第１の乗算値を乗算した値、量子化係数データに第２の乗算値を乗算した値、及び量子化係数データに第１の乗算値と第２の乗算値とを乗算した値のうちのいずれかの値を加算処理部に供給することができ、単一の回路で各種の符号化方式に対応した逆量子化をさらに行うことができる。
【０２７８】
また、上記の逆量子化回路において、前記乗算処理部における選択機能は、量子化係数データの種類に応じて、前記量子化係数データに前記第１の乗算値を乗算した値、前記量子化係数データに前記第２の乗算値を乗算した値、及び前記量子化係数データに前記第１の乗算値と前記第２の乗算値とを乗算した値のうちのいずれかの値を選択することが好ましい。
【０２７９】
この構成によれば、量子化係数データの種類に応じて、量子化係数データに第１の乗算値を乗算した値、量子化係数データに記第２の乗算値を乗算した値、及び量子化係数データに第１の乗算値と第２の乗算値とを乗算した値のうちのいずれかの値が選択される。したがって、量子化係数データの種類に応じて、乗算処理部から出力される値を変えることができ、各種の符号化方式に対応した逆量子化を行うことができる。
【０２８０】
また、上記の逆量子化回路において、前記加算処理部は、前記乗算処理部から供給されたデータの値、及び前記乗算処理部から供給されたデータに前記加算値生成部によって生成された前記加算値を加算することにより得られた値のうちのいずれかの値を選択し、選択した値を出力データとして前記シフト処理部に供給することが好ましい。
【０２８１】
この構成によれば、乗算処理部から供給されたデータの値、及び乗算処理部から供給されたデータに加算値生成部により生成された加算値を加算することにより得られた値のうちのいずれかの値が選択され、選択された値が出力データとしてシフト処理部に供給される。
【０２８２】
したがって、乗算処理部から供給されたデータの値、及び乗算処理部から供給されたデータに加算値生成部により生成された加算値を加算することにより得られた値のうちのいずれかの値をシフト処理部に供給することができ、単一の回路で各種の符号化方式に対応した逆量子化をさらに行うことができる。
【０２８３】
また、上記の逆量子化回路において、前記シフト処理部は、前記加算処理部から供給されたデータの値、及び前記ビットシフト演算により得られた値のうちのいずれかの値を選択し、選択した値を出力データとして出力することが好ましい。
【０２８４】
この構成によれば、シフト処理部によって、加算処理部から供給されたデータの値、及びビットシフト演算により得られた値のうちのいずれかの値が選択され、選択された値が出力データとして出力される。
【０２８５】
したがって、加算処理部から供給されたデータの値、及びビットシフト演算により得られた値のうちのいずれかの値をシフト処理部から出力することができ、単一の回路で各種の符号化方式に対応した逆量子化をさらに行うことができる。
【０２８６】
また、上記の逆量子化回路において、前記シフト量生成部によって生成された前記シフト量データに応じた値を前記加算処理部からの出力データに加算することで丸め処理を行い、前記丸め処理を行った処理済データと前記丸め処理を行わない非処理データとを選択的に切替えて前記シフト処理部に出力する丸め処理部をさらに備えることが好ましい。
【０２８７】
この構成によれば、丸め処理部によって、シフト量生成部により生成されたシフト量データに応じた値を加算処理部からの出力データに加算することで丸め処理が行われ、丸め処理を行った処理済データと丸め処理を行わない非処理データとが選択的に切替えてシフト処理部に出力される。したがって、丸め処理を行う符号化方式に対応した逆量子化を行うことができ、単一の回路で各種の符号化方式に対応した逆量子化をさらに行うことができる。
【０２８８】
また、上記の逆量子化回路において、前記丸め処理部は、前記シフト処理部におけるビットシフト演算が右方向へのシフトの場合のみ、前記加算処理部からの出力データに対して、前記シフト量生成部によって生成された前記シフト量データに応じた値を加算することで前記丸め処理を行うことが好ましい。
【０２８９】
この構成によれば、シフト処理部におけるビットシフト演算が右方向へのシフトの場合のみ、シフト量生成部により生成されたシフト量データに応じた値を加算処理部からの出力データに加算することで丸め処理が行われる。したがって、ビットシフト演算が右方向へのシフトの場合のみ丸め処理が行われるので、ビットを右方向へシフトする符号化方式に対応した逆量子化を行うことができ、単一の回路で各種の符号化方式に対応した逆量子化をさらに行うことができる。
【０２９０】
また、上記の逆量子化回路において、前記シフト処理部から出力されたデータに対して、離散コサイン変換ミスマッチ制御処理を行う演算処理機能と、前記シフト処理部から出力されたデータに対して、クリッピングする範囲が設定可能な飽和処理を行う演算処理機能とを含み、前記離散コサイン変換ミスマッチ制御処理及び前記飽和処理において、それぞれ処理済データと非処理データとを選択的に切替えて出力する後段処理部をさらに備えることが好ましい。
【０２９１】
この構成によれば、シフト処理部から出力されたデータに対して、離散コサイン変換ミスマッチ制御処理を行う演算処理機能と、シフト処理部から出力されたデータに対して、クリッピングする範囲が設定可能な飽和処理を行う演算処理機能とにおいて、それぞれ処理済データと非処理データとが選択的に切替えて出力される。
【０２９２】
したがって、離散コサイン変換ミスマッチ制御処理が行われた処理済データと、離散コサイン変換ミスマッチ制御処理が行われていない非処理データとが選択的に出力され、飽和処理が行われた処理済データと、飽和処理が行われていない非処理データとが選択的に出力されるので、離散コサイン変換ミスマッチ制御処理を行う符号化方式及び飽和処理を行う符号化方式に対応した逆量子化を行うことができ、単一の回路で各種の符号化方式に対応した逆量子化をさらに行うことができる。
【０２９３】
また、上記の逆量子化回路において、前記後段処理部は、前記離散コサイン変換ミスマッチ制御処理を行う条件が設定できることが好ましい。この構成によれば、符号化方式に応じて、離散コサイン変換ミスマッチ制御処理を行う条件を設定することができる。
【０２９４】
また、上記の逆量子化回路において、前記後段処理部は、前記量子化係数データの種類に応じて前記離散コサイン変換ミスマッチ制御処理を行うか否かを制御できることが好ましい。この構成によれば、量子化係数データの種類に応じて前記離散コサイン変換ミスマッチ制御処理を行うか否かを制御することができる。
【０２９５】
また、上記の逆量子化回路において、前記後段処理部は、前記離散コサイン変換ミスマッチ制御処理の演算内容を制御できることが好ましい。この構成によれば、離散コサイン変換ミスマッチ制御処理の演算内容を制御することができる。
【０２９６】
また、上記の逆量子化回路において、前記後段処理部は、前記飽和処理の前段及び後段のいずれかにおいて前記離散コサイン変換ミスマッチ制御処理を行うことが好ましい。この構成によれば、飽和処理の前段及び後段のいずれかにおいて離散コサイン変換ミスマッチ制御処理が行われるので、飽和処理の前に離散コサイン変換ミスマッチ制御処理を行う符号化方式、及び飽和処理の後に離散コサイン変換ミスマッチ制御処理を行う符号化方式に対応した逆量子化を行うことができる。
【０２９７】
また、上記の逆量子化回路において、前記量子化係数データを整数倍する演算処理機能と、デッドゾーンに対応した加算値を前記量子化係数データに加算する演算処理機能とを含み、前記量子化係数データを整数倍する演算処理及び前記量子化係数データに前記加算値を加算する演算処理において、それぞれ演算処理済データと非演算処理データとを選択的に切替えて出力する前段処理部をさらに備えることが好ましい。
【０２９８】
この構成によれば、量子化係数データを整数倍する演算処理機能と、デッドゾーンに対応した加算値を量子化係数データに加算する演算処理機能とにおいて、それぞれ演算処理済データと非演算処理データとが選択的に切替えて出力される。
【０２９９】
したがって、量子化係数データを整数倍した演算処理済データと、量子化係数データを整数倍していない非演算処理データとが選択的に出力され、デッドゾーンに対応した加算値を量子化係数データに加算した演算処理済データと、デッドゾーンに対応した加算値を量子化係数データに加算していない非演算処理データとが選択的に出力されるので、量子化係数データを整数倍する符号化方式及びデッドゾーンに対応した加算値を量子化係数データに加算する符号化方式に対応した逆量子化を行うことができ、単一の回路で各種の符号化方式に対応した逆量子化をさらに行うことができる。
【０３００】
本発明の他の局面に係る逆量子化方法は、画像データを符号化方式に基づいて変換することで求めた周波数ごとの係数値を量子化した量子化係数データに対し、演算処理を施すことで逆量子化を行い、前記係数値を復元する逆量子化方法であって、前記量子化係数データに対する前記演算処理を施すための第１の乗算値を生成する第１の乗算値生成ステップと、前記量子化係数データに対する前記演算処理を施すための第２の乗算値を生成する第２の乗算値生成ステップと、前記量子化係数データに対する前記演算処理を施すためのビットシフト量を示すシフト量データを生成するシフト量生成ステップと、前記第１の乗算値生成ステップにおいて生成された前記第１の乗算値及び前記第２の乗算値生成ステップにおいて生成された前記第２の乗算値を前記量子化係数データに乗算する乗算処理ステップと、前記シフト量生成ステップにおいて生成された前記シフト量データに応じて、前記乗算処理ステップにおいて出力されたデータに対してビットシフト演算を行うシフト処理ステップとを含み、前記乗算処理ステップ及び前記シフト処理ステップのうちの少なくとも１つは、前記演算処理を行うか否かを前記符号化方式に応じて決定し、及び／又は、前記第１の乗算値生成ステップ、前記第２の乗算値生成ステップ及び前記シフト量生成ステップのうちの少なくとも１つは、前記生成する値又は値の生成方法を前記符号化方式に応じて決定する。
【０３０１】
この構成によれば、第１の乗算値生成ステップにおいて、量子化係数データに対する演算処理を施すための第１の乗算値が生成され、第２の乗算値生成ステップにおいて、量子化係数データに対する演算処理を施すための第２の乗算値が生成され、シフト量生成ステップにおいて、量子化係数データに対する演算処理を施すためのビットシフト量を示すシフト量データが生成される。そして、乗算処理ステップにおいて、第１の乗算値及び第２の乗算値が量子化係数データに乗算され、シフト処理ステップにおいて、シフト量データに応じて、乗算処理部から出力されたデータに対してビットシフト演算が行われる。乗算処理ステップ及びシフト処理ステップのうちの少なくとも１つにおいて、演算処理を行うか否かが符号化方式に応じて決定される。また、第１の乗算値生成ステップ、第２の乗算値生成ステップ及びシフト量生成ステップのうちの少なくとも１つにおいて、生成する値又は値の生成方法が符号化方式に応じて決定される。
【０３０２】
したがって、演算処理を行うか否か、及び生成する値又は値の生成方法が符号化方式に応じて決定されるので、単一の回路で各種の符号化方式に対応した逆量子化を行うことができ、回路規模の削減を図れるとともに、新たな符号化方式が提案された場合にも迅速に対応することができる。また、復号化処理を行うためのＬＳＩなどの再設計が不要となるなど、汎用性の高い逆量子化方法を提供することができる。
【０３０３】
本発明の他の局面に係る画像再生装置は、量子化係数データを取得する量子化係数データ取得部と、前記量子化係数データ取得部によって取得された量子化係数データを逆量子化することで係数値を復元する上記の逆量子化回路と、前記逆量子化回路によって復元された係数値を画像データに変換する変換部と、前記変換部によって変換された画像データを出力する出力部とを備える。
【０３０４】
この構成によれば、量子化係数データ取得部によって、量子化係数データが取得され、逆量子化回路によって、量子化係数データ取得部により取得された量子化係数データを逆量子化することで係数値が復元される。そして、変換部によって、逆量子化回路により復元された係数値が画像データに変換され、出力部によって、変換部により変換された画像データが出力される。
【０３０５】
したがって、例えば、パーソナルコンピュータ、セットトップボックス、携帯情報端末装置及び携帯電話機などの画像再生装置に上記の逆量子化回路を適用することができる。
【産業上の利用可能性】
【０３０６】
本発明に係る逆量子化回路及び逆量子化方法は、例えば、画像の符号化方式に基づき符号化されたデータである符号化データに対して復号化処理を施す機能を備えた集積回路や、このような集積回路を備えた、パーソナルコンピュータ、セットトップボックス、携帯情報端末装置又は携帯電話機などの情報機器、及びその他の装置に利用することが可能である。
【図面の簡単な説明】
【０３０７】
【図１】本発明の実施の形態１における逆量子化回路の構成を示すブロック図である。
【図２】ＪＰＥＧ方式、ＭＰＥＧ−１方式及びＭＰＥＧ−２方式における逆量子化式を示す図である。
【図３】Ｈ．２６３方式及びＭＰＥＧ−４における逆量子化式を示す図である。
【図４】Ｈ．２６４方式における逆量子化式を示す図である。
【図５】本発明の実施の形態１の逆量子化回路において、各逆量子化式に対応した演算処理の一覧を示す図である。
【図６】図１に示す第１の乗算値生成部、第２の乗算値生成部、加算値生成部及びシフト量生成部の詳細な構成を示すブロック図である。
【図７】本発明の実施の形態２における逆量子化回路の構成を示すブロック図である。
【図８】本発明の実施の形態２の逆量子化回路において、各逆量子化式に対応した演算処理の一覧を示す図である。
【図９】本発明の実施の形態３に係る画像再生装置の構成を示すブロック図である。
【手続補正３】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正の内容】
【図１】
2008120433.tif 000012
【図２】
2008120433.tif 000013
【図３】
2008120433.tif 000014
【図４】
2008120433.tif 000015
【図５】
2008120433.tif 000016
【図６】
2008120433.tif 000017
【図７】
2008120433.tif 000018
【図８】
2008120433.tif 000019
【図９】
2008120433.tif 000020
【国際調査報告】
2008120433.tif 000021
2008120433.tif 000022
2008120433.tif 000023
2008120433.tif 000024