以下、本開示を実施するための形態(以下実施の形態とする)について説明する。なお、説明は以下の順序で行う。
1.装置および動作の概要
2.第1の実施の形態(画像符号化装置、画像復号装置)
3.第2の実施の形態(多視点画像符号化・復号)
4.第3の実施の形態(階層画像符号化・復号)
5.第4の実施の形態(コンピュータ)
6.応用例
7.第5の実施の形態(セット・ユニット・モジュール・プロセッサ)
<1.装置および動作の概要>
[画像符号化装置の構成例]
図1は、本開示を適用した画像処理装置としての画像符号化装置の一実施の形態の構成を表している。
図1に示される画像符号化装置11は、予測処理を用いて画像データを符号化する。ここで、符号化方式としては、例えば、HEVC(High Efficiency Video Coding)方式などが用いられる。
なお、HEVC方式においては、コーディングユニット(CU(Coding Unit))が規定されている。CUは、Coding Tree Block(CTB)とも呼ばれ、H.264/AVC方式におけるマクロブロックと同様の役割を果たす、ピクチャ単位の画像の部分領域である。後者は、16×16画素の大きさに固定されているのに対し、前者の大きさは固定されておらず、それぞれのシーケンスにおいて、画像圧縮情報中において指定されることになる。
例えば、出力となる符号化データに含まれるシーケンスパラメータセット(SPS(Sequence Parameter Set))において、CUの最大サイズ(LCU(Largest Coding Unit))と最小サイズ(SCU(Smallest Coding Unit))が規定される。
それぞれのLCU内においては、SCUのサイズを下回らない範囲で、split-flag=1とすることにより、より小さなサイズのCUに分割することができる。2N×2Nの大きさのCUは、split_flagの値が「1」である時、1つ下の階層となる、N×Nの大きさのCUに分割される。
更に、CUは、イントラ若しくはインター予測処理の対象となる領域(ピクチャ単位の画像の部分領域)であるプレディクションユニット(Prediction Unit(PU))に分割され、また、直交変換処理の対象となる領域(ピクチャ単位の画像の部分領域)である、トランスフォームユニット(Transform Unit(TU))に分割される。現在、HEVC方式においては、4×4及び8×8に加え、16×16及び32×32直交変換を用いることが可能である。
図1の画像符号化装置11は、A/D(Analog / Digital)変換部21、画面並べ替えバッファ22、演算部23、直交変換部24、量子化部25、可逆符号化部26、および蓄積バッファ27を有する。また、画像符号化装置11は、逆量子化部28、逆直交変換部29、演算部30、デブロッキングフィルタ31a、フレームメモリ32、選択部33、イントラ予測部34、動き予測・補償部35、予測画像選択部36、およびレート制御部37を有する。
さらに、画像符号化装置11は、デブロッキングフィルタ31aとフレームメモリ32との間に、適応オフセットフィルタ41および適応ループフィルタ42を有する。
A/D変換部21は、入力された画像データをA/D変換し、画面並べ替えバッファ22に出力し、記憶させる。
画面並べ替えバッファ22は、記憶した表示の順番のフレームの画像を、GOP(Group of Picture)構造に応じて、符号化のためのフレームの順番に並べ替える。画面並べ替えバッファ22は、フレームの順番を並び替えた画像を、演算部23に供給する。また、画面並べ替えバッファ22は、フレームの順番を並び替えた画像を、イントラ予測部34および動き予測・補償部35にも供給する。
演算部23は、画面並べ替えバッファ22から読み出された画像から、予測画像選択部36を介してイントラ予測部34若しくは動き予測・補償部35から供給される予測画像を減算し、その差分情報を直交変換部24に出力する。
例えば、イントラ符号化が行われる画像の場合、演算部23は、画面並べ替えバッファ22から読み出された画像から、イントラ予測部34から供給される予測画像を減算する。また、例えば、インター符号化が行われる画像の場合、演算部23は、画面並べ替えバッファ22から読み出された画像から、動き予測・補償部35から供給される予測画像を減算する。
直交変換部24は、演算部23から供給される差分情報に対して、離散コサイン変換、カルーネン・レーベ変換等の直交変換を施し、その変換係数を量子化部25に供給する。
量子化部25は、直交変換部24が出力する変換係数を量子化する。量子化部25は、量子化された変換係数を可逆符号化部26に供給する。
可逆符号化部26は、その量子化された変換係数に対して、可変長符号化、算術符号化等の可逆符号化を施す。
可逆符号化部26は、イントラ予測モードを示す情報などのパラメータをイントラ予測部34から取得し、インター予測モードを示す情報や動きベクトル情報などのパラメータを動き予測・補償部35から取得する。
可逆符号化部26は、量子化された変換係数を符号化するとともに、取得した各パラメータ(シンタクス要素)を符号化し、符号化データのヘッダ情報の一部とする(多重化する)。可逆符号化部26は、符号化して得られた符号化データを蓄積バッファ27に供給して蓄積させる。
例えば、可逆符号化部26においては、可変長符号化または算術符号化等の可逆符号化処理が行われる。可変長符号化としては、CAVLC(Context-Adaptive Variable Length Coding)などがあげられる。算術符号化としては、CABAC(Context-Adaptive Binary Arithmetic Coding)などがあげられる。
蓄積バッファ27は、可逆符号化部26から供給された符号化ストリーム(データ)を、一時的に保持し、所定のタイミングにおいて、符号化された符号化画像として、例えば、後段の図示せぬ記録装置や伝送路などに出力する。すなわち、蓄積バッファ27は、符号化ストリームを伝送する伝送部でもある。
また、量子化部25において量子化された変換係数は、逆量子化部28にも供給される。逆量子化部28は、その量子化された変換係数を、量子化部25による量子化に対応する方法で逆量子化する。逆量子化部28は、得られた変換係数を、逆直交変換部29に供給する。
逆直交変換部29は、供給された変換係数を、直交変換部24による直交変換処理に対応する方法で逆直交変換する。逆直交変換された出力(復元された差分情報)は、演算部30に供給される。
演算部30は、逆直交変換部29より供給された逆直交変換結果、すなわち、復元された差分情報に、予測画像選択部36を介してイントラ予測部34若しくは動き予測・補償部35から供給される予測画像を加算し、局部的に復号された画像(復号画像)を得る。
例えば、差分情報が、イントラ符号化が行われる画像に対応する場合、演算部30は、その差分情報にイントラ予測部34から供給される予測画像を加算する。また、例えば、差分情報が、インター符号化が行われる画像に対応する場合、演算部30は、その差分情報に動き予測・補償部35から供給される予測画像を加算する。
その加算結果である復号画像は、デブロッキングフィルタ31aおよびフレームメモリ32に供給される。
デブロッキングフィルタ31aは、適宜デブロッキングフィルタ処理を行うことにより復号画像のブロック歪を抑制する。デブロッキングフィルタ31aは、Strong(強)フィルタとWeak(弱)フィルタとを有しており、それぞれの判定式を用いてどちらのフィルタを適用するかを判定する。Strongフィルタの判定式は、3つの判定式からなり、それらの判定式には、量子化パラメータQPを基に求められるパラメータbetaまたはtcに加えて、Bs(Boundary Filtering Strength)値が用いられる。パラメータbetaおよびtcは、フィルタに関する判定に用いられる閾値であり、デブロッキングフィルタの要否判定および強度選択判定に用いられる判定パラメータである。なお、パラメータtcは、フィルタ自体にも用いられるパラメータである。Bs値は、ブロック境界に対する強度を示す強度パラメータである。
なお、デブロッキングフィルタ31aは、ユーザの指示により利用不可にすることも可能であり、デブロッキングフィルタ31aには、ユーザが図示せぬ操作部などを操作することで、デブロッキングフィルタを行うか否かのON/OFF情報が入力される。また、上述したパラメータbetaおよびtcの各オフセットは、デフォルトが0であるが、それ以外の値である場合には、ユーザが図示せぬ操作部などを操作することで、デブロッキングフィルタ31aに入力される。これらのデブロッキングフィルタのON/OFF情報(DisableDeblockingFilterフラグ情報ともいう)と、パラメータbetaおよびtcの各オフセットは、デブロッキングフィルタのパラメータとして、可逆符号化部26において符号化され、後述する図3の画像復号装置51に送信される。
デブロッキングフィルタ31aは、演算部30からの画像に対して、上述したON/OFF情報、オフセット、Bs値、並びにパラメータであるbetaおよびtcなどを用いて、デブロッキングフィルタ処理を行う。デブロッキングフィルタ31aは、そのフィルタ処理結果を適応オフセットフィルタ41に供給する。なお、デブロッキングフィルタ31aの詳細な構成については、図13を参照して後述する。
適応オフセットフィルタ41は、デブロッキングフィルタ31aによるフィルタ後の画像に対して、主にリンギングを抑制するオフセットフィルタ(SAO: Sample adaptive offset)処理を行う。
オフセットフィルタの種類は、バンドオフセット2種類、エッジオフセット6種類、オフセットなしの計9種類がある。適応オフセットフィルタ41は、領域(例えば、LCU)毎にオフセットフィルタの種類が決定されたものであるLCU毎のオフセット値を用いて、デブロッキングフィルタ31aによるフィルタ後の画像に対して、フィルタ処理を施す。適応オフセットフィルタ41は、フィルタ処理後の画像を、適応ループフィルタ42に供給する。
なお、画像符号化装置11において、LCU毎のオフセット値は、適応オフセットフィルタ41により算出されて用いられる。算出されたLCU毎のオフセット値は、適応オフセットパラメータとして、可逆符号化部26において符号化され、後述する図3の画像復号装置51に送信される。
適応ループフィルタ42は、適応オフセットフィルタ41によるフィルタ後の画像に対して、フィルタ係数を用いて、処理単位(例えば、LCU)毎に、適応ループフィルタ(ALF:AdaptiveLoop Filter)処理を行う。適応ループフィルタ42においては、フィルタとして、例えば、2次元のウィナーフィルタ(Wiener Filter)が用いられる。もちろん、ウィナーフィルタ以外のフィルタが用いられてもよい。適応ループフィルタ42は、フィルタ処理結果をフレームメモリ32に供給する。
なお、図1の例においては図示しないが、画像符号化装置11において、フィルタ係数は、処理単位毎に、画面並べ替えバッファ12からの原画像との残差を最小とするよう適応ループフィルタ42により算出されて用いられる。算出されたフィルタ係数は、適応ループフィルタパラメータとして、可逆符号化部26において符号化され、後述する図3の画像復号装置51に送信される。
フレームメモリ32は、所定のタイミングにおいて、蓄積されている参照画像を、選択部33を介してイントラ予測部34または動き予測・補償部35に出力する。
例えば、イントラ符号化が行われる画像の場合、フレームメモリ32は、参照画像を、選択部33を介してイントラ予測部34に供給する。また、例えば、インター符号化が行われる場合、フレームメモリ32は、参照画像を、選択部33を介して動き予測・補償部35に供給する。
選択部33は、フレームメモリ32から供給される参照画像がイントラ符号化を行う画像である場合、その参照画像をイントラ予測部34に供給する。また、選択部33は、フレームメモリ32から供給される参照画像がインター符号化を行う画像である場合、その参照画像を動き予測・補償部35に供給する。
イントラ予測部34は、画面内の画素値を用いて予測画像を生成するイントラ予測(画面内予測)を行う。イントラ予測部34は、複数のモード(イントラ予測モード)によりイントラ予測を行う。
イントラ予測部34は、全てのイントラ予測モードで予測画像を生成し、各予測画像を評価し、最適なモードを選択する。イントラ予測部34は、最適なイントラ予測モードを選択すると、その最適なモードで生成された予測画像を、予測画像選択部36を介して演算部23や演算部30に供給する。
また、上述したように、イントラ予測部34は、採用したイントラ予測モードを示すイントラ予測モード情報等のパラメータを、適宜可逆符号化部26に供給する。
動き予測・補償部35は、インター符号化が行われる画像について、画面並べ替えバッファ22から供給される入力画像と、選択部33を介してフレームメモリ32から供給される参照画像とを用いて、動き予測を行う。また、動き予測・補償部35は、動き予測により検出された動きベクトルに応じて動き補償処理を行い、予測画像(インター予測画像情報)を生成する。
動き予測・補償部35は、候補となる全てのインター予測モードのインター予測処理を行い、予測画像を生成する。動き予測・補償部35は、生成された予測画像を、予測画像選択部36を介して演算部23や演算部30に供給する。
また、動き予測・補償部35は、採用されたインター予測モードを示すインター予測モード情報や、算出した動きベクトルを示す動きベクトル情報などのパラメータを可逆符号化部26に供給する。
予測画像選択部36は、イントラ符号化を行う画像の場合、イントラ予測部34の出力を演算部23や演算部30に供給し、インター符号化を行う画像の場合、動き予測・補償部35の出力を演算部23や演算部30に供給する。
レート制御部37は、蓄積バッファ27に蓄積された圧縮画像に基づいて、オーバーフローあるいはアンダーフローが発生しないように、量子化部25の量子化動作のレートを制御する。
[画像符号化装置の動作]
図2を参照して、以上のような画像符号化装置11により実行される符号化処理の流れについて説明する。
ステップS11において、A/D変換部21は入力された画像をA/D変換する。ステップS12において、画面並べ替えバッファ22は、A/D変換された画像を記憶し、各ピクチャの表示する順番から符号化する順番への並べ替えを行う。
画面並べ替えバッファ22から供給される処理対象の画像がイントラ処理されるブロックの画像である場合、参照される復号済みの画像がフレームメモリ32から読み出され、選択部33を介してイントラ予測部34に供給される。
これらの画像に基づいて、ステップS13において、イントラ予測部34は処理対象のブロックの画素を、候補となる全てのイントラ予測モードでイントラ予測する。なお、参照される復号済みの画素としては、デブロッキングフィルタ31aによりフィルタされていない画素が用いられる。
この処理により、候補となる全てのイントラ予測モードでイントラ予測が行われ、候補となる全てのイントラ予測モードに対してコスト関数値が算出される。そして、算出されたコスト関数値に基づいて、最適イントラ予測モードが選択され、最適イントラ予測モードのイントラ予測により生成された予測画像とそのコスト関数値が予測画像選択部36に供給される。
画面並べ替えバッファ22から供給される処理対象の画像がインター処理される画像である場合、参照される画像がフレームメモリ32から読み出され、選択部33を介して動き予測・補償部35に供給される。これらの画像に基づいて、ステップS14において、動き予測・補償部35は、動き予測・補償処理を行う。
この処理により、候補となる全てのインター予測モードで動き予測処理が行われ、候補となる全てのインター予測モードに対してコスト関数値が算出され、算出したコスト関数値に基づいて、最適インター予測モードが決定される。そして、最適インター予測モードにより生成された予測画像とそのコスト関数値が予測画像選択部36に供給される。
ステップS15において、予測画像選択部36は、イントラ予測部34および動き予測・補償部35より出力された各コスト関数値に基づいて、最適イントラ予測モードと最適インター予測モードのうちの一方を、最適予測モードに決定する。そして、予測画像選択部36は、決定した最適予測モードの予測画像を選択し、演算部23,30に供給する。この予測画像は、後述するステップS16,S21の演算に利用される。
なお、この予測画像の選択情報は、イントラ予測部34または動き予測・補償部35に供給される。最適イントラ予測モードの予測画像が選択された場合、イントラ予測部34は、最適イントラ予測モードを示す情報(すなわち、イントラ予測に関するパラメータ)を、可逆符号化部26に供給する。
最適インター予測モードの予測画像が選択された場合、動き予測・補償部35は、最適インター予測モードを示す情報と、最適インター予測モードに応じた情報(すなわち、動き予測に関するパラメータ)を可逆符号化部26に出力する。最適インター予測モードに応じた情報としては、動きベクトル情報や参照フレーム情報などがあげられる。
ステップS16において、演算部23は、ステップS12で並び替えられた画像と、ステップS15で選択された予測画像との差分を演算する。予測画像は、インター予測する場合は動き予測・補償部35から、イントラ予測する場合はイントラ予測部34から、それぞれ予測画像選択部36を介して演算部23に供給される。
差分データは元の画像データに較べてデータ量が小さくなっている。したがって、画像をそのまま符号化する場合に較べて、データ量を圧縮することができる。
ステップS17において、直交変換部24は演算部23から供給された差分情報を直交変換する。具体的には、離散コサイン変換、カルーネン・レーベ変換等の直交変換が行われ、変換係数が出力される。
ステップS18において、量子化部25は変換係数を量子化する。この量子化に際しては、後述するステップS28の処理で説明されるように、レートが制御される。
以上のようにして量子化された差分情報は、次のようにして局部的に復号される。すなわち、ステップS19において、逆量子化部28は、量子化部25により量子化された変換係数を量子化部25の特性に対応する特性で逆量子化する。ステップS20において、逆直交変換部29は、逆量子化部28により逆量子化された変換係数を直交変換部24の特性に対応する特性で逆直交変換する。
ステップS21において、演算部30は、予測画像選択部36を介して入力される予測画像を局部的に復号された差分情報に加算し、局部的に復号された(すなわち、ローカルデコードされた)画像(演算部23への入力に対応する画像)を生成する。
ステップS22においてデブロッキングフィルタ31aは、演算部30より出力された画像に対して、デブロッキングフィルタ処理を行う。デブロッキングフィルタ処理については、図14に詳しく説明するが、このとき、Strongフィルタに関する判定にBs値が用いられる。デブロッキングフィルタ31aからのフィルタ後の画像は、適応オフセットフィルタ41に出力される。
なお、ユーザにより操作部などを操作することで入力されて、デブロッキングフィルタ31aで用いられたON/OFF情報と、パラメータbetaおよびtcの各オフセットは、デブロッキングフィルタのパラメータとして、可逆符号化部26に供給される。
ステップS23において、適応オフセットフィルタ41は、適応オフセットフィルタ処理を行う。この処理により、LCU毎にオフセットフィルタの種類が決定されたものであるLCU毎のオフセット値を用いて、デブロッキングフィルタ31aによるフィルタ後の画像に対して、フィルタ処理が施される。フィルタ後の画像は、適応ループフィルタ42に供給される。
なお、決定されたLCU毎のオフセット値は、適応オフセットパラメータとして、可逆符号化部26に供給される。
ステップS24において、適応ループフィルタ42は、適応オフセットフィルタ41によるフィルタ後の画像に対して、適応ループフィルタ処理を行う。例えば、適応オフセットフィルタ41によるフィルタ後の画像に対して、フィルタ係数を用いて、処理単位毎に、画像に対してフィルタ処理が行われ、フィルタ処理結果が、フレームメモリ32に供給される。
ステップS25においてフレームメモリ32は、フィルタリングされた画像を記憶する。なお、フレームメモリ32には、デブロッキングフィルタ31、適応オフセットフィルタ41、および適応ループフィルタ42によりフィルタされていない画像も演算部30から供給され、記憶される。
一方、上述したステップS18において量子化された変換係数は、可逆符号化部26にも供給される。ステップS26において、可逆符号化部26は、量子化部25より出力された量子化された変換係数と、供給された各パラメータを符号化する。すなわち、差分画像が可変長符号化、算術符号化等の可逆符号化され、圧縮される。ここで、符号化される各パラメータとしては、デブロッキングフィルタのパラメータ、適応オフセットフィルタのパラメータ、適応ループフィルタのパラメータ、量子化パラメータ、動きベクトル情報や参照フレーム情報、予測モード情報などがあげられる。
ステップS27において蓄積バッファ27は、符号化された差分画像(すなわち、符号化ストリーム)を、圧縮画像として蓄積する。蓄積バッファ27に蓄積された圧縮画像が適宜読み出され、伝送路を介して復号側に伝送される。
ステップS28においてレート制御部37は、蓄積バッファ27に蓄積された圧縮画像に基づいて、オーバーフローあるいはアンダーフローが発生しないように、量子化部25の量子化動作のレートを制御する。
ステップS28の処理が終了すると、符号化処理が終了される。
[画像復号装置の構成例]
図3は、本開示を適用した画像処理装置としての画像復号装置の一実施の形態の構成を表している。図3に示される画像復号装置51は、図1の画像符号化装置11に対応する復号装置である。
画像符号化装置11より符号化された符号化ストリーム(データ)は、所定の伝送路を介して、この画像符号化装置11に対応する画像復号装置51に伝送され、復号されるものとする。
図3に示されるように、画像復号装置51は、蓄積バッファ61、可逆復号部62、逆量子化部63、逆直交変換部64、演算部65、デブロッキングフィルタ31b、画面並べ替えバッファ67、およびD/A変換部68を有する。また、画像復号装置51は、フレームメモリ69、選択部70、イントラ予測部71、動き予測・補償部72、および選択部73を有する。
さらに、画像復号装置51は、デブロッキングフィルタ31bと、画面並べ替えバッファ67およびフレームメモリ69との間に、適応オフセットフィルタ81および適応ループフィルタ82を有する。
蓄積バッファ61は、伝送されてきた符号化データを受け取る受け取り部でもある。蓄積バッファ61は、伝送されてきた符号化データを受け取って、蓄積する。この符号化データは、画像符号化装置11により符号化されたものである。可逆復号部62は、蓄積バッファ61から所定のタイミングで読み出された符号化データを、図1の可逆符号化部26の符号化方式に対応する方式で復号する。
可逆復号部62は、復号されたイントラ予測モードを示す情報などのパラメータをイントラ予測部71に供給し、インター予測モードを示す情報や動きベクトル情報などのパラメータを動き予測・補償部72に供給する。また、可逆復号部62は、復号されたデブロッキングフィルタのパラメータを、デブロッキングフィルタ31bに供給し、復号された適応オフセットパラメータを、適応オフセットフィルタ81に供給する。
逆量子化部63は、可逆復号部62により復号されて得られた係数データ(量子化係数)を、図1の量子化部25の量子化方式に対応する方式で逆量子化する。つまり、逆量子化部63は、画像符号化装置11から供給された量子化パラメータを用いて、図1の逆量子化部28と同様の方法で量子化係数の逆量子化を行う。
逆量子化部63は、逆量子化された係数データ、つまり、直交変換係数を、逆直交変換部64に供給する。逆直交変換部64は、図1の直交変換部24の直交変換方式に対応する方式で、その直交変換係数を逆直交変換し、画像符号化装置11において直交変換される前の残差データに対応する復号残差データを得る。
逆直交変換されて得られた復号残差データは、演算部65に供給される。また、演算部65には、選択部73を介して、イントラ予測部71若しくは動き予測・補償部72から予測画像が供給される。
演算部65は、その復号残差データと予測画像とを加算し、画像符号化装置11の演算部23により予測画像が減算される前の画像データに対応する復号画像データを得る。演算部65は、その復号画像データをデブロッキングフィルタ31bに供給する。
デブロッキングフィルタ31bは、適宜デブロックフィルタ処理を行うことにより復号画像のブロック歪を抑制する。デブロッキングフィルタ31bは、図1のデブロッキングフィルタ31aと基本的に同様に構成される。すなわち、デブロッキングフィルタ31bは、StrongフィルタとWeakフィルタとを有しており、それぞれの判定式を用いてどちらのフィルタを適用するかを判定する。Strongフィルタの判定式は、3つの判定式からなり、それらの判定式には、量子化パラメータQPを基に求められるパラメータbetaまたはtcに加えて、Bs値が用いられる。
なお、画像符号化装置11により符号化されたデブロッキングフィルタのON/OFF情報と、パラメータbetaおよびtcの各オフセットは、デブロッキングフィルタのパラメータとして、画像復号装置51において受信されて、可逆復号部62により復号されて、デブロッキングフィルタ31bにより用いられる。
デブロッキングフィルタ31bは、演算部30からの画像に対して、上述したON/OFF情報、オフセット、並びにパラメータであるbetaおよびtcを用いて、デブロッキングフィルタ処理を行う。デブロッキングフィルタ31bは、そのフィルタ処理結果を適応オフセットフィルタ81に供給する。なお、デブロッキングフィルタ31bの詳細な構成については、図14を参照して後述する。
適応オフセットフィルタ81は、デブロッキングフィルタ31bによるフィルタ後の画像に対して、主にリンギングを抑制するオフセットフィルタ(SAO)処理を行う。
適応オフセットフィルタ81は、LCU毎にオフセットフィルタの種類が決定されたものであるLCU毎のオフセット値を用いて、デブロッキングフィルタ31bによるフィルタ後の画像に対して、フィルタ処理を施す。適応オフセットフィルタ81は、フィルタ処理後の画像を、適応ループフィルタ82に供給する。
なお、このLCU毎のオフセット値は、画像符号化装置11の適応オフセットフィルタ41により算出され、適応オフセットパラメータとして、符号化されて送られてきたものである。そして、画像符号化装置11により符号化されたLCU毎のオフセット値は、適応オフセットパラメータとして、画像復号装置51において受信されて、可逆復号部62により復号されて、適応オフセットフィルタ81により用いられる。
適応ループフィルタ82は、適応オフセットフィルタ81によるフィルタ後の画像に対して、フィルタ係数を用いて、処理単位毎にフィルタ処理を行い、フィルタ処理結果を、フレームメモリ69および画面並べ替えバッファ67に供給する。
なお、図3の例においては図示しないが、画像復号装置51において、フィルタ係数は、画像符号化装置11の適応ループフィルタ42によりLCU毎に算出され、適応ループフィルタパラメータとして、符号化されて送られてきたものが可逆復号部62により復号されて用いられる。
画面並べ替えバッファ67は、画像の並べ替えを行う。すなわち、図1の画面並べ替えバッファ22により符号化の順番のために並べ替えられたフレームの順番が、元の表示の順番に並べ替えられる。D/A変換部68は、画面並べ替えバッファ67から供給された画像をD/A変換し、図示せぬディスプレイに出力し、表示させる。
適応ループフィルタ82の出力は、さらに、フレームメモリ69に供給される。
フレームメモリ69、選択部70、イントラ予測部71、動き予測・補償部72、および選択部73は、画像符号化装置11のフレームメモリ32、選択部33、イントラ予測部34、動き予測・補償部35、および予測画像選択部36にそれぞれ対応する。
選択部70は、インター処理される画像と参照される画像をフレームメモリ69から読み出し、動き予測・補償部72に供給する。また、選択部70は、イントラ予測に用いられる画像をフレームメモリ69から読み出し、イントラ予測部71に供給する。
イントラ予測部71には、ヘッダ情報を復号して得られたイントラ予測モードを示す情報等が可逆復号部62から適宜供給される。イントラ予測部71は、この情報に基づいて、フレームメモリ69から取得した参照画像から予測画像を生成し、生成した予測画像を選択部73に供給する。
動き予測・補償部72には、ヘッダ情報を復号して得られた情報(予測モード情報、動きベクトル情報、参照フレーム情報、フラグ、および各種パラメータ等)が可逆復号部62から供給される。
動き予測・補償部72は、可逆復号部62から供給されるそれらの情報に基づいて、フレームメモリ69から取得した参照画像から予測画像を生成し、生成した予測画像を選択部73に供給する。
選択部73は、動き予測・補償部72またはイントラ予測部71により生成された予測画像を選択し、演算部65に供給する。
[画像復号装置の動作]
図4を参照して、以上のような画像復号装置51により実行される復号処理の流れの例を説明する。
復号処理が開始されると、ステップS51において、蓄積バッファ61は、伝送されてきた符号化ストリーム(データ)を受け取り、蓄積する。ステップS52において、可逆復号部62は、蓄積バッファ61から供給される符号化データを復号する。図1の可逆符号化部26により符号化されたIピクチャ、Pピクチャ、並びにBピクチャが復号される。
ピクチャの復号に先立ち、動きベクトル情報、参照フレーム情報、予測モード情報(イントラ予測モード、またはインター予測モード)などのパラメータの情報も復号される。
予測モード情報がイントラ予測モード情報である場合、予測モード情報は、イントラ予測部71に供給される。予測モード情報がインター予測モード情報である場合、予測モード情報と対応する動きベクトル情報などは、動き予測・補償部72に供給される。また、デブロッキングフィルタのパラメータおよび適応オフセットパラメータも復号され、デブロッキングフィルタ31bおよび適応オフセットフィルタ81にそれぞれ供給される。
ステップS53において、イントラ予測部71または動き予測・補償部72は、可逆復号部62から供給される予測モード情報に対応して、それぞれ、予測画像生成処理を行う。
すなわち、可逆復号部62からイントラ予測モード情報が供給された場合、イントラ予測部71はイントラ予測モードのイントラ予測画像を生成する。可逆復号部62からインター予測モード情報が供給された場合、動き予測・補償部72は、インター予測モードの動き予測・補償処理を行い、インター予測画像を生成する。
この処理により、イントラ予測部71により生成された予測画像(イントラ予測画像)、または動き予測・補償部72により生成された予測画像(インター予測画像)が選択部73に供給される。
ステップS54において、選択部73は予測画像を選択する。すなわち、イントラ予測部71により生成された予測画像、または動き予測・補償部72により生成された予測画像が供給される。したがって、供給された予測画像が選択されて演算部65に供給され、後述するステップS57において逆直交変換部64の出力と加算される。
上述したステップS52において、可逆復号部62により復号された変換係数は、逆量子化部63にも供給される。ステップS55において、逆量子化部63は可逆復号部62により復号された変換係数を、図1の量子化部25の特性に対応する特性で逆量子化する。
ステップS56において逆直交変換部64は、逆量子化部63により逆量子化された変換係数を、図1の直交変換部24の特性に対応する特性で逆直交変換する。これにより図1の直交変換部24の入力(演算部23の出力)に対応する差分情報が復号されたことになる。
ステップS57において、演算部65は、上述したステップS54の処理で選択され、選択部73を介して入力される予測画像を差分情報と加算する。これにより元の画像が復号される。
ステップS58においてデブロッキングフィルタ31bは、演算部65より出力された画像に対して、デブロッキングフィルタ処理を行う。デブロッキングフィルタ処理については、図14に詳しく説明するが、このとき、Strongフィルタに関する判定にBs値が用いられる。デブロッキングフィルタ31bからのフィルタ後の画像は、適応オフセットフィルタ41に出力される。なお、デブロッキングフィルタ処理においては、可逆復号部62から供給されるデブロッキングフィルタのパラメータであるON/OFF情報と、パラメータbetaおよびtcの各オフセットも用いられる。
ステップS59において、適応オフセットフィルタ81は、適応オフセットフィルタ処理を行う。この処理により、LCU毎にオフセットフィルタの種類が決定されたものであるLCU毎のオフセット値を用いて、デブロッキングフィルタ31bによるフィルタ後の画像に対して、フィルタ処理が施される。フィルタ後の画像は、適応ループフィルタ82に供給される。
ステップS60において、適応ループフィルタ82は、適応オフセットフィルタ81によるフィルタ後の画像に対して、適応ループフィルタ処理を行う。適応ループフィルタ82は、処理単位毎に計算されたフィルタ係数を用いて、入力画像に対して、処理単位毎にフィルタ処理を行い、フィルタ処理結果を、画面並べ替えバッファ67およびフレームメモリ69に供給する。
ステップS61においてフレームメモリ69は、フィルタリングされた画像を記憶する。
ステップS62において、画面並べ替えバッファ67は、適応ループフィルタ82後の画像の並べ替えを行う。すなわち画像符号化装置11の画面並べ替えバッファ22により符号化のために並べ替えられたフレームの順序が、元の表示の順序に並べ替えられる。
ステップS63において、D/A変換部68は、画面並べ替えバッファ67からの画像をD/A変換する。この画像が図示せぬディスプレイに出力され、画像が表示される。
ステップS63の処理が終了すると、復号処理が終了される。
<2.第1の実施の形態>
[Strongフィルタの判定条件]
次に、図5を参照して、HEVC方式と本技術のStrongフィルタの判定式について説明する。
図5の例においては、4×4画素からなるブロックPとブロックPの右側に隣接するブロックである隣接ブロックQが示されている。
HEVC方式においては、ブロックPと隣接ブロックQとのブロック境界に施されるフィルタのうち、Strongフィルタを施すか否かを判定する際、境界から数えて3画素(図中ハッチングされた四角)がその判定に用いられる。HEVC方式のStrongフィルタの判定式としては、次の式(1)乃至式(3)が用いられる。
なお、図5の例においては、式(1)乃至式(3)におけるi=0,3である場合が示されている。
また、式(1)と式(2)は、ブロック内の画素値を判定している。式(1)と式(2)より、ブロック内がなだらかな方が、Strongフィルタがかかりやすいことがわかる。これに対して、式(3)は、ブロック境界の画素値を判定している。
すなわち、判定対象となるブロック境界において、式(1)乃至式(3)が全て真の場合、そのブロック境界には、Strongフィルタが施され、いずれか1つでも偽の場合、次に、Weakフィルタの判定が行われる。
しかしながら、HEVC方式におけるStrongフィルタの判定式のままであると、現状、ブロックノイズが目立つところにもWeakフィルタがかかってしまうことが多く、ブロックノイズが残ってしまうことがあった。
したがって、ノイズが目立つところのStrongフィルタがかかるブロック境界を増やしたい。
これらを踏まえて、本技術においては、Strongフィルタの判定を、Strongフィルタがよりかかるように調整する。例えば、上述した式(1)乃至式(3)に代え、次の式(4)乃至式(6)に示されるように、Strongフィルタの判定にBs値を用いる。
なお、図5の例においては、式(4)乃至式(6)におけるi=0,3の場合が示されている。また、例えば、f1(Bs)=f2(Bs)=f3(Bs)=Bs+2である。なお、一般的に表すと、F(Bs)=a*Bs+bとなるが、関数の形態は問わない。
ここで、Strongフィルタの判定に用いられているパラメータbetaとtcは、テーブルから量子化パラメータQPを使って求められる。したがって、量子化パラメータQPが大きくなると、パラメータbeta、tcが大きくなる。量子化パラメータが大きいと量子化ノイズが多くなる傾向があることから、これらの値を持ってきて、Strongフィルタの判定に用いている。しかしながら、Strongフィルタの判定では、パラメータbeta、tcの値を割り算して小さくして判定に使っているため、水とか自然などのブロックノイズがでやすい画では、その閾値が少し小さい。
そこで、本技術においては、Strongフィルタにおいて、パラメータbeta、tcの値を大きくして、より大きな閾値で判定する。これにより、式(4)乃至式(6)が真になりやすくなり、Strongフィルタがかかる領域を増やすことができる。
また、イントラ予測(画面内予測)は、インター予測に比べて予測精度が低く、予測誤差(残差情報)が大きいので、ブロックノイズにつながる。Bs値は、ブロック境界に対する強度を示すパラメータであり、その予測誤差を考えて、イントラ予測の方がインター予測より大きくなるように設定されている。
すなわち、HEVC方式において、Bs値は、0、1、2をとり得る。0は、デブロッキングフィルタがかからない。1は、予測モードがイントラ予測ではない場合、2は、予測モードがイントラ予測の場合となっている。
このようなBs値をパラメータbeta、tcの値に乗算することで、イントラ予測の場合、インター予測の場合より、より大きな閾値で判定することが可能となる。その結果、イントラ予測の場合、インター予測の場合より、さらに、Strongフィルタがかかる領域を増やすことができる。
以上のように、Strongフィルタの判定の閾値にBs値を用いることで、式(4)乃至式(6)の右辺である閾値パラメータが大きくなり、大きい閾値で判定することになる。したがって、式(4)乃至式(6)が真になりやすくなり、Strongフィルタがかかる領域を増やすことができる。
なお、上記説明においては、Strongフィルタの判定の閾値を大きくするために、判定式の右辺の閾値パラメータにおいて、パラメータbetaやtcにBs値(の1次関数)を乗算する例を説明した。
ここで、Strongフィルタの判定の閾値を大きくする方法としては、Bs値の乗算に限定されず、例えば、上述したHEVC方式の式(1)乃至式(3)の右辺の閾値パラメータにおいて、シフト値を小さく変更して用いるようにしてもよい。
なお、その際、イントラ予測については、イントラではない予測よりも、シフト値がより小さく設定され、イントラではない予測(例えば、インター予測)については、イントラ予測よりも、シフト値がより大きく設定される。
すなわち、予測モードに応じて、判定のシフト値が変更して用いられる。この場合も、Strongフィルタの判定の閾値にBs値を用いるのと、同様の効果があげられる。すなわち、イントラ予測の場合、シフト値が小さく設定されるので、判定の閾値が大きくなる。したがって、イントラ予測の場合、Strongフィルタがかかりやすくなる。
上述したように、イントラ予測は、インター予測と比して、予測誤差が大きくなる傾向があり、この場合、ブロックノイズが目立ってしまうことが多い。このため、イントラ予測の場合にStrongフィルタが適用されると、より、ブロックノイズを抑制することができる。
なお、予測モードとは、イントラ予測を示すモードおよびインター予測を示すモードのことである。ただし、予測モードには、例えば、イントラ予測内におけるverticalモードやhorizontalモードなども含まれるようにしてもよい。
[Strongフィルタ判定の詳細な説明]
図6は、量子化パラメータQPとf1(Bs)=Bs+2の場合の式(4)の右辺の値との関係を表している。すなわち、Bs値の1次関数において、a=1,b=2の場合である。なお、以下、式(1)および式(4)の右辺の値を閾値Aと称する。
予測モードがイントラではない予測の場合、Bs値=1であるので、式(4)の右辺の閾値Aは、(3*beta)>>3となる。また、予測モードがイントラ予測の場合、Bs値=2であるので、式(4)の右辺の閾値Aは、(4*beta)>>3となる。
したがって、量子化パラメータQPに対してのHEVC(従来技術)の場合の式(1)の右辺の閾値A、本技術のイントラではない予測の場合の式(4)の右辺の閾値A、本技術のイントラ予測の場合の式(4)の右辺の閾値Aは、それぞれ、図6に示されるようになる。
例えば、量子化パラメータQPが51のとき、HEVCの場合の閾値Aは8であるが、本技術のイントラではない予測の場合の閾値Aは24であり、本技術のイントラ予測の場合の閾値Aは32である。
このように、HEVCの場合の閾値Aより、本技術のイントラではない予測の場合の閾値Aの方が大きい。また、本技術のイントラではない予測の場合の閾値Aより、さらに、本技術のイントラ予測の場合の閾値Aの方がさらに大きい。
図7は、図6の場合の図5のブロックPおよびQの画素値の例を示している。図7の例において、p3iおよびq3iがHEVC(従来技術)の場合のStrongフィルタがかかる範囲の画素値を表している。また、p´3iおよびq´3iが本技術の場合のStrongフィルタがかかる範囲の画素値を表している。
すなわち、HEVCの場合(p3i−p0iの値とq3i−q0iの値)より、p´3i−p0iの値とq´3i−q0iの値がある程度大きい。したがって、本技術の場合の判定式(式(4))において、HEVCの場合の判定式(式(1))では偽であったブロック境界に対して真とすることができる。
図8は、量子化パラメータQPとf2(Bs)=Bs+2の場合の式(5)の右辺の値との関係を表している。なお、以下、式(2)および式(5)の右辺の値を閾値Bと称する。
予測モードがイントラではない予測の場合、Bs値=1であるので、式(5)の右辺の閾値Bは、(3*beta)>>2となる。また、予測モードがイントラ予測の場合、Bs値=2であるので、式(5)の右辺の閾値Bは、(4*beta)>>2となる。
したがって、量子化パラメータQPに対してのHEVC(従来技術)の場合の式(2)の右辺の閾値B、本技術のイントラではない予測の場合の式(5)の右辺の閾値B、本技術のイントラ予測の式(5)の場合の右辺の閾値Bは、それぞれ、図8に示されるようになる。
例えば、量子化パラメータQPが51のとき、HEVCの場合の閾値Bは16であるが、本技術のイントラではない予測の場合の閾値Bは48であり、本技術のイントラ予測の場合の閾値Bは64である。
このように、HEVCの場合の閾値Bより、本技術のイントラではない予測の場合の閾値Bの方が大きい。また、本技術のイントラではない予測の場合の値より、さらに、本技術のイントラ予測の場合の閾値Bの方がさらに大きい。
図9は、図8の場合の図5のブロックPおよびQの画素値の例を示している。図9の例において、p2i、p1i、q2i、およびq1iがHEVC(従来技術)の場合のStrongフィルタがかかる範囲の画素値を表している。また、p´2i、p´1i、q´2i、およびq´1iが本技術の場合のStrongフィルタがかかる範囲の画素値を表している。
すなわち、HEVCの場合(p2i−p1iの値とp1i−p0iの値、q3i−q1iの値とq1i−q0iの値)より、p´2i−p´1iの値と、p´1i−p0iの値がある程度大きく、q´3i−q´1iの値と、q´1i−q0iの値がある程度大きい。したがって、本技術の場合の判定式(式(5))において、HEVCの場合の判定式(式(2))では偽であったブロック境界に対して真とすることができる。
上述した式(4)と式(5)は、ブロック内の画素値を判定しているが、式(6)は、ブロック境界の画素値を判定している。
図10は、量子化パラメータQPとf3(Bs)=Bs+2の場合の式(6)の右辺の値との関係を表している。なお、以下、式(3)および式(6)の右辺の値を閾値Cと称する。
予測モードがイントラではない予測の場合、Bs値=1であるので、式(6)の右辺の閾値Cは、(3*tc*5+1)>>1となる。また、予測モードがイントラ予測の場合、Bs値=2であるので、式(6)の右辺の閾値Cは、(4*tc*5+1)>>1となる。
したがって、量子化パラメータQPに対してのHEVC(従来技術)の場合の式(3)の右辺の閾値C、本技術のイントラではない予測の場合の式(6)の右辺の閾値C、本技術のイントラ予測の式(6)の場合の右辺の閾値Cは、それぞれ、図10に示されるようになる。
例えば、量子化パラメータQPが53のとき、HEVCのイントラではない予測の場合の閾値Cは50である。ただし、HEVCにおいては、イントラ予測の場合、tcのテーブル引きするQPの値を+2するため、図10には示されていないが、HEVCのイントラ予測の場合の閾値Cは60である。これに対し、本技術のイントラではない予測の場合の閾値Cは150であり、本技術のイントラ予測の場合の閾値Cは200である。
このように、HEVCの場合の閾値Cより、本技術のイントラではない予測の場合の閾値Cの方が大きい。また、本技術のイントラではない予測の場合の閾値Cより、さらに、本技術のイントラ予測の場合の閾値Cの方がさらに大きい。
なお、tcの値は、デブロッキングフィルタにおいて、strong/Weakフィルタ判定以外の部分(フィルタ処理)にも用いられており、本技術において、tcがBs値を乗算して用いられるのは、strong/Weakフィルタ判定のみである。
図11は、図10の場合の図5のブロックPおよびQの画素値の例を示している。図11の例において、p0iおよびq0iがHEVC(従来技術)の場合のStrongフィルタがかかる範囲の画素値を表している。また、p´0iおよびq´0iが本技術の場合のStrongフィルタがかかる範囲の画素値を表している。
すなわち、HEVCの場合(p0i−q0iの値)より、p´0i−q´0iの値がある程度大きい。したがって、本技術の場合の判定式(式(6))においては、HEVCの場合の判定式(式(3))では偽であったブロック境界に対して真とすることができる。
以上のように、HEVCの場合より、式(4)乃至式(6)が真になる可能性が高い。したがって、本技術によれば、HEVCの場合にはStrongフィルタがかけられなかったブロック境界、すなわち、ブロッキングノイズが目立っていた領域に対してStrongフィルタをかけることができるようになる。
[具体的な例]
次に、図12を参照して、HEVC(従来技術)と本技術の場合との具体例について説明する。
あるブロック境界のデブロッキングフィルタ前の画素値が、左から順に、120、121、121、119、147、144、142、140であるとする。図12の例において、画素値119と画素値147の間がブロック境界である。
例えば、量子化パラメータQPが37の場合、式(1)と式(4)の左辺の値は、
d=|120−119|+|147−140|=8となる。
ここで、量子化パラメータQPが37の場合、式(1)の右辺の閾値Aは、4であり、式(4)の右辺の閾値Aは、18であるので、HEVCの場合、式(1)は、偽となるが、本技術の場合、式(4)は、真となる。
同様に、量子化パラメータQPが37の場合、式(2)と式(5)の左辺の値は、
d=2*(|121−2*121+121|+|147−2*144+142|=6となる。
ここで、量子化パラメータQPが37の場合、式(2)の右辺の閾値Bは、9であり、式(5)の右辺の閾値Bは、36であるので、HEVCの場合、式(2)は、真となり、本技術の場合、式(5)は、真となる。
さらに、量子化パラメータQPが37の場合、式(3)と式(6)の左辺の値は、
d=|147−119|=38となる。
ここで、量子化パラメータQPが37の場合、式(3)の右辺の閾値Cは、10であり、式(6)の右辺の閾値Cは、40であるので、HEVCの場合、式(3)は、真となり、本技術の場合、式(6)は、真となる。
よって、HEVCの場合、このブロック境界には、Strongフィルタが施されないが、例えば、Weakフィルタが施される。これに対して、本技術の場合、このブロック境界にStrongフィルタが施される。
その結果、HEVCの場合のデブロッキング(Weak)フィルタ後の画素値は、左から順に120、121、124、126、140、141、142、140となり、ブロック境界の画素値は、126と140であり、ブロック間における画素値の差がまだかなりある。
これに対して、本技術の場合のデブロッキング(Strong)フィルタ後の画素値は、左から順に120、124、127、130、135、138、139、140となり、ブロック境界の画素値は、130と135であり、ブロック間における画素値の差があまりない。これにより、ブロックノイズを目立たなくさせることができる。
例えば、川の流れ、葉の揺れなど自然な動きは、動きが予測しにくく、イントラ予測が行われる傾向があるので、本技術は、そのような画像に特に効果がある。
[デブロッキングフィルタの構成例]
次に、図1の画像符号化装置におけるデブロッキングフィルタ31aおよび図3の画像復号装置におけるデブロッキングフィルタ31bの詳細について説明する。なお、図1の画像符号化装置におけるデブロッキングフィルタ31aおよび図3の画像復号装置におけるデブロッキングフィルタ31bは、構成および動作が基本的に同じであるので、以下、まとめてデブロッキングフィルタ31として説明する。
ただし、以下の点のみが、デブロッキングフィルタ31aと31bとで異なる。すなわち、デブロッキングフィルタ31aの場合、デブロッキングフィルタを行うか否かのON/OFF情報とパラメータbetaおよびtcの各オフセットが、図示せぬ操作部を介して入力される。これに対して、デブロッキングフィルタ31bの場合、デブロッキングフィルタを行うか否かのON/OFF情報とパラメータbetaおよびtcの各オフセットが、画像符号化装置11において符号化されたものが受け取られて、可逆復号部62で復号されて入力される。
図13は、デブロッキングフィルタの構成例を示すブロック図である。
図13の例において、デブロッキングフィルタ31は、画像メモリ101、ブロック境界判定部102、フィルタ強度判定部103、フィルタ演算部104、係数メモリ105、および制御部106を含むように構成されている。
画像メモリ101は、ラインメモリで構成されており、加算部30から供給された画像データを記憶する。画像メモリ101は、記憶している画像データを読み出して、ブロック境界判定部102、フィルタ強度判定部103、およびフィルタ演算部104に供給する。
なお、ライン境界ではないところでは、画像メモリ101に画像データは記憶されず、加算部30から供給された画像データが各部に供給されて、それが処理される場合もある。しかしながら、図13の例においては、説明の便宜上、画像メモリ101を経由した画像データが処理されるとして説明する。
ブロック境界判定部102は、制御部106の制御のもと、8ライン毎に、境界を導出し、判定に用いるパラメータを算出したりして、4ライン毎に、ブロック間の境界判定を行う。すなわち、ブロック境界判定部102は、画像メモリ101から読み出された画像データを用いて、TUおよびPUの境界を導出し、Bs値を導出する。さらに、ブロック境界判定部102は、処理対象の境界に隣接する2つの領域の量子化パラメータQPの平均を求めて、平均QP(量子化パラメータ)を算出し、算出した平均QPに基づいて、パラメータtcおよびbetaを算出する。
そして、ブロック境界判定部102は、画像メモリ101からの、ブロックの境界を挟んで隣接する2つのブロックの画像データと、算出したパラメータを用いて、4ライン毎に、フィルタを行うかどうかを判定する。ブロック境界判定部102は、ブロック境界判定部102は、境界判定結果とともに、算出したパラメータを、フィルタ強度判定部103に供給する。
フィルタ強度判定部103は、制御部106の制御のもと、4ライン毎に、フィルタ強度の判定を行う。すなわち、フィルタ強度判定部103は、ブロック境界判定部102によりフィルタを行うと判定された場合、StrongフィルタまたはWeakフィルタの何れの強度でフィルタ処理を行うか判定して、判定結果をフィルタ演算部104に出力する。その際、フィルタ強度判定部103は、Strongフィルタの判定式に、Bs値を用いる。
フィルタ演算部104は、制御部106の制御のもと、画像メモリ101に記憶されている画像データ、および係数メモリ105から読み出したフィルタ係数を用いて、4ライン毎に、フィルタ強度判定部103で判定されたフィルタ強度でフィルタ演算を行う。フィルタ演算部104は、フィルタ処理がなされた画像データを後段のフレームメモリ32に出力する。
係数メモリ105は、デブロッキングフィルタ処理のフィルタ演算に用いるフィルタ係数を記憶している。係数メモリ105は、記憶しているフィルタ係数を読み出し、フィルタ演算部104に供給する。
制御部106は、図示せぬ操作部(復号側の場合、可逆復号部62)から情報(デブロッキングフィルタのON/OFF情報、パラメータbeta、tcの各オフセット値、およびクリップ処理にかかるパラメータなど)を入力する。また、制御部106には、予測モード情報や量子化パラメータなどデブロッキングフィルタに必要なパラメータも供給される。
例えば、制御部106は、入力される情報を、対応する部に供給したり、入力されるON/OFF情報に基づいて、デブロッキングフィルタ31の各部を制御する。
制御部106は、例えば、画像メモリ101を制御して、ブロック内の下端側の所定ライン数分の画像データを記憶させ、記憶されている画像データの読み出しを行う。また、制御部106は、フィルタ強度判定部103を制御し、Strongフィルタの判定にBs値を用いさせる。あるいは、制御部106は、フィルタ強度判定部103を制御し、予測モードに応じて、シフト値の大小を変更させる。
[デブロッキングフィルタ処理部の動作]
次に、図14のフローチャートを参照して、図13のデブロッキングフィルタ31のデブロッキング処理について説明する。なお、この処理は、図2のステップS22または図4のステップS58の処理である。
例えば、図示せぬ操作部(復号側の場合、可逆復号部62)を介してON/OFF情報、betaオフセットの値、およびtcオフセットの値、クリップ処理にかかるパラメータが制御部106に入力される。また、制御部106には、予測モード情報や量子化パラメータなどデブロッキングフィルタに必要なパラメータも供給される。
ステップS101において、制御部106は、フィルタのオフセット(betaオフセットおよびtcオフセット)を設定し、設定したオフセットの情報を、フィルタ強度判定部103に供給する。
ステップS102において、制御部106は、ON/OFF情報に基づいて、デブロッキングフィルタが利用不可であるか否かを判定する。ステップS102において、デブロッキングフィルタが利用不可であると判定した場合、デブロッキングフィルタ処理は終了される。
ステップS102において、デブロッキングフィルタが利用不可ではないと判定された場合、制御部106は、ブロック境界判定部102、フィルタ強度判定部103、およびフィルタ演算部104に、その旨を通知し、処理は、ステップS103に進む。その際、各部に必要なパラメータなども制御部106から供給される。
ステップS103において、ブロック境界判定部102は、8ライン単位で、TUとPUの境界を導出する。ステップS104において、ブロック境界判定部102は、ステップS103で導出したTUとPUの境界などの情報や、制御部106からの予測モード情報などを基に、Bs値の導出を行う。
ステップS105において、ブロック境界判定部102、フィルタ強度判定部103、およびフィルタ演算部104は、輝度境界のフィルタ処理を行う。この輝度境界のフィルタ処理は、次の図15を参照して後述するが、ステップS105の処理により、輝度信号に対して、輝度境界のフィルタが施される。
ステップS106において、ブロック境界判定部102、フィルタ強度判定部103、およびフィルタ演算部104は、色差境界のフィルタ処理を行う。ステップS106の処理により、色差信号に対して、色差境界のフィルタが施される。
ステップS107において、制御部106は、全部の境界を処理したか否かを判定する。ステップS107において、全部の境界を処理していないと判定された場合、処理は、ステップS105に戻り、それ以降の処理が繰り返される。ステップS107において、全部の境界を処理したと判定された場合、処理は、ステップS108に進む。
ステップS108において、制御部106は、全部のCUを処理したか否かを判定する。ステップS108において、まだ全部のCUを処理していないと判定された場合、処理は、ステップS103に戻り、それ以降の処理が繰り返される。
ステップS108において、全部のCUを処理したと判定された場合、デブロッキングフィルタ処理は終了される。
[輝度境界のフィルタ処理の例]
次に、図15のフローチャートを参照して、図14のステップS105における輝度境界のフィルタ処理について説明する。
ブロック境界判定部102は、ステップS131において、8ライン単位で、Bs値が0より大きいか否かを判定する。ステップS131において、Bs値が0より大きくはないと判定された場合、輝度境界のフィルタ処理は終了する。すなわち、この場合の輝度境界には、フィルタ演算部104によるフィルタ処理は施されず、フィルタ前の画素値がそのまま出力される。
ステップS131において、Bs値が0より大きいと判定された場合、処理は、ステップS132に進む。ステップS132において、ブロック境界判定部102は、8ライン単位で、画像メモリ101からの画素値を用いて、処理対象の境界に隣接する2つの領域の量子化パラメータQPの平均を求めて、平均QP(量子化パラメータ)を算出する。このときの量子化パラメータQPは、制御部106から供給される。
ステップS133において、ブロック境界判定部102は、8ライン単位で、ステップS132により算出された平均QPに基づいて、パラメータtcおよびbetaを算出する。
ステップS134において、ブロック境界判定部102は、4ライン単位のフィルタのon/off判定を行う。すなわち、ブロック境界判定部102は、算出したパラメータbetaやtcなどを用いて、4ライン単位のフィルタのon/off判定を行う。
ステップS134におけるon/off判定結果は、境界判定結果として、算出したパラメータ(beta、tc、Bs値)と一緒に、フィルタ強度判定部103に供給される。
ステップS135において、フィルタ強度判定部103は、制御部106の制御のもと、各パラメータを用いて、Strongフィルタの判定の閾値を設定する。ステップS135においては、例えば、Bs値を用いる場合、制御部106からのBs値の1次関数に応じて、式(4)乃至式(6)における判定の閾値が設定される。また、シフト値を変更する場合、制御部106からの予測モードに応じて式(1)乃至式(3)におけるシフト値が変更されて、判定の閾値が設定される。
ステップS136において、フィルタ強度判定部103は、閾値が設定された式(4)乃至式(6)を用いて、4ライン単位でStrongフィルタを適用するか否かを判定する。ステップS136において、式(4)乃至式(6)が全て真であり、Strongフィルタを適用すると判定された場合、処理は、ステップS137に進む。
ステップS134におけるon/off判定結果およびステップS137におけるStrongフィルタ判定結果は、フィルタ演算部104に供給される。なお、このとき、パラメータtcもフィルタ演算部104に供給される。
ステップS137において、フィルタ演算部104は、フィルタ強度判定部103からの判定結果に基づいて、処理対象の4ラインに対して、Strongフィルタ処理を行う。フィルタ演算部104は、フィルタ処理後の画素値を、後段に出力する。
ステップS136において、Strongフィルタを適用すると判定された場合、処理は、ステップS138に進む。ステップS138において、フィルタ強度判定部103は、4ライン単位でWeakフィルタを適用するか否かを判定する。ステップS138において、Weakフィルタを適用すると判定された場合、処理は、ステップS139に進む。
ステップS134におけるon/off判定結果およびステップS138におけるWeakフィルタ判定結果は、フィルタ演算部104に供給される。なお、このとき、パラメータtcもフィルタ演算部104に供給される。
ステップS139において、フィルタ演算部104は、フィルタ強度判定部103からの判定結果に基づいて、処理対象の4ラインに対して、Weakフィルタを行う。フィルタ演算部104は、フィルタ処理後の画素値を、後段に出力する。
ステップS138においてWeakフィルタを適用しないと判定された場合、処理は、ステップS140に進む。この場合、フィルタ演算部104は、フィルタ強度判定部103からの判定結果に基づいて、処理対象の4ラインに対して、処理を施さず、そのまま、フィルタ処理後の画素値を、後段に出力する。
ステップS140において、フィルタ演算部104は、8ラインの処理が完了したか否かを判定し、8ラインの処理が完了したと判定した場合、輝度信号のデブロッキングを終了する。ステップS140において、8ラインの処理がまだ完了していないと判定された場合、処理は、ステップS134に戻り、それ以降の処理が繰り返される。
以上のように、Bs値を用いて、あるいは、シフト値を下げて、Strongフィルタの判定を行うようにしたので、判定の閾値が大きくなり、Strongフィルタのかかる境界が多くなる。これにより、デブロッキング処理において、適切にStrongフィルタがかかるようにすることができる。
以上においては、符号化方式としてHEVC方式をベースに用いるようにした。ただし、本開示はこれに限らず、インループフィルタとして、少なくともデブロッキングフィルタを含む、その他の符号化方式/復号方式を適用することができる。
なお、本開示は、例えば、HEVC方式等の様に、離散コサイン変換等の直交変換と動き補償によって圧縮された画像情報(ビットストリーム)を、衛星放送、ケーブルテレビジョン、インターネット、または携帯電話機などのネットワークメディアを介して受信する際に用いられる画像符号化装置および画像復号装置に適用することができる。また、本開示は、光、磁気ディスク、およびフラッシュメモリのような記憶メディア上で処理する際に用いられる画像符号化装置および画像復号装置に適用することができる。
<3.第2の実施の形態>
[多視点画像符号化・多視点画像復号への適用]
上述した一連の処理は、多視点画像符号化・多視点画像復号に適用することができる。図16は、多視点画像符号化方式の一例を示す。
図16に示されるように、多視点画像は、複数の視点の画像を含み、その複数の視点のうちの所定の1つの視点の画像が、ベースビューの画像に指定されている。ベースビューの画像以外の各視点の画像は、ノンベースビューの画像として扱われる。
図16のような多視点画像符号化を行う場合、各ビュー(同一ビュー)において、デブロッキングフィルタのパラメータを設定し、デブロッキングフィルタの強度パラメータを用いてストロングフィルタを適用するかを判定することができる。また、各ビュー(異なるビュー)において、他のビューで設定されたデブロッキングフィルタのパラメータ、または判定されたストロングフィルタの判定結果を共有することもできる。
この場合、ベースビューにおいて設定されたデブロッキングフィルタのパラメータ、または判定されたストロングフィルタの適用の可否が、少なくとも1つのノンベースビューで用いられる。あるいは、例えば、ノンベースビュー(view_id=i)において設定されたデブロッキングフィルタのパラメータ、または判定されたストロングフィルタの適用の可否が、ベースビューおよびノンベースビュー(view_id=j)の少なくともどちらか一方で用いられる。
これにより、デブロッキング処理において、適切にStrongフィルタがかかるようにすることができる。その結果、ブロックノイズを抑制することができる。
[多視点画像符号化装置]
図17は、上述した多視点画像符号化を行う多視点画像符号化装置を示す図である。図17に示されるように、多視点画像符号化装置600は、符号化部601、符号化部602、および多重化部603を有する。
符号化部601は、ベースビュー画像を符号化し、ベースビュー画像符号化ストリームを生成する。符号化部602は、ノンベースビュー画像を符号化し、ノンベースビュー画像符号化ストリームを生成する。多重化部603は、符号化部601において生成されたベースビュー画像符号化ストリームと、符号化部602において生成されたノンベースビュー画像符号化ストリームとを多重化し、多視点画像符号化ストリームを生成する。
この多視点画像符号化装置600の符号化部601および符号化部602に対して、画像符号化装置11(図1)を適用することができる。この場合、多視点画像符号化装置600は、符号化部601が設定したデブロッキングフィルタのパラメータと、符号化部602が設定したデブロッキングフィルタのパラメータを設定して伝送させる。
なお、上述したように符号化部601が設定したデブロッキングフィルタのパラメータを、符号化部601および符号化部602で共有して用いるように設定して伝送させるようにしてもよい。逆に、符号化部602が設定したデブロッキングフィルタのパラメータを、符号化部601および符号化部602で共有して用いるように設定して伝送させるようにしてもよい。
[多視点画像復号装置]
図18は、上述した多視点画像復号を行う多視点画像復号装置を示す図である。図18に示されるように、多視点画像復号装置610は、逆多重化部611、復号部612、および復号部613を有する。
逆多重化部611は、ベースビュー画像符号化ストリームとノンベースビュー画像符号化ストリームとが多重化された多視点画像符号化ストリームを逆多重化し、ベースビュー画像符号化ストリームと、ノンベースビュー画像符号化ストリームとを抽出する。復号部612は、逆多重化部611により抽出されたベースビュー画像符号化ストリームを復号し、ベースビュー画像を得る。復号部613は、逆多重化部611により抽出されたノンベースビュー画像符号化ストリームを復号し、ノンベースビュー画像を得る。
この多視点画像復号装置610の復号部612および復号部613に対して、多視点画像復号装置51(図3)を適用することができる。この場合、多視点画像復号装置610は、符号化部601が設定し、復号部612が復号したデブロッキングフィルタのパラメータと、符号化部602が設定し、復号部613が復号したデブロッキングフィルタのパラメータを用いて処理を行う。
なお、上述したように符号化部601(または、符号化部602)が設定したデブロッキングフィルタのパラメータを、符号化部601および符号化部602で共有して用いるように設定して伝送されている場合がある。この場合、多視点画像復号装置610においては、符号化部601(または、符号化部602)が設定し、復号部612(または復号部613)が復号したデブロッキングフィルタのパラメータを用いて処理が行われる。
<4.第3の実施の形態>
[階層画像符号化・階層画像復号への適用]
上述した一連の処理は、階層画像符号化・階層画像復号に適用することができる。図19は、多視点画像符号化方式の一例を示す。
図19に示されるように、階層画像は、複数の階層(解像度)の画像を含み、その複数の解像度のうちの所定の1つの階層の画像が、ベースレイヤの画像に指定されている。ベースレイヤの画像以外の各階層の画像は、ノンベースレイヤの画像として扱われる。
図19のような階層画像符号化(空間スケーラビリティ)を行う場合、デブロッキングフィルタのパラメータを設定し、デブロッキングフィルタの強度パラメータを用いてストロングフィルタを適用するかを判定することができる。また、各レイヤ(異なるレイヤ)において、他のレイヤで設定されたデブロッキングフィルタのパラメータ、または判定されたストロングフィルタの判定結果を共有することができる。
この場合、ベースレイヤにおいて設定されたデブロッキングフィルタのパラメータ、または判定されたストロングフィルタの適用の可否が、少なくとも1つのノンベースレイヤで用いられる。あるいは、例えば、ノンベースレイヤ(layer _id=i)において設定されたデブロッキングフィルタのパラメータ、または判定されたストロングフィルタの適用の可否が、ベースレイヤおよびノンベースレイヤ(layer_id=j)の少なくともどちらか一方で用いられる。
これにより、デブロッキング処理において、適切にStrongフィルタがかかるようにすることができる。その結果、ブロックノイズを抑制することができる。
[階層画像符号化装置]
図20は、上述した階層画像符号化を行う階層画像符号化装置を示す図である。図20に示されるように、階層画像符号化装置620は、符号化部621、符号化部622、および多重化部623を有する。
符号化部621は、ベースレイヤ画像を符号化し、ベースレイヤ画像符号化ストリームを生成する。符号化部622は、ノンベースレイヤ画像を符号化し、ノンベースレイヤ画像符号化ストリームを生成する。多重化部623は、符号化部621において生成されたベースレイヤ画像符号化ストリームと、符号化部622において生成されたノンベースレイヤ画像符号化ストリームとを多重化し、階層画像符号化ストリームを生成する。
この階層画像符号化装置620の符号化部621および符号化部622に対して、画像符号化装置11(図1)を適用することができる。この場合、階層画像符号化装置620は、符号化部621が設定したデブロッキングフィルタのパラメータと、符号化部602が設定したデブロッキングフィルタのパラメータと設定して伝送させる。
なお、上述したように符号化部621が設定したデブロッキングフィルタのパラメータを、符号化部621および符号化部622で共有して用いるように設定して伝送させるようにしてもよい。逆に、符号化部622が設定したデブロッキングフィルタのパラメータを、符号化部621および符号化部622で共有して用いるように設定して伝送させるようにしてもよい。
[階層画像復号装置]
図21は、上述した階層画像復号を行う階層画像復号装置を示す図である。図21に示されるように、階層画像復号装置630は、逆多重化部631、復号部632、および復号部633を有する。
逆多重化部631は、ベースレイヤ画像符号化ストリームとノンベースレイヤ画像符号化ストリームとが多重化された階層画像符号化ストリームを逆多重化し、ベースレイヤ画像符号化ストリームと、ノンベースレイヤ画像符号化ストリームとを抽出する。復号部632は、逆多重化部631により抽出されたベースレイヤ画像符号化ストリームを復号し、ベースレイヤ画像を得る。復号部633は、逆多重化部631により抽出されたノンベースレイヤ画像符号化ストリームを復号し、ノンベースレイヤ画像を得る。
この階層画像復号装置630の復号部632および復号部633に対して、多視点画像復号装置51(図3)を適用することができる。この場合、階層画像復号装置630は、符号化部621が設定し、復号部632が復号したデブロッキングフィルタのパラメータと、符号化部622が設定し、復号部633が復号したデブロッキングフィルタのパラメータを用いて処理を行う。
なお、上述したように符号化部621(または、符号化部622)が設定したデブロッキングフィルタのパラメータを、符号化部621および符号化部622で共有して用いるように設定して伝送されている場合がある。この場合、階層画像復号装置630においては、符号化部621(または、符号化部622)が設定し、復号部632(または、復号部633)が復号したデブロッキングフィルタのパラメータを用いて処理が行われる。
<5.第4の実施の形態>
[コンピュータの構成例]
上述した一連の処理は、ハードウエアにより実行することもできるし、ソフトウエアにより実行することもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどが含まれる。
図22は、上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。
コンピュータ800において、CPU(Central Processing Unit)801,ROM(Read Only Memory)802,RAM(Random Access Memory)803は、バス804により相互に接続されている。
バス804には、さらに、入出力インタフェース805が接続されている。入出力インタフェース805には、入力部806、出力部807、記憶部808、通信部809、及びドライブ810が接続されている。
入力部806は、キーボード、マウス、マイクロホンなどよりなる。出力部807は、ディスプレイ、スピーカなどよりなる。記憶部808は、ハードディスクや不揮発性のメモリなどよりなる。通信部809は、ネットワークインタフェースなどよりなる。ドライブ810は、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリなどのリムーバブル記録媒体811を駆動する。
以上のように構成されるコンピュータでは、CPU801が、例えば、記憶部808に記憶されているプログラムを、入出力インタフェース805及びバス804を介して、RAM803にロードして実行することにより、上述した一連の処理が行われる。
コンピュータ800(CPU801)が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブル記録媒体811に記録して提供することができる。また、プログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することができる。
コンピュータでは、プログラムは、リムーバブル記録媒体811をドライブ810に装着することにより、入出力インタフェース805を介して、記憶部808にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部809で受信し、記憶部808にインストールすることができる。その他、プログラムは、ROM802や記憶部808に、あらかじめインストールしておくことができる。
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
また、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
また、本明細書において、システムとは、複数のデバイス(装置)により構成される装置全体を表すものである。
また、以上において、1つの装置(または処理部)として説明した構成を分割し、複数の装置(または処理部)として構成するようにしてもよい。逆に、以上において複数の装置(または処理部)として説明した構成をまとめて1つの装置(または処理部)として構成されるようにしてもよい。また、各装置(または各処理部)の構成に上述した以外の構成を付加するようにしてももちろんよい。さらに、システム全体としての構成や動作が実質的に同じであれば、ある装置(または処理部)の構成の一部を他の装置(または他の処理部)の構成に含めるようにしてもよい。つまり、本技術は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
上述した実施形態に係る画像符号化装置及び画像復号装置は、衛星放送、ケーブルTVなどの有線放送、インターネット上での配信、及びセルラー通信による端末への配信などにおける送信機若しくは受信機、光ディスク、磁気ディスク及びフラッシュメモリなどの媒体に画像を記録する記録装置、又は、これら記憶媒体から画像を再生する再生装置などの様々な電子機器に応用され得る。以下、4つの応用例について説明する。
<6.応用例>
[第1の応用例:テレビジョン受像機]
図23は、上述した実施形態を適用したテレビジョン装置の概略的な構成の一例を示している。テレビジョン装置900は、アンテナ901、チューナ902、デマルチプレクサ903、デコーダ904、映像信号処理部905、表示部906、音声信号処理部907、スピーカ908、外部インタフェース909、制御部910、ユーザインタフェース911、及びバス912を備える。
チューナ902は、アンテナ901を介して受信される放送信号から所望のチャンネルの信号を抽出し、抽出した信号を復調する。そして、チューナ902は、復調により得られた符号化ビットストリームをデマルチプレクサ903へ出力する。即ち、チューナ902は、画像が符号化されている符号化ストリームを受信する、テレビジョン装置900における伝送手段としての役割を有する。
デマルチプレクサ903は、符号化ビットストリームから視聴対象の番組の映像ストリーム及び音声ストリームを分離し、分離した各ストリームをデコーダ904へ出力する。また、デマルチプレクサ903は、符号化ビットストリームからEPG(Electronic Program Guide)などの補助的なデータを抽出し、抽出したデータを制御部910に供給する。なお、デマルチプレクサ903は、符号化ビットストリームがスクランブルされている場合には、デスクランブルを行ってもよい。
デコーダ904は、デマルチプレクサ903から入力される映像ストリーム及び音声ストリームを復号する。そして、デコーダ904は、復号処理により生成される映像データを映像信号処理部905へ出力する。また、デコーダ904は、復号処理により生成される音声データを音声信号処理部907へ出力する。
映像信号処理部905は、デコーダ904から入力される映像データを再生し、表示部906に映像を表示させる。また、映像信号処理部905は、ネットワークを介して供給されるアプリケーション画面を表示部906に表示させてもよい。また、映像信号処理部905は、映像データについて、設定に応じて、例えばノイズ除去(抑制)などの追加的な処理を行ってもよい。さらに、映像信号処理部905は、例えばメニュー、ボタン又はカーソルなどのGUI(Graphical User Interface)の画像を生成し、生成した画像を出力画像に重畳してもよい。
表示部906は、映像信号処理部905から供給される駆動信号により駆動され、表示デバイス(例えば、液晶ディスプレイ、プラズマディスプレイ又はOELD(Organic ElectroLuminescence Display)(有機ELディスプレイ)など)の映像面上に映像又は画像を表示する。
音声信号処理部907は、デコーダ904から入力される音声データについてD/A変換及び増幅などの再生処理を行い、スピーカ908から音声を出力させる。また、音声信号処理部907は、音声データについてノイズ除去(抑制)などの追加的な処理を行ってもよい。
外部インタフェース909は、テレビジョン装置900と外部機器又はネットワークとを接続するためのインタフェースである。例えば、外部インタフェース909を介して受信される映像ストリーム又は音声ストリームが、デコーダ904により復号されてもよい。即ち、外部インタフェース909もまた、画像が符号化されている符号化ストリームを受信する、テレビジョン装置900における伝送手段としての役割を有する。
制御部910は、CPUなどのプロセッサ、並びにRAM及びROMなどのメモリを有する。メモリは、CPUにより実行されるプログラム、プログラムデータ、EPGデータ、及びネットワークを介して取得されるデータなどを記憶する。メモリにより記憶されるプログラムは、例えば、テレビジョン装置900の起動時にCPUにより読み込まれ、実行される。CPUは、プログラムを実行することにより、例えばユーザインタフェース911から入力される操作信号に応じて、テレビジョン装置900の動作を制御する。
ユーザインタフェース911は、制御部910と接続される。ユーザインタフェース911は、例えば、ユーザがテレビジョン装置900を操作するためのボタン及びスイッチ、並びに遠隔制御信号の受信部などを有する。ユーザインタフェース911は、これら構成要素を介してユーザによる操作を検出して操作信号を生成し、生成した操作信号を制御部910へ出力する。
バス912は、チューナ902、デマルチプレクサ903、デコーダ904、映像信号処理部905、音声信号処理部907、外部インタフェース909及び制御部910を相互に接続する。
このように構成されたテレビジョン装置900において、デコーダ904は、上述した実施形態に係る画像復号装置の機能を有する。それにより、テレビジョン装置900での画像の復号に際して、ブロックノイズを抑制することができる。
[第2の応用例:携帯電話機]
図24は、上述した実施形態を適用した携帯電話機の概略的な構成の一例を示している。携帯電話機920は、アンテナ921、通信部922、音声コーデック923、スピーカ924、マイクロホン925、カメラ部926、画像処理部927、多重分離部928、記録再生部929、表示部930、制御部931、操作部932、及びバス933を備える。
アンテナ921は、通信部922に接続される。スピーカ924及びマイクロホン925は、音声コーデック923に接続される。操作部932は、制御部931に接続される。バス933は、通信部922、音声コーデック923、カメラ部926、画像処理部927、多重分離部928、記録再生部929、表示部930、及び制御部931を相互に接続する。
携帯電話機920は、音声通話モード、データ通信モード、撮影モード及びテレビ電話モードを含む様々な動作モードで、音声信号の送受信、電子メール又は画像データの送受信、画像の撮像、及びデータの記録などの動作を行う。
音声通話モードにおいて、マイクロホン925により生成されるアナログ音声信号は、音声コーデック923に供給される。音声コーデック923は、アナログ音声信号を音声データへ変換し、変換された音声データをA/D変換し圧縮する。そして、音声コーデック923は、圧縮後の音声データを通信部922へ出力する。通信部922は、音声データを符号化及び変調し、送信信号を生成する。そして、通信部922は、生成した送信信号を、アンテナ921を介して基地局(図示せず)へ送信する。また、通信部922は、アンテナ921を介して受信される無線信号を増幅し及び周波数変換し、受信信号を取得する。そして、通信部922は、受信信号を復調及び復号して音声データを生成し、生成した音声データを音声コーデック923へ出力する。音声コーデック923は、音声データを伸張し及びD/A変換し、アナログ音声信号を生成する。そして、音声コーデック923は、生成した音声信号をスピーカ924に供給して音声を出力させる。
また、データ通信モードにおいて、例えば、制御部931は、操作部932を介するユーザによる操作に応じて、電子メールを構成する文字データを生成する。また、制御部931は、文字を表示部930に表示させる。また、制御部931は、操作部932を介するユーザからの送信指示に応じて電子メールデータを生成し、生成した電子メールデータを通信部922へ出力する。通信部922は、電子メールデータを符号化及び変調し、送信信号を生成する。そして、通信部922は、生成した送信信号を、アンテナ921を介して基地局(図示せず)へ送信する。また、通信部922は、アンテナ921を介して受信される無線信号を増幅し及び周波数変換し、受信信号を取得する。そして、通信部922は、受信信号を復調及び復号して電子メールデータを復元し、復元した電子メールデータを制御部931へ出力する。制御部931は、表示部930に電子メールの内容を表示させると共に、電子メールデータを記録再生部929の記憶媒体に記憶させる。
記録再生部929は、読み書き可能な任意の記憶媒体を有する。例えば、記憶媒体は、RAM又はフラッシュメモリなどの内蔵型の記憶媒体であってもよく、ハードディスク、磁気ディスク、光磁気ディスク、光ディスク、USB(Universal Serial Bus)メモリ、又はメモリカードなどの外部装着型の記憶媒体であってもよい。
また、撮影モードにおいて、例えば、カメラ部926は、被写体を撮像して画像データを生成し、生成した画像データを画像処理部927へ出力する。画像処理部927は、カメラ部926から入力される画像データを符号化し、符号化ストリームを記憶再生部929の記憶媒体に記憶させる。
また、テレビ電話モードにおいて、例えば、多重分離部928は、画像処理部927により符号化された映像ストリームと、音声コーデック923から入力される音声ストリームとを多重化し、多重化したストリームを通信部922へ出力する。通信部922は、ストリームを符号化及び変調し、送信信号を生成する。そして、通信部922は、生成した送信信号を、アンテナ921を介して基地局(図示せず)へ送信する。また、通信部922は、アンテナ921を介して受信される無線信号を増幅し及び周波数変換し、受信信号を取得する。これら送信信号及び受信信号には、符号化ビットストリームが含まれ得る。そして、通信部922は、受信信号を復調及び復号してストリームを復元し、復元したストリームを多重分離部928へ出力する。多重分離部928は、入力されるストリームから映像ストリーム及び音声ストリームを分離し、映像ストリームを画像処理部927、音声ストリームを音声コーデック923へ出力する。画像処理部927は、映像ストリームを復号し、映像データを生成する。映像データは、表示部930に供給され、表示部930により一連の画像が表示される。音声コーデック923は、音声ストリームを伸張し及びD/A変換し、アナログ音声信号を生成する。そして、音声コーデック923は、生成した音声信号をスピーカ924に供給して音声を出力させる。
このように構成された携帯電話機920において、画像処理部927は、上述した実施形態に係る画像符号化装置及び画像復号装置の機能を有する。それにより、携帯電話機920での画像の符号化及び復号に際して、ブロックノイズを抑制することができる。
[第3の応用例:記録再生装置]
図25は、上述した実施形態を適用した記録再生装置の概略的な構成の一例を示している。記録再生装置940は、例えば、受信した放送番組の音声データ及び映像データを符号化して記録媒体に記録する。また、記録再生装置940は、例えば、他の装置から取得される音声データ及び映像データを符号化して記録媒体に記録してもよい。また、記録再生装置940は、例えば、ユーザの指示に応じて、記録媒体に記録されているデータをモニタ及びスピーカ上で再生する。このとき、記録再生装置940は、音声データ及び映像データを復号する。
記録再生装置940は、チューナ941、外部インタフェース942、エンコーダ943、HDD(Hard Disk Drive)944、ディスクドライブ945、セレクタ946、デコーダ947、OSD(On-Screen Display)948、制御部949、及びユーザインタフェース950を備える。
チューナ941は、アンテナ(図示せず)を介して受信される放送信号から所望のチャンネルの信号を抽出し、抽出した信号を復調する。そして、チューナ941は、復調により得られた符号化ビットストリームをセレクタ946へ出力する。即ち、チューナ941は、記録再生装置940における伝送手段としての役割を有する。
外部インタフェース942は、記録再生装置940と外部機器又はネットワークとを接続するためのインタフェースである。外部インタフェース942は、例えば、IEEE1394インタフェース、ネットワークインタフェース、USBインタフェース、又はフラッシュメモリインタフェースなどであってよい。例えば、外部インタフェース942を介して受信される映像データ及び音声データは、エンコーダ943へ入力される。即ち、外部インタフェース942は、記録再生装置940における伝送手段としての役割を有する。
エンコーダ943は、外部インタフェース942から入力される映像データ及び音声データが符号化されていない場合に、映像データ及び音声データを符号化する。そして、エンコーダ943は、符号化ビットストリームをセレクタ946へ出力する。
HDD944は、映像及び音声などのコンテンツデータが圧縮された符号化ビットストリーム、各種プログラムおよびその他のデータを内部のハードディスクに記録する。また、HDD944は、映像及び音声の再生時に、これらデータをハードディスクから読み出す。
ディスクドライブ945は、装着されている記録媒体へのデータの記録及び読み出しを行う。ディスクドライブ945に装着される記録媒体は、例えばDVDディスク(DVD-Video、DVD-RAM、DVD-R、DVD-RW、DVD+R、DVD+RW等)又はBlu-ray(登録商標)ディスクなどであってよい。
セレクタ946は、映像及び音声の記録時には、チューナ941又はエンコーダ943から入力される符号化ビットストリームを選択し、選択した符号化ビットストリームをHDD944又はディスクドライブ945へ出力する。また、セレクタ946は、映像及び音声の再生時には、HDD944又はディスクドライブ945から入力される符号化ビットストリームをデコーダ947へ出力する。
デコーダ947は、符号化ビットストリームを復号し、映像データ及び音声データを生成する。そして、デコーダ947は、生成した映像データをOSD948へ出力する。また、デコーダ904は、生成した音声データを外部のスピーカへ出力する。
OSD948は、デコーダ947から入力される映像データを再生し、映像を表示する。また、OSD948は、表示する映像に、例えばメニュー、ボタン又はカーソルなどのGUIの画像を重畳してもよい。
制御部949は、CPUなどのプロセッサ、並びにRAM及びROMなどのメモリを有する。メモリは、CPUにより実行されるプログラム、及びプログラムデータなどを記憶する。メモリにより記憶されるプログラムは、例えば、記録再生装置940の起動時にCPUにより読み込まれ、実行される。CPUは、プログラムを実行することにより、例えばユーザインタフェース950から入力される操作信号に応じて、記録再生装置940の動作を制御する。
ユーザインタフェース950は、制御部949と接続される。ユーザインタフェース950は、例えば、ユーザが記録再生装置940を操作するためのボタン及びスイッチ、並びに遠隔制御信号の受信部などを有する。ユーザインタフェース950は、これら構成要素を介してユーザによる操作を検出して操作信号を生成し、生成した操作信号を制御部949へ出力する。
このように構成された記録再生装置940において、エンコーダ943は、上述した実施形態に係る画像符号化装置の機能を有する。また、デコーダ947は、上述した実施形態に係る画像復号装置の機能を有する。それにより、記録再生装置940での画像の符号化及び復号に際して、ブロックノイズを抑制することができる。
[第4の応用例:撮像装置]
図26は、上述した実施形態を適用した撮像装置の概略的な構成の一例を示している。撮像装置960は、被写体を撮像して画像を生成し、画像データを符号化して記録媒体に記録する。
撮像装置960は、光学ブロック961、撮像部962、信号処理部963、画像処理部964、表示部965、外部インタフェース966、メモリ967、メディアドライブ968、OSD969、制御部970、ユーザインタフェース971、及びバス972を備える。
光学ブロック961は、撮像部962に接続される。撮像部962は、信号処理部963に接続される。表示部965は、画像処理部964に接続される。ユーザインタフェース971は、制御部970に接続される。バス972は、画像処理部964、外部インタフェース966、メモリ967、メディアドライブ968、OSD969、及び制御部970を相互に接続する。
光学ブロック961は、フォーカスレンズ及び絞り機構などを有する。光学ブロック961は、被写体の光学像を撮像部962の撮像面に結像させる。撮像部962は、CCD(Charge Coupled Device)又はCMOS(Complementary Metal Oxide Semiconductor)などのイメージセンサを有し、撮像面に結像した光学像を光電変換によって電気信号としての画像信号に変換する。そして、撮像部962は、画像信号を信号処理部963へ出力する。
信号処理部963は、撮像部962から入力される画像信号に対してニー補正、ガンマ補正、色補正などの種々のカメラ信号処理を行う。信号処理部963は、カメラ信号処理後の画像データを画像処理部964へ出力する。
画像処理部964は、信号処理部963から入力される画像データを符号化し、符号化データを生成する。そして、画像処理部964は、生成した符号化データを外部インタフェース966又はメディアドライブ968へ出力する。また、画像処理部964は、外部インタフェース966又はメディアドライブ968から入力される符号化データを復号し、画像データを生成する。そして、画像処理部964は、生成した画像データを表示部965へ出力する。また、画像処理部964は、信号処理部963から入力される画像データを表示部965へ出力して画像を表示させてもよい。また、画像処理部964は、OSD969から取得される表示用データを、表示部965へ出力する画像に重畳してもよい。
OSD969は、例えばメニュー、ボタン又はカーソルなどのGUIの画像を生成して、生成した画像を画像処理部964へ出力する。
外部インタフェース966は、例えばUSB入出力端子として構成される。外部インタフェース966は、例えば、画像の印刷時に、撮像装置960とプリンタとを接続する。また、外部インタフェース966には、必要に応じてドライブが接続される。ドライブには、例えば、磁気ディスク又は光ディスクなどのリムーバブルメディアが装着され、リムーバブルメディアから読み出されるプログラムが、撮像装置960にインストールされ得る。さらに、外部インタフェース966は、LAN又はインターネットなどのネットワークに接続されるネットワークインタフェースとして構成されてもよい。即ち、外部インタフェース966は、撮像装置960における伝送手段としての役割を有する。
メディアドライブ968に装着される記録媒体は、例えば、磁気ディスク、光磁気ディスク、光ディスク、又は半導体メモリなどの、読み書き可能な任意のリムーバブルメディアであってよい。また、メディアドライブ968に記録媒体が固定的に装着され、例えば、内蔵型ハードディスクドライブ又はSSD(Solid State Drive)のような非可搬性の記憶部が構成されてもよい。
制御部970は、CPUなどのプロセッサ、並びにRAM及びROMなどのメモリを有する。メモリは、CPUにより実行されるプログラム、及びプログラムデータなどを記憶する。メモリにより記憶されるプログラムは、例えば、撮像装置960の起動時にCPUにより読み込まれ、実行される。CPUは、プログラムを実行することにより、例えばユーザインタフェース971から入力される操作信号に応じて、撮像装置960の動作を制御する。
ユーザインタフェース971は、制御部970と接続される。ユーザインタフェース971は、例えば、ユーザが撮像装置960を操作するためのボタン及びスイッチなどを有する。ユーザインタフェース971は、これら構成要素を介してユーザによる操作を検出して操作信号を生成し、生成した操作信号を制御部970へ出力する。
このように構成された撮像装置960において、画像処理部964は、上述した実施形態に係る画像符号化装置及び画像復号装置の機能を有する。それにより、撮像装置960での画像の符号化及び復号に際して、ブロックノイズを抑制することができる。
<7.第5の実施の形態>
[実施のその他の例]
以上において本技術を適用する装置やシステム等の例を説明したが、本技術は、これに限らず、このような装置またはシステムを構成する装置に搭載するあらゆる構成、例えば、システムLSI(Large Scale Integration)等としてのプロセッサ、複数のプロセッサ等を用いるモジュール、複数のモジュール等を用いるユニット、ユニットにさらにその他の機能を付加したセット等(すなわち、装置の一部の構成)として実施することもできる。
[ビデオセット]
本技術をセットとして実施する場合の例について、図27を参照して説明する。図27は、本技術を適用したビデオセットの概略的な構成の一例を示している。
近年、電子機器の多機能化が進んでおり、その開発や製造において、その一部の構成を販売や提供等として実施する場合、1機能を有する構成として実施を行う場合だけでなく、関連する機能を有する複数の構成を組み合わせ、複数の機能を有する1セットとして実施を行う場合も多く見られるようになってきた。
図27に示されるビデオセット1300は、このような多機能化された構成であり、画像の符号化や復号(いずれか一方でもよいし、両方でも良い)に関する機能を有するデバイスに、その機能に関連するその他の機能を有するデバイスを組み合わせたものである。
図27に示されるように、ビデオセット1300は、ビデオモジュール1311、外部メモリ1312、パワーマネージメントモジュール1313、およびフロントエンドモジュール1314等のモジュール群と、コネクティビティ1321、カメラ1322、およびセンサ1323等の関連する機能を有するデバイスとを有する。
モジュールは、互いに関連するいくつかの部品的機能をまとめ、まとまりのある機能を持った部品としたものである。具体的な物理的構成は任意であるが、例えば、それぞれ機能を有する複数のプロセッサ、抵抗やコンデンサ等の電子回路素子、その他のデバイス等を配線基板等に配置して一体化したものが考えられる。また、モジュールに他のモジュールやプロセッサ等を組み合わせて新たなモジュールとすることも考えられる。
図27の例の場合、ビデオモジュール1311は、画像処理に関する機能を有する構成を組み合わせたものであり、アプリケーションプロセッサ、ビデオプロセッサ、ブロードバンドモデム1333、およびRFモジュール1334を有する。
プロセッサは、所定の機能を有する構成をSoC(System On a Chip)により半導体チップに集積したものであり、例えばシステムLSI(Large Scale Integration)等と称されるものもある。この所定の機能を有する構成は、論理回路(ハードウエア構成)であってもよいし、CPU、ROM、RAM等と、それらを用いて実行されるプログラム(ソフトウエア構成)であってもよいし、その両方を組み合わせたものであってもよい。例えば、プロセッサが、論理回路とCPU、ROM、RAM等とを有し、機能の一部を論理回路(ハードウエア構成)により実現し、その他の機能をCPUにおいて実行されるプログラム(ソフトウエア構成)により実現するようにしてもよい。
図27のアプリケーションプロセッサ1331は、画像処理に関するアプリケーションを実行するプロセッサである。このアプリケーションプロセッサ1331において実行されるアプリケーションは、所定の機能を実現するために、演算処理を行うだけでなく、例えばビデオプロセッサ1332等、ビデオモジュール1311内外の構成を必要に応じて制御することもできる。
ビデオプロセッサ1332は、画像の符号化・復号(その一方若しくは両方)に関する機能を有するプロセッサである。
ブロードバンドモデム1333は、インターネットや公衆電話回線網等の広帯域の回線を介して行われる有線若しくは無線(またはその両方)の広帯域通信に関する処理を行うプロセッサ(若しくはモジュール)である。例えば、ブロードバンドモデム1333は、送信するデータ(デジタル信号)をデジタル変調する等してアナログ信号に変換したり、受信したアナログ信号を復調してデータ(デジタル信号)に変換したりする。例えば、ブロードバンドモデム1333は、ビデオプロセッサ1332が処理する画像データや画像データが符号化されたストリーム、アプリケーションプログラム、設定データ等、任意の情報をデジタル変調・復調することができる。
RFモジュール1334は、アンテナを介して送受信されるRF(Radio Frequency)信号に対して、周波数変換、変復調、増幅、フィルタ処理等を行うモジュールである。例えば、RFモジュール1334は、ブロードバンドモデム1333により生成されたベースバンド信号に対して周波数変換等を行ってRF信号を生成する。また、例えば、RFモジュール1334は、フロントエンドモジュール1314を介して受信されたRF信号に対して周波数変換等を行ってベースバンド信号を生成する。
なお、図27において点線1341に示されるように、アプリケーションプロセッサ1331とビデオプロセッサ1332を、一体化し、1つのプロセッサとして構成されるようにしてもよい。
外部メモリ1312は、ビデオモジュール1311の外部に設けられた、ビデオモジュール1311により利用される記憶デバイスを有するモジュールである。この外部メモリ1312の記憶デバイスは、どのような物理構成により実現するようにしてもよいが、一般的にフレーム単位の画像データのような大容量のデータの格納に利用されることが多いので、例えばDRAM(Dynamic Random Access Memory)のような比較的安価で大容量の半導体メモリにより実現するのが望ましい。
パワーマネージメントモジュール1313は、ビデオモジュール1311(ビデオモジュール1311内の各構成)への電力供給を管理し、制御する。
フロントエンドモジュール1314は、RFモジュール1334に対してフロントエンド機能(アンテナ側の送受信端の回路)を提供するモジュールである。図27に示されるように、フロントエンドモジュール1314は、例えば、アンテナ部1351、フィルタ1352、および増幅部1353を有する。
アンテナ部1351は、無線信号を送受信するアンテナおよびその周辺の構成を有する。アンテナ部1351は、増幅部1353から供給される信号を無線信号として送信し、受信した無線信号を電気信号(RF信号)としてフィルタ1352に供給する。フィルタ1352は、アンテナ部1351を介して受信されたRF信号に対してフィルタ処理等を行い、処理後のRF信号をRFモジュール1334に供給する。増幅部1353は、RFモジュール1334から供給されるRF信号を増幅し、アンテナ部1351に供給する。
コネクティビティ1321は、外部との接続に関する機能を有するモジュールである。コネクティビティ1321の物理構成は、任意である。例えば、コネクティビティ1321は、ブロードバンドモデム1333が対応する通信規格以外の通信機能を有する構成や、外部入出力端子等を有する。
例えば、コネクティビティ1321が、Bluetooth(登録商標)、IEEE 802.11(例えばWi-Fi(Wireless Fidelity、登録商標))、NFC(Near Field Communication)、IrDA(InfraRed Data Association)等の無線通信規格に準拠する通信機能を有するモジュールや、その規格に準拠した信号を送受信するアンテナ等を有するようにしてもよい。また、例えば、コネクティビティ1321が、USB(Universal Serial Bus)、HDMI(登録商標)(High-Definition Multimedia Interface)等の有線通信規格に準拠する通信機能を有するモジュールや、その規格に準拠した端子を有するようにしてもよい。さらに、例えば、コネクティビティ1321が、アナログ入出力端子等のその他のデータ(信号)伝送機能等を有するようにしてもよい。
なお、コネクティビティ1321が、データ(信号)の伝送先のデバイスを含むようにしてもよい。例えば、コネクティビティ1321が、磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリ等の記録媒体に対してデータの読み出しや書き込みを行うドライブ(リムーバブルメディアのドライブだけでなく、ハードディスク、SSD(Solid State Drive)、NAS(Network Attached Storage)等も含む)を有するようにしてもよい。また、コネクティビティ1321が、画像や音声の出力デバイス(モニタやスピーカ等)を有するようにしてもよい。
カメラ1322は、被写体を撮像し、被写体の画像データを得る機能を有するモジュールである。カメラ1322の撮像により得られた画像データは、例えば、ビデオプロセッサ1332に供給されて符号化される。
センサ1323は、例えば、音声センサ、超音波センサ、光センサ、照度センサ、赤外線センサ、イメージセンサ、回転センサ、角度センサ、角速度センサ、速度センサ、加速度センサ、傾斜センサ、磁気識別センサ、衝撃センサ、温度センサ等、任意のセンサ機能を有するモジュールである。センサ1323により検出されたデータは、例えば、アプリケーションプロセッサ1331に供給されてアプリケーション等により利用される。
以上においてモジュールとして説明した構成をプロセッサとして実現するようにしてもよいし、逆にプロセッサとして説明した構成をモジュールとして実現するようにしてもよい。
以上のような構成のビデオセット1300において、後述するようにビデオプロセッサ1332に本技術を適用することができる。したがって、ビデオセット1300は、本技術を適用したセットとして実施することができる。
[ビデオプロセッサの構成例]
図28は、本技術を適用したビデオプロセッサ1332(図27)の概略的な構成の一例を示している。
図28の例の場合、ビデオプロセッサ1332は、ビデオ信号およびオーディオ信号の入力を受けてこれらを所定の方式で符号化する機能と、符号化されたビデオデータおよびオーディオデータを復号し、ビデオ信号およびオーディオ信号を再生出力する機能とを有する。
図28に示されるように、ビデオプロセッサ1332は、ビデオ入力処理部1401、第1画像拡大縮小部1402、第2画像拡大縮小部1403、ビデオ出力処理部1404、フレームメモリ1405、およびメモリ制御部1406を有する。また、ビデオプロセッサ1332は、エンコード・デコードエンジン1407、ビデオES(Elementary Stream)バッファ1408Aおよび1408B、並びに、オーディオESバッファ1409Aおよび1409Bを有する。さらに、ビデオプロセッサ1332は、オーディオエンコーダ1410、オーディオデコーダ1411、多重化部(MUX(Multiplexer))1412、逆多重化部(DMUX(Demultiplexer))1413、およびストリームバッファ1414を有する。
ビデオ入力処理部1401は、例えばコネクティビティ1321(図27)等から入力されたビデオ信号を取得し、デジタル画像データに変換する。第1画像拡大縮小部1402は、画像データに対してフォーマット変換や画像の拡大縮小処理等を行う。第2画像拡大縮小部1403は、画像データに対して、ビデオ出力処理部1404を介して出力する先でのフォーマットに応じて画像の拡大縮小処理を行ったり、第1画像拡大縮小部1402と同様のフォーマット変換や画像の拡大縮小処理等を行ったりする。ビデオ出力処理部1404は、画像データに対して、フォーマット変換やアナログ信号への変換等を行って、再生されたビデオ信号として例えばコネクティビティ1321(図27)等に出力する。
フレームメモリ1405は、ビデオ入力処理部1401、第1画像拡大縮小部1402、第2画像拡大縮小部1403、ビデオ出力処理部1404、およびエンコード・デコードエンジン1407によって共用される画像データ用のメモリである。フレームメモリ1405は、例えばDRAM等の半導体メモリとして実現される。
メモリ制御部1406は、エンコード・デコードエンジン1407からの同期信号を受けて、アクセス管理テーブル1406Aに書き込まれたフレームメモリ1405へのアクセススケジュールに従ってフレームメモリ1405に対する書き込み・読み出しのアクセスを制御する。アクセス管理テーブル1406Aは、エンコード・デコードエンジン1407、第1画像拡大縮小部1402、第2画像拡大縮小部1403等で実行される処理に応じて、メモリ制御部1406により更新される。
エンコード・デコードエンジン1407は、画像データのエンコード処理、並びに、画像データが符号化されたデータであるビデオストリームのデコード処理を行う。例えば、エンコード・デコードエンジン1407は、フレームメモリ1405から読み出した画像データを符号化し、ビデオストリームとしてビデオESバッファ1408Aに順次書き込む。また、例えば、ビデオESバッファ1408Bからビデオストリームを順次読み出して復号し、画像データとしてフレームメモリ1405に順次書き込む。エンコード・デコードエンジン1407は、これらの符号化や復号において、フレームメモリ1405を作業領域として使用する。また、エンコード・デコードエンジン1407は、例えばマクロブロック毎の処理を開始するタイミングで、メモリ制御部1406に対して同期信号を出力する。
ビデオESバッファ1408Aは、エンコード・デコードエンジン1407によって生成されたビデオストリームをバッファリングして、多重化部(MUX)1412に供給する。ビデオESバッファ1408Bは、逆多重化部(DMUX)1413から供給されたビデオストリームをバッファリングして、エンコード・デコードエンジン1407に供給する。
オーディオESバッファ1409Aは、オーディオエンコーダ1410によって生成されたオーディオストリームをバッファリングして、多重化部(MUX)1412に供給する。オーディオESバッファ1409Bは、逆多重化部(DMUX)1413から供給されたオーディオストリームをバッファリングして、オーディオデコーダ1411に供給する。
オーディオエンコーダ1410は、例えばコネクティビティ1321(図27)等から入力されたオーディオ信号を例えばデジタル変換し、例えばMPEGオーディオ方式やAC3(AudioCode number 3)方式等の所定の方式で符号化する。オーディオエンコーダ1410は、オーディオ信号が符号化されたデータであるオーディオストリームをオーディオESバッファ1409Aに順次書き込む。オーディオデコーダ1411は、オーディオESバッファ1409Bから供給されたオーディオストリームを復号し、例えばアナログ信号への変換等を行って、再生されたオーディオ信号として例えばコネクティビティ1321(図27)等に供給する。
多重化部(MUX)1412は、ビデオストリームとオーディオストリームとを多重化する。この多重化の方法(すなわち、多重化により生成されるビットストリームのフォーマット)は任意である。また、この多重化の際に、多重化部(MUX)1412は、所定のヘッダ情報等をビットストリームに付加することもできる。つまり、多重化部(MUX)1412は、多重化によりストリームのフォーマットを変換することができる。例えば、多重化部(MUX)1412は、ビデオストリームとオーディオストリームとを多重化することにより、転送用のフォーマットのビットストリームであるトランスポートストリームに変換する。また、例えば、多重化部(MUX)1412は、ビデオストリームとオーディオストリームとを多重化することにより、記録用のファイルフォーマットのデータ(ファイルデータ)に変換する。
逆多重化部(DMUX)1413は、多重化部(MUX)1412による多重化に対応する方法で、ビデオストリームとオーディオストリームとが多重化されたビットストリームを逆多重化する。つまり、逆多重化部(DMUX)1413は、ストリームバッファ1414から読み出されたビットストリームからビデオストリームとオーディオストリームとを抽出する(ビデオストリームとオーディオストリームとを分離する)。つまり、逆多重化部(DMUX)1413は、逆多重化によりストリームのフォーマットを変換(多重化部(MUX)1412による変換の逆変換)することができる。例えば、逆多重化部(DMUX)1413は、例えばコネクティビティ1321やブロードバンドモデム1333等(いずれも図27)から供給されたトランスポートストリームを、ストリームバッファ1414を介して取得し、逆多重化することにより、ビデオストリームとオーディオストリームとに変換することができる。また、例えば、逆多重化部(DMUX)1413は、例えばコネクティビティ1321により(図27)各種記録媒体から読み出されたファイルデータを、ストリームバッファ1414を介して取得し、逆多重化することにより、ビデオストリームとオーディオストリームとに変換することができる。
ストリームバッファ1414は、ビットストリームをバッファリングする。例えば、ストリームバッファ1414は、多重化部(MUX)1412から供給されたトランスポートストリームをバッファリングし、所定のタイミングにおいて、若しくは外部からの要求等に基づいて、例えばコネクティビティ1321やブロードバンドモデム1333(いずれも図27)等に供給する。
また、例えば、ストリームバッファ1414は、多重化部(MUX)1412から供給されたファイルデータをバッファリングし、所定のタイミングにおいて、若しくは外部からの要求等に基づいて、例えばコネクティビティ1321(図27)等に供給し、各種記録媒体に記録させる。
さらに、ストリームバッファ1414は、例えばコネクティビティ1321やブロードバンドモデム1333等(いずれも図27)を介して取得したトランスポートストリームをバッファリングし、所定のタイミングにおいて、若しくは外部からの要求等に基づいて、逆多重化部(DMUX)1413に供給する。
また、ストリームバッファ1414は、例えばコネクティビティ1321(図27)等において各種記録媒体から読み出されたファイルデータをバッファリングし、所定のタイミングにおいて、若しくは外部からの要求等に基づいて、逆多重化部(DMUX)1413に供給する。
次に、このような構成のビデオプロセッサ1332の動作の例について説明する。例えば、コネクティビティ1321(図27)等からビデオプロセッサ1332に入力されたビデオ信号は、ビデオ入力処理部1401において4:2:2Y/Cb/Cr方式等の所定の方式のデジタル画像データに変換され、フレームメモリ1405に順次書き込まれる。このデジタル画像データは、第1画像拡大縮小部1402または第2画像拡大縮小部1403に読み出されて、4:2:0Y/Cb/Cr方式等の所定の方式へのフォーマット変換および拡大縮小処理が行われ、再びフレームメモリ1405に書き込まれる。この画像データは、エンコード・デコードエンジン1407によって符号化され、ビデオストリームとしてビデオESバッファ1408Aに書き込まれる。
また、コネクティビティ1321(図27)等からビデオプロセッサ1332に入力されたオーディオ信号は、オーディオエンコーダ1410によって符号化され、オーディオストリームとして、オーディオESバッファ1409Aに書き込まれる。
ビデオESバッファ1408Aのビデオストリームと、オーディオESバッファ1409Aのオーディオストリームは、多重化部(MUX)1412に読み出されて多重化され、トランスポートストリーム若しくはファイルデータ等に変換される。多重化部(MUX)1412により生成されたトランスポートストリームは、ストリームバッファ1414にバッファされた後、例えばコネクティビティ1321やブロードバンドモデム1333(いずれも図27)等を介して外部ネットワークに出力される。また、多重化部(MUX)1412により生成されたファイルデータは、ストリームバッファ1414にバッファされた後、例えばコネクティビティ1321(図27)等に出力され、各種記録媒体に記録される。
また、例えばコネクティビティ1321やブロードバンドモデム1333(いずれも図27)等を介して外部ネットワークからビデオプロセッサ1332に入力されたトランスポートストリームは、ストリームバッファ1414にバッファされた後、逆多重化部(DMUX)1413により逆多重化される。また、例えばコネクティビティ1321(図27)等において各種記録媒体から読み出され、ビデオプロセッサ1332に入力されたファイルデータは、ストリームバッファ1414にバッファされた後、逆多重化部(DMUX)1413により逆多重化される。つまり、ビデオプロセッサ1332に入力されたトランスポートストリームまたはファイルデータは、逆多重化部(DMUX)1413によりビデオストリームとオーディオストリームとに分離される。
オーディオストリームは、オーディオESバッファ1409Bを介してオーディオデコーダ1411に供給され、復号されてオーディオ信号が再生される。また、ビデオストリームは、ビデオESバッファ1408Bに書き込まれた後、エンコード・デコードエンジン1407により順次読み出されて復号されてフレームメモリ1405に書き込まれる。復号された画像データは、第2画像拡大縮小部1403によって拡大縮小処理されて、フレームメモリ1405に書き込まれる。そして、復号された画像データは、ビデオ出力処理部1404に読み出されて、4:2:2Y/Cb/Cr方式等の所定の方式にフォーマット変換され、さらにアナログ信号に変換されて、ビデオ信号が再生出力される。
このように構成されるビデオプロセッサ1332に本技術を適用する場合、エンコード・デコードエンジン1407に、上述した各実施形態に係る本技術を適用すればよい。つまり、例えば、エンコード・デコードエンジン1407が、第1の実施の形態に係る画像符号化装置11(図1)や画像復号装置51(図3)の機能を有するようにすればよい。このようにすることにより、ビデオプロセッサ1332は、図1乃至図15を参照して上述した効果と同様の効果を得ることができる。
なお、エンコード・デコードエンジン1407において、本技術(すなわち、上述した各実施形態に係る画像符号化装置や画像復号装置の機能)は、論理回路等のハードウエアにより実現するようにしてもよいし、組み込みプログラム等のソフトウエアにより実現するようにしてもよいし、それらの両方により実現するようにしてもよい。
[ビデオプロセッサの他の構成例]
図29は、本技術を適用したビデオプロセッサ1332(図27)の概略的な構成の他の例を示している。図29の例の場合、ビデオプロセッサ1332は、ビデオデータを所定の方式で符号化・復号する機能とを有する。
より具体的には、図29に示されるように、ビデオプロセッサ1332は、制御部1511、ディスプレイインタフェース1512、ディスプレイエンジン1513、画像処理エンジン1514、および内部メモリ1515を有する。また、ビデオプロセッサ1332は、コーデックエンジン1516、メモリインタフェース1517、多重化・逆多重化部(MUX DMUX)1518、ネットワークインタフェース1519、およびビデオインタフェース1520を有する。
制御部1511は、ディスプレイインタフェース1512、ディスプレイエンジン1513、画像処理エンジン1514、およびコーデックエンジン1516等、ビデオプロセッサ1332内の各処理部の動作を制御する。
図29に示されるように、制御部1511は、例えば、メインCPU1531、サブCPU1532、およびシステムコントローラ1533を有する。メインCPU1531は、ビデオプロセッサ1332内の各処理部の動作を制御するためのプログラム等を実行する。メインCPU1531は、そのプログラム等に従って制御信号を生成し、各処理部に供給する(つまり、各処理部の動作を制御する)。サブCPU1532は、メインCPU1531の補助的な役割を果たす。例えば、サブCPU1532は、メインCPU1531が実行するプログラム等の子プロセスやサブルーチン等を実行する。システムコントローラ1533は、メインCPU1531およびサブCPU1532が実行するプログラムを指定する等、メインCPU1531およびサブCPU1532の動作を制御する。
ディスプレイインタフェース1512は、制御部1511の制御の下、画像データを例えばコネクティビティ1321(図27)等に出力する。例えば、ディスプレイインタフェース1512は、デジタルデータの画像データをアナログ信号に変換し、再生されたビデオ信号として、またはデジタルデータの画像データのまま、コネクティビティ1321(図27)のモニタ装置等に出力する。
ディスプレイエンジン1513は、制御部1511の制御の下、画像データに対して、その画像を表示させるモニタ装置等のハードウエアスペックに合わせるように、フォーマット変換、サイズ変換、色域変換等の各種変換処理を行う。
画像処理エンジン1514は、制御部1511の制御の下、画像データに対して、例えば画質改善のためのフィルタ処理等、所定の画像処理を施す。
内部メモリ1515は、ディスプレイエンジン1513、画像処理エンジン1514、およびコーデックエンジン1516により共用される、ビデオプロセッサ1332の内部に設けられたメモリである。内部メモリ1515は、例えば、ディスプレイエンジン1513、画像処理エンジン1514、およびコーデックエンジン1516の間で行われるデータの授受に利用される。例えば、内部メモリ1515は、ディスプレイエンジン1513、画像処理エンジン1514、またはコーデックエンジン1516から供給されるデータを格納し、必要に応じて(例えば、要求に応じて)、そのデータを、ディスプレイエンジン1513、画像処理エンジン1514、またはコーデックエンジン1516に供給する。この内部メモリ1515は、どのような記憶デバイスにより実現するようにしてもよいが、一般的にブロック単位の画像データやパラメータ等といった小容量のデータの格納に利用することが多いので、例えばSRAM(Static Random Access Memory)のような比較的(例えば外部メモリ1312と比較して)小容量だが応答速度が高速な半導体メモリにより実現するのが望ましい。
コーデックエンジン1516は、画像データの符号化や復号に関する処理を行う。このコーデックエンジン1516が対応する符号化・復号の方式は任意であり、その数は1つであってもよいし、複数であってもよい。例えば、コーデックエンジン1516は、複数の符号化・復号方式のコーデック機能を備え、その中から選択されたもので画像データの符号化若しくは符号化データの復号を行うようにしてもよい。
図29に示される例において、コーデックエンジン1516は、コーデックに関する処理の機能ブロックとして、例えば、MPEG-2 Video1541、AVC/H.2641542、HEVC/H.2651543、HEVC/H.265(Scalable)1544、HEVC/H.265(Multi-view)1545、およびMPEG-DASH1551を有する。
MPEG-2 Video1541は、画像データをMPEG-2方式で符号化したり復号したりする機能ブロックである。AVC/H.2641542は、画像データをAVC方式で符号化したり復号したりする機能ブロックである。HEVC/H.2651543は、画像データをHEVC方式で符号化したり復号したりする機能ブロックである。HEVC/H.265(Scalable)1544は、画像データをHEVC方式でスケーラブル符号化したりスケーラブル復号したりする機能ブロックである。HEVC/H.265(Multi-view)1545は、画像データをHEVC方式で多視点符号化したり多視点復号したりする機能ブロックである。
MPEG-DASH1551は、画像データをMPEG-DASH(MPEG-Dynamic Adaptive Streaming over HTTP)方式で送受信する機能ブロックである。MPEG-DASHは、HTTP(HyperText Transfer Protocol)を使ってビデオのストリーミングを行う技術であり、予め用意された解像度等が互いに異なる複数の符号化データの中から適切なものをセグメント単位で選択し伝送することを特徴の1つとする。MPEG-DASH1551は、規格に準拠するストリームの生成やそのストリームの伝送制御等を行い、画像データの符号化・復号については、上述したMPEG-2 Video1541乃至HEVC/H.265(Multi-view)1545を利用する。
メモリインタフェース1517は、外部メモリ1312用のインタフェースである。画像処理エンジン1514やコーデックエンジン1516から供給されるデータは、メモリインタフェース1517を介して外部メモリ1312に供給される。また、外部メモリ1312から読み出されたデータは、メモリインタフェース1517を介してビデオプロセッサ1332(画像処理エンジン1514若しくはコーデックエンジン1516)に供給される。
多重化・逆多重化部(MUX DMUX)1518は、符号化データのビットストリーム、画像データ、ビデオ信号等、画像に関する各種データの多重化や逆多重化を行う。この多重化・逆多重化の方法は任意である。例えば、多重化の際に、多重化・逆多重化部(MUX DMUX)1518は、複数のデータを1つにまとめるだけでなく、所定のヘッダ情報等をそのデータに付加することもできる。また、逆多重化の際に、多重化・逆多重化部(MUX DMUX)1518は、1つのデータを複数に分割するだけでなく、分割した各データに所定のヘッダ情報等を付加することもできる。つまり、多重化・逆多重化部(MUX DMUX)1518は、多重化・逆多重化によりデータのフォーマットを変換することができる。例えば、多重化・逆多重化部(MUX DMUX)1518は、ビットストリームを多重化することにより、転送用のフォーマットのビットストリームであるトランスポートストリームや、記録用のファイルフォーマットのデータ(ファイルデータ)に変換することができる。もちろん、逆多重化によりその逆変換も可能である。
ネットワークインタフェース1519は、例えばブロードバンドモデム1333やコネクティビティ1321(いずれも図27)等向けのインタフェースである。ビデオインタフェース1520は、例えばコネクティビティ1321やカメラ1322(いずれも図27)等向けのインタフェースである。
次に、このようなビデオプロセッサ1332の動作の例について説明する。例えば、例えばコネクティビティ1321やブロードバンドモデム1333(いずれも図27)等を介して外部ネットワークからトランスポートストリームを受信すると、そのトランスポートストリームは、ネットワークインタフェース1519を介して多重化・逆多重化部(MUX DMUX)1518に供給されて逆多重化され、コーデックエンジン1516により復号される。コーデックエンジン1516の復号により得られた画像データは、例えば、画像処理エンジン1514により所定の画像処理が施され、ディスプレイエンジン1513により所定の変換が行われ、ディスプレイインタフェース1512を介して例えばコネクティビティ1321(図27)等に供給され、その画像がモニタに表示される。また、例えば、コーデックエンジン1516の復号により得られた画像データは、コーデックエンジン1516により再符号化され、多重化・逆多重化部(MUX DMUX)1518により多重化されてファイルデータに変換され、ビデオインタフェース1520を介して例えばコネクティビティ1321(図27)等に出力され、各種記録媒体に記録される。
さらに、例えば、コネクティビティ1321(図27)等により図示せぬ記録媒体から読み出された、画像データが符号化された符号化データのファイルデータは、ビデオインタフェース1520を介して多重化・逆多重化部(MUX DMUX)1518に供給されて逆多重化され、コーデックエンジン1516により復号される。コーデックエンジン1516の復号により得られた画像データは、画像処理エンジン1514により所定の画像処理が施され、ディスプレイエンジン1513により所定の変換が行われ、ディスプレイインタフェース1512を介して例えばコネクティビティ1321(図27)等に供給され、その画像がモニタに表示される。また、例えば、コーデックエンジン1516の復号により得られた画像データは、コーデックエンジン1516により再符号化され、多重化・逆多重化部(MUX DMUX)1518により多重化されてトランスポートストリームに変換され、ネットワークインタフェース1519を介して例えばコネクティビティ1321やブロードバンドモデム1333(いずれも図27)等に供給され図示せぬ他の装置に伝送される。
なお、ビデオプロセッサ1332内の各処理部の間での画像データやその他のデータの授受は、例えば、内部メモリ1515や外部メモリ1312を利用して行われる。また、パワーマネージメントモジュール1313は、例えば制御部1511への電力供給を制御する。
このように構成されるビデオプロセッサ1332に本技術を適用する場合、コーデックエンジン1516に、上述した各実施形態に係る本技術を適用すればよい。つまり、例えば、コーデックエンジン1516が、第1の実施の形態に係る画像符号化装置11(図1)や画像復号装置51(図3)を実現する機能ブロックを有するようにすればよい。このようにすることにより、ビデオプロセッサ1332は、図1乃至図15を参照して上述した効果と同様の効果を得ることができる。
なお、コーデックエンジン1516において、本技術(すなわち、上述した各実施形態に係る画像符号化装置や画像復号装置の機能)は、論理回路等のハードウエアにより実現するようにしてもよいし、組み込みプログラム等のソフトウエアにより実現するようにしてもよいし、それらの両方により実現するようにしてもよい。
以上にビデオプロセッサ1332の構成を2例示したが、ビデオプロセッサ1332の構成は任意であり、上述した2例以外のものであってもよい。また、このビデオプロセッサ1332は、1つの半導体チップとして構成されるようにしてもよいが、複数の半導体チップとして構成されるようにしてもよい。例えば、複数の半導体を積層する3次元積層LSIとしてもよい。また、複数のLSIにより実現されるようにしてもよい。
[装置への適用例]
ビデオセット1300は、画像データを処理する各種装置に組み込むことができる。例えば、ビデオセット1300は、テレビジョン装置900(図23)、携帯電話機920(図24)、記録再生装置940(図25)、撮像装置960(図26)等に組み込むことができる。ビデオセット1300を組み込むことにより、その装置は、図1乃至図15を参照して上述した効果と同様の効果を得ることができる。
なお、上述したビデオセット1300の各構成の一部であっても、ビデオプロセッサ1332を含むものであれば、本技術を適用した構成として実施することができる。例えば、ビデオプロセッサ1332のみを本技術を適用したビデオプロセッサとして実施することができる。また、例えば、上述したように点線1341により示されるプロセッサやビデオモジュール1311等を、本技術を適用したプロセッサやモジュール等として実施することができる。さらに、例えば、ビデオモジュール1311、外部メモリ1312、パワーマネージメントモジュール1313、およびフロントエンドモジュール1314を組み合わせ、本技術を適用したビデオユニット1361として実施することもできる。いずれの構成の場合であっても、図1乃至図15を参照して上述した効果と同様の効果を得ることができる。
つまり、ビデオプロセッサ1332を含むものであればどのような構成であっても、ビデオセット1300の場合と同様に、画像データを処理する各種装置に組み込むことができる。例えば、ビデオプロセッサ1332、点線1341により示されるプロセッサ、ビデオモジュール1311、または、ビデオユニット1361を、テレビジョン装置900(図23)、携帯電話機920(図24)、記録再生装置940(図25)、撮像装置960(図26)等に組み込むことができる。そして、本技術を適用したいずれかの構成を組み込むことにより、その装置は、ビデオセット1300の場合と同様に、図1乃至図15を参照して上述した効果と同様の効果を得ることができる。
なお、本明細書では、デブロッキングフィルタのパラメータや適応オフセットフィルタのパラメータ等の各種情報が、符号化ストリームに多重化されて、符号化側から復号側へ伝送される例について説明した。しかしながら、これら情報を伝送する手法はかかる例に限定されない。例えば、これら情報は、符号化ビットストリームに多重化されることなく、符号化ビットストリームと関連付けられた別個のデータとして伝送され又は記録されてもよい。ここで、「関連付ける」という用語は、ビットストリームに含まれる画像(スライス若しくはブロックなど、画像の一部であってもよい)と当該画像に対応する情報とを復号時にリンクさせ得るようにすることを意味する。即ち、情報は、画像(又はビットストリーム)とは別の伝送路上で伝送されてもよい。また、情報は、画像(又はビットストリーム)とは別の記録媒体(又は同一の記録媒体の別の記録エリア)に記録されてもよい。さらに、情報と画像(又はビットストリーム)とは、例えば、複数フレーム、1フレーム、又はフレーム内の一部分などの任意の単位で互いに関連付けられてよい。
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示はかかる例に限定されない。本開示の属する技術の分野における通常の知識を有する者であれば、請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
なお、本技術は以下のような構成も取ることができる。
(1) 階層構造を有する単位で符号化された符号化ストリームを復号して画像を生成する復号部と、
前記復号部により生成された画像のブロックと前記ブロックに隣接する隣接ブロックとの境界であるブロック境界に対するデブロッキングフィルタの強度を示す強度パラメータを用いて、ストロングフィルタを適用するかを判定するフィルタ判定部と、
前記フィルタ判定部により前記ストロングフィルタを適用すると判定された場合に、前記ブロック境界に前記ストロングフィルタを施すフィルタ部と
を備える画像処理装置。
(2) 前記フィルタ判定部は、前記ブロック境界に対するデブロッキングフィルタの強度を示す強度パラメータと前記デブロッキングフィルタの判定に用いられる閾値を示す判定パラメータとを用いて、前記ストロングフィルタを適用するかを判定する
前記(1)に記載の画像処理装置。
(3) 前記強度パラメータと前記判定パラメータとを乗算した値を用いて、前記ストロングフィルタを適用するかを判定する
前記(2)に記載の画像処理装置。
(4) 前記フィルタ判定部は、前記強度パラメータまたは前記判定パラメータを変数とする関数を用いて、前記ストロングフィルタを適用するかを判定する
前記(2)に記載の画像処理装置。
(5) 前記フィルタ判定部は、前記強度パラメータと前記判定パラメータの1次関数を用いて、前記ストロングフィルタを適用するかを判定する
前記(2)乃至(4)のいずれかに記載の画像処理装置。
(6) 前記強度パラメータは、予測モードがイントラ予測の場合、インター予測の場合より大きい値をとるパラメータである
前記(2)乃至(5)のいずれかに記載の画像処理装置。
(7) 前記強度パラメータは、Bs(Boundary Filtering Strength)値である
前記(2)乃至(6)のいずれかに記載の画像処理装置。
(8) 前記判定パラメータは、デブロッキングフィルタの要否判定およびデブロッキングフィルタの強度選択判定に用いられるbetaである
前記(2)乃至(7)のいずれかに記載の画像処理装置。
(9) 画像処理装置が、
階層構造を有する単位で符号化された符号化ストリームを復号して画像を生成し、
生成された画像のブロックと前記ブロックに隣接する隣接ブロックとの境界であるブロック境界に対するデブロッキングフィルタの強度を示す強度パラメータを用いて、ストロングフィルタを適用するかを判定し、
前記ストロングフィルタを適用すると判定された場合に、前記ブロック境界に前記ストロングフィルタを施す
画像処理方法。