(57)【要約】【課題】符号化または復号する際に必要となるラインメモリの増加を防ぐことができるようにする。【解決手段】ALFクラス分類処理部は、左上の画素Ｃ１のクラス分類処理を行う。画素Ｃ１のクラス分類処理が終わると、ALFフィルタ演算部は、クラス分類処理の結果である画素Ｃ１のクラス値を用いて、画素Ｃ１のフィルタ演算処理を行う。次に、ALFクラス分類処理部１０２は、画素Ｃ１の、画面内におけるラスタスキャン順に次である画素Ｃ２のクラス分類処理を行う。ALFフィルタ演算部１０３は、クラス分類処理の結果である画素Ｃ２のクラス値を用いて、画素Ｃ２のフィルタ演算処理を行う。本開示は、例えば、画像処理装置に適用することができる。【選択図】図１０
2013085113.tif 000002
【特許請求の範囲】
【請求項１】
符号化ストリームを復号処理して画像を生成する復号部と、
前記復号部により生成された画像において、画素単位でクラスを分類するクラス分類部と、
前記クラス分類部により分類されたクラスで、前記画像のフィルタ処理を行うフィルタ処理部と
を備える画像処理装置。
【請求項２】
前記クラス分類部は、前記復号部により生成された画像において、処理対象の画素の位置が、所定の画素位置である場合、前記処理対象の画素のクラスを分類し、前記復号部により生成された画像において、処理対象の画素の位置が、前記所定の画素位置ではない場合、前記処理対象の画素を、前記所定の画素位置に位置する画素について分類されたクラスに分類する
請求項１に記載の画像処理装置。
【請求項３】
前記符号化ストリームから、画像における所定の画素位置を示すパターンを表す付加ビットを取得する付加ビット取得部をさらに備え、
前記クラス分類部は、前記付加ビット取得部により取得された前記付加ビットを参照して、前記復号部により生成された画像において、処理対象の画素の位置が、前記所定の画素位置である場合、前記処理対象の画素のクラスを分類し、前記復号部により生成された画像において、処理対象の画素の位置が、前記所定の画素位置ではない場合、前記処理対象の画素を、前記所定の画素位置に位置する画素について分類されたクラスに分類する
請求項２に記載の画像処理装置。
【請求項４】
前記復号部により生成された画像の画像情報を取得する画像情報取得部をさらに備え、
前記クラス分類部は、前記画像情報取得部により取得された前記画像情報を参照して、前記復号部により生成された画像において、処理対象の画素の位置が、前記所定の画素位置である場合、前記処理対象の画素のクラスを分類し、前記復号部により生成された画像において、処理対象の画素の位置が、前記所定の画素位置ではない場合、前記処理対象の画素を、前記所定の画素位置に位置する画素について分類されたクラスに分類する
請求項２に記載の画像処理装置。
【請求項５】
前記クラス分類部は、前記フィルタ処理部による前記画像のフィルタ処理に用いる参照画素の範囲を用いて、前記復号部により生成された画像において、画素単位でクラスを分類する
請求項１に記載の画像処理装置。
【請求項６】
画像処理装置が、
符号化ストリームを復号処理して画像を生成し、
生成された画像において、画素単位でクラスを分類し、
分類されたクラスで、前記画像のフィルタ処理を行う
画像処理方法。
【請求項７】
画像を符号化する際にローカル復号処理された画像において、画素単位でクラスを分類するクラス分類部と、
前記クラス分類部により分類されたクラスで、前記画像のフィルタ処理を行うフィルタ処理部と、
前記フィルタ処理部によりフィルタ処理が行われた画像を用いて、前記画像を符号化する符号化部と
を備える画像処理装置。
【請求項８】
前記クラス分類部は、前記ローカル復号処理された画像において、処理対象の画素の位置が、所定の画素位置である場合、前記処理対象の画素のクラスを分類し、前記ローカル復号処理された画像において、処理対象の画素の位置が、前記所定の画素位置ではない場合、前記処理対象の画素を、前記所定の画素位置に位置する画素について分類されたクラスに分類する
請求項７に記載の画像処理装置。
【請求項９】
画像における所定の画素位置を示す少なくとも１つのパターンを参照して前記クラス分類部により分類されたクラスで、前記フィルタ処理部により前記画像のフィルタ処理が行われた前記画像のフィルタ処理結果が最適である最適パターンを決定し、決定された最適パターンを表す付加ビットを、符号化された画像に付加するビット付加部をさらに備える
請求項８に記載の画像処理装置。
【請求項１０】
前記ローカル復号処理された画像の画像情報を取得する画像情報取得部をさらに備え、
前記クラス分類部は、前記画像情報取得部により取得された前記画像情報を参照して、前記ローカル復号処理された画像において、処理対象の画素の位置が、前記所定の画素位置である場合、前記処理対象の画素のクラスを分類し、前記ローカル復号処理された画像において、処理対象の画素の位置が、前記所定の画素位置ではない場合、前記処理対象の画素を、前記所定の画素位置に位置する画素について分類されたクラスに分類する
請求項８に記載の画像処理装置。
【請求項１１】
前記クラス分類部は、前記フィルタ処理部による前記画像のフィルタ処理に用いる参照画素の範囲を用いて、前記復号部により生成された画像において、画素単位でクラスを分類する
請求項７に記載の画像処理装置。
【請求項１２】
画像処理装置が、
画像を符号化する際にローカル復号処理された画像において、画素単位でクラスを分類し、
分類されたクラスで、前記画像のフィルタ処理を行い、
フィルタ処理が行われた画像を用いて、前記画像を符号化する
画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、画像処理装置および方法に関し、特に、符号化または復号する際に必要となるラインメモリの増加を防ぐことができるようにした画像処理装置および方法に関する。
【背景技術】
【０００２】
近年、画像情報をデジタルとして取り扱い、その際、効率の高い情報の伝送、蓄積を目的とし、画像情報特有の冗長性を利用して、離散コサイン変換等の直交変換と動き補償により圧縮する符号化方式を採用して画像を圧縮符号する装置が普及しつつある。この符号化方式には、例えば、MPEG（Moving Picture Experts Group）やH．264及びMPEG-4 Part10 （Advanced Video Coding、以下H．264/AVCと記す）などがある。
【０００３】
そして、現在、H．264/AVCより更なる符号化効率の向上を目的として、ITU-TとISO/IECとの共同の標準化団体であるJCTVC (Joint Collaboration Team - Video Coding) により、HEVC (High Efficiency Video Coding) と呼ばれる符号化方式の標準化が進められている。
【０００４】
現時点におけるHEVCのドラフトでは、デブロッキングフィルタ、適応オフセットフィルタ、および適応ループフィルタが採用されている。適応ループフィルタは、デブロッキングフィルタ、および適応オフセットフィルタの後に処理を行う。適応ループフィルタのうち、ブロックベースの適応ループフィルタでは、４×４画素単位に全ての画素のバリアンス（分散）を計算してクラス分類が行われている。
【０００５】
これに対して、非特許文献１においては、４×４画素内のサブサンプルした４画素についてのみバリアンスを計算し、４×４画素のブロックのクラス分類を行うことが提案されている。この提案によれば、クラス分類における計算の削減が実現される。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】” Line Memory Reduction for ALF Decoding”, Semih Esenlik, Matthias Narroschke, Thomas Wedi, JCTVC-E225,March 2011
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上述したように、従来においては、クラス分類処理を４×４画素のブロック単位で行っているため、４×４画素のブロックのバリアンスの計算が完了しないと、そのブロックのフィルタ処理を開始することができなかった。
【０００８】
このため、最大の符号化単位であるLCUの下部（水平境界）のデブロックフィルタおよび適応オフセットフィルタの進捗が、適応ループフィルタのブロック単位のクラス分類処理に影響を与える恐れが高くなり、ラインメモリの増加につながってしまっていた。
【０００９】
本開示は、このような状況に鑑みてなされたものであり、LCUの下部においてラインメモリの増加を防ぐことができるものである。
【課題を解決するための手段】
【００１０】
本開示の第１の側面の画像処理装置は、符号化ストリームを復号処理して画像を生成する復号部と、前記復号部により生成された画像において、画素単位でクラスを分類するクラス分類部と、前記クラス分類部により分類されたクラスで、前記画像のフィルタ処理を行うフィルタ処理部とを備える。
【００１１】
前記クラス分類部は、前記復号部により生成された画像において、処理対象の画素の位置が、所定の画素位置である場合、前記処理対象の画素のクラスを分類し、前記復号部により生成された画像において、処理対象の画素の位置が、前記所定の画素位置ではない場合、前記処理対象の画素を、前記所定の画素位置に位置する画素について分類されたクラスに分類することができる。
【００１２】
前記符号化ストリームから、画像における所定の画素位置を示すパターンを表す付加ビットを取得する付加ビット取得部をさらに備え、前記クラス分類部は、前記付加ビット取得部により取得された前記付加ビットを参照して、前記復号部により生成された画像において、処理対象の画素の位置が、前記所定の画素位置である場合、前記処理対象の画素のクラスを分類し、前記復号部により生成された画像において、処理対象の画素の位置が、前記所定の画素位置ではない場合、前記処理対象の画素を、前記所定の画素位置に位置する画素について分類されたクラスに分類することができる。
【００１３】
前記復号部により生成された画像の画像情報を取得する画像情報取得部をさらに備え、前記クラス分類部は、前記画像情報取得部により取得された前記画像情報を参照して、前記復号部により生成された画像において、処理対象の画素の位置が、前記所定の画素位置である場合、前記処理対象の画素のクラスを分類し、前記復号部により生成された画像において、処理対象の画素の位置が、前記所定の画素位置ではない場合、前記処理対象の画素を、前記所定の画素位置に位置する画素について分類されたクラスに分類することができる。
【００１４】
前記クラス分類部は、前記フィルタ処理部による前記画像のフィルタ処理に用いる参照画素の範囲を用いて、前記復号部により生成された画像において、画素単位でクラスを分類することができる。
【００１５】
本開示の第１の側面の画像処理方法は、画像処理装置が、符号化ストリームを復号処理して画像を生成し、生成された画像において、画素単位でクラスを分類し、分類されたクラスで、前記画像のフィルタ処理を行う。
【００１６】
本開示の第２の側面の画像処理装置は、画像を符号化する際にローカル復号処理された画像において、画素単位でクラスを分類するクラス分類部と、前記クラス分類部により分類されたクラスで、前記画像のフィルタ処理を行うフィルタ処理部と、前記フィルタ処理部によりフィルタ処理が行われた画像を用いて、前記画像を符号化する符号化部とを備える。
【００１７】
前記クラス分類部は、前記ローカル復号処理された画像において、処理対象の画素の位置が、所定の画素位置である場合、前記処理対象の画素のクラスを分類し、前記ローカル復号処理された画像において、処理対象の画素の位置が、前記所定の画素位置ではない場合、前記処理対象の画素を、前記所定の画素位置に位置する画素について分類されたクラスに分類することができる。
【００１８】
画像における所定の画素位置を示す少なくとも１つのパターンを参照して前記クラス分類部により分類されたクラスで、前記フィルタ処理部により前記画像のフィルタ処理が行われた前記画像のフィルタ処理結果が最適である最適パターンを決定し、決定された最適パターンを表す付加ビットを、符号化された画像に付加するビット付加部をさらに備えることができる。
【００１９】
前記ローカル復号処理された画像の画像情報を取得する画像情報取得部をさらに備え、前記クラス分類部は、前記画像情報取得部により取得された前記画像情報を参照して、前記ローカル復号処理された画像において、処理対象の画素の位置が、前記所定の画素位置である場合、前記処理対象の画素のクラスを分類し、前記ローカル復号処理された画像において、処理対象の画素の位置が、前記所定の画素位置ではない場合、前記処理対象の画素を、前記所定の画素位置に位置する画素について分類されたクラスに分類することができる。
【００２０】
前記クラス分類部は、前記フィルタ処理部による前記画像のフィルタ処理に用いる参照画素の範囲を用いて、前記復号部により生成された画像において、画素単位でクラスを分類することができる。
【００２１】
本開示の第２の側面の画像処理方法は、画像処理装置が、画像を符号化する際にローカル復号処理された画像において、画素単位でクラスを分類し、分類されたクラスで、前記画像のフィルタ処理を行い、フィルタ処理が行われた画像を用いて、前記画像を符号化する。
【００２２】
本開示の第１の側面においては、符号化ストリームを復号処理して画像が生成され、生成された画像において、画素単位でクラスが分類され、分類されたクラスで、前記画像のフィルタ処理が行われる。
【００２３】
本開示の第２の側面においては、画像を符号化する際にローカル復号処理された画像において、画素単位でクラスが分類され、分類されたクラスで、前記画像のフィルタ処理が行われ、フィルタ処理が行われた画像を用いて、前記画像が符号化される。
【００２４】
なお、上述の画像処理装置は、独立した装置であっても良いし、１つの画像符号化装置または画像復号装置を構成している内部ブロックであってもよい。
【発明の効果】
【００２５】
本開示の第１側面によれば、画像を復号することができる。特に、ラインメモリの増加を防ぐことができる。
【００２６】
本開示の第２の側面によれば、画像を符号化することができる。特に、ラインメモリの増加を防ぐことができる。
【図面の簡単な説明】
【００２７】
【図１】画像符号化装置の主な構成例を示すブロック図である。
【図２】符号化処理の流れの例を説明するフローチャートである。
【図３】画像復号装置の主な構成例を示すブロック図である。
【図４】復号処理の流れの例を説明するフローチャートである。
【図５】従来の適応ループフィルタのクラス分類について説明する図である。
【図６】LCU境界における従来の適応ループフィルタを説明する図である。
【図７】本開示を適用した適応ループフィルタの構成例を示すブロック図である。
【図８】適応ループフィルタ処理を説明するフローチャートである。
【図９】本技術と比較するための従来のブロック単位処理を説明する図である。
【図１０】本技術の画素単位処理の効果について説明する図である。
【図１１】本技術の画素単位処理の他の効果について説明する図である。
【図１２】本技術の画素単位処理のさらに他の効果について説明する図である。
【図１３】クラス分類を行う算出点の位置を示すパターンの例を示す図である。
【図１４】本開示を適用した適応ループフィルタの他の構成例を示すブロック図である。
【図１５】画像符号化装置の適応ループフィルタ処理を説明するフローチャートである。
【図１６】画素単位の適応ループフィルタ処理を説明するフローチャートである。
【図１７】本開示を適用した適応ループフィルタの他の構成例を示すブロック図である。
【図１８】画像復号装置の適応ループフィルタ処理を説明するフローチャートである。
【図１９】本開示を適用した適応ループフィルタのさらに他の構成例を示すブロック図である。
【図２０】適応ループフィルタ処理の他の例を説明するフローチャートである。
【図２１】コンピュータの主な構成例を示すブロック図である。
【図２２】テレビジョン装置の概略的な構成の一例を示すブロック図である。
【図２３】携帯電話機の概略的な構成の一例を示すブロック図である。
【図２４】記録再生装置の概略的な構成の一例を示すブロック図である。
【図２５】撮像装置の概略的な構成の一例を示すブロック図である。
【発明を実施するための形態】
【００２８】
以下、本開示を実施するための形態（以下実施の形態とする）について説明する。なお、説明は以下の順序で行う。
１．装置および動作の概要
２．従来の手法の説明
３．第１の実施の形態
４．第２の実施の形態
５．第３の実施の形態
６．応用例
【００２９】
＜１．装置および動作の概要＞
［画像符号化装置の構成例］
図１は、本開示を適用した画像処理装置としての画像符号化装置の一実施の形態の構成を表している。
【００３０】
図１に示される画像符号化装置１１は、予測処理を用いて画像データを符号化する。ここで、符号化方式としては、例えば、HEVC（High Efficiency Video Coding）方式などが用いられる。
【００３１】
図１の例において、画像符号化装置１１は、A/D（Analog / Digital）変換部２１、画面並べ替えバッファ２２、演算部２３、直交変換部２４、量子化部２５、可逆符号化部２６、および蓄積バッファ２７を有する。また、画像符号化装置１１は、逆量子化部２８、逆直交変換部２９、演算部３０、デブロッキングフィルタ３１、フレームメモリ３２、選択部３３、イントラ予測部３４、動き予測・補償部３５、予測画像選択部３６、およびレート制御部３７を有する。
【００３２】
さらに、画像符号化装置１１は、デブロッキングフィルタ３１とフレームメモリ３２との間に、適応オフセットフィルタ４１および適応ループフィルタ４２ａを有する。
【００３３】
A/D変換部２１は、入力された画像データをA/D変換し、画面並べ替えバッファ２２に出力し、記憶させる。
【００３４】
画面並べ替えバッファ２２は、記憶した表示の順番のフレームの画像を、GOP（Group of Picture）構造に応じて、符号化のためのフレームの順番に並べ替える。画面並べ替えバッファ２２は、フレームの順番を並び替えた画像を、演算部２３に供給する。また、画面並べ替えバッファ２２は、フレームの順番を並び替えた画像を、イントラ予測部３４および動き予測・補償部３５にも供給する。
【００３５】
演算部２３は、画面並べ替えバッファ２２から読み出された画像から、予測画像選択部３６を介してイントラ予測部３４若しくは動き予測・補償部３５から供給される予測画像を減算し、その差分情報を直交変換部２４に出力する。
【００３６】
例えば、イントラ符号化が行われる画像の場合、演算部２３は、画面並べ替えバッファ２２から読み出された画像から、イントラ予測部３４から供給される予測画像を減算する。また、例えば、インター符号化が行われる画像の場合、演算部２３は、画面並べ替えバッファ２２から読み出された画像から、動き予測・補償部３５から供給される予測画像を減算する。
【００３７】
直交変換部２４は、演算部２３から供給される差分情報に対して、離散コサイン変換、カルーネン・レーベ変換等の直交変換を施し、その変換係数を量子化部２５に供給する。
【００３８】
量子化部２５は、直交変換部２４が出力する変換係数を量子化する。量子化部２５は、量子化された変換係数を可逆符号化部２６に供給する。
【００３９】
可逆符号化部２６は、その量子化された変換係数に対して、可変長符号化、算術符号化等の可逆符号化を施す。
【００４０】
可逆符号化部２６は、イントラ予測モードを示す情報などのパラメータをイントラ予測部３４から取得し、インター予測モードを示す情報や動きベクトル情報などのパラメータを動き予測・補償部３５から取得する。
【００４１】
可逆符号化部２６は、量子化された変換係数を符号化するとともに、取得した各パラメータ（シンタクス要素）を符号化し、符号化データのヘッダ情報の一部とする（多重化する）。可逆符号化部２６は、符号化して得られた符号化データを蓄積バッファ２７に供給して蓄積させる。
【００４２】
例えば、可逆符号化部２６においては、可変長符号化または算術符号化等の可逆符号化処理が行われる。可変長符号化としては、CAVLC（Context-Adaptive Variable Length Coding）などがあげられる。算術符号化としては、CABAC（Context-Adaptive Binary Arithmetic Coding）などがあげられる。
【００４３】
蓄積バッファ２７は、可逆符号化部２６から供給された符号化データを、一時的に保持し、所定のタイミングにおいて、符号化された符号化画像として、例えば、後段の図示せぬ記録装置や伝送路などに出力する。
【００４４】
また、量子化部２５において量子化された変換係数は、逆量子化部２８にも供給される。逆量子化部２８は、その量子化された変換係数を、量子化部２５による量子化に対応する方法で逆量子化する。逆量子化部２８は、得られた変換係数を、逆直交変換部２９に供給する。
【００４５】
逆直交変換部２９は、供給された変換係数を、直交変換部２４による直交変換処理に対応する方法で逆直交変換する。逆直交変換された出力（復元された差分情報）は、演算部３０に供給される。
【００４６】
演算部３０は、逆直交変換部２９より供給された逆直交変換結果、すなわち、復元された差分情報に、予測画像選択部３６を介してイントラ予測部３４若しくは動き予測・補償部３５から供給される予測画像を加算し、局部的に復号された画像（復号画像）を得る。
【００４７】
例えば、差分情報が、イントラ符号化が行われる画像に対応する場合、演算部３０は、その差分情報にイントラ予測部３４から供給される予測画像を加算する。また、例えば、差分情報が、インター符号化が行われる画像に対応する場合、演算部３０は、その差分情報に動き予測・補償部３５から供給される予測画像を加算する。
【００４８】
その加算結果である復号画像は、デブロッキングフィルタ３１およびフレームメモリ３２に供給される。
【００４９】
デブロッキングフィルタ３１は、適宜デブロックフィルタ処理を行うことにより復号画像のブロック歪を除去する。デブロッキングフィルタ３１は、そのフィルタ処理結果を適応オフセットフィルタ４１に供給する。
【００５０】
適応オフセットフィルタ４１は、デブロッキングフィルタ３１によるフィルタ後の画像に対して、主にリンギングを除去するオフセットフィルタ(SAO: Sample adaptive offset)処理を行う。
【００５１】
オフセットフィルタの種類は、バンドオフセット２種類、エッジオフセット６種類、オフセットなしの計９種類がある。適応オフセットフィルタ４１は、分割領域毎にオフセットフィルタの種類が決定されたものであるquad-tree構造と分割領域毎のオフセット値を用いて、デブロッキングフィルタ３１によるフィルタ後の画像に対して、フィルタ処理を施す。
【００５２】
なお、本明細書において詳細な説明は省略するが、画像符号化装置１１において、quad-tree構造と分割領域毎のオフセット値は、適応オフセットフィルタ４１により算出されて用いられる。算出されたquad-tree構造と分割領域毎のオフセット値は、可逆符号化部２６において符号化され、後述する図３の画像復号装置５１に送信される。
【００５３】
適応オフセットフィルタ４１は、フィルタ処理後の画像を、適応ループフィルタ４２ａに供給する。
【００５４】
適応ループフィルタ４２ａは、画素単位（画素ベース）でクラス分類処理を行って、適応ループフィルタ（ALF:AdaptiveLoop Filter)処理を行う。適応ループフィルタ４２ａにおいては、フィルタとして、例えば、２次元のウィナーフィルタ（Wiener Filter）が用いられる。もちろん、ウィナーフィルタ以外のフィルタが用いられてもよい。
【００５５】
適応ループフィルタ４２ａは、適応オフセットフィルタ４１によるフィルタ後の画像において、画素単位でクラス分類を行う。適応ループフィルタ４２ａは、画素単位で分類されたクラスに応じたフィルタ係数で、適応オフセットフィルタ４１によるフィルタ後の画像に対してフィルタ処理を行い、フィルタ処理結果を、フレームメモリ３２に供給する。適応ループフィルタ４２ａの詳細については、図７を参照して後述される。
【００５６】
なお、本明細書において詳細な説明は省略するが、画像符号化装置１１において、フィルタ係数は、画面並べ替えバッファ１２からの原画像との残差を最小とするよう適応ループフィルタ４２ａにより算出されて用いられる。算出されたフィルタ係数は、可逆符号化部２６において符号化され、後述する図３の画像復号装置５１に送信される。
【００５７】
フレームメモリ３２は、所定のタイミングにおいて、蓄積されている参照画像を、選択部３３を介してイントラ予測部３４または動き予測・補償部３５に出力する。
【００５８】
例えば、イントラ符号化が行われる画像の場合、フレームメモリ３２は、参照画像を、選択部３３を介してイントラ予測部３４に供給する。また、例えば、インター符号化が行われる場合、フレームメモリ３２は、参照画像を、選択部３３を介して動き予測・補償部３５に供給する。
【００５９】
選択部３３は、フレームメモリ３２から供給される参照画像がイントラ符号化を行う画像である場合、その参照画像をイントラ予測部３４に供給する。また、選択部３３は、フレームメモリ３２から供給される参照画像がインター符号化を行う画像である場合、その参照画像を動き予測・補償部３５に供給する。
【００６０】
イントラ予測部３４は、画面内の画素値を用いて予測画像を生成するイントラ予測（画面内予測）を行う。イントラ予測部３４は、複数のモード（イントラ予測モード）によりイントラ予測を行う。
【００６１】
イントラ予測部３４は、全てのイントラ予測モードで予測画像を生成し、各予測画像を評価し、最適なモードを選択する。イントラ予測部３４は、最適なイントラ予測モードを選択すると、その最適なモードで生成された予測画像を、予測画像選択部３６を介して演算部２３や演算部３０に供給する。
【００６２】
また、上述したように、イントラ予測部３４は、採用したイントラ予測モードを示すイントラ予測モード情報等のパラメータを、適宜可逆符号化部２６に供給する。
【００６３】
動き予測・補償部３５は、インター符号化が行われる画像について、画面並べ替えバッファ２２から供給される入力画像と、選択部３３を介してフレームメモリ３２から供給される参照画像とを用いて、動き予測を行う。また、動き予測・補償部３５は、動き予測により検出された動きベクトルに応じて動き補償処理を行い、予測画像（インター予測画像情報）を生成する。
【００６４】
動き予測・補償部３５は、候補となる全てのインター予測モードのインター予測処理を行い、予測画像を生成する。動き予測・補償部３５は、生成された予測画像を、予測画像選択部３６を介して演算部２３や演算部３０に供給する。
【００６５】
また、動き予測・補償部３５は、採用されたインター予測モードを示すインター予測モード情報や、算出した動きベクトルを示す動きベクトル情報などのパラメータを可逆符号化部２６に供給する。
【００６６】
予測画像選択部３６は、イントラ符号化を行う画像の場合、イントラ予測部３４の出力を演算部２３や演算部３０に供給し、インター符号化を行う画像の場合、動き予測・補償部３５の出力を演算部２３や演算部３０に供給する。
【００６７】
レート制御部３７は、蓄積バッファ２７に蓄積された圧縮画像に基づいて、オーバーフローあるいはアンダーフローが発生しないように、量子化部２５の量子化動作のレートを制御する。
【００６８】
［画像符号化装置の動作］
図２を参照して、以上のような画像符号化装置１１により実行される符号化処理の流れについて説明する。
【００６９】
ステップＳ１１において、A/D変換部２１は入力された画像をA/D変換する。ステップＳ１２において、画面並べ替えバッファ２２は、A/D変換された画像を記憶し、各ピクチャの表示する順番から符号化する順番への並べ替えを行う。
【００７０】
画面並べ替えバッファ２２から供給される処理対象の画像がイントラ処理されるブロックの画像である場合、参照される復号済みの画像がフレームメモリ３２から読み出され、選択部３３を介してイントラ予測部３４に供給される。
【００７１】
これらの画像に基づいて、ステップＳ１３において、イントラ予測部３４は処理対象のブロックの画素を、候補となる全てのイントラ予測モードでイントラ予測する。なお、参照される復号済みの画素としては、デブロッキングフィルタ３１によりフィルタされていない画素が用いられる。
【００７２】
この処理により、候補となる全てのイントラ予測モードでイントラ予測が行われ、候補となる全てのイントラ予測モードに対してコスト関数値が算出される。そして、算出されたコスト関数値に基づいて、最適イントラ予測モードが選択され、最適イントラ予測モードのイントラ予測により生成された予測画像とそのコスト関数値が予測画像選択部３６に供給される。
【００７３】
画面並べ替えバッファ２２から供給される処理対象の画像がインター処理される画像である場合、参照される画像がフレームメモリ３２から読み出され、選択部３３を介して動き予測・補償部３５に供給される。これらの画像に基づいて、ステップＳ１４において、動き予測・補償部３５は、動き予測・補償処理を行う。
【００７４】
この処理により、候補となる全てのインター予測モードで動き予測処理が行われ、候補となる全てのインター予測モードに対してコスト関数値が算出され、算出したコスト関数値に基づいて、最適インター予測モードが決定される。そして、最適インター予測モードにより生成された予測画像とそのコスト関数値が予測画像選択部３６に供給される。
【００７５】
ステップＳ１５において、予測画像選択部３６は、イントラ予測部３４および動き予測・補償部３５より出力された各コスト関数値に基づいて、最適イントラ予測モードと最適インター予測モードのうちの一方を、最適予測モードに決定する。そして、予測画像選択部３６は、決定した最適予測モードの予測画像を選択し、演算部２３，３０に供給する。この予測画像は、後述するステップＳ１６，Ｓ２１の演算に利用される。
【００７６】
なお、この予測画像の選択情報は、イントラ予測部３４または動き予測・補償部３５に供給される。最適イントラ予測モードの予測画像が選択された場合、イントラ予測部３４は、最適イントラ予測モードを示す情報（すなわち、イントラ予測に関するパラメータ）を、可逆符号化部２６に供給する。
【００７７】
最適インター予測モードの予測画像が選択された場合、動き予測・補償部３５は、最適インター予測モードを示す情報と、最適インター予測モードに応じた情報（すなわち、動き予測に関するパラメータ）を可逆符号化部２６に出力する。最適インター予測モードに応じた情報としては、動きベクトル情報や参照フレーム情報などがあげられる。
【００７８】
ステップＳ１６において、演算部２３は、ステップＳ１２で並び替えられた画像と、ステップＳ１５で選択された予測画像との差分を演算する。予測画像は、インター予測する場合は動き予測・補償部３５から、イントラ予測する場合はイントラ予測部３４から、それぞれ予測画像選択部３６を介して演算部２３に供給される。
【００７９】
差分データは元の画像データに較べてデータ量が小さくなっている。したがって、画像をそのまま符号化する場合に較べて、データ量を圧縮することができる。
【００８０】
ステップＳ１７において、直交変換部２４は演算部２３から供給された差分情報を直交変換する。具体的には、離散コサイン変換、カルーネン・レーベ変換等の直交変換が行われ、変換係数が出力される。
【００８１】
ステップＳ１８において、量子化部２５は変換係数を量子化する。この量子化に際しては、後述するステップＳ２８の処理で説明されるように、レートが制御される。
【００８２】
以上のようにして量子化された差分情報は、次のようにして局部的に復号される。すなわち、ステップＳ１９において、逆量子化部２８は、量子化部２５により量子化された変換係数を量子化部２５の特性に対応する特性で逆量子化する。ステップＳ２０において、逆直交変換部２９は、逆量子化部２８により逆量子化された変換係数を直交変換部２４の特性に対応する特性で逆直交変換する。
【００８３】
ステップＳ２１において、演算部３０は、予測画像選択部３６を介して入力される予測画像を局部的に復号された差分情報に加算し、局部的に復号された（すなわち、ローカルデコードされた）画像（演算部２３への入力に対応する画像）を生成する。
【００８４】
ステップＳ２２においてデブロッキングフィルタ３１は、演算部３０より出力された画像に対して、デブロッキングフィルタ処理を行う。これによりブロック歪みが除去される。
デブロッキングフィルタ３１からのフィルタ後の画像は、適応オフセットフィルタ４１に出力される。
【００８５】
ステップＳ２３において、適応オフセットフィルタ４１は、適応オフセットフィルタ処理を行う。この処理により、分割領域毎にオフセットフィルタの種類が決定されたものであるquad-tree構造と分割領域毎のオフセット値を用いて、デブロッキングフィルタ３１によるフィルタ後の画像に対して、フィルタ処理が施される。フィルタ後の画像は、適応ループフィルタ４２ａに供給される。
【００８６】
ステップＳ２４において、適応ループフィルタ４２ａは、適応オフセットフィルタ４１によるフィルタ後の画像に対して、適応ループフィルタ処理を行う。適応ループフィルタ４２ａは、適応オフセットフィルタ４１によるフィルタ後の画像において、画素単位でクラス分類を行う。適応ループフィルタ４２ａは、画素単位で分類されたクラスに応じたフィルタ係数で、適応オフセットフィルタ４１によるフィルタ後の画像に対してフィルタ処理を行う。そして、適応ループフィルタ４２ａは、フィルタ処理結果を、フレームメモリ３２に供給する。なお、この適応ループフィルタ処理の詳細は、図８を参照して後述される。
【００８７】
ステップＳ２５においてフレームメモリ３２は、フィルタリングされた画像を記憶する。なお、フレームメモリ３２には、デブロッキングフィルタ３１、適応オフセットフィルタ４１、および適応ループフィルタ４２ａによりフィルタされていない画像も演算部３０から供給され、記憶される。
【００８８】
一方、上述したステップＳ１８において量子化された変換係数は、可逆符号化部２６にも供給される。ステップＳ２６において、可逆符号化部２６は、量子化部２５より出力された量子化された変換係数と、供給された各パラメータを符号化する。すなわち、差分画像が可変長符号化、算術符号化等の可逆符号化され、圧縮される。
【００８９】
ステップＳ２７において蓄積バッファ２７は、符号化された差分画像（すなわち、符号化ストリーム）を、圧縮画像として蓄積する。蓄積バッファ２７に蓄積された圧縮画像が適宜読み出され、伝送路を介して復号側に伝送される。
【００９０】
ステップＳ２８においてレート制御部３７は、蓄積バッファ２７に蓄積された圧縮画像に基づいて、オーバーフローあるいはアンダーフローが発生しないように、量子化部２５の量子化動作のレートを制御する。
【００９１】
ステップＳ２８の処理が終了すると、符号化処理が終了される。
【００９２】
［画像復号装置の構成例］
図３は、本開示を適用した画像処理装置としての画像復号装置の一実施の形態の構成を表している。図３に示される画像復号装置５１は、図１の画像符号化装置１１に対応する復号装置である。
【００９３】
画像符号化装置１１より符号化された符号化データは、所定の伝送路を介して、この画像符号化装置１１に対応する画像復号装置５１に伝送され、復号されるものとする。
【００９４】
図３に示されるように、画像復号装置５１は、蓄積バッファ６１、可逆復号部６２、逆量子化部６３、逆直交変換部６４、演算部６５、デブロッキングフィルタ６６、画面並べ替えバッファ６７、およびD/A変換部６８を有する。また、画像復号装置５１は、フレームメモリ６９、選択部７０、イントラ予測部７１、動き予測・補償部７２、および選択部７３を有する。
【００９５】
さらに、画像復号装置５１は、デブロッキングフィルタ６６と、画面並べ替えバッファ６７およびフレームメモリ６９との間に、適応オフセットフィルタ８１および適応ループフィルタ４２ｂを有する。
【００９６】
蓄積バッファ６１は、伝送されてきた符号化データを蓄積する。この符号化データは、画像符号化装置１１により符号化されたものである。可逆復号部６２は、蓄積バッファ６１から所定のタイミングで読み出された符号化データを、図１の可逆符号化部２６の符号化方式に対応する方式で復号する。
【００９７】
可逆復号部６２は、復号されたイントラ予測モードを示す情報などのパラメータをイントラ予測部７１に供給し、インター予測モードを示す情報や動きベクトル情報などのパラメータを動き予測・補償部７２に供給する。
【００９８】
逆量子化部６３は、可逆復号部６２により復号されて得られた係数データ（量子化係数）を、図１の量子化部２５の量子化方式に対応する方式で逆量子化する。つまり、逆量子化部６３は、画像符号化装置１１から供給された量子化パラメータを用いて、図１の逆量子化部２８と同様の方法で量子化係数の逆量子化を行う。
【００９９】
逆量子化部６３は、逆量子化された係数データ、つまり、直交変換係数を、逆直交変換部６４に供給する。逆直交変換部６４は、図１の直交変換部２４の直交変換方式に対応する方式で、その直交変換係数を逆直交変換し、画像符号化装置１１において直交変換される前の残差データに対応する復号残差データを得る。
【０１００】
逆直交変換されて得られた復号残差データは、演算部６５に供給される。また、演算部６５には、選択部７３を介して、イントラ予測部７１若しくは動き予測・補償部７２から予測画像が供給される。
【０１０１】
演算部６５は、その復号残差データと予測画像とを加算し、画像符号化装置１１の演算部２３により予測画像が減算される前の画像データに対応する復号画像データを得る。演算部６５は、その復号画像データをデブロッキングフィルタ６６に供給する。
【０１０２】
デブロッキングフィルタ６６は、適宜デブロックフィルタ処理を行うことにより復号画像のブロック歪を除去する。デブロッキングフィルタ６６は、そのフィルタ処理結果を適応オフセットフィルタ８１に供給する。
【０１０３】
適応オフセットフィルタ８１は、デブロッキングフィルタ６６によるフィルタ後の画像に対して、主にリンギングを除去するオフセットフィルタ(SAO)処理を行う。
【０１０４】
適応オフセットフィルタ８１は、分割領域毎にオフセットフィルタの種類が決定されたものであるquad-tree構造と分割領域毎のオフセット値を用いて、デブロッキングフィルタ６６によるフィルタ後の画像に対して、フィルタ処理を施す。適応オフセットフィルタ８１は、フィルタ処理後の画像を、適応ループフィルタ４２ｂに供給する。
【０１０５】
なお、本明細書において詳細な説明は省略するが、適応オフセットフィルタ８１において、quad-tree構造と分割領域毎のオフセット値は、画像符号化装置１１の適応オフセットフィルタ４１により算出され、符号化されて送られてきたものが可逆復号部６２により復号されて用いられる。
【０１０６】
適応ループフィルタ４２ｂは、適応オフセットフィルタ８１によるフィルタ後の画像において、画素単位でクラス分類を行う。適応ループフィルタ４２ｂは、画素単位で分類されたクラスに応じたフィルタ係数で、適応オフセットフィルタ８１によるフィルタ後の画像に対してフィルタ処理を行い、フィルタ処理結果を、画面並べ替えバッファ６７に供給する。適応ループフィルタ４２ｂの詳細については、図７を参照して後述される。
【０１０７】
なお、本明細書において詳細な説明は省略するが、適応ループフィルタ４２ｂにおいて、フィルタ係数は、画像符号化装置１１の適応ループフィルタ４２ａにより算出され、符号化されて送られてきたものが可逆復号部６２により復号されて用いられる。
【０１０８】
画面並べ替えバッファ６７は、画像の並べ替えを行う。すなわち、図１の画面並べ替えバッファ２２により符号化の順番のために並べ替えられたフレームの順番が、元の表示の順番に並べ替えられる。D/A変換部６８は、画面並べ替えバッファ６７から供給された画像をD/A変換し、図示せぬディスプレイに出力し、表示させる。
【０１０９】
適応ループフィルタ４２ｂの出力は、さらに、フレームメモリ６９に供給される。
【０１１０】
フレームメモリ６９、選択部７０、イントラ予測部７１、動き予測・補償部７２、および選択部７３は、画像符号化装置１１のフレームメモリ３２、選択部３３、イントラ予測部３４、動き予測・補償部３５、および予測画像選択部３６にそれぞれ対応する。
【０１１１】
選択部７０は、インター処理される画像と参照される画像をフレームメモリ６９から読み出し、動き予測・補償部７２に供給する。また、選択部７０は、イントラ予測に用いられる画像をフレームメモリ６９から読み出し、イントラ予測部７１に供給する。
【０１１２】
イントラ予測部７１には、ヘッダ情報を復号して得られたイントラ予測モードを示す情報等が可逆復号部６２から適宜供給される。イントラ予測部７１は、この情報に基づいて、フレームメモリ６９から取得した参照画像から予測画像を生成し、生成した予測画像を選択部７３に供給する。
【０１１３】
動き予測・補償部７２には、ヘッダ情報を復号して得られた情報（予測モード情報、動きベクトル情報、参照フレーム情報、フラグ、および各種パラメータ等）が可逆復号部６２から供給される。
【０１１４】
動き予測・補償部７２は、可逆復号部６２から供給されるそれらの情報に基づいて、フレームメモリ６９から取得した参照画像から予測画像を生成し、生成した予測画像を選択部７３に供給する。
【０１１５】
選択部７３は、動き予測・補償部７２またはイントラ予測部７１により生成された予測画像を選択し、演算部６５に供給する。
【０１１６】
［画像復号装置の動作］
図４を参照して、以上のような画像復号装置５１により実行される復号処理の流れの例を説明する。
【０１１７】
復号処理が開始されると、ステップＳ５１において、蓄積バッファ６１は、伝送されてきた符号化データを蓄積する。ステップＳ５２において、可逆復号部６２は、蓄積バッファ６１から供給される符号化データを復号する。図１の可逆符号化部２６により符号化されたＩピクチャ、Ｐピクチャ、並びにＢピクチャが復号される。
【０１１８】
ピクチャの復号に先立ち、動きベクトル情報、参照フレーム情報、予測モード情報（イントラ予測モード、またはインター予測モード）などのパラメータの情報も復号される。
【０１１９】
予測モード情報がイントラ予測モード情報である場合、予測モード情報は、イントラ予測部７１に供給される。予測モード情報がインター予測モード情報である場合、予測モード情報と対応する動きベクトル情報などは、動き予測・補償部７２に供給される。
【０１２０】
ステップＳ５３において、イントラ予測部７１または動き予測・補償部７２は、可逆復号部６２から供給される予測モード情報に対応して、それぞれ、予測画像生成処理を行う。
【０１２１】
すなわち、可逆復号部６２からイントラ予測モード情報が供給された場合、イントラ予測部７１は、Most Probable Modeの生成を行い、並列処理により、イントラ予測モードのイントラ予測画像を生成する。可逆復号部６２からインター予測モード情報が供給された場合、動き予測・補償部７２は、インター予測モードの動き予測・補償処理を行い、インター予測画像を生成する。
【０１２２】
この処理により、イントラ予測部７１により生成された予測画像（イントラ予測画像）、または動き予測・補償部７２により生成された予測画像（インター予測画像）が選択部７３に供給される。
【０１２３】
ステップＳ５４において、選択部７３は予測画像を選択する。すなわち、イントラ予測部７１により生成された予測画像、または動き予測・補償部７２により生成された予測画像が供給される。したがって、供給された予測画像が選択されて演算部６５に供給され、後述するステップＳ５７において逆直交変換部６４の出力と加算される。
【０１２４】
上述したステップＳ５２において、可逆復号部６２により復号された変換係数は、逆量子化部６３にも供給される。ステップＳ５５において、逆量子化部６３は可逆復号部６２により復号された変換係数を、図１の量子化部２５の特性に対応する特性で逆量子化する。
【０１２５】
ステップＳ５６において逆直交変換部２９は、逆量子化部２８により逆量子化された変換係数を、図１の直交変換部２４の特性に対応する特性で逆直交変換する。これにより図１の直交変換部２４の入力（演算部２３の出力）に対応する差分情報が復号されたことになる。
【０１２６】
ステップＳ５７において、演算部６５は、上述したステップＳ５４の処理で選択され、選択部７３を介して入力される予測画像を差分情報と加算する。これにより元の画像が復号される。
【０１２７】
ステップＳ５８においてデブロッキングフィルタ６６は、演算部６５より出力された画像に対して、デブロッキングフィルタ処理を行う。これによりブロック歪みが除去される。デブロッキングフィルタ６６からの復号画像は、適応オフセットフィルタ８１に出力される。
【０１２８】
ステップＳ５９において、適応オフセットフィルタ８１は、適応オフセットフィルタ処理を行う。この処理により、分割領域毎にオフセットフィルタの種類が決定されたものであるquad-tree構造と分割領域毎のオフセット値を用いて、デブロッキングフィルタ６６によるフィルタ後の画像に対して、フィルタ処理が施される。フィルタ後の画像は、適応ループフィルタ４２ｂに供給される。
【０１２９】
ステップＳ６０において、適応ループフィルタ４２ｂは、適応オフセットフィルタ８１によるフィルタ後の画像に対して、適応ループフィルタ処理を行う。適応ループフィルタ４２ｂは、適応オフセットフィルタ８１によるフィルタ後の画像において、画素単位でクラス分類を行う。適応ループフィルタ４２ｂは、画素単位で分類されたクラスに応じたフィルタ係数で、適応オフセットフィルタ８１によるフィルタ後の画像に対してフィルタ処理を行う。そして、適応ループフィルタ４２ｂは、フィルタ処理結果を、画面並べ替えバッファ６７およびフレームメモリ６９に供給する。なお、この適応ループフィルタ処理の詳細は、図８を参照して後述される。
【０１３０】
ステップＳ６１においてフレームメモリ６９は、フィルタリングされた画像を記憶する。
【０１３１】
ステップＳ６２において、画面並べ替えバッファ６７は、適応ループフィルタ４２ｂ後の画像の並べ替えを行う。すなわち画像符号化装置１１の画面並べ替えバッファ２２により符号化のために並べ替えられたフレームの順序が、元の表示の順序に並べ替えられる。
【０１３２】
ステップＳ６３において、D/A変換部６８は、画面並べ替えバッファ６７からの画像をD/A変換する。この画像が図示せぬディスプレイに出力され、画像が表示される。
【０１３３】
ステップＳ６３の処理が終了すると、復号処理が終了される。
【０１３４】
＜従来の手法の説明＞
［従来の適応ループフィルタの説明］
図５を参照して、従来のブロック単位（ブロックベース）の適応ループフィルタについて説明する。このブロック単位とは、適応ループフィルタにおけるクラス分類処理がブロック単位に行われることを表している。
【０１３５】
図５の例においては、左側に、HEVC（High Efficiency Video Coding）方式における手法、右側に、非特許文献１の提案における手法が示されている。丸は、画素を表し、黒丸は、バリアンスの計算が行われる画素を示している。また、実線は、クラス分類を行うブロックを表している。
【０１３６】
HEVC方式におけるブロック単位の適応ループフィルタにおいては、図５の左側に示されるように、実線で示される４×４画素のブロック毎に、全ての画素のバリアンス（Variance：分散）を計算してクラス分類が行われていた。点線の四角は、４×４画素のブロック内の左上の画素のバリアンスを求める際の参照範囲を示している。
【０１３７】
これに対して、非特許文献１の提案では、図５の右側に示されるように、４×４画素のブロックの１６画素から、４画素がサブサンプリングされ、そのサブサンプリングされた４画素についてのみバリアンスを計算してクラス分類が行われる。
【０１３８】
サブサンプリングされる４画素は、ブロック内における、上から１行目の左から１列目および３列目の画素と、上から３行目の左から１列目および３列目の画素である。
【０１３９】
この提案により、クラス分類の計算が削減される。
【０１４０】
ところで、このようなブロック単位の適応ループフィルタにおいてはクラス分類処理を４×４画素のブロック単位で行っているため、４×４画素のブロックのバリアンスの計算が完了しないと、そのブロックのフィルタ処理を開始することができなかった。
【０１４１】
このため、LCUの下部（水平境界）のデブロックフィルタおよび適応オフセットフィルタの進捗が、垂直方向のブロックサイズ分、適応ループフィルタのブロック単位のクラス分類処理に影響を与える恐れが高くなり、ラインメモリの増加につながってしまっていた。
【０１４２】
ここで、LCU（Largest Coding Unit）とCU（Coding Unit）について簡単に説明する。H．264及びMPEG（Moving Picture Experts Group）４ Part１０（AVC（Advanced Video Coding））（以下H．264/AVCと称する）においては、１つのマクロブロックを、複数の動き補償ブロックに分割し、それぞれに対して異なる動き情報を持たせることが可能であった。すなわち、H．264/AVC方式においては、マクロブロックとサブマクロブロックによる階層構造が規定されていた。これに対して、HEVC（High Efficiency Video Coding）方式においては、コーディングユニット（CU）が規定されている。
【０１４３】
CUは、Coding Tree Block（CTB）とも呼ばれ、H．264/AVC方式におけるマクロブロックと同様の役割を果たす、符号化（復号）の処理単位となる領域（ピクチャ単位の画像の部分領域）である。後者は、１６×１６画素の大きさに固定されているのに対し、前者の大きさは固定されておらず、それぞれのシーケンスにおいて、画像圧縮情報中において指定されることになる。
【０１４４】
例えば、出力となる符号化データに含まれるシーケンスパラメータセット（SPS（Sequence Parameter Set））において、CUの最大サイズ（LCU（Largest Coding Unit））と最小サイズ（（SCU（Smallest Coding Unit））が規定される。
【０１４５】
それぞれのLCU内においては、SCUのサイズを下回らない範囲で、split-flag=1とすることにより、より小さなサイズのCUに分割することができる。例えば、後述する図６の例では、CUの分割ラインは示されていないが、LCUの大きさが１６×１６画素であり、その中に、８×８画素のCUが４つ含まれている例が示されている。
【０１４６】
以上のHEVC方式のように、CUを定義し、そのCUを単位として各種処理を行うような符号化方式の場合、H．264/AVC方式におけるマクロブロックはLCUに相当し、ブロック（サブブロック）はCUに相当すると考えることができる。ただし、CUは、階層構造を有するので、その最上位階層のLCUのサイズは、例えば128×128画素のように、H．264/AVC方式のマクロブロックより大きく設定されることが一般的である。
【０１４７】
よって、以下、LCUは、H．264/AVC方式におけるマクロブロックをも含むものとし、CUは、H．264/AVC方式におけるブロック（サブブロック）をも含むものとする。
【０１４８】
［LCU境界における従来の適応ループフィルタの説明］
図６を参照して、適応ループフィルタのLCUの水平境界での処理について説明する。なお、以下、単にLCU境界と称する場合、それは、LCUの水平境界を表すものとして説明する。また、LCU境界からのラインの数は、LCU境界からの上に向かってのラインの数を示すものとして説明する。
【０１４９】
図６の例において、一番下の太線がLCU境界を示しており、丸は画素を表している。
【０１５０】
LCU境界から１ライン目乃至３ライン目の丸は、次のLCUがデブロッキングフィルタに入力されたときに、水平境界のデブロッキングＶ（垂直）フィルタ処理が開始される画素を表している。なお、１ライン目乃至３ライン目のハッチングで示される丸は、LCUに含まれるCUの垂直境界においてデブロッキングＨ（水平）フィルタ処理された画素を表している。１行目乃至３行目の丸のうち、白丸は、CUの垂直境界ではないため、実際には、デブロッキングＨフィルタ処理が施されない画素を表している。
【０１５１】
なお、ここで、水平境界のデブロッキングＶ（垂直）フィルタ処理とは、上下（垂直方向）に隣接するブロック間の水平境界のブロックノイズを除去するデブロッキングフィルタのことを言う。また、垂直境界のデブロッキングＨ（水平）フィルタ処理とは、左右（水平方向）に隣接するブロック間の垂直境界のブロックノイズを除去するデブロッキングフィルタのことを言う。図６の例においては、デブロッキングＨフィルタ処理、デブロッキングＶフィルタ処理の順にデブロッキングフィルタが行われる例が示されている。
【０１５２】
LCU境界から４ライン目および５ライン目の画素は、デブロッキングＶフィルタ処理済みの画素であって、かつ、適応オフセットフィルタ処理前の画素である。この４ライン目の画素は、１ライン目乃至３ライン目のデブロッキングＶフィルタ処理において参照される画素でもある。
【０１５３】
LCU境界から６ライン目乃至８ライン目の画素は、適応オフセットフィルタ処理済みの画素であって、かつ、適応ループフィルタ処理がなされていない画素である。
【０１５４】
LCU境界から９ライン目乃至１２ライン目の丸は、適応ループフィルタ(ALF)処理後の画素を表している。
【０１５５】
デブロッキングフィルタは、LCU境界において、LCU境界から１ライン目乃至３ライン目の画素を処理する際、LCU境界を介して下に接するLCUの画素（次の４ライン分の画素）が入力されないとデブロッキングＶフィルタ処理を開始できない。
【０１５６】
したがって、デブロッキングフィルタは、次に処理される対象の１乃至３ライン目の画素の処理で待機（一時停止）することになる。
【０１５７】
適応オフセットフィルタは、適応オフセットフィルタのラインメモリに保持されているLCU境界から５ライン目の画素のフィルタ処理を行うには、LCU境界から４乃至６ライン目の画素がラインメモリに必要である。しかしながら、LCU境界から４ライン目の画素は、デブロッキングフィルタのラインメモリに保持されているので、適応オフセットフィルタは、LCU境界から５ライン目の画素のフィルタ処理を行うことができない場合があり得る。このような場合、適応オフセットフィルタは、次に処理される対象の５ライン目の画素の処理で待機することになる。
【０１５８】
適応ループフィルタは、例えば、非特許文献１に記載の方法で、ブロック単位でクラス分類処理を行う。LCU境界から９ライン目乃至１２ライン目に実線で示される４×４画素ブロックの画素については、そのとき参照される画素も含めて、適応オフセットフィルタ処理済みの画素である。したがって、適応ループフィルタは、それらのクラス分類およびフィルタ処理を完了することができる。
【０１５９】
そして、LCU境界から５ライン目乃至８ライン目に実線に示される４×４画素ブロックのクラス分類処理は、画素Ｐ１乃至画素Ｐ４についてのバリアンスの計算結果により行われる。
【０１６０】
画素Ｐ１は、４×４画素ブロックにおける上から１行目の左から１列目の画素である。画素Ｐ２は、４×４画素ブロックにおける上から１行目の左から３列目の画素である。画素Ｐ３は、４×４画素ブロックにおける上から３行目の左から１列目の画素である。画素Ｐ４は、４×４画素ブロックにおける上から３行目の左から３列目の画素である。
【０１６１】
バリアンスの計算は、各画素の周囲８画素が参照されて行われるので、点線で示される範囲の画素が、画素Ｐ１乃至画素Ｐ４のバリアンスの計算に必要な画素となる。それらの画素のうち、画素Ｐ１および画素Ｐ２のバリアンスの計算に必要な画素は、すでに適応オフセットフィルタが終わっている。しかしながら、画素Ｐ３および画素Ｐ４のバリアンスの計算に必要な画素の一部（LCU境界から５ライン目の画素）は、まだ適応オフセットフィルタが終わってないので、バリアンスの計算に用いることができない。したがって、適応ループフィルタは、LCU境界から５ライン目乃至８ライン目の４×４画素ブロックのクラス分類処理で待機することになる。
【０１６２】
さらに、適応ループフィルタのフィルタ処理は、例えば、垂直方向については５タップで行われるが、ブロック単位のクラス分類処理が終了するまで、開始することができない。したがって、LCU境界から５ライン目乃至８ライン目の４×４画素ブロックのクラス分類処理およびフィルタ処理のために、適応ループフィルタのラインメモリには、適応オフセットフィルタ済みの６ライン目乃至１０ライン目の画素が保持される。
【０１６３】
なお、図６の例は、デブロッキングフィルタ、適応オフセットフィルタ、および適応ループフィルタの処理の一例であり、処理可能なラインやラインメモリ数は、アーキテクチャによって異なる場合もある。
【０１６４】
以上のように、適応ループフィルタにおいては、クラス分類処理をブロック単位で行うので、ブロックのクラス分類処理が終わらないと、そのブロックのフィルタ処理を行うことができなかった。
【０１６５】
すなわち、デブロッキングフィルタおよび適応オフセットフィルタの進捗の影響により、例えば、LCU境界から８ライン目より下における４×４画素のブロックのクラス分類が行うことができない。その結果、フィルタ処理も行うことができないので、アーキテクチャによっては、LCUの下部では、ラインメモリを多く保持しなければならなかった。
【０１６６】
そこで、以下に説明する適応ループフィルタにおいては、クラス分類処理を画素単位（画素ベース）で行うことにより、ラインメモリの増加を防ぐようにする。
【０１６７】
＜３．第１の実施の形態＞
［適応ループフィルタの構成例］
これより、図１の画像符号化装置１１の適応ループフィルタ４２ａおよび図３の画像復号装置５１の適応ループフィルタ４２ｂの詳細について説明する。なお、以下、適応ループフィルタ４２ａおよび適応ループフィルタ４２ｂが基本的に同じ動作を行い、それらを個々に区別する必要がない場合、適応ループフィルタ４２ａおよび適応ループフィルタ４２ｂを、単に適応ループフィルタ４２と総称する。また、それらを個々に区別する必要がある場合、適応ループフィルタ４２ａおよび適応ループフィルタ４２ｂについて、それぞれ個々に説明する。
【０１６８】
図７は、本開示を適用した適応ループフィルタの構成例を示すブロック図である。図７の例において、適応ループフィルタ４２は、ラインメモリ１０１、ALFクラス分類処理部１０２、ALFフィルタ演算部１０３、および制御部１０４を含むように構成される。
【０１６９】
前段からの適応オフセットフィルタ済みの画素は、ラインメモリ１０１、ALFクラス分類処理部１０２、およびALFフィルタ演算部１０３に入力される。なお、前段とは、図１の画像符号化装置１１の場合、適応オフセットフィルタ４１であり、図３の画像復号装置５１の場合、適応オフセットフィルタ８１である。
【０１７０】
ラインメモリ１０１は、制御部１０４からの制御信号に応じて、図５を参照して上述したようにLCU境界において処理に待ちが生じる場合、前段から入力される適応オフセットフィルタ済みの画素を一旦保持する。
【０１７１】
ALFクラス分類処理部１０２は、制御部１０４からの制御信号に応じて、前段から入力される適応オフセットフィルタ済みの画素を処理対象の画素として、画素単位でクラス分類処理を行う。ALFクラス分類処理部１０２は、制御部１０４からの制御信号に応じて、LCU境界において処理に待ちが生じる場合、ラインメモリ１０１に保持されている適応オフセットフィルタ済みの画素を処理対象の画素として、画素単位でクラス分類処理を行う。
【０１７２】
なお、ALFクラス分類処理部１０２においては、クラス分類の際、例えば、処理対象となる画素を中心とした周囲８画素が、参照画素として用いられる。
【０１７３】
ALFクラス分類処理部１０２は、分類した画素毎のクラス値を、ALFフィルタ演算部１０３に供給する。
【０１７４】
ALFフィルタ演算部１０３は、制御部１０４からの制御信号に応じて、前段から入力される適応オフセットフィルタ済みの画素に対してフィルタ演算を行う。ALFフィルタ演算部１０３は、制御部１０４からの制御信号に応じて、LCU境界において処理に待ちが生じる場合、ラインメモリ１０１に保持されている適応オフセットフィルタ済みの画素に対してフィルタ演算を行う。
【０１７５】
ALFフィルタ演算部１０３においては、フィルタ演算の際、処理対象となる画素を中心として、十字形状のタップや、スノーフレーク形状のタップが用いられる。十字形状のタップは、垂直方向に５画素、水平方向に７画素で形成される。スノーフレーク形状のタップは、処理対象となる画素を中心として、垂直方向に５画素、水平方向に５画素の範囲で形成される。
【０１７６】
このとき、ALFフィルタ演算部１０３は、ALFクラス分類処理部１０２からのクラス値に応じたフィルタ係数を用いてフィルタ演算を行い、フィルタ演算後の出力画素を、後段へ供給する。なお、後段とは、図１の画像符号化装置１１の場合、フレームメモリ３２であり、図３の画像復号装置５１の場合、画面並べ替えバッファ６７またはフレームメモリ６９である。
【０１７７】
制御部１０４は、入力画素の選択（スイッチング）や、処理タイミングなどを制御する制御信号を、ラインメモリ１０１、ALFクラス分類処理部１０２、およびALFフィルタ演算部１０３にそれぞれ供給する。
【０１７８】
［適応ループフィルタの処理例］
次に、図８のフローチャートを参照して、適応ループフィルタ４２の適応ループフィルタ処理を説明する。なお、図８の処理は、上述した図２のステップＳ２４の適応ループフィルタ処理の例であって、図４のステップＳ６０の適応ループフィルタ処理の例である。
【０１７９】
前段からの適応オフセットフィルタ済みの画素は、ラインメモリ１０１、ALFクラス分類処理部１０２、およびALFフィルタ演算部１０３に入力される。
【０１８０】
ステップＳ１０１において、ALFクラス分類処理部１０２は、適応オフセットフィルタ済みの画素を、処理対象の画素として選択する。
【０１８１】
ALFクラス分類処理部１０２は、制御部１０４からの制御信号に応じて、前段から入力される適応オフセットフィルタ済みの画素を処理対象の画素として選択する。
【０１８２】
なお、ALFクラス分類処理部１０２は、制御部１０４からの制御信号に応じて、LCU境界において処理に待ちが生じる場合、ラインメモリ１０１に保持されている適応オフセットフィルタ済みの画素を処理対象の画素として選択する。
【０１８３】
ALFクラス分類処理部１０２は、ステップＳ１０２において、処理対象の画素に対して、画素単位のクラス分類処理を行う。
【０１８４】
すなわち、ALFクラス分類処理部１０２は、処理対象の画素の参照画素（例えば、処理対象画素を中心とした周囲８画素）を、前段からまたはラインメモリ１０１から取得し、処理対象の画素のバリアンス（分散）を計算する。
【０１８５】
ALFクラス分類処理部１０２は、例えば、水平方向のバリアンス値Ｈ(i,j)、垂直方向のバリアンス値Ｖ(i,j)、およびラプラシアン代用バリアンス値Ｌ(i,j)を、次の式（１）のように算出する。
【数１】
2013085113.tif 000003
ここで、absは、絶対値を表す。iは、処理対象の画素のｘ座標を示しており、jは、処理対象の画素のy座標を示している。なお、この式（１）は、例であり、バリアンスの求め方はこれに限らない。
【０１８６】
ALFクラス分類処理部１０２は、計算したバリアンスに応じて、処理対象の画素のクラス値を求め、求めたクラス値を、ALFフィルタ演算部１０３に供給する。
【０１８７】
ステップＳ１０３において、ALFフィルタ演算部１０３は、適応オフセットフィルタ済みの画素に対して、ALFクラス分類処理部１０２からのクラス値に応じたフィルタ係数を用いて、フィルタ演算を行う。
【０１８８】
ALFフィルタ演算部１０３は、制御部１０４からの制御信号に応じて、前段から入力される適応オフセットフィルタ済みの画素を中心としたタップに対してフィルタ演算を行う。すなわち、ステップＳ１０２の処理は、画素単位のクラス分類処理であるので、ALFフィルタ演算部１０３は、ALFクラス分類処理部１０２のクラス分類結果を、他の画素の処理を待つことなく、用いることができる。
【０１８９】
なお、ALFフィルタ演算部１０３は、制御部１０４からの制御信号に応じて、LCU境界において処理に待ちが生じる場合、ラインメモリ１０１に保持されている適応オフセットフィルタ済みの画素を中心としたタップに対してフィルタ演算を行う。
【０１９０】
ALFフィルタ演算部１０３は、フィルタ演算後の出力画素を、後段へ供給する。
【０１９１】
ALFクラス分類処理部１０２およびALFフィルタ演算部１０３は、ステップＳ１０４において、処理対象の画素が、ブロック内の最後の画素であるか否かを判定する。ステップＳ１０４において、画面内の最後の画素であると判定された場合、処理は、ステップＳ１０５に進む。
【０１９２】
ALFクラス分類処理部１０２およびALFフィルタ演算部１０３は、ステップＳ１０５において、処理対象の画素が、画面内の最後の画素であるか否かを判定する。ステップＳ１０５において、画面内の最後の画素であると判定された場合、図８の適応ループフィルタは終了する。
【０１９３】
ステップＳ１０４において、ブロック内の最後の画素ではないと判定された場合、処理は、ステップＳ１０１に戻り、それ以降の処理が繰り返される。また、ステップＳ１０５において、画面内の最後の画素ではないと判定された場合、ラスタスキャン順に次のブロックが選択されて、処理は、ステップＳ１０１に戻り、それ以降の処理が繰り返される。
【０１９４】
なお、図８の例において、点線で示されているステップＳ１０４の処理は、ブロック単位での処理に対応させた場合の処理である。したがって、この場合、ラスタスキャン順のブロック毎に画素単位でのクラス分類処理が行われ、ブロック毎に画素単位でのフィルタ演算が行われる。ブロック単位での処理に対応させる必要がない場合、ステップＳ１０４はスキップ（省略）され、適応ループフィルタ処理は、例えば、１ライン終了したら、次のラインの画素を処理するというように、ラスタスキャン順の画素毎に画素単位で行われる。
【０１９５】
［画素単位の適応ループフィルタ処理の詳細］
次に、図９および図１０を参照して、従来のブロック単位処理と比較した場合の本技術の画素単位処理の効果について説明する。
【０１９６】
図９および図１０の例において、丸は画素を表し、黒丸は、それらの中心が処理対象の画素であり、その他が参照画素を表している。なお、図９および図１０の例において、クラス分類処理は、中心である処理対象の画素の周囲８画素を用いて行われ、フィルタ演算処理は、処理対象ブロックを中心としたスノーフレーク形状の画素を用いて行われる。また、図９の例の点線で囲まれた四角は、ブロック単位処理における処理対象のブロックを示している。これに対して、図１０の例の点線で囲まれた四角は、実際には必要ないが、従来のブロック単位処理に対応させるために示されている。
【０１９７】
図９のブロック単位処理においては、まず、１番目(1st)の画素Ｃ１のクラス分類処理が、周囲８画素を用いて行われる。その後、ブロック内の各画素についてのクラス分類処理が、ブロック内におけるラスタスキャン順に行われる。クラス分類処理は、そのブロックの最後の画素である１６番目(16th）の画素Ｃ１６を対象とした処理が終了するまで続けられる。
【０１９８】
１６番目の画素のクラス分類処理が終了したところで、ようやく、そのブロックを対象として１番目(1st)の画素Ｃ１のフィルタ演算が行われる。その後、ブロック内におけるラスタスキャン順に、ブロック内の各画素についてのフィルタ演算処理が、そのブロックの最後の画素である１６番目(16th）の画素Ｃ１６が終了するまで続けられる。それ以降も、ブロック単位に、クラス分類処理およびフィルタ演算処理が実行される。なお、図９の例においては、ブロック内の１１番目の画素Ｃ１１についてのフィルタ演算処理が示されている。
【０１９９】
これに対して、図１０の画素単位処理においては、まず、ALFクラス分類処理部１０２は、１番目(1st)の画素Ｃ１のクラス分類処理を周囲８画素を用いて行う。画素Ｃ１のクラス分類処理が終わると、ALFフィルタ演算部１０３は、クラス分類処理の結果である画素Ｃ１のクラス値を用いて、１番目(1st)の画素Ｃ１のフィルタ演算処理を行う。次に、ALFクラス分類処理部１０２は、画素Ｃ１の、画面内におけるラスタスキャン順に次である２番目(2nd)の画素Ｃ２のクラス分類処理を周囲８画素を用いて行う。ALFフィルタ演算部１０３は、クラス分類処理の結果である画素Ｃ２のクラス値を用いて、２番目(2nd)の画素Ｃ２のフィルタ演算処理を行う。それ以降も、画素単位に処理が実行される。
【０２００】
このように、クラス分類処理の単位を画素とすることで、ブロック単位の処理における、１番目乃至１６番目の処理後に、再度、１番目乃至１６番目の処理を行うような反復(iterative)処理が行われることを抑制することができる。これにより、次の図１１を参照して説明するように、余計なメモリ（バッファ）や帯域増加を防ぐことが可能である。
【０２０１】
［画素単位の適応ループフィルタ処理による効果］
図１１の例においては、左側に、比較のための非特許文献１の提案における手法、右側に、適応ループフィルタ４２による手法が示されている。丸は、画素を表し、黒丸は、クラス分類処理においてバリアンスの計算が行われる画素を示している。また、実線は、クラス分類を行う４×４画素ブロックを表しており、点線は、バリアンスの計算の際に参照される画素の範囲を表している。
【０２０２】
非特許文献１の提案では、図５を参照して上述したように４×４画素ブロック内の４画素が、クラス分類のためのバリアンスの計算対象としてサブサンプリングされ、そのサブサンプリングされた４画素についてのみバリアンスが計算されてクラス分類が行われる。
【０２０３】
サブサンプリングされる４画素は、図１１の左側に示されるように、ブロック内における、上から１行目における左から１列目および３列目の画素と、上から３行目における左から１列目および３列目の画素である。
【０２０４】
バリアンスの計算には、周辺８画素が必要となるので、上述した４画素のバリアンス計算の際に参照される画素の範囲は、点線に示される５×５画素の範囲となる。それらの画素のうち、画素Ｐ１および画素Ｐ２のバリアンスの計算に必要な画素は、すでに適応オフセットフィルタが終わっている。しかしながら、画素Ｐ３および画素Ｐ４のバリアンスの計算に必要な画素の一部（LCU境界から５ライン目の画素）は、まだ適応オフセットフィルタが終わってないので、バリアンスの計算に用いることができない。したがって、適応ループフィルタは、LCU境界から５ライン目乃至８ライン目の４×４画素ブロックのクラス分類処理で待機することになる。
【０２０５】
すなわち、従来のブロック単位のクラス分類の場合、LCU境界において処理に待ちが生じる際に、フィルタ係数が未決定となるのは、LCU境界から１ライン目乃至８ライン目の画素となってしまう。
【０２０６】
このため、LCU境界において処理に待ちが生じる際に、従来の適応ループフィルタのラインメモリには、適応オフセットフィルタ済みの６ライン目乃至１０ライン目の画素を保持する必要がある。
【０２０７】
これに対して、適応ループフィルタ４２においては、図１１の右側に示されるように、画素単位でクラス分類処理が行われる。この場合、LCU境界から７ライン目までの画素については、バリアンスの計算に必要な参照画素の一部がLCU境界から５ライン目以下にかからないので、クラス分類が可能となる。すなわち、適応ループフィルタ４２の画素単位のクラス分類の場合、LCU境界において、フィルタ係数が未決定となるのは、LCU境界から１ライン目乃至６ライン目の画素となる。
【０２０８】
また、フィルタ演算には処理対象の画素を中心とした５タップ（画素）が必要となるが、LCU境界から８ライン目の画素については、フィルタ演算に必要な参照画素の一部がLCU境界から５ライン目以下にかからないので、フィルタ演算も可能となる。
【０２０９】
これにより、LCU境界において処理に待ちが生じる際に、適応ループフィルタ４２のラインメモリには、適応オフセットフィルタ済みの６ライン目乃至９ライン目の画素を保持すればよくなり、従来の場合と比して、１ライン分少なくすることができる。
【０２１０】
以上のように、画素単位でクラス分類を行うことにより、LCU境界において（処理に待ちが生じる際に）、デブロッキングフィルタや適応オフセットフィルタの進捗の影響により、ラインメモリが増えてしまうことを防ぐことができる。
【０２１１】
また、画素単位でクラス分類を行うことにより、次の図１１を参照して説明するように、１つの画素に対するクラス分類処理とフィルタ演算の参照範囲を揃えることが可能になる。
【０２１２】
［画素単位の適応ループフィルタ処理による効果］
図１２を参照して、画素単位の適応ループフィルタ処理によるさらなる効果について説明する。
【０２１３】
図１２の例においては、左側に、比較のための従来のブロック単位処理における参照画素の読み出し方法が示されており、右側に、本技術の画素単位処理における参照画素の読み出し方法が示されている。
【０２１４】
従来においては、ブロック単位処理のため、１番目(1st)の画素Ｃ１のクラス分類処理においては、画素Ｃ１の周辺８画素（３×３画素の範囲）を参照画素として、ラインメモリから読み出す必要があった。また、１番目(1st)の画素Ｃ１のフィルタ演算処理においては、画素Ｃ１を中心として、垂直方向に５画素、水平方向に画素の範囲で形成されるスノーフレーク形状の画素を参照画素として、ラインメモリから読み出す必要があった。
【０２１５】
すなわち、従来においては、１番目(1st)の画素Ｃ１のフィルタ演算処理が、ブロックの全ての画素についてのクラス分類処理が終わった後で行われるので、クラス分類処理とフィルタ演算処理との２回、ラインメモリからの画素の読み出しが必要であった。
【０２１６】
これに対して、本技術の画素単位処理においては、画素単位処理のため、１番目(1st)の画素Ｃ１のクラス分類処理の後にすぐに１番目(1st)の画素Ｃ１のフィルタ演算処理を行うことができる。
【０２１７】
したがって、１番目(1st)の画素Ｃ１のクラス分類処理の参照範囲を、１番目(1st)の画素Ｃ１の周囲の垂直方向に５画素、水平方向に５画素の、実線で示される範囲に揃えれば、クラス分類処理において読み出した画素が、フィルタ演算にも使用可能である。
【０２１８】
これにより、ラインメモリからの読み出しが一度で済み、かつ、クラス分類処理の参照画素範囲（タップサイズ）を、フィルタ演算処理で参照する画素範囲まで広げることが可能になる。この結果、クラス分類処理の性能を向上させることが可能となる。
【０２１９】
なお、上記説明においては、全ての画素について、画素単位でクラス分類を行う例を説明してきたが、画素単位の場合にも、クラス分類を行う算出点（画素）を減らすことが可能である。
【０２２０】
図１３は、所定の範囲におけるクラス分類を行う算出点の位置（画素位置）を示すパターンの例を示している。図１３に示される各パターンにおいて、四角は、所定の範囲を示しており、下と左に矢印が示されている所定の画素の位置が、クラス分類処理を行う算出点として設定されている。
【０２２１】
パターン１２１は、１画素の範囲において、１画素の位置が算出点として設定されているパターンである。
【０２２２】
パターン１２２は、２×２画素の範囲において、その範囲における左上の画素の位置が算出点として設定されているパターンである。パターン１２２においては、左上の画素については、クラス分類処理が行われるが、それ以外の３つの画素については、クラス分類処理が行われず、左上の画素について決定されたクラス値が各画素のクラス値とされる。
【０２２３】
パターン１２２における左上の画素は、２×２画素の範囲において先に処理される画素であるので、それにより求められたクラス値を、他の３つの画素のクラス値として用いたとしても、処理の待ちを生じることがなく、スムーズに処理することができる。
【０２２４】
パターン１２３は、４×４画素の範囲において、その範囲における左上の画素の位置が算出点として設定されているパターンである。パターン１２３においては、左上の画素については、クラス分類処理が行われるが、それ以外の１５の画素については、クラス分類処理が行われず、左上の画素について決定されたクラス値が各画素のクラス値とされる。
【０２２５】
パターン１２３における左上の画素は、４×４画素の範囲において先に処理される画素であるので、それにより求められたクラス値を、他の１５の画素のクラス値として用いたとしても、処理の待ちを生じることがなく、スムーズに処理することができる。
【０２２６】
ここで、図１３において上に示されているパターン１２１乃至１２３は、いずれも、画素単位の処理についてのパターンであるが、四角で示される所定の範囲がブロックを示すものとして、ブロック単位で行われても、基本的に同じ処理を行うことができる。これは、パターン１２１乃至１２３における算出点が１点のため、ブロック単位に行われる場合であっても、ブロック（所定の範囲）内における複数の算出点のバリアンスを加算する必要がないためである。
【０２２７】
したがって、パターン１２１の画素単位の処理は、１×１画素のブロックにおいて、１つの算出点が設定されているブロック単位の処理と基本的に同じ処理であるといえる。
【０２２８】
パターン１２２の画素単位の処理は、２×２画素のブロックにおいて、１つの算出点が設定されているブロック単位の処理と基本的に同じ処理であるといえる。
【０２２９】
パターン１２３の画素単位の処理は、４×４画素のブロックにおいて、１つの算出点が設定されているブロック単位の処理と基本的に同じ処理であるといえる。
【０２３０】
一方、パターン１２４は、４×４画素の範囲において、その範囲における上から１行目の４つの画素の位置が算出点として設定されているパターンである。パターン１２４においては、上から１行目の４つの画素については、クラス分類処理が行われるが、それ以外の１２の画素については、クラス分類処理が行われない。
【０２３１】
この場合、左から１列目の上から２乃至４行目に位置する３つの画素については、左から１列目の上から１行目の画素のクラス値が用いられる。左から２列目の上から２乃至４行目に位置する３つの画素については、左から２列目の上から１行目の画素のクラス値が用いられる。左から３列目の上から２乃至４行目に位置する３つの画素については、左から３列目の上から１行目の画素のクラス値が用いられる。左から４列目の上から２乃至４行目に位置する３つの画素については、左から４列目の上から１行目の画素のクラス値が用いられる。
【０２３２】
パターン１２４における上から１行目の４つの画素は、４×４画素の範囲において先に処理される画素であるので、それにより求められたクラス値を、他の画素のクラス値として用いたとしても、処理の待ちを生じることがなく、スムーズに処理することができる。
【０２３３】
パターン１２５は、４×４画素の範囲において、その範囲における左から１列目の４つの画素の位置が算出点として設定されているパターンである。パターン１２５においては、左から１列目の４つの画素については、クラス分類処理が行われるが、それ以外の１２の画素については、クラス分類処理が行われない。
【０２３４】
この場合、左から２乃至４列目の上から１行目に位置する３つの画素については、左から１列目の上から１行目の画素のクラス値が用いられる。左から２乃至４列目の上から２行目に位置する３つの画素については、左から１列目の上から２行目の画素のクラス値が用いられる。左から２乃至４列目の上から３行目に位置する３つの画素については、左から１列目の上から３行目の画素のクラス値が用いられる。左から２乃至４列目の上から４行目に位置する３つの画素については、左から１列目の上から４行目の画素のクラス値が用いられる。
【０２３５】
パターン１２５における左から１列目の上から１行目の画素は、左から２乃至４列目の上から１行目に位置する３つの画素よりも先に処理される画素である。パターン１２５における左から１列目の上から２行目の画素は、左から２乃至４列目の上から２行目に位置する３つの画素よりも先に処理される画素である。パターン１２５における左から１列目の上から３行目の画素は、左から２乃至４列目の上から３行目に位置する３つの画素よりも先に処理される画素である。パターン１２５における左から１列目の上から４行目の画素は、左から２乃至４列目の上から４行目に位置する３つの画素よりも先に処理される画素である。
【０２３６】
したがって、左から１列目において先に求められるクラス値を、同じ行に位置する左から２乃至４列目の他の画素のクラス値に用いたとしても、処理の待ちを生じることがなく、スムーズに処理することができる。
【０２３７】
パターン１２６は、４×４画素の範囲において、その範囲における左から１列目の上から１および３行目の画素の位置、左から３行目の上から１および３行目の画素の位置が算出点として設定されているパターンである。パターン１２６においては、それらの算出点の画素については、クラス分類処理が行われるが、算出点以外の１２の画素については、クラス分類処理が行われない。
【０２３８】
この場合、左から１列目の上から２行目の画素と、左から２列目の上から１および２行目の画素とについては、左から１列目の上から１行目の画素のクラス値が用いられる。左から３列目の上から２行目の画素と、左から４列目の上から１および２行目の画素とについては、左から３列目の上から１行目の画素のクラス値が用いられる。左から１列目の上から４行目の画素と、左から２列目の上から３および４行目の画素とについては、左から１列目の上から３行目の画素のクラス値が用いられる。左から３列目の上から４行目の画素と、左から４列目の上から３および４行目の画素とについては、左から３列目の上から３行目の画素のクラス値が用いられる。
【０２３９】
すなわち、パターン１２６は、上述した２×２画素の範囲のパターンであるパターン１２２が４つ構成されるパターンであるともいえる。
【０２４０】
パターン１２６における左から１列目の上から１行目の画素は、１列目の上から２行目の画素と、左から２列目の上から１および２行目の画素よりも先に処理される画素である。パターン１２６における左から３列目の上から１行目の画素は、左から３列目の上から２行目の画素と、左から４列目の上から１および２行目の画素よりも先に処理される画素である。パターン１２６における左から１列目の上から３行目の画素は、左から１列目の上から４行目の画素と、左から２列目の上から３および４行目の画素よりも先に処理される画素である。パターン１２６における左から３列目の上から３行目の画素は、左から３列目の上から４行目の画素と、左から４列目の上から３および４行目の画素よりも先に処理される画素である。
【０２４１】
したがって、先に処理される画素について求められたクラス値を、後で処理される他の画素のクラス値に用いたとしても、処理の待ちを生じることがなく、スムーズに処理することができる。
【０２４２】
以上のように、画素単位の処理においても、クラス分類処理を行う算出点を減らして、演算回数を減らすことが可能である。
【０２４３】
次に、これらのパターンを用いて行われるクラス分類処理を行う適応ループフィルタについて詳しく説明していく。
【０２４４】
＜４．第２の実施の形態＞
［画像符号化装置の適応ループフィルタの構成例］
図１４は、本開示を適用した適応ループフィルタと、可逆符号化部の構成例とを示すブロック図である。なお、図１４においては、画像符号化装置１１の適応ループフィルタ４２ａおよび可逆符号化部２６の構成例が示されている。
【０２４５】
図１４の例においては、適応ループフィルタ４２ａは、ラインメモリ１０１、制御部１５１、ALFクラス分類処理部１５２、ALFフィルタ演算部１５３、クラス値格納バッファ１５４、およびコスト関数値算出部１５５を含むように構成されている。
【０２４６】
図１４の適応ループフィルタ４２ａは、ラインメモリ１０１を備える点が、図７の適応ループフィルタ４２と共通している。図１４の適応ループフィルタ４２ａは、制御部１０４およびALFクラス分類処理部１０２が、制御部１５１およびALFクラス分類処理部１５２にそれぞれ入れ替わった点が、図７の適応ループフィルタ４２と異なっている。また、図１４の適応ループフィルタ４２ａは、ALFフィルタ演算部１０３が、ALFフィルタ演算部１５３に入れ替わった点が、図７の適応ループフィルタ４２と異なっている。さらに、図１４の適応ループフィルタ４２ａは、クラス値格納バッファ１５４およびコスト関数値算出部１５５が追加された点が、図７の適応ループフィルタ４２と異なっている。
【０２４７】
すなわち、制御部１５１は、図７の制御部１０４と同様に、入力画素の選択や、処理タイミングなどを制御する制御信号を、ラインメモリ１０１、ALFクラス分類処理部１５２、およびALFフィルタ演算部１５３にそれぞれ供給する。
【０２４８】
また、制御部１５１は、図７の制御部１０４と異なり、クラス分類可否判定部１６１およびパターン判定部１６２を含んで構成されている。
【０２４９】
クラス分類可否判定部１６１は、例えば、図１２に示したパターン１２４乃至１２６を記憶している。クラス分類可否判定部１６１は、記憶しているパターンのうち、処理対象のパターンにおいて、処理対象の画素がクラス分類を行う算出点（すなわち、算出点として設定されている所定の画素位置の画素）であるか否かを判定する。クラス分類可否判定部１６１は、算出点であるか否かの判定結果に応じて、ALFクラス分類処理部１５２とクラス値格納バッファ１５４を制御する。
【０２５０】
すなわち、処理対象の画素がクラス分類を行う算出点であると判定した場合、クラス分類可否判定部１６１は、ALFクラス分類処理部１５２にその処理対象の画素を対象としてクラス分類を行わせる。また、クラス分類可否判定部１６１は、ALFクラス分類処理部１５２によるクラス分類処理によるクラス値を、処理対象の画素についてのクラス値格納バッファ１５４に記憶させる。
【０２５１】
また、処理対象の画素がクラス分類を行う算出点ではないと判定した場合、クラス分類可否判定部１６１は、ALFクラス分類処理部１５２にその処理対象の画素を対象としたクラス分類処理を禁止する。また、クラス分類可否判定部１６１は、パターンが示す算出点を対象として求められたクラス値を、処理対象の画素についてのクラス値格納バッファ１５４に記憶させる。
【０２５２】
パターン判定部１６２は、コスト関数値算出部１５５が算出した各パターンに対応するコスト関数値を比較し、最小のコスト関数値が示す最適なパターンがどれであるかを判定する。パターン判定部１６２は、最適なパターンの判定結果を、ALFフィルタ演算部１５３に供給する。また、パターン判定部１６２は、最適なパターンを示す付加ビットを生成し、生成した付加ビットを可逆符号化部２６の付加ビット設定部１７１に供給する。
【０２５３】
ALFクラス分類処理部１５２は、図７のALFクラス分類処理部１０２と同様に、前段から入力される、またはラインメモリ１０１に保持されている適応オフセットフィルタ済みの画素を処理対象の画素として、画素単位でクラス分類処理を行う。
【０２５４】
その際、ALFクラス分類処理部１５２は、図７のALFクラス分類処理部１０２と異なり、クラス分類可否判定部１６１の制御のもと、算出点である処理対象の画素のみを対象として、画素単位のクラス分類処理を行う。ALFクラス分類処理部１５２は、クラス分類処理の結果である処理対象の画素（算出点）のクラス値を、ALFフィルタ演算部１０３に供給するとともに、クラス値格納バッファ１５４に格納させる。
【０２５５】
ALFフィルタ演算部１５３は、図７のALFフィルタ演算部１０３と同様に、前段から入力される、またはラインメモリ１０１に保持されている適応オフセットフィルタ済みの画素を処理対象の画素として、フィルタ演算を行う。
【０２５６】
その際、ALFフィルタ演算部１５３は、図７のALFフィルタ演算部１０３と異なり、ALFクラス分類処理部１５２からのクラス値またはクラス値格納バッファ１５４に格納されているクラス値に応じたフィルタ係数を用いてフィルタ演算を行う。
【０２５７】
ALFフィルタ演算部１５３は、フィルタ演算後の出力画素を、コスト関数値算出部１５５に出力する。また、ALFフィルタ演算部１５３は、パターン判定部１６２により最適なパターンであるとされたパターンを用いてのフィルタ演算後の出力画素を後段に出力する。
【０２５８】
クラス値格納バッファ１５４は、クラス分類可否判定部１６１の制御のもと、ALFクラス分類処理部１５２により求められたクラス値、または、格納されている算出点のクラス値を、処理対象の画素のクラス値として格納する。
【０２５９】
コスト関数値算出部１５５は、ALFフィルタ演算部１５３からの各パターンのフィルタ演算後の出力画素を用いて、パターン毎にコスト関数値を算出する。コスト関数値算出部１５５は、パターン毎のコスト関数値を、パターン判定部１６２に供給する。
【０２６０】
図１４の例において、可逆符号化部２６は、付加ビット設定部１７１を含むように構成される。付加ビット設定部１７１は、パターン判定部１６２により生成された付加ビットを、符号化データのヘッダの一部に設定する。
【０２６１】
［適応ループフィルタの処理例］
次に、図１５のフローチャートを参照して、画像符号化装置１１の適応ループフィルタ４２ａの適応ループフィルタ処理を説明する。なお、図１５の処理は、上述した図２のステップＳ２４の適応ループフィルタ処理の例である。
【０２６２】
ステップＳ１５１において、クラス分類可否判定部１６１は、例えば、図１２に示したパターン１２４乃至１２６のうち、１つのパターンを選択する。
【０２６３】
ステップＳ１５２において、適応ループフィルタ４２ａは、選択したパターンについて、画素単位の適応ループフィルタ処理を行う。この画素単位の適応ループフィルタ処理については、図１６を参照して後述する。ステップＳ１５２の処理により、選択したパターンについて、一画面分を対象として、画素単位でクラス分類処理が行われ、フィルタ演算処理が行われる。フィルタ演算後の画素値は、コスト関数値算出部１５５に供給される。
【０２６４】
クラス分類可否判定部１６１は、ステップＳ１５３において、すべてのパターンの処理が終了したか否かを判定し、すべてのパターンがまだ終了していないと判定した場合、ステップＳ１５１に戻り、それ以降の処理を繰り返す。
【０２６５】
ステップＳ１５３において、すべてのパターンの処理が終了したと判定された場合、処理は、ステップＳ１５４に進む。ステップＳ１５４において、コスト関数値算出部１５５は、ALFフィルタ演算部１５３からの各パターンのフィルタ演算後の出力画素を用いて、パターン毎にコスト関数値を算出する。コスト関数値算出部１５５は、パターン毎のコスト関数値を、パターン判定部１６２に供給する。
【０２６６】
ステップＳ１５５において、パターン判定部１６２は、コスト関数値算出部１５５が算出した各パターンに対応するコスト関数値を比較することで、最適なパターンを判定し、最適なパターンを示す付加ビットを生成する。パターン判定部１６２は、生成した付加ビットを可逆符号化部２６の付加ビット設定部１７１に供給する。
【０２６７】
これに対応して、付加ビット設定部１７１は、上述した図２のステップＳ２６における可逆符号化部２６による符号化処理の際に、パターン判定部１６２により生成された付加ビットを、符号化データのヘッダの一部に設定する。なお、付加ビットは、例えば、フレーム毎、またはスライス毎に送信される。
【０２６８】
また、パターン判定部１６２による最適なパターンの判定結果は、ALFフィルタ演算部１５３に供給される。
【０２６９】
ステップＳ１５６において、ALFフィルタ演算部１５３は、パターン判定部１６２により最適なパターンであるとされたパターンを用いてのフィルタ演算後の画素を後段に出力する。
【０２７０】
以上のように、画像符号化装置１１側においては、複数のパターンの場合の画素単位の適応ループフィルタ処理が行われて、フィルタ処理後のコスト関数値が比較され、最適なパターンによるフィルタ演算後の画素が出力される。これとともに、最適なパターンを示す付加ビットが符号化データのヘッダに設定されて、画像復号装置５１側に送信される。
【０２７１】
これにより、最適なパターンでの画素単位の適応ループフィルタを行うことができ、符号化効率を向上させることができる。
【０２７２】
［画素単位の適応ループフィルタの処理例］
次に、図１６のフローチャートを参照して、図１５のステップＳ１５２における画素単位の適応ループフィルタ処理について説明する。
【０２７３】
前段からの適応オフセットフィルタ済みの画素は、ラインメモリ１０１、ALFクラス分類処理部１５２、およびALFフィルタ演算部１５３に入力される。
【０２７４】
ステップＳ１７１において、クラス分類可否判定部１６１は、適応オフセットフィルタ済みの画素を、処理対象の画素として選択する。
【０２７５】
ステップＳ１７１において、クラス分類可否判定部１６１は、図１５のステップＳ１５１で選択したパターンにおいて、選択した処理対象の画素がクラス分類処理を行う画素であるか否かを判定する。
【０２７６】
選択されているパターンにおいて、処理対象の画素が算出点として設定されている場合、ステップＳ１７２において、クラス分類処理を行う画素であると判定され、処理は、ステップＳ１７３に進む。ステップＳ１７３において、ALFクラス分類処理部１５２は、クラス分類可否判定部１６１の制御のもと、処理対象の画素を対象として、クラス分類処理を行う。
【０２７７】
すなわち、ALFクラス分類処理部１５２は、処理対象の画素の参照画素（例えば、処理対象画素を中心とした周囲８画素）を、前段からまたはラインメモリ１０１から取得する。なお、ALFクラス分類処理部１５２においても、制御部１５１からの制御信号に応じて、前段またはラインメモリ１０１に保持されている適応オフセットフィルタ済みの画素が用いられる。
【０２７８】
ALFクラス分類処理部１５２は、処理対象の画素のバリアンス（分散）を、上述した式（１）のように計算する。ALFクラス分類処理部１５２は、計算したバリアンスに応じて、処理対象の画素のクラス値を求め、求めたクラス値を、ALFフィルタ演算部１５３およびクラス値格納バッファ１５４に供給する。
【０２７９】
クラス値格納バッファ１５４は、ALFクラス分類処理部１５２からのクラス値を、処理対象の画素のクラス値として格納する。
【０２８０】
一方、選択されているパターンにおいて、処理対象の画素が算出点として設定されていない場合、ステップＳ１７２において、クラス分類処理を行わない画素であると判定され、処理は、ステップＳ１７４に進む。
【０２８１】
ステップＳ１７４において、クラス分類可否判定部１６１は、クラス値格納バッファ１５４に、算出点である画素のクラス値を参照させる。クラス値格納バッファ１５４は、参照した算出点のクラス値を、処理対象の画素のクラス値として格納する。
【０２８２】
ステップＳ１７５において、ALFフィルタ演算部１５３は、適応オフセットフィルタ済みの画素を対象として、ALFクラス分類処理部１５２からのクラス値またはクラス値格納バッファ１５４から読み出したクラス値に応じたフィルタ係数を用いて、フィルタ演算を行う。
【０２８３】
ALFフィルタ演算部１５３においても、制御部２０１からの制御信号に応じて、前段またはラインメモリ１０１に保持されている適応オフセットフィルタ済みの画素が用いられる。
【０２８４】
なお、ALFフィルタ演算部１５３は、制御部２０１からの制御信号に応じて、LCU境界において処理に待ちが生じる場合、ラインメモリ１０１に保持されている適応オフセットフィルタ済みの画素を中心としたタップに対してフィルタ演算を行う。ALFフィルタ演算部１５３は、フィルタ演算後の出力画素を、コスト関数値算出部１５５へ供給する。
【０２８５】
クラス分類可否判定部１６１は、ステップＳ１７６において、処理対象の画素が、ブロック内の最後の画素であるか否かを判定する。ステップＳ１７６において、画面内の最後の画素であると判定された場合、処理は、ステップＳ１７７に進む。
【０２８６】
クラス分類可否判定部１６１は、ステップＳ１７７において、処理対象の画素が、画面内の最後の画素であるか否かを判定する。ステップＳ１７７において、画面内の最後の画素であると判定された場合、図１６の適応ループフィルタ処理は終了する。
【０２８７】
ステップＳ１７６において、ブロック内の最後の画素ではないと判定された場合、処理は、ステップＳ１７１に戻り、それ以降の処理が繰り返される。また、ステップＳ１７７において、画面内の最後の画素であると判定された場合、ラスタスキャン順に次のブロックが選択されて、処理は、ステップＳ１７１に戻り、それ以降の処理が繰り返される。
【０２８８】
なお、図１６の例においても、点線で示されているステップＳ１７６の処理は、ブロック単位での処理に対応させた場合の処理である。したがって、この場合、ラスタスキャン順のブロック毎に画素単位でのクラス分類処理が行われ、ブロック毎に画素単位でのフィルタ演算が行われる。ブロック単位での処理に対応させる必要がない場合、ステップＳ１７６の処理は省略され、適応ループフィルタ処理は、例えば、１ライン終了したら、次のラインの画素を処理するというように、ラスタスキャン順の画素毎に画素単位で行われる。
【０２８９】
以上のように、所定の範囲において１以上いくつかの算出点（所定の画素位置）を設定しておき、その算出点の画素だけクラス分類を行うようにしたので、演算回数を減らすことができる。
【０２９０】
［画像復号装置の適応ループフィルタの構成例］
図１７は、本開示を適用した適応ループフィルタの構成例と、可逆復号部の構成例とを示すブロック図である。なお、図１７においては、画像符号化装置１１に対応する、画像復号装置５１の適応ループフィルタ４２ｂおよび可逆復号部６２の構成例が示されている。
【０２９１】
図１７の例においては、適応ループフィルタ４２ｂは、ラインメモリ１０１、ALFクラス分類処理部１５２、ALFフィルタ演算部１５３、クラス値格納バッファ１５４、および制御部２０１を含むように構成されている。
【０２９２】
図１７の適応ループフィルタ４２ｂは、ラインメモリ１０１、ALFクラス分類処理部１５２、ALFフィルタ演算部１５３、およびクラス値格納バッファ１５４を備える点が、図１４の適応ループフィルタ４２ａと共通している。図１７の適応ループフィルタ４２ｂは、制御部１５１が、制御部２０１に入れ替わった点と、コスト関数値算出部１５５が除かれた点が、図１４の適応ループフィルタ４２аと異なっている。
【０２９３】
また、制御部２０１は、クラス分類可否判定部１６１を備えている点が、図１４の制御部１５１と共通しているが、パターン判定部１６２が除かれている点が異なっている。
【０２９４】
クラス分類可否判定部１６１は、例えば、図１２に示したパターン１２４乃至１２６を記憶している。クラス分類可否判定部１６１は、可逆復号部６２から供給される付加ビットを受け、記憶しているパターンのうち、付加ビットにより示されるパターンにおいて、処理対象の画素がクラス分類を行う算出点であるか否かを判定する。クラス分類可否判定部１６１は、算出点であるか否かの判定結果に応じて、ALFクラス分類処理部１５２とクラス値格納バッファ１５４を制御する。
【０２９５】
ALFクラス分類処理部１５２は、図１４のALFクラス分類処理部１５２と同様に、クラス分類可否判定部１６１の制御のもと、算出点である処理対象の画素のみを対象として、画素単位のクラス分類処理を行う。ALFクラス分類処理部１５２は、クラス分類処理の結果である処理対象の画素（算出点）のクラス値を、ALFフィルタ演算部１５３に供給するとともに、クラス値格納バッファ１５４に格納させる。
【０２９６】
ALFフィルタ演算部１５３は、図１４のALFフィルタ演算部１５３と同様に、前段から入力される、またはラインメモリ１０１に保持されている適応オフセットフィルタ済みの画素を処理対象の画素として、フィルタ演算を行う。ALFフィルタ演算部１５３は、フィルタ演算後の出力画素を、後段に出力する。
【０２９７】
図１７の例において、可逆復号部６２は、付加ビット取得部２１１を含むように構成される。付加ビット取得部２１１は、復号された付加ビットを取得し、クラス分類可否判定部１６１供給する。
【０２９８】
すなわち、図１４の適応ループフィルタ４２ａは、複数のパターンの適応ループフィルタ処理を行って、コスト関数値を求め、それを比較することにより最適なパターンを選ぶものであった。これに対して、図１７の適応ループフィルタ４２ｂは、最適なパターンを示す付加ビットを画像符号化装置１１から受け、それを用いて最適なパターンでの適応ループフィルタ処理を行うものである。
【０２９９】
［適応ループフィルタの処理例］
次に、図１８のフローチャートを参照して、画像復号装置５１の適応ループフィルタ４２ｂの適応ループフィルタ処理を説明する。なお、図１８の処理は、上述した図４のステップＳ６０の適応ループフィルタ処理の例である。
【０３００】
図４のステップＳ５２において、可逆復号部６２は、符号化データとともにパラメータの情報も復号する。このとき、付加ビット取得部２１１は、復号された付加ビットを取得し、クラス分類可否判定部１６１に供給してくる。
【０３０１】
クラス分類可否判定部１６１は、ステップＳ２０１において、付加ビットにより示されるパターンを選択する。
【０３０２】
ステップＳ２０２において、適応ループフィルタ４２bは、選択した（付加ビットが示す）パターンについて、画素単位の適応ループフィルタ処理を行う。この画素単位の適応ループフィルタ処理については、図１６を参照して上述した適応ループフィルタ処理と基本的に同じ処理を行うのでその説明を省略する。ステップＳ２０２の処理により、選択したパターンについて、一画面分を対象として、画素単位でクラス分類処理が行われ、フィルタ演算処理が行われる。
【０３０３】
ステップＳ２０３において、ALFフィルタ演算部１５３は、フィルタ演算後の画素値を後段に出力する。
【０３０４】
以上のように、画像復号装置５１側においては、画像符号化装置１１からの付加ビットが受信されて、付加ビットにより示されるパターンでの画素単位の適応ループフィルタ処理が行われて、フィルタ演算後の画素が出力される。
【０３０５】
これにより、最適なパターンでの画素単位の適応ループフィルタを行うことができ、符号化効率を向上させることができる。
【０３０６】
なお、上記説明においては、適応ループフィルタにおいて、付加ビットを用いてクラス分類を行う画素位置（のパターン）を可変にする例を説明したが、画像情報を用いても、クラス分類を行う画素位置を可変にすることが可能である。次に、画像情報を用いてクラス分類を行う画素位置を可変にする例を説明する。
【０３０７】
＜５．第３の実施の形態＞
［適応ループフィルタの構成例］
図１９は、本開示を適用した適応ループフィルタの構成例を示すブロック図である。なお、図１９の例における適応ループフィルタ４２の構成は、画像符号化装置１１および画像復号装置５１において共通とされる。
【０３０８】
図１９の例においては、適応ループフィルタ４２は、ラインメモリ１０１、ALFクラス分類処理部１５２、ALFフィルタ演算部１５３、クラス値格納バッファ１５４、制御部２０１、および画像情報取得部２５１を含むように構成されている。
【０３０９】
図１９の適応ループフィルタ４２は、ラインメモリ１０１、ALFクラス分類処理部１５２、ALFフィルタ演算部１５３、クラス値格納バッファ１５４、および制御部２０１を備える点が、図１７の適応ループフィルタ４２ｂと共通している。図１９の適応ループフィルタ４２は、画像情報取得部２５１が追加された点が、図１７の適応ループフィルタ４２ｂと異なっている。
【０３１０】
すなわち、図１９の例においては、前段からの入力画素は、ラインメモリ１０１、ALFクラス分類処理部１５２、およびALFフィルタ演算部１５３の他に、画像情報取得部２５１にも供給される。
【０３１１】
画像情報取得部２５１は、入力される画素からなる画像から、例えば、エッジ・アクティビティ値などの画像情報を取得する。なお、ここで取得する画像情報は、エッジ・アクティビティ値には限定されず、例えば他に、隣接画素との差分の分布や差分値など、処理対象の画素が周囲の画素と似ているかどうかの判定ができる評価値であればよい。
【０３１２】
画像情報取得部２５１は、取得した画像情報を、クラス分類可否判定部１６１に供給する。クラス分類可否判定部１６１は、画像情報取得部２５１からの画像情報を記憶し、処理対象の画素の画素情報と、同じ画素情報がその周囲にあるか否かを判定する。クラス分類可否判定部１６１は、周囲に同じ画素情報があるか否かの判定結果に応じて、ALFクラス分類処理部１５２とクラス値格納バッファ１５４を制御する。
【０３１３】
周囲に同じ画素情報がある画素の位置は、画像の平坦部であることが多い。したがって、処理対象の画素の位置が、周囲に同じ画素情報がある画素位置の場合、クラス分類可否判定部１６１は、その画素位置の画素に対しては、クラス分類処理を行わせず、同じ画素情報を有する画素位置のクラス値を参照させる。そして、クラス分類可否判定部１６１は、参照したクラス値を、処理対象の画素についてのクラス値格納バッファ１５４に記憶させる。
【０３１４】
一方、周囲に同じ画素情報がない画素の位置は、画像のエッジ部であったり、アクティビティ値が高い部分であることが多い。したがって、処理対象の画素の位置が、周囲に同じ画素情報がない画素位置の場合、クラス分類可否判定部１６１は、その画素位置を算出点として、クラス分類処理を行わせる。そして、クラス分類可否判定部１６１は、この画素位置（算出点）を対象として求められたクラス値を、処理対象の画素についてのクラス値格納バッファ１５４に記憶させる。
【０３１５】
［適応ループフィルタの処理例］
次に、図２０のフローチャートを参照して、図１９の適応ループフィルタ４２の適応ループフィルタ処理を説明する。なお、図２０の処理は、上述した図２のステップＳ２４の適応ループフィルタ処理の例であって、図４のステップＳ６０の適応ループフィルタ処理の例である。
【０３１６】
前段からの適応オフセットフィルタ済みの画素は、ラインメモリ１０１、ALFクラス分類処理部１０２、ALFフィルタ演算部１０３、および画像情報取得部２５１に入力される。
【０３１７】
ステップＳ２５１において、画像情報取得部２５１は、入力される画素からなる画像から、例えば、エッジ・アクティビティ値などの画像情報を取得し、取得した画像情報を、クラス分類可否判定部１６１に供給する。
【０３１８】
ステップＳ２５２において、クラス分類可否判定部１６１は、適応オフセットフィルタ済みの画素を、処理対象の画素として選択する。
【０３１９】
ステップＳ２５３において、クラス分類可否判定部１６１は、画像情報取得部２５１からの画像情報を参照して、選択した処理対象の画素の周囲に、処理対象の画素の画像情報と同じ画像情報があるか否かを判定する。すなわち、処理対象の画素位置が、処理対象の画素と同じ画像情報が周囲にある（平坦部である）画素位置であるか否かが判定される。
【０３２０】
ステップＳ２５３において、周囲に同じ画素情報がない、すなわち、処理対象の画素位置が、処理対象の画素と同じ画像情報が周囲にない（エッジ部、アクティビティ値が高い部分である）画素位置であると判定された場合、処理は、ステップＳ２５４に進む。ステップＳ２５４において、ALFクラス分類処理部１５２は、クラス分類可否判定部１６１の制御のもと、処理対象の画素を対象として、クラス分類処理を行う。
【０３２１】
すなわち、ALFクラス分類処理部１５２は、処理対象の画素の参照画素（例えば、処理対象画素を中心とした周囲８画素）を、前段からまたはラインメモリ１０１から取得する。なお、ALFクラス分類処理部１５２においても、制御部２０１からの制御信号に応じて、前段またはラインメモリ１０１に保持されている適応オフセットフィルタ済みの画素が用いられる。
【０３２２】
ALFクラス分類処理部１５２は、処理対象の画素のバリアンス（分散）を、上述した式（１）のように計算する。ALFクラス分類処理部１５２は、計算したバリアンスに応じて、処理対象の画素のクラス値を求め、求めたクラス値を、ALFフィルタ演算部１５３およびクラス値格納バッファ１５４に供給する。
【０３２３】
クラス値格納バッファ１５４は、ALFクラス分類処理部１５２からのクラス値を、処理対象の画素のクラス値として格納する。
【０３２４】
一方、ステップＳ２５３において、周囲に同じ画素情報がない、すなわち、処理対象の画素位置が、処理対象の画素と同じ画像情報が周囲にある（平坦部である）画素位置であると判定された場合、処理は、ステップＳ２５５に進む。
【０３２５】
ステップＳ２５５において、クラス分類可否判定部１６１は、クラス値格納バッファ１５４に、同じ画素情報を持つ画素（位置）のクラス値を参照させる。クラス値格納バッファ１５４は、同じ画素情報を持つ画素のクラス値を、処理対象の画素のクラス値として格納する。
【０３２６】
ステップＳ２５６において、ALFフィルタ演算部１５３は、適応オフセットフィルタ済みの画素を対象として、ALFクラス分類処理部１５２からのクラス値またはクラス値格納バッファ１５４から読み出したクラス値に応じたフィルタ係数を用いて、フィルタ演算を行う。
【０３２７】
ALFフィルタ演算部１５３においても、制御部２０１からの制御信号に応じて、前段またはラインメモリ１０１に保持されている適応オフセットフィルタ済みの画素が用いられる。
【０３２８】
なお、ALFフィルタ演算部１５３は、制御部２０１からの制御信号に応じて、LCU境界において処理に待ちが生じる場合、ラインメモリ１０１に保持されている適応オフセットフィルタ済みの画素を中心としたタップに対してフィルタ演算を行う。
【０３２９】
クラス分類可否判定部１６１は、ステップＳ２５７において、処理対象の画素が、ブロック内の最後の画素であるか否かを判定する。ステップＳ２５７において、画面内の最後の画素であると判定された場合、処理は、ステップＳ２５８に進む。
【０３３０】
クラス分類可否判定部１６１は、ステップＳ２５８において、処理対象の画素が、画面内の最後の画素であるか否かを判定する。ステップＳ２５８において、画面内の最後の画素であると判定された場合、図２０の適応ループフィルタ処理は終了する。
【０３３１】
ステップＳ２５７において、ブロック内の最後の画素ではないと判定された場合、処理は、ステップＳ２５２に戻り、それ以降の処理が繰り返される。また、ステップＳ２５８において、画面内の最後の画素であると判定された場合、ラスタスキャン順に次のブロックが選択されて、処理は、ステップＳ２５２に進み、それ以降の処理が繰り返される。
【０３３２】
なお、図２０の例においても、点線で示されているステップＳ２５７の処理は、ブロック単位での処理に対応させた場合の処理である。したがって、この場合、ラスタスキャン順のブロック毎に画素単位でのクラス分類処理が行われ、ブロック毎に画素単位でのフィルタ演算が行われる。ブロック単位での処理に対応させる必要がない場合、ステップＳ２５７はスキップ（省略）され、適応ループフィルタ処理は、例えば、１ライン終了したら、次のラインの画素を処理するというように、ラスタスキャン順の画素毎に画素単位で行われる。
【０３３３】
以上のように、画像情報を取得しておき、取得した画像情報を用いて、所定の画素位置として、周囲に同じ画素情報がない画素位置のみクラス分類を行うようにしたので、演算回数を減らすことができる。
【０３３４】
以上、説明したように、適応ループフィルタにおいては、付加ビットや画像情報を用いて、これらのパターン（クラス分類を行う画素位置）を可変にすることが可能である。
【０３３５】
なお、上記説明においては、バリアンスを求めることによりクラス分類を行うようにしたが、バリアンスに限定されず、例えば、アクティビティ値、すなわち、隣接画素との差分値の和、差分値、差分の分布など、隣接画素との相関などを求める他の方法（評価値）を用いてもよい。
【０３３６】
以上においては、符号化方式としてHEVC方式をベースに用いるようにした。ただし、本開示はこれに限らず、インループフィルタとして、少なくともデブロッキングフィルタと適応ループフィルタを含む、その他の符号化方式／復号方式を適用することができる。
【０３３７】
なお、本開示は、例えば、HEVC方式等の様に、離散コサイン変換等の直交変換と動き補償によって圧縮された画像情報（ビットストリーム）を、衛星放送、ケーブルテレビジョン、インターネット、または携帯電話機などのネットワークメディアを介して受信する際に用いられる画像符号化装置および画像復号装置に適用することができる。また、本開示は、光、磁気ディスク、およびフラッシュメモリのような記憶メディア上で処理する際に用いられる画像符号化装置および画像復号装置に適用することができる。
【０３３８】
＜５．第３の実施の形態＞
［コンピュータ］
上述した一連の処理は、ハードウエアにより実行することもできるし、ソフトウエアにより実行することもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な汎用のパーソナルコンピュータなどが含まれる。
【０３３９】
図２１は、上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。
【０３４０】
コンピュータ５００において、CPU（Central Processing Unit）５０１，ROM（Read Only Memory）５０２，RAM（Random Access Memory）５０３は、バス５０４により相互に接続されている。
【０３４１】
バス５０４には、さらに、入出力インタフェース５０５が接続されている。入出力インタフェース５０５には、入力部５０６、出力部５０７、記憶部５０８、通信部５０９、及びドライブ５１０が接続されている。
【０３４２】
入力部５０６は、キーボード、マウス、マイクロホンなどよりなる。出力部５０７は、ディスプレイ、スピーカなどよりなる。記憶部５０８は、ハードディスクや不揮発性のメモリなどよりなる。通信部５０９は、ネットワークインタフェースなどよりなる。ドライブ５１０は、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリなどのリムーバブルメディア５１１を駆動する。
【０３４３】
以上のように構成されるコンピュータでは、CPU５０１が、例えば、記憶部５０８に記憶されているプログラムを、入出力インタフェース５０５及びバス５０４を介して、RAM５０３にロードして実行することにより、上述した一連の処理が行われる。
【０３４４】
コンピュータ５００（CPU５０１）が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア５１１に記録して提供することができる。また、プログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することができる。
【０３４５】
コンピュータでは、プログラムは、リムーバブルメディア５１１をドライブ５１０に装着することにより、入出力インタフェース５０５を介して、記憶部５０８にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部５０９で受信し、記憶部５０８にインストールすることができる。その他、プログラムは、ROM５０２や記憶部５０８に、あらかじめインストールしておくことができる。
【０３４６】
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
【０３４７】
また、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０３４８】
また、本明細書において、システムとは、複数のデバイス（装置）により構成される装置全体を表すものである。
【０３４９】
また、以上において、１つの装置（または処理部）として説明した構成を分割し、複数の装置（または処理部）として構成するようにしてもよい。逆に、以上において複数の装置（または処理部）として説明した構成をまとめて１つの装置（または処理部）として構成されるようにしてもよい。また、各装置（または各処理部）の構成に上述した以外の構成を付加するようにしてももちろんよい。さらに、システム全体としての構成や動作が実質的に同じであれば、ある装置（または処理部）の構成の一部を他の装置（または他の処理部）の構成に含めるようにしてもよい。つまり、本技術は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
【０３５０】
上述した実施形態に係る画像符号化装置及び画像復号装置は、衛星放送、ケーブルＴＶなどの有線放送、インターネット上での配信、及びセルラー通信による端末への配信などにおける送信機若しくは受信機、光ディスク、磁気ディスク及びフラッシュメモリなどの媒体に画像を記録する記録装置、又は、これら記憶媒体から画像を再生する再生装置などの様々な電子機器に応用され得る。以下、４つの応用例について説明する。
【０３５１】
＜６．応用例＞
［第１の応用例：テレビジョン受像機］
図２２は、上述した実施形態を適用したテレビジョン装置の概略的な構成の一例を示している。テレビジョン装置９００は、アンテナ９０１、チューナ９０２、デマルチプレクサ９０３、デコーダ９０４、映像信号処理部９０５、表示部９０６、音声信号処理部９０７、スピーカ９０８、外部インタフェース９０９、制御部９１０、ユーザインタフェース９１１、及びバス９１２を備える。
【０３５２】
チューナ９０２は、アンテナ９０１を介して受信される放送信号から所望のチャンネルの信号を抽出し、抽出した信号を復調する。そして、チューナ９０２は、復調により得られた符号化ビットストリームをデマルチプレクサ９０３へ出力する。即ち、チューナ９０２は、画像が符号化されている符号化ストリームを受信する、テレビジョン装置９００における伝送手段としての役割を有する。
【０３５３】
デマルチプレクサ９０３は、符号化ビットストリームから視聴対象の番組の映像ストリーム及び音声ストリームを分離し、分離した各ストリームをデコーダ９０４へ出力する。また、デマルチプレクサ９０３は、符号化ビットストリームからEPG（Electronic Program Guide）などの補助的なデータを抽出し、抽出したデータを制御部９１０に供給する。なお、デマルチプレクサ９０３は、符号化ビットストリームがスクランブルされている場合には、デスクランブルを行ってもよい。
【０３５４】
デコーダ９０４は、デマルチプレクサ９０３から入力される映像ストリーム及び音声ストリームを復号する。そして、デコーダ９０４は、復号処理により生成される映像データを映像信号処理部９０５へ出力する。また、デコーダ９０４は、復号処理により生成される音声データを音声信号処理部９０７へ出力する。
【０３５５】
映像信号処理部９０５は、デコーダ９０４から入力される映像データを再生し、表示部９０６に映像を表示させる。また、映像信号処理部９０５は、ネットワークを介して供給されるアプリケーション画面を表示部９０６に表示させてもよい。また、映像信号処理部９０５は、映像データについて、設定に応じて、例えばノイズ除去などの追加的な処理を行ってもよい。さらに、映像信号処理部９０５は、例えばメニュー、ボタン又はカーソルなどのGUI（Graphical User Interface）の画像を生成し、生成した画像を出力画像に重畳してもよい。
【０３５６】
表示部９０６は、映像信号処理部９０５から供給される駆動信号により駆動され、表示デバイス（例えば、液晶ディスプレイ、プラズマディスプレイ又はOELD（Organic ElectroLuminescence Display）（有機ELディスプレイ）など）の映像面上に映像又は画像を表示する。
【０３５７】
音声信号処理部９０７は、デコーダ９０４から入力される音声データについてD/A変換及び増幅などの再生処理を行い、スピーカ９０８から音声を出力させる。また、音声信号処理部９０７は、音声データについてノイズ除去などの追加的な処理を行ってもよい。
【０３５８】
外部インタフェース９０９は、テレビジョン装置９００と外部機器又はネットワークとを接続するためのインタフェースである。例えば、外部インタフェース９０９を介して受信される映像ストリーム又は音声ストリームが、デコーダ９０４により復号されてもよい。即ち、外部インタフェース９０９もまた、画像が符号化されている符号化ストリームを受信する、テレビジョン装置９００における伝送手段としての役割を有する。
【０３５９】
制御部９１０は、CPUなどのプロセッサ、並びにRAM及びROMなどのメモリを有する。メモリは、CPUにより実行されるプログラム、プログラムデータ、EPGデータ、及びネットワークを介して取得されるデータなどを記憶する。メモリにより記憶されるプログラムは、例えば、テレビジョン装置９００の起動時にCPUにより読み込まれ、実行される。CPUは、プログラムを実行することにより、例えばユーザインタフェース９１１から入力される操作信号に応じて、テレビジョン装置９００の動作を制御する。
【０３６０】
ユーザインタフェース９１１は、制御部９１０と接続される。ユーザインタフェース９１１は、例えば、ユーザがテレビジョン装置９００を操作するためのボタン及びスイッチ、並びに遠隔制御信号の受信部などを有する。ユーザインタフェース９１１は、これら構成要素を介してユーザによる操作を検出して操作信号を生成し、生成した操作信号を制御部９１０へ出力する。
【０３６１】
バス９１２は、チューナ９０２、デマルチプレクサ９０３、デコーダ９０４、映像信号処理部９０５、音声信号処理部９０７、外部インタフェース９０９及び制御部９１０を相互に接続する。
【０３６２】
このように構成されたテレビジョン装置９００において、デコーダ９０４は、上述した実施形態に係る画像復号装置の機能を有する。それにより、テレビジョン装置９００での画像の復号に際して、LCUの下部において必要なラインメモリの削減を図ることができることができる。
【０３６３】
［第２の応用例：携帯電話機］
図２３は、上述した実施形態を適用した携帯電話機の概略的な構成の一例を示している。携帯電話機９２０は、アンテナ９２１、通信部９２２、音声コーデック９２３、スピーカ９２４、マイクロホン９２５、カメラ部９２６、画像処理部９２７、多重分離部９２８、記録再生部９２９、表示部９３０、制御部９３１、操作部９３２、及びバス９３３を備える。
【０３６４】
アンテナ９２１は、通信部９２２に接続される。スピーカ９２４及びマイクロホン９２５は、音声コーデック９２３に接続される。操作部９３２は、制御部９３１に接続される。バス９３３は、通信部９２２、音声コーデック９２３、カメラ部９２６、画像処理部９２７、多重分離部９２８、記録再生部９２９、表示部９３０、及び制御部９３１を相互に接続する。
【０３６５】
携帯電話機９２０は、音声通話モード、データ通信モード、撮影モード及びテレビ電話モードを含む様々な動作モードで、音声信号の送受信、電子メール又は画像データの送受信、画像の撮像、及びデータの記録などの動作を行う。
【０３６６】
音声通話モードにおいて、マイクロホン９２５により生成されるアナログ音声信号は、音声コーデック９２３に供給される。音声コーデック９２３は、アナログ音声信号を音声データへ変換し、変換された音声データをA/D変換し圧縮する。そして、音声コーデック９２３は、圧縮後の音声データを通信部９２２へ出力する。通信部９２２は、音声データを符号化及び変調し、送信信号を生成する。そして、通信部９２２は、生成した送信信号を、アンテナ９２１を介して基地局（図示せず）へ送信する。また、通信部９２２は、アンテナ９２１を介して受信される無線信号を増幅し及び周波数変換し、受信信号を取得する。そして、通信部９２２は、受信信号を復調及び復号して音声データを生成し、生成した音声データを音声コーデック９２３へ出力する。音声コーデック９２３は、音声データを伸張し及びD/A変換し、アナログ音声信号を生成する。そして、音声コーデック９２３は、生成した音声信号をスピーカ９２４に供給して音声を出力させる。
【０３６７】
また、データ通信モードにおいて、例えば、制御部９３１は、操作部９３２を介するユーザによる操作に応じて、電子メールを構成する文字データを生成する。また、制御部９３１は、文字を表示部９３０に表示させる。また、制御部９３１は、操作部９３２を介するユーザからの送信指示に応じて電子メールデータを生成し、生成した電子メールデータを通信部９２２へ出力する。通信部９２２は、電子メールデータを符号化及び変調し、送信信号を生成する。そして、通信部９２２は、生成した送信信号を、アンテナ９２１を介して基地局（図示せず）へ送信する。また、通信部９２２は、アンテナ９２１を介して受信される無線信号を増幅し及び周波数変換し、受信信号を取得する。そして、通信部９２２は、受信信号を復調及び復号して電子メールデータを復元し、復元した電子メールデータを制御部９３１へ出力する。制御部９３１は、表示部９３０に電子メールの内容を表示させると共に、電子メールデータを記録再生部９２９の記憶媒体に記憶させる。
【０３６８】
記録再生部９２９は、読み書き可能な任意の記憶媒体を有する。例えば、記憶媒体は、RAM又はフラッシュメモリなどの内蔵型の記憶媒体であってもよく、ハードディスク、磁気ディスク、光磁気ディスク、光ディスク、USB（Unallocated Space Bitmap）メモリ、又はメモリカードなどの外部装着型の記憶媒体であってもよい。
【０３６９】
また、撮影モードにおいて、例えば、カメラ部９２６は、被写体を撮像して画像データを生成し、生成した画像データを画像処理部９２７へ出力する。画像処理部９２７は、カメラ部９２６から入力される画像データを符号化し、符号化ストリームを記憶再生部９２９の記憶媒体に記憶させる。
【０３７０】
また、テレビ電話モードにおいて、例えば、多重分離部９２８は、画像処理部９２７により符号化された映像ストリームと、音声コーデック９２３から入力される音声ストリームとを多重化し、多重化したストリームを通信部９２２へ出力する。通信部９２２は、ストリームを符号化及び変調し、送信信号を生成する。そして、通信部９２２は、生成した送信信号を、アンテナ９２１を介して基地局（図示せず）へ送信する。また、通信部９２２は、アンテナ９２１を介して受信される無線信号を増幅し及び周波数変換し、受信信号を取得する。これら送信信号及び受信信号には、符号化ビットストリームが含まれ得る。そして、通信部９２２は、受信信号を復調及び復号してストリームを復元し、復元したストリームを多重分離部９２８へ出力する。多重分離部９２８は、入力されるストリームから映像ストリーム及び音声ストリームを分離し、映像ストリームを画像処理部９２７、音声ストリームを音声コーデック９２３へ出力する。画像処理部９２７は、映像ストリームを復号し、映像データを生成する。映像データは、表示部９３０に供給され、表示部９３０により一連の画像が表示される。音声コーデック９２３は、音声ストリームを伸張し及びD/A変換し、アナログ音声信号を生成する。そして、音声コーデック９２３は、生成した音声信号をスピーカ９２４に供給して音声を出力させる。
【０３７１】
このように構成された携帯電話機９２０において、画像処理部９２７は、上述した実施形態に係る画像符号化装置及び画像復号装置の機能を有する。それにより、携帯電話機９２０での画像の符号化及び復号に際して、LCUの下部において必要なラインメモリの削減を図ることができる。
【０３７２】
［第３の応用例：記録再生装置］
図２４は、上述した実施形態を適用した記録再生装置の概略的な構成の一例を示している。記録再生装置９４０は、例えば、受信した放送番組の音声データ及び映像データを符号化して記録媒体に記録する。また、記録再生装置９４０は、例えば、他の装置から取得される音声データ及び映像データを符号化して記録媒体に記録してもよい。また、記録再生装置９４０は、例えば、ユーザの指示に応じて、記録媒体に記録されているデータをモニタ及びスピーカ上で再生する。このとき、記録再生装置９４０は、音声データ及び映像データを復号する。
【０３７３】
記録再生装置９４０は、チューナ９４１、外部インタフェース９４２、エンコーダ９４３、HDD（Hard Disk Drive）９４４、ディスクドライブ９４５、セレクタ９４６、デコーダ９４７、OSD（On-Screen Display）９４８、制御部９４９、及びユーザインタフェース９５０を備える。
【０３７４】
チューナ９４１は、アンテナ（図示せず）を介して受信される放送信号から所望のチャンネルの信号を抽出し、抽出した信号を復調する。そして、チューナ９４１は、復調により得られた符号化ビットストリームをセレクタ９４６へ出力する。即ち、チューナ９４１は、記録再生装置９４０における伝送手段としての役割を有する。
【０３７５】
外部インタフェース９４２は、記録再生装置９４０と外部機器又はネットワークとを接続するためのインタフェースである。外部インタフェース９４２は、例えば、IEEE1394インタフェース、ネットワークインタフェース、USBインタフェース、又はフラッシュメモリインタフェースなどであってよい。例えば、外部インタフェース９４２を介して受信される映像データ及び音声データは、エンコーダ９４３へ入力される。即ち、外部インタフェース９４２は、記録再生装置９４０における伝送手段としての役割を有する。
【０３７６】
エンコーダ９４３は、外部インタフェース９４２から入力される映像データ及び音声データが符号化されていない場合に、映像データ及び音声データを符号化する。そして、エンコーダ９４３は、符号化ビットストリームをセレクタ９４６へ出力する。
【０３７７】
HDD９４４は、映像及び音声などのコンテンツデータが圧縮された符号化ビットストリーム、各種プログラムおよびその他のデータを内部のハードディスクに記録する。また、HDD９４４は、映像及び音声の再生時に、これらデータをハードディスクから読み出す。
【０３７８】
ディスクドライブ９４５は、装着されている記録媒体へのデータの記録及び読み出しを行う。ディスクドライブ９４５に装着される記録媒体は、例えばDVDディスク（DVD-Video、DVD-RAM、DVD-R、DVD-RW、DVD+R、DVD+RW等）又はBlu-ray（登録商標）ディスクなどであってよい。
【０３７９】
セレクタ９４６は、映像及び音声の記録時には、チューナ９４１又はエンコーダ９４３から入力される符号化ビットストリームを選択し、選択した符号化ビットストリームをHDD９４４又はディスクドライブ９４５へ出力する。また、セレクタ９４６は、映像及び音声の再生時には、HDD９４４又はディスクドライブ９４５から入力される符号化ビットストリームをデコーダ９４７へ出力する。
【０３８０】
デコーダ９４７は、符号化ビットストリームを復号し、映像データ及び音声データを生成する。そして、デコーダ９４７は、生成した映像データをOSD９４８へ出力する。また、デコーダ９０４は、生成した音声データを外部のスピーカへ出力する。
【０３８１】
OSD９４８は、デコーダ９４７から入力される映像データを再生し、映像を表示する。また、OSD９４８は、表示する映像に、例えばメニュー、ボタン又はカーソルなどのGUIの画像を重畳してもよい。
【０３８２】
制御部９４９は、CPUなどのプロセッサ、並びにRAM及びROMなどのメモリを有する。メモリは、CPUにより実行されるプログラム、及びプログラムデータなどを記憶する。メモリにより記憶されるプログラムは、例えば、記録再生装置９４０の起動時にCPUにより読み込まれ、実行される。CPUは、プログラムを実行することにより、例えばユーザインタフェース９５０から入力される操作信号に応じて、記録再生装置９４０の動作を制御する。
【０３８３】
ユーザインタフェース９５０は、制御部９４９と接続される。ユーザインタフェース９５０は、例えば、ユーザが記録再生装置９４０を操作するためのボタン及びスイッチ、並びに遠隔制御信号の受信部などを有する。ユーザインタフェース９５０は、これら構成要素を介してユーザによる操作を検出して操作信号を生成し、生成した操作信号を制御部９４９へ出力する。
【０３８４】
このように構成された記録再生装置９４０において、エンコーダ９４３は、上述した実施形態に係る画像符号化装置の機能を有する。また、デコーダ９４７は、上述した実施形態に係る画像復号装置の機能を有する。それにより、記録再生装置９４０での画像の符号化及び復号に際して、LCUの下部において必要なラインメモリの削減を図ることができる。
【０３８５】
［第４の応用例：撮像装置］
図２５は、上述した実施形態を適用した撮像装置の概略的な構成の一例を示している。撮像装置９６０は、被写体を撮像して画像を生成し、画像データを符号化して記録媒体に記録する。
【０３８６】
撮像装置９６０は、光学ブロック９６１、撮像部９６２、信号処理部９６３、画像処理部９６４、表示部９６５、外部インタフェース９６６、メモリ９６７、メディアドライブ９６８、OSD９６９、制御部９７０、ユーザインタフェース９７１、及びバス９７２を備える。
【０３８７】
光学ブロック９６１は、撮像部９６２に接続される。撮像部９６２は、信号処理部９６３に接続される。表示部９６５は、画像処理部９６４に接続される。ユーザインタフェース９７１は、制御部９７０に接続される。バス９７２は、画像処理部９６４、外部インタフェース９６６、メモリ９６７、メディアドライブ９６８、OSD９６９、及び制御部９７０を相互に接続する。
【０３８８】
光学ブロック９６１は、フォーカスレンズ及び絞り機構などを有する。光学ブロック９６１は、被写体の光学像を撮像部９６２の撮像面に結像させる。撮像部９６２は、CCD（Charge Coupled Device）又はCMOS（Complementary Metal Oxide Semiconductor）などのイメージセンサを有し、撮像面に結像した光学像を光電変換によって電気信号としての画像信号に変換する。そして、撮像部９６２は、画像信号を信号処理部９６３へ出力する。
【０３８９】
信号処理部９６３は、撮像部９６２から入力される画像信号に対してニー補正、ガンマ補正、色補正などの種々のカメラ信号処理を行う。信号処理部９６３は、カメラ信号処理後の画像データを画像処理部９６４へ出力する。
【０３９０】
画像処理部９６４は、信号処理部９６３から入力される画像データを符号化し、符号化データを生成する。そして、画像処理部９６４は、生成した符号化データを外部インタフェース９６６又はメディアドライブ９６８へ出力する。また、画像処理部９６４は、外部インタフェース９６６又はメディアドライブ９６８から入力される符号化データを復号し、画像データを生成する。そして、画像処理部９６４は、生成した画像データを表示部９６５へ出力する。また、画像処理部９６４は、信号処理部９６３から入力される画像データを表示部９６５へ出力して画像を表示させてもよい。また、画像処理部９６４は、OSD９６９から取得される表示用データを、表示部９６５へ出力する画像に重畳してもよい。
【０３９１】
OSD９６９は、例えばメニュー、ボタン又はカーソルなどのGUIの画像を生成して、生成した画像を画像処理部９６４へ出力する。
【０３９２】
外部インタフェース９６６は、例えばUSB入出力端子として構成される。外部インタフェース９６６は、例えば、画像の印刷時に、撮像装置９６０とプリンタとを接続する。また、外部インタフェース９６６には、必要に応じてドライブが接続される。ドライブには、例えば、磁気ディスク又は光ディスクなどのリムーバブルメディアが装着され、リムーバブルメディアから読み出されるプログラムが、撮像装置９６０にインストールされ得る。さらに、外部インタフェース９６６は、LAN又はインターネットなどのネットワークに接続されるネットワークインタフェースとして構成されてもよい。即ち、外部インタフェース９６６は、撮像装置９６０における伝送手段としての役割を有する。
【０３９３】
メディアドライブ９６８に装着される記録媒体は、例えば、磁気ディスク、光磁気ディスク、光ディスク、又は半導体メモリなどの、読み書き可能な任意のリムーバブルメディアであってよい。また、メディアドライブ９６８に記録媒体が固定的に装着され、例えば、内蔵型ハードディスクドライブ又はSSD（Solid State Drive）のような非可搬性の記憶部が構成されてもよい。
【０３９４】
制御部９７０は、CPUなどのプロセッサ、並びにRAM及びROMなどのメモリを有する。メモリは、CPUにより実行されるプログラム、及びプログラムデータなどを記憶する。メモリにより記憶されるプログラムは、例えば、撮像装置９６０の起動時にCPUにより読み込まれ、実行される。CPUは、プログラムを実行することにより、例えばユーザインタフェース９７１から入力される操作信号に応じて、撮像装置９６０の動作を制御する。
【０３９５】
ユーザインタフェース９７１は、制御部９７０と接続される。ユーザインタフェース９７１は、例えば、ユーザが撮像装置９６０を操作するためのボタン及びスイッチなどを有する。ユーザインタフェース９７１は、これら構成要素を介してユーザによる操作を検出して操作信号を生成し、生成した操作信号を制御部９７０へ出力する。
【０３９６】
このように構成された撮像装置９６０において、画像処理部９６４は、上述した実施形態に係る画像符号化装置及び画像復号装置の機能を有する。それにより、撮像装置９６０での画像の符号化及び復号に際して、LCUの下部において必要なラインメモリの削減を図ることができる。
【０３９７】
なお、本明細書においては、主に垂直境界についてのフィルタリング処理が水平境界についてのフィルタリング処理よりも先に行われる例を説明したが、水平境界についてのフィルタリング処理が先に行われる場合にも本開示に係る技術による上述した効果は同等に享受され得る。また、デブロックフィルタの処理単位のサイズ又はLCUのサイズは、本明細書で説明した例に限定されず、他のサイズであってもよい。
【０３９８】
また、本明細書においては、垂直境界についてのフィルタリング処理のフィルタタップは水平方向に沿って並ぶことから、垂直境界についてのフィルタリング処理のフィルタを「Ｈ（水平）フィルタ」と表現した。同様に、水平境界についてのフィルタリング処理のフィルタタップは垂直方向に沿って並ぶことから、水平境界についてのフィルタリング処理のフィルタを「Ｖ（垂直）フィルタ」と表現した。しかしながら、一般に、垂直境界についてのフィルタリング処理のフィルタをが「Ｖ（垂直）フィルタ」、水平境界についてのフィルタリング処理のフィルタが「Ｈ（水平）フィルタ」とそれぞれ呼ばれる場合もあることに留意されたい。
【０３９９】
なお、本明細書では、付加ビット、予測モード、適応オフセットフィルタ、および、適応ループフィルタの各パラメータ等の各種情報が、符号化ストリームに多重化されて、符号化側から復号側へ伝送される例について説明した。しかしながら、これら情報を伝送する手法はかかる例に限定されない。例えば、これら情報は、符号化ビットストリームに多重化されることなく、符号化ビットストリームと関連付けられた別個のデータとして伝送され又は記録されてもよい。ここで、「関連付ける」という用語は、ビットストリームに含まれる画像（スライス若しくはブロックなど、画像の一部であってもよい）と当該画像に対応する情報とを復号時にリンクさせ得るようにすることを意味する。即ち、情報は、画像（又はビットストリーム）とは別の伝送路上で伝送されてもよい。また、情報は、画像（又はビットストリーム）とは別の記録媒体（又は同一の記録媒体の別の記録エリア）に記録されてもよい。さらに、情報と画像（又はビットストリーム）とは、例えば、複数フレーム、１フレーム、又はフレーム内の一部分などの任意の単位で互いに関連付けられてよい。
【０４００】
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示はかかる例に限定されない。本開示の属する技術の分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
【０４０１】
なお、本技術は以下のような構成も取ることができる。
（１）  符号化ストリームを復号処理して画像を生成する復号部と、
前記復号部により生成された画像において、画素単位でクラスを分類するクラス分類部と、
前記クラス分類部により分類されたクラスで、前記画像のフィルタ処理を行うフィルタ処理部と
を備える画像処理装置。
（２）  前記クラス分類部は、前記復号部により生成された画像において、処理対象の画素の位置が、所定の画素位置である場合、前記処理対象の画素のクラスを分類し、前記復号部により生成された画像において、処理対象の画素の位置が、前記所定の画素位置ではない場合、前記処理対象の画素を、前記所定の画素位置に位置する画素について分類されたクラスに分類する
前記（１）に記載の画像処理装置。
（３）  前記符号化ストリームから、画像における所定の画素位置を示すパターンを表す付加ビットを取得する付加ビット取得部をさらに備え、
前記クラス分類部は、前記付加ビット取得部により取得された前記付加ビットを参照して、前記復号部により生成された画像において、処理対象の画素の位置が、前記所定の画素位置である場合、前記処理対象の画素のクラスを分類し、前記復号部により生成された画像において、処理対象の画素の位置が、前記所定の画素位置ではない場合、前記処理対象の画素を、前記所定の画素位置に位置する画素について分類されたクラスに分類する
前記（２）に記載の画像処理装置。
（４）  前記復号部により生成された画像の画像情報を取得する画像情報取得部をさらに備え、
前記クラス分類部は、前記画像情報取得部により取得された前記画像情報を参照して、前記復号部により生成された画像において、処理対象の画素の位置が、前記所定の画素位置である場合、前記処理対象の画素のクラスを分類し、前記復号部により生成された画像において、処理対象の画素の位置が、前記所定の画素位置ではない場合、前記処理対象の画素を、前記所定の画素位置に位置する画素について分類されたクラスに分類する
前記（２）に記載の画像処理装置。
（５）  前記クラス分類部は、前記フィルタ処理部による前記画像のフィルタ処理に用いる参照画素の範囲を用いて、前記復号部により生成された画像において、画素単位でクラスを分類する
前記（１）乃至（４）のいずれかに記載の画像処理装置。
（６）  画像処理装置が、
符号化ストリームを復号処理して画像を生成し、
生成された画像において、画素単位でクラスを分類し、
分類されたクラスで、前記画像のフィルタ処理を行う
画像処理方法。
（７）  画像を符号化する際にローカル復号処理された画像において、画素単位でクラスを分類するクラス分類部と、
前記クラス分類部により分類されたクラスで、前記画像のフィルタ処理を行うフィルタ処理部と、
前記フィルタ処理部によりフィルタ処理が行われた画像を用いて、前記画像を符号化する符号化部と
を備える画像処理装置。
（８）  前記クラス分類部は、前記ローカル復号処理された画像において、処理対象の画素の位置が、所定の画素位置である場合、前記処理対象の画素のクラスを分類し、前記ローカル復号処理された画像において、処理対象の画素の位置が、前記所定の画素位置ではない場合、前記処理対象の画素を、前記所定の画素位置に位置する画素について分類されたクラスに分類する
前記（７）に記載の画像処理装置。
（９）  画像における所定の画素位置を示す少なくとも１つのパターンを参照して前記クラス分類部により分類されたクラスで、前記フィルタ処理部により前記画像のフィルタ処理が行われた前記画像のフィルタ処理結果が最適である最適パターンを決定し、決定された最適パターンを表す付加ビットを、符号化された画像に付加するビット付加部を
さらに備える前記（８）に記載の画像処理装置。
（１０）  前記ローカル復号処理された画像の画像情報を取得する画像情報取得部をさらに備え、
前記クラス分類部は、前記画像情報取得部により取得された前記画像情報を参照して、前記ローカル復号処理された画像において、処理対象の画素の位置が、前記所定の画素位置である場合、前記処理対象の画素のクラスを分類し、前記ローカル復号処理された画像において、処理対象の画素の位置が、前記所定の画素位置ではない場合、前記処理対象の画素を、前記所定の画素位置に位置する画素について分類されたクラスに分類する
前記（８）に記載の画像処理装置。
（１１）  前記クラス分類部は、前記フィルタ処理部による前記画像のフィルタ処理に用いる参照画素の範囲を用いて、前記復号部により生成された画像において、画素単位でクラスを分類する
前記（７）乃至（１０）のいずれかに記載の画像処理装置。
（１２）  画像処理装置が、
画像を符号化する際にローカル復号処理された画像において、画素単位でクラスを分類し、
分類されたクラスで、前記画像のフィルタ処理を行い、
フィルタ処理が行われた画像を用いて、前記画像を符号化する
画像処理方法。
【符号の説明】
【０４０２】
１１  画像符号化装置，  ２６  可逆符号化部，  ３１  デブロッキングフィルタ，  ４１  適応オフセットフィルタ，  ４２，４２ａ，４２ｂ  適応ループフィルタ，  ５１  画像復号装置，  ６２  可逆復号部，  ８１  適応オフセットフィルタ，  １０１  ラインメモリ，  １０２  ALFクラス分類処理部，  １０３  ALFフィルタ演算部，  １０４  制御部，  １５１  制御部，  １５２  ALFクラス分類処理部，  １５３  ALFフィルタ演算部，  １５４  クラス値格納バッファ，  １６１  クラス分類可否判定部，  １６２  パターン判定部，  １７１  付加ビット設定部，  ２０１  制御部，  ２１１  付加ビット取得部，  ２５１  画像情報取得部
【図１】
2013085113.tif 000004
【図２】
2013085113.tif 000005
【図３】
2013085113.tif 000006
【図４】
2013085113.tif 000007
【図５】
2013085113.tif 000008
【図６】
2013085113.tif 000009
【図７】
2013085113.tif 000010
【図８】
2013085113.tif 000011
【図９】
2013085113.tif 000012
【図１０】
2013085113.tif 000013
【図１１】
2013085113.tif 000014
【図１２】
2013085113.tif 000015
【図１３】
2013085113.tif 000016
【図１４】
2013085113.tif 000017
【図１５】
2013085113.tif 000018
【図１６】
2013085113.tif 000019
【図１７】
2013085113.tif 000020
【図１８】
2013085113.tif 000021
【図１９】
2013085113.tif 000022
【図２０】
2013085113.tif 000023
【図２１】
2013085113.tif 000024
【図２２】
2013085113.tif 000025
【図２３】
2013085113.tif 000026
【図２４】
2013085113.tif 000027
【図２５】
2013085113.tif 000028