(57)【要約】【課題】記憶容量の大きなメモリを使用せず、タイル歪みを発生させず、画像の回転処理及び／又は反転処理を実現し得る、画像符号化装置及び画像復号化装置を得る。【解決手段】交換制御部２４０は、変換係数ＱＤをコードブロックＡＴに分割する。記憶装置２４１は、コードブロックＡＴのデータサイズに相当する記憶容量を有している。交換制御部２４０には、回転角や反転方向に関する情報を含む回転反転制御情報ＳＳが入力されている。交換制御部２４０は、回転反転制御情報ＳＳと、変換係数ＱＤのサブバンド情報とに基づいて、制御信号ＤＴを生成する。アドレス生成部２４２は、制御信号ＤＴに基づいて書き込みアドレスＣＴＷを生成する。コードブロックＡＴを記憶装置２４１に書き込む際に、書き込みアドレスＣＴＷに基づいて記憶装置２４１に所定の順序でアクセスすることにより、画像の回転反転処理が施される。【選択図】図４
2011120305.tif 000002
【特許請求の範囲】
【請求項１】
ウェーブレット変換によって画像信号を高域成分と低域成分とに再帰的に帯域分割することにより、複数の帯域成分の変換係数を生成するウェーブレット変換部と、
前記変換係数に対して量子化を行う量子化部と、
量子化された前記変換係数をコードブロック単位に分割し、外部から入力された反転制御情報に基づいて、前記コードブロック単位で画像の反転処理を行う反転処理部と、
前記コードブロックに対してエントロピー符号化を行う符号化部と
を備える、画像符号化装置。
【請求項２】
前記反転処理部は、
前記コードブロックのデータサイズに相当する記憶容量を有し、前記コードブロックが書き込み及び読み出しされるメモリと、
前記メモリに前記コードブロックを書き込む際の書き込みアドレスと、前記メモリから前記コードブロックを読み出す際の読み出しアドレスとを生成するアドレス生成部と
を有し、
前記アドレス生成部が前記書き込みアドレス及び前記読み出しアドレスの一方を前記反転制御情報に基づいて生成することにより、前記反転処理が施された前記コードブロックが前記メモリから読み出される、請求項１に記載の画像符号化装置。
【請求項３】
前記ウェーブレット変換部は、それぞれがローパスフィルタ及びハイパスフィルタを有する垂直フィルタと水平フィルタとを有しており、前記反転制御情報に基づき、反転すべきデータ数の奇偶に応じて前記ローパスフィルタ及び前記ハイパスフィルタの出力の実行順序を入れ換える、請求項１又は２に記載の画像符号化装置。
【請求項４】
画像の符号化データに対してコードブロック単位でエントロピー復号化を行うことにより、コードブロックを生成する復号化部と、
外部から入力された反転制御情報に基づいて、前記コードブロック単位で画像の反転処理を行い、変換係数を生成する反転処理部と、
前記変換係数に対して逆量子化を行う逆量子化部と、
逆量子化された前記変換係数を逆ウェーブレット変換によって高域成分と低域成分とに再帰的に帯域合成することにより、画像信号を生成する逆ウェーブレット変換部と
を備える、画像復号化装置。
【請求項５】
前記反転処理部は、
前記コードブロックのデータサイズに相当する記憶容量を有し、前記コードブロックが書き込み及び読み出しされるメモリと、
前記メモリに前記コードブロックを書き込む際の書き込みアドレスと、前記メモリから前記コードブロックを読み出す際の読み出しアドレスとを生成するアドレス生成部と
を有し、
前記アドレス生成部が前記書き込みアドレス及び前記読み出しアドレスの一方を前記反転制御情報に基づいて生成することにより、前記反転処理が施された前記コードブロックが前記メモリから読み出される、請求項４に記載の画像復号化装置。
【請求項６】
前記逆ウェーブレット変換部は、それぞれがローパスフィルタ及びハイパスフィルタを有する垂直フィルタと水平フィルタとを有しており、前記反転制御情報に基づき、反転されたデータ数の奇偶に応じて前記ローパスフィルタ及び前記ハイパスフィルタの入力の実行順序を入れ換える、請求項４又は５に記載の画像復号化装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像符号化装置及び画像復号化装置に関する。
【背景技術】
【０００２】
従来、圧縮符号化された回転画像又は反転画像を得る方法としては、画像全体を回転又は反転させた後に圧縮符号化する方法や、画像を圧縮符号化した後に画像全体を回転又は反転させる方法がある。また、下記特許文献１には、タイリング処理によって画像を複数の小領域（タイル）に分割し、タイル単位で回転処理を行う技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−６４１８０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ＣＣＤ等の入力デバイスやＬＣＤ等の表示デバイスでは、ラスタ走査順に画像データが処理される。従って、メモリ内にはラスタ走査順に画像データが格納されていることが望まれる。
【０００５】
画像全体を回転又は反転させた後に圧縮符号化する方法では、入力側にランダムアクセス可能なページメモリを用い、ラスタ走査順とは異なる方向でのアクセスによって画像データをメモリに書き込むことにより、画像の回転又は反転を実現している。また、画像を圧縮符号化した後に画像全体を回転又は反転させる方法では、出力側にランダムアクセス可能なページメモリを用い、ラスタ走査順とは異なる方向でのアクセスによって画像データをメモリから読み出すことにより、画像の回転又は反転を実現している。
【０００６】
しかしながら、いずれの方法でも高価なページメモリを使用する必要があるため、コストの上昇を招く。しかも、画像全体を格納するためには記憶容量の大きなメモリを実装する必要があるため、さらにコストの上昇を招く。
【０００７】
また、タイル単位で回転処理を行う方法では、記憶容量の小さなメモリを使用することができるためコストは低減できるが、タイリング処理に起因してタイル歪みと称される矩形状の歪みが発生し、画質が劣化する。
【０００８】
本発明はかかる問題を解決するために成されたものであり、記憶容量の大きなメモリを使用することなく、タイル歪みを発生させることもなく、効率良く画像の回転処理及び／又は反転処理を実現し得る、画像符号化装置及び画像復号化装置を得ることを目的とする。
【課題を解決するための手段】
【０００９】
第１の発明に係る画像符号化装置は、ウェーブレット変換によって画像信号を高域成分と低域成分とに再帰的に帯域分割することにより、複数の帯域成分の変換係数を生成するウェーブレット変換部と、前記変換係数に対して量子化を行う量子化部と、量子化された前記変換係数をコードブロック単位に分割し、外部から入力された反転制御情報に基づいて、前記コードブロック単位で画像の反転処理を行う反転処理部と、前記コードブロックに対してエントロピー符号化を行う符号化部とを備える。
【００１０】
第２の発明に係る画像符号化装置は、第１の発明に係る画像符号化装置において特に、前記反転処理部は、前記コードブロックのデータサイズに相当する記憶容量を有し、前記コードブロックが書き込み及び読み出しされるメモリと、前記メモリに前記コードブロックを書き込む際の書き込みアドレスと、前記メモリから前記コードブロックを読み出す際の読み出しアドレスとを生成するアドレス生成部とを有し、前記アドレス生成部が前記書き込みアドレス及び前記読み出しアドレスの一方を前記反転制御情報に基づいて生成することにより、前記反転処理が施された前記コードブロックが前記メモリから読み出されることを特徴とする。
【００１１】
第３の発明に係る画像符号化装置は、第１又は第２の発明に係る画像符号化装置において特に、前記ウェーブレット変換部は、それぞれがローパスフィルタ及びハイパスフィルタを有する垂直フィルタと水平フィルタとを有しており、前記反転制御情報に基づき、反転すべきデータ数の奇偶に応じて前記ローパスフィルタ及び前記ハイパスフィルタの出力の実行順序を入れ換えることを特徴とする。
【００１２】
第４の発明に係る画像復号化装置は、画像の符号化データに対してコードブロック単位でエントロピー復号化を行うことにより、コードブロックを生成する復号化部と、外部から入力された反転制御情報に基づいて、前記コードブロック単位で画像の反転処理を行い、変換係数を生成する反転処理部と、前記変換係数に対して逆量子化を行う逆量子化部と、逆量子化された前記変換係数を逆ウェーブレット変換によって高域成分と低域成分とに再帰的に帯域合成することにより、画像信号を生成する逆ウェーブレット変換部とを備える。
【００１３】
第５の発明に係る画像復号化装置は、第４の発明に係る画像復号化装置において特に、前記反転処理部は、前記コードブロックのデータサイズに相当する記憶容量を有し、前記コードブロックが書き込み及び読み出しされるメモリと、前記メモリに前記コードブロックを書き込む際の書き込みアドレスと、前記メモリから前記コードブロックを読み出す際の読み出しアドレスとを生成するアドレス生成部とを有し、前記アドレス生成部が前記書き込みアドレス及び前記読み出しアドレスの一方を前記反転制御情報に基づいて生成することにより、前記反転処理が施された前記コードブロックが前記メモリから読み出されることを特徴とする。
【００１４】
第６の発明に係る画像復号化装置は、第４又は第５の発明に係る画像復号化装置において特に、前記逆ウェーブレット変換部は、それぞれがローパスフィルタ及びハイパスフィルタを有する垂直フィルタと水平フィルタとを有しており、前記反転制御情報に基づき、反転されたデータ数の奇偶に応じて前記ローパスフィルタ及び前記ハイパスフィルタの入力の実行順序を入れ換えることを特徴とする。
【発明の効果】
【００１５】
第１の発明に係る画像符号化装置によれば、反転処理部は、コードブロック単位で画像の反転処理を行う。従って、記憶容量の大きなメモリを使用することなく、タイル歪みを発生させることもなく、効率良く画像の反転処理を実行することができる。
【００１６】
第２の発明に係る画像符号化装置によれば、書き込みアドレス及び読み出しアドレスの一方を反転制御情報に基づいて生成するという、比較的簡易な処理によって、画像の反転処理を実行することができる。
【００１７】
第３の発明に係る画像符号化装置によれば、反転すべきデータ数の奇偶に応じてローパスフィルタ及びハイパスフィルタの出力の実行順序を入れ換えることにより、反転処理前のコードブロック内における各画素のフィルタ係数の組合せ（ＬＬ，ＨＬ，ＬＨ，ＨＨ）を、反転方向に応じて異なる位置関係とすることができる。従って、反転処理後のコードブロック内における（ＬＬ），（ＨＬ），（ＬＨ），（ＨＨ）の位置関係がＪＰＥＧ２０００方式での標準の位置関係となるような、反転処理前のコードブロックを、反転方向毎に適切に生成することができる。
【００１８】
第４の発明に係る画像復号化装置によれば、反転処理部は、コードブロック単位で画像の反転処理を行う。従って、記憶容量の大きなメモリを使用することなく、タイル歪みを発生させることもなく、効率良く画像の反転処理を実行することができる。
【００１９】
第５の発明に係る画像復号化装置によれば、書き込みアドレス及び読み出しアドレスの一方を反転制御情報に基づいて生成するという、比較的簡易な処理によって、画像の反転処理を実行することができる。
【００２０】
第６の発明に係る画像復号化装置によれば、反転されたデータ数の奇偶に応じてローパスフィルタ及びハイパスフィルタの入力の実行順序を入れ換えることにより、反転処理後のコードブロックから得られた変換係数を、反転方向に応じて適切に合成することができる。
【図面の簡単な説明】
【００２１】
【図１】本発明の実施の形態１に係る画像符号化装置の構成を示す機能ブロック図である。
【図２】オクターブ分割方式に従って分解レベル「３」のＤＷＴが施された２次元画像を示す図である。
【図３】コードブロックが分解されたｎ枚のビットプレーンを示す図である。
【図４】方向変換部の構成を示す機能ブロック図である。
【図５】画像の回転処理と変換係数のサブバンドとの関係を説明する図である。
【図６】画像の回転処理と変換係数のサブバンドとの関係を説明する図である。
【図７】画像の回転処理と変換係数のサブバンドとの関係を説明する図である。
【図８】画像の回転処理と変換係数のサブバンドとの関係を説明する図である。
【図９】画像の回転処理と変換係数のサブバンドとの関係を説明する図である。
【図１０】図４に示した記憶装置の記憶領域を示す模式図である。
【図１１】９×７タップのフィルタを用いてＤＷＴを実行する場合における、入出力データの位置関係を示す図である。
【図１２】１６行×１６列の画像信号に対して、垂直フィルタ→水平フィルタの順で２次元フィルタをかけた状況を示す図である。
【図１３】１６行×１６列の画像信号に対して回転反転処理を行う場合の、事前処理の内容を説明する図である。
【図１４】ラインベースウェーブレット変換を実現するＤＷＴ部の第１の構成を示す図である。
【図１５】ラインベースウェーブレット変換を実現するＤＷＴ部の第２の構成を示す図である。
【図１６】コードブロックに分割された２次元画像を示す図である。
【図１７】コードブロックに分割された２次元画像を示す図である。
【図１８】コードブロックに分割された２次元画像を示す図である。
【図１９】パケットの構成例を示す図である。
【図２０】パケットの構成例を示す図である。
【図２１】本発明の実施の形態２に係る画像復号化装置の構成を示す機能ブロック図である。
【図２２】方向変換部の構成を示す機能ブロック図である。
【図２３】９×７タップのフィルタを用いて逆ＤＷＴを実行する場合における、入出力データの位置関係を示す図である。
【図２４】１６行×１６列の画像信号に対して、合成水平フィルタ→合成垂直フィルタの順で２次元フィルタをかける状況を示す図である。
【図２５】ラインベース逆ウェーブレット変換を実現する逆ＤＷＴ部の第１の構成を示す図である。
【図２６】ラインベース逆ウェーブレット変換を実現する逆ＤＷＴ部の第２の構成を示す図である。
【発明を実施するための形態】
【００２２】
実施の形態１．
＜装置全体の概要＞
図１は、本発明の実施の形態１に係る、ＪＰＥＧ２０００方式に基づいた画像符号化装置１の構成を示す機能ブロック図である。図１に示すように、画像符号化装置１は、ＤＣレベルシフト部１０、色空間変換部１１、タイリング部１２、ＤＷＴ部１３、量子化部１４、ＲＯＩ部１７、方向変換部２４、係数ビットモデリング部２０、算術符号化部２１、符号量制御部２２、及びビットストリーム生成部２３を備えて構成されている。
【００２３】
なお、画像符号化装置１を構成するこれら各処理部１０〜１４，１７，２０〜２３の全部又は一部は、ハードウェアとして構成されていてもよいし、又はマイクロプロセッサを機能させるプログラムとして構成されていてもよい。
【００２４】
ＤＣレベルシフト部１０は、外部から画像符号化装置１に入力された画像信号（図１における入力画像）に対して、必要に応じてＤＣレベル変換処理を行う。
【００２５】
色空間変換部１１は、ＤＣレベルシフト部１０から入力された画像信号に対して、所定の色空間変換処理を行う。ＪＰＥＧ２０００方式によれば、色空間変換処理として、可逆変換用のＲＣＴ（Reversible Component Transformation）と、非可逆変換用のＩＣＴ（Irreversible Component Transformation）とが用意されており、いずれか一方を適宜選択できる。これにより、例えば、色空間変換部１１に入力されたＲＧＢ信号がＹＣｂＣｒ信号又はＹＵＶ信号に変換される。
【００２６】
タイリング部１２は、色空間変換部１１から入力された画像信号を、タイリング処理によって、「タイル」と称される矩形状の複数の小領域に分割する。なお、かかるタイリング処理は必ずしも必要ではなく、１フレーム分の画像信号をそのまま次段の機能ブロックに出力してもよい。本発明では、タイル歪みの発生を回避又は抑制すべく、１フレーム分の画像信号を１タイルとして処理する場合や、個々のサイズが比較的大きな少数のタイルに分割する処理を想定している。但し、本発明は通常のタイリング処理が行われる装置にも適用可能である。
【００２７】
ＤＷＴ部１３は、タイリング部１２から入力された画像信号に対してタイル単位で整数型又は実数型のＤＷＴを施し、その結果得られる変換係数を出力する。ＤＷＴでは、２次元画像信号を高域成分（高周波数成分）と低域成分（低周波数成分）とに分割するための１次元フィルタが、垂直及び水平の各方向に関して適用される。具体的には、実数型ＤＷＴであれば、９×７タップ、５×３タップ、又は７×５タイプ等のフィルタが使用され、整数型ＤＷＴであれば、５×３タップ又は１３×７タップ等のフィルタが使用される。また、これらフィルタの処理を畳み込み演算で実行してもよいし、あるいは、畳み込み演算よりも効率的なリフティング構成（Lifting scheme）で実行してもよい。
【００２８】
ＪＰＥＧ２０００方式では、垂直及び水平の双方向に関して低域側に分割された帯域成分のみを再帰的に帯域分割していく、いわゆるオクターブ分割方式が採用されている。また、その再帰的に帯域分割を行った回数は、分解レベル（decomposition level）と称される。
【００２９】
図２は、オクターブ分割方式に従って分解レベル「３」のＤＷＴが施された２次元画像１２０を示す模式図である。分解レベル「１」では、２次元画像１２０は、垂直方向と水平方向とに上述の１次元フィルタを順次適用することで、ＨＨ１，ＨＬ１，ＬＨ１，及びＬＬ１（図示せず）の４つの帯域成分（サブバンド）に分割される。ここで、「Ｈ」は高域成分を、「Ｌ」は低域成分をそれぞれ示している。例えば「ＨＬ１」は、分解レベル「１」における水平方向の高域成分Ｈと垂直方向の低域成分Ｌとから成る帯域成分である。その表記法を一般化すると、「ＸＹｎ」（Ｘ，ＹはＨ，Ｌのいずれか。ｎは自然数）は、分解レベルｎにおける水平方向の帯域成分Ｘと垂直方向の帯域成分Ｙとから成る帯域成分を意味する。
【００３０】
分解レベル「２」では、低域成分ＬＬ１が、ＨＨ２，ＨＬ２，ＬＨ２，及びＬＬ２（図示せず）に帯域分割される。さらに、分解レベル「３」では、低域成分ＬＬ２が、ＨＨ３，ＨＬ３，ＬＨ３，及びＬＬ３に帯域分割される。このようにして生成された帯域成分ＨＨ１〜ＬＬ３を配列したものが、図２である。図２では分解レベルが「３」のＤＷＴが施された例が示されているが、ＪＰＥＧ２０００方式では、一般に、分解レベルが「３」〜「８」程度のＤＷＴが採用される。
【００３１】
量子化部１４は、ＤＷＴ部１３から入力された変換係数を、量子化パラメータに従ってスカラー量子化することにより、スカラー量子化後の変換係数ＱＤを出力する。また、量子化部１４は、ＲＯＩ部１７によって設定された関心領域の画質を優先させるよう、所定のビットシフト処理を行う機能も有している。
【００３２】
方向変換部２４は、量子化部１４から入力された変換係数ＱＤを、３２×３２又は６４×６４程度のコードブロックに分割する。また、方向変換部２４には、例えばユーザによって指定された回転角や反転方向に関する情報を含む回転反転制御情報ＳＳが、外部から入力されている。方向変換部２４は、回転反転制御情報ＳＳに基づいて、コードブロック単位で画像の回転処理及び反転処理を行い、回転反転処理後のコードブロックＤＤを出力する。つまり、方向変換部２４は、コードブロック単位で画像の回転処理を行う回転処理部として機能するとともに、コードブロック単位で画像の反転処理を行う反転処理部としても機能する。但し、方向変換部２４は、必ずしも回転処理及び反転処理の双方の機能を有する必要はなく、いずれか一方の機能のみを有していてもよい。さらに、方向変換部２４は、コードブロックＤＤに関連する回転角や反転方向に関する情報を含む制御情報ＥＤを出力する。
【００３３】
係数ビットモデリング部２０は、方向変換部２４から入力されたコードブロックＤＤを、各ビットの２次元配列として構成される複数のビットプレーンに分解する。図３は、コードブロック１２１（コードブロックＤＤに対応）が分解されたｎ枚のビットプレーン１２２0〜１２２n-1（ｎは自然数）を示す模式図である。図３に示すように、コードブロック１２１内の任意の１点の変換係数の２進値１２３が「０１１・・・０」である場合、この２進値１２３を構成する各ビットがそれぞれビットプレーン１２２n-1，１２２n-2，１２２n-3，・・・，１２２0に属するように、コードブロック１２１が分解される。図３において、ビットプレーン１２２n-1は、変換係数の最上位ビット（ＭＳＢ）のみから成る最上位ビットプレーンを表し、ビットプレーン１２２0は、変換係数の最下位ビット（ＬＳＢ）のみから成る最下位ビットプレーンを表している。
【００３４】
さらに、係数ビットモデリング部２０は、各ビットプレーン１２２k（ｋ＝０〜ｎ−１）内の各ビットのコンテクスト（context）判定を行い、判定結果である各ビットの有意性に応じて、ビットプレーン１２２kを３種類の符号化パス、即ち、ＳＩＧパス（SIGnificance propagation pass），ＭＲパス（Magnitude Refinement pass），及びＣＬパス（CLeanup pass）に分解する。各符号化パスに関するコンテクスト判定のアルゴリズムは、ＥＢＣＯＴで定められている。それによれば、「有意である」とは、これまでの符号化処理において注目係数がゼロでないと分かっている状態のことを意味し、「有意で無い」とは、係数値がゼロであるか、又はゼロである可能性がある状態のことを意味する。
【００３５】
係数ビットモデリング部２０は、ＳＩＧパス（有意な係数が周囲にある有意でない係数の符号化パス）、ＭＲパス（有意な係数の符号化パス）、及びＣＬパス（ＳＩＧパス，ＭＲパスに該当しない残りの係数情報の符号化パス）の３種類の符号化パスで、ビットプレーン符号化を実行する。ビットプレーン符号化は、最上位ビットプレーンから最下位ビットプレーンにかけて、各ビットプレーンのビットを４ビット単位で走査し、有意な係数が存在するか否かを判定することで行われる。有意で無い係数（０ビット）のみで構成されるビットプレーンの数はパケットヘッダに記録され、有意な係数が最初に出現したビットプレーンから実際の符号化が開始される。その符号化開始のビットプレーンはＣＬパスのみで符号化され、当該ビットプレーンよりも下位のビットプレーンは、上記３種類の符号化パスで順次符号化される。
【００３６】
算術符号化部２１は、係数ビットモデリング部２０から入力された符号化データＢＤを算術符号化し、その結果得られた符号化データＡＤを出力する。具体的には、ＭＱコーダを用いて、係数ビットモデリング部２０から入力された符号化データＢＤに対して、コンテクストの判定結果に基づいて符号化パス単位で算術符号化を実行する。ここで、算術符号化部２１は、符号化対象の一部を算術符号化せずに、当該符号化対象をそのまま符号化データＡＤに含めて出力するバイパス処理を行う場合もある。なお、本実施の形態１では算術符号化を採用するが、本発明はこれに限らず、他の方式のエントロピー符号化を採用しても構わない。
【００３７】
符号量制御部２２は、算術符号化部２１から入力された符号化データＡＤのレートを制御する機能を有する。具体的に、符号量制御部２２は、目標符号量（圧縮画像の最終的な符号量）を得るために、符号化データＡＤを、帯域成分単位、ビットプレーン単位、又はパス単位で、優先度の低いものから順に切り捨てるというポスト量子化を実行する。
【００３８】
ビットストリーム生成部２３は、符号量制御部２２から入力された符号化データＣＤと、方向変換部２４から入力された制御情報ＥＤと、付加情報（ヘッダ情報、レイヤ構成、スケーラビリティ、量子化テーブル等）とを多重化することによりビットストリームを生成し、圧縮画像として外部に出力する。
【００３９】
＜方向変換部２４の処理＞
以下、図１に示した方向変換部２４によって実行されるコードブロック単位での画像の回転反転処理について、詳細に説明する。
【００４０】
図４は、方向変換部２４の構成を示す機能ブロック図である。図４に示すように、方向変換部２４は、交換制御部２４０、アドレス生成部２４２、及び記憶装置２４１を備えて構成されている。
【００４１】
交換制御部２４０は、図１に示した量子化部１４から入力された変換係数ＱＤを、３２×３２又は６４×６４程度のコードブロックＡＴに分割する。記憶装置２４１はＤＲＡＭ等の半導体メモリであり、コードブロックＡＴのデータサイズに相当する記憶容量を有している。コードブロックＡＴは、アドレス生成部２４２によって生成された書き込みアドレスＣＴＷに基づいて、記憶装置２４１に書き込まれる。
【００４２】
交換制御部２４０には、回転角や反転方向に関する情報を含む回転反転制御情報ＳＳが、外部から入力されている。コードブロックＡＴを記憶装置２４１に書き込む場合、交換制御部２４０は、回転反転制御情報ＳＳと、変換係数ＱＤのサブバンド情報とに基づいて、制御信号ＤＴを生成する。制御信号ＤＴはアドレス生成部２４２に入力され、アドレス生成部２４２は、制御信号ＤＴに基づいて書き込みアドレスＣＴＷを生成する。
【００４３】
画像の回転反転処理は、アドレス生成部２４２が生成する書き込みアドレスＣＴＷによって実現される。つまり、コードブロックＡＴを記憶装置２４１に書き込む際に、書き込みアドレスＣＴＷに基づいて記憶装置２４１に所定の順序でアクセスすることにより、回転反転処理が施されたコードブロックＤＤが記憶装置２４１に書き込まれる。書き込みアドレスＣＴＷの生成方法については後述する。
【００４４】
その後、アドレス生成部２４２によって生成された読み出しアドレスＣＴＲに基づいて、ラスタ走査順に記憶装置２４１にアクセスすることにより、回転反転処理後のコードブロックＤＤが記憶装置２４１から読み出される。コードブロックＤＤは、交換制御部２４０を介して、図１に示した係数ビットモデリング部２０に入力される。また、その際、交換制御部２４０は、コードブロックＤＤに関連する回転角や反転方向に関する情報を含む制御情報ＥＤを生成して出力する。制御情報ＥＤは、図１に示したビットストリーム生成部２３に入力される。なお、交換制御部２４０は、コードブロックＤＤとは別個の信号として制御情報ＥＤを出力するのではなく、コードブロックＤＤに制御情報ＥＤを付加して出力してもよい。この場合、図１を参照して、制御情報ＥＤは、係数ビットモデリング部２０、算術符号化部２１、及び符号量制御部２２をこの順にパスして、ビットストリーム生成部２３に入力される。
【００４５】
なお、以上の説明では、コードブロックＡＴを記憶装置２４１に書き込む際に書き込みアドレスＣＴＷに基づいて回転反転処理を行い、コードブロックＤＤを記憶装置２４１から読み出す際にはラスタ走査順にアクセスする例について述べた。これとは逆に、コードブロックＡＴを記憶装置２４１に書き込む際にはラスタ走査順で記憶装置２４１へのアクセスを行い、コードブロックＤＤを記憶装置２４１から読み出す際に、読み出しアドレスＣＴＲに基づいて所定の順序で記憶装置２４１にアクセスすることにより、回転反転処理を行ってもよい。この場合、交換制御部２４０は、回転反転制御情報ＳＳと変換係数ＱＤのサブバンド情報とに基づいて制御信号ＤＴを生成し、アドレス生成部２４２は、制御信号ＤＴに基づいて読み出しアドレスＣＴＲを生成する。
【００４６】
図５〜９は、画像の回転処理と変換係数ＱＤのサブバンドとの関係を説明するための模式図である。図５に示した画像に対して一回だけＤＷＴを実行すると、図６に示した変換係数が得られる。ＬＬ成分には画像の本質的な部分が含まれ、ＨＬ成分には垂直方向に伸びるエッジ情報が含まれる。ＬＨ成分には水平方向に伸びるエッジ情報が含まれ、ＨＨ成分には斜め方向に伸びるエッジ情報が含まれる。各サブバンドの大きさは、ＤＷＴ前の原画像の大きさの１／４となる。なお、各サブバンドが１つのコードブロックに対応している場合を想定している。
【００４７】
図６に示した変換係数に対して９０°右回転の回転処理を実行すると、図７に示した変換係数が得られる。本実施の形態１に係る画像符号化装置１では、図１に示したように、ＤＷＴ部１３でＤＷＴ処理を行った後に方向変換部２４で回転処理が行われるため、図５に示した画像が画像符号化装置１への入力画像である場合、図７に示した変換係数が得られることになる。
【００４８】
一方、図５に示した画像に対して９０°右回転の回転処理を実行すると図８に示した画像が得られ、図８に示した画像に対して一回だけＤＷＴを実行すると、図９に示した変換係数が得られる。図９に示した変換係数が、目的とする変換係数である。
【００４９】
図７と図９とを比較すると、ＨＬ成分及びＬＨ成分の各サブバンドが、互いに入れ替わった関係になっていることが分かる。従って、目的とする図９の変換係数を得るためには、方向変換部２４から出力される図７の変換係数（コードブロックＤＤに相当する）に対して、ＨＬ成分とＬＨ成分とを互いに入れ換える処理が必要となる。この入れ換え処理は、制御情報ＥＤに基づいて、ビットストリーム生成部２３によって実行される。
【００５０】
９０°右回転の回転処理と同様に、２７０°右回転の場合にも、ＨＬ成分とＬＨ成分との入れ換え処理が必要となる。０°右回転や１８０°右回転の場合には、かかる入れ換え処理は不要である。制御情報ＥＤには回転角に関する情報が含まれているため、ビットストリーム生成部２３は、制御情報ＥＤに基づき、回転角が９０°又は２７０°の場合にＨＬ成分とＬＨ成分との入れ換え処理を実行する。
【００５１】
さて次に、変換係数ＱＤの各サブバンドが３２×３２のコードブロックＡＴに分割される場合を例にとり、図４に示したアドレス生成部２４２による書き込みアドレスＣＴＷの生成手法について説明する。
【００５２】
図１０は、図４に示した記憶装置２４１の記憶領域を示す模式図である。３２×３２のコードブロックＡＴに対応して、“０”〜“１０２３”までのアドレスが、図１０に示すようにラスタ走査順に割り当てられている。図１０では、コードブロック幅（行方向のサイズ）をＣＷ、コードブロック高さ（列方向のサイズ）をＣＨ、４つの頂点をそれぞれＡ，Ｂ，Ｃ，Ｄと定義している。
【００５３】
一般化すると、頂点Ａ，Ｂ，Ｃ，Ｄの各アドレスは、下記のように与えられる。
【００５４】
【数１】
2011120305.tif 000003
【００５５】
図１０に示した例では、コードブロック幅ＣＷ＝３２、コードブロック高さＣＨ＝３２であるため、Ａ＝０、Ｂ＝３１、Ｃ＝９９２、Ｄ＝１０２３となる。
【００５６】
図１０に対応して、コードブロックＡＴの書き込みの際に記憶装置２４１にアクセスするアドレス（Access address）ｋを求める式は、下記式のようになる。
【００５７】
【数２】
2011120305.tif 000004
【００５８】
例えば右回転角度０°かつ反転無しの場合は、頂点Ａから頂点Ｂに向けて、頂点Ｄまでラスタ走査する必要がある。従って、アドレス生成部２４２は、上記式において、開始アドレスＡＤＲＳstart＝Ａ、ＭＡＸＷ＝ＣＷ、ＭＡＸＨ＝ＣＨ、画素増加分Δp＝１、ライン増加分Δl＝ＣＷとして、アクセスアドレスｋを求める。なお、この場合は、ビットストリーム生成部２３によるＬＨ成分とＨＬ成分との入れ換え処理は不要である。
【００５９】
また、例えば右回転角度９０°かつ反転無しの場合は、頂点Ｃから頂点Ａに向けて、頂点Ｄまでラスタ走査する必要がある。従って、アドレス生成部２４２は、上記式において、開始アドレスＡＤＲＳstart＝Ｃ、ＭＡＸＷ＝ＣＨ、ＭＡＸＨ＝ＣＷ、画素増加分Δp＝−ＣＨ、ライン増加分Δl＝１として、アクセスアドレスｋを求める。なお、この場合は、ビットストリーム生成部２３によるＬＨ成分とＨＬ成分との入れ換え処理が必要である。
【００６０】
また、例えば右回転角度０°かつ左右反転の場合は、頂点Ｂから頂点Ａに向けて、頂点Ｃまでラスタ走査する必要がある。従って、アドレス生成部２４２は、上記式において、開始アドレスＡＤＲＳstart＝Ｂ、ＭＡＸＷ＝ＣＷ、ＭＡＸＨ＝ＣＨ、画素増加分Δp＝−１、ライン増加分Δl＝ＣＷとして、アクセスアドレスｋを求める。なお、この場合は、ビットストリーム生成部２３によるＬＨ成分とＨＬ成分との入れ換え処理は不要である。
【００６１】
また、例えば右回転角度９０°かつ上下反転の場合は、頂点Ｄから頂点Ｂに向けて、頂点Ａまでラスタ走査する必要がある。従って、アドレス生成部２４２は、上記式において、開始アドレスＡＤＲＳstart＝Ｄ、ＭＡＸＷ＝ＣＨ、ＭＡＸＨ＝ＣＷ、画素増加分Δp＝−ＣＨ、ライン増加分Δl＝−１として、アクセスアドレスｋを求める。なお、この場合は、ビットストリーム生成部２３によるＬＨ成分とＨＬ成分との入れ換え処理が必要である。
【００６２】
右回転角度（０°，９０°，１８０°，２７０°）、左右反転の有無、及び上下反転の有無についての代表的な組合せに関して、開始アドレスＡＤＲＳstart、ＭＡＸＷ、ＭＡＸＨ、画素増加分Δp、ライン増加分Δl、及びＬＨ成分とＨＬ成分との入れ換え処理の要否（有無）をまとめると、下記の表のようになる。
【００６３】
【表１】
2011120305.tif 000005
【００６４】
図４を参照して、アドレス生成部２４２は、アクセスアドレスｋに関する上記式と、この表に関するデータテーブルとを保持している。また、回転反転制御情報ＳＳには、右回転角度、左右反転の有無、及び上下反転の有無に関する情報が含まれており、これらの情報は、制御信号ＤＴとしてアドレス生成部２４２に与えられる。
【００６５】
アドレス生成部２４２は、アクセスアドレスｋに関する上記式と、上記の表に関するデータテーブルと、制御信号ＤＴとに基づいて、回転角及び反転方向に応じた適切な書き込みアドレスＣＴＷを生成する。これにより、記憶装置２４１へのコードブロックＡＴの書き込みの際に、所望の回転反転処理が実現される。また、この場合、アドレス生成部２４２は、右回転角度０°、左右反転無し、及び上下反転無しの条件で読み出しアドレスＣＴＲを生成することにより、記憶装置２４１からラスタ走査順でコードブロックＤＤが読み出される。
【００６６】
なお、ここでは、コードブロックＡＴを記憶装置２４１に書き込む際に回転反転処理を行う例について述べたが、上記の通り、コードブロックＤＤを記憶装置２４１から読み出す際に回転反転処理を行うこともできる。この場合、アドレス生成部２４２は、右回転角度０°、左右反転無し、及び上下反転無しの条件で書き込みアドレスＣＴＷを生成することにより、コードブロックＡＴがラスタ走査順で記憶装置２４１に書き込まれる。そして、アドレス生成部２４２が、アクセスアドレスｋに関する上記式と、上記の表に関するデータテーブルと、制御信号ＤＴとに基づいて、回転角及び反転方向に応じた適切な読み出しアドレスＣＴＲを生成することにより、記憶装置２４１からのコードブロックＤＤの読み出しの際に、所望の回転反転処理が実現される。
【００６７】
＜ＤＷＴ部１３の処理＞
以下、図１に示したＤＷＴ部１３によって実行されるＤＷＴの処理内容について、詳細に説明する。
【００６８】
ＪＰＥＧ２０００  Ｐａｒｔ１で使用されるＤＷＴ（分解側）には、以下のような規則がある。
【００６９】
・偶数番目の出力はローパスであり、奇数番目の出力はハイパスである。
【００７０】
・Ｐａｒｔ１  Ｐｒｏｆｉｌｅ０では、各サブバンドの左上角を原点としているので、最初は必ずローパスの出力になる。
【００７１】
次に、ＤＷＴを実行するためにＤＷＴ部１３に余分に読み出さなくてはならないデータ数について考察する。図１１は、９×７タップのフィルタを用いてＤＷＴを実行する場合における、入出力データの位置関係を示す図である。（ａ）は、注目データ列が偶数番目のデータ（ローパスデータＬ）から始まって、データ数が偶数個である場合を示しており、（ｂ）は、注目データ列が偶数番目のデータ（ローパスデータＬ）から始まって、データ数が奇数個である場合を示しており、（ｃ）は、注目データ列が奇数番目のデータ（ハイパスデータＨ）から始まって、データ数が偶数個である場合を示しており、（ｄ）は、注目データ列が奇数番目のデータ（ハイパスデータＨ）から始まって、データ数が奇数個である場合を示している。９×７タップのフィルタを使用した場合、開始データの奇数／偶数とデータ数の奇数／偶数との組合せにより、図１１に示した４通りのパターンが考えられる。なお、Ｐａｒｔ１  Ｐｒｏｆｉｌｅ０では、必ず偶数番目のデータが開始データとなるため、図１１の（ａ）及び（ｂ）の場合のみである。
【００７２】
なお、ロスレス圧縮で使用される５×３タップのフィルタの場合であっても、入出力データの位置関係は図１１と同様となる。９×７タップのフィルタを使用した場合との相違点は、フィルタのタップ数が、ローパス側が５タップとなり、ハイパス側が３タップになることだけである。
【００７３】
ＪＰＥＧ２０００方式によると、ＤＷＴでは、まず垂直フィルタをかけ、次に水平フィルタをかけるという処理の順序が定められている。従って、ＪＰＥＧ２０００方式で復号化する場合を考えると、合成フィルタによって完全に元に戻すためには、垂直フィルタ及び水平フィルタの実行順序や、ハイパスデータＨ及びローパスデータＬの配列順序が、重要になってくる。
【００７４】
図１２は、１６行（第０行目から第１５行目まで）×１６列（第０列目から第１５列目まで）の画像信号に対して、垂直フィルタ→水平フィルタの順で２次元フィルタをかけた状況を示す図である。左図は垂直フィルタをかけた後の状況を示し、右図はさらに水平フィルタをかけた後の状況を示している。
【００７５】
図１２の左図に示すように、垂直フィルタをかけることにより、偶数番目の行の垂直成分はローパスデータＬとなり、奇数番目の行の垂直成分はハイパスデータＨとなる。図１２の右図に示すように、さらに水平フィルタをかけることにより、偶数番目の列の水平成分はローパスデータＬとなり、奇数番目の列の水平成分はハイパスデータＨとなる。なお、図１２の右図において、（ＬＬ）は水平成分及び垂直成分がいずれもＬであることを示し、（ＨＬ）は水平成分がＨで垂直成分がＬであることを示し、（ＬＨ）は水平成分がＬで垂直成分がＨであることを示し、（ＨＨ）は水平成分及び垂直成分がいずれもＨであることを示している。また、矢印Ｘは垂直方向を示し、矢印Ｙは水平方向を示している。
【００７６】
まず、反転処理について検討する。図１１の（ａ）及び（ｃ）のように、データ数が偶数個である場合は、反転処理を行うことによって出力データのＨ及びＬの位置が入れ替わる。一方、図１１の（ｂ）及び（ｄ）のように、データ数が奇数個である場合は、反転処理を行っても出力データのＨ及びＬの位置は入れ替わらない。従って、反転処理を行う場合には、ローパスフィルタ及びハイパスフィルタの出力の実行順序を、データ数の奇数／偶数に応じて入れ換える必要がある。
【００７７】
具体的に、ＤＷＴ部１３は、ローパスフィルタ及びハイパスフィルタから成る水平フィルタと、同じくローパスフィルタ及びハイパスフィルタから成る垂直フィルタとを有している。また、図１では図示していないが、回転反転制御情報ＳＳがＤＷＴ部１３にも入力されている。そして、ＤＷＴ部１３は、回転反転制御情報ＳＳに基づき、左右反転処理を行う場合には、水平フィルタのローパスフィルタ及びハイパスフィルタの出力の実行順序を、反転すべきデータ列のデータ数が奇数である場合には入れ換えず、偶数である場合には入れ換える。同様に、ＤＷＴ部１３は、回転反転制御情報ＳＳに基づき、上下反転処理を行う場合には、垂直フィルタのローパスフィルタ及びハイパスフィルタの出力の実行順序を、反転すべきデータ列のデータ数が奇数である場合には入れ換えず、偶数である場合には入れ換える。
【００７８】
次に、回転処理について検討する。画像符号化装置１において回転処理を行う場合には、ＪＰＥＧ２０００方式での復号化の際に合成フィルタによって完全に元に戻すためには、方向変換部２４で回転処理を行った後に、（ＬＬ），（ＨＬ），（ＬＨ），（ＨＨ）の各成分の位置関係が図１２の右図のようになっている必要がある。このことは、反転処理についても同様である。
【００７９】
従って、入力画像に対して例えば左右反転処理と９０°右回転処理とを行いたい場合には、その反対の処理として、入力画像に対して左右反転処理と２７０°右回転処理（９０°左回転処理）とが事前に行われたのと同様の状態の画像信号を、方向変換部２４に入力する必要がある。図１３は、１６行×１６列の画像信号に対して回転反転処理を行う場合の、事前処理の内容を説明するための図である。図１３の左図は、図１２の右図の画像信号に対して左右反転処理が行われた状態の画像信号を示しており、図１３の右図は、図１３の左図の画像信号に対して２７０°右回転処理が行われた状態の画像信号を示している。つまり、上記の例のように入力画像に対して左右反転処理と９０°右回転処理とを行いたい場合には、図１３の右図の状態の画像信号を方向変換部２４に入力すればよい。
【００８０】
図１３の右図の画像信号を得るためには、ＤＷＴ部１３において、垂直フィルタ及び水平フィルタの実行順序を入れ換え、まず水平フィルタをかけ、次に垂直フィルタをかければよい。つまり、図１３の右図に関しては、（ＬＬ）は垂直成分及び水平成分がいずれもＬであることを示し、（ＨＬ）は垂直成分がＨで水平成分がＬであることを示し、（ＬＨ）は垂直成分がＬで水平成分がＨであることを示し、（ＨＨ）は垂直成分及び水平成分がいずれもＨであることを示している。
【００８１】
上記の例では９０°右回転処理を行いたい場合の例について述べたが、２７０°右回転を行いたい場合についても同様に、垂直フィルタ及び水平フィルタの実行順序を入れ換える必要がある。一方、０°右回転又は１８０°右回転を行いたい場合には、垂直フィルタ及び水平フィルタの実行順序を入れ換える必要はなく、通常の場合と同様に、まず垂直フィルタをかけ、次に水平フィルタをかければよい。
【００８２】
具体的に、ＤＷＴ部１３は、ローパスフィルタ及びハイパスフィルタから成る水平フィルタと、同じくローパスフィルタ及びハイパスフィルタから成る垂直フィルタとを有している。また、図１では図示していないが、回転反転制御情報ＳＳがＤＷＴ部１３にも入力されている。そして、ＤＷＴ部１３は、回転反転制御情報ＳＳに基づき、９０°右回転又は２７０°右回転を行いたい場合には、水平フィルタ→垂直フィルタの順にフィルタリング処理を実行する。一方、０°右回転又は１８０°右回転を行いたい場合には、垂直フィルタ→水平フィルタの順にフィルタリング処理を実行する。
【００８３】
以下、ＤＷＴ部１３の構成及び動作について、さらに詳細に説明する。ここでは、２次元ウェーブレット変換の一種であるラインベースウェーブレット変換の処理内容について説明する。
【００８４】
図１４は、ラインベースウェーブレット変換を実現するＤＷＴ部１３の第１の構成を示す図である。１器の垂直フィルタの後段に２器の水平フィルタが配置された構成となっている。０°右回転又は１８０°右回転を行いたい場合には、この構成のフィルタが使用される。なお、フィルタの個数は任意であり、フィルタの個数を増やすことによってデータ処理の高速化を図ることができ、逆に、フィルタの個数を減らすことによって回路規模を縮小することができる。データ処理の高速化と回路規模の縮小とはトレードオフの関係にあるため、目的や環境に応じてフィルタの個数を任意に設計すればよい。
【００８５】
図１４を参照して、まず、垂直フィルタによるフィルタリング処理が行われる。行に沿って注目列を一列ずつずらしていき、１行分の処理を終えると縦方向（列方向）に１行ずらす。垂直フィルタの係数は、同一行内ではＬ又はＨのいずれか一方であり、１行毎にＬ，Ｈが交互に切り換えられる。次に、垂直方向のローパス出力及びハイパス出力のそれぞれについて、水平フィルタによるフィルタリング処理が行われる。行に沿って注目画素を一画素ずつずらしていく。水平フィルタの係数は、１画素毎にＬ，Ｈが交互に切り換えられる。その結果、垂直方向のローパス出力に対応する水平フィルタにおいては、水平方向のローパス出力として（ＬＬ）成分が得られ、水平方向のハイパス出力として（ＨＬ）成分が得られる。垂直方向のハイパス出力に対応する水平フィルタにおいては、水平方向のローパス出力として（ＬＨ）成分が得られ、水平方向のハイパス出力として（ＨＨ）成分が得られる。
【００８６】
図１５は、ラインベースウェーブレット変換を実現するＤＷＴ部１３の第２の構成を示す図である。２器の水平フィルタの後段に１器の垂直フィルタが配置された構成となっている。９０°右回転又は２７０°右回転を行いたい場合には、この構成のフィルタが使用される。なお、フィルタの個数が任意であることは上述の通りである。
【００８７】
図１５を参照して、まず、水平方向の偶数ライン用及び奇数ライン用の各水平フィルタによるフィルタリング処理がそれぞれ行われる。行に沿って注目画素を一画素ずつずらしていく。水平フィルタの係数は、１画素毎にＬ，Ｈが交互に切り換えられる。１行分の処理を終えると縦方向に１行ずらし、同様の処理を繰り返す。水平フィルタからの出力が垂直フィルタの行数分貯まると、次に、垂直フィルタによるフィルタリング処理が行われる。行に沿って注目列を一列ずつずらしていき、１行分の処理を終えると縦方向に１行ずらす。垂直フィルタの係数は、同一行内ではＬ又はＨのいずれか一方であり、１行毎にＬ，Ｈが交互に切り換えられる。その結果、垂直方向のローパス出力に関しては、水平方向のローパス出力に対応して（ＬＬ）成分が得られ、水平方向のハイパス出力に対応して（ＬＨ）成分が得られる。垂直方向のハイパス出力に関しては、水平方向のローパス出力に対応して（ＨＬ）成分が得られ、水平方向のハイパス出力に対応して（ＨＨ）成分が得られる。
【００８８】
なお、構成が互いに異なる図１４のフィルタ構成と図１５のフィルタ構成とを別個に構築するのではなく、９０°右回転又は２７０°右回転を行いたい場合にも、図１４の構成を援用することも可能である。具体的には、図１４を参照して、垂直フィルタの係数のＬ，Ｈを、同一行内で１列毎に交互に切り換えるとともに、上側の水平フィルタの係数をＬ、下側の水平フィルタの係数をＨに固定すればよい。これにより、図１５と同様の（ＬＬ）成分、（ＬＨ）成分、（ＨＬ）成分、及び（ＨＨ）成分を出力することができる。
【００８９】
＜交換制御部２４０によるコードブロック分割処理＞
以下、図４に示した交換制御部２４０によって実行されるコードブロックの分割処理の内容について説明する。
【００９０】
図１６〜１８は、コードブロック１２１に分割された２次元画像１２０を示す図である。Ｐａｒｔ１  Ｐｒｏｆｉｌｅ０では、図１６に示すように、通常は各サブバンドの左上角を原点として、コードブロック１２１の分割処理が行われる。
【００９１】
図１３の左図には左右反転処理が行われた画像信号が示されているが、この画像信号に対応するためには、図１７に示すように、各サブバンドの右上角を原点としてコードブロック１２１の分割処理を行う。
【００９２】
また、図１３の右図には左右反転処理と２７０°右回転処理とが行われた画像信号が示されているが、この画像信号に対応するためには、図１８に示すように、各サブバンドの左上角を原点としてコードブロック１２１の分割処理を行う。
【００９３】
このように、交換制御部２４０は、回転反転制御情報ＳＳに基づき、各サブバンドの原点の位置を回転角及び反転方向に応じて可変に設定することにより、コードブロック１２１の分割処理を実行する。
【００９４】
＜係数ビットモデリング部２０の処理＞
以下、図１に示した係数ビットモデリング部２０の処理内容について説明する。上記の通り、係数ビットモデリング部２０は、図３に示した各ビットプレーン１２２k内の各ビットのコンテクスト判定を行い、ＥＢＣＯＴに基づいてコンテクストモデリングを行う。
【００９５】
図１には示していないが、係数ビットモデリング部２０には、回転反転制御情報ＳＳが入力されている。係数ビットモデリング部２０は、回転反転制御情報ＳＳに基づき、回転角が右９０°又は右２７０°である場合は、ＨＬ成分のコードブロックＤＤと、ＬＨ成分のコードブロックＤＤとを互いに入れ換えて、コンテクストモデリングを実行する。一方、回転角が右０°又は右１８０°である場合は、コードブロックＤＤの入れ換え処理を行わずに、コンテクストモデリングを実行する。
【００９６】
＜ビットストリーム生成部２３の処理＞
以下、図１に示したビットストリーム生成部２３の処理内容について説明する。
【００９７】
ビットストリーム生成部２３は、パケット化されたビットストリームを生成する。図１９，２０は、パケットの構成例を示す模式図である。パケットは、パケットボディと、その先頭に付加されるパケットヘッダとによって構成されている。パケットヘッダには、パケットデータを復号化するために必要となる様々な情報が含まれている。図１９に示したパケットのパケットボディには、ＨＬ成分のコードブロックに対応する部分の符号化データＣＤと、ＬＨ成分のコードブロックに対応する部分の符号化データＣＤと、ＨＨ成分のコードブロックに対応する部分の符号化データＣＤとが、この順に配置されている。図２０に示したパケットのパケットボディには、ＬＬ成分のコードブロックに対応する部分の符号化データＣＤが配置されている。
【００９８】
図１に示したように、ビットストリーム生成部２３には、方向変換部２４から制御情報ＥＤが入力されている。制御情報ＥＤには、回転角や反転方向に関する情報が含まれている。
【００９９】
ビットストリーム生成部２３は、制御情報ＥＤに基づき、回転角が右９０°又は右２７０°である場合には、図１９に示したパケットのパケットボディのうち、ＬＨ成分のコードブロックに対応する部分の符号化データＣＤと、ＨＬ成分のコードブロックに対応する部分の符号化データＣＤとを互いに入れ換えて、パケットデータを生成する。一方、回転角が右０°又は右１８０°である場合は、符号化データＣＤの入れ換え処理を行わずに、パケットデータを生成する。
【０１００】
＜画像符号化装置１の効果＞
本実施の形態１に係る画像符号化装置１によれば、回転処理部としての方向変換部２４は、コードブロック単位で画像の回転処理を行う。従って、記憶容量の大きなメモリを使用することなく、タイル歪みを発生させることもなく、効率良く画像の回転処理を実行することができる。
【０１０１】
また、アドレス生成部２４２が、書き込みアドレスＣＴＷ及び読み出しアドレスＣＴＲの一方を回転制御情報（回転反転制御情報ＳＳ）に基づいて生成するという、比較的簡易な処理によって、画像の回転処理を実行することができる。
【０１０２】
また、ビットストリーム生成部２３は、回転角が右９０°又は右２７０°である場合に、ＬＨ成分のコードブロックに対応する部分の画像データと、ＨＬ成分のコードブロックに対応する部分の画像データとを互いに置換する。これにより、回転処理に起因して画像データに不整合が生じる事態を回避することができる。
【０１０３】
また、ＤＷＴ部１３は、回転角に応じて垂直フィルタ及び水平フィルタの出力の実行順序を入れ換える。これにより、回転処理前のコードブロック内における各画素のフィルタ係数の組合せ（ＬＬ，ＨＬ，ＬＨ，ＨＨ）を、回転角に応じて異なる位置関係とすることができる。従って、回転処理後のコードブロックＤＤ内における（ＬＬ），（ＨＬ），（ＬＨ），（ＨＨ）の位置関係がＪＰＥＧ２０００方式での標準の位置関係（図１２の右図）となるような、回転処理前のコードブロックを、回転角毎に適切に生成することができる。
【０１０４】
また、本実施の形態１に係る画像符号化装置１によれば、反転処理部としての方向変換部２４は、コードブロック単位で画像の反転処理を行う。従って、記憶容量の大きなメモリを使用することなく、タイル歪みを発生させることもなく、効率良く画像の反転処理を実行することができる。
【０１０５】
また、アドレス生成部２４２が、書き込みアドレスＣＴＷ及び読み出しアドレスＣＴＲの一方を反転制御情報（回転反転制御情報ＳＳ）に基づいて生成するという、比較的簡易な処理によって、画像の反転処理を実行することができる。
【０１０６】
また、ＤＷＴ部１３は、反転すべきデータ数の奇偶に応じてローパスフィルタ及びハイパスフィルタの出力の実行順序を入れ換える。これにより、反転処理前のコードブロック内における各画素のフィルタ係数の組合せ（ＬＬ，ＨＬ，ＬＨ，ＨＨ）を、反転方向に応じて異なる位置関係とすることができる。従って、反転処理後のコードブロックＤＤ内における（ＬＬ），（ＨＬ），（ＬＨ），（ＨＨ）の位置関係がＪＰＥＧ２０００方式での標準の位置関係（図１２の右図）となるような、反転処理前のコードブロックを、反転方向毎に適切に生成することができる。
【０１０７】
実施の形態２．
上記実施の形態１では、入力された画像信号を符号化して圧縮画像を出力する画像符号化装置について説明したが、本実施の形態２では、入力された圧縮画像を復号化して画像信号を出力する画像復号化装置について説明する。以下、上記実施の形態１との相違点を中心に説明する。
【０１０８】
＜装置全体の概要＞
図２１は、本発明の実施の形態２に係る、ＪＰＥＧ２０００方式に基づいた画像復号化装置４００の構成を示す機能ブロック図である。図２１に示すように、画像復号化装置４００は、ＤＣレベルシフト部４１０、色空間変換部４１１、タイリング部４１２、逆ＤＷＴ部４１３、逆量子化部４１４、方向変換部４２４、係数ビットモデリング部４２０、算術復号化部４２１、及びビットストリーム解析部４２３を備えて構成されている。
【０１０９】
なお、画像復号化装置４００を構成するこれら各処理部４１０〜４１４，４２０，４２１，４２３，４２４の全部又は一部は、ハードウェアとして構成されていてもよいし、又はマイクロプロセッサを機能させるプログラムとして構成されていてもよい。
【０１１０】
ビットストリーム解析部４２３は、外部から入力された圧縮画像のビットストリームを解析し、符号化データＣＤと、付加情報（ヘッダ情報、レイヤ構成、スケーラビリティ、量子化テーブル等）とを分離する。
【０１１１】
算術復号化部４２１は、ビットストリーム解析部４２３から入力された符号化データＣＤを算術復号化することにより、復号化データＢＤを出力する。なお、本実施の形態２では算術復号化を採用するが、本発明はこれに限らず、他の方式のエントロピー復号化を採用しても構わない。
【０１１２】
係数ビットモデリング部４２０は、算術復号化部４２１から入力された復号化データＢＤに基づいて、コードブロックＤＤを生成する。
【０１１３】
方向変換部４２４は、係数ビットモデリング部４２０から入力されたコードブロックＤＤに基づいて、変換係数ＱＤを生成する。また、方向変換部４２４には外部から回転反転制御情報ＳＳが入力されており、方向変換部４２４は、回転反転制御情報ＳＳに基づいて、コードブロック単位で画像の回転処理及び反転処理を行う。つまり、方向変換部４２４は、コードブロック単位で画像の回転処理を行う回転処理部として機能するとともに、コードブロック単位で画像の反転処理を行う反転処理部としても機能する。但し、方向変換部４２４は、必ずしも回転処理及び反転処理の双方の機能を有する必要はなく、いずれか一方の機能のみを有していてもよい。さらに、方向変換部４２４は、回転角や反転方向に関する情報を含む制御情報ＥＤを出力する。
【０１１４】
逆量子化部４１４は、方向変換部４２４から入力された変換係数ＱＤをスカラー逆量子化することにより、スカラー逆量子化後の変換係数を出力する。また、逆量子化部４１４は、所定のビットシフト処理を行う機能も有している。
【０１１５】
逆ＤＷＴ部４１３は、逆量子化部４１４から入力された変換係数に対してタイル単位で整数型又は実数型の逆ＤＷＴを施し、その変換係数を高域成分と低域成分とに再帰的に帯域合成することにより、複数のタイルに分割された画像信号を生成する。
【０１１６】
タイリング部４１２は、逆ＤＷＴ部４１３から入力された画像信号に対して複数のタイルを合成する処理を行うことにより、画像信号を生成する。本発明では、タイル歪みの発生を回避又は抑制すべく、１フレーム分の画像信号が１タイルとして処理されている場合や、個々のサイズが比較的大きな少数のタイルに分割されている場合を想定している。１フレーム分の画像信号が１タイルとして処理されている場合には、逆ＤＷＴ部４１３から入力された画像信号をそのまま次段の機能ブロックに出力すればよい。但し、本発明は通常のタイリング処理が行われている装置にも適用可能である。
【０１１７】
色空間変換部４１１は、タイリング部４１２から入力された画像信号に対して、所定の色空間変換処理を行う。例えば、ＹＣｂＣｒ信号又はＹＵＶ信号をＲＧＢ信号に変換して出力する。
【０１１８】
ＤＣレベルシフト部４１０は、色空間変換部４１１から入力された画像信号に対して、必要に応じてＤＣレベル変換処理を行うことにより、画像信号（図２１における出力画像）を外部に出力する。
【０１１９】
＜方向変換部４２４の処理＞
以下、図２１に示した方向変換部４２４によって実行されるコードブロック単位での画像の回転反転処理について、詳細に説明する。
【０１２０】
図２２は、方向変換部４２４の構成を示す機能ブロック図である。図２２に示すように、方向変換部４２４は、交換制御部４２４０、アドレス生成部４２４２、及び記憶装置４２４１を備えて構成されている。
【０１２１】
記憶装置４２４１はＤＲＡＭ等の半導体メモリであり、コードブロックＤＤのデータサイズに相当する記憶容量を有している。交換制御部４２４０は、図２１に示した係数ビットモデリング部４２０から入力されたコードブロックＤＤを、アドレス生成部４２４２によって生成された書き込みアドレスＣＴＷに基づいて、記憶装置４２４１に書き込む。
【０１２２】
交換制御部４２４０には、回転角や反転方向に関する情報を含む回転反転制御情報ＳＳが、外部から入力されている。コードブロックＤＤを記憶装置４２４１に書き込む場合、交換制御部４２４０は、回転反転制御情報ＳＳと、コードブロックＤＤのサブバンド情報とに基づいて、制御信号ＤＴを生成する。制御信号ＤＴはアドレス生成部４２４２に入力され、アドレス生成部４２４２は、制御信号ＤＴに基づいて書き込みアドレスＣＴＷを生成する。
【０１２３】
画像の回転反転処理は、アドレス生成部４２４２が生成する書き込みアドレスＣＴＷによって実現される。つまり、コードブロックＤＤを記憶装置４２４１に書き込む際に、書き込みアドレスＣＴＷに基づいて記憶装置４２４１に所定の順序でアクセスすることにより、回転反転処理が施されたコードブロックＢＴが記憶装置４２４１に書き込まれる。書き込みアドレスＣＴＷの生成方法は、上記実施の形態１と同様である。
【０１２４】
その後、アドレス生成部４２４２によって生成された読み出しアドレスＣＴＲに基づいて、ラスタ走査順に記憶装置４２４１にアクセスすることにより、回転反転処理後のコードブロックＢＴが記憶装置４２４１から読み出される。交換制御部４２４０は、コードブロックＢＴに基づいて変換係数ＱＤを生成する。また、その際、交換制御部４２４０は、回転角や反転方向に関する情報を含む制御情報ＥＤを生成して出力する。制御情報ＥＤは、図２１に示したビットストリーム解析部４２３に入力される。
【０１２５】
なお、以上の説明では、コードブロックＤＤを記憶装置４２４１に書き込む際に書き込みアドレスＣＴＷに基づいて回転反転処理を行い、コードブロックＢＴを記憶装置４２４１から読み出す際にはラスタ走査順にアクセスする例について述べた。これとは逆に、コードブロックＤＤを記憶装置４２４１に書き込む際にはラスタ走査順で記憶装置４２４１へのアクセスを行い、コードブロックＢＴを記憶装置４２４１から読み出す際に、読み出しアドレスＣＴＲに基づいて所定の順序で記憶装置４２４１にアクセスすることにより、回転反転処理を行ってもよい。この場合、交換制御部４２４０は、回転反転制御情報ＳＳとコードブロックＤＤのサブバンド情報とに基づいて制御信号ＤＴを生成し、アドレス生成部４２４２は、制御信号ＤＴに基づいて読み出しアドレスＣＴＲを生成する。
【０１２６】
上記実施の形態１と同様に、回転角が右９０°又は右２７０°の場合は、方向変換部４２４に入力されるコードブロックＤＤに対して、ＨＬ成分とＬＨ成分とを互いに入れ換える処理が必要となる。この入れ換え処理は、制御情報ＥＤに基づいて、ビットストリーム解析部４２３によって実行される。０°右回転や１８０°右回転の場合には、かかる入れ換え処理は不要である。
【０１２７】
＜逆ＤＷＴ部４１３の処理＞
以下、図２２に示した逆ＤＷＴ部４１３によって実行される逆ＤＷＴの処理内容について、詳細に説明する。
【０１２８】
ＪＰＥＧ２０００  Ｐａｒｔ１で使用される逆ＤＷＴ（合成側）には、以下のような規則がある。
【０１２９】
・９×７タップのフィルタでは、偶数番目の入力は７画素であり、奇数番目の入力は９画素である。
【０１３０】
・Ｐａｒｔ１  Ｐｒｏｆｉｌｅ０では、各サブバンドの左上角を原点としているので、最初は必ずローパスの入力になる。
【０１３１】
次に、逆ＤＷＴを実行するために逆ＤＷＴ部４１３に余分に読み出さなくてはならないデータ数について考察する。図２３は、９×７タップのフィルタを用いて逆ＤＷＴを実行する場合における、入出力データの位置関係を示す図である。（ａ）は、注目データ列が偶数番目のデータ（ローパスデータＬ）から始まって、データ数が偶数個である場合を示しており、（ｂ）は、注目データ列が偶数番目のデータ（ローパスデータＬ）から始まって、データ数が奇数個である場合を示しており、（ｃ）は、注目データ列が奇数番目のデータ（ハイパスデータＨ）から始まって、データ数が偶数個である場合を示しており、（ｄ）は、注目データ列が奇数番目のデータ（ハイパスデータＨ）から始まって、データ数が奇数個である場合を示している。９×７タップのフィルタを使用した場合、開始データの奇数／偶数とデータ数の奇数／偶数との組合せにより、図２３に示した４通りのパターンが考えられる。なお、Ｐａｒｔ１  Ｐｒｏｆｉｌｅ０では、必ず偶数番目のデータが開始データとなるため、図２３の（ａ）及び（ｂ）の場合のみである。
【０１３２】
偶数番目の画素を合成する場合は７タップのフィルタとなっており、奇数番目の画素を合成する場合は９タップのフィルタとなっている。
【０１３３】
ＪＰＥＧ２０００方式によると、逆ＤＷＴでは、まず合成水平フィルタをかけ、次に合成垂直フィルタをかけるという処理の順序が定められている。従って、ＪＰＥＧ２０００方式で復号化する場合を考えると、合成フィルタによって完全に元に戻すためには、垂直フィルタ及び水平フィルタの実行順序や、ハイパスデータＨ及びローパスデータＬの配列順序が、重要になってくる。
【０１３４】
図２４は、１６行（第０行目から第１５行目まで）×１６列（第０列目から第１５列目まで）の画像信号に対して、合成水平フィルタ→合成垂直フィルタの順で２次元フィルタをかける状況を示す図である。図２４の左図は、合成水平フィルタをかける前の状況を示しており、右図は、合成水平フィルタをかけた後の状況を示している。
【０１３５】
図２４の左図において、（ＬＬ）は水平成分及び垂直成分がいずれもＬであることを示し、（ＨＬ）は水平成分がＨで垂直成分がＬであることを示し、（ＬＨ）は水平成分がＬで垂直成分がＨであることを示し、（ＨＨ）は水平成分及び垂直成分がいずれもＨであることを示している。また、矢印Ｘは垂直方向を示し、矢印Ｙは水平方向を示している。
【０１３６】
図２４の右図に示すように、合成水平フィルタをかけることにより、偶数番目の行はローパスデータＬとなり、奇数番目の行はハイパスデータＨとなる。
【０１３７】
まず、反転処理について検討する。図２３の（ａ）及び（ｃ）のように、データ数が偶数個である場合は、反転処理が行われたことによって入力データのＨ及びＬの位置が入れ替わる。一方、図２３の（ｂ）及び（ｄ）のように、データ数が奇数個である場合は、反転処理が行われても入力データのＨ及びＬの位置は入れ替わらない。従って、反転処理を行う場合には、ローパスフィルタ及びハイパスフィルタの入力の実行順序を、データ数の奇数／偶数に応じて入れ換える必要がある。
【０１３８】
具体的に、逆ＤＷＴ部４１３は、ローパスフィルタ及びハイパスフィルタから成る合成水平フィルタと、同じくローパスフィルタ及びハイパスフィルタから成る合成垂直フィルタとを有している。また、図２１では図示していないが、回転反転制御情報ＳＳが逆ＤＷＴ部４１３にも入力されている。そして、逆ＤＷＴ部４１３は、回転反転制御情報ＳＳに基づき、左右反転処理が行われた場合には、合成水平フィルタのローパスフィルタ及びハイパスフィルタの入力の実行順序を、反転されたデータ列のデータ数が奇数である場合には入れ換えず、偶数である場合には入れ換える。同様に、逆ＤＷＴ部４１３は、回転反転制御情報ＳＳに基づき、上下反転処理が行われた場合には、垂直フィルタのローパスフィルタ及びハイパスフィルタの入力の実行順序を、反転されたデータ列のデータ数が奇数である場合には入れ換えず、偶数である場合には入れ換える。
【０１３９】
次に、回転処理について検討する。画像復号化装置４００において回転処理を行う場合には、方向変換部４２４で回転処理を行う前に、（ＬＬ），（ＨＬ），（ＬＨ），（ＨＨ）の各成分の位置関係が図１２の右図のようになっている。このことは、反転処理についても同様である。
【０１４０】
図１２の右図の画像信号に対して左右反転処理を行うと、図１３の左図のようになる。また、図１３の左図の画像信号に対して２７０°右回転処理を行うと、図１３の右図のようになる。
【０１４１】
図１３の右図の画像信号を合成するためには、逆ＤＷＴ部４１３において、合成水平フィルタ及び合成垂直フィルタの実行順序を入れ換え、まず合成垂直フィルタをかけ、次に合成水平フィルタをかければよい。つまり、図１３の右図に関しては、（ＬＬ）は垂直成分及び水平成分がいずれもＬであることを示し、（ＨＬ）は垂直成分がＨで水平成分がＬであることを示し、（ＬＨ）は垂直成分がＬで水平成分がＨであることを示し、（ＨＨ）は垂直成分及び水平成分がいずれもＨであることを示している。
【０１４２】
上記の例では９０°右回転処理を行った場合の例について述べたが、２７０°右回転を行った場合についても同様に、合成水平フィルタ及び合成垂直フィルタの実行順序を入れ換える必要がある。一方、０°右回転又は１８０°右回転を行った場合には、合成水平フィルタ及び合成垂直フィルタの実行順序を入れ換える必要はなく、通常の場合と同様に、まず合成水平フィルタをかけ、次に合成垂直フィルタをかければよい。
【０１４３】
具体的に、逆ＤＷＴ部４１３は、ローパスフィルタ及びハイパスフィルタから成る合成水平フィルタと、同じくローパスフィルタ及びハイパスフィルタから成る合成垂直フィルタとを有している。また、図２１では図示していないが、回転反転制御情報ＳＳが逆ＤＷＴ部４１３にも入力されている。そして、逆ＤＷＴ部４１３は、回転反転制御情報ＳＳに基づき、９０°右回転又は２７０°右回転を行った場合には、合成垂直フィルタ→合成水平フィルタの順にフィルタリング処理を実行する。一方、０°右回転又は１８０°右回転を行った場合には、合成水平フィルタ→合成垂直フィルタの順にフィルタリング処理を実行する。
【０１４４】
以下、逆ＤＷＴ部４１３の構成及び動作について、さらに詳細に説明する。ここでは、２次元逆ウェーブレット変換の一種であるラインベース逆ウェーブレット変換の処理内容について説明する。
【０１４５】
図２５は、ラインベース逆ウェーブレット変換を実現する逆ＤＷＴ部４１３の第１の構成を示す図である。２器の合成水平フィルタの後段に１器の合成垂直フィルタが配置された構成となっている。０°右回転又は１８０°右回転を行った場合には、この構成のフィルタが使用される。
【０１４６】
図２５を参照して、まず、水平方向の偶数ライン用及び奇数ライン用の各合成水平フィルタによるフィルタリング処理がそれぞれ行われる。行に沿って注目画素を一画素ずつずらしていく。合成水平フィルタの係数は、１画素毎にＬ，Ｈが交互に切り換えられる。１行分の処理を終えると縦方向に１行ずらし、同様の処理を繰り返す。合成水平フィルタからの出力が合成垂直フィルタの行数分貯まると、次に、合成垂直フィルタによるフィルタリング処理が行われる。行に沿って注目列を一列ずつずらしていき、１行分の処理を終えると縦方向に１行ずらす。合成垂直フィルタの係数は、同一行内ではＬ又はＨのいずれか一方であり、１行毎にＬ，Ｈが交互に切り換えられる。
【０１４７】
図２６は、ラインベース逆ウェーブレット変換を実現する逆ＤＷＴ部４１３の第２の構成を示す図である。１器の合成垂直フィルタの後段に２器の合成水平フィルタが配置された構成となっている。９０°右回転又は２７０°右回転を行った場合には、この構成のフィルタが使用される。
【０１４８】
図２６を参照して、まず、合成垂直フィルタによるフィルタリング処理が行われる。行に沿って注目列を一列ずつずらしていき、１行分の処理を終えると縦方向に１行ずらす。合成垂直フィルタの係数は、同一行内ではＬ又はＨのいずれか一方であり、１行毎にＬ，Ｈが交互に切り換えられる。次に、垂直偶数出力及び垂直奇数出力のそれぞれについて、合成水平フィルタによるフィルタリング処理が行われる。行に沿って注目画素を一画素ずつずらしていく。合成水平フィルタの係数は、１画素毎にＬ，Ｈが交互に切り換えられる。
【０１４９】
なお、構成が互いに異なる図２５のフィルタ構成と図２６のフィルタ構成とを別個に構築するのではなく、９０°右回転又は２７０°右回転を行った場合にも、合成垂直フィルタ及び合成水平フィルタの各係数を適切に設定することで、図２５の構成を援用することが可能である。
【０１５０】
＜ビットストリーム解析部４２３の処理＞
以下、図２１に示したビットストリーム解析部４２３の処理内容について説明する。
【０１５１】
ビットストリーム解析部４２３には、パケット化されたビットストリームが、外部から入力される。図１９に示したように、パケットは、パケットボディとパケットヘッダとによって構成されており、パケットボディには、ＨＬ成分のコードブロックに対応する部分の符号化データＣＤと、ＬＨ成分のコードブロックに対応する部分の符号化データＣＤと、ＨＨ成分のコードブロックに対応する部分の符号化データＣＤとが、この順に配置されている。
【０１５２】
図２１に示したように、ビットストリーム解析部４２３には、方向変換部４２４から制御情報ＥＤが入力されている。制御情報ＥＤには、回転角や反転方向に関する情報が含まれている。
【０１５３】
ビットストリーム解析部４２３は、制御情報ＥＤに基づき、回転角が右９０°又は右２７０°である場合には、図１９に示したパケットのパケットボディのうち、ＬＨ成分のコードブロックに対応する部分の画像データと、ＨＬ成分のコードブロックに対応する部分の画像データとを互いに入れ換えて、図２１に示した符号化データＣＤを生成する。一方、回転角が右０°又は右１８０°である場合は、画像データの入れ換え処理を行わずに、図２１に示した符号化データＣＤを生成する。
【０１５４】
＜画像復号化装置４００の効果＞
本実施の形態２に係る画像復号化装置４００によれば、回転処理部としての方向変換部４２４は、コードブロック単位で画像の回転処理を行う。従って、記憶容量の大きなメモリを使用することなく、タイル歪みを発生させることもなく、効率良く画像の回転処理を実行することができる。
【０１５５】
また、アドレス生成部４２４２が書き込みアドレスＣＴＷ及び読み出しアドレスＣＴＲの一方を回転制御情報（回転反転制御情報ＳＳ）に基づいて生成するという、比較的簡易な処理によって、画像の回転処理を実行することができる。
【０１５６】
また、ビットストリーム解析部４２３は、回転角が右９０°又は右２７０°である場合に、ＬＨ成分のコードブロックに対応する部分の画像データと、ＨＬ成分のコードブロックに対応する部分の画像データとを互いに置換する。これにより、回転処理に起因して符号化データＣＤに不整合が生じる事態を回避することができる。
【０１５７】
また、逆ＤＷＴ部４１３は、回転角に応じて合成垂直フィルタ及び合成水平フィルタの実行順序を入れ換える。これにより、回転処理後のコードブロックＢＴから得られた変換係数ＱＤを、回転角に応じて適切に合成することができる。
【０１５８】
また、本実施の形態２に係る画像復号化装置４００によれば、反転処理部としての方向変換部４２４は、コードブロック単位で画像の反転処理を行う。従って、記憶容量の大きなメモリを使用することなく、タイル歪みを発生させることもなく、効率良く画像の反転処理を実行することができる。
【０１５９】
また、アドレス生成部４２４２が、書き込みアドレスＣＴＷ及び読み出しアドレスＣＴＲの一方を反転制御情報（回転反転制御情報ＳＳ）に基づいて生成するという、比較的簡易な処理によって、画像の反転処理を実行することができる。
【０１６０】
また、逆ＤＷＴ部４１３は、反転されたデータ数の奇偶に応じてローパスフィルタ及びハイパスフィルタの入力の実行順序を入れ換える。これにより、反転処理後のコードブロックＢＴから得られた変換係数ＱＤを、反転方向に応じて適切に合成することができる。
【符号の説明】
【０１６１】
１  画像符号化装置
１３  ＤＷＴ部
１４  量子化部
２１  算術符号化部
２３  ビットストリーム生成部
２４，４２４  方向変換部
１２１  コードブロック
２４０，４２４０  交換制御部
２４１，４２４１  記憶装置
２４２，４２４２  アドレス生成部
４００  画像復号化装置
４１３  逆ＤＷＴ部
４１４  逆量子化部
４２１  算術復号化部
４２３  ビットストリーム解析部
【図１】
2011120305.tif 000006
【図２】
2011120305.tif 000007
【図３】
2011120305.tif 000008
【図４】
2011120305.tif 000009
【図５】
2011120305.tif 000010
【図６】
2011120305.tif 000011
【図７】
2011120305.tif 000012
【図８】
2011120305.tif 000013
【図９】
2011120305.tif 000014
【図１０】
2011120305.tif 000015
【図１１】
2011120305.tif 000016
【図１２】
2011120305.tif 000017
【図１３】
2011120305.tif 000018
【図１４】
2011120305.tif 000019
【図１５】
2011120305.tif 000020
【図１６】
2011120305.tif 000021
【図１７】
2011120305.tif 000022
【図１８】
2011120305.tif 000023
【図１９】
2011120305.tif 000024
【図２０】
2011120305.tif 000025
【図２１】
2011120305.tif 000026
【図２２】
2011120305.tif 000027
【図２３】
2011120305.tif 000028
【図２４】
2011120305.tif 000029
【図２５】
2011120305.tif 000030
【図２６】
2011120305.tif 000031