(57)【要約】【課題】ループフィルタ処理で用いるメモリのメモリ容量を削減できるようにする。【解決手段】メモリ２６１は、例えば右側ブロック境界に対して直交する水平方向のタップ数が最小であるフィルタサイズで右側ブロック境界から所定範囲内の画像のフィルタ演算を行う場合におけるフィルタ演算に用いられる所定範囲に含まれていない領域の画像データを記憶する。フィルタ制御部２６９は、水平方向のタップ数が最小でないフィルタサイズが選択されている場合、フィルタ処理対象画素の位置に基づき所定範囲内に位置するタップおよびメモリに画像データが記憶されていないタップを判別して、所定範囲内およびメモリに記憶されていない画像データを用いることなくフィルタ演算を行うように、判別されたタップに対して画像データの複写またはフィルタ演算で用いる係数セットの変更を行う。【選択図】        図１４
2013098873.tif 000002
【特許請求の範囲】
【請求項１】
符号化ストリームを復号処理して画像を生成する復号部と、
前記復号部により生成されたＣＵ（Coding Unit）単位の画像のフィルタ処理対象画素に対して構築されたタップの画像データと係数セットを用いてフィルタ演算を行うフィルタ演算部と、
所定ブロック境界の境界方向に対して直交する方向のタップ数が最小である選択可能なフィルタサイズで前記所定ブロック境界から所定範囲内の画像のフィルタ演算を行う場合における該フィルタ演算に用いられる前記所定範囲に含まれていない領域の画像データを記憶するメモリと、
前記所定ブロック境界の境界方向に対して直交する方向のタップ数が最小でないフィルタサイズが選択されている場合、前記フィルタ処理対象画素の位置に基づき前記所定範囲内に位置するタップおよび前記メモリに画像データが記憶されていないタップを判別して、前記所定範囲内および前記メモリに記憶されていない画像データを用いることなく前記フィルタ演算を行うように、前記判別されたタップに対して画像データの複写または前記フィルタ演算で用いる係数セットの変更を行うフィルタ制御部と
を備える画像処理装置。
【請求項２】
前記フィルタ制御部は、前記メモリに画像データが記憶されている隣接画素の画像データを前記判別されたタップの画像データとして複写する請求項１記載の画像処理装置。
【請求項３】
前記フィルタ制御部は、前記メモリに画像データが記憶されている隣接画素の係数を変更する請求項１記載の画像処理装置。
【請求項４】
前記所定ブロック境界の境界方向に対して直交する方向は水平方向である請求項１記載の画像処理装置。
【請求項５】
前記所定範囲は、デブロッキングフィルタ処理が行われていないためにＳＡＯ（Sample Adaptive Offset）処理を行うことができない画像範囲である請求項１記載の画像処理装置。
【請求項６】
符号化ストリームを復号処理して画像を生成する工程と、
前記復号部により生成されたＣＵ（Coding Unit）単位の画像のフィルタ処理対象画素に対して構築されたタップの画像データと係数セットを用いてフィルタ演算を行う工程と、
所定ブロック境界の境界方向に対して直交する方向のタップ数が最小である選択可能なフィルタサイズで前記所定ブロック境界から所定範囲内の画像のフィルタ演算を行う場合における該フィルタ演算に用いられる前記所定範囲に含まれていない領域の画像データを記憶する工程と、
前記所定ブロック境界の境界方向に対して直交する方向のタップ数が最小でないフィルタサイズが選択されている場合、前記フィルタ処理対象画素の位置に基づき前記所定範囲内に位置するタップおよび前記メモリに画像データが記憶されていないタップを判別して、前記所定範囲内および前記メモリに記憶されていない画像データを用いることなく前記フィルタ演算を行うように、前記判別されたタップに対して画像データの複写または前記フィルタ演算で用いる係数セットの変更を行う工程と
含む画像処理方法。
【請求項７】
画像を符号化する際にローカル復号処理されたＣＵ（Coding Unit）単位の画像のフィルタ処理対象画素に対して構築されたタップの画像データと係数セットを用いてフィルタ演算を行うフィルタ演算部と、
所定ブロック境界の境界方向に対して直交する方向のタップ数が最小である選択可能なフィルタサイズで前記所定ブロック境界から所定範囲内の画像のフィルタ演算を行う場合における該フィルタ演算に用いられる前記所定範囲に含まれていない領域の画像データを記憶するメモリと、
前記所定ブロック境界の境界方向に対して直交する方向のタップ数が最小でないフィルタサイズを選択する場合、前記フィルタ処理対象画素の位置に基づき前記所定範囲内に位置するタップおよび前記メモリに画像データが記憶されていないタップを判別して、前記所定範囲内および前記メモリに記憶されていない画像データを用いることなく前記フィルタ演算を行うように、前記判別されたタップに対して画像データの複写または前記フィルタ演算で用いる係数セットの変更を行うフィルタ制御部と
を備える画像処理装置。
【請求項８】
前記フィルタ制御部は、前記フィルタ演算に用いた前記フィルタサイズと係数セットの情報を、前記符号化ストリームに含める請求項７記載の画像処理装置。
【請求項９】
前記フィルタ演算に用いた前記フィルタサイズは、符号化効率の良いフィルタサイズである請求項８記載の画像処理装置。
【請求項１０】
画像を符号化する際にローカル復号処理されたＣＵ（Coding Unit）単位の画像のフィルタ処理対象画素に対して構築されたタップの画像データと係数セットを用いてフィルタ演算を行う工程と、
所定ブロック境界の境界方向に対して直交する方向のタップ数が最小である選択可能なフィルタサイズで前記所定ブロック境界から所定範囲内の画像のフィルタ演算を行う場合における該フィルタ演算に用いられる前記所定範囲に含まれていない領域の画像データを記憶する工程と、
前記所定ブロック境界の境界方向に対して直交する方向のタップ数が最小でないフィルタサイズを選択する場合、前記フィルタ処理対象画素の位置に基づき前記所定範囲内に位置するタップおよび前記メモリに画像データが記憶されていないタップを判別して、前記所定範囲内および前記メモリに記憶されていない画像データを用いることなく前記フィルタ演算を行うように、前記判別されたタップに対して画像データの複写または前記フィルタ演算で用いる係数セットの変更を行う工程と
を含む画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この技術は、画像処理装置と画像処理方法に関する。詳しくは、ブロック単位で符号化処理と復号処理が行われた画像のループフィルタ処理で用いるメモリのメモリ容量を削減できるようにする。
【背景技術】
【０００２】
近年、画像情報をディジタルとして取り扱い、その際、効率の高い情報の伝送、蓄積を目的とし、画像情報特有の冗長性を利用して、離散コサイン変換等の直交変換と動き補償により圧縮するＭＰＥＧ２（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年１月
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ところで、画像をブロック単位でラスタースキャン方向に処理する場合、デブロッキングフィルタ処理における水平フィルタは、所望のブロック（カレントブロック）と、カレントブロックの右側に隣接するブロックの画像データを用いて行われる。また、カレントブロックのループフィルタ処理は、デブロッキングフィルタ処理、またはデブロッキングフィルタ処理とＳＡＯ処理が行われた後の画像データを用いて行われる。このため、デブロッキングフィルタ処理後の画像を用いてループフィルタ処理を行うことができるように、画像データをメモリに記憶しておく必要がある。
【０００８】
図１は、従来のループフィルタ処理においてメモリに記憶する画像データを説明するための図である。デブロッキングフィルタ処理における水平フィルタでは、図１の（Ａ）に示すように、ブロック境界から例えば４画素列分の画像データを用いてブロック境界から３画素列分のフィルタ処理後の画像データを生成する。なお、デブロッキングフィルタの処理対象画素を二重丸で示している。また、ブロック例えばＬＣＵ（Largest Coding Unit）mとＬＣＵm+1のブロック境界を「ＢＢ」として示している。
【０００９】
適応ループフィルタでは、例えば図１の（Ｂ），（Ｃ）に示すように、適応ループフィルタの処理対象画素（黒四角で示す）に対してタップを設定して、タップの画像データを用いてフィルタ演算が行われる。タップは、例えば黒丸で示す位置と処理対象画素の位置に構築されており、図では５×５画素のタップを用いるフィルタサイズを例示している。
【００１０】
ここで、図１の（Ｂ）に示すように、ＬＣＵmにおけるループフィルタ処理の対象画素がブロック境界ＢＢから左６画素列目の画素である場合、タップはデブロッキングフィルタのフィルタ処理範囲に含まれない。したがって、ループフィルタ処理を行う画像処理装置は、デブロッキングフィルタ処理後の画像データを用いることなくループフィルタ処理が可能である。しかし、図１の（Ｃ）に示すように、ループフィルタ処理の対象画素がブロック境界ＢＢから左５画素列目の画素となると、タップはデブロッキングフィルタのフィルタ処理範囲に含まれる。すなわち、ループフィルタ処理では、デブロッキングフィルタ処理後の画像データが必要となる。したがって、ループフィルタ処理を行う画像処理装置は、デブロッキングフィルタ処理後にループフィルタ処理を行うため、左７画素列目から左４画素列目までの４画素列分の画像データをメモリに記憶しておく必要がある。
【００１１】
また、ループフィルタ処理における水平方向のタップ数が大きくなると、メモリに記憶する画像データを増やさなければならない。例えば図１の（Ｄ）に示すように１１×５画素のタップを用いるフィルタサイズとする場合、ループフィルタ処理の対象画素がブロック境界ＢＢから左８画素列目の位置となると、タップはデブロッキングフィルタのフィルタ処理範囲に含まれる。すなわち、ループフィルタ処理では、デブロッキングフィルタ処理後の画像データが必要となる。したがって、ループフィルタ処理を行う画像処理装置は、デブロッキングフィルタ処理後にループフィルタ処理を行うため、左１３画素列目から左４画素列目までの１０画素列分の画像データをメモリに記憶しなければならない。
【００１２】
さらに、フィルタサイズを切り替えてループフィルタ処理を行う場合、水平方向のタップ数が最も大きいフィルタサイズに対応した画素列分の画像データを記憶する必要があり、容量の大きいメモリが必要となってしまう。
【００１３】
そこで、この技術ではループフィルタ処理で用いるメモリのメモリ容量を削減できる画像処理装置と画像処理方法を提供する。
【課題を解決するための手段】
【００１４】
この技術の第１の側面は、符号化ストリームを復号処理して画像を生成する復号部と、前記復号部により生成されたＣＵ（Coding Unit）単位の画像のフィルタ処理対象画素に対して構築されたタップの画像データと係数セットを用いてフィルタ演算を行うフィルタ演算部と、所定ブロック境界の境界方向に対して直交する方向のタップ数が最小であるフィルタサイズで前記所定ブロック境界から所定範囲内の画像のフィルタ演算を行う場合における該フィルタ演算に用いられる前記所定範囲に含まれていない領域の画像データを記憶するメモリと、前記所定ブロック境界の境界方向に対して直交する方向のタップ数が最小でないフィルタサイズが選択されている場合、前記フィルタ処理対象画素の位置に基づき前記所定範囲内に位置するタップおよび前記メモリに画像データが記憶されていないタップを判別して、前記所定範囲内および前記メモリに記憶されていない画像データを用いることなく前記フィルタ演算を行うように、前記判別されたタップに対して画像データの複写または前記フィルタ演算で用いる係数セットの変更を行うフィルタ制御部とを備える画像処理装置にある。
【００１５】
この技術においては、符号化ストリームを復号処理して生成されたＣＵ単位の画像ループフィルタ処理を行う場合に、所定ブロック境界の境界方向に対して直交する方向、例えば右側ブロック境界に対して直交する水平方向のタップ数が最小であるフィルタサイズで右側ブロック境界から所定範囲内、例えばデブロッキングフィルタ処理のフィルタ処理範囲内、またＳＡＯ（Sample Adaptive Offset）処理を行う場合、デブロッキングフィルタ処理が行われていないためにＳＡＯ処理を行うことができない画素範囲内の画像のフィルタ演算に用いられる所定範囲に含まれていない画像データがメモリに記憶される。
【００１６】
ここで、フィルタ制御部は、右側ブロック境界方向のタップ数が最小でないフィルタサイズが選択されている場合、フィルタ処理を行う対象画素の画像位置に基づき、画像データが得られていない所定範囲内に位置するタップおよびメモリに画像データが記憶されていないタップを判別して、所定範囲内およびメモリに記憶されていない画像データを用いることなくフィルタ演算を行うように、判別されたタップに対する画像データの複写またはフィルタ演算で用いるフィルタ係数の変更が行われる。例えば、メモリに画像データが記憶されている隣接画素の画像データが判別されたタップの画像データとして複写される。または、メモリに画像データが記憶されている隣接画素の係数が変更される。
【００１７】
この技術の第２の側面は、符号化ストリームを復号処理して画像を生成する工程と、前記復号部により生成されたＣＵ（Coding Unit）単位の画像のフィルタ処理対象画素に対して構築されたタップの画像データと係数セットを用いてフィルタ演算を行うフィルタ演算部と、所定ブロック境界の境界方向に対して直交する方向のタップ数が最小であるフィルタサイズで前記所定ブロック境界から所定範囲内の画像のフィルタ演算を行う場合における該フィルタ演算に用いられる前記所定範囲に含まれていない領域の画像データを記憶する工程と、前記所定ブロック境界の境界方向に対して直交する方向のタップ数が最小でないフィルタサイズが選択されている場合、前記フィルタ処理対象画素の位置に基づき前記所定範囲内に位置するタップおよび前記メモリに画像データが記憶されていないタップを判別して、前記所定範囲内および前記メモリに記憶されていない画像データを用いることなく前記フィルタ演算を行うように、前記判別されたタップに対して画像データの複写または前記フィルタ演算で用いる係数セットの変更を行う工程と含む画像処理方法にある。
【００１８】
この技術の第３の側面は、画像を符号化する際にローカル復号処理されたＣＵ（Coding Unit）単位の画像のフィルタ処理対象画素に対して構築されたタップの画像データと係数セットを用いてフィルタ演算を行うフィルタ演算部と、所定ブロック境界の境界方向に対して直交する方向のタップ数が最小である選択可能なフィルタサイズで前記所定ブロック境界から所定範囲内の画像のフィルタ演算を行う場合における該フィルタ演算に用いられる前記所定範囲に含まれていない領域の画像データを記憶するメモリと、前記所定ブロック境界の境界方向に対して直交する方向のタップ数が最小でないフィルタサイズを選択する場合、前記フィルタ処理対象画素の位置に基づき前記所定範囲内に位置するタップおよび前記メモリに画像データが記憶されていないタップを判別して、前記所定範囲内および前記メモリに記憶されていない画像データを用いることなく前記フィルタ演算を行うように、前記判別されたタップに対して画像データの複写または前記フィルタ演算で用いる係数セットの変更を行うフィルタ制御部とを備える画像処理装置にある。
【００１９】
この技術では、画像を符号化する際にローカル復号処理されたＣＵ単位の画像のフィルタ処理対象画素に対して構築されたタップの画像データと係数セットを用いてフィルタ演算が行われる。また、所定ブロック境界の境界方向に対して直交する方向、例えば右側ブロック境界に対して直交する水平方向のタップ数が最小である選択可能なフィルタサイズで右側ブロック境界から所定範囲内の画像のフィルタ演算を行う場合におけるフィルタ演算に用いられる所定範囲に含まれていない領域の画像データがメモリに記憶される。
【００２０】
フィルタ制御部は、符号化効率の良いフィルタサイズを選択してフィルタ処理を行う際に、ブロック境界方向のタップ数が最小でないフィルタサイズを選択する場合は、フィルタ処理対象画素の位置に基づき所定範囲内に位置するタップおよびメモリに画像データが記憶されていないタップを判別して、所定範囲内およびメモリに記憶されていない画像データを用いることなくフィルタ演算を行うように、判別されたタップに対して画像データの複写またはフィルタ演算で用いる係数セットの変更を行う。また、フィルタ制御部は、フィルタ演算に用いたフィルタサイズと係数セットの情報を、符号化ストリームに含めるようにする。
【００２１】
この技術の第４の側面は、画像を符号化する際にローカル復号処理されたＣＵ（Coding Unit）単位の画像のフィルタ処理対象画素に対して構築されたタップの画像データと係数セットを用いてフィルタ演算を行う工程と、所定ブロック境界の境界方向に対して直交する方向のタップ数が最小である選択可能なフィルタサイズで前記所定ブロック境界から所定範囲内の画像のフィルタ演算を行う場合における該フィルタ演算に用いられる前記所定範囲に含まれていない領域の画像データを記憶する工程と、前記所定ブロック境界の境界方向に対して直交する方向のタップ数が最小でないフィルタサイズを選択する場合、前記フィルタ処理対象画素の位置に基づき前記所定範囲内に位置するタップおよび前記メモリに画像データが記憶されていないタップを判別して、前記所定範囲内および前記メモリに記憶されていない画像データを用いることなく前記フィルタ演算を行うように、前記判別されたタップに対して画像データの複写または前記フィルタ演算で用いる係数セットの変更を行う工程とを含む画像処理方法にある。
【発明の効果】
【００２２】
この技術によれば、メモリでは、所定ブロック境界の境界方向に対して直交する方向のタップ数が最小であるフィルタサイズで所定ブロック境界から所定範囲内の画像のフィルタ演算を行う場合における該フィルタ演算に用いられる所定範囲に含まれていない領域の画像データが記憶される。また、フィルタ制御部では、ブロック境界方向のタップ数が最小でないフィルタサイズが選択されている場合、フィルタ処理対象画素の位置に基づき所定範囲内に位置するタップおよびメモリに画像データが記憶されていないタップを判別して、所定範囲内およびメモリに記憶されていない画像データを用いることなくフィルタ演算を行うように、判別されたタップに対して画像データの複写またはフィルタ演算で用いる係数セットの変更が行われる。このため、異なるサイズのフィルタを選択的に用いてフィルタ演算を行う場合に、最小サイズのフィルタに対応させて画像データをメモリに記憶させても、最小サイズよりも大きいフィルタサイズでフィルタ演算が可能となり、適応ループフィルタ処理を行うために画像データを記憶するメモリのメモリ容量を削減できる。
【図面の簡単な説明】
【００２３】
【図１】従来のループフィルタ処理においてメモリに記憶する画像データを説明するための図である。
【図２】画像符号化装置に適用した場合の構成を示す図である。
【図３】画像符号化動作を示すフローチャートである。
【図４】イントラ予測処理を示すフローチャートである。
【図５】インター予測処理を示すフローチャートである。
【図６】画像復号装置に適用した場合の構成を示す図である。
【図７】画像復号動作を示すフローチャートである。
【図８】記憶する画像データを説明するための図である。
【図９】quad-tree構造を説明するための図である。
【図１０】エッジオフセットを説明するための図である。
【図１１】エッジオフセットの規則一覧表を示す図である。
【図１２】ループフィルタ処理部で選択可能なフィルタのタップを例示した図である。
【図１３】メモリに記憶する画像データの範囲を示す図である。
【図１４】ループフィルタ処理部の構成を例示した図である。
【図１５】ループフィルタ処理部の動作を示すフローチャート（１／２）である。
【図１６】ループフィルタ処理部の動作を示すフローチャート（２／２）である。
【図１７】タップ構築部の動作（１／２）を例示した図である。
【図１８】タップ構築部の動作（２／２）を例示した図である。
【図１９】テレビジョン装置の概略的な構成の一例を示した図である。
【図２０】携帯電話機の概略的な構成の一例を示した図である。
【図２１】記録再生装置の概略的な構成の一例を示した図である。
【図２２】撮像装置の概略的な構成の一例を示した図である。
【発明を実施するための形態】
【００２４】
以下、本技術を実施するための形態について説明する。なお、説明は以下の順序で行う。
１．画像符号化装置に適用した場合の構成
２．画像符号化装置の動作
３．画像復号装置に適用した場合の構成
４．画像復号装置の動作
５．ループフィルタ処理部の構成と動作
６．応用例
【００２５】
＜１．画像符号化装置に適用した場合の構成＞
図２は、本技術の画像処理装置を画像符号化装置に適用した場合の構成を示している。画像符号化装置１０は、アナログ／ディジタル変換部（Ａ／Ｄ変換部）１１、画面並べ替えバッファ１２、減算部１３、直交変換部１４、量子化部１５、可逆符号化部１６、蓄積バッファ１７、レート制御部１８を備えている。さらに、画像符号化装置１０は、逆量子化部２１、逆直交変換部２２、加算部２３、デブロッキングフィルタ処理部２４、ＳＡＯ部２５、ループフィルタ処理部２６、係数メモリ２７、フレームメモリ２８、セレクタ２９、イントラ予測部３１、動き予測・補償部３２、予測画像・最適モード選択部３３を備えている。
【００２６】
Ａ／Ｄ変換部１１は、アナログの画像信号をディジタルの画像データに変換して画面並べ替えバッファ１２に出力する。
【００２７】
画面並べ替えバッファ１２は、Ａ／Ｄ変換部１１から出力された画像データに対してフレームの並べ替えを行う。画面並べ替えバッファ１２は、符号化処理に係るＧＯＰ（Group of Pictures）構造に応じてフレームの並べ替えを行い、並べ替え後の画像データを減算部１３とイントラ予測部３１と動き予測・補償部３２に出力する。
【００２８】
減算部１３には、画面並べ替えバッファ１２から出力された画像データと、後述する予測画像・最適モード選択部３３で選択された予測画像データが供給される。減算部１３は、画面並べ替えバッファ１２から出力された画像データと予測画像・最適モード選択部３３から供給された予測画像データとの差分である予測誤差データを算出して、直交変換部１４に出力する。
【００２９】
直交変換部１４は、減算部１３から出力された予測誤差データに対して、離散コサイン変換（DCT；Discrete Cosine Transform）、カルーネン・レーベ変換等の直交変換処理を行う。直交変換部１４は、直交変換処理を行うことにより得られた変換係数データを量子化部１５に出力する。
【００３０】
量子化部１５には、直交変換部１４から出力された変換係数データと、後述するレート制御部１８からレート制御信号が供給されている。量子化部１５は変換係数データの量子化を行い、量子化データを可逆符号化部１６と逆量子化部２１に出力する。また、量子化部１５は、レート制御部１８からのレート制御信号に基づき量子化パラメータ（量子化スケール）を切り替えて、量子化データのビットレートを変化させる。
【００３１】
可逆符号化部１６には、量子化部１５から出力された量子化データと、後述するイントラ予測部３１と動き予測・補償部３２および予測画像・最適モード選択部３３から予測モード情報が供給される。なお、予測モード情報には、イントラ予測またはインター予測に応じて、予測ブロックサイズを識別可能とするマクロブロックタイプ、予測モード、動きベクトル情報、参照ピクチャ情報等が含まれる。可逆符号化部１６は、量子化データに対して例えば可変長符号化、または算術符号化等により可逆符号化処理を行い、符号化ストリームを生成して蓄積バッファ１７に出力する。また、可逆符号化部１６は、予測モード情報や後述するＳＡＯ処理に関する情報や適応ループフィルタ処理に関する情報等を可逆符号化して、符号化ストリームのヘッダ情報に付加する。
【００３２】
蓄積バッファ１７は、可逆符号化部１６からの符号化ストリームを蓄積する。また、蓄積バッファ１７は、蓄積した符号化ストリームを伝送路に応じた伝送速度で出力する。
【００３３】
レート制御部１８は、蓄積バッファ１７の空き容量の監視を行い、空き容量に応じてレート制御信号を生成して量子化部１５に出力する。レート制御部１８は、例えば蓄積バッファ１７から空き容量を示す情報を取得する。レート制御部１８は空き容量が少なくなっているとき、レート制御信号によって量子化データのビットレートを低下させる。また、レート制御部１８は蓄積バッファ１７の空き容量が十分大きいとき、レート制御信号によって量子化データのビットレートを高くする。
【００３４】
逆量子化部２１は、量子化部１５から供給された量子化データの逆量子化処理を行う。逆量子化部２１は、逆量子化処理を行うことで得られた変換係数データを逆直交変換部２２に出力する。
【００３５】
逆直交変換部２２は、逆量子化部２１から供給された変換係数データの逆直交変換処理を行うことで得られたデータを加算部２３に出力する。
【００３６】
加算部２３は、逆直交変換部２２から供給されたデータと予測画像・最適モード選択部３３から供給された予測画像データを加算して復号画像データを生成して、デブロッキングフィルタ処理部２４とフレームメモリ２８に出力する。
【００３７】
デブロッキングフィルタ処理部２４は、画像の符号化時に生じるブロック歪みを減少させるためのフィルタ処理を行う。デブロッキングフィルタ処理部２４は、加算部２３から供給された復号画像データ、すなわちローカル復号処理された復号画像の画像データからブロック歪みを除去するフィルタ処理を行い、フィルタ処理後の画像データをＳＡＯ部２５に出力する。
【００３８】
ＳＡＯ部２５は、画像をquad-treeに分割し、それぞれの領域にどのようなオフセットを適用して符号化するかを選択する。ＳＡＯ部２５はデブロッキングフィルタ処理部２４から供給された画像データに対してＳＡＯ処理すなわち選択したオフセット処理を行いループフィルタ処理部２６に出力する。
【００３９】
ループフィルタ処理部２６は、係数メモリ２７から供給された係数とＳＡＯ部２５から供給された画像データを用いて、適応ループフィルタ処理（以下、単に「ループフィルタ処理」または「ＡＬＦ処理」という）を行う。ループフィルタ処理部２６は、フィルタとして、例えばウィナーフィルタ（Wiener Filter）が用いられる。もちろんウィナーフィルタ以外のフィルタを用いてもよい。さらに、ループフィルタ処理部２６は、タップサイズの異なる複数のフィルタを有しており、ループフィルタ処理を行う。ループフィルタ処理部２６は、フィルタ処理結果をフレームメモリ２８に供給し、参照画像の画像データとして記憶させる。また、ループフィルタ処理部２６は、後述する最適モードの選択結果に基づき符号化効率が良好となるループフィルタ処理に用いたフィルタサイズや係数セット等を示す情報を可逆符号化部１６に供給して符号化ストリームに含めるようにする。
【００４０】
フレームメモリ２８は、加算部２３から供給された復号画像データとループフィルタ処理部２６から供給されたフィルタ処理後の復号画像データを参照画像の画像データとして保持する。
【００４１】
セレクタ２９は、イントラ予測を行うためにフレームメモリ２８から読み出されたフィルタ処理前の参照画像データをイントラ予測部３１に供給する。また、セレクタ２９は、インター予測を行うためフレームメモリ２８から読み出されたフィルタ処理後の参照画像データを動き予測・補償部３２に供給する。
【００４２】
イントラ予測部３１は、画面並べ替えバッファ１２から出力された符号化対象画像の画像データとフレームメモリ２８から読み出したフィルタ処理前の参照画像データを用いて、候補となる全てのイントラ予測モードのイントラ予測処理を行う。さらに、イントラ予測部３１は、各イントラ予測モードに対してコスト関数値を算出して、算出したコスト関数値が最小となるイントラ予測モード、すなわち符号化効率が最良となるイントラ予測モードを、最適イントラ予測モードとして選択する。イントラ予測部３１は、最適イントラ予測モードで生成された予測画像データと最適イントラ予測モードに関する予測モード情報、および最適イントラ予測モードでのコスト関数値を予測画像・最適モード選択部３３に出力する。また、イントラ予測部３１は、後述するようにコスト関数値の算出で用いる発生符号量を得るため、各イントラ予測モードのイントラ予測処理において、イントラ予測モードに関する予測モード情報を可逆符号化部１６に出力する。
【００４３】
動き予測・補償部３２は、マクロブロックに対応する全ての予測ブロックサイズで動き予測・補償処理を行う。動き予測・補償部３２は、画面並べ替えバッファ１２から読み出された符号化対象画像における各予測ブロックサイズの画像毎に、フレームメモリ２８から読み出されたフィルタ処理後の参照画像データを用いて動きベクトルを検出する。さらに、動き予測・補償部３２は、検出した動きベクトルに基づいて復号画像に動き補償処理を施して予測画像の生成を行う。また、動き予測・補償部３２は、各予測ブロックサイズやループフィルタ処理部２６のフィルタサイズや係数セット毎にコスト関数値を算出する。動き予測・補償部３２は、算出したコスト関数値が最小となる予測ブロックサイズやループフィルタ処理のフィルタサイズおよび係数セットを、最適インター予測モードとして選択する。動き予測・補償部３２は、最適インター予測モードで生成された予測画像データと最適インター予測モードに関する予測モード情報、および最適インター予測モードでのコスト関数値を予測画像・最適モード選択部３３に出力する。また、動き予測・補償部３２は、コスト関数値の算出で用いる発生符号量を得るため、各予測ブロックサイズでのインター予測処理において、インター予測モードに関する予測モード情報を可逆符号化部１６に出力する。
【００４４】
予測画像・最適モード選択部３３は、イントラ予測部３１から供給されたコスト関数値と動き予測・補償部３２から供給されたコスト関数値を、マクロブロック単位で比較して、コスト関数値が少ない方を、符号化効率が最良となる最適モードとして選択する。また、予測画像・最適モード選択部３３は、最適モードで生成した予測画像データを減算部１３と加算部２３に出力する。さらに、予測画像・最適モード選択部３３は、最適モードの予測モード情報を可逆符号化部１６に出力する。なお、予測画像・最適モード選択部３３は、スライス単位でイントラ予測またはインター予測を行うようにしてもよい。
【００４５】
なお、請求項における符号化部は、予測画像データを生成するイントラ予測部３１や動き予測・補償部３２、予測画像・最適モード選択部３３、減算部１３、直交変換部１４、量子化部１５、可逆符号化部１６等で構成される。
【００４６】
＜２．画像符号化装置の動作＞
図３は、画像符号化動作を示すフローチャートである。ステップＳＴ１１において、Ａ／Ｄ変換部１１は入力された画像信号をＡ／Ｄ変換する。
【００４７】
ステップＳＴ１２において画面並べ替えバッファ１２は、画面並べ替えを行う。画面並べ替えバッファ１２は、Ａ／Ｄ変換部１１より供給された画像データを記憶し、各ピクチャの表示する順番から符号化する順番への並べ替えを行う。
【００４８】
ステップＳＴ１３において減算部１３は、予測誤差データの生成を行う。減算部１３は、ステップＳＴ１２で並べ替えられた画像の画像データと予測画像・最適モード選択部３３で選択された予測画像データとの差分を算出して予測誤差データを生成する。予測誤差データは、元の画像データに比べてデータ量が小さい。したがって、画像をそのまま符号化する場合に比べて、データ量を圧縮することができる。なお、予測画像・最適モード選択部３３でイントラ予測部３１から供給された予測画像と動き予測・補償部３２からの予測画像の選択がスライス単位で行われる場合、イントラ予測部３１から供給された予測画像が選択されたスライスでは、イントラ予測が行われる。また、動き予測・補償部３２からの予測画像が選択されたスライスでは、インター予測が行われる。
【００４９】
ステップＳＴ１４において直交変換部１４は、直交変換処理を行う。直交変換部１４は、減算部１３から供給された予測誤差データを直交変換する。具体的には、予測誤差データに対して離散コサイン変換、カルーネン・レーベ変換等の直交変換が行われ、変換係数データを出力する。
【００５０】
ステップＳＴ１５において量子化部１５は、量子化処理を行う。量子化部１５は、変換係数データを量子化する。量子化に際しては、後述するステップＳＴ２６の処理で説明されるように、レート制御が行われる。
【００５１】
ステップＳＴ１６において逆量子化部２１は、逆量子化処理を行う。逆量子化部２１は、量子化部１５により量子化された変換係数データを量子化部１５の特性に対応する特性で逆量子化する。
【００５２】
ステップＳＴ１７において逆直交変換部２２は、逆直交変換処理を行う。逆直交変換部２２は、逆量子化部２１により逆量子化された変換係数データを直交変換部１４の特性に対応する特性で逆直交変換する。
【００５３】
ステップＳＴ１８において加算部２３は、復号画像データの生成を行う。加算部２３は、予測画像・最適モード選択部３３から供給された予測画像データと、この予測画像と対応する位置の逆直交変換後のデータを加算して、復号画像データを生成する。
【００５４】
ステップＳＴ１９においてデブロッキングフィルタ処理部２４は、デブロッキングフィルタ処理を行う。デブロッキングフィルタ処理部２４は、加算部２３より出力された復号画像データをフィルタリングしてブロック歪みを除去する。
【００５５】
ステップＳＴ２０においてＳＡＯ部２５は、適応的にオフセット処理を行う。ＳＡＯ部２５は、デブロッキングフィルタ処理部２４より出力された画像データに対してＳＡＯ処理を行う。
【００５６】
ステップＳＴ２１においてループフィルタ処理部２６は、ループフィルタ処理を行う。ループフィルタ処理部２６は、デブロッキングフィルタ処理やＳＡＯ処理が行われた復号画像データをフィルタリングして、デブロッキングフィルタ処理等で残ってしまったブロック歪みや量子化による歪み等を低減する。
【００５７】
ステップＳＴ２２においてフレームメモリ２８は、復号画像データを記憶する。フレームメモリ２８は、デブロッキングフィルタ処理前の復号画像データとループフィルタ処理後の復号画像データを記憶する。
【００５８】
ステップＳＴ２３においてイントラ予測部３１と動き予測・補償部３２は、それぞれ予測処理を行う。すなわち、イントラ予測部３１は、イントラ予測モードのイントラ予測処理を行い、動き予測・補償部３２は、インター予測モードの動き予測・補償処理を行う。この処理により、候補となる全ての予測モードでの予測処理がそれぞれ行われ、候補となる全ての予測モードでのコスト関数値がそれぞれ算出される。そして、算出されたコスト関数値に基づいて、最適イントラ予測モードと最適インター予測モードが選択され、選択された予測モードで生成された予測画像とそのコスト関数および予測モード情報が予測画像・最適モード選択部３３に供給される。
【００５９】
ステップＳＴ２４において予測画像・最適モード選択部３３は、予測画像データの選択を行う。予測画像・最適モード選択部３３は、イントラ予測部３１および動き予測・補償部３２より出力された各コスト関数値に基づいて、符号化効率が最良となる最適モードに決定する。さらに、予測画像・最適モード選択部３３は、決定した最適モードの予測画像データを選択して、減算部１３と加算部２３に供給する。この予測画像が、上述したように、ステップＳＴ１３，ＳＴ１８の演算に利用される。
【００６０】
ステップＳＴ２５において可逆符号化部１６は、可逆符号化処理を行う。可逆符号化部１６は、量子化部１５より出力された量子化データを可逆符号化する。すなわち、量子化データに対して可変長符号化や算術符号化等の可逆符号化が行われて、データ圧縮される。このとき、上述したステップＳＴ２２において可逆符号化部１６に入力された予測モード情報（例えばマクロブロックタイプや予測モード、動きベクトル情報、参照ピクチャ情報等を含む）なども可逆符号化される。さらに、量子化データを可逆符号化して生成された符号化ストリームのヘッダ情報に、予測モード情報の可逆符号化データが付加される。
【００６１】
ステップＳＴ２６において蓄積バッファ１７は、蓄積処理を行い符号化ストリームを蓄積する。この蓄積バッファ１７に蓄積された符号化ストリームは適宜読み出され、伝送路を介して復号側に伝送される。
【００６２】
ステップＳＴ２７においてレート制御部１８は、レート制御を行う。レート制御部１８は、蓄積バッファ１７で符号化ストリームを蓄積するとき、オーバーフローまたはアンダーフローが蓄積バッファ１７で発生しないように、量子化部１５の量子化動作のレートを制御する。
【００６３】
次に、図３のステップＳＴ２３における予測処理を説明する。予測処理では、イントラ予測処理とインター予測処理を行う。イントラ予測処理では、処理対象のブロックの画像を、候補となる全てのイントラ予測モードでイントラ予測する。なお、イントラ予測において参照される参照画像の画像データは、デブロッキングフィルタ処理部２４とループフィルタ処理部２６によりフィルタ処理が行われることなくフレームメモリ２８に記憶されている参照画像データが用いられる。イントラ予測処理の詳細は後述するが、この処理により、候補となる全てのイントラ予測モードでイントラ予測が行われ、候補となる全てのイントラ予測モードに対してコスト関数値が算出される。そして、算出されたコスト関数値に基づいて、全てのイントラ予測モードの中から、符号化効率が最良となる１つのイントラ予測モードが選択される。
【００６４】
インター予測処理では、フレームメモリ２８に記憶されているフィルタ処理後の参照画像データを用いて、候補となる全てのインター予測モード（全ての予測ブロックサイズ）のインター予測処理を行う。インター予測処理の詳細は後述するが、この処理により、候補となる全てのインター予測モードで予測処理が行われ、候補となる全てのインター予測モードに対してコスト関数値が算出される。そして、算出されたコスト関数値に基づいて、全てのインター予測モードの中から、符号化効率が最良となる１つのインター予測モードが選択される。
【００６５】
次に、イントラ予測処理について図４のフローチャートを参照して説明する。ステップＳＴ３１でイントラ予測部３１は、各予測モードのイントラ予測を行う。イントラ予測部３１は、フレームメモリ２８に記憶されているフィルタ処理前の復号画像データを用いて、イントラ予測モード毎に予測画像データを生成する。
【００６６】
ステップＳＴ３２でイントラ予測部３１は、各予測モードに対するコスト関数値を算出する。例えば、候補となる全ての予測モードに対して、仮に可逆符号化処理までを行い、次の式（１）で表されるコスト関数値を各予測モードに対して算出する。
Cost（Mode∈Ω）=Ｄ+λ・Ｒ            ・・・（１）
【００６７】
Ωは、当該ブロック乃至マクロブロックを符号化するための候補となる予測モードの全体集合を示している。Ｄは、予測モードで符号化を行った場合の復号画像と入力画像との差分エネルギー（歪み）を示している。Ｒは、直交変換係数や予測モード情報等を含んだ発生符号量、λは、量子化パラメータＱＰの関数として与えられるラグランジュ乗数である。
【００６８】
また、候補となる全ての予測モードに対して、予測画像の生成、および、動きベクトル情報や予測モード情報などのヘッダビットまでを算出し、次の式（２）で表されるコスト関数値を各予測モードに対して算出する。
Cost（Mode∈Ω）=Ｄ+QPtoQuant（QP）・Header_Bit      ・・・（２）
【００６９】
Ωは、当該ブロック乃至マクロブロックを符号化するための候補となる予測モードの全体集合を示している。Ｄは、予測モードで符号化を行った場合の復号画像と入力画像との差分エネルギー（歪み）を示している。Header_Bitは、予測モードに対するヘッダビット、QPtoQuantは、量子化パラメータＱＰの関数として与えられる関数である。
【００７０】
ステップＳＴ３３でイントラ予測部３１は、最適イントラ予測モードを決定する。イントラ予測部３１は、ステップＳＴ３２において算出されたコスト関数値に基づいて、それらの中から、コスト関数値が最小値である１つのイントラ予測モードを選択して最適イントラ予測モードに決定する。
【００７１】
次に、図５のフローチャートを参照して、インター予測処理について説明する。ステップＳＴ４１で動き予測・補償部３２は、各予測モードに対して動きベクトルと参照画像をそれぞれ決定する。すなわち、動き予測・補償部３２は、各予測モードの処理対象のブロックについて、動きベクトルと参照画像をそれぞれ決定する。
【００７２】
ステップＳＴ４２で動き予測・補償部３２は、各予測モードに対して動き補償を行う。動き予測・補償部３２は、各予測モード（各予測ブロックサイズ）について、ステップＳＴ４１で決定された動きベクトルに基づいて、参照画像に対する動き補償を行い、各予測モードについて予測画像データを生成する。
【００７３】
ステップＳＴ４３で動き予測・補償部３２は、各予測モードに対して動きベクトル情報の生成を行う。動き予測・補償部３２は、各予測モードで決定された動きベクトルについて、符号化ストリームに含める動きベクトル情報を生成する。例えば、メディアン予測等を用いて予測動きベクトルを決定して、動き予測により検出した動きベクトルと予測動きベクトルの差を示す動きベクトル情報を生成する。このようにして生成された動きベクトル情報は、次のステップＳＴ４４におけるコスト関数値の算出にも用いられて、最終的に予測画像・最適モード選択部３３で対応する予測画像が選択された場合には、予測モード情報に含まれて可逆符号化部１６へ出力される。
【００７４】
ステップＳＴ４４で動き予測・補償部３２は、各インター予測モードに対して、コスト関数値の算出を行う。動き予測・補償部３２は、上述した式（１）または式（２）を用いてコスト関数値の算出を行う。
【００７５】
ステップＳＴ４５で動き予測・補償部３２は、最適インター予測モードを決定する。動き予測・補償部３２は、ステップＳＴ４４において算出されたコスト関数値に基づいて、それらの中から、コスト関数値が最小値である１つの予測モードを選択して最適インター予測モードに決定する。
【００７６】
＜３．画像復号装置に適用した場合の構成＞
入力画像を符号化して生成された符号化ストリームは、所定の伝送路や記録媒体等を介して画像復号装置に供給されて復号される。
【００７７】
図６は、本技術の画像処理装置を画像復号装置に適用した場合の構成を示している。画像復号装置５０は、蓄積バッファ５１、可逆復号部５２、逆量子化部５３、逆直交変換部５４、加算部５５、デブロッキングフィルタ処理部５６、ＳＡＯ部５７、ループフィルタ処理部５８、画面並べ替えバッファ５９、Ｄ／Ａ変換部６０を備えている。さらに、画像復号装置５０は、フレームメモリ６１、セレクタ６２，６５、イントラ予測部６３、動き補償部６４を備えている。
【００７８】
蓄積バッファ５１は、伝送されてきた符号化ストリームを蓄積する。可逆復号部５２は、蓄積バッファ５１より供給された符号化ストリームを、図２の可逆符号化部１６の符号化方式に対応する方式で復号する。また、可逆復号部５２は、符号化ストリームのヘッダ情報を復号して得られた予測モード情報をイントラ予測部６３や動き補償部６４、ループフィルタ処理の係数セットをループフィルタ処理部５８に出力する。
【００７９】
逆量子化部５３は、可逆復号部５２で復号された量子化データを、図２の量子化部１５の量子化方式に対応する方式で逆量子化する。逆直交変換部５４は、図２の直交変換部１４の直交変換方式に対応する方式で逆量子化部５３の出力を逆直交変換して加算部５５に出力する。
【００８０】
加算部５５は、逆直交変換後のデータとセレクタ６５から供給される予測画像データを加算して復号画像データを生成してデブロッキングフィルタ処理部５６とフレームメモリ６１に出力する。
【００８１】
デブロッキングフィルタ処理部５６は、加算部５５から供給された復号画像データに対してフィルタ処理を行い、ブロック歪みを除去してＳＡＯ部５７に出力する。
【００８２】
ＳＡＯ部５７は、図２のＳＡＯ部２５と同様に構成されており、デブロッキングフィルタ処理部５６から供給された画像データに対してＳＡＯ処理を行う。すなわち、ＳＡＯ部２５は、quad-treeに分割された画像領域毎にどのようなオフセットを適用するか可逆復号部５２によって符号化ストリームから取得したＳＡＯ処理の情報に基づき選択してオフセット処理を行う。ＳＡＯ部５７は、ＳＡＯ処理後の画像データをループフィルタ処理部５８に出力する。
【００８３】
ループフィルタ処理部５８は、図２のループフィルタ処理部２６と同様に構成されており、可逆復号部５２によって符号化ストリームから取得したループフィルタ情報に基づき、ＳＡＯ処理後の画像データのループフィルタ処理を行う。ループフィルタ処理部５８は、フィルタ処理後の画像データをフレームメモリ６１に供給し蓄積させるとともに、画面並べ替えバッファ５９に出力する。
【００８４】
画面並べ替えバッファ５９は、画像の並べ替えを行う。すなわち、図２の画面並べ替えバッファ１２により符号化の順番のために並べ替えられたフレームの順番が、元の表示の順番に並べ替えられて、Ｄ／Ａ変換部６０に出力される。
【００８５】
Ｄ／Ａ変換部６０は、画面並べ替えバッファ５９から供給された画像データをＤ／Ａ変換し、図示せぬディスプレイに出力することで画像を表示させる。
【００８６】
フレームメモリ６１は、加算部５５から供給されたフィルタ処理前の復号画像データとループフィルタ処理部５８から供給されたフィルタ処理後の復号画像データとを、参照画像の画像データとして保持する。
【００８７】
セレクタ６２は、可逆復号部５２から供給された予測モード情報に基づき、イントラ予測が行われた予測ブロックの復号が行われるとき、フレームメモリ６１から読み出されたフィルタ処理前の参照画像データをイントラ予測部６３に供給する。また、セレクタ２９は、可逆復号部５２から供給された予測モード情報に基づき、インター予測が行われた予測ブロックの復号が行われるとき、フレームメモリ６１から読み出されたフィルタ処理後の参照画像データを動き補償部６４に供給する。
【００８８】
イントラ予測部６３は、可逆復号部５２から供給された予測モード情報に基づいて予測画像の生成を行い、生成した予測画像データをセレクタ６５に出力する。
【００８９】
動き補償部６４は、可逆復号部５２から供給された予測モード情報に基づいて、動き補償を行い、予測画像データを生成してセレクタ６５に出力する。すなわち、動き補償部６４は、予測モード情報に含まれる動きベクトル情報と参照フレーム情報に基づいて、参照フレーム情報で示された参照画像に対して動きベクトル情報に基づく動きベクトルで動き補償を行い、予測画像データを生成する。
【００９０】
セレクタ６５は、イントラ予測部６３で生成された予測画像データを加算部５５に供給する。また、セレクタ６５は、動き補償部６４で生成された予測画像データを加算部５５に供給する。
【００９１】
なお、請求項における復号部は、可逆復号部５２、逆量子化部５３、逆直交変換部５４、加算部５５、イントラ予測部６３、動き補償部６４等で構成される。
【００９２】
＜４．画像復号装置の動作＞
次に、図７のフローチャートを参照して、画像復号装置５０で行われる画像復号動作について説明する。
【００９３】
ステップＳＴ５１で蓄積バッファ５１は、伝送されてきた符号化ストリームを蓄積する。
【００９４】
ステップＳＴ５２で可逆復号部５２は、可逆復号処理を行う。可逆復号部５２は、蓄積バッファ５１から供給される符号化ストリームを復号する。すなわち、図２の可逆符号化部１６により符号化された各ピクチャの量子化データが得られる。また、可逆復号部５２、符号化ストリームのヘッダ情報に含まれている予測モード情報の可逆復号を行い、得られた予測モード情報をデブロッキングフィルタ処理部５６やセレクタ６２，６５に供給する。さらに、可逆復号部５２は、予測モード情報がイントラ予測モードに関する情報である場合、予測モード情報をイントラ予測部６３に出力する。また、可逆復号部５２は、予測モード情報がインター予測モードに関する情報である場合、予測モード情報を動き補償部６４に出力する。また、可逆復号部５２は、符号化ストリームを復号して得られたループフィルタ処理の係数セットをループフィルタ処理部５８に出力する。
【００９５】
ステップＳＴ５３において逆量子化部５３は、逆量子化処理を行う。逆量子化部５３は、可逆復号部５２により復号された量子化データを、図２の量子化部１５の特性に対応する特性で逆量子化する。
【００９６】
ステップＳＴ５４において逆直交変換部５４は、逆直交変換処理を行う。逆直交変換部５４は、逆量子化部５３により逆量子化された変換係数データを、図２の直交変換部１４の特性に対応する特性で逆直交変換する。
【００９７】
ステップＳＴ５５において加算部５５は、復号画像データの生成を行う。加算部５５は、逆直交変換処理を行うことにより得られたデータと、後述するステップＳＴ６１で選択された予測画像データを加算して復号画像データを生成する。これにより元の画像が復号される。
【００９８】
ステップＳＴ５６においてデブロッキングフィルタ処理部５６は、デブロッキングフィルタ処理を行う。デブロッキングフィルタ処理部５６は、加算部５５より出力された復号画像データのフィルタ処理を行い、復号画像に含まれているブロック歪みを除去する。
【００９９】
ステップＳＴ５７においてＳＡＯ部５７は、適応的にオフセット処理を行う。ＳＡＯ部２５は、デブロッキングフィルタ処理部２４より出力された画像データに対してＳＡＯ処理を行う。
【０１００】
ステップＳＴ５８においてループフィルタ処理部５８は、ループフィルタ処理を行う。ループフィルタ処理部５８は、ＳＡＯ処理後の復号画像データをフィルタリングして、ブロック歪みや量子化による歪みを低減する。
【０１０１】
ステップＳＴ５９においてフレームメモリ６１は、復号画像データの記憶処理を行う。
【０１０２】
ステップＳＴ６０においてイントラ予測部６３と動き補償部６４は、予測処理を行う。イントラ予測部６３と動き補償部６４は、可逆復号部５２から供給される予測モード情報に対応してそれぞれ予測処理を行う。
【０１０３】
すなわち、可逆復号部５２からイントラ予測の予測モード情報が供給された場合、イントラ予測部６３は、予測モード情報に基づいてイントラ予測処理を行い、予測画像データを生成する。また、可逆復号部５２からインター予測の予測モード情報が供給された場合、動き補償部６４は、予測モード情報に基づき動き補償を行い、予測画像データを生成する。
【０１０４】
ステップＳＴ６１において、セレクタ６５は予測画像データの選択を行う。すなわち、セレクタ６５は、イントラ予測部６３から供給された予測画像と動き補償部６４で生成された予測画像データを選択して加算部５５に供給して、上述したように、ステップＳＴ５５において逆直交変換部５４の出力と加算させる。
【０１０５】
ステップＳＴ６２において画面並べ替えバッファ５９は、画像並べ替えを行う。すなわち画面並べ替えバッファ５９は、図２の画像符号化装置１０の画面並べ替えバッファ１２により符号化のために並べ替えられたフレームの順序が、元の表示の順序に並べ替えられる。
【０１０６】
ステップＳＴ６３において、Ｄ／Ａ変換部６０は、画面並べ替えバッファ５９からの画像データをＤ／Ａ変換する。この画像が図示せぬディスプレイに出力され、画像が表示される。
【０１０７】
＜５．ループフィルタ処理部の構成と動作＞
［画像データの記憶］
ここで、ループフィルタ処理部においてメモリに記憶する画像データについて説明する。ＬＣＵ単位でラスタースキャン方向に処理を行う場合、デブロッキングフィルタ部では、隣接するＬＣＵの画像データを用いてデブロッキングフィルタ処理を行うことから、ＬＣＵ単位で閉じた処理とならない。また、ＳＡＯ部はデブロッキングフィルタ処理後の画像データを用いており、ループフィルタ処理部はＳＡＯ処理後の画像データを用いることから、ＳＡＯ部とループフィルタ処理部の処理もＬＣＵ単位で閉じた処理とならない。したがって、ＬＣＵ単位でラスタースキャン方向に処理を行う場合、図８に示すように、処理対象のＬＣＵmにおいて、右側および下側のブロック境界から斜線で示すように所定範囲の画像データをメモリに一時記憶しておく必要がある。
【０１０８】
ここで、ＳＡＯ処理について説明する。ＳＡＯ部のオフセットの種類としては、バンドオフセットと呼ばれるものが２種類、エッジオフセットと呼ばれるものが６種類あり、さらに、オフセットを適応しないことも可能である。そして、画像をquad-treeに分割し、それぞれの領域に、上述したどのオフセットの種類により符号化するかを選択することができる。
【０１０９】
次に、図９を参照して、quad-tree構造について説明する。例えば、画像符号化装置１０では、図９の（Ａ）に示されるように、領域０が分割されていない状態を示すLevel-０（分割深度０）のコスト関数値Ｊ０が計算される。また、領域０が４つの領域１乃至４に分割された状態を示すLevel-１（分割深度０）のコスト関数値Ｊ１，Ｊ２，Ｊ３，Ｊ４が計算される。
【０１１０】
そして、図９の（Ｂ）に示されるように、コスト関数値が比較され、Ｊ０＞（Ｊ１＋Ｊ２＋Ｊ３＋Ｊ４）により、コスト関数値が小さいLevel-１の分割領域（Partitions）が選択される。
【０１１１】
同様にして、図９の（Ｃ）に示されるように、領域０が１６個の領域５乃至２０に分割された状態を示すLevel-２（分割深度２）のコスト関数値Ｊ５乃至Ｊ２０が計算される。
【０１１２】
そして、図９の（Ｄ）に示されるように、コスト関数値がそれぞれ比較され、Ｊ１＜（Ｊ５＋Ｊ６＋Ｊ９＋Ｊ１０）により、領域１においては、Level-１の分割領域（Partitions）が選択される。Ｊ２＞（Ｊ７＋Ｊ８＋Ｊ１１＋Ｊ１２）により、領域２においては、Level-２の分割領域が選択される。Ｊ３＞（Ｊ１３＋Ｊ１４＋Ｊ１７＋Ｊ１８）により、領域３においては、Level-２の分割領域が選択される。Ｊ４＞（Ｊ１５＋Ｊ１６＋Ｊ１９＋Ｊ２０）により、領域４においては、Level-１の分割領域が選択される。
【０１１３】
その結果、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）を示している。図１０の（Ｅ）および（Ｆ）のパターンは、図１１の（Ｂ）に示されるような７種類のカテゴリに分類され、そのカテゴリによりオフセットが復号部に送られる。
【０１２４】
当該画素Ｃの画素値が４つの隣接画素の画素値より小さい場合、カテゴリ１に分類される。当該画素Ｃの画素値が３つの隣接画素の画素値より小さくて、４番目の隣接画素の画素値と一致する場合、カテゴリ２に分類される。当該画素Ｃの画素値が３つの隣接画素の画素値より小さくて、４番目の隣接画素の画素値より大きい場合、カテゴリ３に分類される。
【０１２５】
当該画素Ｃの画素値が３つの隣接画素の画素値より大きくて、４番目の隣接画素の画素値より小さい場合、カテゴリ４に分類される。当該画素Ｃの画素値が３つの隣接画素の画素値より大きくて、４番目の隣接画素の画素値と一致する場合、カテゴリ５に分類される。当該画素Ｃの画素値が４つの隣接画素の画素値より大きい場合、カテゴリ６に分類される。以上のどれでもない場合、カテゴリ０に分類される。
【０１２６】
以上のように、エッジオフセットにおいては、３×３画素の判定処理が行われることから、ＳＡＯ部では、判定処理にデブロッキングフィルタのフィルタ処理対象画素が含まれる画素位置となるとオフセット処理を進めることができない。また、その後、デブロッキングフィルタでフィルタ処理が行われた場合、ＳＡＯ部は、デブロッキングフィルタのフィルタ処理範囲のフィルタ処理後の画素を用いて判定処理を行う。したがって、ＳＡＯ部は、デブロッキングフィルタ処理後にＳＡＯ処理を行うことができるように画像データを記憶しておく必要がある。
【０１２７】
さらに、ループフィルタ処理部は、ループフィルタ処理のタップ範囲にＳＡＯ部で処理が行われていない画素が含まれる画素位置となるとループフィルタ処理を進めることができない。また、その後、ＳＡＯで処理が行われた場合、ループフィルタ処理部は、ＳＡＯ２８で処理された画素を用いてループフィルタ処理を行う。したがって、ループフィルタ処理部は、ＳＡＯ部で処理された画像データを記憶しておく必要がある。
【０１２８】
図１２は、ループフィルタ処理部で選択可能なフィルタのタップを例示している。例えば、ループフィルタ処理部では、図１２の（Ａ）に示す水平方向のフィルタサイズが５タップであるフィルタと図１２の（Ｂ）に示す水平方向のフィルタサイズが１１タップであるフィルタの何れかコスト関数値が少なくなるタップを用いてフィルタ処理を行う。
【０１２９】
水平方向のフィルタサイズが５タップである場合の各タップをＴa0〜Ｔa16とする。また、水平方向のフィルタサイズが１１タップである場合の各タップをＴb0〜Ｔb14とする。また、以下の説明では、タップＴa0の画像データをＰa0とする。同様にタップＴa1〜Ｔa16，Ｔb0〜Ｔb14の画像データをPa1〜Pa16，Pb0〜Pb14とする。
【０１３０】
図１３は、デブロッキングフィルタ処理とＳＡＯ処理が行われる場合、図１２に示すタップサイズとされたフィルタを用いてループフィルタ処理を行うためにメモリに記憶する画素の範囲を示している。
【０１３１】
デブロッキングフィルタ処理部は、例えば４タップでブロック境界のフィルタ処理を行う場合、図１３の（Ａ）に示すように、右側ブロック境界ＢＢから左４画素列分の範囲の画像データをメモリに記憶する必要がある。なお、図１３の（Ａ）において二重丸印は、デブロッキングフィルタの処理対象画素であってデブロッキングフィルタ処理（ＤＦ処理）が行われていないことを示している。
【０１３２】
ＳＡＯ部は、判定処理にデブロッキングフィルタのフィルタ処理対象画素が含まれる画素位置となると処理を進めることができない。すなわち、図１３の（Ｂ）に示すように、右側ブロック境界ＢＢから左５画素列目の位置まで処理を進めることができるが、左４画素列目の位置では、破線で示すように３×３画素の判定処理の範囲内にデブロッキングフィルタのフィルタ処理対象画素が含まれる。このため、ＳＡＯ部は左４画素列目の位置に処理を進めることができない。したがって、デブロッキングフィルタ処理後に、右側ブロック境界ＢＢに対して左４画素列目の位置から処理を進めることができるように、ＳＡＯ部で処理が行われている左５画素列目の位置の画像データをメモリに記憶する必要がある。なお、図１３の（Ｂ）において、丸印の中にバツ印が示されている画素は、デブロッキングフィルタ処理が行われていないためにＳＡＯ処理を行うことができない画素を示している。
【０１３３】
ループフィルタ処理部は、例えばタップが５×５画素である場合、タップ内にＳＡＯ部で処理されていない画素が含まれる画素位置となると処理を進めることができない。すなわち、図１３の（Ｃ）に示すように、右側ブロック境界ＢＢから左７画素列目の位置まで処理を進めることができるが、左６画素列目の位置では、５×５画素のタップ内にＳＡＯ部で処理されていない画素が含まれることから処理を進めることができない。したがって、デブロッキングフィルタ処理後に、左６画素列目の位置から処理を進めることができるように、ＳＡＯ部で処理が行われている左８画素列目から左５画素列目までの４画素列分の画像データをメモリに記憶する必要がある。
【０１３４】
また、ループフィルタ処理部は、例えばタップが１１×５画素である場合、タップ内にＳＡＯ部で処理されていない画素が含まれる画素位置となると処理を進めることができない。すなわち、図１３の（Ｄ）に示すように、右側ブロック境界ＢＢから左１０画素列目の位置まで処理を進めることができるが、左９画素列目の位置では、１１×５画素のタップ内にＳＡＯ部で処理されていない画素が含まれることから処理を進めることができない。したがって、デブロッキングフィルタ処理後に、左９画素列目の位置から処理を進めることができるように、ＳＡＯ部で処理が行われている左１４画素列目から左５画素列目までの１０画素列分の画像データをメモリに記憶する必要がある。
【０１３５】
なお、図１３の（Ｃ），（Ｄ）において、丸印の中に＋印が示されている画素は、デブロッキングフィルタ処理が行われていないことによるＳＡＯ処理後の画像データが入力されないため、ループフィルタ処理を行うことができない画素を示している。
【０１３６】
ここで、例えばＬＣＵのサイズが６４×６４画素である場合、図１３の（Ｄ）に示すように１１×５画素のタップでは、右側ブロック境界ＢＢに対して左９画素列目の位置から処理を進めるためには、輝度および色差データを合わせて１２８０バイト程度のメモリ容量が必要となる。この場合のメモリ容量は、５×５画素のタップで必要となるメモリ容量の２．５倍である。また、５×５画素のタップが選択された場合には、７６８バイトのメモリ容量が未使用となる。
【０１３７】
このように、フィルタサイズが大きいと画像データを記憶するメモリの容量を大ききしなければならない。また、最小サイズのフィルタが選択された場合、未使用のメモリ領域が生じることになる。そこで、ループフィルタ処理部は、所定ブロック境界の境界方向に対して直交する方向、例えば右側ブロック境界に対して直交する水平方向のタップ数が最小でないフィルタサイズが選択されている場合、フィルタ処理対象画素の位置に基づき右側ブロック境界から所定範囲内に位置するタップおよびメモリに画像データが記憶されていないタップを判別して、所定範囲内およびメモリに記憶されていない画像データを用いることなくフィルタ演算を行うように、判別されたタップに対して画像データの複写またはフィルタ演算で用いる係数セットの変更を行う。
【０１３８】
［ループフィルタ処理部の構成］
図２に示す画像符号化装置１０のループフィルタ処理部２６と図６に示す画像復号装置のループフィルタ処理部５８は、同等の構成および動作とされており、本技術の画像処理装置に相当する。
【０１３９】
ループフィルタ処理部は、画像を符号化する際にローカル復号処理されたブロック単位の画像や符号化ストリームを復号処理して生成されたブロック単位の画像に対して、デブロッキング処理およびＳＡＯ処理が行われた画像の処理対象画素に対してタップの構築と係数セットの構築を行い、タップの画像データと係数セットを用いてフィルタ演算を行う。また、所定ブロック境界の境界方向に対して直交する方向のタップ数が最小でないフィルタサイズが選択される場合は、画像データの複写または係数セットを変更してフィルタ演算を行う。
【０１４０】
［ループフィルタ処理部の構成］
図１４は、ループフィルタ処理部２６の構成を例示している。ループフィルタ処理部２６は、メモリ２６１、タップ構築部２６２、係数構築部２６３、フィルタ演算部２６４、フィルタ制御部２６９を備えている。
【０１４１】
ＳＡＯ部２５から出力された画像データは、メモリ２６１とタップ構築部２６２に供給される。
【０１４２】
メモリ２６１は、フィルタ制御部２６９からの制御信号に基づき、所定ブロック境界の境界方向に対して直交する方向のタップ数が最小である選択可能なフィルタサイズで所定ブロック境界から所定範囲内の画像のフィルタ演算を行う場合における該フィルタ演算に用いられる所定範囲に含まれていない領域の画像データを記憶する。例えば水平方向のタップ数が最小で５画素であるフィルタサイズで右側ブロック境界からＳＡＯ処理が行われていない範囲内の画像のフィルタ演算を行う場合に、このフィルタ演算に用いられるＳＡＯ処理済みの画像データを記憶する。また、メモリ２６１は、制御信号に基づき記憶している画像データを読み出してタップ構築部２６２に出力する。
【０１４３】
タップ構築部２６２は、ＳＡＯ部２５から供給された画像データやメモリ２６１に記憶されている画像データを用いて、ループフィルタの処理対象画素を基準としてタップを構築する。タップの構築では、フィルタサイズの異なる複数のフィルタが選択可能とされている。タップ構築部２６２は、構築したタップの画像データをフィルタ演算部２６４に出力する。
【０１４４】
係数構築部２６３は、係数メモリ２７からフィルタ演算に用いる係数を読み出して、タップ構築部２６２で構築したタップに対応する係数を決定して、各タップの係数からなる係数セットを構築する。係数構築部２６３は、構築した係数セットをフィルタ演算部２６４に出力する。
【０１４５】
フィルタ演算部２６４は、タップ構築部２６２から供給されたタップの画像データと係数構築部２６３から供給された係数を用いて演算を行い、ループフィルタ処理後の画像データを生成する。
【０１４６】
フィルタ制御部２６９は、制御信号をメモリ２６１に供給して、メモリ２６１への画像データの記憶および記憶されている画像データの読み出しを制御する。また、フィルタ制御部２６９はループフィルタ処理に用いるフィルタの選択を行う。さらに、フィルタ制御部２６９は、処理位置判定部２６９１を有しており、ループフィルタ処理を行う画素位置の判定結果に基づきタップ構築部２６２や係数構築部２６３の制御を行う。フィルタ制御部２６９は、ブロック境界方向のタップ数が最小でないサイズのフィルタを選択する場合、フィルタ処理対象画素の位置に基づき所定範囲内に位置するタップおよびメモリ２６１に画像データが記憶されていないタップを判別して、所定範囲内およびメモリ２６１に記憶されていない画像データを用いることなくフィルタ演算を行うように、判別されたタップに対して画像データの複写またはフィルタ演算で用いる係数セットの変更を行う。例えば、フィルタ制御部２６９は、タップの位置がＳＡＯ処理の行われていない画素位置である場合、ＳＡＯ処理が行われている画像データをＳＡＯ処理の行われていない画素位置の画像データとして複写する。また、タップ位置がメモリ２６１に画像データの記憶されていない画素位置である場合、フィルタ制御部２６９は、メモリ２６１に記憶されている画像データを画像データの記憶されていない画素位置の画像データとして複写する。
【０１４７】
また、画像復号装置のループフィルタ処理部５７では、符号化ストリームに含まれているループフィルタ処理に関する情報に基づきフィルタサイズの選択や係数セットの設定を行う。
【０１４８】
［ループフィルタ処理部の動作］
図１５，１６は、ループフィルタ処理部２６の動作を示すフローチャートである。ステップＳＴ７１でループフィルタ処理部２６は、対象画像位置の初期化を行ってステップＳＴ７２に進む。
【０１４９】
ステップＳＴ７２でループフィルタ処理部２６は、対象画素位置を決定する。ループフィルタ処理部２６は、ループフィルタ処理を行う画素の位置を対象画素位置としてステップＳＴ７３に進む。
【０１５０】
ステップＳＴ７３でループフィルタ処理部２６は、フィルタサイズが５×５画素であるか判別する。ループフィルタ処理部２６は、５×５画素のフィルタを用いる場合にステップＳＴ８６に進み、１１×５画素のフィルタを用いる場合にステップＳＴ７４に進む。
【０１５１】
ステップＳＴ７４でループフィルタ処理部２６は、対象画素位置が入力境界から左に５画素列目であるか判別する。ループフィルタ処理部２６は、ＳＡＯ処理が行われてループフィルタ処理部２６に画像データが入力される画素と、デブロッキングフィルタ処理が行われていないためにＳＡＯ処理を行うことができずループフィルタ処理部２６にＳＡＯ処理後の画像データを入力することができない画素との境界を入力境界とする。ループフィルタ処理部２６は、対象画素位置が入力境界から左５画素列目である場合にはＳＴ７５に進み、対象画素位置が入力境界から左５画素列目よりも左側または右側に位置する場合にはＳＴ７６に進む。
【０１５２】
ステップＳＴ７５でループフィルタ処理部２６は、タップ右端から１画素分に対して画像データを複写する。ループフィルタ処理部２６は、ＳＡＯ処理が行われていない画素位置となるタップ右端から１画素の画像データとして、例えば左側に隣接するＳＡＯ処理済みの画素の画像データを複写してＳＴ８６に進む。
【０１５３】
ステップＳＴ７６でループフィルタ処理部２６は、対象画素位置が入力境界から左４画素列目であるか判別する。ループフィルタ処理部２６は、対象画素位置が入力境界から左４画素列目である場合にはＳＴ７７に進む。また、ループフィルタ処理部２６は、対象画素位置が入力境界から左５画素列目よりも左側または入力境界から左４画素列目よりも右側に位置する場合にはＳＴ７８に進む。
【０１５４】
ステップＳＴ７７でループフィルタ処理部２６は、タップ右端から２画素分に対して画像データを複写する。ループフィルタ処理部２６は、ＳＡＯ処理が行われていない画素位置となるタップ右端から２画素分の画像データとして、例えば左側に隣接するＳＡＯ処理済みの画素の画像データを複写してＳＴ８６に進む。
【０１５５】
ステップＳＴ７８でループフィルタ処理部２６は、対象画素位置が入力境界から左３画素列目であるか判別する。ループフィルタ処理部２６は、対象画素位置が入力境界から左３画素列目である場合にはＳＴ７９に進む。また、ループフィルタ処理部２６は、対象画素位置が入力境界から左５画素列目よりも左側または入力境界から左３画素列目よりも右側に位置する場合にはＳＴ８０に進む。
【０１５６】
ステップＳＴ７９でループフィルタ処理部２６は、タップ右端から３画素分に対して画像データを複写する。ループフィルタ処理部２６は、ＳＡＯ処理が行われていない画素位置となるタップ右端から３画素分の画像データとして、例えば左側に隣接するＳＡＯ処理済みの画素の画像データを複写してＳＴ８６に進む。
【０１５７】
ステップＳＴ８０でループフィルタ処理部２６は、対象画素位置が入力境界から左２画素列目であるか判別する。ループフィルタ処理部２６は、対象画素位置が入力境界から左２画素列目である場合にはＳＴ８１に進む。また、ループフィルタ処理部２６は、対象画素位置が入力境界から左５画素列目よりも左側または入力境界から左２画素列目よりも右側に位置する場合にはＳＴ８２に進む。
【０１５８】
ステップＳＴ８１でループフィルタ処理部２６は、タップ左端から３画素分に対して画像データを複写する。ループフィルタ処理部２６は、画像データが記憶されていない画素位置となるタップ左端から３画素分の画像データとして、例えば右側に隣接する画素の記憶されている画像データを複写してＳＴ８６に進む。
【０１５９】
ステップＳＴ８２でループフィルタ処理部２６は、対象画素位置が入力境界から左１画素列目であるか判別する。ループフィルタ処理部２６は、対象画素位置が入力境界から左１画素列目である場合にはＳＴ８３に進む。また、ループフィルタ処理部２６は、対象画素位置が入力境界から左５画素列目よりも左側または入力境界よりも右側に位置する場合にはＳＴ８４に進む。
【０１６０】
ステップＳＴ８３でループフィルタ処理部２６は、タップ左端から２画素分に対して画像データを複写する。ループフィルタ処理部２６は、画像データが記憶されていない画素位置となるタップ左端から２画素の画像データとして、例えば右側に隣接する画素の記憶されている画像データを複写してＳＴ８６に進む。
【０１６１】
ステップＳＴ８４でループフィルタ処理部２６は、対象画素位置が入力境界から右１画素列目であるか判別する。ループフィルタ処理部２６は、対象画素位置が入力境界から右１画素列目である場合にはＳＴ８５に進む。また、ループフィルタ処理部２６は、対象画素位置が入力境界から左５画素列目よりも左側または入力境界から右１画素列目よりも右側に位置する場合にはＳＴ８６に進む。
【０１６２】
ステップＳＴ８５でループフィルタ処理部２６は、タップ左端から１画素分に対して画像データを複写する。ループフィルタ処理部２６は、画像データが記憶されていない画素位置となるタップ左端から１画素の画像データとして、例えば右側に隣接する画素の記憶されている画像データを複写してＳＴ８６に進む。
【０１６３】
ステップＳＴ８６でループフィルタ処理部２６は、フィルタ演算を行う。ループフィルタ処理部２６は、ステップＳＴ７４乃至ステップＳＴ８５の処理を行うことで、水平方向のタップサイズが１１画素の場合でも、ＳＡＯ処理が行われていない位置や画像データが記憶されていない位置となる各タップの画像データを決定できる。したがって、ループフィルタ処理部２６は、各タップの画像データとフィルタ係数を用いて演算を行い、対象画素位置のフィルタ処理後の画像データを算出してステップＳＴ８７に進む。
【０１６４】
ステップＳＴ８７でループフィルタ処理部２６は、対象画素位置が入力境界から左３画素列目である処理を完了したか判別する。ループフィルタ処理部２６は、入力境界から左３画素列目のループフィルタ処理を完了した場合には当該ブロックのループフィルタ処理を終了する。その後、ループフィルタ処理部２６は、隣接するブロックの画像データを用いたデブロッキングフィルタ処理とデブロッキングフィルタ処理後の画像データを用いたＳＡＯ処理を行い、入力境界から右側に位置する画像データが入力された場合に、入力境界から左２画素列目の位置からループフィルタ処理を行う。
【０１６５】
ステップＳＴ８８でループフィルタ処理部２６は、対象画素位置を移動する。ループフィルタ処理部２６は、対象画素位置の次の画素位置に移動してステップＳＴ７２に戻る。
【０１６６】
図１７，１８は、タップ構築部２６２の動作を例示している。なお、図１７は、対象画素位置が入力境界ＩＢから左３画素列目（右側ブロック境界ＢＢから左７画素列目）となるまでの処理を例示している。また、図１８は、入力境界ＩＢの右側に位置する画素の画像データが入力されて、対象画素位置が入力境界ＩＢの左２画素列目（右側ブロック境界ＢＢから左６画素列目）から右２画素列目（右側ブロック境界ＢＢから左３画素列目）となるまでの処理を示している。
【０１６７】
図１７の（Ａ）は、フィルタサイズが１１×５画素のタップ数であり、対象画素位置が入力境界ＩＢから左６画素列目（右側ブロック境界ＢＢから左１０画素列目）の位置である場合を例示している。対象画素位置が入力境界ＩＢから左６画素列目の位置である場合、各タップの画像データはＳＡＯ処理が行われている。したがって、画像データの複写を行うことなくフィルタ演算を行う。
【０１６８】
図１７の（Ｂ）は、フィルタサイズが１１×５画素のタップ数であり、対象画素位置が入力境界ＩＢから左５画素列目（右側ブロック境界ＢＢから左９画素列目）の位置である場合を例示している。対象画素位置が入力境界ＩＢから左５画素列目の位置である場合、タップ右端から１画素目の位置はＳＡＯ処理が行われていない画素の位置である。したがって、上述のステップＳＴ７５の処理を行い、タップ右端から１画素の画像データＰb12として、左側に隣接するＳＡＯ処理済みの画素の画像データＰb11を複写してフィルタ演算を行う。
【０１６９】
図１７の（Ｃ）は、フィルタサイズが１１×５画素のタップ数であり、対象画素位置が入力境界ＩＢから左４画素列目（右側ブロック境界ＢＢから左８画素列目）の位置である場合を例示している。対象画素位置が入力境界ＩＢから左４画素列目の位置である場合、タップ右端から２画素目までの位置はＳＡＯ処理が行われていない画素の位置である。したがって、上述のステップＳＴ７７の処理を行い、タップ右端から２画素目までの画像データＰb11，Ｐb12として、左側に隣接するＳＡＯ処理済みの画素すなわちタップ右端から３画素目の画像データＰb10を複写してフィルタ演算を行う。
【０１７０】
図１７の（Ｄ）は、フィルタサイズが１１×５画素のタップ数であり、対象画素位置が入力境界ＩＢから左３画素列目（右側ブロック境界ＢＢから左７画素列目）の位置である場合を例示している。対象画素位置が入力境界ＩＢから左３画素列目の位置である場合、タップ右端から３画素目までの位置はＳＡＯ処理が行われていない画素の位置である。したがって、上述のステップＳＴ７９の処理を行い、タップ右端から３画素目までの画像データＰb10，Ｐb11，Pb12として、左側に隣接するＳＡＯ処理済みの画素すなわちタップ右端から４画素目の画像データＰb9を複写してフィルタ演算を行う。
【０１７１】
なお、図１７の（Ｅ）は、フィルタサイズが５×５画素のタップ数であり、対象画素位置が入力境界ＩＢから左３画素列目（右側ブロック境界ＢＢから左７画素列目）の位置である場合を例示している。対象画素位置が入力境界ＩＢから左に３列目の位置である場合、各タップの画像データはＳＡＯ処理が行われている。
【０１７２】
このように、１１×５画素のタップ数であるフィルタが選択されても、画像データを複写することで、５×５画素のタップ数である最小サイズのフィルタで処理が可能な画素位置までフィルタ処理を進めることができる。
【０１７３】
図１８の（Ａ）は、フィルタサイズが１１×５画素のタップ数であり、対象画素位置が入力境界ＩＢから左２画素列目（右側ブロック境界ＢＢから左６画素列目）の位置である場合を例示している。対象画素位置が入力境界ＩＢから左２画素列目の位置である場合、タップ左端から３画素目までの画像データはメモリに記憶されておらず、４画素目から７画素目までの画像データはメモリに記憶されている。また、８画素目から１１画素目までの画像データはＳＡＯ処理が行われてＳＡＯ部２５から供給される。したがって、ループフィルタ処理部２６は、画像データが記憶されていない画素位置となるタップ左端から３画素目までの画像データＰb2，Ｐb3，Ｐb4として、右側に隣接するタップ左端から４画素目の記憶されている画像データＰb5を複写してフィルタ演算を行う。
【０１７４】
図１８の（Ｂ）は、フィルタサイズが１１×５画素のタップ数であり、対象画素位置が入力境界ＩＢから左１画素列目（右側ブロック境界ＢＢから左５画素列目）の位置である場合を例示している。対象画素位置が入力境界ＩＢから左１画素列目の位置である場合、タップ左端から２画素目までの画像データはメモリに記憶されておらず、３画素目から６画素目までの画像データはメモリに記憶されている。また、７画素目から１１画素目までの画像データはＳＡＯ処理が行われてＳＡＯ部２５から供給される。したがって、ループフィルタ処理部２６は、画像データが記憶されていない画素位置となるタップ左端から２画素目までの画像データＰb2，Ｐb3として、右側に隣接するタップ左端から３画素目の記憶されている画像データＰb4を複写してフィルタ演算を行う。
【０１７５】
図１８の（Ｃ）は、フィルタサイズが１１×５画素のタップ数であり、対象画素位置が入力境界ＩＢから右１画素列目（右側ブロック境界ＢＢから左４画素列目）の位置である場合を例示している。対象画素位置が入力境界ＩＢから右１画素列目の位置である場合、タップ左端から１画素目までの画像データはメモリに記憶されておらず、２画素目から５画素目までの画像データはメモリに記憶されている。また、６画素目から１１画素目までの画像データはＳＡＯ処理が行われてＳＡＯ部２５から供給される。したがって、ループフィルタ処理部２６は、画像データが記憶されていない画素位置となるタップ左端から１画素の画像データＰb2として、右側に隣接するタップ左端から２画素目の記憶されている画像データＰb3を複写してフィルタ演算を行う。
【０１７６】
図１８の（Ｄ）は、フィルタサイズが１１×５画素のタップ数であり、対象画素位置が入力境界ＩＢから右２画素列目（右側ブロック境界ＢＢから左３画素列目）の位置である場合を例示している。対象画素位置が入力境界ＩＢから右２画素列目の位置である場合、タップ左端から４画素目までの画像データはメモリに記憶されており、５画素目から１１画素目までの画像データはＳＡＯ処理が行われてＳＡＯ部２５から供給される。したがって、ループフィルタ処理部２６は、画像データの複写を行うことなくフィルタ演算を行う。
【０１７７】
なお、図１８の（Ｅ）は、フィルタサイズが５×５画素のタップ数であり、対象画素位置が入力境界ＩＢから左２画素列目（右側ブロック境界ＢＢから左３画素列目）の位置である場合を例示している。対象画素位置が入力境界ＩＢから左２画素列目の位置である場合、タップ左端から４画素目までの画像データはメモリに記憶されており、５画素目の画像データはＳＡＯ処理が行われてＳＡＯ部２５から供給される。したがって、ループフィルタ処理部２６は、ＳＡＯ部２５でＳＡＯ処理が行われた画像データを用いてフィルタ演算を行うことができる。
【０１７８】
このように、画像データを複写して用いるようにすれば、画像データを記憶するメモリが最小のタップサイズに対応させて設けられていても、フィルタサイズに係らず最小のフィルタサイズと等しい画素位置までフィルタ処理を進めることができる。また、その後ＳＡＯ処理が行われた画像データが入力された場合、右側に隣接する画素位置から再びフィルタ処理をフィルタサイズに係らず継続できる。したがって、画像データを記憶するメモリのメモリ容量を最小のフィルタサイズに対応させて設けておけば、フィルタサイズが大きい場合でも画像データを複写することでフィルタサイズが最小の場合と同様にフィルタ処理を行うことができる。例えば、１１×５画素のタップ数であるフィルタを用いる場合でも、左８画素列目から左５画素列目までの４画素列分の画像データを用いてループフィルタ処理を行うことができる。
【０１７９】
また、上述の実施の形態では、画像データが記憶されていない画素位置のタップやＳＡＯ処理が行われていない画素位置のタップの画像データとして、記憶されているまたはＳＡＯ処理が行われている画像データを複写した。しかし、ループフィルタ処理部は、フィルタ係数を変更して、画像データを複写した場合と同様なフィルタ演算結果を得られるようにしてもよい。例えば、図１７において、タップＴb11（画像データＰb11のタップ）に対するフィルタ係数をＦb11、タップＴb12（画像データＰb12のタップ）に対するフィルタ係数をＦb12とする。ここで、図１７の（Ｂ）に示す場合、フィルタ係数Ｆb12を「０」に変更する。また、フィルタ係数Ｆb11は、画像データPb11を画像データＰb12として複写した場合と同様なフィルタ演算結果となる係数、例えば（Ｆb11＋Ｆb12）に変更する。このようにすれば、フィルタ係数を変更して、画像データを複写した場合と同様なフィルタ演算結果を得ることができる。
【０１８０】
さらに、上述の実施の形態では、水平方向のサイズが異なるタップを選択的に用いてループフィルタ処理を行う場合を例示したが、垂直方向のサイズが異なるタップを選択的に用いてループフィルタ処理を行う場合に、同様な処理を行ってもよい。この場合、垂直方向のサイズが最小のタップに応じてラインメモリのメモリ容量を設定しても、垂直方向のサイズが最小でないタップの場合には画像データの複写またはフィルタ係数の変更を行うことでループフィルタ処理を行うことができる。
【０１８１】
また、上述の実施の形態におけるフィルタのタップ数やタップ配置、サイズの異なるフィルタの数等は例示であって、実施の形態に限られない。さらに、本明細書において、ブロックおよびマクロブロックとの用語は、ＨＥＶＣの文脈における符号化単位（ＣＵ：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）のような非可搬性の記憶部が構成されてもよい。
【０２２５】
制御部９７０は、ＣＰＵなどのプロセッサ、並びにＲＡＭおよびＲＯＭなどのメモリを有する。メモリは、ＣＰＵにより実行されるプログラム、およびプログラムデータなどを記憶する。メモリにより記憶されるプログラムは、例えば、撮像装置９６の起動時にＣＰＵにより読み込まれ、実行される。ＣＰＵは、プログラムを実行することにより、例えばユーザインタフェース部９７１から入力される操作信号に応じて、撮像装置９６の動作を制御する。
【０２２６】
ユーザインタフェース部９７１は、制御部９７０と接続される。ユーザインタフェース部９７１は、例えば、ユーザが撮像装置９６を操作するためのボタンおよびスイッチなどを有する。ユーザインタフェース部９７１は、これら構成要素を介してユーザによる操作を検出して操作信号を生成し、生成した操作信号を制御部９７０へ出力する。
【０２２７】
バス９７２は、画像処理部９６４、外部インタフェース部９６６、メモリ９６７、メディアドライブ９６８、ＯＳＤ部９６９、および制御部９７０を相互に接続する。
【０２２８】
このように構成された撮像装置９６において、画像処理部９６４は、上述した実施形態に係る画像符号化装置１０および画像復号装置５０の機能を有する。それにより、撮像装置９６での画像の符号化および復号に際して、ループフィルタ処理を行うために画像データを記憶するメモリのメモリ容量を削減できる。
【０２２９】
さらに、本技術は、上述した実施形態に限定して解釈されるべきではない。この実施形態は、例示という形態で本技術を開示しており、本技術の要旨を逸脱しない範囲で当業者が実施形態の修正や代用をなし得ることは自明である。すなわち、本技術の要旨を判断するためには、特許請求の範囲を参酌すべきである。
【０２３０】
なお、本技術の画像処理装置は以下のような構成も取ることができる。
（１）符号化ストリームを復号処理して画像を生成する復号部と、
前記復号部により生成されたＣＵ（Coding Unit）単位の画像のフィルタ処理対象画素に対して構築されたタップの画像データと係数セットを用いてフィルタ演算を行うフィルタ演算部と、
所定ブロック境界の境界方向に対して直交する方向のタップ数が最小であるフィルタサイズで前記所定ブロック境界から所定範囲内の画像のフィルタ演算を行う場合における該フィルタ演算に用いられる前記所定範囲に含まれていない領域の画像データを記憶するメモリと、
前記所定ブロック境界の境界方向に対して直交する方向のタップ数が最小でないフィルタサイズである場合、前記フィルタ処理対象画素の位置に基づき前記所定範囲内に位置するタップおよび前記メモリに画像データが記憶されていないタップを判別して、前記所定範囲内および前記メモリに記憶されていない画像データを用いることなく前記フィルタ演算を行うように、前記判別されたタップに対して画像データの複写または前記フィルタ演算で用いる係数セットの変更を行うフィルタ制御部と
を備える画像処理装置。
（２）  前記フィルタ制御部は、前記メモリに画像データが記憶されている隣接画素の画像データを前記判別されたタップの画像データとして複写する（１）に記載の画像処理装置。
（３）  前記フィルタ制御部は、前記メモリに画像データが記憶されている隣接画素の係数を変更する（１）に記載の画像処理装置。
（４）  前記所定ブロック境界の境界方向に対して直交する方向は水平方向である（１）乃至（３）の何れかに記載の画像処理装置。
（５）  前記所定範囲は、デブロッキングフィルタ処理が行われていないためにＳＡＯ処理を行うことができない画像範囲である（１）乃至（４）の何れかに記載の画像処理装置。
（６）  画像を符号化する際にローカル復号処理されたＣＵ（Coding Unit）単位の画像のフィルタ処理対象画素に対して構築されたタップの画像データと係数セットを用いてフィルタ演算を行うフィルタ演算部と、
所定ブロック境界の境界方向に対して直交する方向のタップ数が最小であるフィルタサイズで前記所定ブロック境界から所定範囲内の画像のフィルタ演算を行う場合における該フィルタ演算に用いられる前記所定範囲に含まれていない領域の画像データを記憶するメモリと、
前記所定ブロック境界の境界方向に対して直交する方向のタップ数が最小でないフィルタサイズである場合、前記フィルタ処理対象画素の位置に基づき前記所定範囲内に位置するタップおよび前記メモリに画像データが記憶されていないタップを判別して、前記所定範囲内および前記メモリに記憶されていない画像データを用いることなく前記フィルタ演算を行うように、前記判別されたタップに対して画像データの複写または前記フィルタ演算で用いる係数セットの変更を行うフィルタ制御部と
を備える画像処理装置。
（７）  前記フィルタ制御部は、前記フィルタ演算に用いた前記フィルタサイズと係数セットの情報を、前記符号化ストリームに含める（６）に記載の画像処理装置。
（８）  前記フィルタ演算に用いた前記フィルタサイズは、符号化効率の良いフィルタサイズである（６）または（７）の何れかに記載の画像処理装置。
【産業上の利用可能性】
【０２３１】
この技術の画像処理装置と画像処理方法によれば、メモリでは、所定ブロック境界の境界方向に対して直交する方向のタップ数が最小であるフィルタサイズで所定ブロック境界から所定範囲内の画像のフィルタ演算を行う場合における該フィルタ演算に用いられる所定範囲に含まれていない領域の画像データが記憶される。また、フィルタ制御部では、ブロック境界方向のタップ数が最小でないフィルタサイズが選択されている場合、フィルタ処理対象画素の位置に基づき所定範囲内に位置するタップおよびメモリに画像データが記憶されていないタップを判別して、所定範囲内およびメモリに記憶されていない画像データを用いることなくフィルタ演算を行うように、判別されたタップに対して画像データの複写またはフィルタ演算で用いる係数セットの変更が行われる。このため、異なるサイズのフィルタを選択的に用いてフィルタ演算を行う場合に、最小サイズのフィルタに対応させて画像データをメモリに記憶させても、最小サイズよりも大きいフィルタサイズでフィルタ演算が可能となり、適応ループフィルタ処理を行うために画像データを記憶するメモリのメモリ容量を削減できる。この技術の画像処理装置や画像処理方法を適用した電子機器を安価に提供することが可能となる。
【符号の説明】
【０２３２】
１０・・・画像符号化装置、１１・・・Ａ／Ｄ変換部、１２，５９・・・画面並べ替えバッファ、１３・・・減算部、１４・・・直交変換部、１５・・・量子化部、１６・・・可逆符号化部、１７・・・蓄積バッファ、１８・・・レート制御部、２１，５３・・・逆量子化部、２２，５４・・・逆直交変換部、２３，５５・・・加算部、２４，５６・・・デブロッキングフィルタ処理部、２５，５７・・・ＳＡＯ部、２６，５８・・・ループフィルタ処理部、２７・・・係数メモリ、２８，６１・・・フレームメモリ、２９，６２，６５・・・セレクタ、３１，６３・・・イントラ予測部、３２・・・動き予測・補償部、３３・・・予測画像・最適モード選択部、５０・・・画像復号装置、５１・・・蓄積バッファ、５２・・・可逆復号部、６０・・・Ｄ／Ａ変換部、６４・・・動き補償部、９０・・・テレビジョン装置、９２・・・携帯電話機、９４・・・記録再生装置、９６・・・撮像装置、２６１・・・メモリ、２６２・・・タップ構築部、２６３・・・係数構築部、２６４・・・フィルタ演算部、２６９・・・フィルタ制御部、２６９１・・・処理位置判定部
【図１】
2013098873.tif 000003
【図２】
2013098873.tif 000004
【図３】
2013098873.tif 000005
【図４】
2013098873.tif 000006
【図５】
2013098873.tif 000007
【図６】
2013098873.tif 000008
【図７】
2013098873.tif 000009
【図８】
2013098873.tif 000010
【図９】
2013098873.tif 000011
【図１０】
2013098873.tif 000012
【図１１】
2013098873.tif 000013
【図１２】
2013098873.tif 000014
【図１３】
2013098873.tif 000015
【図１４】
2013098873.tif 000016
【図１５】
2013098873.tif 000017
【図１６】
2013098873.tif 000018
【図１７】
2013098873.tif 000019
【図１８】
2013098873.tif 000020
【図１９】
2013098873.tif 000021
【図２０】
2013098873.tif 000022
【図２１】
2013098873.tif 000023
【図２２】
2013098873.tif 000024