(57)【要約】【課題】ループフィルタ処理で用いるラインメモリのメモリ容量を削減できるようにする。【解決手段】フィルタ演算部２６４は、復号処理して生成された画像のフィルタ処理画素に対して構築されたタップの画像データと係数セットを用いてフィルタ演算を行う。フィルタ制御部２６９は、ブロック内のタップ位置を判別して、タップ位置が下側ブロック境界から所定範囲内の位置である場合に、該所定範囲内の画像データを用いることなくフィルタ演算を行うように、所定範囲内のタップの画像データの置き換えまたは係数セットの変更を行う。【選択図】        図８
2013118605.tif 000002
【特許請求の範囲】
【請求項１】
符号化された画像を復号処理して画像を生成する復号部と、
前記復号部により生成された画像のフィルタ処理画素に対して構築されたタップの画像データと係数セットを用いてフィルタ演算を行うフィルタ演算部と、
前記タップ位置が下側ブロック境界から所定範囲内の位置である場合に、該所定範囲内の画像データを用いることなく前記フィルタ演算を行うように、前記所定範囲内のタップの画像データの置き換えまたは前記係数セットの変更を行うフィルタ制御部と
を備える画像処理装置。
【請求項２】
前記フィルタ制御部は、前記所定範囲の境界の外側に隣接する画素を垂直方向に複写して前記所定範囲内のタップとして用いるように、前記画像データの置き換えまたは前記係数セットの変更を行う請求項１記載の画像処理装置。
【請求項３】
前記フィルタ制御部は、前記所定範囲の境界の外側に隣接する画素の位置をミラー複写の軸として、前記所定範囲内のタップに対してミラー複写が行われた画素を用いるように、前記画像データの置き換えまたは前記係数セットの変更を行う請求項１記載の画像処理装置。
【請求項４】
前記フィルタ演算部は、前記符号化された画像に含められている係数セットの情報に基づいて構築された係数セットを用いてフィルタ演算を行う請求項１記載の画像処理装置。
【請求項５】
前記フィルタ制御部は、前記符号化された画像に含まれている選択情報に基づき、前記タップ位置が前記所定範囲内の位置となる場合に前記フィルタ演算を行うことなく画像データを出力する処理と、前記所定範囲内のタップの画像データの置き換えまたは前記係数セットの変更を行う処理の何れかを選択する請求項１記載の画像処理装置。
【請求項６】
前記フィルタ制御部は、前記所定範囲内の画像データを用いることなく前記フィルタ演算を行うように前記タップを縮小する請求項１記載の画像処理装置。
【請求項７】
前記所定範囲は、デブロッキングフィルタ処理のフィルタ処理範囲である請求項１記載の画像処理装置。
【請求項８】
前記所定範囲は、ＳＡＯ（Sample Adaptive Offset）処理が行われていない画素範囲である請求項１記載の画像処理装置。
【請求項９】
符号化された画像を復号処理して画像を生成する工程と、
前記復号処理により生成された画像のフィルタ処理画素に対して構築されたタップの画像データと係数セットを用いてフィルタ演算を行う工程と、
前記タップ位置が下側ブロック境界から所定範囲内の位置である場合に、該所定範囲内の画像データを用いることなく前記フィルタ演算を行うように、前記所定範囲内のタップの画像データの置き換えまたは前記係数セットの変更を行う工程と
含む画像処理方法。
【請求項１０】
画像を符号化する際にローカル復号処理された画像のフィルタ処理画素に対して構築されたタップの画像データと係数セットを用いてフィルタ演算を行うフィルタ演算部と、
前記タップ位置が下側ブロック境界から所定範囲内の位置である場合に、該所定範囲内の画像データを用いることなく前記フィルタ演算を行うように、前記所定範囲内のタップの画像データの置き換えまたは前記係数セットの変更を行うフィルタ制御部と、
前記フィルタ演算部によりフィルタ演算が行われた画像を用いて、前記画像を符号化する符号化部と
を備える画像処理装置。
【請求項１１】
前記フィルタ制御部は、前記フィルタ演算に用いた前記係数セットの情報を、前記符号化された画像に含める請求項１０記載の画像処理装置。
【請求項１２】
前記フィルタ制御部は、前記タップ位置が前記所定範囲内の位置となる場合に前記フィルタ演算を行うことなく画像データを出力する処理の符号化コストと、前記所定範囲内のタップの画像データの置き換えまたは前記係数セットの変更を行う処理の符号化コストを比較して、比較結果に基づき何れかの処理を選択して用いる請求項１０記載の画像処理装置。
【請求項１３】
前記フィルタ制御部は、前記選択された処理を示す選択情報を前記符号化された画像に含める請求項１２記載の画像処理装置。
【請求項１４】
画像を符号化する際にローカル復号処理された画像のフィルタ処理画素に対して構築されたタップの画像データと係数セットを用いてフィルタ演算を行う工程と、
前記タップ位置が下側ブロック境界から所定範囲内の位置である場合に、該所定範囲内の画像データを用いることなく前記フィルタ演算を行うように、前記所定範囲内のタップの画像データの置き換えまたは前記係数セットの変更を行う工程と、
前記フィルタ演算が行われた画像を用いて、前記画像を符号化する工程と
を含む画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この技術は、画像処理装置と画像処理方法に関する。詳しくは、ブロック単位で符号化処理と復号処理が行われた画像のループフィルタ処理で用いるラインメモリのメモリ容量を削減できるようにする。
【背景技術】
【０００２】
近年、画像情報をディジタルとして取り扱い、その際、効率の高い情報の伝送、蓄積を目的とし、画像情報特有の冗長性を利用して、離散コサイン変換等の直交変換と動き補償により圧縮するＭＰＥＧ２（ISO（International Organization for Standardization）/IEC（International Electrotechnical Commission）13818-2）などの方式に準拠した装置が、放送局などの情報配信、および一般家庭における情報受信の双方において普及している。また、ＭＰＥＧ２等に比べ、その符号化、復号により多くの演算量が要求されるものの、より高い符号化効率が実現されることができるＨ．２６４およびＭＰＥＧ４ Ｐａｒｔ１０（ＡＶＣ（Advanced Video Coding））と呼ばれる方式も用いられるようになった。さらに、昨今、ハイビジョン画像の４倍の４０００×２０００画素程度の高解像度画像の圧縮や配信等を効率よく行うことができるように、次世代の画像符号化方式であるＨＥＶＣ（High  Efficiency  Video  Coding）の標準化作業が、ITU-TとISO/IECとの共同の標準化団体であるJCTVC (Joint Collaboration Team - Video Coding)により進められている。
【０００３】
このような高い符号化効率を実現する画像符号化方式では、適応ループフィルタ（ALF（Adaptive Loop Filter））を用いて、デブロッキングフィルタ処理で残ってしまったブロック歪みや量子化による歪みの低減がはかられている（特許文献１，非特許文献１）。
【０００４】
また、ＨＥＶＣでは、非特許文献２に開示されているＰＱＡＯ（Picture Quality Adaptive Offset）をデブロックフィルタと適応ループフィルタの間に設けることが検討されている。オフセットの種類としては、バンドオフセットと呼ばれるものが２種類、エッジオフセットと呼ばれるものが６種類あり、さらに、オフセットを適応しないことも可能である。そして、画像をquad-treeに分割し、それぞれの領域に、上述したどのオフセットの種類により符号化するかを選択することで符号化効率を向上させる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１１−４９７４０号公報
【非特許文献】
【０００６】
【非特許文献１】Ken.McCann (Samsung/ZetaCast),Benjamin.Bross (HHI),Shun-ichi.Sekiguchi (Mitsubishi),Woo-Jin.Han (Samsung),"JCTVC-E602  HM3: High Efficiency Video Coding (HEVC) Test Model 3 Encoder Description",Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11，5th Meeting: Geneva, CH, 16-23 March, 2011
【非特許文献２】”CE8 Subtest 3:Picture Quality Adaptive Offset”,JCTVC-D122,2011年１月
【発明の概要】
【発明が解決しようとする課題】
【０００７】
適応ループフィルタでは、適応ループフィルタの処理対象画素に対してタップを設定して、タップの画像データを用いてフィルタ演算が行われる。タップは適応ループフィルタの前段に設けられたフィルタのフィルタ処理範囲に含まれる。すなわち、ループフィルタ処理では、適応ループフィルタの前段に設けられたフィルタのフィルタ処理後の画像データが必要となる。したがって、ループフィルタ処理を行う画像処理装置は、画像をブロック単位でラスタースキャン方向に処理する場合に、適応ループフィルタの前段に設けられたフィルタのフィルタ処理後に適応ループフィルタ処理を行うことができるように、境界から所定ライン数分の画像データをラインメモリに記憶する。
【０００８】
このように、画像処理装置は、タップが適応ループフィルタの前段に設けられたフィルタのフィルタ処理範囲に含まれる場合、適応ループフィルタの前段に設けられたフィルタのフィルタ処理後に適応ループフィルタ処理を行うことができるように、境界から所定ライン数分の画像データを記憶する必要がある。このため、水平方向の画素数が多くなると、メモリ容量の大きいラインメモリが必要となる。
【０００９】
そこで、この技術ではループフィルタ処理で用いるラインメモリのメモリ容量を削減できる画像処理装置と画像処理方法を提供する。
【課題を解決するための手段】
【００１０】
この技術の第１の側面は、符号化された画像を復号処理して画像を生成する復号部と、前記復号部により生成された画像のフィルタ処理画素に対して構築されたタップの画像データと係数セットを用いてフィルタ演算を行うフィルタ演算部と、前記タップ位置が下側ブロック境界から所定範囲内の位置である場合に、該所定範囲内の画像データを用いることなく前記フィルタ演算を行うように、前記所定範囲内のタップの画像データの置き換えまたは前記係数セットの変更を行うフィルタ制御部とを備える画像処理装置にある。
【００１１】
この技術においては、符号化された画像を復号処理して得られた画像のフィルタ処理画素に対して構築されたタップと係数セットを用いてフィルタ演算が行われる。タップ位置が下側ブロック境界から所定範囲内、例えばデブロッキングフィルタ処理のフィルタ処理範囲の位置である場合に、所定範囲の境界の外側に隣接する画素を垂直方向に複写して所定範囲内のタップとして用いるように、画像データの置き換えまたは係数セットの変更を行い、または、所定範囲の境界の外側に隣接する画素の位置をミラー複写の軸として、所定範囲内のタップに対してミラー複写が行われた画素を用いるように、画像データの置き換えまたは係数セットの変更を行うことで、所定範囲内の画像データを用いることなくフィルタ演算が行われる。また、ブロック単位で符号化処理を行うことにより生成された符号化された画像に含められている係数セットの情報に基づいて、係数セットの構築が行われる。また、ブロック単位で符号化処理を行うことにより生成された符号化された画像に含められている係数セットの情報に基づいて、係数セットの構築が行われる。また、タップ位置が下側ブロック境界から所定範囲内の位置となることがないようにタップを縮小するようにしてもよい。
【００１２】
この技術の第２の側面は、符号化された画像を復号処理して画像を生成する工程と、前記復号処理により生成された画像のフィルタ処理画素に対して構築されたタップの画像データと係数セットを用いてフィルタ演算を行う工程と、前記タップ位置が下側ブロック境界から所定範囲内の位置である場合に、該所定範囲内の画像データを用いることなく前記フィルタ演算を行うように、前記所定範囲内のタップの画像データの置き換えまたは前記係数セットの変更を行う工程と含む画像処理方法にある。
。
【００１３】
この技術の第３の側面は、画像を符号化する際にローカル復号処理された画像のフィルタ処理画素に対して構築されたタップの画像データと係数セットを用いてフィルタ演算を行うフィルタ演算部と、前記タップ位置が下側ブロック境界から所定範囲内の位置である場合に、該所定範囲内の画像データを用いることなく前記フィルタ演算を行うように、前記所定範囲内のタップの画像データの置き換えまたは前記係数セットの変更を行うフィルタ制御部と、前記フィルタ演算部によりフィルタ演算が行われた画像を用いて、前記画像を符号化する符号化部とを備える画像処理装置にある。
【００１４】
この技術においては、画像を符号化する際にローカル復号処理された画像のフィルタ処理画素に対して構築されたタップの画像データと係数セットを用いてフィルタ演算が行われる。タップ位置が下側ブロック境界から所定範囲内、例えばデブロッキングフィルタ処理のフィルタ処理範囲の位置である場合に、所定範囲の境界の外側に隣接する画素を垂直方向に複写して所定範囲内のタップとして用いるように、画像データの置き換えまたは係数セットの変更を行い、または、所定範囲の境界の外側に隣接する画素の位置をミラー複写の軸として、所定範囲内のタップに対してミラー複写が行われた画素を用いるように、画像データの置き換えまたは係数セットの変更を行うことで、所定範囲内の画像データを用いることなくフィルタ演算が行われる。また、フィルタ演算に用いた係数セットの情報は、ブロック単位で符号化処理を行うことにより生成される符号化された画像に含められる。また、タップ位置が所定範囲内の位置となる場合にフィルタ演算を行うことなく画像データを出力する処理の符号化コストと、所定範囲内のタップの画像データの置き換えまたは係数セットの変更を行う処理の符号化コストを比較して、比較結果に基づき何れかの処理が選択される。
【００１５】
この技術の第４の側面は、画像を符号化する際にローカル復号処理された画像のフィルタ処理画素に対して構築されたタップの画像データと係数セットを用いてフィルタ演算を行う工程と、前記タップ位置が下側ブロック境界から所定範囲内の位置である場合に、該所定範囲内の画像データを用いることなく前記フィルタ演算を行うように、前記所定範囲内のタップの画像データの置き換えまたは前記係数セットの変更を行う工程と、前記フィルタ演算が行われた画像を用いて、前記画像を符号化する工程とを含む画像処理方法にある。
【発明の効果】
【００１６】
この技術によれば、復号処理された画像のフィルタ処理画素に対して構築されたタップの画像データと係数セットを用いたフィルタ演算が行われる。このため、適応ループフィルタの前段に設けられたフィルタのフィルタ処理後の画像データを用いることなく適応ループフィルタ処理を行うことができるので、適応ループフィルタの前段に設けられたフィルタのフィルタ処理後に適応ループフィルタ処理を行うことができるように画像データを記憶するラインメモリのメモリ容量を削減できる。
【図面の簡単な説明】
【００１７】
【図１】従来のループフィルタ処理においてラインメモリに記憶する画像データを説明するための図である。
【図２】画像符号化装置に適用した場合の構成を示す図である。
【図３】画像符号化動作を示すフローチャートである。
【図４】イントラ予測処理を示すフローチャートである。
【図５】インター予測処理を示すフローチャートである。
【図６】画像復号装置に適用した場合の構成を示す図である。
【図７】画像復号動作を示すフローチャートである。
【図８】ループフィルタ処理部の第１の実施の形態の構成を示す図である。
【図９】ループフィルタ処理部の第１の実施の形態の動作を示すフローチャートである。
【図１０】タップ形状を例示した図である。
【図１１】第１の実施の形態におけるデブロッキングフィルタ処理対応のタップ構築を例示した図である。
【図１２】第１の実施の形態におけるデブロッキングフィルタ処理対応の係数セット構築を例示した図である。
【図１３】デブロッキングフィルタ処理対応のタップ構築または係数セット構築を行った場合にラインメモリに記憶する画像データを示す図である。
【図１４】第２の実施の形態におけるデブロッキングフィルタ処理対応のタップ構築を例示した図である。
【図１５】第２の実施の形態におけるデブロッキングフィルタ処理対応の係数セット構築を例示した図である。
【図１６】ループフィルタ処理部の第３の実施の形態の構成を示す図である。
【図１７】ループフィルタ処理部の第３の実施の形態の動作を示すフローチャートである。
【図１８】ループフィルタがオフ状態とされる処理対象画素の位置を示した図である。
【図１９】仮想境界を設定した場合の従来の処理を説明するための図である。
【図２０】フィルタ形状を例示した図である。
【図２１】下端ラインが境界を越える場合の処理を説明するための図である。
【図２２】上端ラインが境界を越える場合の処理を説明するための図である。
【図２３】下端ラインが境界を越える場合にフィルタサイズやフィルタ形状を変更する処理を説明するための図である。
【図２４】上端ラインが境界を越える場合にフィルタサイズやフィルタ形状を変更する処理を説明するための図である。
【図２５】画像符号化装置に適用した場合の他の構成を示す図である。
【図２６】quad-tree構造を説明するための図である。
【図２７】エッジオフセットを説明するための図である。
【図２８】エッジオフセットの規則一覧表を示す図である。
【図２９】ラインメモリに記憶する画像データ（輝度データ）の関係を示している。
【図３０】ラインメモリに記憶する画像データ（色差データ）の関係を示している。
【図３１】画像符号化装置に適用した場合の他の構成の動作を示すフローチャートである。
【図３２】画像復号装置に適用した場合の他の構成を示す図である。
【図３３】画像復号装置に適用した場合の他の構成の動作を示すフローチャートである。
【図３４】タップを縮小する場合の処理を示すフローチャートである。
【図３５】タップを縮小する場合のループフィルタ処理部の動作（輝度データ）を説明するための図である。
【図３６】タップを縮小する場合のループフィルタ処理部の動作（色差データ）を説明するための図である。
【図３７】タップ数を削減する場合にループフィルタ処理を行わないラインを設けた処理を示すフローチャートである。
【図３８】ＳＡＯ処理済み最終ラインでループフィルタ処理を行わないようにした場合のループフィルタ処理部の動作（輝度データ）を説明するための図である。
【図３９】ＳＡＯ処理済み最終ラインでループフィルタ処理を行わないようにした場合のループフィルタ処理部の動作（色差データ）を説明するための図である。
【図４０】テレビジョン装置の概略的な構成の一例を示した図である。
【図４１】携帯電話機の概略的な構成の一例を示した図である。
【図４２】記録再生装置の概略的な構成の一例を示した図である。
【図４３】撮像装置の概略的な構成の一例を示した図である。
【発明を実施するための形態】
【００１８】
以下、本技術を実施するための形態について説明する。なお、説明は以下の順序で行う。
１．従来のループフィルタ処理
２．画像符号化装置に適用した場合の構成
３．画像符号化装置の動作
４．画像復号装置に適用した場合の構成
５．画像復号装置の動作
６．ループフィルタ処理部の基本構成と動作
７．ループフィルタ処理部の第１の実施の形態
８．ループフィルタ処理部の第２の実施の形態
９．ループフィルタ処理部の第３の実施の形態
１０．ループフィルタ処理部の第４の実施の形態
１１．ループフィルタ処理部の第５の実施の形態
１２．画像符号化装置に適用した場合の他の構成と動作
１３．画像復号装置に適用した場合の他の構成と動作
１４．ループフィルタ処理部の第６の実施の形態
１５．応用例
【００１９】
＜１．従来のループフィルタ処理＞
画像をブロック単位でラスタースキャン方向に処理する場合、ループフィルタの前段に設けられたフィルタ(例えばデブロッキングフィルタ)のフィルタ処理における垂直フィルタは、ループフィルタ処理を行うブロック（カレントブロック）と、カレントブロックの下側に隣接するブロックの画像データを用いて行われる。また、ループフィルタ処理は、デブロッキングフィルタ処理後の画像データを用いて行われる。このため、デブロッキングフィルタ処理後の画像データを用いてループフィルタ処理を行うことができるように、カレントブロックの所定ライン数分の画像データをラインメモリに記憶する。また、記憶している画像データと、下側に隣接するブロックの画像データを用いて行ったデブロッキングフィルタ処理後の画像データを用いて、ループフィルタ処理が行われる。
【００２０】
図１は、従来のループフィルタ処理においてラインメモリに記憶する画像データを説明するための図である。デブロッキングフィルタ処理における垂直フィルタでは、図１の（Ａ）に示すように、列毎にブロック境界から例えば４ラインの画像データを用いてブロック境界から３ライン分のデブロッキングフィルタ処理後の画像データを生成する。なお、デブロッキングフィルタの処理対象画素を二重丸で示している。また、ブロック例えばＬＣＵ(Largest Coding Unit)ａとＬＣＵｂのブロック境界を「ＢＢ」、デブロッキングフィルタのフィルタ処理範囲の上側境界を「ＤＢＵ」、下側境界を「ＤＢＬ」として示している。
【００２１】
適応ループフィルタでは、図１の（Ｂ），（Ｃ）に示すように、適応ループフィルタの処理対象画素（黒四角で示す）に対してタップを設定して、タップの画像データを用いてフィルタ演算が行われる。タップは例えば黒丸で示す位置と処理対象画素の位置に構築される。
【００２２】
ここで、図１の（Ｂ）に示すように、ループフィルタ処理の対象画素がブロック境界ＢＢから６ライン目の画素である場合、タップはデブロッキングフィルタのフィルタ処理範囲に含まれない。したがって、ループフィルタ処理を行う画像処理装置は、デブロッキングフィルタ処理後の画像データを用いることなくループフィルタ処理が可能である。しかし、図１の（Ｃ）に示すように、ループフィルタ処理の対象画素がブロック境界ＢＢから５ライン目の画素となると、タップはデブロッキングフィルタのフィルタ処理範囲に含まれる。すなわち、ループフィルタ処理では、デブロッキングフィルタ処理後の画像データが必要となる。したがって、ループフィルタ処理を行う画像処理装置は、デブロッキングフィルタ処理後にループフィルタ処理を行うことができるように、ブロック境界ＢＢから７ライン分の画像データをラインメモリに記憶する。
【００２３】
このように、画像処理装置は、タップがデブロッキングフィルタのフィルタ処理範囲に含まれる場合、デブロッキングフィルタ処理後にループフィルタ処理を行うことができるように、ブロック境界ＢＢから所定ライン数分の画像データを記憶する必要がある。このため、水平方向の画素数が多くなると、メモリ容量の大きいラインメモリが必要となる。
【００２４】
＜２．画像符号化装置に適用した場合の構成＞
図２は、本技術の画像処理装置を画像符号化装置に適用した場合の構成を示している。画像符号化装置１０は、アナログ／ディジタル変換部（Ａ／Ｄ変換部）１１、画面並べ替えバッファ１２、減算部１３、直交変換部１４、量子化部１５、可逆符号化部１６、蓄積バッファ１７、レート制御部１８を備えている。さらに、画像符号化装置１０は、逆量子化部２１、逆直交変換部２２、加算部２３、デブロッキングフィルタ処理部２４、ループフィルタ処理部２５、係数メモリ部２６、フレームメモリ２７、セレクタ２９、イントラ予測部３１、動き予測・補償部３２、予測画像・最適モード選択部３３を備えている。
【００２５】
Ａ／Ｄ変換部１１は、アナログの画像信号をディジタルの画像データに変換して画面並べ替えバッファ１２に出力する。
【００２６】
画面並べ替えバッファ１２は、Ａ／Ｄ変換部１１から出力された画像データに対してフレームの並べ替えを行う。画面並べ替えバッファ１２は、符号化処理に係るＧＯＰ（Group of Pictures）構造に応じてフレームの並べ替えを行い、並べ替え後の画像データを減算部１３とイントラ予測部３１と動き予測・補償部３２に出力する。
【００２７】
減算部１３には、画面並べ替えバッファ１２から出力された画像データと、後述する予測画像・最適モード選択部３３で選択された予測画像データが供給される。減算部１３は、画面並べ替えバッファ１２から出力された画像データと予測画像・最適モード選択部３３から供給された予測画像データとの差分である予測誤差データを算出して、直交変換部１４に出力する。
【００２８】
直交変換部１４は、減算部１３から出力された予測誤差データに対して、離散コサイン変換（DCT；Discrete Cosine Transform）、カルーネン・レーベ変換等の直交変換処理を行う。直交変換部１４は、直交変換処理を行うことにより得られた変換係数データを量子化部１５に出力する。
【００２９】
量子化部１５には、直交変換部１４から出力された変換係数データと、後述するレート制御部１８からレート制御信号が供給されている。量子化部１５は変換係数データの量子化を行い、量子化データを可逆符号化部１６と逆量子化部２１に出力する。また、量子化部１５は、レート制御部１８からのレート制御信号に基づき量子化パラメータ（量子化スケール）を切り替えて、量子化データのビットレートを変化させる。
【００３０】
可逆符号化部１６には、量子化部１５から出力された量子化データと、後述するイントラ予測部３１と動き予測・補償部３２および予測画像・最適モード選択部３３から予測モード情報が供給される。なお、予測モード情報には、イントラ予測またはインター予測に応じて、予測ブロックサイズを識別可能とするマクロブロックタイプ、予測モード、動きベクトル情報、参照ピクチャ情報等が含まれる。可逆符号化部１６は、量子化データに対して例えば可変長符号化、または算術符号化等により可逆符号化処理を行い、符号化された画像である符号化ストリームを生成して蓄積バッファ１７に出力する。また、可逆符号化部１６は、予測モード情報や後述する係数セットを示す情報等を可逆符号化して、符号化ストリームのヘッダ情報に付加する。
【００３１】
蓄積バッファ１７は、可逆符号化部１６からの符号化ストリームを蓄積する。また、蓄積バッファ１７は、蓄積した符号化ストリームを伝送路に応じた伝送速度で出力する。
【００３２】
レート制御部１８は、蓄積バッファ１７の空き容量の監視を行い、空き容量に応じてレート制御信号を生成して量子化部１５に出力する。レート制御部１８は、例えば蓄積バッファ１７から空き容量を示す情報を取得する。レート制御部１８は空き容量が少なくなっているとき、レート制御信号によって量子化データのビットレートを低下させる。また、レート制御部１８は蓄積バッファ１７の空き容量が十分大きいとき、レート制御信号によって量子化データのビットレートを高くする。
【００３３】
逆量子化部２１は、量子化部１５から供給された量子化データの逆量子化処理を行う。逆量子化部２１は、逆量子化処理を行うことで得られた変換係数データを逆直交変換部２２に出力する。
【００３４】
逆直交変換部２２は、逆量子化部２１から供給された変換係数データの逆直交変換処理を行うことで得られたデータを加算部２３に出力する。
【００３５】
加算部２３は、逆直交変換部２２から供給されたデータと予測画像・最適モード選択部３３から供給された予測画像データを加算して復号画像データを生成して、デブロッキングフィルタ処理部２４とフレームメモリ２７に出力する。
【００３６】
デブロッキングフィルタ処理部２４は、画像の符号化時に生じるブロック歪みを減少させるためのフィルタ処理を行う。デブロッキングフィルタ処理部２４は、加算部２３から供給された復号画像データ、すなわちローカル復号処理された復号画像の画像データからブロック歪みを除去するフィルタ処理を行い、デブロッキングフィルタ処理後の画像データをループフィルタ処理部２５に出力する。
【００３７】
ループフィルタ処理部２５は、係数メモリ部２６から供給された係数と復号画像データを用いて、適応ループフィルタ（ALF（Adaptive Loop Filter））処理を行う。ループフィルタ処理部２５は、フィルタとして、例えばウィナーフィルタ（Wiener Filter）が用いられる。もちろんウィナーフィルタ以外のフィルタを用いてもよい。ループフィルタ処理部２５は、フィルタ処理結果をフレームメモリ２７に供給し、参照画像の画像データとして記憶させる。また、ループフィルタ処理部２５は、ループフィルタ処理に用いた係数セットを示す情報を可逆符号化部１６に供給して符号化ストリームに含めるようにする。なお、可逆符号化部１６に供給する係数セットは、符号化効率が良好となるループフィルタ処理で用いる係数セットである。
【００３８】
フレームメモリ２７は、加算部２３から供給された復号画像データとループフィルタ処理部２５から供給されたフィルタ処理後の復号画像データを参照画像の画像データとして保持する。
【００３９】
セレクタ２９は、イントラ予測を行うためにフレームメモリ２７から読み出されたフィルタ処理前の参照画像データをイントラ予測部３１に供給する。また、セレクタ２９は、インター予測を行うためフレームメモリ２７から読み出されたフィルタ処理後の参照画像データを動き予測・補償部３２に供給する。
【００４０】
イントラ予測部３１は、画面並べ替えバッファ１２から出力された符号化対象画像の画像データとフレームメモリ２７から読み出したフィルタ処理前の参照画像データを用いて、候補となる全てのイントラ予測モードのイントラ予測処理を行う。さらに、イントラ予測部３１は、各イントラ予測モードに対してコスト関数値を算出して、算出したコスト関数値が最小となるイントラ予測モード、すなわち符号化効率が最良となるイントラ予測モードを、最適イントラ予測モードとして選択する。イントラ予測部３１は、最適イントラ予測モードで生成された予測画像データと最適イントラ予測モードに関する予測モード情報、および最適イントラ予測モードでのコスト関数値を予測画像・最適モード選択部３３に出力する。また、イントラ予測部３１は、後述するようにコスト関数値の算出で用いる発生符号量を得るため、各イントラ予測モードのイントラ予測処理において、イントラ予測モードに関する予測モード情報を可逆符号化部１６に出力する。
【００４１】
動き予測・補償部３２は、マクロブロックに対応する全ての予測ブロックサイズで動き予測・補償処理を行う。動き予測・補償部３２は、画面並べ替えバッファ１２から読み出された符号化対象画像における各予測ブロックサイズの画像毎に、フレームメモリ２７から読み出されたフィルタ処理後の参照画像データを用いて動きベクトルを検出する。さらに、動き予測・補償部３２は、検出した動きベクトルに基づいて復号画像に動き補償処理を施して予測画像の生成を行う。また、動き予測・補償部３２は、各予測ブロックサイズに対してコスト関数値を算出して、算出したコスト関数値が最小となる予測ブロックサイズ、すなわち符号化効率が最良となる予測ブロックサイズを、最適インター予測モードとして選択する。なお、最適インター予測モードの選択では、ループフィルタ処理部で係数セット毎にフィルタ処理された参照画像データを用いて行い、係数セットも考慮して最適インター予測モードを選択する。動き予測・補償部３２は、最適インター予測モードで生成された予測画像データと最適インター予測モードに関する予測モード情報、および最適インター予測モードでのコスト関数値を予測画像・最適モード選択部３３に出力する。また、動き予測・補償部３２は、コスト関数値の算出で用いる発生符号量を得るため、各予測ブロックサイズでのインター予測処理において、インター予測モードに関する予測モード情報を可逆符号化部１６に出力する。
【００４２】
予測画像・最適モード選択部３３は、イントラ予測部３１から供給されたコスト関数値と動き予測・補償部３２から供給されたコスト関数値を、マクロブロック単位で比較して、コスト関数値が少ない方を、符号化効率が最良となる最適モードとして選択する。また、予測画像・最適モード選択部３３は、最適モードで生成した予測画像データを減算部１３と加算部２３に出力する。さらに、予測画像・最適モード選択部３３は、最適モードの予測モード情報を可逆符号化部１６に出力する。なお、予測画像・最適モード選択部３３は、スライス単位でイントラ予測またはインター予測を行うようにしてもよい。
【００４３】
なお、請求項における符号化部は、予測画像データを生成するイントラ予測部３１や動き予測・補償部３２、予測画像・最適モード選択部３３、減算部１３、直交変換部１４、量子化部１５、可逆符号化部１６等で構成される。
【００４４】
＜３．画像符号化装置の動作＞
図３は、画像符号化動作を示すフローチャートである。ステップＳＴ１１において、Ａ／Ｄ変換部１１は入力された画像信号をＡ／Ｄ変換する。
【００４５】
ステップＳＴ１２において画面並べ替えバッファ１２は、画面並べ替えを行う。画面並べ替えバッファ１２は、Ａ／Ｄ変換部１１より供給された画像データを記憶し、各ピクチャの表示する順番から符号化する順番への並べ替えを行う。
【００４６】
ステップＳＴ１３において減算部１３は、予測誤差データの生成を行う。減算部１３は、ステップＳＴ１２で並べ替えられた画像の画像データと予測画像・最適モード選択部３３で選択された予測画像データとの差分を算出して予測誤差データを生成する。予測誤差データは、元の画像データに比べてデータ量が小さい。したがって、画像をそのまま符号化する場合に比べて、データ量を圧縮することができる。なお、予測画像・最適モード選択部３３でイントラ予測部３１から供給された予測画像と動き予測・補償部３２からの予測画像の選択がスライス単位で行われる場合、イントラ予測部３１から供給された予測画像が選択されたスライスでは、イントラ予測が行われる。また、動き予測・補償部３２からの予測画像が選択されたスライスでは、インター予測が行われる。
【００４７】
ステップＳＴ１４において直交変換部１４は、直交変換処理を行う。直交変換部１４は、減算部１３から供給された予測誤差データを直交変換する。具体的には、予測誤差データに対して離散コサイン変換、カルーネン・レーベ変換等の直交変換が行われ、変換係数データを出力する。
【００４８】
ステップＳＴ１５において量子化部１５は、量子化処理を行う。量子化部１５は、変換係数データを量子化する。量子化に際しては、後述するステップＳＴ２６の処理で説明されるように、レート制御が行われる。
【００４９】
ステップＳＴ１６において逆量子化部２１は、逆量子化処理を行う。逆量子化部２１は、量子化部１５により量子化された変換係数データを量子化部１５の特性に対応する特性で逆量子化する。
【００５０】
ステップＳＴ１７において逆直交変換部２２は、逆直交変換処理を行う。逆直交変換部２２は、逆量子化部２１により逆量子化された変換係数データを直交変換部１４の特性に対応する特性で逆直交変換する。
【００５１】
ステップＳＴ１８において加算部２３は、復号画像データの生成を行う。加算部２３は、予測画像・最適モード選択部３３から供給された予測画像データと、この予測画像と対応する位置の逆直交変換後のデータを加算して、復号画像データを生成する。
【００５２】
ステップＳＴ１９においてデブロッキングフィルタ処理部２４は、デブロッキングフィルタ処理を行う。デブロッキングフィルタ処理部２４は、加算部２３より出力された復号画像データをフィルタリングしてブロック歪みを除去する。
【００５３】
ステップＳＴ２０においてループフィルタ処理部２５は、ループフィルタ処理を行う。ループフィルタ処理部２５は、デブロッキングフィルタ処理後の復号画像データをフィルタリングして、デブロッキングフィルタ処理で残ってしまったブロック歪みや量子化による歪みを低減する。
【００５４】
ステップＳＴ２１においてフレームメモリ２７は、復号画像データを記憶する。フレームメモリ２７は、デブロッキングフィルタ処理前の復号画像データとループフィルタ処理後の復号画像データを記憶する。
【００５５】
ステップＳＴ２２においてイントラ予測部３１と動き予測・補償部３２は、それぞれ予測処理を行う。すなわち、イントラ予測部３１は、イントラ予測モードのイントラ予測処理を行い、動き予測・補償部３２は、インター予測モードの動き予測・補償処理を行う。この処理により、候補となる全ての予測モードでの予測処理がそれぞれ行われ、候補となる全ての予測モードでのコスト関数値がそれぞれ算出される。そして、算出されたコスト関数値に基づいて、最適イントラ予測モードと最適インター予測モードが選択され、選択された予測モードで生成された予測画像とそのコスト関数および予測モード情報が予測画像・最適モード選択部３３に供給される。
【００５６】
ステップＳＴ２３において予測画像・最適モード選択部３３は、予測画像データの選択を行う。予測画像・最適モード選択部３３は、イントラ予測部３１および動き予測・補償部３２より出力された各コスト関数値に基づいて、符号化効率が最良となる最適モードに決定する。さらに、予測画像・最適モード選択部３３は、決定した最適モードの予測画像データを選択して、減算部１３と加算部２３に供給する。この予測画像が、上述したように、ステップＳＴ１３，ＳＴ１８の演算に利用される。
【００５７】
ステップＳＴ２４において可逆符号化部１６は、可逆符号化処理を行う。可逆符号化部１６は、量子化部１５より出力された量子化データを可逆符号化する。すなわち、量子化データに対して可変長符号化や算術符号化等の可逆符号化が行われて、データ圧縮される。このとき、上述したステップＳＴ２２において可逆符号化部１６に入力された予測モード情報（例えばマクロブロックタイプや予測モード、動きベクトル情報、参照ピクチャ情報等を含む）や係数セットなども可逆符号化される。さらに、量子化データを可逆符号化して生成された符号化ストリームのヘッダ情報に、予測モード情報の可逆符号化データが付加される。
【００５８】
ステップＳＴ２５において蓄積バッファ１７は、蓄積処理を行い符号化ストリームを蓄積する。この蓄積バッファ１７に蓄積された符号化ストリームは適宜読み出され、伝送路を介して復号側に伝送される。
【００５９】
ステップＳＴ２６においてレート制御部１８は、レート制御を行う。レート制御部１８は、蓄積バッファ１７で符号化ストリームを蓄積するとき、オーバーフローまたはアンダーフローが蓄積バッファ１７で発生しないように、量子化部１５の量子化動作のレートを制御する。
【００６０】
次に、図３のステップＳＴ２２における予測処理を説明する。予測処理では、イントラ予測処理とインター予測処理を行う。イントラ予測処理では、処理対象のブロックの画像を、候補となる全てのイントラ予測モードでイントラ予測する。なお、イントラ予測において参照される参照画像の画像データは、デブロッキングフィルタ処理部２４とループフィルタ処理部２５によりフィルタ処理が行われることなくフレームメモリ２７に記憶されている参照画像データが用いられる。イントラ予測処理の詳細は後述するが、この処理により、候補となる全てのイントラ予測モードでイントラ予測が行われ、候補となる全てのイントラ予測モードに対してコスト関数値が算出される。そして、算出されたコスト関数値に基づいて、全てのイントラ予測モードの中から、符号化効率が最良となる１つのイントラ予測モードが選択される。
【００６１】
インター予測処理では、フレームメモリ２７に記憶されているフィルタ処理後の参照画像データを用いて、候補となる全てのインター予測モード（全ての予測ブロックサイズ）のインター予測処理を行う。インター予測処理の詳細は後述するが、この処理により、候補となる全てのインター予測モードで予測処理が行われ、候補となる全てのインター予測モードに対してコスト関数値が算出される。そして、算出されたコスト関数値に基づいて、全てのインター予測モードの中から、符号化効率が最良となる１つのインター予測モードが選択される。
【００６２】
次に、イントラ予測処理について図４のフローチャートを参照して説明する。ステップＳＴ３１でイントラ予測部３１は、各予測モードのイントラ予測を行う。イントラ予測部３１は、フレームメモリ２７に記憶されているフィルタ処理前の復号画像データを用いて、イントラ予測モード毎に予測画像データを生成する。
【００６３】
ステップＳＴ３２でイントラ予測部３１は、各予測モードに対するコスト関数値を算出する。例えば、候補となる全ての予測モードに対して、仮に可逆符号化処理までを行い、次の式（１）で表されるコスト関数値を各予測モードに対して算出する。
Cost(Mode∈Ω)=Ｄ+λ・Ｒ            ・・・（１）
【００６４】
Ωは、当該ブロック乃至マクロブロックを符号化するための候補となる予測モードの全体集合を示している。Ｄは、予測モードで符号化を行った場合の復号画像と入力画像との差分エネルギー（歪み）を示している。Ｒは、直交変換係数や予測モード情報等を含んだ発生符号量、λは、量子化パラメータＱＰの関数として与えられるラグランジュ乗数である。
【００６５】
また、候補となる全ての予測モードに対して、予測画像の生成、および、動きベクトル情報や予測モード情報などのヘッダビットまでを算出し、次の式（２）で表されるコスト関数値を各予測モードに対して算出する。
Cost(Mode∈Ω)=Ｄ+QPtoQuant(QP)・Header_Bit      ・・・（２）
【００６６】
Ωは、当該ブロック乃至マクロブロックを符号化するための候補となる予測モードの全体集合を示している。Ｄは、予測モードで符号化を行った場合の復号画像と入力画像との差分エネルギー（歪み）を示している。Header_Bitは、予測モードに対するヘッダビット、QPtoQuantは、量子化パラメータＱＰの関数として与えられる関数である。
【００６７】
ステップＳＴ３３でイントラ予測部３１は、最適イントラ予測モードを決定する。イントラ予測部３１は、ステップＳＴ３２において算出されたコスト関数値に基づいて、それらの中から、コスト関数値が最小値である１つのイントラ予測モードを選択して最適イントラ予測モードに決定する。
【００６８】
次に、図５のフローチャートを参照して、インター予測処理について説明する。ステップＳＴ４１で動き予測・補償部３２は、各予測モードに対して動きベクトルと参照画像をそれぞれ決定する。すなわち、動き予測・補償部３２は、各予測モードの処理対象のブロックについて、動きベクトルと参照画像をそれぞれ決定する。
【００６９】
ステップＳＴ４２で動き予測・補償部３２は、各予測モードに対して動き補償を行う。動き予測・補償部３２は、各予測モード（各予測ブロックサイズ）について、ステップＳＴ４１で決定された動きベクトルに基づいて、参照画像に対する動き補償を行い、各予測モードについて予測画像データを生成する。
【００７０】
ステップＳＴ４３で動き予測・補償部３２は、各予測モードに対して動きベクトル情報の生成を行う。動き予測・補償部３２は、各予測モードで決定された動きベクトルについて、符号化ストリームに含める動きベクトル情報を生成する。例えば、メディアン予測等を用いて予測動きベクトルを決定して、動き予測により検出した動きベクトルと予測動きベクトルの差を示す動きベクトル情報を生成する。このようにして生成された動きベクトル情報は、次のステップＳＴ４４におけるコスト関数値の算出にも用いられて、最終的に予測画像・最適モード選択部３３で対応する予測画像が選択された場合には、予測モード情報に含まれて可逆符号化部１６へ出力される。
【００７１】
ステップＳＴ４４で動き予測・補償部３２は、各インター予測モードに対して、コスト関数値の算出を行う。動き予測・補償部３２は、上述した式（１）または式（２）を用いてコスト関数値の算出を行う。
【００７２】
ステップＳＴ４５で動き予測・補償部３２は、最適インター予測モードを決定する。動き予測・補償部３２は、ステップＳＴ４４において算出されたコスト関数値に基づいて、それらの中から、コスト関数値が最小値である１つの予測モードを選択して最適インター予測モードに決定する。
【００７３】
＜４．画像復号装置に適用した場合の構成＞
入力画像を符号化して生成された符号化ストリームは、所定の伝送路や記録媒体等を介して画像復号装置に供給されて復号される。
【００７４】
図６は、本技術の画像処理装置を画像復号装置に適用した場合の構成を示している。画像復号装置５０は、蓄積バッファ５１、可逆復号部５２、逆量子化部５３、逆直交変換部５４、加算部５５、デブロッキングフィルタ処理部５６、ループフィルタ処理部５７、画面並べ替えバッファ５８、Ｄ／Ａ変換部５９を備えている。さらに、画像復号装置５０は、フレームメモリ６１、セレクタ６２，６５、イントラ予測部６３、動き補償部６４を備えている。
【００７５】
蓄積バッファ５１は、伝送されてきた符号化ストリームを蓄積する。可逆復号部５２は、蓄積バッファ５１より供給された符号化ストリームを、図２の可逆符号化部１６の符号化方式に対応する方式で復号する。また、可逆復号部５２は、符号化ストリームのヘッダ情報を復号して得られた予測モード情報をイントラ予測部６３や動き補償部６４、ループフィルタ処理の係数セットをループフィルタ処理部５７に出力する。
【００７６】
逆量子化部５３は、可逆復号部５２で復号された量子化データを、図２の量子化部１５の量子化方式に対応する方式で逆量子化する。逆直交変換部５４は、図２の直交変換部１４の直交変換方式に対応する方式で逆量子化部５３の出力を逆直交変換して加算部５５に出力する。
【００７７】
加算部５５は、逆直交変換後のデータとセレクタ６５から供給される予測画像データを加算して復号画像データを生成してデブロッキングフィルタ処理部５６とフレームメモリ６１に出力する。
【００７８】
デブロッキングフィルタ処理部５６は、加算部５５から供給された復号画像データに対してフィルタ処理を行い、ブロック歪みを除去してループフィルタ処理部５７に出力する。
【００７９】
ループフィルタ処理部５７は、図２のループフィルタ処理部２５と同様に構成されており、可逆復号部５２によって符号化ストリームから取得した係数セットの情報に基づき、デブロッキングフィルタ処理後の画像データのループフィルタ処理を行う。ループフィルタ処理部５７は、フィルタ処理後の画像データをフレームメモリ６１に供給し蓄積させるとともに、画面並べ替えバッファ５８に出力する。
【００８０】
画面並べ替えバッファ５８は、画像の並べ替えを行う。すなわち、図２の画面並べ替えバッファ１２により符号化の順番のために並べ替えられたフレームの順番が、元の表示の順番に並べ替えられて、Ｄ／Ａ変換部５９に出力される。
【００８１】
Ｄ／Ａ変換部５９は、画面並べ替えバッファ５８から供給された画像データをＤ／Ａ変換し、図示せぬディスプレイに出力することで画像を表示させる。
【００８２】
フレームメモリ６１は、加算部５５から供給されたフィルタ処理前の復号画像データとループフィルタ処理部５７から供給されたフィルタ処理後の復号画像データとを、参照画像の画像データとして保持する。
【００８３】
セレクタ６２は、可逆復号部５２から供給された予測モード情報に基づき、イントラ予測が行われた予測ブロックの復号が行われるとき、フレームメモリ６１から読み出されたフィルタ処理前の参照画像データをイントラ予測部６３に供給する。また、セレクタ２９は、可逆復号部５２から供給された予測モード情報に基づき、インター予測が行われた予測ブロックの復号が行われるとき、フレームメモリ６１から読み出されたフィルタ処理後の参照画像データを動き補償部６４に供給する。
【００８４】
イントラ予測部６３は、可逆復号部５２から供給された予測モード情報に基づいて予測画像の生成を行い、生成した予測画像データをセレクタ６５に出力する。
【００８５】
動き補償部６４は、可逆復号部５２から供給された予測モード情報に基づいて、動き補償を行い、予測画像データを生成してセレクタ６５に出力する。すなわち、動き補償部６４は、予測モード情報に含まれる動きベクトル情報と参照フレーム情報に基づいて、参照フレーム情報で示された参照画像に対して動きベクトル情報に基づく動きベクトルで動き補償を行い、予測画像データを生成する。
【００８６】
セレクタ６５は、イントラ予測部６３で生成された予測画像データを加算部５５に供給する。また、セレクタ６５は、動き補償部６４で生成された予測画像データを加算部５５に供給する。
【００８７】
なお、請求項における復号部は、可逆復号部５２、逆量子化部５３、逆直交変換部５４、加算部５５、イントラ予測部６３、動き補償部６４等で構成される。
【００８８】
＜５．画像復号装置の動作＞
次に、図７のフローチャートを参照して、画像復号装置５０で行われる画像復号動作について説明する。
【００８９】
ステップＳＴ５１で蓄積バッファ５１は、伝送されてきた符号化ストリームを蓄積する。ステップＳＴ５２で可逆復号部５２は、可逆復号処理を行う。可逆復号部５２は、蓄積バッファ５１から供給される符号化ストリームを復号する。すなわち、図２の可逆符号化部１６により符号化された各ピクチャの量子化データが得られる。また、可逆復号部５２、符号化ストリームのヘッダ情報に含まれている予測モード情報の可逆復号を行い、得られた予測モード情報をデブロッキングフィルタ処理部５６やセレクタ６２，６５に供給する。さらに、可逆復号部５２は、予測モード情報がイントラ予測モードに関する情報である場合、予測モード情報をイントラ予測部６３に出力する。また、可逆復号部５２は、予測モード情報がインター予測モードに関する情報である場合、予測モード情報を動き補償部６４に出力する。また、可逆復号部５２は、符号化ストリームを復号して得られたループフィルタ処理の係数セットをループフィルタ処理部５７に出力する。
【００９０】
ステップＳＴ５３において逆量子化部５３は、逆量子化処理を行う。逆量子化部５３は、可逆復号部５２により復号された量子化データを、図２の量子化部１５の特性に対応する特性で逆量子化する。
【００９１】
ステップＳＴ５４において逆直交変換部５４は、逆直交変換処理を行う。逆直交変換部５４は、逆量子化部５３により逆量子化された変換係数データを、図２の直交変換部１４の特性に対応する特性で逆直交変換する。
【００９２】
ステップＳＴ５５において加算部５５は、復号画像データの生成を行う。加算部５５は、逆直交変換処理を行うことにより得られたデータと、後述するステップＳＴ６０で選択された予測画像データを加算して復号画像データを生成する。これにより元の画像が復号される。
【００９３】
ステップＳＴ５６においてデブロッキングフィルタ処理部５６は、デブロッキングフィルタ処理を行う。デブロッキングフィルタ処理部５６は、加算部５５より出力された復号画像データのフィルタ処理を行い、復号画像に含まれているブロック歪みを除去する。
【００９４】
ステップＳＴ５７においてループフィルタ処理部５７は、ループフィルタ処理を行う。ループフィルタ処理部５７は、デブロッキングフィルタ処理後の復号画像データをフィルタリングして、デブロッキングフィルタ処理で残ってしまったブロック歪みや量子化による歪みを低減する。
【００９５】
ステップＳＴ５８においてフレームメモリ６１は、復号画像データの記憶処理を行う。
【００９６】
ステップＳＴ５９においてイントラ予測部６３と動き補償部６４は、予測処理を行う。イントラ予測部６３と動き補償部６４は、可逆復号部５２から供給される予測モード情報に対応してそれぞれ予測処理を行う。
【００９７】
すなわち、可逆復号部５２からイントラ予測の予測モード情報が供給された場合、イントラ予測部６３は、予測モード情報に基づいてイントラ予測処理を行い、予測画像データを生成する。また、可逆復号部５２からインター予測の予測モード情報が供給された場合、動き補償部６４は、予測モード情報に基づき動き補償を行い、予測画像データを生成する。
【００９８】
ステップＳＴ６０において、セレクタ６５は予測画像データの選択を行う。すなわち、セレクタ６５は、イントラ予測部６３から供給された予測画像と動き補償部６４で生成された予測画像データを選択して加算部５５に供給して、上述したように、ステップＳＴ５５において逆直交変換部５４の出力と加算させる。
【００９９】
ステップＳＴ６１において画面並べ替えバッファ５８は、画像並べ替えを行う。すなわち画面並べ替えバッファ５８は、図２の画像符号化装置１０の画面並べ替えバッファ１２により符号化のために並べ替えられたフレームの順序が、元の表示の順序に並べ替えられる。
【０１００】
ステップＳＴ６２において、Ｄ／Ａ変換部５９は、画面並べ替えバッファ５８からの画像データをＤ／Ａ変換する。この画像が図示せぬディスプレイに出力され、画像が表示される。
【０１０１】
＜６．ループフィルタ処理部の基本構成と動作＞
図２に示す画像符号化装置１０のループフィルタ処理部２５と図６に示す画像復号装置のループフィルタ処理部５７は、等しい構成および動作とされており、本技術の画像処理装置に相当する。
【０１０２】
ループフィルタ処理部は、ブロック単位で符号化処理と復号処理が行われたデブロッキング処理後の画像の処理対象画素に対してタップの構築と係数セットの構築を行い、タップの画像データと係数セットを用いてフィルタ演算を行う。また、ブロック内のタップ位置を判別して、タップ位置が下側のブロック境界から所定範囲内、例えばデブロッキングフィルタのフィルタ処理範囲内の位置となる場合、所定範囲内の画像データを用いることなくフィルタ演算を行うように、所定範囲内に位置するタップの画像データの置き換えまたは係数セットの変更を行う。
【０１０３】
以下、ループフィルタ処理部２５の構成および動作について詳細な説明を行う。また、ループフィルタ処理部５７については、ループフィルタ処理部２５との相違部分についての説明を行う。
【０１０４】
＜７．ループフィルタ処理部の第１の実施の形態＞
［ループフィルタ処理部の構成］
図８は、ループフィルタ処理部の第１の実施の形態の構成を示している。ループフィルタ処理部２５は、ラインメモリ２５１、タップ構築部２５２、係数構築部２５３、フィルタ演算部２５４、フィルタ制御部２５９を備えている。
【０１０５】
デブロッキングフィルタ処理部２４から出力された画像データは、ラインメモリ２５１とタップ構築部２５２に供給される。
【０１０６】
ラインメモリ２５１は、フィルタ制御部２５９からの制御信号に基づき、ループフィルタ処理を行うカレントブロックの下側ブロック境界から所定ライン数分の画像データを記憶する。また、ラインメモリ２５１は、制御信号に基づき記憶している画像データを読み出してタップ構築部２５２に出力する。
【０１０７】
タップ構築部２５２は、デブロッキングフィルタ処理部２４から供給された画像データやラインメモリ２５１に記憶されている画像データを用いて、ループフィルタの処理対象画素を基準としてタップを構築する。タップ構築部２５２は、構築したタップの画像データをフィルタ演算部２５４に出力する。
【０１０８】
係数構築部２５３は、係数メモリ部２６からフィルタ演算に用いる係数を読み出して、タップ構築部２５２で構築したタップに対応する係数を決定して、各タップの係数からなる係数セットを構築する。係数構築部２５３は、構築した係数セットをフィルタ演算部２５４に出力する。なお、ループフィルタ処理部５７の係数構築部は、可逆復号部５２から供給された係数セットを用いる。
【０１０９】
フィルタ演算部２５４は、タップ構築部２５２から供給されたタップの画像データと係数構築部２５３から供給された係数を用いて演算を行い、ループフィルタ処理後の画像データを生成する。
【０１１０】
フィルタ制御部２５９は、制御信号をラインメモリ２５１に供給して、ラインメモリ２５１への画像データの記憶および記憶されている画像データを読み出しを制御する。また、フィルタ制御部２５９はライン判定部２５９１を有している。フィルタ制御部２５９は、ライン判定部２５９１によってタップ位置が下側のブロック境界から所定範囲内、例えばデブロッキングフィルタのフィルタ処理範囲内の位置と判定された場合、所定範囲内の画像データを用いることなくフィルタ演算を行うように、タップ構築部２５２で生成するタップの画像データの置き換え、または係数構築部２５３で構築する係数セットの変更を行う。
【０１１１】
［ループフィルタ処理部の動作］
図９は、ループフィルタ処理部２５の第１の実施の形態の動作を示すフローチャートである。ステップＳＴ７１でループフィルタ処理部２５は、処理対象画素は通常ループフィルタ処理範囲内であるか判別する。ループフィルタ処理部２５は、ループフィルタの処理対象画素のライン位置が、デブロッキングフィルタのフィルタ処理範囲のタップを含まない位置であるか判別する。ループフィルタ処理部２５は、デブロッキングフィルタのフィルタ処理範囲にタップが含まれない場合、通常ループフィルタ処理範囲内と判別してステップＳＴ７２に進む。また、ループフィルタ処理部２５は、デブロッキングフィルタのフィルタ対象範囲にタップが含まれる場合、通常ループフィルタ処理範囲外であると判別してステップＳＴ７４に進む。
【０１１２】
ステップＳＴ７２で、ループフィルタ処理部２５は、タップの構築を行う。ループフィルタ処理部２５は、ループフィルタの処理対象画素を基準としてタップを構築してステップＳＴ７３に進む。
【０１１３】
ステップＳＴ７３でループフィルタ処理部２５は、係数セットの構築を行う。ループフィルタ処理部２５は、係数メモリ部２６から係数を読み出して、タップに対する係数を示す係数セットを構築してステップＳＴ７６に進む。
【０１１４】
ループフィルタ処理部２５は、ステップＳＴ７４，７５の何れかで、デブロッキングフィルタ処理対応のタップ構築または係数セットの構築の何れかを行う。
【０１１５】
デブロッキングフィルタ処理対応のタップ構築を行う場合、例えばステップＳＴ７４でループフィルタ処理部２５は、デブロッキングフィルタのフィルタ処理範囲の境界の外側に隣接する画素を垂直方向に複写してフィルタ処理範囲内のタップとして用いるように、フィルタ処理範囲内に位置するタップの画像データの置き換えを行う。
【０１１６】
デブロッキングフィルタ処理対応の係数セットの構築を行う場合、例えばステップＳＴ７５でループフィルタ処理部２５は、デブロッキングフィルタのフィルタ処理範囲の境界の外側に隣接する画素を垂直方向に複写してフィルタ処理範囲内のタップとして用いるように、係数を変更する。
【０１１７】
ステップＳＴ７６でループフィルタ処理部２５は、フィルタ演算を行う。ループフィルタ処理部２５はステップＳＴ７２〜７５の処理によって構築されたタップと係数セットを用いてフィルタ演算を行い、処理対象画素のループフィルタ処理後の画像データを算出する。
【０１１８】
ステップＳＴ７７でループフィルタ処理部２５は、通常ループフィルタ処理範囲内の最終ラインまでの処理が完了したか判別する。ループフィルタ処理部２５は、ＬＣＵにおいて通常ループフィルタ処理範囲内の最終ラインまでのループフィルタ処理が完了していない場合にはステップＳＴ７１に戻り、次のライン位置についてのループフィルタ処理を行う。ループフィルタ処理部２５は、最終ラインまでのループフィルタ処理が完了したと判別した場合にステップＳＴ７８に進む。
【０１１９】
ステップＳＴ７８でループフィルタ処理部２５は、最後のＬＣＵであるか判別する。ループフィルタ処理部２５は、ループフィルタ処理を行ったＬＣＵが最後のＬＣＵでない場合にはステップＳＴ７１に戻り、次のＬＣＵに対してループフィルタ処理を行う。また、ループフィルタ処理部２５は、ループフィルタ処理を行ったＬＣＵが最後のＬＣＵである場合にはループフィルタ処理を終了する。
【０１２０】
図１０は、ループフィルタ処理対象画素に対して構築されるタップ形状を例示しており、ループフィルタ処理対象画素を中心として、例えば水平方向が７タップで垂直方向が５タップである菱形状とされている。なお、ループフィルタ処理対象画素はタップＴ11の位置である。
【０１２１】
図１１は、デブロッキングフィルタ処理対応のタップ構築、図１２は、デブロッキングフィルタ処理対応の係数セット構築をそれぞれ例示している。なお、図１１，１２において「Ｃ0〜Ｃ11，Ｃa〜Ｃe」は係数、「Ｐ0〜Ｐ22」は各タップの画像データを示している。なお、以下の説明では、デブロッキングフィルタのフィルタ処理範囲の上側境界を「ＤＢＵ」とする。
【０１２２】
図１１の（Ａ）は、ループフィルタの処理対象画素が、デブロッキングフィルタのフィルタ処理範囲にタップが含まれないライン位置である場合を示している。図１１の（Ｂ），（Ｃ）は、処理対象画素が、デブロッキングフィルタのフィルタ処理範囲にタップが含まれるライン位置である場合を示している。図１１の（Ｂ），（Ｃ）の場合、ループフィルタ処理部２５は、デブロッキングフィルタのフィルタ処理範囲の境界の外側に隣接する画素を垂直方向に複写してフィルタ処理範囲内のタップとして用いるように、フィルタ処理範囲内に位置するタップの画像データの置き換えを行う。
【０１２３】
すなわち、図１１の（Ｂ）に示すように、デブロッキングフィルタのフィルタ処理範囲内のタップＴ20の画像データとしてタップＴ16の画像データＰ16を用いる。同様に、フィルタ処理範囲内のタップＴ21の画像データとしてタップＴ17の画像データＰ17、タップＴ22の画像データとしてタップＴ18の画像データＰ18を用いる。
【０１２４】
また、図１１の（Ｃ）に示すように、デブロッキングフィルタのフィルタ処理範囲内のタップＴ16，Ｔ20の画像データとしてタップＴ10の画像データＰ10を用いる。同様に、フィルタ処理範囲内のタップＴ17，Ｔ21の画像データとしてタップＴ11の画像データＰ11、タップＴ18，Ｔ22の画像データとしてタップＴ12の画像データＰ12を用いる。
【０１２５】
図１２の（Ａ）は、ループフィルタの処理対象画素が、デブロッキングフィルタのフィルタ処理範囲にタップが含まれないライン位置である場合を示している。図１２の（Ｂ），（Ｃ）は、処理対象画素が、デブロッキングフィルタのフィルタ処理範囲にタップが含まれるライン位置である場合を示している。図１２の（Ｂ），（Ｃ）の場合、ループフィルタ処理部２５は、デブロッキングフィルタのフィルタ処理範囲の境界の外側に隣接する画素を垂直方向に複写してフィルタ処理範囲内のタップとして用いるように、係数セットの変更を行う。
【０１２６】
すなわち、図１２の（Ｂ）に示すように、デブロッキングフィルタのフィルタ処理範囲の境界の外側に隣接するタップＴ16の係数にフィルタ処理範囲内のタップＴ20の係数を加算して係数Ｃａ（＝Ｃ2＋Ｃ6）とする。同様に、タップＴ17の係数にタップＴ21の係数を加算して係数Ｃｂ（＝Ｃ1＋Ｃ5）、タップＴ18の係数にタップＴ22の係数を加算して係数Ｃｃ（＝Ｃ0＋Ｃ4）とする。また、デブロッキングフィルタ処理対象範囲内のタップの係数を「０」とする。
【０１２７】
また、図１２の（Ｃ）に示すように、デブロッキングフィルタのフィルタ処理範囲の境界の外側に隣接するタップＴ9の係数にフィルタ処理範囲内のタップＴ7の係数を加算して係数Ｃａ（＝Ｃ7＋Ｃ9）とする。同様に、タップＴ10の係数にタップＴ16，Ｔ20の係数を加算して係数Ｃｂ（＝Ｃ2＋Ｃ6＋Ｃ10）、タップＴ11の係数にタップＴ17，Ｔ21の係数を加算して係数Ｃｃ（＝Ｃ1＋Ｃ5＋Ｃ11）とする。さらに、タップＴ12の係数にタップＴ18，Ｔ22の係数を加算して係数Ｃｄ（＝Ｃ0＋Ｃ4＋Ｃ10）、タップＴ13の係数にタップＴ19の係数を加算して係数Ｃｅ（＝Ｃ3＋Ｃ9）とする。また、デブロッキングフィルタ処理対象範囲内のタップの係数を「０」とする。
【０１２８】
このように、何れかのタップがデブロッキングフィルタのフィルタ処理範囲に含まれるようになった場合、デブロッキングフィルタ処理対応のタップ構築、またはデブロッキングフィルタ処理対応の係数セット構築を行う。したがって、デブロックフィルタ処理後の画像データを用いることなくループフィルタ処理を行うことが可能となり、デブロッキングフィルタ処理後にループフィルタ処理を行うことができるように画像データを記憶するラインメモリのメモリ容量を削減できる。
【０１２９】
例えば、図１１の（Ｂ），（Ｃ）または図１２の（Ｂ），（Ｃ）の処理を行う場合、図１３の（Ａ）に示すように、ループフィルタ処理の対象画素がブロック境界ＢＢから３ライン目の画素となると、デブロッキングフィルタ処理後の画像データが必要となる。したがって、デブロッキングフィルタ処理後にループフィルタ処理を行うことができるように、ブロック境界ＢＢから５ライン分の画像データをラインメモリに記憶すればよい。なお、図１３の（Ｂ）は、本技術を用いない場合に７ライン分の画像データをラインメモリに記憶することを示している。
【０１３０】
＜８．ループフィルタ処理部の第２の実施の形態＞
ループフィルタ処理部の第２の実施の形態は、第１の実施の形態に対してデブロッキングフィルタ処理対応のタップ構築とデブロッキングフィルタ処理対応の係数セット構築の動作が相違する。
【０１３１】
デブロッキングフィルタ処理対応のタップ構築を行う場合、ループフィルタ処理部２５は、デブロッキングフィルタのフィルタ処理範囲の境界の外側に隣接する画素の位置をミラー複写の軸とする。さらに、ループフィルタ処理部２５は、フィルタ処理範囲内のタップに対してミラー複写が行われた画素を用いるように、フィルタ処理範囲内に位置するタップの画像データの置き換えを行う。
【０１３２】
デブロッキングフィルタ処理対応の係数セット構築を行う場合、ループフィルタ処理部２５は、デブロッキングフィルタのフィルタ処理範囲の境界の外側に隣接する画素の位置をミラー複写の軸とする。さらに、ループフィルタ処理部２５は、フィルタ処理範囲内のタップに対してミラー複写が行われた画素を用いるように、係数セットの変更を行う。
【０１３３】
図１４は、デブロッキングフィルタ処理対応のタップ構築、図１５は、デブロッキングフィルタ処理対応の係数セット構築をそれぞれ例示している。なお、図１４，図１５において「Ｃ0〜Ｃ11，Ｃa〜Ｃh」は係数、「Ｐ0〜Ｐ22」は各タップの画像データを示している。
【０１３４】
図１４の（Ａ）は、ループフィルタの処理対象画素が、デブロッキングフィルタのフィルタ処理範囲にタップが含まれないライン位置である場合を示している。図１４の（Ｂ），（Ｃ）は、処理対象画素が、デブロッキングフィルタのフィルタ処理範囲にタップが含まれるライン位置である場合を示している。図１４の（Ｂ），（Ｃ）の場合、ループフィルタ処理部２５は、デブロッキングフィルタのフィルタ処理範囲の境界の外側に隣接する画素の位置をミラー複写の軸とする。さらに、ループフィルタ処理部２５は、フィルタ処理範囲内のタップに対してミラー複写が行われた画素を用いるように、フィルタ処理範囲内に位置するタップの画像データの置き換えを行う。
【０１３５】
すなわち、図１４の（Ｂ）に示すように、デブロッキングフィルタのフィルタ処理範囲内のタップＴ20の画像データとしてタップＴ10の画像データＰ10を用いる。同様に、フィルタ処理範囲内のタップＴ21の画像データとしてタップＴ11の画像データＰ11、タップＴ22の画像データとしてタップＴ12の画像データＰ12を用いる。
【０１３６】
また、図１４の（Ｃ）に示すように、デブロッキングフィルタのフィルタ処理範囲内のタップＴ15の画像データとしてタップＴ3の画像データＰ3を用いる。同様に、フィルタ処理範囲内のタップＴ16の画像データとしてタップＴ4の画像データＰ4、タップＴ17の画像データとしてタップＴ5の画像データＰ5、タップＴ18の画像データとしてタップＴ6の画像データＰ6、タップＴ19の画像データとしてタップＴ7の画像データＰ7を用いる。さらに、デブロッキングフィルタのフィルタ処理範囲内のタップＴ20の画像データとしてタップＴ0の画像データＰ0、タップＴ21の画像データとしてタップＴ1の画像データＰ1、タップＴ22の画像データとしてタップＴ2の画像データＰ2を用いる。
【０１３７】
図１５の（Ａ）は、ループフィルタの処理対象画素が、デブロッキングフィルタのフィルタ処理範囲にタップが含まれないライン位置である場合を示している。図１５の（Ｂ），（Ｃ）は、処理対象画素が、デブロッキングフィルタのフィルタ処理範囲にタップが含まれるライン位置である場合を示している。図１５の（Ｂ），（Ｃ）の場合、ループフィルタ処理部２５は、デブロッキングフィルタのフィルタ処理範囲の境界の外側に隣接する画素の位置をミラー複写の軸とする。さらに、ループフィルタ処理部２５は、フィルタ処理範囲内のタップに対してミラー複写が行われた画素を用いるように、係数セットの変更を行う。
【０１３８】
すなわち、図１５の（Ｂ）に示すように、デブロッキングフィルタのフィルタ処理範囲の境界の外側に隣接する画素の位置をミラー複写の軸として、互いに対象位置であるタップＴ10の係数にタップＴ20の係数を加算して係数Ｃａ（＝Ｃ2＋Ｃ10）とする。同様に、タップＴ11の係数にタップＴ21の係数を加算して係数Ｃｂ（＝Ｃ1＋Ｃ11）、タップＴ1の係数にタップＴ22の係数を加算して係数Ｃｃ（＝Ｃ0＋Ｃ10）とする。また、デブロッキングフィルタ処理対象範囲内のタップの係数を「０」とする。
【０１３９】
また、図１５の（Ｃ）に示すように、デブロッキングフィルタのフィルタ処理範囲の境界の外側に隣接する画素の位置をミラー複写の軸として、互いに対象位置であるタップＴ3の係数にタップＴ15の係数を加算して係数Ｃａ（＝Ｃ3＋Ｃ7）とする。同様に、タップＴ4の係数にタップＴ16の係数を加算して係数Ｃｂ（＝Ｃ4＋Ｃ6）、タップＴ5の係数にタップＴ17の係数を加算して係数Ｃｃ（＝Ｃ5＋Ｃ5）、タップＴ6の係数にタップＴ18の係数を加算して係数Ｃｄ（＝Ｃ4＋Ｃ6）、タップＴ7の係数にタップＴ19の係数を加算して係数Ｃｅ（＝Ｃ3＋Ｃ7）とする。さらに、タップＴ0の係数にタップＴ20の係数を加算して係数Ｃｆ（＝Ｃ0＋Ｃ2）、タップＴ1の係数にタップＴ21の係数を加算して係数Ｃｇ（＝Ｃ1＋Ｃ1）、タップＴ2の係数にタップＴ22係数を加算して係数Ｃｇ（＝Ｃ0＋Ｃ2）とする。
【０１４０】
このように、何れかのタップがデブロッキングフィルタのフィルタ処理範囲に含まれるようになった場合、デブロッキングフィルタ処理対応のタップ構築、またはデブロッキングフィルタ処理対応の係数セット構築を行う。したがって、デブロックフィルタ処理後の画像データを用いることなくループフィルタ処理を行うことが可能となり、第１の実施の形態と同様にラインメモリのメモリ容量を削減できる。
【０１４１】
＜９．ループフィルタ処理部の第３の実施の形態＞
［ループフィルタ処理部の構成］
図１６は、ループフィルタ処理部の第３の実施の形態の構成を示している。ループフィルタ処理部２５は、ラインメモリ２５１、タップ構築部２５２、係数構築部２５３、フィルタ演算部２５４、センタータップ出力部２５５、出力選択部２５６、フィルタ制御部２５９を備えている。
【０１４２】
デブロッキングフィルタ処理部２４から出力された画像データは、ラインメモリ２５１とタップ構築部２５２に供給される。
【０１４３】
ラインメモリ２５１は、フィルタ制御部２５９からの制御信号に基づき、ループフィルタ処理を行うカレントブロックの下側ブロック境界から所定ライン数分の画像データを記憶する。また、ラインメモリ２５１は、制御信号に基づき記憶している画像データを読み出してタップ構築部２５２に出力する。
【０１４４】
タップ構築部２５２は、デブロッキングフィルタ処理部２４から供給された画像データやラインメモリ２５１に記憶されている画像データを用いて、ループフィルタの処理対象画素を基準としてタップを構築する。タップ構築部２５２は、構築したタップの画像データをフィルタ演算部２５４に出力する。
【０１４５】
係数構築部２５３は、係数メモリ部２６からフィルタ演算に用いる係数を読み出して、タップ構築部２５２で構築したタップに対応する係数を決定して、各タップの係数からなる係数セットを構築する。係数構築部２５３は、構築した係数セットをフィルタ演算部２５４に出力する。
【０１４６】
フィルタ演算部２５４は、タップ構築部２５２から供給されたタップの画像データと係数構築部２５３から供給された係数を用いて演算を行い、ループフィルタ処理後の画像データを生成する。
【０１４７】
センタータップ出力部２５５は、タップ構築部２５２から供給されたタップからセンタータップの画像データ、すなわちループフィルタの処理対象画素の画像データを出力選択部２５６に出力する。
【０１４８】
出力選択部２５６は、フィルタ制御部２５９からの制御信号に基づき画像データの選択を行い、選択した画像データをフィルタ演算部２５４から出力する。
【０１４９】
フィルタ制御部２５９は、制御信号をラインメモリ２５１に供給して、ラインメモリ２５１への画像データの記憶および記憶されている画像データを読み出しを制御する。また、フィルタ制御部２５９はライン判定部２５９１を有しており、タップ位置が下側のブロック境界から所定範囲内、例えばデブロッキングフィルタのフィルタ処理範囲内の位置であるか否かに応じて、出力選択部２５６の画像データの選択動作を制御する。
【０１５０】
［ループフィルタ処理部の動作］
図１７は、ループフィルタ処理部２５の第３の実施の形態の動作を示すフローチャートである。ステップＳＴ８１でループフィルタ処理部２５は、処理対象画素は通常ループフィルタ処理範囲内であるか判別する。ループフィルタ処理部２５は、ループフィルタの処理対象画素のライン位置が、デブロッキングフィルタのフィルタ処理範囲のタップを含まない位置であるか判別する。ループフィルタ処理部２５は、デブロッキングフィルタのフィルタ処理範囲にタップが含まれない場合、通常ループフィルタ処理範囲内と判別してステップＳＴ８２に進む。また、ループフィルタ処理部２５は、デブロッキングフィルタのフィルタ対象範囲にタップが含まれる場合、通常ループフィルタ処理範囲外であると判別してステップＳＴ８５に進む。
【０１５１】
ステップＳＴ８２で、ループフィルタ処理部２５は、タップの構築を行う。ループフィルタ処理部２５は、ループフィルタの処理対象画素を基準としてタップを構築してステップＳＴ８３に進む。
【０１５２】
ステップＳＴ８３でループフィルタ処理部２５は、係数セットの構築を行う。ループフィルタ処理部２５は、係数メモリ部２６から係数を読み出して、タップに対する係数からなる係数セットを構築してステップＳＴ８４に進む。
【０１５３】
ステップＳＴ８４でループフィルタ処理部２５は、フィルタ演算を行う。ループフィルタ処理部２５はステップＳＴ８２，８３の処理によって構築されたタップと係数セットを用いてフィルタ演算を行い、処理対象画素のループフィルタ処理後の画像データを算出してＳＴ８７に進む。
【０１５４】
ステップＳＴ８５でループフィルタ処理部２５は、センタータップを取得する。ループフィルタ処理部２５は、ループフィルタの処理対象画素であるセンタータップの画像データを取得してステップＳＴ８６に進む。
【０１５５】
ステップＳＴ８６でループフィルタ処理部２５は、センタータップの出力を行う。ループフィルタ処理部２５は、センタータップの画像データを出力する。すなわち、ループフィルタ処理部２５は、処理対象画素が通常ループフィルタ処理範囲でない場合、ループフィルタ処理を行うことなく画像データを出力してステップＳＴ８７に進む。
【０１５６】
ステップＳＴ８７でループフィルタ処理部２５は、通常ループフィルタ処理範囲内の最終ラインまでの処理が完了したか判別する。ループフィルタ処理部２５は、例えばＬＣＵにおいて通常ループフィルタ処理範囲内の最終ラインまでのループフィルタ処理が完了していない場合にはステップＳＴ８１に戻り、次のライン位置についてのループフィルタ処理を行う。ループフィルタ処理部２５は、最終ラインまでのループフィルタ処理が完了したと判別した場合にステップＳＴ８８に進む。
【０１５７】
ステップＳＴ８８でループフィルタ処理部２５は、最後のＬＣＵであるか判別する。ループフィルタ処理部２５は、ループフィルタ処理を行ったＬＣＵが最後のＬＣＵでない場合にはステップＳＴ８１に戻り、次のＬＣＵに対してループフィルタ処理を行う。また、ループフィルタ処理部２５は、ループフィルタ処理を行ったＬＣＵが最後のＬＣＵである場合にはループフィルタ処理を終了する。
【０１５８】
図１８は、ループフィルタがオフ状態とされる処理対象画素の位置を示している。このように、ループフィルタの処理対象画素に対してタップを構築した場合、タップがデブロッキングフィルタ対象範囲内である場合には、ループフィルタ処理がオフ状態とされる。したがって、デブロックフィルタ処理後の画像データを用いてループフィルタ処理を行うことができるように画像データを記憶する必要がないことからラインメモリを削減できる。
【０１５９】
＜１０．ループフィルタ処理部の第４の実施の形態＞
ループフィルタ処理部の第４の実施の形態は、第３の実施の形態の動作と第１または第２の実施の形態の動作を選択的に行う。なお、ループフィルタ処理部の第４の実施の形態の構成は、図１６に示す第３の実施の形態と同様に構成されている。
【０１６０】
フィルタ制御部２５９は、制御信号をラインメモリ２５１に供給して、ラインメモリ２５１への画像データの記憶および記憶されている画像データを読み出してタップ構築部２５２に供給する制御を行う。また、フィルタ制御部２５９はライン判定部２５９１を有しており、ループフィルタの処理対象画素の位置に応じて、タップ構築部２５２と係数構築部２５３および出力選択部２５６の動作を制御する。
【０１６１】
フィルタ制御部２５９は、符号化コストや量子化部１５で用いられている量子化パラメータ、例えばフレーム単位で設定された量子化パラメータに基づき、上述の第１（第２）の実施の形態の動作、または第３の実施の形態の動作を選択する。
【０１６２】
フィルタ制御部２５９は、符号化コストを用いる場合、第１（第２）の実施の形態の動作を選択した場合のコスト関数値と第３の実施の形態の動作を選択した場合のコスト関数値を比較して、コスト関数値の小さい動作を選択する。
【０１６３】
また、フィルタ制御部２５９は、例えば、量子化パラメータが閾値以下である場合、量子化ステップが小さく画質が良好と考えられることから第３の実施の形態の動作を行う。また、量子化パラメータが閾値よりも大きい場合、量子化ステップが大きく、量子化パラメータが小さい場合に比べて画質が劣化していると考えられることから、第１（第２）の実施の形態のように、タップで用いる画像データの置き換えや係数セットの変更を行う。
【０１６４】
さらに、画像符号化装置１０のループフィルタ処理部２５におけるフィルタ制御部２５９は、画像復号装置５０で画像符号化装置１０と同様なループフィルタ処理を行うことができるように、フィルタ演算を行うことなく画像データを出力する処理（第３の実施の形態の動作）と、タップの画像データの置き換えまたは係数セットの変更を行う処理（第１（第２）の実施の形態の動作）の何れが選択されているかを示す選択情報を符号化ストリームに含める。また、画像復号装置５０のループフィルタ処理部５７は、符号化ストリームに含められている選択情報に基づき、画像符号化装置１０と同様に処理を行う。
【０１６５】
なお、ループフィルタ処理におけるラインメモリの削減方法として、例えば「Semih.Esenlik,Matthias.Narroschke,Thomas.Wedi(Panasonic R&D Center)"JCTVC-E225  Line Memory Reduction for ALF Decoding",Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11，5th Meeting: Geneva, CH, 16-23 March, 2011」では、ループフィルタ処理のタップがデブロッキングフィルタのフィルタ処理範囲の位置となる場合、デブロッキングフィルタ処理前の画像データを用いることで、ラインメモリを削減することが提案されている。しかし、この方法では、タップがデブロッキングフィルタのフィルタ処理範囲の位置でない場合、デブロッキングフィルタ処理後の画像データを用いたループフィルタ処理が行われる。また、タップがデブロッキングフィルタのフィルタ処理範囲の位置である場合は、デブロッキングフィルタ処理前の画像データを用いてループフィルタ処理が行われて、その後デブロッキングフィルタ処理前の画像データのデブロッキングフィルタ処理が行われる。このように、デブロッキングフィルタ処理とループフィルタ処理とで処理順序に依存性が生じていることから、デブロッキングフィルタ処理を並列化して行うことができない。しかし、本技術では、デブロッキングフィルタ処理が行われた画像データを用いてループフィルタ処理を行う。したがって、依存性を有することなく処理が独立して行われるので、デブロッキングフィルタ処理やループフィルタ処理を画面内で並列化して行うことに、支障をきたさない。
【０１６６】
＜１１．ループフィルタ処理部の第５の実施の形態＞
ところで、「"JCTVC-G212   Non-CE8.c.7: Single-source SAO and ALF virtual boundary processing with cross9x9"，Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11 7th Meeting: Geneva, CH, 21-30 November, 2011」では、図１９に示すように仮想境界ＶＢを設定して、図１９の（Ａ）や図１９の（B）に示すように、１ラインが仮想境界にかかる場合、フィルタ処理前の画素とフィルタ処理後の画素の平均化が行われている。また、図１９の（Ｃ）や図１９の（Ｄ）に示すように２ラインが仮想境界にかかる場合、フィルタ処理をスキップすることが行われている。なお、図１９では、処理対象画素を黒四角、タップを黒丸で示している。しかし、このような処理では、１ラインが仮想境界にかかる場合にフィルタ処理前の画素が用いられることから、フィルタ効果が低下する。また、２ラインが仮想境界にかかる場合にフィルタ効果が得られない。したがって、仮想境界部分ではノイズの少ない良好な画質を得ることができない。そこで、ループフィルタ処理部の第５の実施の形態では、境界部分例えば仮想境界部分でもノイズの少ない良好な画質を得ることができる処理について説明する。
【０１６７】
以下、第５の実施の形態の動作について説明する。第５の実施の形態の動作では、下端ラインまたは上端ラインが境界を越える場合、境界を越えている範囲内の画像データを用いることなくフィルタ演算を行うように、境界を越えている範囲内のタップの画像データの置き換えまたはフィルタの係数セットの変更を行う。なお、フィルタは例えば図２０に示すように５×５画素の星形形状とする。
【０１６８】
図２１は、下端ラインが境界を越える場合の処理を説明するための図である。図２１の（Ａ）は、下端の１ラインが境界ＢＯを越える場合、図２１の（Ｂ）は、下端の２ラインが境界ＢＯを越える場合である。下端ラインが境界を越える場合、例えばフィルタ処理のホールドを行う。フィルタ処理のホールドでは、境界を越えたラインの画素として境界を超えていないライン（境界内のライン）の画素を用いてフィルタ処理を行う。
【０１６９】
下端の１ラインが境界を越える場合、図２１の（Ａ）に示すように、境界ＢＯを越えたラインの画素として用いられる境界内のラインの画素に対する係数を係数Ｃａ，Ｃｂ，Ｃｃとして示している。係数Ｃａは「Ｃａ＝Ｃ14」とする。すなわち、係数C14のタップの画像データとして、係数Ｃａの画素の画像データを用いてフィルタ演算を行う。また、係数Ｃｂは「Ｃｂ＝Ｃ12＋Ｃ15」とする。すなわち、係数C15のタップの画像データとして、係数Ｃｂの画素の画像データを用いてフィルタ演算を行う。係数Ｃｃは「Ｃｃ＝Ｃ16」とする。係数C16のタップの画像データとして、係数Ｃｃの画素の画像データを用いてフィルタ演算を行う。このようにして、フィルタサイズやフィルタ形状を変更することなく、また、境界を越えたラインの画素を用いることなくフィルタ演算を行う。さらに、下端の１ラインが境界を越える場合、フィルタ処理前の画素を用いた平均化を行わないようにして、フィルタ処理後の画像を用いる。
【０１７０】
下端の２ラインが境界を越える場合、図２１の（Ｂ）に示すように、境界ＢＯを越えたラインの画素として用いられる境界内のラインの画素に対する係数を係数Ｃａ，Ｃｂ，Ｃｃ，Ｃｄ，Ｃｅとして示している。係数Ｃａは「Ｃａ＝Ｃ6＋Ｃ14」とする。係数Ｃｂは「Ｃｂ＝Ｃ7＋Ｃ11」とする。係数Ｃｃは「Ｃｃ＝Ｃ8＋Ｃ12＋Ｃ15」とする。係数Ｃｄは「Ｃｄ＝Ｃ9＋Ｃ13」とする。係数Ｃeは「Ｃe＝Ｃ10＋Ｃ16」とする。このようにして、下端の１ラインが境界を越える場合と同様に、フィルタサイズやフィルタ形状を変更することなく、また、境界を越えたラインの画素を用いることなく、下端の２ラインが境界を越える場合にもフィルタ演算を行う。
【０１７１】
図２２は、上端ラインが境界を越える場合の処理を説明するための図である。図２２の（Ａ）は、上端の１ラインが境界ＢＯを越える場合、図２２の（Ｂ）は、上端の２ラインが境界ＢＯを越える場合である。上端ラインが境界を越える場合、下端ラインが境界を越える場合と同様に例えばフィルタ処理のホールドを行う。
【０１７２】
上端の１ラインが境界を越える場合、図２２の（Ａ）に示すように、境界ＢＯを越えたラインの画素として用いられる境界内のラインの画素に対する係数を係数Ｃａ，Ｃｂ，Ｃｃとして示している。係数Ｃａは「Ｃａ＝Ｃ0」とする。係数Ｃｂは「Ｃｂ＝Ｃ1＋Ｃ4」とする。係数Ｃｃは「Ｃｃ＝Ｃ2」とする。このようにして、上端の１ラインが境界を越える場合も下端の１ラインが境界を越える場合と同様に、フィルタサイズやフィルタ形状を変更することなく、また、境界を越えたラインの画素を用いることなくフィルタ演算を行う。さらに、上端の１ラインが境界を越える場合、フィルタ処理前の画素を用いた平均化を行わないようにして、フィルタ処理後の画像を用いる。
【０１７３】
上端の２ラインが境界を越える場合、図２２の（Ｂ）に示すように、境界ＢＯを越えたラインの画素として用いられる境界内のラインの画素に対する係数を係数Ｃａ，Ｃｂ，Ｃｃ，Ｃｄ，Ｃｅとして示している。係数Ｃａは「Ｃａ＝Ｃ0＋Ｃ6」とする。係数Ｃｂは「Ｃｂ＝Ｃ3＋Ｃ7」とする。係数Ｃｃは「Ｃｃ＝Ｃ1＋Ｃ4＋Ｃ8」とする。係数Ｃｄは「Ｃｄ＝Ｃ5＋Ｃ9」とする。係数Ｃeは「Ｃe＝Ｃ2＋Ｃ10」とする。このようにして、上端の１ラインが境界を越える場合と同様に、フィルタサイズやフィルタ形状を変更することなく、また、境界を越えたラインの画素を用いることなく、上端の２ラインが境界を越える場合にもフィルタ演算を行う。
【０１７４】
また、フィルタの係数として係数Ｃa〜Ｃeを用いて、図２１，図２２における係数Ｃa〜Ｃeの位置の画素をタップとしてフィルタ演算を行うようにしてもよい。
【０１７５】
さらに、下端ラインまたは上端ラインが境界を越える場合、境界を越えている範囲内の画像データを用いることなくフィルタ演算を行うように、フィルタサイズやフィルタ形状を変更してもよい。また、フィルタサイズやフィルタ形状を変更する場合に、重み付けを行うようにしてもよい。
【０１７６】
図２３は、下端ラインが境界を越える場合にフィルタサイズやフィルタ形状を変更する処理を説明するための図である。図２３の（Ａ）は、下端の１ラインが境界ＢＯを越える場合、図２３の（Ｂ）は、下端の２ラインが境界ＢＯを越える場合である。
【０１７７】
下端の１ラインが境界を越える場合、境界を越えたラインの画素を用いないようにフィルタサイズやフィルタ形状を変更して、例えば図２０に示すフィルタの上下それぞれ1ライン分を削除した図２３の（Ａ）に示す「５（横）×３（縦）」のフィルタとする。また、重み付けを行う場合、例えばフィルタ演算に用いられなくなった係数をセンタータップに重み付けする。すなわちセンタタップの係数Ｃａを「Ｃａ＝Ｃ0＋Ｃ1＋Ｃ2＋Ｃ8＋Ｃ14＋Ｃ15＋Ｃ16」とする。なお、下端の１ラインが境界を越える場合、上述のようにフィルタ処理前の画素を用いた平均化を行わないようにして、フィルタ処理後の画像を用いる。
【０１７８】
下端の２ラインが境界を越える場合、境界を越えたラインの画素を用いないようにフィルタサイズやフィルタ形状を変更して、例えば図２０に示すフィルタの上下それぞれ２ライン分を削除した図２３の（Ｂ）に示す「５（横）×１（縦）」のフィルタとする。また、重み付けを行う場合、例えばフィルタ演算に用いられなくなった係数をセンタータップに重み付けする。すなわちセンタタップの係数Ｃａを「Ｃａ＝Ｃ0＋Ｃ1＋Ｃ2＋Ｃ3＋Ｃ4＋Ｃ5＋Ｃ8＋Ｃ11＋Ｃ12＋Ｃ13＋Ｃ14＋Ｃ15＋Ｃ16」とする。
【０１７９】
図２４は、上端ラインが境界を越える場合にフィルタサイズやフィルタ形状を変更する処理を説明するための図である。図２４の（Ａ）は、上端の１ラインが境界ＢＯを越える場合、図２４の（Ｂ）は、上端の２ラインが境界ＢＯを越える場合である。
【０１８０】
上端の１ラインが境界を越える場合、境界を越えたラインの画素を用いないようにフィルタサイズやフィルタ形状を変更して、例えば図２０に示すフィルタの上下それぞれ1ライン分を削除した図２４の（Ａ）に示す「５（横）×３（縦）」のフィルタとする。また、重み付けを行う場合、例えばフィルタ演算に用いられなくなった係数をセンタータップに重み付けする。すなわちセンタタップの係数Ｃａを「Ｃａ＝Ｃ0＋Ｃ1＋Ｃ2＋Ｃ8＋Ｃ14＋Ｃ15＋Ｃ16」とする。なお、上端の１ラインが境界を越える場合、上述のようにフィルタ処理前の画素を用いた平均化を行わないようにして、フィルタ処理後の画像を用いる。
【０１８１】
上端の２ラインが境界を越える場合、境界を越えたラインの画素を用いないようにフィルタサイズやフィルタ形状を変更して、例えば図２０に示すフィルタの上下それぞれ２ライン分を削除した図２４の（Ｂ）に示す「５（横）×１（縦）」のフィルタとする。また、重み付けを行う場合、例えばフィルタ演算に用いられなくなった係数をセンタータップに重み付けする。すなわちセンタタップの係数Ｃａを「Ｃａ＝Ｃ0＋Ｃ1＋Ｃ2＋Ｃ3＋Ｃ4＋Ｃ5＋Ｃ8＋Ｃ11＋Ｃ12＋Ｃ13＋Ｃ14＋Ｃ15＋Ｃ16」とする。
【０１８２】
このように、第５の実施の形態では、下端１ラインまたは上端１ラインが境界を越える場合、フィルタ処理前の画素とフィルタ処理後の画素を用いた平均化が行われることがないので、フィルタ効果が低下されてしまうことを防止できる。また、下端２ラインまたは上端２ラインが境界を越える場合でも、フィルタ処理が行われるのでフィルタ効果を得ることができる。したがって、境界部分でもノイズの少ない画像を得ることができる。
【０１８３】
＜１２．画像符号化装置に適用した場合の他の構成と動作＞
図２５は、本技術の画像処理装置を画像符号化装置に適用した場合の他の構成を示している。なお、図２５において、図２と対応するブロックについては同一符号を付している。
【０１８４】
図２５に示す画像符号化装置１０では、デブロッキングフィルタ処理部２４とループフィルタ処理部２５との間にＳＡＯ（Sample Adaptive Offset）部２８を設けており、ループフィルタ処理部２５はＳＡＯ部２８で適応的にオフセット処理（以下「ＳＡＯ処理」という）が行われた画像データに対してループフィルタ処理を行う。なお、ＳＡＯは上述のＰＱＡＯ（Picture Quality Adaptive Offset）に相当する。また、ＳＡＯ部２８は、ＳＡＯ処理に関する情報を可逆符号化部１６に供給して符号化ストリームに含めるようにする。
【０１８５】
次にＳＡＯ部２８の動作について説明する。ＳＡＯ部２８のオフセットの種類としては、バンドオフセットと呼ばれるものが２種類、エッジオフセットと呼ばれるものが６種類あり、さらに、オフセットを適応しないことも可能である。そして、画像をquad-treeに分割し、それぞれの領域に、上述したどのオフセットの種類により符号化するかを選択することができる。
【０１８６】
この選択情報は可逆符号化部１６により符号化されて、ビットストリームに含められる。この方法を用いることで、符号化効率を向上させる。
【０１８７】
ここで、図２６を参照して、quad-tree構造について説明する。例えば、画像符号化装置１０では、図２６の（Ａ）に示されるように、領域０が分割されていない状態を示すLevel-０（分割深度０）のコスト関数値Ｊ０が計算される。また、領域０が４つの領域１乃至４に分割された状態を示すLevel-１（分割深度０）のコスト関数値Ｊ１，Ｊ２，Ｊ３，Ｊ４が計算される。
【０１８８】
そして、図２６の（Ｂ）に示されるように、コスト関数値が比較され、Ｊ０＞（Ｊ１＋Ｊ２＋Ｊ３＋Ｊ４）により、コスト関数値が小さいLevel-１の分割領域(Partitions)が選択される。
【０１８９】
同様にして、図２６の（Ｃ）に示されるように、領域０が１６個の領域５乃至２０に分割された状態を示すLevel-２（分割深度２）のコスト関数値Ｊ５乃至Ｊ２０が計算される。
【０１９０】
そして、図２６の（Ｄ）に示されるように、コスト関数値がそれぞれ比較され、Ｊ１＜（Ｊ５＋Ｊ６＋Ｊ９＋Ｊ１０）により、領域１においては、Level-１の分割領域(Partitions)が選択される。Ｊ２＞（Ｊ７＋Ｊ８＋Ｊ１１＋Ｊ１２）により、領域２においては、Level-２の分割領域(Partitions)が選択される。Ｊ３＞（Ｊ１３＋Ｊ１４＋Ｊ１７＋Ｊ１８）により、領域３においては、Level-２の分割領域(Partitions)が選択される。Ｊ４＞（Ｊ１５＋Ｊ１６＋Ｊ１９＋Ｊ２０）により、領域４においては、Level-１の分割領域(Partitions)が選択される。
【０１９１】
その結果、Quad-tree構造における図２６の（Ｄ）に示される最終的なQuad-tree領域（Partitions）が決定される。そして、Quad-tree構造の決定された領域毎に、２種類のバンドオフセット、６種類のエッジオフセット、およびオフセットなしの全てについてコスト関数値が算出され、どのオフセットにより符号化されるのかが決定される。
【０１９２】
例えば、図２６の（Ｅ）に示すように、領域１に対しては、ＥＯ（４）、すなわち、エッジオフセットのうちの４種類目が決定されている。領域７に対しては、ＯＦＦ、すなわち、オフセットなしが決定されており、領域８に対しては、ＥＯ（２）、すなわち、エッジオフセットのうちの２種類目が決定されている。領域１１および１２に対しては、ＯＦＦ、すなわち、オフセットなしが決定されている。
【０１９３】
また、領域１３に対しては、ＢＯ（１）、すなわち、バンドオフセットのうちの１種類目が決定されており、領域１４に対しては、ＥＯ（２）、すなわち、エッジオフセットのうちの２種類目が決定されている。領域１７に対しては、ＢＯ（２）、すなわち、バンドオフセットのうちの２種類目が決定されており、領域１８に対しては、ＢＯ（１）、すなわち、バンドオフセットのうちの１種類目が決定されている。領域４に対しては、ＥＯ（１）、すなわち、エッジオフセットのうちの１種類目が決定されている。
【０１９４】
次に、図２７を参照して、エッジオフセットの詳細について説明する。エッジオフセットにおいては、当該画素値と、当該画素値に隣接する隣接画素値の比較が行われ、これに対応したカテゴリに対して、オフセット値が伝送されることになる。
【０１９５】
エッジオフセットには、図２７の（Ａ）乃至（Ｄ）に示される４つの１次元パターンと、図２７の（Ｅ）および（Ｆ）に示される２つの２次元パターンが存在し、それぞれ、図２８に示されるカテゴリでオフセットが伝送される。
【０１９６】
図２７の（Ａ）は、当該画素Ｃに対して、隣接画素が左右の１次元に配置されている、すなわち、図２７の（Ａ）のパターンに対して０度をなしている1-D,0-degreeパターンを表している。図２７の（Ｂ）は、当該画素Ｃに対して、隣接画素が上下の１次元に配置されている、すなわち、図２７の（Ａ）のパターンに対して９０度をなしている1-D,90-degreeパターンを表している。
【０１９７】
図２７の（Ｃ）は、当該画素Ｃに対して、隣接画素が左上と右下の１次元に配置されている、すなわち、図２７の（Ａ）のパターンに対して１３５度をなしている1-D,135-degreeパターンを表している。図２７の（Ｄ）は、当該画素Ｃに対して、隣接画素が右上と左下の１次元に配置されている、すなわち、図２７の（Ａ）のパターンに対して４５度をなしている1-D,135-degreeパターンを表している。
【０１９８】
図２７の（Ｅ）は、当該画素Ｃに対して、隣接画素が上下左右２次元に配置されている、すなわち、当該画素Ｃに対して交差している2-D,crossパターンを表している。図２７の（Ｆ）は、当該画素Ｃに対して、隣接画素が右上左下、左上右下の２次元に配置されている、すなわち、当該画素Ｃに対して斜めに交差している2-D,diagonalパターンを表している。
【０１９９】
図２８の（Ａ）は、１次元パターンの規則一覧表(Classification rule for 1-D patterns)を示している。図２７の（Ａ）乃至（Ｄ）のパターンは、図２８の（Ａ）に示されるような５種類のカテゴリに分類され、そのカテゴリによりオフセットが算出されて、復号部に送られる。
【０２００】
当該画素Ｃの画素値が２つの隣接画素の画素値より小さい場合、カテゴリ１に分類される。当該画素Ｃの画素値が一方の隣接画素の画素値より小さくて、他方の隣接画素の画素値と一致する場合、カテゴリ２に分類される。当該画素Ｃの画素値が一方の隣接画素の画素値より大きくて、他方の隣接画素の画素値と一致する場合、カテゴリ３に分類される。当該画素Ｃの画素値が２つの隣接画素の画素値より大きい場合、カテゴリ４に分類される。以上のどれでもない場合、カテゴリ０に分類される。
【０２０１】
図２８の（Ｂ）は、２次元パターンの規則一覧表(Classification rule for 2-D patterns)を示している。図２７の（Ｅ）および（Ｆ）のパターンは、図２８の（Ｂ）に示されるような７種類のカテゴリに分類され、そのカテゴリによりオフセットが復号部に送られる。
【０２０２】
当該画素Ｃの画素値が４つの隣接画素の画素値より小さい場合、カテゴリ１に分類される。当該画素Ｃの画素値が３つの隣接画素の画素値より小さくて、４番目の隣接画素の画素値と一致する場合、カテゴリ２に分類される。当該画素Ｃの画素値が３つの隣接画素の画素値より小さくて、４番目の隣接画素の画素値より大きい場合、カテゴリ３に分類される。
【０２０３】
当該画素Ｃの画素値が３つの隣接画素の画素値より大きくて、４番目の隣接画素の画素値より小さい場合、カテゴリ４に分類される。当該画素Ｃの画素値が３つの隣接画素の画素値より大きくて、４番目の隣接画素の画素値と一致する場合、カテゴリ５に分類される。当該画素Ｃの画素値が４つの隣接画素の画素値より大きい場合、カテゴリ６に分類される。以上のどれでもない場合、カテゴリ０に分類される。
【０２０４】
以上のように、エッジオフセットにおいては、３×３画素の判定処理が行われることから、ＳＡＯ部２８では、判定処理にデブロッキングフィルタのフィルタ処理対象画素が含まれる画素位置となるとオフセット処理を行うことができない。また、その後、デブロッキングフィルタでフィルタ処理が行われた場合、ＳＡＯ部２８は、デブロッキングフィルタ処理後の画素を用いて判定処理を行う。したがって、ＳＡＯ部２８は、処理した画像データを記憶しておく必要がある。さらに、ループフィルタ処理部２５は、ループフィルタ処理のタップがＳＡＯで処理が行われていない画素位置となるとループフィルタ処理を行うことができない。また、その後、ＳＡＯで処理が行われた場合、ループフィルタ処理部２５は、ＳＡＯ２８で処理された画素を用いてループフィルタ処理を行う。したがって、ループフィルタ処理部２５は、ＳＡＯ部２８で処理された画像データを記憶しておく必要がある。
【０２０５】
図２９は、デブロッキングフィルタ処理部２４でフィルタ処理を行うためにラインメモリに記憶する画像データと、ＳＡＯ部２８を行うためにラインメモリに記憶する画像データと、ループフィルタ処理部２５でループフィルタ処理を行うためにラインメモリに記憶する画像データの関係を示している。なお、図２９では、画像データが輝度データ（Ｌｕｍａデータ）である場合を例示している。
【０２０６】
デブロッキングフィルタ処理部２４は、例えば４ラインの画像データを用いてブロック境界から３ライン分のフィルタ処理後の画像データを生成する場合、図２９の（Ａ）に示すように、下側のブロック境界ＢＢから４ライン分の画像データを記憶する必要がある。なお、図２９の（Ａ）において二重丸印は、デブロッキングフィルタの処理対象画素であってデブロッキングフィルタ処理（ＤＦ処理）が行われていないことを示している。
【０２０７】
ＳＡＯ部２８は、判定処理にデブロッキングフィルタのフィルタ処理対象画素が含まれる画素位置となると処理を行うことができない。すなわち、図２９の（Ｂ）に示すように、下側のブロック境界ＢＢから５ライン目の位置まで処理を進めることができる。しかし、４ライン目の位置では、３×３画素の判定処理の範囲内にデブロッキングフィルタのフィルタ処理対象画素が含まれることから処理を行うことができない。したがって、デブロッキングフィルタ処理後に、下側のブロック境界ＢＢから４ライン目の位置から処理を進めることができるように、ＳＡＯ部２８で処理が行われている５ライン目の画像データをラインメモリに記憶する必要がある。なお、図２９の（Ｂ）において、丸印の中にバツ印が示されている画素は、デブロッキングフィルタ処理が行われていないためにＳＡＯ処理を行うことができない画素を示している。
【０２０８】
ループフィルタ処理部２５は、例えばタップが５×５画素である場合、タップ内にＳＡＯ部２８で処理されていない画素が含まれる画素位置となると処理を行うことができない。すなわち、図２９の（Ｃ）に示すように、下側のブロック境界ＢＢから７ライン目まで処理を進めることができるが、６ライン目の位置では、５×５画素のタップ範囲内にＳＡＯ部２８で処理されていない画素が含まれることから処理を行うことができない。したがって、デブロッキングフィルタ処理後に、６ライン目から処理を進めることができるように、ＳＡＯ部２８で処理が行われている下側のブロック境界から５ライン目〜８ライン目までの４ライン分の画像データをラインメモリに記憶する必要がある。なお、図２９の（Ｃ）において、丸印の中に＋印が示されている画素は、デブロッキングフィルタ処理が行われていないことによるＳＡＯ処理後の画像データが入力されないため、ループフィルタ処理（ＡＬＦ）を行うことができない画素を示している。
【０２０９】
すなわち、デブロッキングフィルタ処理部２４とＳＡＯ部２８とループフィルタ処理部２５では、輝度データに対して合わせて９ライン分の画像データを記憶する必要がある。また、色差データ（Ｃｈｒｏｍａデータ）については、図３０に示すように、デブロッキングフィルタ処理部２４で図３０の（Ａ）に示すように、２ライン分の画像データを記憶すると、図３０の（Ｂ）に示すＳＡＯ部２８と図３０の（Ｃ）に示すループフィルタ処理部２５の処理のために記憶する画像データと合わせて７ライン分の画像データを記憶する必要がある。
【０２１０】
したがって、ループフィルタ処理部２５は、タップ位置が下側のブロック境界ＢＢから所定範囲内の位置である場合に、該所定範囲内の画像データを用いることなくフィルタ演算を行うように、例えば係数セットの変更を行い、フィルタ演算に用いる画素を削減する。すなわちタップ数を削減してループフィルタ処理を行う。
【０２１１】
図３１は、画像符号化装置に適用した場合の他の構成の動作を示すフローチャートである。なお、図３１において、図３と対応する処理については同一符号を付している。図３１では、ステップＳＴ１９のデブロッキングフィルタ処理とステップＳＴ２０のループフィルタ処理との間にステップＳＴ２７としてＳＡＯ処理を行う。ＳＡＯ処理では、上述のＳＡＯ部２８と同様に適応的なオフセット処理を行う。
【０２１２】
＜１３．画像復号装置に適用した場合の他の構成と動作＞
図３２は、本技術の画像処理装置を画像復号装置に適用した場合の他の構成を示している。なお、図３２において、図６と対応するブロックについては同一符号を付している。
【０２１３】
図３２に示す画像復号装置５０では、デブロッキングフィルタ処理部５６とループフィルタ処理部５７との間にＳＡＯ部６０を設けている。ループフィルタ処理部５７は、ＳＡＯ部６０で適応的にオフセット処理が行われた画像データに対してループフィルタ処理を行う。なお、ＳＡＯ部６０は、符号化ストリームに含まれているＳＡＯ処理に関する情報に基づき画像符号化装置１０のＳＡＯ部２８と同様な処理を行う。
【０２１４】
図３３は、画像復号装置に適用した場合の他の構成の動作を示すフローチャートである。なお、図３３において、図７と対応する処理については同一符号を付している。
【０２１５】
図３３では、ステップＳＴ５６のデブロッキングフィルタ処理とステップＳＴ５７のループフィルタ処理との間にステップＳＴ６３としてＳＡＯ処理を行う。ＳＡＯ処理では、上述のＳＡＯ部２８と同様に適応的なオフセット処理を行う。
【０２１６】
＜１４．ループフィルタ処理部の第６の実施の形態＞
以下、ループフィルタ処理部の第６の実施の形態の動作について説明する。ループフィルタ処理部の第６の実施の形態では、処理対象画素が通常ループフィルタ処理範囲外となる場合、タップを縮小してループフィルタ処理を行う。
【０２１７】
図３４は、タップを縮小する場合の処理を示すフローチャートである。ステップＳＴ９１でループフィルタ処理部２５は、処理対象画素は通常ループフィルタ処理範囲内であるか判別する。ループフィルタ処理部２５は、ループフィルタの処理対象画素のライン位置が、ＳＡＯ部２８の処理が行われていない画素をタップとして含まない位置であるか判別する。ループフィルタ処理部２５は、ＳＡＯ部２８の処理が行われていない画素をタップとして含まない位置である場合、通常ループフィルタ処理範囲内と判別してステップＳＴ９２に進む。また、ループフィルタ処理部２５は、ＳＡＯ部２８の処理が行われていない画素をタップとして含む位置である場合、通常ループフィルタ処理範囲外であると判別してステップＳＴ９３に進む。
【０２１８】
ステップＳＴ９２で、ループフィルタ処理部２５は、タップの構築を行う。ループフィルタ処理部２５は、ＳＡＯ部２８の処理が行われていない画素がタップに含まれていないので、所定のタップ数、例えば５×５画素のタップとしてステップＳＴ９４に進む。
【０２１９】
ステップＳＴ９３で、ループフィルタ処理部２５は、縮小したタップの構築を行う。ループフィルタ処理部２５は、ＳＡＯ部２８の処理が行われていない画素がタップとして用いられないようにタップを縮小する。例えば、ＳＡＯ部２８の処理が行われていない画素を用いるタップの画像データを用いないように係数セットを変更して、３×３画素のタップとしてステップＳＴ９４に進む。
【０２２０】
ステップＳＴ９４でループフィルタ処理部２５は、フィルタ演算を行う。ループフィルタ処理部２５はステップＳＴ９２またはステップＳＴ９３の処理によって構築されたタップを用いてフィルタ演算を行い、処理対象画素のループフィルタ処理後の画像データを算出する。
【０２２１】
ステップＳＴ９５でループフィルタ処理部２５は、最終ラインまでの処理が完了したか判別する。ループフィルタ処理部２５は、最終ラインすなわちＳＡＯ部２８で処理が行われている最終ラインまでのループフィルタ処理が完了しているか判別する。ループフィルタ処理部２５は、最終ラインまでの処理が完了していない場合にはステップＳＴ９６に進む。また、ループフィルタ処理部２５は、最終ラインまでのループフィルタ処理が完了したと判別した場合には、下段のブロックの処理が行われて、ＳＡＯ部２８で次のラインの処理が行われるまでブロックの処理を終了する。
【０２２２】
ステップＳＴ９６でループフィルタ処理部２６は、処理対象画素のラインを次のラインに移動してステップＳＴ９１に戻る。
【０２２３】
図３５は、ループフィルタ処理部２５の動作を示している。ループフィルタ処理部２５は、図３５の（Ａ）に示すように、ＳＡＯ処理は下側のブロック境界ＢＢから４ライン目目までは処理が完了しておらず、５ライン目から上側では処理が完了している。したがって、ループフィルタ処理部２５は、所定のタップが例えば５×５画素のタップである場合、下側ブロック境界ＢＢから７ライン目までループフィルタ処理を行う。
【０２２４】
次に、ループフィルタ処理部２５は、下側のブロック境界ＢＢから６ライン目の位置で所定タップ数のフィルタ処理を行うと、ＳＡＯ部２８で処理が行われていない画素（下側ブロック境界から４ライン目目の画素）が必要となる。したがって、ループフィルタ処理部２５は、ＳＡＯ部２８で処理が行われていない画素を用いることなくループフィルタ処理を行うことができるようにタップを縮小する。例えば、図３５の（Ｂ）に示すようにタップ数を３×３画素に縮小する。このようにすれば、下側のブロック境界ＢＢから６ライン目の位置までループフィルタ処理を進めることができる。また、このようにタップ数を縮小すると、下側のブロック境界ＢＢから５ライン目の位置でループフィルタ処理を行うためには、ＳＡＯ部２８で処理が行われている下側のブロック境界ＢＢから５ライン目と６ライン目の２ライン分の画像データを記憶しておけばよい。すなわち、タップ位置が下側のブロック境界ＢＢから所定範囲内の位置である場合に、タップ数を縮小することで、画像データを記憶するラインメモリを削減できる。また、係数セットを変更してタップの縮小を行うようにすればハードウェア構成を変更することなくタップを縮小できる。なお、図３６は、色差データについてのループフィルタ処理部２５の動作を示しており、図３６の（Ａ）は、タップの縮小が行われていない場合、図３６の（Ｂ）はタップの縮小が行われた場合を示している。
【０２２５】
さらに、ループフィルタ処理部２５は、デブロッキングフィルタ処理が行われていないためにＳＡＯ部２８で処理が停止される直前の処理済みのラインでは、ループフィルタ処理を行わないようにする。このようにすれば、ループフィルタ処理済みとなるライン位置をさらに１ライン進めることができる。
【０２２６】
図３７は、タップ数を削減する場合にループフィルタ処理を行わないラインを設けた処理を示すフローチャートである。ステップＳＴ１０１でループフィルタ処理部２５は、処理対象画素は通常ループフィルタ処理範囲内であるか判別する。ループフィルタ処理部２５は、ループフィルタの処理対象画素のライン位置が、ＳＡＯ部２８の処理が行われていない画素をタップとして含まない位置であるか判別する。ループフィルタ処理部２５は、ＳＡＯ部２８の処理が行われていない画素をタップとして含まない位置である場合、通常ループフィルタ処理範囲内と判別してステップＳＴ１０２に進む。また、ループフィルタ処理部２５は、ＳＡＯ部２８の処理が行われていない画素をタップとして含む位置である場合、通常ループフィルタ処理範囲外であると判別してステップＳＴ１０３に進む。
【０２２７】
ステップＳＴ１０２で、ループフィルタ処理部２５は、タップの構築を行う。ループフィルタ処理部２５は、ＳＡＯ部２８の処理が行われていない画素がタップに含まれていないので、所定のタップ数、例えば５×５画素のタップとしてステップＳＴ１０６に進む。
【０２２８】
ステップＳＴ１０３でループフィルタ処理部２５は、ＳＡＯ処理が停止される直前のＳＡＯ処理済みのライン位置（ＳＡＯ処理済み最終ライン位置）であるか判別する。ループフィルタ処理部２５は、ＳＡＯ処理済み最終ライン位置である場合にステップＳＴ１０４に進み、ＳＡＯ処理済み最終ライン位置に達していない場合にステップＳＴ１０５に進む。
【０２２９】
ステップＳＴ１０４でループフィルタ処理部２５は、ループフィルタ処理を行わないように設定する。例えばループフィルタ処理部２５は、ループフィルタ処理の対象画素の画像データをそのまま出力するようにフィルタ係数を設定してステップＳＴ１０６に進む。
【０２３０】
ステップＳＴ１０５でループフィルタ処理部２５は、縮小したタップの構築を行う。ループフィルタ処理部２５は、ＳＡＯ部２８の処理が行われていない画素がタップとして用いられないようにタップを縮小する。例えば、ＳＡＯ部２８の処理が行われていない画素を用いることがないように、３×３画素のタップに縮小してステップＳＴ１０６に進む。
【０２３１】
ステップＳＴ１０６でループフィルタ処理部２５は、フィルタ演算を行う。ループフィルタ処理部２５はステップＳＴ１０２乃至ステップＳＴ１０５の処理によって構築されたタップを用いてフィルタ演算を行い、処理対象画素のループフィルタ処理後の画像データを算出する。
【０２３２】
ステップＳＴ１０７でループフィルタ処理部２５は、最終ラインまでの処理が完了したか判別する。ループフィルタ処理部２５は、ＬＣＵにおいてＳＡＯ処理済み最終ライン位置までのループフィルタ処理が完了しているか判別する。ループフィルタ処理部２５は、最終ラインまでの処理が完了していない場合にはステップＳＴ１０８に進む。また、ループフィルタ処理部２５は、最終ラインまでのループフィルタ処理が完了したと判別した場合には、下段のブロックの処理が行われて、ＳＡＯ部２８で次のラインの処理が行われるまで当該ＬＣＵの処理を終了する。
【０２３３】
ステップＳＴ１０８でループフィルタ処理部２５は、処理対象画素のラインを次のラインに移動してステップＳＴ１０１に戻る。
【０２３４】
図３８は、ＳＡＯ処理済み最終ラインでループフィルタ処理を行わないようにした場合のループフィルタ処理部２５の動作を示している。ループフィルタ処理部２５は、図３８の（Ａ）に示すように、ＳＡＯ処理は下側のブロック境界ＢＢから４ライン目までは処理が完了しておらず、５ライン目から上側では処理が完了している。したがって、ループフィルタ処理部２５は、所定のタップが例えば５×５画素のタップである場合、下側ブロック境界ＢＢから７ライン目までループフィルタ処理を行う。
【０２３５】
次に、ループフィルタ処理部２５は、下側のブロック境界ＢＢから６ライン目の位置で所定タップ数のループフィルタ処理を行うと、ＳＡＯ部２８で処理が行われていない画素（下側のブロック境界ＢＢから４ライン目の画素）が必要となる。したがって、ループフィルタ処理部２５は、ＳＡＯ部２８で処理が行われていない画素を用いることなくフィルタ処理を行うことができるようにタップを縮小する。例えば、図３８の（Ｂ）に示すようにタップ数を３×３画素に縮小する。このようにすれば、下側のブロック境界ＢＢから６ライン目の位置までループフィルタ処理を進めることができる。
【０２３６】
さらに、ループフィルタ処理部２５は、下側のブロック境界ＢＢから５ライン目の位置すなわちＳＡＯ処理済み最終ライン位置で縮小したタップ数でループフィルタ処理を行うと、ＳＡＯ部２８で処理が行われていない画素（下側のブロック境界ＢＢから４ライン目の画素）が必要となる。したがって、ループフィルタ処理部２５は、処理対象画素のループフィルタ処理を行わないようにする。このようにすれば、下側のブロック境界ＢＢから５ライン目の位置までループフィルタ処理部２５で処理を進めることができる。また、ループフィルタ処理部２５で処理が行われた画像データを記憶しておく必要がないのでラインメモリをさらに削減できる。なお、図３９は、色差データについてのループフィルタ処理部２５の動作を示している。図３９の（Ａ）はタップの縮小が行われていない場合、図３９の（Ｂ）はタップの縮小が行われた場合、図３９の（Ｃ）はＳＡＯ処理済み最終ライン位置でループフィルタ処理を行わない場合を示している。
【０２３７】
本明細書において、ブロックおよびマクロブロックとの用語は、ＨＥＶＣの文脈における符号化単位（ＣＵ：Coding Unit）、予測単位(PU：Prediction Unit)、変換単位(TU：Transform Unit)をも含むものとする。
【０２３８】
また、上述した一連の処理はハードウェア、またはソフトウェア、または両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させる。または、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることも可能である。
【０２３９】
例えば、プログラムは記録媒体としてのハードディスクやＲＯＭ（Read Only Memory)に予め記録しておくことができる。または、プログラムはフレキシブルディスク、ＣＤ−ＲＯＭ(Compact Disc Read Only Memory)，ＭＯ(Magneto optical)ディスク，ＤＶＤ(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体に、一時的または永続的に格納（記録）しておくことができる。このようなリムーバブル記録媒体は、いわゆるパッケージソフトウェアとして提供することができる。
【０２４０】
なお、プログラムは、上述したようなリムーバブル記録媒体からコンピュータにインストールする他、ダウンロードサイトから、コンピュータに無線転送したり、ＬＡＮ(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送する。コンピュータでは、そのようにして転送されてくるプログラムを受信し、内蔵するハードディスク等の記録媒体にインストールすることができる。
【０２４１】
＜１５．応用例＞
本技術の画像処理装置を用いた上述の実施形態に係る画像符号化装置１０および画像復号装置５０は、衛星放送、ケーブルＴＶなどの有線放送、インターネット上での配信、およびセルラー通信による端末への配信等における送信機若しくは受信機、光ディスク、磁気ディスクおよびフラッシュメモリなどの媒体に画像を記録する記録装置、または、これら記憶媒体から画像を再生する再生装置などの様々な電子機器に応用され得る。以下、４つの応用例について説明する。
【０２４２】
［第１の応用例］
図４０は、上述した実施形態を適用したテレビジョン装置の概略的な構成の一例を示している。テレビジョン装置９０は、アンテナ９０１、チューナ９０２、デマルチプレクサ９０３、デコーダ９０４、映像信号処理部９０５、表示部９０６、音声信号処理部９０７、スピーカ９０８、外部インタフェース部９０９を有している。さらに、テレビジョン装置９０は、制御部９１０、ユーザインタフェース部９１１等を有している。
【０２４３】
チューナ９０２は、アンテナ９０１を介して受信される放送信号から所望のチャンネルの信号を抽出し、抽出した信号を復調する。そして、チューナ９０２は、復調により得られた符号化ビットストリームをデマルチプレクサ９０３へ出力する。すなわち、チューナ９０２は、画像が符号化されている符号化ストリームを受信する、テレビジョン装置９０における伝送手段としての役割を有する。
【０２４４】
デマルチプレクサ９０３は、符号化ビットストリームから視聴対象の番組の映像ストリームおよび音声ストリームを分離し、分離した各ストリームをデコーダ９０４へ出力する。また、デマルチプレクサ９０３は、符号化ビットストリームからＥＰＧ（Electronic  Program  Guide）などの補助的なデータを抽出し、抽出したデータを制御部９１０に供給する。なお、デマルチプレクサ９０３は、符号化ビットストリームがスクランブルされている場合には、デスクランブルを行ってもよい。
【０２４５】
デコーダ９０４は、デマルチプレクサ９０３から入力される映像ストリームおよび音声ストリームを復号する。そして、デコーダ９０４は、復号処理により生成される映像データを映像信号処理部９０５へ出力する。また、デコーダ９０４は、復号処理により生成される音声データを音声信号処理部９０７へ出力する。
【０２４６】
映像信号処理部９０５は、デコーダ９０４から入力される映像データを再生し、表示部９０６に映像を表示させる。また、映像信号処理部９０５は、ネットワークを介して供給されるアプリケーション画面を表示部９０６に表示させてもよい。また、映像信号処理部９０５は、映像データについて、設定に応じて、例えばノイズ除去などの追加的な処理を行ってもよい。さらに、映像信号処理部９０５は、例えばメニュー、ボタンまたはカーソルなどのＧＵＩ（Graphical  User  Interface）の画像を生成し、生成した画像を出力画像に重畳してもよい。
【０２４７】
表示部９０６は、映像信号処理部９０５から供給される駆動信号により駆動され、表示デバイス（例えば、液晶ディスプレイ、プラズマディスプレイまたはＯＬＥＤなど）の映像面上に映像または画像を表示する。
【０２４８】
音声信号処理部９０７は、デコーダ９０４から入力される音声データについてＤ／Ａ変換および増幅などの再生処理を行い、スピーカ９０８から音声を出力させる。また、音声信号処理部９０７は、音声データについてノイズ除去などの追加的な処理を行ってもよい。外部インタフェース部９０９は、テレビジョン装置９０と外部機器またはネットワークとを接続するためのインタフェースである。例えば、外部インタフェース部９０９を介して受信される映像ストリームまたは音声ストリームが、デコーダ９０４により復号されてもよい。すなわち、外部インタフェース部９０９もまた、画像が符号化されている符号化ストリームを受信する、テレビジョン装置９０における伝送手段としての役割を有する。
【０２４９】
制御部９１０は、ＣＰＵ（Central  Processing  Unit）などのプロセッサ、並びにＲＡＭ（Random  Access  Memory）およびＲＯＭ（Read  Only  Memory）などのメモリを有する。メモリは、ＣＰＵにより実行されるプログラム、プログラムデータ、ＥＰＧデータ、およびネットワークを介して取得されるデータなどを記憶する。メモリにより記憶されるプログラムは、例えば、テレビジョン装置９０の起動時にＣＰＵにより読み込まれ、実行される。ＣＰＵは、プログラムを実行することにより、例えばユーザインタフェース部９１１から入力される操作信号に応じて、テレビジョン装置９０の動作を制御する。
【０２５０】
ユーザインタフェース部９１１は、制御部９１０と接続される。ユーザインタフェース部９１１は、例えば、ユーザがテレビジョン装置９０を操作するためのボタンおよびスイッチ、並びに遠隔制御信号の受信部などを有する。ユーザインタフェース部９１１は、これら構成要素を介してユーザによる操作を検出して操作信号を生成し、生成した操作信号を制御部９１０へ出力する。
【０２５１】
バス９１２は、チューナ９０２、デマルチプレクサ９０３、デコーダ９０４、映像信号処理部９０５、音声信号処理部９０７、外部インタフェース部９０９および制御部９１０を相互に接続する。
【０２５２】
このように構成されたテレビジョン装置９０において、デコーダ９０４は、上述した実施形態に係る画像復号装置５０の機能を有する。それにより、テレビジョン装置９０での画像の復号に際して、ラインメモリのメモリ容量を削減できる。
【０２５３】
［第２の応用例］
図４１は、上述した実施形態を適用した携帯電話機の概略的な構成の一例を示している。携帯電話機９２は、アンテナ９２１、通信部９２２、音声コーデック９２３、スピーカ９２４、マイクロホン９２５、カメラ部９２６、画像処理部９２７、多重分離部９２８、記録再生部９２９、表示部９３０、制御部９３１、操作部９３２、およびバス９３３を備える。
【０２５４】
アンテナ９２１は、通信部９２２に接続される。スピーカ９２４およびマイクロホン９２５は、音声コーデック９２３に接続される。操作部９３２は、制御部９３１に接続される。バス９３３は、通信部９２２、音声コーデック９２３、カメラ部９２６、画像処理部９２７、多重分離部９２８、記録再生部９２９、表示部９３０、および制御部９３１を相互に接続する。
【０２５５】
携帯電話機９２は、音声通話モード、データ通信モード、撮影モードおよびテレビ電話モードを含む様々な動作モードで、音声信号の送受信、電子メールまたは画像データの送受信、画像の撮像、およびデータの記録などの動作を行う。
【０２５６】
音声通話モードにおいて、マイクロホン９２５により生成されるアナログ音声信号は、音声コーデック９２３に供給される。音声コーデック９２３は、アナログ音声信号を音声データへ変換し、変換された音声データをＡ／Ｄ変換し圧縮する。そして、音声コーデック９２３は、圧縮後の音声データを通信部９２２へ出力する。通信部９２２は、音声データを符号化および変調し、送信信号を生成する。そして、通信部９２２は、生成した送信信号をアンテナ９２１を介して基地局（図示せず）へ送信する。また、通信部９２２は、アンテナ９２１を介して受信される無線信号を増幅しおよび周波数変換し、受信信号を取得する。そして、通信部９２２は、受信信号を復調および復号して音声データを生成し、生成した音声データを音声コーデック９２３へ出力する。音声コーデック９２３は、音声データを伸張しおよびＤ／Ａ変換し、アナログ音声信号を生成する。そして、音声コーデック９２３は、生成した音声信号をスピーカ９２４に供給して音声を出力させる。
【０２５７】
また、データ通信モードにおいて、例えば、制御部９３１は、操作部９３２を介するユーザによる操作に応じて、電子メールを構成する文字データを生成する。また、制御部９３１は、文字を表示部９３０に表示させる。また、制御部９３１は、操作部９３２を介するユーザからの送信指示に応じて電子メールデータを生成し、生成した電子メールデータを通信部９２２へ出力する。通信部９２２は、電子メールデータを符号化および変調し、送信信号を生成する。そして、通信部９２２は、生成した送信信号をアンテナ９２１を介して基地局（図示せず）へ送信する。また、通信部９２２は、アンテナ９２１を介して受信される無線信号を増幅しおよび周波数変換し、受信信号を取得する。そして、通信部９２２は、受信信号を復調および復号して電子メールデータを復元し、復元した電子メールデータを制御部９３１へ出力する。制御部９３１は、表示部９３０に電子メールの内容を表示させると共に、電子メールデータを記録再生部９２９の記憶媒体に記憶させる。
【０２５８】
記録再生部９２９は、読み書き可能な任意の記憶媒体を有する。例えば、記憶媒体は、ＲＡＭまたはフラッシュメモリなどの内蔵型の記憶媒体であってもよく、ハードディスク、磁気ディスク、光磁気ディスク、光ディスク、ＵＳＢメモリ、またはメモリカードなどの外部装着型の記憶媒体であってもよい。
【０２５９】
また、撮影モードにおいて、例えば、カメラ部９２６は、被写体を撮像して画像データを生成し、生成した画像データを画像処理部９２７へ出力する。画像処理部９２７は、カメラ部９２６から入力される画像データを符号化し、符号化ストリームを記録再生部９２９の記憶媒体に記憶させる。
【０２６０】
また、テレビ電話モードにおいて、例えば、多重分離部９２８は、画像処理部９２７により符号化された映像ストリームと、音声コーデック９２３から入力される音声ストリームとを多重化し、多重化したストリームを通信部９２２へ出力する。通信部９２２は、ストリームを符号化および変調し、送信信号を生成する。そして、通信部９２２は、生成した送信信号をアンテナ９２１を介して基地局（図示せず）へ送信する。また、通信部９２２は、アンテナ９２１を介して受信される無線信号を増幅しおよび周波数変換し、受信信号を取得する。これら送信信号および受信信号には、符号化ビットストリームが含まれ得る。そして、通信部９２２は、受信信号を復調および復号してストリームを復元し、復元したストリームを多重分離部９２８へ出力する。多重分離部９２８は、入力されるストリームから映像ストリームおよび音声ストリームを分離し、映像ストリームを画像処理部９２７、音声ストリームを音声コーデック９２３へ出力する。画像処理部９２７は、映像ストリームを復号し、映像データを生成する。映像データは、表示部９３０に供給され、表示部９３０により一連の画像が表示される。音声コーデック９２３は、音声ストリームを伸張しおよびＤ／Ａ変換し、アナログ音声信号を生成する。そして、音声コーデック９２３は、生成した音声信号をスピーカ９２４に供給して音声を出力させる。
【０２６１】
このように構成された携帯電話機９２において、画像処理部９２７は、上述した実施形態に係る画像符号化装置１０および画像復号装置５０の機能を有する。それにより、携帯電話機９２での画像の符号化および復号に際して、ラインメモリのメモリ容量を削減できる。
【０２６２】
［第３の応用例］
図４２は、上述した実施形態を適用した記録再生装置の概略的な構成の一例を示している。記録再生装置９４は、例えば、受信した放送番組の音声データおよび映像データを符号化して記録媒体に記録する。また、記録再生装置９４は、例えば、他の装置から取得される音声データおよび映像データを符号化して記録媒体に記録してもよい。また、記録再生装置９４は、例えば、ユーザの指示に応じて、記録媒体に記録されているデータをモニタおよびスピーカ上で再生する。このとき、記録再生装置９４は、音声データおよび映像データを復号する。
【０２６３】
記録再生装置９４は、チューナ９４１、外部インタフェース部９４２、エンコーダ９４３、ＨＤＤ（Hard  Disk  Drive）９４４、ディスクドライブ９４５、セレクタ９４６、デコーダ９４７、ＯＳＤ（On-Screen  Display）部９４８、制御部９４９、およびユーザインタフェース部９５０を備える。
【０２６４】
チューナ９４１は、アンテナ（図示せず）を介して受信される放送信号から所望のチャンネルの信号を抽出し、抽出した信号を復調する。そして、チューナ９４１は、復調により得られた符号化ビットストリームをセレクタ９４６へ出力する。すなわち、チューナ９４１は、記録再生装置９４における伝送手段としての役割を有する。
【０２６５】
外部インタフェース部９４２は、記録再生装置９４と外部機器またはネットワークとを接続するためのインタフェースである。外部インタフェース部９４２は、例えば、ＩＥＥＥ１３９４インタフェース、ネットワークインタフェース、ＵＳＢインタフェース、またはフラッシュメモリインタフェースなどであってよい。例えば、外部インタフェース部９４２を介して受信される映像データおよび音声データは、エンコーダ９４３へ入力される。すなわち、外部インタフェース部９４２は、記録再生装置９４における伝送手段としての役割を有する。
【０２６６】
エンコーダ９４３は、外部インタフェース部９４２から入力される映像データおよび音声データが符号化されていない場合に、映像データおよび音声データを符号化する。そして、エンコーダ９４３は、符号化ビットストリームをセレクタ９４６へ出力する。
【０２６７】
ＨＤＤ９４４は、映像および音声などのコンテンツデータが圧縮された符号化ビットストリーム、各種プログラムおよびその他のデータを内部のハードディスクに記録する。また、ＨＤＤ９４４は、映像および音声の再生時に、これらデータをハードディスクから読み出す。
【０２６８】
ディスクドライブ９４５は、装着されている記録媒体へのデータの記録および読み出しを行う。ディスクドライブ９４５に装着される記録媒体は、例えばＤＶＤディスク（ＤＶＤ−Ｖｉｄｅｏ、ＤＶＤ−ＲＡＭ、ＤＶＤ−Ｒ、ＤＶＤ−ＲＷ、ＤＶＤ＋Ｒ、ＤＶＤ＋ＲＷ等）またはＢｌｕ−ｒａｙ（登録商標）ディスクなどであってよい。
セレクタ９４６は、映像および音声の記録時には、チューナ９４１またはエンコーダ９４３から入力される符号化ビットストリームを選択し、選択した符号化ビットストリームをＨＤＤ９４４またはディスクドライブ９４５へ出力する。また、セレクタ９４６は、映像および音声の再生時には、ＨＤＤ９４４またはディスクドライブ９４５から入力される符号化ビットストリームをデコーダ９４７へ出力する。
【０２６９】
デコーダ９４７は、符号化ビットストリームを復号し、映像データおよび音声データを生成する。そして、デコーダ９４７は、生成した映像データをＯＳＤ部９４８へ出力する。また、デコーダ９０４は、生成した音声データを外部のスピーカへ出力する。
ＯＳＤ部９４８は、デコーダ９４７から入力される映像データを再生し、映像を表示する。また、ＯＳＤ部９４８は、表示する映像に、例えばメニュー、ボタンまたはカーソルなどのＧＵＩの画像を重畳してもよい。
【０２７０】
制御部９４９は、ＣＰＵなどのプロセッサ、並びにＲＡＭおよびＲＯＭなどのメモリを有する。メモリは、ＣＰＵにより実行されるプログラム、およびプログラムデータなどを記憶する。メモリにより記憶されるプログラムは、例えば、記録再生装置９４の起動時にＣＰＵにより読み込まれ、実行される。ＣＰＵは、プログラムを実行することにより、例えばユーザインタフェース部９５０から入力される操作信号に応じて、記録再生装置９４の動作を制御する。
【０２７１】
ユーザインタフェース部９５０は、制御部９４９と接続される。ユーザインタフェース部９５０は、例えば、ユーザが記録再生装置９４を操作するためのボタンおよびスイッチ、並びに遠隔制御信号の受信部などを有する。ユーザインタフェース部９５０は、これら構成要素を介してユーザによる操作を検出して操作信号を生成し、生成した操作信号を制御部９４９へ出力する。
【０２７２】
このように構成された記録再生装置９４において、エンコーダ９４３は、上述した実施形態に係る画像符号化装置１０の機能を有する。また、デコーダ９４７は、上述した実施形態に係る画像復号装置５０の機能を有する。それにより、記録再生装置９４での画像の符号化および復号に際して、ラインメモリのメモリ容量を削減できる。
【０２７３】
［第４の応用例］
図４３は、上述した実施形態を適用した撮像装置の概略的な構成の一例を示している。撮像装置９６は、被写体を撮像して画像を生成し、画像データを符号化して記録媒体に記録する。
【０２７４】
撮像装置９６は、光学ブロック９６１、撮像部９６２、カメラ信号処理部９６３、画像処理部９６４、表示部９６５、外部インタフェース部９６６、メモリ９６７、メディアドライブ９６８、ＯＳＤ部９６９、制御部９７０、ユーザインタフェース部９７１、およびバス９７２を備える。
【０２７５】
光学ブロック９６１は、フォーカスレンズおよび絞り機構などを有する。光学ブロック９６１は、被写体の光学像を撮像部９６２の撮像面に結像させる。撮像部９６２は、ＣＣＤまたはＣＭＯＳなどのイメージセンサを有し、撮像面に結像した光学像を光電変換によって電気信号としての画像信号に変換する。そして、撮像部９６２は、画像信号をカメラ信号処理部９６３へ出力する。
【０２７６】
カメラ信号処理部９６３は、撮像部９６２から入力される画像信号に対してニー補正、ガンマ補正、色補正などの種々のカメラ信号処理を行う。カメラ信号処理部９６３は、カメラ信号処理後の画像データを画像処理部９６４へ出力する。
【０２７７】
画像処理部９６４は、カメラ信号処理部９６３から入力される画像データを符号化し、符号化データを生成する。そして、画像処理部９６４は、生成した符号化データを外部インタフェース部９６６またはメディアドライブ９６８へ出力する。また、画像処理部９６４は、外部インタフェース部９６６またはメディアドライブ９６８から入力される符号化データを復号し、画像データを生成する。そして、画像処理部９６４は、生成した画像データを表示部９６５へ出力する。また、画像処理部９６４は、カメラ信号処理部９６３から入力される画像データを表示部９６５へ出力して画像を表示させてもよい。また、画像処理部９６４は、ＯＳＤ部９６９から取得される表示用データを、表示部９６５へ出力する画像に重畳してもよい。
【０２７８】
ＯＳＤ部９６９は、例えばメニュー、ボタンまたはカーソルなどのＧＵＩの画像を生成して、生成した画像を画像処理部９６４へ出力する。
【０２７９】
外部インタフェース部９６６は、例えばＵＳＢ入出力端子として構成される。外部インタフェース部９６６は、例えば、画像の印刷時に、撮像装置９６とプリンタとを接続する。また、外部インタフェース部９６６には、必要に応じてドライブが接続される。ドライブには、例えば、磁気ディスクまたは光ディスクなどのリムーバブルメディアが装着され、リムーバブルメディアから読み出されるプログラムが、撮像装置９６にインストールされ得る。さらに、外部インタフェース部９６６は、ＬＡＮまたはインターネットなどのネットワークに接続されるネットワークインタフェースとして構成されてもよい。すなわち、外部インタフェース部９６６は、撮像装置９６における伝送手段としての役割を有する。
【０２８０】
メディアドライブ９６８に装着される記録媒体は、例えば、磁気ディスク、光磁気ディスク、光ディスク、または半導体メモリなどの、読み書き可能な任意のリムーバブルメディアであってよい。また、メディアドライブ９６８に記録媒体が固定的に装着され、例えば、内蔵型ハードディスクドライブまたはＳＳＤ（Solid State Drive）のような非可搬性の記憶部が構成されてもよい。
【０２８１】
制御部９７０は、ＣＰＵなどのプロセッサ、並びにＲＡＭおよびＲＯＭなどのメモリを有する。メモリは、ＣＰＵにより実行されるプログラム、およびプログラムデータなどを記憶する。メモリにより記憶されるプログラムは、例えば、撮像装置９６の起動時にＣＰＵにより読み込まれ、実行される。ＣＰＵは、プログラムを実行することにより、例えばユーザインタフェース部９７１から入力される操作信号に応じて、撮像装置９６の動作を制御する。
【０２８２】
ユーザインタフェース部９７１は、制御部９７０と接続される。ユーザインタフェース部９７１は、例えば、ユーザが撮像装置９６を操作するためのボタンおよびスイッチなどを有する。ユーザインタフェース部９７１は、これら構成要素を介してユーザによる操作を検出して操作信号を生成し、生成した操作信号を制御部９７０へ出力する。
【０２８３】
バス９７２は、画像処理部９６４、外部インタフェース部９６６、メモリ９６７、メディアドライブ９６８、ＯＳＤ部９６９、および制御部９７０を相互に接続する。
【０２８４】
このように構成された撮像装置９６において、画像処理部９６４は、上述した実施形態に係る画像符号化装置１０および画像復号装置５０の機能を有する。それにより、撮像装置９６での画像の符号化および復号に際して、ラインメモリのメモリ容量を削減できる。
【０２８５】
さらに、本技術は、上述した実施形態に限定して解釈されるべきではない。この実施形態は、例示という形態で本技術を開示しており、本技術の要旨を逸脱しない範囲で当業者が実施形態の修正や代用をなし得ることは自明である。すなわち、本技術の要旨を判断するためには、特許請求の範囲を参酌すべきである。
【０２８６】
なお、本技術の画像処理装置は以下のような構成も取ることができる。
（１）  符号化された画像を復号処理して画像を生成する復号部と、
前記復号部により生成された画像のフィルタ処理画素に対して構築されたタップの画像データと係数セットを用いてフィルタ演算を行うフィルタ演算部と、
前記タップ位置が下側ブロック境界から所定範囲内の位置である場合に、該所定範囲内の画像データを用いることなく前記フィルタ演算を行うように、前記所定範囲内のタップの画像データの置き換えまたは前記係数セットの変更を行うフィルタ制御部と
を備える画像処理装置。
（２）  前記フィルタ制御部は、前記所定範囲の境界の外側に隣接する画素を垂直方向に複写して前記所定範囲内のタップとして用いるように、前記画像データの置き換えまたは前記係数セットの変更を行う（１）に記載の画像処理装置。
（３）  前記フィルタ制御部は、前記所定範囲の境界の外側に隣接する画素の位置をミラー複写の軸として、前記所定範囲内のタップに対してミラー複写が行われた画素を用いるように、前記画像データの置き換えまたは前記係数セットの変更を行う（１）に記載の画像処理装置。
（４）  前記フィルタ演算部は、前記符号化された画像に含められている係数セットの情報に基づいて構築された係数セットを用いてフィルタ演算を行う（１）乃至（３）の何れかに記載の画像処理装置。
（５）  前記フィルタ制御部は、前記符号化された画像に含まれている選択情報に基づき、前記タップ位置が前記所定範囲内の位置となる場合に前記フィルタ演算を行うことなく画像データを出力する処理と、前記所定範囲内のタップの画像データの置き換えまたは前記係数セットの変更を行う処理の何れかを選択する（１）乃至（４）の何れかに記載の画像処理装置。
（６）  前記フィルタ制御部は、前記所定範囲内の画像データを用いることなく前記フィルタ演算を行うように前記タップを縮小する（１）に記載の画像処理装置。
（７）  前記所定範囲は、デブロッキングフィルタ処理のフィルタ処理範囲である（１）乃至（６）の何れかに記載の画像処理装置。
（８）  前記所定範囲は、ＳＡＯ（Sample Adaptive Offset）処理が行われていない画素範囲である（１）乃至（６）の何れかに記載の画像処理装置。
（９）  画像を符号化する際にローカル復号処理された画像のフィルタ処理画素に対して構築されたタップの画像データと係数セットを用いてフィルタ演算を行うフィルタ演算部と、
前記タップ位置が下側ブロック境界から所定範囲内の位置である場合に、該所定範囲内の画像データを用いることなく前記フィルタ演算を行うように、前記所定範囲内のタップの画像データの置き換えまたは前記係数セットの変更を行うフィルタ制御部と、
前記フィルタ演算部によりフィルタ演算が行われた画像を用いて、前記画像を符号化する符号化部と
を備える画像処理装置。
（１０）  前記フィルタ制御部は、前記フィルタ演算に用いた前記係数セットの情報を、前記符号化された画像に含める（９）に記載の画像処理装置。
（１１）  前記フィルタ制御部は、前記タップ位置が前記所定範囲内の位置となる場合に前記フィルタ演算を行うことなく画像データを出力する処理の符号化コストと、前記所定範囲内のタップの画像データの置き換えまたは前記係数セットの変更を行う処理の符号化コストを比較して、比較結果に基づき何れかの処理を選択して用いる（９）または（１０）に記載の画像処理装置。
（１２）  前記フィルタ制御部は、前記選択された処理を示す選択情報を前記符号化された画像に含める（１１）に記載の画像処理装置。
【産業上の利用可能性】
【０２８７】
この技術の画像処理装置と画像処理方法によれば、復号処理された画像のフィルタ処理画素に対して構築されたタップの画像データと係数セットを用いたフィルタ演算が行われる。このため、適応ループフィルタの前段に設けられたフィルタのフィルタ処理後の画像データを用いることなく適応ループフィルタ処理を行うことができるので、適応ループフィルタの前段に設けられたフィルタのフィルタ処理後に適応ループフィルタ処理を行うことができるように画像データを記憶するラインメモリのメモリ容量を削減できる。したがって、この技術の画像処理装置や画像処理方法を適用した電子機器を安価に提供ことが可能となる。
【符号の説明】
【０２８８】
１０・・・画像符号化装置、１１・・・Ａ／Ｄ変換部、１２，５８・・・画面並べ替えバッファ、１３・・・減算部、１４・・・直交変換部、１５・・・量子化部、１６・・・可逆符号化部、１７・・・蓄積バッファ、１８・・・レート制御部、２１，５３・・・逆量子化部、２２，５４・・・逆直交変換部、２３，５５・・・加算部、２４，５６・・・デブロッキングフィルタ処理部、２５，５７・・・ループフィルタ処理部、２６・・・係数メモリ部、２７，６１・・・フレームメモリ、２８，６０・・・ＳＡＯ（Sample Adaptive Offset）部、２９，６２，６５・・・セレクタ、３１，６３・・・イントラ予測部、３２・・・動き予測・補償部、３３・・・予測画像・最適モード選択部、５０・・・画像復号装置、５１・・・蓄積バッファ、５２・・・可逆復号部、５９・・・Ｄ／Ａ変換部、６４・・・動き補償部、９０・・・テレビジョン装置、９２・・・携帯電話機、９４・・・記録再生装置、９６・・・撮像装置、２５１・・・ラインメモリ、２５２・・・タップ構築部、２５３・・・係数構築部、２５４・・・フィルタ演算部、２５５・・・センタータップ出力部、２５６・・・出力選択部、２５９・・・フィルタ制御部
【図１】
2013118605.tif 000003
【図２】
2013118605.tif 000004
【図３】
2013118605.tif 000005
【図４】
2013118605.tif 000006
【図５】
2013118605.tif 000007
【図６】
2013118605.tif 000008
【図７】
2013118605.tif 000009
【図８】
2013118605.tif 000010
【図９】
2013118605.tif 000011
【図１０】
2013118605.tif 000012
【図１１】
2013118605.tif 000013
【図１２】
2013118605.tif 000014
【図１３】
2013118605.tif 000015
【図１４】
2013118605.tif 000016
【図１５】
2013118605.tif 000017
【図１６】
2013118605.tif 000018
【図１７】
2013118605.tif 000019
【図１８】
2013118605.tif 000020
【図１９】
2013118605.tif 000021
【図２０】
2013118605.tif 000022
【図２１】
2013118605.tif 000023
【図２２】
2013118605.tif 000024
【図２３】
2013118605.tif 000025
【図２４】
2013118605.tif 000026
【図２５】
2013118605.tif 000027
【図２６】
2013118605.tif 000028
【図２７】
2013118605.tif 000029
【図２８】
2013118605.tif 000030
【図２９】
2013118605.tif 000031
【図３０】
2013118605.tif 000032
【図３１】
2013118605.tif 000033
【図３２】
2013118605.tif 000034
【図３３】
2013118605.tif 000035
【図３４】
2013118605.tif 000036
【図３５】
2013118605.tif 000037
【図３６】
2013118605.tif 000038
【図３７】
2013118605.tif 000039
【図３８】
2013118605.tif 000040
【図３９】
2013118605.tif 000041
【図４０】
2013118605.tif 000042
【図４１】
2013118605.tif 000043
【図４２】
2013118605.tif 000044
【図４３】
2013118605.tif 000045