(57)【要約】【課題】高品質な圧縮符号化を行うエンコーダを安価に実現する。【解決手段】デコーダ用の整数近似直交変換マトリクスＭＴの逆マトリクスに所定のスケーリングをしたスケーリング逆マトリクスＭＴｉｎｖは、スケーリング逆マトリクスＭＴｉｎｖの整数部分である整数近似主マトリクスＭと、スケーリング逆マトリクスＭＴｉｎｖの小数部分である小数部分補正マトリクスΔＭとに分離される。小数部分補正マトリクスΔＭを整数Ｎ倍して小数部分を丸め処理したマトリクスを補正整数マトリクスΔＭ１６とする。直交変換部において、主演算部４が整数近似主マトリクスＭを用いてデータを直交変換処理する。補正演算部５が補正整数マトリクスΔＭ１６を用いてデータを直交変換処理する。加算部６が主演算部４の処理結果と、補正演算部５の処理結果を整数Ｎで除算した結果とを加算する。【選択図】図２
2015109585.tif 000002
【特許請求の範囲】
【請求項１】
整数近似直交変換を用いて画像又は音声のデータを直交変換する直交変換部と、
前記直交変換部から出力された算出係数を量子化する量子化部と、
前記量子化部により量子化された数値をエントロピー符号化により圧縮符号化する符号化部とを備え、
デコーダ用の整数近似直交変換マトリクスの逆マトリクスに所定のスケーリングをしたスケーリング逆マトリクスは、前記スケーリング逆マトリクスの整数部分である整数近似主マトリクスと、前記スケーリング逆マトリクスの小数部分である小数部分補正マトリクスとに分離され、
前記小数部分補正マトリクスを整数Ｎ倍して小数部分を丸め処理したマトリクスを補正整数マトリクスとし、
前記直交変換部は、
前記整数近似主マトリクスを用いて前記データを直交変換処理する主演算部と、
前記補正整数マトリクスを用いて前記データを直交変換処理する補正演算部と、
前記主演算部の処理結果と、前記補正演算部の処理結果を整数Ｎで除算した結果とを加算する第１の加算部とを有することを特徴とする符号化装置。
【請求項２】
整数近似直交変換を用いて画像又は音声のデータを直交変換する直交変換部と、
前記直交変換部から出力された算出係数を量子化する量子化部と、
前記量子化部により量子化された数値をエントロピー符号化により圧縮符号化する符号化部とを備え、
デコーダ用の整数近似直交変換マトリクスの逆マトリクスに所定のスケーリングをしたスケーリング逆マトリクスは、前記スケーリング逆マトリクスの整数部分である整数近似主マトリクスと、前記スケーリング逆マトリクスの小数部分である小数部分補正マトリクスとに分離され、
前記小数部分補正マトリクスを整数Ｎ倍して小数部分を丸め処理したマトリクスを補正整数マトリクスとし、
前記データはｎビット精度で構成され、前記データの上位ｍビットを有効ビットとし、下位（ｎ−ｍ）ビットを０として構成した成分を省略データとし、
前記直交変換部は、
前記整数近似主マトリクスを用いて前記データを直交変換処理する主演算部と、
前記補正整数マトリクスを用いて前記省略データを直交変換処理する補正演算部と、
前記主演算部の処理結果と、前記補正演算部の処理結果を整数Ｎで除算した結果とを加算する第１の加算部とを有することを特徴とする符号化装置。
【請求項３】
前記補正整数マトリクスの各要素を２進表現で表わし、このマトリクスを２進表現の正負符号付きのビット位置（桁位置）毎のｋ個のマトリクスに分解し、これら分解されたマトリクスの要素値を１、０、−１で表わし、第ｉビット目のマトリクスを第ｉのビットプレーンマトリクスとし（ｉ＝１，・・・，ｋ）、
前記補正演算部は、
前記第１〜第ｋのビットプレーンマトリクスをそれぞれ用いて直交変換処理を行う第１〜第ｋの分割補正演算部と、
前記第１〜第ｋの分割補正演算部の演算結果について、前記第ｉの分割補正演算部による演算結果を２のｉ−１乗倍（ｉ＝１，・・・，ｋ）してそれらの和を算出する第２の加算部とを有することを特徴とする請求項１又は２に記載の符号化装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、整数近似された直交変換を用いて画像・音声信号を圧縮符号化する方式において、エンコーダとデコーダの間の変換誤差を補正し、高品質な圧縮符号化を行うエンコーダを安価に実現することができるデジタル符号化装置に関する。
【背景技術】
【０００２】
画像や音声で多用されるＤＣＴ（Discrete Cosine Transform）では、入力画像又は入力画像から予測画像を差し引いた予測残差画像の２次元正方ブロック（例えば８ｘ８＝６４画素）の８次ＤＣＴ変換を繰返して２次元ＤＣＴ演算を行う。この演算の８ｘ８ＤＣＴ変換係数を量子化し、エントロピー符号化してデータ圧縮する。
【０００３】
予測画像方式にはさまざまな方式があり、Ｉｎｔｒａ予測と呼ばれる方式では、画像内の符号化対象正方ブロックの周辺画素を参照して、予測画像を生成する。Ｉｎｔｅｒ予測と呼ばれる方式では、動き補償予測と呼ばれる方式が多用され、周辺画像を参照し、動き探索をして、符号化対象画像ブロックと類似のブロック画像を見つけて、その類似画像ブロックを動き補償予測画像とする（例えば、特許文献１参照）。
【０００４】
エンコーダでは、これらＩｎｔｒａ予測やＩｎｔｅｒ予測の予測画像を入力画像から差し引いた予測残差画像を２次元ＤＣＴ変換し、各変換係数を量子化し、量子化数値群をエントロピー符号化（Ｈｕｆｆｍａｎ符号化、Ｇｏｌｏｍｂ符号化、算術符号化などの可変長符号化）をしてビットｓｔｒｅａｍ（ビット列）出力する。
【０００５】
デコーダでは受信したビットｓｔｒｅａｍをエントロピー復号し、量子化復号して、ＩＤＣＴ（Inverse DCT）をして予測残差画像を算出する。そして、エンコーダと同じ処理で予測画像を算出し、これら予測画像と予測残差画像を加算して、復号出力画像を算出する。
【０００６】
まもなく国際標準化される予定のＨＥＶＣ（High Efficiency Video Coding）では従来方式（ＭＰＥＧ−２ビデオ圧縮方式、Ｈ．２６４ビデオ圧縮方式など）よりも圧縮率を向上した方式となっている。このＨＥＶＣでは従来から圧縮符号化で多用されているＤＣＴやＤＳＴ（Discrete Sine Transform）の変換マトリクスを、実装負担軽減や互換性向上のため、整数近似マトリクスで定義している。この技術標準はデコーダ処理を規格化したもので、エンコーダはデコーダ処理の逆処理を行う。
【０００７】
数学定義ではＤＣＴやＤＳＴは直交変換である。直交変換の場合、ＤＣＴ変換マトリクスの逆マトリクスはＤＣＴ変換マトリクスの転置マトリクス（マトリクスの行と列を入れ替えたマトリクス）となる。従って、１つのマトリクスを定義すれば、エンコーダとデコーダの双方の変換マトリクスを定義したことになる。
【０００８】
数学定義のＤＣＴ変換マトリクスは小数部だけの数値（１未満の数値）のため、実際には整数値演算にするため、各マトリクス係数を定数倍した係数を用いる場合が多い（スケーリング（Ｓｃａｌｉｎｇ）と呼ばれる）。ＤＣＴ変換マトリクスやＩＤＣＴ変換マトリクスは無理数や超越数の無限の桁数を持つ数値を含むため、現実的な実装のために、例えばＨＥＶＣ符号化技術規格では数式定義のマトリクスの各係数値を定数倍スケーリングして８ビット整数近似のマトリクスを定義し、デコーダではその整数近似マトリクスを用いて復号処理する。
【０００９】
エンコーダ（ＤＣＴ）とデコーダ（ＩＤＣＴ）のどちらか一方の直交変換マトリクスが整数近似マトリクスとなっている場合、他方の変換マトリクスは整数近似マトリクスのままでは変換誤差を生じる。ＨＥＶＣ技術規格では、誤差が少なくなるような工夫もあり、７ビット画素程度のデジタルビデオ画像では誤差が殆どない。しかし、８ビット画素以上のデジタルビデオでは誤差が発生する。そこで、定義された整数近似マトリクスの逆マトリクスを算出して用いることにより、エンコーダとデコーダの間のＤＣＴとＩＤＣＴの変換誤差を無くすことができる。
【００１０】
しかし、単純に逆マトリクスを算出して適用するには、エンコーダの変換マトリクスが桁数の多いマトリクス係数となり、実装には大きな負担となる。例として、デコーダ用の８ｘ８ＤＣＴの整数近似ＩＤＣＴマトリクスをＭとし、エンコーダ用にデコーダの逆マトリクスの転置（行と列の入替え）とスケーリング（２７．５倍）したマトリクスをＭＴｉｎｖとして以下の数式（１）（２）に示す。但し、ＭＴｉｎｖは小数点以下３桁までを示す。
【００１１】
【数１】
2015109585.tif 000003
【００１２】
【数２】
2015109585.tif 000004
【００１３】
ＭＴｉｎｖは、マトリクスＭの逆マトリクスを転置し（行列の入替え）、各係数に２の１５乗を掛けるスケーリングと整数化をしたものである。マトリクスＭ自体は８ｘ８ＤＣＴマトリクスの各係数に２７．５を乗ずるスケーリングと整数化をしたものである。
【００１４】
数学定義のＮｘＮの２次元ＤＣＴ変換は以下の数式（３）で示される。
Ｙｊｋ＝２／Ｎ・Ａｊｋ・Σｐ＝０〜Ｎ−１Σｑ＝０〜Ｎ−１｛Ｘｐｑ・ｃｏｓ（（２ｐ＋１）ｊπ／２Ｎ）・ｃｏｓ（（２ｑ＋１）ｋπ／２Ｎ）｝    数式（３）
ここで、ｊ＝０，ｋ＝０の場合にはＡｊｋ＝１／２、ｊ≠０，ｋ＝０の場合にはＡｊｋ＝１／√２、ｊ＝０，ｋ≠０の場合にはＡｊｋ＝１／√２、ｊ≠０，ｋ≠０の場合にはＡｊｋ＝１である。ｐ、ｑはそれぞれ被変換データＸの行（水平）と列（垂直）のＩｎｄｅｘである。ｊ、ｋはそれぞれ変換結果データＹの行（水平）と列（垂直）のＩｎｄｅｘである。
【００１５】
上記演算をマトリクス表現し、Ｙ＝Ｍｄｃｔ・Ｘ・ＭＴｄｃｔと表わす。ここで、ＭＴｄｃｔはＭｄｃｔの転置マトリクス（行と列を入替えたマトリクス）である。この時のＤＣＴ変換マトリクスＭｄｃｔとＭＴｄｃｔは小数点以下４桁表示で以下の数式（４）（５）で示される。
【００１６】
【数３】
2015109585.tif 000005
【００１７】
【数４】
2015109585.tif 000006
【００１８】
整数近似マトリクスＭは上記マトリクスを１２８√２倍のスケーリングと直交性改善補正の整数化丸めをしたものである。数式（１）のＭと数式（４）のＭｄｃｔの関係は以下のようになる。
Ｍ≒１２８√２・Ｍｄｃｔ
ここで、“・”はＭｄｃｔマトリクスの各係数値を１２８√２倍することを意味する。そして、“≒”としているのは、各係数値を１２８√２倍した結果を整数近似した値にしているためである。
【００１９】
同様に、数式（２）のＭＴｉｎｖと数式（５）のＭＴｄｃｔの関係は以下のようになる。
ＭＴｉｎｖ≒１２８√２・ＭＴｄｃｔ
【先行技術文献】
【特許文献】
【００２０】
【特許文献１】特開２０１２−１８６５４４号公報
【発明の概要】
【発明が解決しようとする課題】
【００２１】
デコーダ用マトリクスＭは８ビット係数であるのに対し、数式（２）に示されるように、エンコーダ用マトリクスＭＴｉｎｖは桁数の多い係数となる。例えば１０ビットデジタル画像を誤差が無い様に補正するには４ビット程度の精度拡張が必要であるため、エンコーダ用マトリクスＭＴｉｎｖは１２ビット以上の係数となる。
【００２２】
表１は、１０ビット画素入力に対するＨＥＶＣ符号化技術規格の８ｘ８ＤＣＴのマトリクスをエンコーダとデコーダに適用した場合の誤差例を示したものである。誤差の単位はＬＳＢ（Least Significant ビット）である。この例では、１〜２ＬＳＢの誤差が半分程度の画素に発生している。
【００２３】
【表１】
2015109585.tif 000007
【００２４】
このようなマトリクスのため、部分Ｂｕｔｔｅｒｆｌｙ演算は可能であるが、完全なＢｕｔｔｅｒｆｌｙ方式による演算量の低減が困難である。従って、デコーダでは８ビット乗算器で済むのに対し、エンコーダでは１２ビット以上の乗算器が多数必要となる。例えば、８ｘ８ＤＣＴ演算（８次２次元ＤＣＴ）では、１次元ＤＣＴ回路を共通に用いて２回繰返し演算を行なう順次演算で行う場合、部分Ｂｕｔｔｅｒｆｌｙ演算を用いても１２ビット乗算器が２４〜３２個程度必要となる。
【００２５】
ここで、“Ｂｕｔｔｅｒｆｌｙ演算”とは、多数のデジタル信号処理で多用される回路規模縮小のための技術的演算構成方法である。例えば、Ｙ１＝Ａ・Ｘ１＋Ｂ・Ｘ２＋Ａ・Ｘ３＋Ｂ・Ｘ４、Ｙ２＝Ａ・Ｘ１−Ｂ・Ｘ２＋Ａ・Ｘ３−Ｂ・Ｘ４のような演算をする場合、Ｕ＝（Ｘ１＋Ｘ３）・ＡとＶ＝（Ｘ２＋Ｘ４）・Ｂを演算すれば、Ｙ１＝Ｕ＋Ｖ、Ｙ２＝Ｕ−ＶとしてＹ１，Ｙ２を算出できる。このようにして、特に回路規模の大きい乗算回数を少なく（この例では４回から２回に減少）して演算を行う方法を意味する。ＦＦＴ（Fast Furrier Transform）の演算において、このような演算手法を図示するとＢｕｔｔｅｒｆｌｙ（蝶々）のような図形となったため、Ｂｕｔｔｅｒｆｌｙ演算と呼ばれる。
【００２６】
図８は、数式（１）による８ｘ８ＤＣＴ演算の部分Ｂｕｔｔｅｒｆｌｙ構成を示す図である。２次元ＤＣＴを１次元ずつ順次処理で行う。順次入力されるＸｊｋに対して、１次元目ＤＣＴ変換結果が順次Ｚｊｋとして出力される。２次元目ＤＣＴ演算は、入力にＺを行列転置したものを順次入力し、出力で８ｘ８ＤＣＴ出力結果がＺの箇所で算出される。この例では８ｘ８ＤＣＴの整数近似１次元目の演算を部分Ｂｕｔｔｅｒｆｌｙ構成にしている。乗算器が４ｘ８＝３２個で構成され、マトリクスをそのままの形で積和演算する場合に較べて乗算器の個数が半減される。
【００２７】
前段の加減算器は２つ入力のため、１個の加減算器で構成される。後段の加減算器は４つ入力のため、３個の加減算器で構成される。従って、乗算器が４ｘ８＝３２個、加減算器が１ｘ８＋３ｘ８＝３２個で構成される。なお、この構成は最適化したものではなく、最適化によって乗算器個数を２４個に低減可能である。
【００２８】
最終段の各１／１２８スケーリングは数式（１）と数式（４）の関係から１／１２８√２倍してスケーリングを元に戻す処理の一部である。２次元では１／１２８√２倍を２回行うが、演算の簡素化のため、１／１２８倍と１／１２８倍と１／２倍に分けてスケーリングを元に戻す。これらは除算ではなくシフト処理で行うことができる。
【００２９】
実時間演算処理のためには、一般的な半導体技術（ＬＳＩ回路技術）では少なくとも８画素並列処理をする必要がある。ＨＥＶＣ符号化技術規格では３２ｘ３２ＤＣＴまで定義されているため、上記と類似の部分Ｂｕｔｔｅｒｆｌｙ演算を用いた場合、乗算器個数は２５６個程度必要となる。
【００３０】
また、８ｘ８ＤＣＴ演算をそのまま積和演算で行うと、１画素当りの乗算回数は８ｘ２＝１６回、１画素当りの加算回数は７ｘ２＝１４回である。従って、８ｘ８ブロックの６４画素合計では、乗算回数は１０２４回、加算回数は８９６回である。一方、部分Ｂｕｔｔｅｒｆｌｙ演算方式の場合は、前記マトリクスの第１列と第８列、第２列と第７列、第３列と第６列、第４列と第５列の係数絶対値が等しいことを利用するため、８画素当りの乗算回数は４ｘ８ｘ２＝６４回、８画素当りの加算回数は（８＋３ｘ８）ｘ２＝６４回である。従って、８ｘ８ブロックの６４画素合計では、乗算回数は５１２回、加算回数は５１２回と半減できる。なお、詳細を省略するが、変則的な乗算削減方法を追加して、８画素あたりの乗算回数＝２４ｘ２＝４８回、８ｘ８ブロックあたりでは３８４回への削減が可能である。このような係数絶対値が等しい性質は数式（３）から４ｘ４〜３２ｘ３２の各ＤＣＴ共通である。
【００３１】
しかし、ＨＥＶＣ画像符号化規格では、４ｘ４ＤＳＴ、４ｘ４ＤＣＴ、８ｘ８ＤＣＴ、１６ｘ１６ＤＣＴ、３２ｘ３２ＤＣＴの計５種類の整数近似変換があり、３２ｘ３２ＤＣＴでは膨大な演算量となる。このため、部分Ｂｕｔｔｅｒｆｌｙ演算方式のような効率演算だけでなく、乗算器の回路規模縮小の工夫が必要である。
【００３２】
本発明は、上述のような課題を解決するためになされたもので、その目的は整数近似された直交変換を用いて画像・音声信号を圧縮符号化する方式において、エンコーダとデコーダの間の変換誤差を補正し、高品質な圧縮符号化を行うエンコーダを安価に実現することができるデジタル符号化装置を得るものである。
【課題を解決するための手段】
【００３３】
本発明に係るデジタル符号化装置は、整数近似直交変換を用いて画像又は音声のデータを直交変換する直交変換部と、前記直交変換部から出力された算出係数を量子化する量子化部と、前記量子化部により量子化された数値をエントロピー符号化により圧縮符号化する符号化部とを備え、デコーダ用の整数近似直交変換マトリクスの逆マトリクスに所定のスケーリングをしたスケーリング逆マトリクスは、前記スケーリング逆マトリクスの整数部分である整数近似主マトリクスと、前記スケーリング逆マトリクスの小数部分である小数部分補正マトリクスとに分離され、前記小数部分補正マトリクスを整数Ｎ倍して小数部分を丸め処理したマトリクスを補正整数マトリクスとし、前記直交変換部は、前記整数近似主マトリクスを用いて前記データを直交変換処理する主演算部と、前記補正整数マトリクスを用いて前記データを直交変換処理する補正演算部と、前記主演算部の処理結果と、前記補正演算部の処理結果を整数Ｎで除算した結果とを加算する第１の加算部とを有することを特徴とする。
【発明の効果】
【００３４】
本発明により、整数近似された直交変換を用いて画像・音声信号を圧縮符号化する方式において、エンコーダとデコーダの間の変換誤差を補正し、高品質な圧縮符号化を行うエンコーダを安価に実現することができる。
【図面の簡単な説明】
【００３５】
【図１】本発明の実施の形態１に係るデジタル符号化装置を示す図である。
【図２】本発明の実施の形態１に係る直交変換部を示す図である。
【図３】数式（９）のマトリクス演算例を示す図である。
【図４】本発明の実施の形態２に係る直交変換部を示す図である。
【図５】ΔＭ１６（０）の部分Ｂｕｔｔｅｒｆｌｙ構成を示す図である。
【図６】ΔＭ１６（１）の部分Ｂｕｔｔｅｒｆｌｙ構成を示す図である。
【図７】本発明の実施の形態３に係る補正演算部を示す図である。
【図８】数式（１）による８ｘ８ＤＣＴ演算の部分Ｂｕｔｔｅｒｆｌｙ構成を示す図である。
【発明を実施するための形態】
【００３６】
本発明の実施の形態に係るデジタル符号化装置について図面を参照して説明する。同じ又は対応する構成要素には同じ符号を付し、説明の繰り返しを省略する場合がある。
【００３７】
実施の形態１．
図１は、本発明の実施の形態１に係るデジタル符号化装置を示す図である。直交変換部１は、整数近似直交変換を用いて画像又は音声のデータを直交変換する。量子化部２は、直交変換部１から出力された算出係数を量子化する。符号化部３は、量子化部２により量子化された数値をエントロピー符号化により圧縮符号化する。
【００３８】
デコーダ用の８ビット整数近似直交変換マトリクスＭＴ（Ｍを転置したマトリクス演算）の逆マトリクスに所定のスケーリング（定数倍）をしたスケーリング逆マトリクスＭＴｉｎｖは、スケーリング逆マトリクスＭＴｉｎｖの整数部分である整数近似主マトリクスＭと、スケーリング逆マトリクスＭＴｉｎｖの小数部分である小数部分補正マトリクスΔＭとに分離される（数式６）。ΔＭは小さな係数値を持つ補正項のマトリクスである。
ＭＴｉｎｖ＝Ｍ＋ΔＭ      （数式６）
【００３９】
直交変換するデータの予測残差画像ブロックをＸ、変換結果ブロックをＹ、ΔＭの転置マトリクスをΔＭＴとすると、エンコーダの変換は数式７のように表わされる。
Ｙ＝ＭＴｉｎｖ・Ｘ・Ｍｉｎｖ
＝（Ｍ＋ΔＭ）・Ｘ・（ＭＴ＋ΔＭＴ）
＝Ｍ・Ｘ・ＭＴ＋ΔＭ・Ｘ・ＭＴ＋Ｍ・Ｘ・ΔＭＴ＋ΔＭ・Ｘ・ΔＭＴ      （数式７）
【００４０】
マトリクスＭＴは８ビット整数係数であり、マトリクスΔＭ、ΔＭＴは１未満の小さな係数のため、例えばΔＭＴの各係数を１６倍するスケーリングをして、小数部丸めをすれば、ΔＭＴも４ビット整数マトリクスの演算となる。
【００４１】
この小数部分補正マトリクスΔＭを１６倍して小数部分を丸め処理（整数化の丸め処理）したマトリクスを補正整数マトリクスΔＭ１６とする。また、ΔＭ１６の転置マトリクスをΔＭＴ１６とする。
【００４２】
図２は、本発明の実施の形態１に係る直交変換部を示す図である。１次元目演算として、主演算部４が整数近似主マトリクスＭを用いてデータＸを直交変換処理する（ＭｘＸ＝Ａ）。補正演算部５が補正整数マトリクスΔＭ１６を用いてデータＸを直交変換処理する（ΔＭ１６ｘＸ）。加算部６が主演算部４の処理結果と、補正演算部５の処理結果を１６で除算した結果とを加算する。この加算結果をスケーリング部７が１／１２８スケーリングする。
【００４３】
２次元目演算として、主演算部８がマトリクスＭＴを用いてスケーリング部７の出力データを直交変換処理する（ｘＭＴ）。補正演算部９が補正整数マトリクスΔＭＴ１６を用いてスケーリング部７の出力データを直交変換処理する（ｘΔＭＴ１６）。加算部１０が主演算部８の処理結果と、補正演算部９の処理結果を１６で除算した結果とを加算する。この加算結果をスケーリング部１１が１／２５６スケーリングして変換結果ブロックＹを得る。なお、１６での除算は、実際には４ビット右シフト処理となり、簡易な処理となる。
【００４４】
前述したようにマトリクスＭとＭＴはそれぞれ数式定義のマトリクスＭｄｃｔとＭＴｄｃｔを１２８√２倍のスケーリングと丸め処理をしているので、１次元目演算の後段の１／１２８スケーリングと２次元目後段の１／２５６スケーリングによりスケーリングを元に戻す。１／１２８√２は除算になるため、１／１２８と１／２５６の処理として、ビットシフト処理で行うようにしている。なお、実装においては、２次元目後段のスケーリングも１／１２８として、求まったＤＣＴ係数の量子化処理に含めて行うことが実用的である。
【００４５】
この構成におけるＭとΔＭ１６は、それぞれに適切なスケーリングをした後、以下の数式（８）と数式（９）のようになる。
【００４６】
【数５】
2015109585.tif 000008
【００４７】
【数６】
2015109585.tif 000009
【００４８】
Ｍ・Ｘ・ＭＴは従来の部分Ｂｕｔｔｅｒｆｌｙ方式の効率演算が可能である。または、マトリクスを複数のビットプレーンマトリクスに分離して、加減算器による演算も可能である。
【００４９】
ΔＭ１６の整数マトリクスは１６倍のスケーリングをしても小さな値で規則性のあるマトリクスとなっているため、少なくとも部分Ｂｕｔｔｅｒｆｌｙ演算が可能であり、０係数が多く、非０係数も絶対値が１〜３のマトリクスである。従って、ΔＭ１６のマトリクス乗算はＢｕｔｔｅｒｆｌｙ方式と類似の効率演算が可能で、小さな係数のため乗算器は不要で、加減算器による小規模回路構成が可能となる。
【００５０】
図３は、数式（９）のマトリクス演算例を示す図である。この補正演算構成例では、乗算器は１６個で、かつ２ビット乗算のｘ２とｘ３である。８ビット加減算器が８＋１４＝２２個、４ビット乗算器が１６個で構成できる。さらには、ｘ２乗算は１ビットシフト、ｘ３は１ビットシフト値とシフト無しの値との加算でもよい。
【００５１】
よって、本実施の形態により乗算器の回路規模を縮小することができる。この結果、整数近似された直交変換を用いて画像・音声信号を圧縮符号化する方式において、エンコーダとデコーダの間の変換誤差を補正し、高品質な圧縮符号化を行うエンコーダを安価に実現することができる。
【００５２】
実施の形態２．
前述のように補正演算は主演算の下位に付加する４ビット精度の小数点以下の成分の演算である。実際には、元データが１０ビットなら、乗算結果の上位から１１ビットと１０ビットの間に小数点がある。
【００５３】
補正項は４ビット精度の付加成分のため、元データが１０ビットでも、その上位４ビット程度のみを演算すればよい。１０ビット画素精度の元データをＸとし、元データＸの上位４ビット成分をＸ４ｂとすると、Ｘ４ｂ＝Ｘ／／６４＊６４と表わされる。
ここで、Ｘ／／６４はＸを６４で切捨て除算した商である。切捨て除算をするのは、ビットシフトだけで除算をする場合を想定したものである。
【００５４】
例えばＸｊｋ＝５００とすると、Ｘｊｋ４ｂ＝５００／／６４＊６４＝４４８となる。除算で丸め処理を省略しているので、Ｘの上位５ビットの演算とすれば、Ｘｊｋ５ｂ＝５００／／３２＊３２＝４８０となり、少し精度が向上する。
【００５５】
本実施の形態では、このように補正演算を元データの上位桁成分だけとして、演算器の精度を小さくする。図４は、本発明の実施の形態２に係る直交変換部を示す図である。データはｎビット精度で構成され、データの上位４ビットを有効ビットとし、下位（ｎ−４）ビットを０として構成した成分を省略データとする。実施の形態１の補正演算部５の代わりに、補正演算部１２が、補正整数マトリクスΔＭ１６を用いて省略データを直交変換処理する。実施の形態１の補正演算部９の代わりに、補正演算部１３が補正整数マトリクスΔＭＴ１６を用いてスケーリング部７の出力データの上位４ビットを直交変換処理する（ｘΔＭＴ１６）。その他の構成は実施の形態１と同様である。本実施の形態では、補正整数マトリクスΔＭ１６と省略データＸ４ｂがそれぞれ４ビットであるので、４ビット乗算器で補正項演算を構成できる。
【００５６】
この場合の回路規模を１次元分の回路を２次元目でも用いるものとして概算すると、部分Ｂｕｔｔｅｒｆｌｙ方式主演算部の乗算器（８ビットｘ１０ビット）個数は３２個、部分Ｂｕｔｔｅｒｆｌｙ方式主演算部の加減算器（１６ビット±１６ビット）個数は３２個、部分Ｂｕｔｔｅｒｆｌｙ方式補正部の乗算器（４ビットｘ４ビット）個数＝３２個ｘ４０／６４は２０個、部分Ｂｕｔｔｅｒｆｌｙ方式補正部の加減算器（８ビット＋８ビット）個数＝３２個ｘ４０／６４は２０個である。ここで、補正マトリクスは２４項が０係数で４０項が非０係数のため、この比率で乗算器個数と加減算器個数が少なくできるものとしている。またスケーリングについては、前述と同様に１次元目は１／１２８とし、２次元目は１／２５６としている。
【００５７】
一方、単純にＩｎｖｅｒｓｅマトリクスをそのまま１２ビット精度にして演算した場合、部分Ｂｕｔｔｅｒｆｌｙ方式マトリクス演算部の乗算器（１２ビットｘ１０ビット）個数は３２個、部分Ｂｕｔｔｅｒｆｌｙ方式マトリクス演算部の加減算器（１６ビット±１６ビット）個数は３２個となる。
【００５８】
この実装回路の規模を概算すると、２次元ＤＣＴ演算を１次元ＤＣＴ回路を繰返し使用して構成した場合、表２のようになる。
【００５９】
【表２】
2015109585.tif 000010
【００６０】
Ｉｎｖｅｒｓｅマトリクスをそのまま１２ビット精度で演算する場合の実装回路規模を概算すると表３のようになる。
【００６１】
【表３】
2015109585.tif 000011
【００６２】
乗算器と加減算器との回路規模比較について、１６ビットｘ１６ビット乗算器は、少なくとも１６ビット＋１６ビット加算器を１６個用い、それらを乗数か被乗数の一方のビット毎の加算制御を行って構成する。従って、１６ビットｘ１６ビット乗算器は少なくとも１６ビット＋１６ビット加算器の１６倍以上の回路規模となる。
【００６３】
実施の形態３．
補正整数マトリクスΔＭ１６は４ビット係数程度の数値で、０係数を多数含み、規則性があるため、部分Ｂｕｔｔｅｒｆｌｙ演算が可能である。そこで、本実施の形態では、補正整数マトリクスΔＭ１６の各要素を２進表現で表わす。このマトリクスを２進表現の正負符号付きのビット位置（桁位置）毎のｋ個のマトリクスに分解する。これら分解されたマトリクスの要素値を１、０、−１で表わす。第ｉビット目のマトリクスを第ｉのビットプレーンマトリクスとする（ｉ＝１，・・・，ｋ）。
【００６４】
具体的には、各ビットプレーンマトリクスの演算を加減算器で構成し、それらの結果をビット桁位置に対応したビットシフトをして加算して、補正演算を行う。まず、８ｘ８ＤＣＴの場合の補正整数マトリクスΔＭ１６は下記の数式（１０）となる。
【００６５】
【数７】
2015109585.tif 000012
【００６６】
ΔＭ１６は−３〜＋３の係数からなり、２つだけのビットプレーンマトリクスに分解できる。ビットプレーン（０）マトリクス（LSB Plane）をΔＭ１６（０）とすると、ΔＭ１６（０）は下記の数式（１１）となる。
【００６７】
【数８】
2015109585.tif 000013
【００６８】
ΔＭＴ１６からそのままの形式でΔＭ１６（０）を引いただけのビットプレーンマトリクスは下記の数式（１２）となる。
【００６９】
【数９】
2015109585.tif 000014
【００７０】
このΔＭ１６（１ａ）をビットシフトすれば下記の数式（１３）となる。
【００７１】
【数１０】
2015109585.tif 000015
【００７２】
ここで、ΔＭ１６＝１・ΔＭ１６（０）＋２・ΔＭ１６（１）の関係となる。従って、補正項演算は、ΔＭ１６ｘＸ＝（ΔＭ１６（０）ｘＸ）＋２・（ΔＭ１６（１）ｘＸ）となる。
【００７３】
図５は、ΔＭ１６（０）の部分Ｂｕｔｔｅｒｆｌｙ構成を示す図である。図６は、ΔＭ１６（１）の部分Ｂｕｔｔｅｒｆｌｙ構成を示す図である。図５のΔＭ１６（０）の演算には、８ビット加減算器が１４個で構成される。図６のΔＭ１６（１）の演算には、８ビット加減算器が１６個で構成される。
【００７４】
１次元ＤＣＴ回路を繰返し使用して２次元ＤＣＴ演算を構成した場合の実装回路規模を概算すると以下の表４になる。
【００７５】
【表４】
2015109585.tif 000016
【００７６】
上記例では、１６倍スケーリングと丸めをした補正マトリクスの係数値が０〜±３の範囲のため、ΔＭ１６（０）とΔＭ１６（１）の２つのビットプレーンだけで構成される。
【００７７】
一般的には１６倍スケーリングをすると、ビットプレーンマトリクスがΔＭ１６（０）、ΔＭ１６（１）、ΔＭ１６（２）、ΔＭ１６（３）の４つのマトリクスに分解される可能性があり、その場合の補正項演算は下記の数式（１４）となる。
ΔＭ１６ｘＸ＝（ΔＭ１６（０）ｘＸ）＋２・（ΔＭ１６（１）ｘＸ）＋４・（ΔＭ１６（２）ｘＸ）＋８・（ΔＭ１６（３）ｘＸ）      数式（１４）
【００７８】
図７は、本発明の実施の形態３に係る補正演算部を示す図である。この補正演算部は実施の形態１，２の補正演算部５，９，１２，１３に対応する。上記の数式（１４）の関係から補正演算部の補正項演算は以下のようになる。第１〜第ｋの分割補正演算部１４ａ〜１４ｄが、第１〜第ｋのビットプレーンマトリクスをそれぞれ用いて直交変換処理を行う。第２の加算部１５が、第１〜第ｋの分割補正演算部１４ａ〜１４ｄの演算結果について、第ｉの分割補正演算部による演算結果を２のｉ−１乗倍（ｉ＝１，・・・，ｋ）してそれらの和を算出する。これにより、補正演算を乗算器ではなく、加減算器で簡易に構成することができる。
【００７９】
図７のｘ２、ｘ４、ｘ８はそれぞれ１ビット左シフト、２ビット左シフト、３ビット左シフトで実現でき、単に配線だけの構成で済み、演算は不要である。／１６は、単に４ビット右シフトでもよいし、精度向上のために丸め処理をしてもよい。単に右シフトだけの場合には演算器は不要である。図７の入力データＸは前述のＦｕｌｌ精度の元データでもよいし、上位４ビットのみ有効な省略データでもよい。
【００８０】
２次元目のΔＭＴの演算も同様に下記の数式（１５）となる。
ＸｘΔＭＴ１６＝（ＸｘΔＭＴ１６（０））＋２・（ＸｘΔＭＴ１６（１））＋４・（ＸｘΔＭＴ１６（２））＋８・（ＸｘΔＭＴ１６（３））      数式（１５）
ここで、ΔＭＴ１６（０）はΔＭ１６（０）の転置マトリクス、ΔＭＴ１６（１）はΔＭ１６（１）の転置マトリクス、以下同様である。
【００８１】
これらΔＭ１６（０）、ΔＭ１６（１）は要素値０が多く、各位置の要素値に規則性のあるマトリクスであり、この規則性を利用して部分Ｂｕｔｔｅｒｆｌｙ演算構成により、演算量や演算器個数を低減できる。
【００８２】
８ｘ８ＤＣＴの場合に適用すると、補正演算部分の回路規模は以下のようになる。２面のビットプレーンマトリクスのみからなり、６４係数中非０係数は２４係数と３２係数であり、それぞれ規則性がある。このため、部分Ｂｕｔｔｅｒｆｌｙ演算方式で加減算器個数を半減できるものとして概算すると、８ビット±８ビットのものが２８個で済む。従って、補正演算の回路規模は２８ｘ１＝２８となる。４ビット乗算器と加減算器を用いる構成の場合の補正演算部分の回路規模は９６であったため、その１／３以下の回路規模で補正演算を行うことができる。
【００８３】
上記の実施の形態では、比較と評価が容易な８ｘ８ＤＣＴの場合に本発明を適用した場合について説明した。ただし、ビデオ圧縮符号化の技術規格では４ｘ４ＤＳＴ（４ｘ４サイズ２次元Ｄｉｓｃｒｅｔｅ  Ｓｉｎｅ  Ｔｒａｎｓｆｏｒｍ）、４ｘ４ＤＣＴ、８ｘ８ＤＣＴ、１６ｘ１６ＤＣＴ、３２ｘ３２ＤＣＴが用いられている。これら全てのＴｒａｎｓｆｏｒｍにおいて、上記の原理に基く補正整数マトリクス演算による高精度Ｔｒａｎｓｆｏｒｍ演算が可能である。
【００８４】
同様に、これら全てのＴｒａｎｓｆｏｒｍの主整数近似マトリクスを複数のビットプレーンマトリクスに分解し、乗算器を用いずに加減算器を用いたマトリクス演算とし、各マトリクスの規則性を利用した部分Ｂｕｔｔｅｒｆｌｙ演算することで効率的な実装が可能である。
【符号の説明】
【００８５】
１  直交変換部、２  量子化部、３  符号化部、４  主演算部、５，１２  補正演算部、６  加算部、１４ａ〜１４ｄ  第１〜第ｋの分割補正演算部、１５  加算部
【図１】
2015109585.tif 000017
【図２】
2015109585.tif 000018
【図３】
2015109585.tif 000019
【図４】
2015109585.tif 000020
【図５】
2015109585.tif 000021
【図６】
2015109585.tif 000022
【図７】
2015109585.tif 000023
【図８】
2015109585.tif 000024