現在、標準的な映像符号化アルゴリズムの大半はハイブリッド映像符号化に基づくものである。通常、ハイブリッド映像符号化方法は、所望の圧縮ゲインを達成するために、いくつかの異なる可逆圧縮方式と不可逆圧縮方式とを組み合わせたものである。ハイブリッド映像符号化は、ISO/IEC標準規格(MPEG−1、MPEG−2、MPEG−4のようなMPEG−X標準規格)と同様に、ITU−T標準規格(H.261やH.263のようなH.26x標準規格)の基礎でもある。最新の映像符号化標準規格は、H.264/MPEG−4 Advanced Video Coding(AVC)と称されるものであり、これは、(ITU−TグループとISO/IEC MPEGグループとのジョイントチームである)ジョイントビデオチーム(JVT)による標準化活動の成果である。このコーデックは、HEVC(High−Efficiency Video Coding)という名称の下で、JCT−VC(Joint Collaborative Team on Video Coding)によってさらに開発が進められており、特に高解像度の映像符号化の効率改善を目的としている。
エンコーダへ入力される映像信号は、フレームと呼ばれる画像のシーケンスであり、各フレームは2次元マトリクス状の複数の画素からなる。ハイブリッド映像符号化に基づく上述の標準規格は全て、個々の映像フレームを、複数の画素からなるより小さなブロックに分割することを含む。ブロックのサイズは、例えば、画像の内容によって異なる。符号化方法は、通常、ブロックごとに異なってもよい。例えばHEVCにおいて、そのようなブロックに許される最大サイズは64×64画素である。この最大サイズは最大符号化単位(LCU)と称される。H.264/MPEG−4 AVCにおいてマクロブロック(通常は16×16画素のブロックを指す)は、符号化が実行され、さらに何らかの符号化/復号ステップが適用されるより小さなサブブロックに分割される可能性がある基本の画像要素である。
典型的には、ハイブリッド映像符号化における符号化ステップには、空間的および/または時間的予測が含まれる。したがって、各符号化対象ブロックは、まず、空間的に隣接したブロックまたは時間的に隣接したブロック、つまり符号化済み映像フレームのブロックを用いて予測される。予測残差ブロックとも呼ばれる、符号化対象ブロックと予測との差分ブロックが、次に算出される。次の符号化ステップでは、残差ブロックが空間(画素)ドメインから周波数ドメインへ変換される。変換の目的は、入力ブロックの相関性を弱めることである。次の符号化ステップにおいて、変換係数が量子化される。このステップにおいて、実質的にロスが生じる(不可逆的な)圧縮が行われる。通常、圧縮変換係数値は、エントロピー符号化によって(可逆的に)さらに圧縮される。さらに、符号化映像信号を再構築するために必要な補助情報が符号化され、符号化映像信号とともに提供される。この情報は、例えば、空間的および/または時間的予測や量子化量等に関するものである。
図1は、典型的なH.264/MPEG−4 AVCおよび/またはHEVC映像エンコーダなどの、最新の映像エンコーダ100の一例を示す。減算器105がまず、入力映像(入力信号s)の符号化対象ブロックと、対応する予測ブロック
との差分を求める。その差分は、符号化対象ブロックの予測に用いられる。当該予測信号は、時間的予測または空間的予測180によって得られる。予測のタイプは、フレームごとまたはブロックごとに異なる可能性がある。時間的予測を用いて予測されたブロックおよび/またはフレームは「インター」符号化されたと称され、空間的予測を用いて予測されたブロックおよび/またはフレームは、「イントラ」符号化されたと称される。時間的予測を用いる予測信号は、メモリに格納されている、符号化済みの画像から導出する。空間的予測を用いる予測信号は、既に符号化・復号済みの、メモリに格納された隣接ブロックの境界画素値から導出される。入力信号と予測信号との差eは、予測誤差または残差と呼ばれ、変換されて(110)係数となり、量子化される(120)。格納するデータ量をさらに削減し、かつ/または可逆的に送信するために、量子化係数にエントロピー符号化(190)を適用する。これは主に、可変長の符号語を有する符号を適用することによって達成される。この符号語の長さは、発生確率に基づいて選択される。
復号(再構築)映像信号s’を得るため、映像エンコーダ100に復号部を組み入れる。上記符号化ステップに合わせて、復号ステップは、逆量子化および逆変換(130)を含む。そのようにして得た予測誤差信号e’は、量子化ノイズとも称される量子化誤差が原因で、元の予測誤差信号とは異なる。その後、復号予測誤差信号e’を予測信号
に加える(140)ことで、再構築信号s’を得る。エンコーダ側とデコーダ側の互換性を保つため、エンコーダ側とデコーダ側の両方で得られる、符号化され続いて復号された映像信号に基づいて、予測信号
を得る。
量子化の結果、再構築映像信号に量子化ノイズが重畳される。ブロック単位での符号化のため、重畳されたノイズはブロッキング特性を有することが多く、特に強い量子化が行われた場合は、復号画像のブロック境界が目立つことになる。ブロッキングアーチファクトは、人間の視覚認識上マイナス効果を及ぼす。これらのアーチファクトを減らすため、デブロッキングフィルタ150を全ての再構築画像ブロックに適用する。デブロッキングフィルタは、再構築信号s’に適用される。デブロッキングフィルタは、概して、ブロックのエッジを平滑化し復号画像の主観的画質を改善する。さらに、画像内のフィルタリング済みの部分が次の画像の動き補償予測に用いられるため、フィルタリングによって予測誤差も減少し、符号化効率を改善することができる。
デブロッキングフィルタ後、画素単位の信頼性(「客観的」品質)を改善するため、デブロッキング済み信号s’’を含む画像に適応ループフィルタ160を適用してもよい。適応ループフィルタ(ALF)は、圧縮によって生じる画像の歪みを補償するために用いられる。通常、適応ループフィルタは、再構築画像s’とソース画像sとの平均二乗誤差(MSE)が最小化されるように決定されたフィルタ係数を有する、図1に示すようなウィーナフィルタである。ALFの係数を、フレーム単位で算出し送信してもよい。ALFはフレーム全体(映像シーケンスの画像)または局所領域(ブロック)に適用できる。フィルタリングする領域を示す追加的補助情報を、(ブロック単位、フレーム単位、または四分木単位で)送信してもよい。
インター符号化ブロックを復号するには、符号化および復号済みの画像の一部も参照フレームバッファ(不図示)に格納する必要がある。インター符号化ブロックは、動き補償予測を用いることにより予測される(180)。まず、動き検出器により、符号化および復号済み映像フレーム内で対象ブロックに最も適合するブロックを見つける。この最適ブロックは予測信号となり、対象ブロックと最適ブロック間の相対的なずれ(動き)が、3次元の動きベクトルの形で動きデータとして信号で伝えられる。この動きデータは、符号化映像データとともに提供される補助情報内に含められる。3次元は、2つの空間的な次元と1つの空間的な次元とからなる。予測精度を最適化するため、1/2画素解像度や1/4画素解像度などの空間的サブピクセル解像度で動きベクトルを求めてもよい。空間的サブピクセル解像度の動きベクトルは、復号済みフレーム内の、実存する画素値がない空間的位置、つまりサブピクセル位置を指してもよい。よって、動き補償予測を行うために、そのような画素値の空間的補間が必要である。これは、補間フィルタ(図1では予測ブロック180と統合されている)によって達成されてもよい。
イントラ符号化およびインター符号化モードの両方において、対象入力信号と予測信号との差分eが変換(110)および量子化(120)され、量子化係数となる。一般的に、2次元離散コサイン変換(DCT)またはその整数バージョンなどの直交変換が使用される。なぜなら、これにより自然映像の相関が効率的に低下するからである。変換後、高周波成分よりも低周波成分の符号化により多くのビットが費やされる。これは通常、高周波成分よりも低周波成分が画質にとって重要であるからである。エントロピーコーダにおいて、2次元配列の量子化係数が1次元配列に変換される。典型的には、いわゆるジグザグスキャンによって変換される。ジグザグスキャンでは、2次元配列の左上隅にあるDC係数から右下隅にあるAC係数まで所定の順序で走査される。エネルギーは一般的に低周波に相当する2次元配列の係数の左上部分に集中するため、ジグザグスキャンを行うと、通常、最後の値がゼロとなる配列になる。これにより、実際のエントロピー符号化の一部として、またはその前処理として、ランレングス符号を用いる効率的な符号化が可能になる。
図2は、H.264/MPEG−4 AVCまたはHEVC映像符号化規格に準拠した最新のデコーダ200を示す。符号化映像信号(デコーダへの入力信号)は、まず、動きデータや予測モード等といった、量子化係数と、復号に必要な情報要素とを復号するエントロピーデコーダ990に送られる。量子化係数は、2次元配列を得る目的で逆走査され、その後、逆量子化・逆変換部230に入力される。逆量子化および逆変換(230)後、復号(量子化)予測誤差信号e’が得られる。量子化ノイズが生じず、誤差が生じなかった場合には、復号(量子化)予測誤差信号e’は、エンコーダに入力された信号から予測信号を減算して得た差分に相当する。
予測信号は、時間的または空間的予測(280)の何れかによって得られる。通常、復号された情報はさらに、イントラ予測の場合には予測タイプ、動き補償予測の場合には動きデータなどの予測に必要な情報を含む。空間ドメインにおける量子化予測誤差信号は、その後、加算器240により、動き補償予測またはフレーム内予測(280)の何れかから取得した予測信号に加算される。再構築画像s’は、デブロッキングフィルタ250、サンプル適応オフセット処理部、および、適応ループフィルタ260を介して送られてもよく、その結果得られる復号信号は、メモリ270に格納され、後続ブロック/画像の時間的または空間的予測に使用される。
画像を圧縮および解凍する際、ブロッキングアーチファクトは通常、ユーザにとって最も不快なものである。再構築画像のブロック間のエッジを平滑化することで、デブロッキングフィルタリングは、ユーザの知覚体験を改善する。デブロッキングフィルタリングの難点の1つは、量子化器の適用が原因でブロッキングにより生じるエッジと、および、符号化信号の一部であるエッジとを正確に判別することである。圧縮アーチファクトが原因でブロック境界にエッジが生じる場合のみ、デブロッキングフィルタが適用されることが望ましい。他の場合、デブロッキングフィルタの適用により、再構築信号が歪む可能性がある。別の難点は、デブロッキングフィルタリング用に適切なフィルタを選択することである。通常、異なる周波数応答を有する複数のローパスフィルタにおいて決定がなされ、強いまたは弱いローパスフィルタリングが行われる。デブロッキングフィルタリングを適用するかどうかを決定するため、また、適切なフィルタを選択するために、2つのブロックの境界付近に存在する画像データが考慮される。
まとめると、例えば図1のような最新のハイブリッド映像コーダは、ブロック単位の予測およびブロック単位の予測誤差符号化を行う。予測誤差符号化は量子化ステップを含む。このブロック単位の処理により、特に粗量子化の場合、いわゆるブロッキングアーチファクトが生じる。ブロッキングアーチファクトは、ブロックのエッジにおける大きな信号変化と関係する。これらのブロッキングアーチファクトは、見る人にとって非常に不快なものである。これらのブロッキングアーチファクトを減らすため、例えば、H.264/MPEG−4 AVC映像符号化標準規格、または、HEVC映像符号化の標準化の取り組みにおける試験モデルであるHMにおいて、デブロッキングフィルタリングが適用される。デブロッキングフィルタは、ブロック境界におけるサンプルごとにフィルタリングするかどうかを決定し、フィルタリングすることを決定した場合にはローパスフィルタを適用する。この決定の目的は、ブロック単位の処理に適用される量子化の結果としてブロック境界において大きな信号変化が起こるサンプルにのみ、フィルタリングを行うことである。このフィルタリングにより、ブロック境界の平滑化信号が得られる。平滑化信号は、ブロッキングアーチファクトを抑制または削減する。ブロック境界の大きな信号変化が符号化対象の原信号に属するサンプルは、高周波およびそれによる視覚的鮮明さを維持するため、フィルタリングされるべきではない。間違った決定がなされた場合、画像は不必要に平滑化されるか、ブロッキングアーチファクトが残ったままになる。
上記から、隣接画像ブロック間のブロック境界においてデブロッキングフィルタリングを適用する必要があるか否かについて、正確に判断することが望ましい。H.264/MPEG-4 AVC標準規格では、ブロック境界における各画素ラインつまり画素行または画素列の、境界付近の画素に対して、ブロックごとにデブロッキングフィルタリングの決定処理を行う。一般的に、H.264/MPEG-4 AVC標準規格でデブロッキングフィルタリング処理が行われる画像ブロックのブロックサイズは、8×8画素ブロックである。なお、例えば、予測は4×4ブロックをサポートするため、他の目的で用いる最小ブロックサイズは異なってもよい。
図3は、H.264/MPEG-4 AVCの画素行ごとの垂直境界/エッジの水平フィルタリングに関する決定を示す。図3は、4つの8×8画素画像ブロックである、処理済みブロック310、320、340、および対象ブロック330を示す。処理済みブロック340および対象ブロック330間の垂直境界において、デブロッキングフィルタリングを適用するか否かを決定する。画素行ごとの決定は、垂直境界に対して垂直な画素行の画素値に基づく。特に、フィルタリングに関する決定は、各画素行のマーク領域の画素値、例えば、5行目の画素行のマーク領域350の画素値に基づく。
同様に、図4に示すように、水平境界/エッジの垂直フィルタリングに関する決定は、画素列ごとに行う。例えば、対象ブロック430の5列目では、処理済みブロック420との境界に近い当該列の画素をフィルタリングするか否かの決定を、破線で示す長方形450で囲まれた画素に基づき行う。
境界における、各画素列または各画素行の各サンプルに対する決定処理は、図5に示される隣接ブロックの画素値を用いて行う。図5のブロックpは、1ライン(行または列)の画素値p0、p1およびp2を有する、図3または図4に示されるような処理済みブロック340または440を示す。ブロックqは、同一ラインの画素値q0、q1およびq2を有する、図3および図4に示されるような対象ブロック330または430を示す。画素q0は、ブロックqにおいて、ライン内で境界に最も近い画素である。画素q1は、qにおいて、同じライン内で境界に2番目に近い画素である。特に、同一の画素ラインに属する画素値p0およびq0は、以下の条件が満たされる場合に、フィルタリングされる。
および
ここで、QPは、量子化パラメータである。OffsetAおよびOffsettBは、スライスレベルのオフセットである。βは、αよりも小さな値が選択される。さらに、以下の条件も満たされる場合、当該ラインの画素p1がフィルタリングされる。
さらに、以下の条件も満たされる場合、画素値q1に対応する画素行または画素列の画素が、フィルタリングされる。
H.264/MPEG−4 AVCによると、画素ラインごと(水平および垂直デブロッキングフィルタリングを行う行または列)に、上記の決定動作が行われる。画素ラインごとにフィルタリングのオン・オフを切り替えることができ、これが、デブロッキングの決定の際の精度の高さにつながる。しかしながら、この手法は大きな計算量を要する。
上記のH.264/MPG−4 AVC標準規格における、少ない計算量でのデブロッキングフィルタリングの適用に関する決定プロセスは、「High Efficiency Video Coding (HEVC) text specification Working Draft 1(HMデブロッキングフィルタ、JCTVC−C403)」で提案されている。同文献は、http://wftp3.itu.int/av−arch/jctvc−site/2010_10_C_Guangzhou/から無料で入手でき、本明細書で引用する。ここで、ブロック内の画素ラインの情報のみに基づき、2つの隣接画像ブロック間のブロック境界全体に対して、デブロッキングフィルタリングのオン・オフに関する1つの決定が適用される。ここでも、デブロッキングフィルタリング処理が行われる画像ブロックのブロックサイズは、8×8画素ブロックである。
垂直エッジ/境界の水平フィルタリングに関する決定については、JCTVC−C403に従い、図6、8および9を用いて以下で説明する。図6は、4つの8×8画素画像ブロックである、処理済みブロック610、620、640、および対象ブロック630を示す。処理済みブロック640および対象ブロック630間の垂直境界に対して、デブロッキングフィルタリングを適用するか否か決定する。垂直境界は、8ライン(行)に対応する境界セグメント660上にある。デブロッキングフィルタリングの決定は、垂直境界に対して垂直に位置する3行目および6行目の画素行に基づく。特に、フィルタリングに関する決定は、3行目および6行目の画素行で構成されるマーク領域650における画素値に基づく。したがって、8行から成るセグメント660に対応する境界全体に対するフィルタリングの決定は、ブロックの8行の画素行のうち2行から成るサブセットのみに基づくことになる。
同様に、図7を参照すると、JCTVC−C403に基づく、水平エッジ/境界の垂直フィルタリングに関する決定は、水平境界を構成する8列から成るセグメント750のうち2列の画素列760の画素値に基づく。
図8は、図6の処理済みブロック640および対象ブロック630の一部分に対応する画素値の行列を示す。行列における画素値は、pi,jおよびqi,jで示される。iは、ブロック間の境界に対して垂直方向に変化するインデックスである。jは、ブロック間の境界に沿って変化するインデックスである。図8のインデックスiは、フィルタリングされる行内の画素位置に対応する0から3の間でのみ変化する。画素位置は、決定および/またはフィルタリングに用いられる。処理済みブロックおよび対象ブロックの残りの画素位置は、図示していない。図8のインデックスjは、垂直境界がフィルタリングされるブロック内の8行の画素行に対応する0から7の範囲で変化する。3行目および6行目の画素行に対応するj=2およびj=5の2行の画素行820は、ブロック境界全体のフィルタリングに関する決定(オン・オフの決定)の基準として用いられ、破線で示される。境界全体に対応する8行の画素行から成るセグメントがフィルタリングされるかどうかを決定するため、以下の条件について評価する。
βは、閾値である。この条件が満たされる場合、境界の全8行に対してフィルタリングを行うことが決定される。
図9は、この決定プロセスのさらなる詳細を示す。上記式を、j=2の画素行の画素値のみを含む項d1,v、および、j=5の画素行の画素値のみを含む項d2,v に分ける場合、フィルタリングに関する決定は、以下のように書き直すことができる。
ここで、
および
したがって、2つの値d1,vおよびd2,vを用いて、閾値処理により、垂直境界全体がフィルタリングされるか否かを決定する。ここで、インデックスvは、垂直境界に関する決定を評価することを示すために用いられる。
図8は、2つの隣接ブロックAおよびBの境界部分を形成する画素値の行列を示す。なお、この境界は水平境界であってもよく、その場合、ブロックAはブロックBの上に位置する近隣の処理済みブロックとなり、ブロックBは対象ブロックとなる。この配置は、図7の処理済みブロック720および対象ブロック730の一部分に対応する。行列における画素値は、pi,jおよびqi,jである。iは、ブロック間の境界に対して垂直方向に変化するインデックスである。本例の0から3のインデックスiは、図示したブロックAおよびBの一部のみに対応する。インデックスjは、ブロックAおよびBの境界に沿って変化する。0から7のインデックスjは、デブロッキングフィルタリングの処理対象の行数(第3のケース列)に対応する。このような場合、「処理」または「デブロッキング処理」は、デブロッキングフィルタリングが適用されるか否かの決定、および/または、フィルタタイプの選択を含む。ここで、このフィルタタイプは、ブロック内の特定のラインに属する境界周辺の画素をフィルタリングするためのフィルタが、弱フィルタであること、強フィルタであること、またはそのようなフィルタがないことを示す。境界のフィルタリング強度の導出プロセスについては、例えば、上記の「High Efficiency Video Coding (HEVC) text specification Working Draft 1」のセクション8.1.6に記載されている。特に、ブロックをフィルタリングすることが決定されると、強フィルタを適用するか弱フィルタを適用するかを決定するため、ラインごとに個別の決定がなされる。弱フィルタを適用することが決定されると、ライン全体に適用するかどうか分析する。この意味では、当該画素ラインに属する境界周辺の画素には、弱フィルタよりも強フィルタが適用される。一般的に、強フィルタは、弱フィルタよりも狭い通過帯域を有する。
3列目および6列目の画素列に対応するj=2およびj=5の2列の画素列820は、フィルタリングに関する決定の基準に用いられ、破線で示される。以下の場合、水平境界がフィルタリングされる。
ここで、βは閾値である。上記の決定が満たされる場合、境界全体に対応する水平境界の全8列にフィルタリングが適用される。図10は、この決定プロセスのさらなる詳細を示す。上記式を、j=2の画素列の画素値のみを含む項d1,h、および、j=5の画素列の画素値のみを含む項d2,hに分ける場合、フィルタリングに関する決定は、以下のように書き直すことができる。
ここで、
および
したがって、2つの値d1,hおよびd2,hを用いて、閾値処理により、水平境界全体がフィルタリングされるか否かを決定する。ここで、インデックスhは、水平境界に関する決定を評価することを示すために用いられる。
まとめると、JVCT−D403に従い、その境界に対して垂直な2行の画素行のみまたは2列の画素列のみに基づき、境界全体に対するフィルタリングのオン・オフを切り替えることができる。8行/列から成る各セグメントの2つ位置のみに対して、決定プロセスが行われる。ブロック全体に対応する8行/列のセグメントごとに、フィルタリングのオン・オフを切り替えることができる。これは、計算量がより低くなるが、決定の精度もより低くなることを意味する。
JCTVC−D263の「Parallel deblocking Filter」(2011年1月、テグ)は、http://wftp3.itu.int/av−arch/jctvc−site/2011_01_D_Daegu/から無料で入手でき、本明細書で引用する。ブロックのデブロッキングフィルタリングに関する決定処理は、JCTVC−C403と同様に行われる。つまり、デブロッキンフィルタリングのオン・オフに関する1つの決定は、垂直にまたは水平に隣接する2つの画像ブロックの、2行の画素行または2列の画素列それぞれの画素値のみに基づき、ブロック境界全体に適用される。しかしながら、2つの手法の違いは、境界をフィルタリングするか否かを決定する基準として用いる画素行または画素列は、ブロック内の異なる位置にあるということである。
JCTVC−D263に基づく、垂直境界/エッジの水平フィルタリングに関する決定については、図11および13を用いて以下で簡潔に説明する。図11において、フィルタリングを行うか否かの決定の基準として用いられる画素行は、処理済みブロック1140および対象ブロック1130の境界における、4行目および5行目1160である。垂直境界全体が、8行から成るセグメント1150に対応する。
図13は、共通境界付近のブロックAおよびBの一部を構成する画素値の行列を示す。ブロックAおよびBは、図11の処理済みブロック1140および対象ブロック1130にそれぞれ対応する。行列における画素値は、pi,jおよびqi,jで示される。iは、ブロック間の境界に対して垂直方向に変化する、0から3の範囲のインデックスである。jは、ブロック間の境界に沿って変化する、0から7の範囲のインデックスである。4行目および5行目の画素行に対応するj=3およびj=4の2行の画素行1320は、フィルタリングに関する決定の基準に用いられ、破線で示される。対象ブロックの境界付近の画素をフィルタリングするか否かを判断するため、以下の条件について評価する。
ここで、βは閾値である。上記の決定が満たされると、8行から成るセグメントに対応する境界の全行に対して、フィルタリングおよび/またはさらなる決定がなされる。上記式を、j=3の画素行の画素値のみを含む項d1,v、および、j=4の画素行の画素値のみを含む項d2,vに分ける場合、フィルタリングに関する決定は、以下のように書き直すことができる。
ここで、
および
したがって、2つの値d1,vおよびd2,vを用いて、閾値処理により、対応セグメントの8行全てをフィルタリングするか否かを決定する。ここで、インデックスvは、垂直境界に関する決定を評価することを示すために用いられる。
同様に、図12に示されるように、JCTVC−D263による、対象ブロック1230および処理済みブロック1220間の水平エッジ/境界の垂直フィルタリングを行う決定は、ブロック1230および1220間の水平境界を構成する8列の画素から成るセグメント1250のうち、2列1260のみの画素値に基づく。
図13は、図12の処理済みブロック1220および対象ブロック1230の一部に対応するとみなしてもよい。行列における画素値は、pi,jおよびqi,j,で示される。iは、ブロック間の境界に対して垂直方向に変化する、0から3の範囲のインデックスである。jは、ブロック間の境界に沿って変化する、0から7の範囲のインデックスである。4列目および5列目の画素列に対応するj=3およびj=4の2列の画素列1320は、フィルタリングに関する決定の基準に用いられ、破線で示される。よって、以下の場合、水平境界がフィルタリングされる。
βは閾値である。上記の条件が満たされる場合、8列で構成される1セグメントに対応する境界の全列にフィルタリングが適用される。上記式を、j=3の画素列の画素値のみを含む項d1,h、および、j=4の画素列の画素値のみを含む項d2,hに分ける場合、フィルタリングに関する決定は、以下のように書き直すことができる。
ここで、
および
したがって、2つの値d1,hおよびd2,hを用いて、閾値処理により、セグメント1010の8列全てをフィルタリングするか否かを決定する。ここで、インデックスhは、水平境界に関する決定を評価することを示すために用いられる。
まとめると、JVCT−D403と同様にJVCT−D263によると、このセグメントの画素行2行または画素列2列のみに基づき、境界セグメント全体に対してフィルタリングのオン・オフを切り替えることができる。8ライン(行または列)の各セグメントの2つの位置のみに対して、決定プロセスが行われる。このように、8行/列の各セグメントに対して、フィルタリングのオン・オフを切り替えることができる。これは、計算量の低さだけでなく、決定の精度の低さにも関わる。JCTVC−D263がJCTVC−C403に勝る利点は、他のサンプルを使用することで、より高度な並行処理が可能になることである。しかしながら、JCTVC−C403およびJCTVC−D263の両方の手法では、例えばH.264/MPEG−4 AVCよりも精度の低い決定がなされる。
H.264/MPEG−4 AVCでは、図2〜5に示されるような決定がなされる。ブロック境界の各画素位置において、ブロック境界に隣接するサンプルを用いて、個別の値を算出する。これらの個別の値に基づき、ブロック境界の各位置(ブロック境界に垂直な各ラインに対する各位置)において、個別の決定処理が行われる。これは、高精度な決定がなされる一方で、計算量が大きいことを意味する。JCTVC−C403では、図6および図7に示すように、ブロックエッジにおける画素は、(デブロッキングフィルタリングに用いられる最小ブロックサイズに対応する)8行/列のセグメントを構成する。8行/列のセグメントごとに、一部の位置に対してのみ値を算出する。上記の例では、8つ全ての位置ではなく2つの位置のみに対して、値を算出する。これらの値に基づき、セグメントの8行/列全てをフィルタリングするか否かの1つの決定を行う。算出される値がより少ないので、H.264/MPEG−4 AVCと比較すると計算量は減る。項値は、上述したようなd1,vおよびd2,v、または、d1,hおよびd2,hなど、ラインの境界付近の画素の値に基づく評価値である。また、値の算出において、メモリにより評価するサンプルが少なくて済むため、メモリ帯域幅は縮小する。しかしながら、この決定の精度も、H.264/MPEG−4 AVCにおける決定の精度に比べ低い。JCTVC−D263では、値の算出および決定処理はJCTVC−C403と同様に行われる。8行/列のセグメントの他の位置におけるサンプルが値の算出に用いられるという点が異なる。これらの他のサンプルを使用することで、より高度な並行処理が可能になる。計算量およびメモリ帯域幅はJCTVC−C403と同じである。しかしながら、決定の精度はさらに下がる。図11〜13で詳細を説明する。このように、周知の手法は、大きな計算量と高いメモリ帯域幅、または、低い決定の精度となる。決定の精度の低さが、符号化効率の低さにつながる可能性がある。大きな計算量および高いメモリ帯域幅の何れによっても、実施費用が高額になる可能性がある。
本発明の課題は、デブロッキングフィルタリングに現在用いられている手法が、フィルタリングの質を低下させる、または、大きな計算量を招くという分析に基づいている。
より効率的なフィルタリング手法を提供するため、本発明によると、デブロッキングフィルタリングに関する決定は、ブロック全体に対してではなく、デブロッキングフィルタによりフィルタリングされるブロックのセグメントに対して行われる。また、決定は、境界に位置するブロック内の画素のサブセットのみに基づき行われる。
一般的に、背景技術の欄でも記載したように、この決定は、境界のセグメントをフィルタリングするか否かに関する決定、および/または、境界から特定の距離離れた位置にある画素にフィルタを適用するかどうかに関する決定(フィルタ強度に関する決定に相当する)などであってもよい。
ここで、ブロックは、画素(サンプル)の最小ブロックであり、デブロッキングフィルタリングにより処理される複数の境界により範囲が決まる。ブロックの各境界における処理は、フィルタリングを適用するかどうかに関する決定、および/または、適用するフィルタの種類に関する決定、および/または、決定に基づくフィルタを適用するか否かに関する決定を含む。背景技術の欄にも記載したように、境界がデブロッキングフィルタリングにより処理されるブロックサイズは一般的には、JCTVC−D40およびJCTVC−D263のようなH.264およびHEVC標準規格と同様に、8×8画素である。ブロックはさらに、ブロックの特定の境界に対して垂直な画素ラインから構成されているとみなしてもよい。
境界とは、2つの隣接ブロックの画素を分ける論理的なラインのことである。デブロッキングフィルタリングにより処理される最小ブロックの境界は、境界に対して垂直方向に延びるブロックの画素ライン全てをカバーしており、同境界と垂直方向に延びる、ブロックの他の2つのブロック境界間に存在する。
セグメントは、デブロッキングフィルタにより処理される画素を有する境界に対して垂直方向に延びる1行/列以上の画素ラインを含む、ブロックの一部である。ブロックのセグメントは、ブロック全体における画素ラインのサブセットつまり適切な部分サブセットであり、これは、セグメントがブロックの全画素ラインよりも少ない画素ラインを含むことを意味する。よって、セグメントは、境界と平行方向に延びる特定数の画素ラインに広がる。しかしながら、セグメントは、ブロックの全画素ラインには広がることはない。さらに、ブロックの一部であるセグメントが位置する境界のセグメントは、境界の一部に相当する。
ブロックの境界の画素は、隣接ブロックとの境界付近にあるブロックの画素である。境界の画素は、境界上の(境界の最近隣の)画素、境界に2番目に近い画素、および/または3番目に近い画素などを含んでもよい。
デブロッキングフィルタリングは一般的に、一次元フィルタにより、垂直または水平に行う。境界、具体的には、境界に対し垂直方向にあるブロックの画素ラインに含まれる、境界の画素に直交するようフィルタを適用する。
図14および16は、本発明の一実施形態に係る、2つの隣接画像ブロック間の垂直境界の水平フィルタリングに関する決定プロセスを示す。同様に、図15および17は、本発明の一実施形態に係る、2つの隣接画像ブロック間の水平境界の垂直フィルタリングに関する決定プロセスを示す。
図14の左側は、4つの8×8画素画像ブロックである、処理済みブロック1410、1420、1440、および対象ブロック1430を示す。ブロック1410は、対象ブロック1430の左上の隣接ブロックである。ブロック1420は、対象ブロック1430の上にある隣接ブロックである。ブロック1440は、対象ブロック1430の左隣の隣接ブロックである。左隣の隣接ブロック1140および対象ブロック1130間の垂直境界1450は、水平フィルタリングに関する決定を行う境界である。この境界1450は基本的に、上方の水平境界1470および下方の水平境界1480の間にあり、かつ、それらに挟まれる。上方の水平境界1470および下方の水平境界1480を垂直にフィルタリングしてもよい。境界1450に隣接する処理済みブロック1440および対象ブロック1430は、当該境界に対し垂直方向にある8行の画素行で構成される。したがって、図14の水平フィルタリングを行う垂直境界は、8行の画素行から成るセグメント1450にある。境界は複数のセグメントに分割することができ、最小セグメントは1行の画素行である。
ブロック境界1450のセグメントにデブロッキングフィルタを適用するか否かについて決定するため、対象ブロック1430および/または処理済みブロック1440の画素行から成る(適切な部分)サブセットの画素が、決定の基準として用いられる。背景技術の欄で記載した手法においても、処理済みブロック1440および対象ブロック1430の行(列)サブセットの画素は、これらのブロック間の共通境界の(共通境界付近の)画素である。図14の例において、境界の各セグメントにデブロッキングフィルタを適用するか否かの決定に、8行の画素行のうち2行を用いる。この場合、3行目および6行目の画素行を選択する。これら2行の画素行は、処理済みブロック1440および対象ブロック1430を構成する8行の画素行の(適切な部分)サブセットのことである。ここで、ブロックを構成する画素行の適切な部分サブセットは、画像ブロックを構成する画素行の合計数よりも少ない画素行数で構成されると定義する。行のサブセットのサンプルは、この場合は2行の画素行のサンプルであり、図14の右側に示すように、境界のセグメントに対する個別の決定を行うために用いる。これは、例えば、行のサブセットの画素の関数としてのライン決定項d1,vおよびd2,vを算出することにより、実現される。上記のように、JCTVC−C403またはJCTVC−D263に基づき、値d1,vおよびd2,vと同様に値d1,vおよびd2,vを算出してもよい。これらの値は、例えば、2つの隣接ブロック1440および1430各々のブロックにおける隣接画素間、または、ブロック1440および1430両方のブロックの画素間の、第1または第2の順番の勾配として、算出してもよい。これらの勾配は、これらの画素間の差として算出してもよい。そのような算出は、2つのブロック間のブロッキング効果を推定する上で便利である。
さらに、1からN番目までの各セグメントに対して、ライン決定項d1,vおよびd2,vの関数に対応する個別決定値FNを閾値βと比較する。
上記の条件が満たされる場合、垂直境界1450の個々のセグメントにフィルタリングを適用する。なお、ライン項d1,vおよびd2,vは、必ずしも別々のステップで算出されなくてもよい。事前にライン決定項を別々に算出したり記録したりすることなく、個別決定値を算出してもよい。本例において、フィルタリングするブロックの各行に対応する各境界位置はセグメントであり、これらの各行に対して、行サブセットの画素の個々の関数に基づき、その境界位置がフィルタリングされるか否かを決定する。本例においてこれは、1)ブロックの行サブセットの画素、および2)セグメントの位置に基づく、個別の決定項の(セグメント位置に依存する)補間または補外に相当する。
図15は、図14を用いて説明したような垂直境界の水平フィルタリングと類似する、水平境界の垂直フィルタリングに関する決定を示す。ここでは、3行目および6行目の画素行に代わり、3列目および6列目の画素列がフィルタリングに関する決定の基準になる。3列目および6列目の画素列の列サブセットから得られる情報は、算出値であるライン決定項d1,hおよびd2,hである。さらに、1からN番目までの各セグメントについて、ライン決定項d1,hおよびd2,hの個々の関数である個別決定値(FN)を閾値βと比較する。
上記の条件が満たされる場合、水平境界1550の個々のセグメントにフィルタリングを適用する。本例において、各列は、個々の関数FNが適用される個々のセグメントであってもよい。関数は、必ずしもライン決定項の関数として算出されなくてもよく、サブセット列の個々の画素から直接算出してもよい。
図16は、境界の個々のセグメントに対する3行目および6行目の画素行に基づく算出値の上記の個々の関数に関する、具体的な解決策とその実施を示す。この場合、3つそれぞれのブロック(境界)セグメントに対する個別の決定は、3つの個別決定値に基づき行う。特に、図16の右側は、1行目から3行目の画素行において、3行目の画素行の画素に基づき得られる値d1,vを以下の決定で用いることを示す。
上記の条件が満たされる場合、境界1650の1行目から3行目の画素行に及ぶセグメントにフィルタリングを適用する。しかしながら、これは、1行目、2行目、または3行目の画素行それぞれに存在する個々のセグメントに対する決定と同じとみなすこともできる。このように、1行目および2行目の画素行の個別決定値は、第3セグメントの個別決定値の最近傍補間とみなすこともできる。つまり、ライン決定項が算出される行に用いる個別決定値が、同じセグメント内の他の行にも用いられる。境界の4行目および5行目の画素行に対応する境界のさらなるセグメントに対して、3行目および6行目の画素行両方の情報を用いる。値d1,vおよびd2,vを以下の決定に用いる。
上記の条件が満たされる場合、境界1650の4行目および5行目の画素行に及ぶセグメントにフィルタリングを適用する。しかしながら、これは、4行目または5行目の画素行それぞれにある個々のセグメントに対する決定と同じとみなすこともできる。境界の6番目から8番目の画素位置に対応する境界の別のセグメントでは、フィルタリングに関する決定に、6行目の画素行の情報を用いる。値d2,vを以下の決定に用いる。
上記の条件が満たされる場合、境界1650の6行目の画素行から8行目に及ぶセグメントにフィルタリングを適用する。しかしながら、これは、6行目、7行目または8行目の画素行それぞれに存在する個々のセグメントに対する決定と同じとみなすこともできる。しかしながら、本発明の効果を実現するため、境界の少なくとも2つのセグメントに対し別々に決定を行い、別々に算出された少なくとも2つの決定値を決定プロセスに適用する。
図16に対応する図17は、水平境界の各セグメントに対する3列目および6列目の画素列に基づく算出値の上記の個々の関数に関する、具体的な解決策とその実施を示す。特に、図17の右側は、1列目から3列目の画素列の場合、画素列3列目に基づき取得した値d1,hを以下の決定に用いる。
上記の条件が満たされる場合、境界1750の1列目から3列目の画素列に及ぶセグメントにフィルタリングを適用する。しかしながら、これは、1列目、2列目または3列目の画素列それぞれに存在する個々のセグメントに対する決定と同じとみなすこともできる。境界の4列目および5列目の画素列に対応する境界のさらなるセグメントに対して、3列目および6列目の画素列の情報を用いる。よって、値d1,hおよびd2,hを以下の決定に用いる。
上記の条件が満たされる場合、境界1750の4列目および5列目の画素列に及ぶセグメントにフィルタリングを適用する。しかしながら、これは、4列目または5列目の画素列それぞれに存在する個々のセグメントに対する決定と同じとみなすこともできる。境界の6番目から8番目の画素位置に対応する境界の別のセグメントでは、フィルタリングに関する決定に、6列目の画素列の情報を用いる。よって、値d2,hを以下の決定に用いる。
上記の条件が満たされる場合、境界1750の6列目から8列目の画素列に及ぶセグメントにフィルタリングを適用する。しかしながら、これは、6列目、7列目または8列目の画素列それぞれに存在する個々のセグメントに対する決定と同じとみなすこともできる。
まとめると、本発明の本実施形態によると、ブロックの境界のセグメントにデブロッキングフィルタを適用するか否かの判断プロセスは、ブロックの画素ラインのサブセットを構成する画素に基づき境界の各セグメントを個別に判断し、個別の判断の結果に応じて境界のセグメントにデブロッキングフィルタを適用するまたは適用しないことにより、行われる。
さらに、ブロックの境界のセグメントにデブロッキングフィルタを適用するか否かを判断する際、ブロックの画素ラインのサブセットのうち少なくとも1つの画素ラインを構成する画素の画素値を用いることにより、境界の各セグメントの個別決定値を求め、境界の個々のセグメントの閾値と比較する。
取得した個別決定値のうち少なくとも1つの決定値は、画素ラインのサブセットのうち1つの画素ラインにのみ基づく。画素ラインのサブセットのうち1つの画素ラインに基づくさらなる個別決定値は、最初に取得した決定値に最近傍補間を適用することにより求めてもよい。
さらに、少なくとも別の決定値は、画素ラインのサブセットのうち少なくとも2つの画素ラインに基づいてもよい。この後述の決定値は、画素ラインのサブセットのうち1つの画素ラインに基づく個別決定値の線形結合であってもよい。
本発明の別の実施形態によると、ブロックの境界のセグメントにデブロッキングフィルタを適用するか否かの判断プロセスは、ブロックの画素ラインのサブセットを構成する画素だけでなく、現在処理されている境界に垂直な別の境界を挟んでブロックと隣接する別のブロックを構成する画素行の画素にも基づく。したがって、境界のセグメントに対する個別の決定を行うため、ブロックの画素ラインのサブセットに含まれる情報だけでなく、隣接ブロックまたは処理済みブロックそれぞれの画素ライン(行または列)を用いてもよい。これについては、垂直境界/エッジの水平フィルタリングの決定に関する図18の例に示している。特に、一例として図18の左側は、4つの画像ブロック1810、1820、1830、および1840のうち、上の2つの処理済みブロック1810および1820の3行目の画素行から、セグメントの個別の決定に関する付加情報を取得することを示す。対象ブロック1830および処理済みブロック1840の画素行のサブセットの画素値により決定項d1,vおよびd2,vを算出することに加え、処理済みブロック1810および1820の3行目のこれらの画素値を決定項d0,vの算出に用いる。右側に示すように、セグメントに対する個別の決定は、垂直境界に隣接する処理済みブロック1840および対象ブロック1830の3行目および6行目の画素行に基づく算出値d1,vおよびd2,vだけでなく、処理済みブロック1810および1820の3行目の画素行に基づく算出値d0,vにも基づいている。個別決定値FNは、取得済みの情報、すなわち、算出値(決定項)d1,v、d2,vおよびd0,vについての個々の関数であり、1〜N番目の各セグメントについて閾値βと比較される。
上記の条件が満たされる場合、垂直境界の個々のセグメントにフィルタリングを適用する。同様に、図19に示すように、水平境界の垂直フィルタリングの決定にもこの原理を適用することができる。
本発明の別の実施形態によると、ブロックの境界のセグメントにデブロッキングフィルタを適用するか否かの判断プロセスにおいて、判断の基準となる画素ラインは、処理される境界と平行な方向に等間隔で存在する。本実施形態の例として、図20は、処理済みブロック2040および対象ブロック2030の垂直境界の水平フィルタリングに関する決定を示す。ここで、垂直境界のセグメントのデブロッキングフィルタリングの決定に関する基準として用いる画素行は、垂直境界と平行方向に等間隔で存在する。つまり、例えばライン決定項dを算出するための画素行間は等間隔である。図20の例において、デブロッキングフィルタリングの決定のための基準として用いる全ての画素行は、デブロッキングフィルタリングの決定のための基準として用いない3行の画素行の間隔を空けて配置されている。本実施形態は、より効率的なデブロッキングフィルタリングに関する決定を実現するため有益である。
本発明の別の実施形態において、ブロックの境界のセグメントにデブロッキングフィルタを適用するか否かを判断するプロセスでは、境界の各セグメントに対する個別決定値を得るため、画素ラインのサブセットの1つの画素ラインに基づく個別決定値を線形補間し、その後、閾値と比較する。図21および22は、本実施形態に係る水平エッジの垂直フィルタリングに関する決定を示す。具体的には、境界の各セグメントに対する個別の決定の基準として用いる画素行のサブセットは、ブロックを構成する8行の画素行のうちの4行で構成される。図21において、画素行のサブセットは、1行目、3行目、6行目および8行目の画素行である。これに基づき、処理済みブロック2140および対象ブロック2130間の垂直境界を成す各セグメントに対し、値d1,v、d2,v、d3,vおよびd4,v(ライン決定項)を算出し、個別決定値の取得に用いる。具体的には、1行目の画素行に対応する第1セグメントにデブロッキングフィルタを適用するか否かを判断するための条件を以下に示す。
2行目の画素行に対応する第2セグメントにデブロッキングフィルタを適用するか否かを判断するための条件を以下に示す。
3行目の画素行に対応する第3セグメントにデブロッキングフィルタを適用するか否かを判断するための条件を以下に示す。
4行目の画素行に対応する第4セグメントにデブロッキングフィルタを適用するか否かを判断するための条件を以下に示す。
4行目の画素行に対応する第4セグメントにデブロッキングフィルタを適用するか否かを判断するための別の条件を以下に示す。
5行目の画素行に対応する第5セグメントにデブロッキングフィルタを適用するか否かを判断するための条件を以下に示す。
5行目の画素行に対応する第5セグメントにデブロッキングフィルタを適用するか否かを判断するための別の条件を以下に示す。
6行目の画素行に対応する第6セグメントにデブロッキングフィルタを適用するか否かを判断するための条件を以下に示す。
7行目の画素行に対応する第7セグメントにデブロッキングフィルタを適用するか否かを判断するための条件を以下に示す。
8行目の画素行に対応する第8セグメントにデブロッキングフィルタを適用するか否かを判断するための条件を以下に示す。
上記の条件の1つが満たされる場合、垂直境界の個々のセグメントにフィルタリングを適用する。上記の手法によると、値d1,v、d2,v、d3,vおよびd4,v(ライン決定項)の線形結合により、セグメントに対する個別決定を行う。また、上記の手法は、境界のある画素位置に広がるセグメントに対して取得した個別決定値の補間に相当する。さらに、水平エッジ/境界でデブロッキングフィルタを適用するか否かの判断に、同手法を用いることができると考えられる。
まとめると、高符号化効率、低計算量、および、低メモリ帯域でデブロッキングするために、決定および/またはライン決定項は、(JCTVC−C403およびJCTVC−D263のように)位置ごとに算出されない。これにより、メモリ帯域幅および計算量が限定される。しかしながら、エッジの各エッジ位置において個別に正確な決定を行うため、算出値(ライン決定項)の個々の関数を用いる。一般的な例を図14および15に示す。より具体的な例を図16および17に示す。具体的な解決策として、図18および19に示すように、他のセグメント(例えば近隣のセグメント)の算出値も関数に用いられる。図20に示すように、値の算出に用いる位置について規則的な分布を利用することが有益であるかもしれない。さらなる具体的な解決策として、図21および22に示すように、8つのエッジ位置のエッジの各セグメントに対して4つの値を算出する。4つの算出値の線形結合を用いて、それぞれのエッジ位置に対して個別の決定を行う。本発明の効果は、同じ低計算量および同じ低メモリ帯域での符号化効率の向上である。
一例として、本発明が引例に勝る効率性について以下で説明する。HM2.0では、算出した2つの決定値を用いて、8列/行から成るエッジセグメントに対し、デブロッキングを有効化する1つの決定を行う。HM2.0とは対照的に、H.264/MPEG−4 AVCでは、各エッジセグメントに対して個別に算出した8つの決定値に基づく8つの決定を用いる。H.264/MPEG−4 AVCと同様の決定に変えることで、すべてのテストケースにおいて、質を維持したまま平均0.2%ビットレートを下げることができる。しかしながら、追加の決定値を算出することにより、計算量は増える。より少ない追加の計算量で平均的なビットレートの低下が維持されるように、決定の変形例を発明した。本発明では、8つの決定を行うが、各エッジセグメントに対し4つの決定値のみを算出すればよい。HM2.0(I−HE: 0.1%、 I−LC: 0.1%、 RA−HE: 0.2%、 RA−LC: 0.2%、 LD−HE: 0.3%、 LD−LC: 0.3%)と比較した場合、エンコーダ/デコーダの平均的な実行時間がほとんど増加することなく、0.2%の平均的なビットレートの低下が維持される。低遅延でありかつ高効率である構成において、クラスEシーケンスでは、0.7%の平均的なビットレートの低下が実現される。同じビットレートにおける、主観的品質の向上は顕著である。
現在のHM 2.0(例えば、HM2.0ソフトウェア: http://hevc.kw.bbc.co.uk/trac/browser/tags/HM−2.0およびT. Wiegand, W.−J. Han, J.−R. Ohm, G. J. Sullivan、「High Efficiency Video Coding (HEVC) text specification Working Draft 1、JCTVC−C403」(2010年10月中国広州)、両文献ともHM 2.0として以下で引用)は、ハイブリッド符号化を適用する。図23は、ハイブリッドコーダの一般的なブロック図を示す。第1ステップでは、動き補償予測またはイントラ予測により、符号化対象の入力信号をブロック単位で予測する。結果として生じる予測誤差は、離散コサイン変換の近似(整数DCT)を適用し係数の量子化を行うことで、ブロック単位で変換符号化される。ブロック単位の動き補償予測およびブロック単位の予測誤差符号化が原因となり、いわゆるブロッキングアーチファクトが復号画像に現れることが多い。これらのブロッキングアーチファクトは、見る人にとって不快なものとなりやすい。これらの不快なブロッキングアーチファクトを減らすため、適応デブロッキングフィルタを適用する。さらなる予測のために出力したり記録する前に、適応ループフィルタを用いて復号信号をさらにフィルタリングする。図24は、例示のテストシーケンスKimonoの領域に対してデブロッキングを行う前後の信号を示す。
画像のデブロッキングは符号化単位(CU)に基づき行う。CUは例えば、8×8サンプルや16×16サンプルなど様々なサイズであってもよい。予測ブロックおよび変換ブロックの垂直エッジおよび水平エッジをデブロッキングする。各エッジは1つまたは複数のセグメントで構成される。一方、1つのセグメントは8つの連続する行または列で構成される。水平エッジのセグメントhiの前に、垂直エッジのセグメントviをデブロッキングする。図25は、16×16サイズのサンプルの符号化単位を例示しており、対応する4つのセグメントv1〜v4、および、4つのセグメントh1〜h4の位置を示す。垂直エッジのデブロッキング順は、上から下そして左から右である。水平エッジのデブロッキング順は、左から右そして上から下である。エッジのセグメントの各側のサンプルは以下で、図26に示されるようなAおよびBとして示す(JCT−VC、 Test Model under Consideration、JCTVC−B205_draft007、2010年7月21〜28日、スイス、ジュネーブ)。セグメントAは、垂直エッジについてはBの左に隣接する部分に対応しており、水平エッジについてはBの上に隣接する部分に対応する。以下のセクションで説明するように、8行/列から成るセグメントごとに、決定およびフィルタリング処理を行う。
第1ステップでは、HM2.0による決定において、図27に示すような2行/列のサンプルを用いて、2つの値d2およびd5を算出する。
2つの値d2およびd5を用いて、閾値処理により、対応セグメントを構成する全8行/列をフィルタリングするか否かを決定する。
決定を行うために、8行/列の各セグメントに対し20の処理が必要とされる。
HM2.0とは対象的に、H.264/MPEG−4 AVCは、行/列ごとに、(H.264/MPEG−4 AVCと同様の決定である)個別の決定を適用する。H.264/MPEG−4 AVCと同様の決定を分析するため、図28に示すように、8行/列それぞれに対して個別値diを算出する。
ここで、
個別値diを用いて、閾値処理により、行/列ごとに、対応セグメントの行/列をフィルタリングするか否かを決定する。
決定を行うために、8行/列の各セグメントに対し88の処理が必要とされる。
HM2.0は、8行/列のセグメントに対して決定を行うために、20の処理を必要とする。H.264/MPEG−4 AVCと同様の決定を行う場合には、88の処理が必要とされる。
本実施形態では、必要な処理の数により評価される計算量に関して、HM2.0の決定と、H.264/MPEG−4 AVCの決定との折衷案を提案する。図29に示すように、8行/列で構成される各セグメントに対し、4つの値d0、d2、d5およびd7を算出する。
ここで、
これらの値を用いて、閾値処理により、行/列ごとに、対応セグメントの行/列をフィルタリングするか否かを決定する。
ここで、
ここで、
ここで、
ここで、
ここで、
決定を行うために、8行/列の各セグメントに対して、58の処理のみが要求される。
実験と結果を以下に示す。H.264/MPEG−4 AVCと同様の決定、および、HM2.0とH.264/MPEG−4 AVCとの妥協による決定をどちらも、HM2.0の参照ソフトウェアに統合する。
BDビットレートおよび実行時間の割合に関する実験と結果を以下に示す。共通の条件(例えば、F. Bossen、「Common test conditions and software reference configurations, JCTVC−D500」(2011年1月韓国テグ))に従って、高効率の処理モードおよび低計算量の処理モードのそれぞれにおけるイントラ、ランダムアクセスおよび低遅延のケースである6つのテストケースのパフォーマンスを評価する。実行時間の全ての測定に同一構成のコンピュータを用いる。
H.264/MPEG−4 AVCと同様の決定を示す図30およびHM2.0とH.264/MPEG−4 AVCとの妥協による決定を示す図31に、参照例のHM2.0と比較した際の、BDレート結果およびエンコーダおよびデコーダの実行時間の割合を示す。負のBDレートは、参照例と比較した場合の利得を示す。実行時間の割合が100%未満である場合、参照例の実行時間よりも実行時間が短いことを意味する。両方のケースで以下の結果が確認できる。ビットレートの低減は、全てのテストシーケンスおよびテスト構成において平均で0.2%であり、LD−LCのクラスEでは平均で0.7%である。概して、エンコーダ/デコーダの実行時間は平均的には増加していない。
主観的評価については以下で説明する。CE12では、主観的評価に対して異なるテストシーケンスを選択した。これらのテストシーケンスについては、参照例と比較した場合の提案例の主観的品質を、図32の表に示す結果で評価した。6つのテストシーケンスのうち5つのテストシーケンスでは、主観的品質における顕著な違いは見られない。6つのテストシーケンスのうち1つのテストシーケンスでは、提案例が参照例よりも明らかに鮮明であり、ブロッキングの増加も見られない。また、提案例では、カラーアーチファクトがより少ない。
図33および34は、鮮明さの向上を示す。図33では、参照例のHM2.0、低遅延、高効率、およびQP37の場合の、テストシーケンスVidyo3のデブロッキング済みフレームの抽出部分を示す。図34は、提案したデブロッキングの場合と同じ抽出部分を示す。
図35は、カラーアーチファクトの低減を示す。参照例のHM2.0、低遅延、高効率、およびQP37の場合の、テストシーケンスVidyo3のデブロッキング済みフレームの抽出部分を示す。図36は、提案したデブロッキングの場合と同じ抽出部分を示す。
符号化効率と計算量とを以下で対比する。図37では、8行/列の各エッジセグメントに必要とされる追加の処理数に対する、全てのテストケースおよびテストシーケンスにわたって平均化されたビットレートの低減を示す。これら両方を参照例のHM2.0と比較した。H.264/MPEG−4 AVCの妥協による決定において、平均なビットレートの低減は0.2%でこれは参照例と同じであるが、処理量はH.264/MPEG−4 AVCと同様の決定よりも44%少ない。
上述のような本発明の全ての実施形態は組み合わせることが可能である。
上記各実施の形態で示した動画像符号化方法または動画像復号化方法の構成を実現するためのプログラムを記憶メディアに記録することにより、上記各実施の形態で示した処理を独立したコンピュータシステムにおいて簡単に実施することが可能となる。記憶メディアは、磁気ディスク、光ディスク、光磁気ディスク、ICカード、半導体メモリ等、プログラムを記録できるものであればよい。
さらにここで、上記各実施の形態で示した動画像符号化方法や動画像復号化方法の応用例とそれを用いたシステムを説明する。
図38は、コンテンツ配信サービスを実現するコンテンツ供給システムex100の全体構成を示す図である。通信サービスの提供エリアを所望の大きさに分割し、各セル内にそれぞれ固定無線局である基地局ex106、ex107、ex108、ex109、ex110が設置されている。
このコンテンツ供給システムex100は、インターネットex101にインターネットサービスプロバイダex102および電話網ex104、および基地局ex106からex110を介して、コンピュータex111、PDA(Personal Digital Assistant)ex112、カメラex113、携帯電話ex114、ゲーム機ex115などの各機器が接続される。
しかし、コンテンツ供給システムex100は図38のような構成に限定されず、いずれかの要素を組合せて接続するようにしてもよい。また、固定無線局である基地局ex106からex110を介さずに、各機器が電話網ex104に直接接続されてもよい。また、各機器が近距離無線等を介して直接相互に接続されていてもよい。
カメラex113はデジタルビデオカメラ等の動画撮影が可能な機器であり、カメラex116はデジタルカメラ等の静止画撮影、動画撮影が可能な機器である。また、携帯電話ex114は、GSM(登録商標)(Global System for Mobile Communications)方式、CDMA(Code Division Multiple Access)方式、W−CDMA(Wideband−Code Division Multiple Access)方式、若しくはLTE(Long Term Evolution)方式、HSPA(High Speed Packet Access)の携帯電話機、またはPHS(Personal Handyphone System)等であり、いずれでも構わない。
コンテンツ供給システムex100では、カメラex113等が基地局ex109、電話網ex104を通じてストリーミングサーバex103に接続されることで、ライブ配信等が可能になる。ライブ配信では、ユーザがカメラex113を用いて撮影するコンテンツ(例えば、音楽ライブの映像等)に対して上記各実施の形態で説明したように符号化処理を行い、ストリーミングサーバex103に送信する。一方、ストリーミングサーバex103は要求のあったクライアントに対して送信されたコンテンツデータをストリーム配信する。クライアントとしては、上記符号化処理されたデータを復号化することが可能な、コンピュータex111、PDAex112、カメラex113、携帯電話ex114、ゲーム機ex115等がある。配信されたデータを受信した各機器では、受信したデータを復号化処理して再生する。
なお、撮影したデータの符号化処理はカメラex113で行っても、データの送信処理をするストリーミングサーバex103で行ってもよいし、互いに分担して行ってもよい。同様に配信されたデータの復号化処理はクライアントで行っても、ストリーミングサーバex103で行ってもよいし、互いに分担して行ってもよい。また、カメラex113に限らず、カメラex116で撮影した静止画像および/または動画像データを、コンピュータex111を介してストリーミングサーバex103に送信してもよい。この場合の符号化処理はカメラex116、コンピュータex111、ストリーミングサーバex103のいずれで行ってもよいし、互いに分担して行ってもよい。
また、これら符号化・復号化処理は、一般的にコンピュータex111や各機器が有するLSIex500において処理する。LSIex500は、ワンチップであっても複数チップからなる構成であってもよい。なお、動画像符号化・復号化用のソフトウェアをコンピュータex111等で読み取り可能な何らかの記録メディア(CD−ROM、フレキシブルディスク、ハードディスクなど)に組み込み、そのソフトウェアを用いて符号化・復号化処理を行ってもよい。さらに、携帯電話ex114がカメラ付きである場合には、そのカメラで取得した画像データを送信してもよい。このときの動画データは携帯電話ex114が有するLSIex500で符号化処理されたデータである。
また、ストリーミングサーバex103は複数のサーバや複数のコンピュータであって、データを分散して処理したり記録したり配信するものであってもよい。
以上のようにして、コンテンツ供給システムex100では、符号化されたデータをクライアントが受信して再生することができる。このようにコンテンツ供給システムex100では、ユーザが送信した情報をリアルタイムでクライアントが受信して復号化し、再生することができ、特別な権利や設備を有さないユーザでも個人放送を実現できる。
なお、コンテンツ供給システムex100の例に限らず、図39に示すように、デジタル放送用システムex200にも、上記各実施の形態の少なくとも動画像符号化装置または動画像復号化装置のいずれかを組み込むことができる。具体的には、放送局ex201では映像データに音楽データなどが多重化された多重化データが電波を介して通信または衛星ex202に伝送される。この映像データは上記各実施の形態で説明した動画像符号化方法により符号化されたデータである。これを受けた放送衛星ex202は、放送用の電波を発信し、この電波を衛星放送の受信が可能な家庭のアンテナex204が受信する。受信した多重化データを、テレビ(受信機)ex300またはセットトップボックス(STB)ex217等の装置が復号化して再生する。
また、DVD、BD等の記録メディアex215に記録した多重化データを読み取り復号化する、または記録メディアex215に映像信号を符号化し、さらに場合によっては音楽信号と多重化して書き込むリーダ/レコーダex218にも上記各実施の形態で示した動画像復号化装置または動画像符号化装置を実装することが可能である。この場合、再生された映像信号はモニタex219に表示され、多重化データが記録された記録メディアex215により他の装置やシステムにおいて映像信号を再生することができる。また、ケーブルテレビ用のケーブルex203または衛星/地上波放送のアンテナex204に接続されたセットトップボックスex217内に動画像復号化装置を実装し、これをテレビのモニタex219で表示してもよい。このときセットトップボックスではなく、テレビ内に動画像復号化装置を組み込んでもよい。
図40は、上記各実施の形態で説明した動画像復号化方法および動画像符号化方法を用いたテレビ(受信機)ex300を示す図である。テレビex300は、上記放送を受信するアンテナex204またはケーブルex203等を介して映像データに音声データが多重化された多重化データを取得、または出力するチューナex301と、受信した多重化データを復調する、または外部に送信する多重化データに変調する変調/復調部ex302と、復調した多重化データを映像データと、音声データとに分離する、または信号処理部ex306で符号化された映像データ、音声データを多重化する多重/分離部ex303を備える。
また、テレビex300は、音声データ、映像データそれぞれを復号化する、またはそれぞれの情報を符号化する音声信号処理部ex304、映像信号処理部ex305を有する信号処理部ex306と、復号化した音声信号を出力するスピーカex307、復号化した映像信号を表示するディスプレイ等の表示部ex308を有する出力部ex309とを有する。さらに、テレビex300は、ユーザ操作の入力を受け付ける操作入力部ex312等を有するインタフェース部ex317を有する。さらに、テレビex300は、各部を統括的に制御する制御部ex310、各部に電力を供給する電源回路部ex311を有する。インタフェース部ex317は、操作入力部ex312以外に、リーダ/レコーダex218等の外部機器と接続されるブリッジex313、SDカード等の記録メディアex216を装着可能とするためのスロット部ex314、ハードディスク等の外部記録メディアと接続するためのドライバex315、電話網と接続するモデムex316等を有していてもよい。なお記録メディアex216は、格納する不揮発性/揮発性の半導体メモリ素子により電気的に情報の記録を可能としたものである。テレビex300の各部は同期バスを介して互いに接続されている。
まず、テレビex300がアンテナex204等により外部から取得した多重化データを復号化し、再生する構成について説明する。テレビex300は、リモートコントローラex220等からのユーザ操作を受け、CPU等を有する制御部ex310の制御に基づいて、変調/復調部ex302で復調した多重化データを多重/分離部ex303で分離する。さらにテレビex300は、分離した音声データを音声信号処理部ex304で復号化し、分離した映像データを映像信号処理部ex305で上記各実施の形態で説明した復号化方法を用いて復号化する。復号化した音声信号、映像信号は、それぞれ出力部ex309から外部に向けて出力される。出力する際には、音声信号と映像信号が同期して再生するよう、バッファex318、ex319等に一旦これらの信号を蓄積するとよい。また、テレビex300は、放送等からではなく、磁気/光ディスク、SDカード等の記録メディアex215、ex216から多重化データを読み出してもよい。次に、テレビex300が音声信号や映像信号を符号化し、外部に送信または記録メディア等に書き込む構成について説明する。テレビex300は、リモートコントローラex220等からのユーザ操作を受け、制御部ex310の制御に基づいて、音声信号処理部ex304で音声信号を符号化し、映像信号処理部ex305で映像信号を上記各実施の形態で説明した符号化方法を用いて符号化する。符号化した音声信号、映像信号は多重/分離部ex303で多重化され外部に出力される。多重化する際には、音声信号と映像信号が同期するように、バッファex320、ex321等に一旦これらの信号を蓄積するとよい。なお、バッファex318、ex319、ex320、ex321は図示しているように複数備えていてもよいし、1つ以上のバッファを共有する構成であってもよい。さらに、図示している以外に、例えば変調/復調部ex302や多重/分離部ex303の間等でもシステムのオーバフロー、アンダーフローを避ける緩衝材としてバッファにデータを蓄積することとしてもよい。
また、テレビex300は、放送等や記録メディア等から音声データ、映像データを取得する以外に、マイクやカメラのAV入力を受け付ける構成を備え、それらから取得したデータに対して符号化処理を行ってもよい。なお、ここではテレビex300は上記の符号化処理、多重化、および外部出力ができる構成として説明したが、これらの処理を行うことはできず、上記受信、復号化処理、外部出力のみが可能な構成であってもよい。
また、リーダ/レコーダex218で記録メディアから多重化データを読み出す、または書き込む場合には、上記復号化処理または符号化処理はテレビex300、リーダ/レコーダex218のいずれで行ってもよいし、テレビex300とリーダ/レコーダex218が互いに分担して行ってもよい。
一例として、光ディスクからデータの読み込みまたは書き込みをする場合の情報再生/記録部ex400の構成を図41に示す。情報再生/記録部ex400は、以下に説明する要素ex401、ex402、ex403、ex404、ex405、ex406、ex407を備える。光ヘッドex401は、光ディスクである記録メディアex215の記録面にレーザスポットを照射して情報を書き込み、記録メディアex215の記録面からの反射光を検出して情報を読み込む。変調記録部ex402は、光ヘッドex401に内蔵された半導体レーザを電気的に駆動し記録データに応じてレーザ光の変調を行う。再生復調部ex403は、光ヘッドex401に内蔵されたフォトディテクタにより記録面からの反射光を電気的に検出した再生信号を増幅し、記録メディアex215に記録された信号成分を分離して復調し、必要な情報を再生する。バッファex404は、記録メディアex215に記録するための情報および記録メディアex215から再生した情報を一時的に保持する。ディスクモータex405は記録メディアex215を回転させる。サーボ制御部ex406は、ディスクモータex405の回転駆動を制御しながら光ヘッドex401を所定の情報トラックに移動させ、レーザスポットの追従処理を行う。システム制御部ex407は、情報再生/記録部ex400全体の制御を行う。上記の読み出しや書き込みの処理はシステム制御部ex407が、バッファex404に保持された各種情報を利用し、また必要に応じて新たな情報の生成・追加を行うと共に、変調記録部ex402、再生復調部ex403、サーボ制御部ex406を協調動作させながら、光ヘッドex401を通して、情報の記録再生を行うことにより実現される。システム制御部ex407は例えばマイクロプロセッサで構成され、読み出し書き込みのプログラムを実行することでそれらの処理を実行する。
以上では、光ヘッドex401はレーザスポットを照射するとして説明したが、近接場光を用いてより高密度な記録を行う構成であってもよい。
図42に光ディスクである記録メディアex215の模式図を示す。記録メディアex215の記録面には案内溝(グルーブ)がスパイラル状に形成され、情報トラックex230には、予めグルーブの形状の変化によってディスク上の絶対位置を示す番地情報が記録されている。この番地情報はデータを記録する単位である記録ブロックex231の位置を特定するための情報を含み、記録や再生を行う装置において情報トラックex230を再生し番地情報を読み取ることで記録ブロックを特定することができる。また、記録メディアex215は、データ記録領域ex233、内周領域ex232、外周領域ex234を含んでいる。ユーザデータを記録するために用いる領域がデータ記録領域ex233であり、データ記録領域ex233より内周または外周に配置されている内周領域ex232と外周領域ex234は、ユーザデータの記録以外の特定用途に用いられる。情報再生/記録部ex400は、このような記録メディアex215のデータ記録領域ex233に対して、符号化された音声データ、映像データまたはそれらのデータを多重化した多重化データの読み書きを行う。
以上では、1層のDVD、BD等の光ディスクを例に挙げ説明したが、これらに限ったものではなく、多層構造であって表面以外にも記録可能な光ディスクであってもよい。また、ディスクの同じ場所にさまざまな異なる波長の色の光を用いて情報を記録したり、さまざまな角度から異なる情報の層を記録したりなど、多次元的な記録/再生を行う構造の光ディスクであってもよい。
また、デジタル放送用システムex200において、アンテナex205を有する車ex210で衛星ex202等からデータを受信し、車ex210が有するカーナビゲーションex211等の表示装置に動画を再生することも可能である。なお、カーナビゲーションex211の構成は例えば図40に示す構成のうち、GPS受信部を加えた構成が考えられ、同様なことがコンピュータex111や携帯電話ex114等でも考えられる。
図43Aは、上記実施の形態で説明した動画像復号化方法および動画像符号化方法を用いた携帯電話ex114を示す図である。携帯電話ex114は、基地局ex110との間で電波を送受信するためのアンテナex350、映像、静止画を撮ることが可能なカメラ部ex365、カメラ部ex365で撮像した映像、アンテナex350で受信した映像等が復号化されたデータを表示する液晶ディスプレイ等の表示部ex358を備える。携帯電話ex114は、さらに、操作キー部ex366を有する本体部、音声を出力するためのスピーカ等である音声出力部ex357、音声を入力するためのマイク等である音声入力部ex356、撮影した映像、静止画、録音した音声、または受信した映像、静止画、メール等の符号化されたデータもしくは復号化されたデータを保存するメモリ部ex367、又は同様にデータを保存する記録メディアとのインタフェース部であるスロット部ex364を備える。
さらに、携帯電話ex114の構成例について、図43Bを用いて説明する。携帯電話ex114は、表示部ex358及び操作キー部ex366を備えた本体部の各部を統括的に制御する主制御部ex360に対して、電源回路部ex361、操作入力制御部ex362、映像信号処理部ex355、カメラインタフェース部ex363、LCD(Liquid Crystal Display)制御部ex359、変調/復調部ex352、多重/分離部ex353、音声信号処理部ex354、スロット部ex364、メモリ部ex367がバスex370を介して互いに接続されている。
電源回路部ex361は、ユーザの操作により終話及び電源キーがオン状態にされると、バッテリパックから各部に対して電力を供給することにより携帯電話ex114を動作可能な状態に起動する。
携帯電話ex114は、CPU、ROM、RAM等を有する主制御部ex360の制御に基づいて、音声通話モード時に音声入力部ex356で収音した音声信号を音声信号処理部ex354でデジタル音声信号に変換し、これを変調/復調部ex352でスペクトラム拡散処理し、送信/受信部ex351でデジタルアナログ変換処理および周波数変換処理を施した後にアンテナex350を介して送信する。また携帯電話ex114は、音声通話モード時にアンテナex350を介して受信した受信データを増幅して周波数変換処理およびアナログデジタル変換処理を施し、変調/復調部ex352でスペクトラム逆拡散処理し、音声信号処理部ex354でアナログ音声信号に変換した後、これを音声出力部ex356から出力する。
さらにデータ通信モード時に電子メールを送信する場合、本体部の操作キー部ex366等の操作によって入力された電子メールのテキストデータは操作入力制御部ex362を介して主制御部ex360に送出される。主制御部ex360は、テキストデータを変調/復調部ex352でスペクトラム拡散処理をし、送信/受信部ex351でデジタルアナログ変換処理および周波数変換処理を施した後にアンテナex350を介して基地局ex110へ送信する。電子メールを受信する場合は、受信したデータに対してこのほぼ逆の処理が行われ、表示部ex358に出力される。
データ通信モード時に映像、静止画、または映像と音声を送信する場合、映像信号処理部ex355は、カメラ部ex365から供給された映像信号を上記各実施の形態で示した動画像符号化方法によって圧縮符号化し、符号化された映像データを多重/分離部ex353に送出する。また、音声信号処理部ex354は、映像、静止画等をカメラ部ex365で撮像中に音声入力部ex356で収音した音声信号を符号化し、符号化された音声データを多重/分離部ex353に送出する。
多重/分離部ex353は、映像信号処理部ex355から供給された符号化された映像データと音声信号処理部ex354から供給された符号化された音声データを所定の方式で多重化し、その結果得られる多重化データを変調/復調部ex352でスペクトラム拡散処理をし、送信/受信部ex351でデジタルアナログ変換処理及び周波数変換処理を施した後にアンテナex350を介して送信する。
データ通信モード時にホームページ等にリンクされた動画像ファイルのデータを受信する場合、または映像およびもしくは音声が添付された電子メールを受信する場合、アンテナex350を介して受信された多重化データを復号化するために、多重/分離部ex353は、多重化データを分離することにより映像データのビットストリームと音声データのビットストリームとに分け、同期バスex370を介して符号化された映像データを映像信号処理部ex355に供給するとともに、符号化された音声データを音声信号処理部ex354に供給する。映像信号処理部ex355は、上記各実施の形態で示した動画像符号化方法に対応した動画像復号化方法によって復号化することにより映像信号を復号し、LCD制御部ex359を介して表示部ex358から、例えばホームページにリンクされた動画像ファイルに含まれる映像、静止画が表示される。また音声信号処理部ex354は、音声信号を復号し、音声出力部ex357から音声が出力される。
また、上記携帯電話ex114等の端末は、テレビex300と同様に、符号化器・復号化器を両方持つ送受信型端末の他に、符号化器のみの送信端末、復号化器のみの受信端末という3通りの実装形式が考えられる。さらに、デジタル放送用システムex200において、映像データに音楽データなどが多重化された多重化データを受信、送信するとして説明したが、音声データ以外に映像に関連する文字データなどが多重化されたデータであってもよいし、多重化データではなく映像データ自体であってもよい。
このように、上記各実施の形態で示した動画像符号化方法あるいは動画像復号化方法を上述したいずれの機器・システムに用いることは可能であり、そうすることで、上記各実施の形態で説明した効果を得ることができる。
また、本発明はかかる上記実施の形態に限定されるものではなく、本発明の範囲を逸脱することなく種々の変形または修正が可能である。
上記各実施の形態で示した動画像符号化方法または装置と、MPEG−2、H.264−AVC、VC−1など異なる規格に準拠した動画像符号化方法または装置とを、必要に応じて適宜切替えることにより、映像データを生成することも可能である。
ここで、それぞれ異なる規格に準拠する複数の映像データを生成した場合、復号する際に、それぞれの規格に対応した復号方法を選択する必要がある。しかしながら、復号する映像データが、どの規格に準拠するものであるか識別できないため、適切な復号方法を選択することができないという課題を生じる。
この課題を解決するために、映像データに音声データなどを多重化した多重化データは、映像データがどの規格に準拠するものであるかを示す識別情報を含む構成とする。上記各実施の形態で示す動画像符号化方法または装置によって生成された映像データを含む多重化データの具体的な構成を以下説明する。多重化データは、MPEG−2トランスポートストリーム形式のデジタルストリームである。
図44は、多重化データの構成を示す図である。図44に示すように多重化データは、ビデオストリーム、オーディオストリーム、プレゼンテーショングラフィックスストリーム(PG)、インタラクティブグラフィックスストリームのうち、1つ以上を多重化することで得られる。ビデオストリームは映画の主映像および副映像を、オーディオストリーム(IG)は映画の主音声部分とその主音声とミキシングする副音声を、プレゼンテーショングラフィックスストリームは、映画の字幕をそれぞれ示している。ここで主映像とは画面に表示される通常の映像を示し、副映像とは主映像の中に小さな画面で表示する映像のことである。また、インタラクティブグラフィックスストリームは、画面上にGUI部品を配置することにより作成される対話画面を示している。ビデオストリームは、上記各実施の形態で示した動画像符号化方法または装置、従来のMPEG−2、H.264−AVC、VC−1などの規格に準拠した動画像符号化方法または装置によって符号化されている。オーディオストリームは、ドルビーAC−3、Dolby Digital Plus、MLP、DTS、DTS−HD、または、リニアPCMのなどの方式で符号化されている。
多重化データに含まれる各ストリームはPIDによって識別される。例えば、映画の映像に利用するビデオストリームには0x1011が、オーディオストリームには0x1100から0x111Fまでが、プレゼンテーショングラフィックスには0x1200から0x121Fまでが、インタラクティブグラフィックスストリームには0x1400から0x141Fまでが、映画の副映像に利用するビデオストリームには0x1B00から0x1B1Fまで、主音声とミキシングする副映像に利用するオーディオストリームには0x1A00から0x1A1Fが、それぞれ割り当てられている。
図45は、多重化データがどのように多重化されるかを模式的に示す図である。まず、複数のビデオフレームからなるビデオストリームex235、複数のオーディオフレームからなるオーディオストリームex238を、それぞれPESパケット列ex236およびex239に変換し、TSパケットex237およびex240に変換する。同じくプレゼンテーショングラフィックスストリームex241およびインタラクティブグラフィックスex244のデータをそれぞれPESパケット列ex242およびex245に変換し、さらにTSパケットex243およびex246に変換する。多重化データex247はこれらのTSパケットを1本のストリームに多重化することで構成される。
図46は、PESパケット列に、ビデオストリームがどのように格納されるかをさらに詳しく示している。図20における第1段目はビデオストリームのビデオフレーム列を示す。第2段目は、PESパケット列を示す。図20の矢印yy1,yy2,yy3,yy4に示すように、ビデオストリームにおける複数のVideo Presentation UnitであるIピクチャ、Bピクチャ、Pピクチャは、ピクチャごとに分割され、PESパケットのペイロードに格納される。各PESパケットはPESヘッダを持ち、PESヘッダには、ピクチャの表示時刻であるPTS(Presentation Time−Stamp)やピクチャの復号時刻であるDTS(Decoding Time−Stamp)が格納される。
図47は、多重化データに最終的に書き込まれるTSパケットの形式を示している。TSパケットは、ストリームを識別するPIDなどの情報を持つ4ByteのTSヘッダとデータを格納する184ByteのTSペイロードから構成される188Byte固定長のパケットであり、上記PESパケットは分割されTSペイロードに格納される。BD−ROMの場合、TSパケットには、4ByteのTP_Extra_Headerが付与され、192Byteのソースパケットを構成し、多重化データに書き込まれる。TP_Extra_HeaderにはATS(Arrival_Time_Stamp)などの情報が記載される。ATSは当該TSパケットのデコーダのPIDフィルタへの転送開始時刻を示す。多重化データには図47下段に示すようにソースパケットが並ぶこととなり、多重化データの先頭からインクリメントする番号はSPN(ソースパケットナンバー)と呼ばれる。
また、多重化データに含まれるTSパケットには、映像・音声・字幕などの各ストリーム以外にもPAT(Program Association Table)、PMT(Program Map Table)、PCR(Program Clock Reference)などがある。PATは多重化データ中に利用されるPMTのPIDが何であるかを示し、PAT自身のPIDは0で登録される。PMTは、多重化データ中に含まれる映像・音声・字幕などの各ストリームのPIDと各PIDに対応するストリームの属性情報を持ち、また多重化データに関する各種ディスクリプタを持つ。ディスクリプタには多重化データのコピーを許可・不許可を指示するコピーコントロール情報などがある。PCRは、ATSの時間軸であるATC(Arrival Time Clock)とPTS・DTSの時間軸であるSTC(System Time Clock)の同期を取るために、そのPCRパケットがデコーダに転送されるATSに対応するSTC時間の情報を持つ。
図48はPMTのデータ構造を詳しく説明する図である。PMTの先頭には、そのPMTに含まれるデータの長さなどを記したPMTヘッダが配置される。その後ろには、多重化データに関するディスクリプタが複数配置される。上記コピーコントロール情報などが、ディスクリプタとして記載される。ディスクリプタの後には、多重化データに含まれる各ストリームに関するストリーム情報が複数配置される。ストリーム情報は、ストリームの圧縮コーデックなどを識別するためストリームタイプ、ストリームのPID、ストリームの属性情報(フレームレート、アスペクト比など)が記載されたストリームディスクリプタから構成される。ストリームディスクリプタは多重化データに存在するストリームの数だけ存在する。
記録媒体などに記録する場合には、上記多重化データは、多重化データ情報ファイルと共に記録される。
多重化データ情報ファイルは、図49に示すように多重化データの管理情報であり、多重化データと1対1に対応し、多重化データ情報、ストリーム属性情報とエントリマップから構成される。
多重化データ情報は図49に示すようにシステムレート、再生開始時刻、再生終了時刻から構成されている。システムレートは多重化データの、後述するシステムターゲットデコーダのPIDフィルタへの最大転送レートを示す。多重化データ中に含まれるATSの間隔はシステムレート以下になるように設定されている。再生開始時刻は多重化データの先頭のビデオフレームのPTSであり、再生終了時刻は多重化データの終端のビデオフレームのPTSに1フレーム分の再生間隔を足したものが設定される。
ストリーム属性情報は図50に示すように、多重化データに含まれる各ストリームについての属性情報が、PIDごとに登録される。属性情報はビデオストリーム、オーディオストリーム、プレゼンテーショングラフィックスストリーム、インタラクティブグラフィックスストリームごとに異なる情報を持つ。ビデオストリーム属性情報は、そのビデオストリームがどのような圧縮コーデックで圧縮されたか、ビデオストリームを構成する個々のピクチャデータの解像度がどれだけであるか、アスペクト比はどれだけであるか、フレームレートはどれだけであるかなどの情報を持つ。オーディオストリーム属性情報は、そのオーディオストリームがどのような圧縮コーデックで圧縮されたか、そのオーディオストリームに含まれるチャンネル数は何であるか、何の言語に対応するか、サンプリング周波数がどれだけであるかなどの情報を持つ。これらの情報は、プレーヤが再生する前のデコーダの初期化などに利用される。
上記多重化データのうち、PMTに含まれるストリームタイプを利用する。また、記録媒体に多重化データが記録されている場合には、多重化データ情報に含まれる、ビデオストリーム属性情報を利用する。具体的には、上記各実施の形態で示した動画像符号化方法または装置において、PMTに含まれるストリームタイプ、または、ビデオストリーム属性情報に対し、上記各実施の形態で示した動画像符号化方法または装置によって生成された映像データであることを示す固有の情報を設定するステップまたは手段を設ける。この構成により、上記各実施の形態で示した動画像符号化方法または装置によって生成した映像データと、他の規格に準拠する映像データとを識別することが可能になる。
また、動画像復号化方法のステップを図51に示す。ステップexS100において、多重化データからPMTに含まれるストリームタイプ、または、ビデオストリーム属性を取得する。次に、ステップexS101において、ストリームタイプ、または、ビデオストリーム属性情報が上記各実施の形態で示した動画像符号化方法または装置によって生成された多重化データであることを示しているか否かを判断する。そして、ストリームタイプ、または、ビデオストリーム属性情報が上記各実施の形態で示した動画像符号化方法または装置によって生成されたものであると判断された場合には、ステップexS102において、上記各実施の形態で示した動画像復号方法により復号を行う。また、ストリームタイプ、または、ビデオストリーム属性情報が、従来のMPEG−2、H.264−AVC、VC−1などの規格に準拠するものであることを示している場合には、ステップexS103において、従来の規格に準拠した動画像復号方法により復号を行う。
このように、ストリームタイプ、または、ビデオストリーム属性情報に新たな固有値を設定することにより、復号する際に、上記各実施の形態で示した動画像復号化方法または装置で復号可能であるかを判断することができる。従って、異なる規格に準拠する多重化データが入力された場合であっても、適切な復号化方法または装置を選択することができるため、エラーを生じることなく復号することが可能となる。また、動画像符号化方法または装置、または、動画像復号方法または装置を、上述したいずれの機器・システムに用いることも可能である。
上記各実施の形態で示した動画像符号化方法および装置、動画像復号化方法および装置は、典型的には集積回路であるLSIで実現される。一例として、図52に1チップ化されたLSIex500の構成を示す。LSIex500は、以下に説明する要素ex501、ex502、ex503、ex504、ex505、ex506、ex507、ex508、ex509を備え、各要素はバスex510を介して接続している。電源回路部ex505は電源がオン状態の場合に各部に対して電力を供給することで動作可能な状態に起動する。
例えば符号化処理を行う場合には、LSIex500は、CPUex502、メモリコントローラex503、ストリームコントローラex504、駆動周波数制御部ex512等を有する制御部ex501の制御に基づいて、AV I/Oex509によりマイクex117やカメラex113等からAV信号を入力する。入力されたAV信号は、一旦SDRAM等の外部のメモリex511に蓄積される。制御部ex501の制御に基づいて、蓄積したデータは処理量や処理速度に応じて適宜複数回に分けるなどされ信号処理部ex507に送られ、信号処理部ex507において音声信号の符号化および/または映像信号の符号化が行われる。ここで映像信号の符号化処理は上記各実施の形態で説明した符号化処理である。信号処理部ex507ではさらに、場合により符号化された音声データと符号化された映像データを多重化するなどの処理を行い、ストリームI/Oex506から外部に出力する。この出力された多重化データは、基地局ex107に向けて送信されたり、または記録メディアex215に書き込まれたりする。なお、多重化する際には同期するよう、一旦バッファex508にデータを蓄積するとよい。
なお、上記では、メモリex511がLSIex500の外部の構成として説明したが、LSIex500の内部に含まれる構成であってもよい。バッファex508も1つに限ったものではなく、複数のバッファを備えていてもよい。また、LSIex500は1チップ化されてもよいし、複数チップ化されてもよい。
また、上記では、制御部ex510が、CPUex502、メモリコントローラex503、ストリームコントローラex504、駆動周波数制御部ex512等を有するとしているが、制御部ex510の構成は、この構成に限らない。例えば、信号処理部ex507がさらにCPUを備える構成であってもよい。信号処理部ex507の内部にもCPUを設けることにより、処理速度をより向上させることが可能になる。また、他の例として、CPUex502が信号処理部ex507、または信号処理部ex507の一部である例えば音声信号処理部を備える構成であってもよい。このような場合には、制御部ex501は、信号処理部ex507、またはその一部を有するCPUex502を備える構成となる。
なお、ここでは、LSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。
また、集積回路化の手法はLSIに限るものではなく、専用回路または汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
さらには、半導体技術の進歩または派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適応等が可能性としてありえる。
上記各実施の形態で示した動画像符号化方法または装置によって生成された映像データを復号する場合、従来のMPEG−2、H.264−AVC、VC−1などの規格に準拠する映像データを復号する場合に比べ、処理量が増加することが考えられる。そのため、LSIex500において、従来の規格に準拠する映像データを復号する際のCPUex502の駆動周波数よりも高い駆動周波数に設定する必要がある。しかし、駆動周波数を高くすると、消費電力が高くなるという課題が生じる。
この課題を解決するために、テレビex300、LSIex500などの動画像復号化装置は、映像データがどの規格に準拠するものであるかを識別し、規格に応じて駆動周波数を切替える構成とする。図53は、構成ex800を示している。駆動周波数切替え部ex803は、映像データが、上記各実施の形態で示した動画像符号化方法または装置によって生成されたものである場合には、駆動周波数を高く設定する。そして、上記各実施の形態で示した動画像復号化方法を実行する復号処理部ex801に対し、映像データを復号するよう指示する。一方、映像データが、従来の規格に準拠する映像データである場合には、映像データが、上記各実施の形態で示した動画像符号化方法または装置によって生成されたものである場合に比べ、駆動周波数を低く設定する。そして、従来の規格に準拠する復号処理部ex802に対し、映像データを復号するよう指示する。
より具体的には、駆動周波数切替え部ex803は、図26のCPUex502と駆動周波数制御部ex512から構成される。また、上記各実施の形態で示した動画像復号化方法を実行する復号処理部ex801、および、従来の規格に準拠する復号処理部ex802は、図50の信号処理部ex507に該当する。CPUex502は、映像データがどの規格に準拠するものであるかを識別する。そして、CPUex502からの信号に基づいて、駆動周波数制御部ex512は、駆動周波数を設定する。また、CPUex502からの信号に基づいて、信号処理部ex507は、映像データの復号を行う。ここで、映像データの識別には、例えば、記載した識別情報を利用することが考えられる。識別情報に関しては、上述したものに限られず、映像データがどの規格に準拠するか識別できる情報であればよい。例えば、映像データがテレビに利用されるものであるか、ディスクに利用されるものであるかなどを識別する外部信号に基づいて、映像データがどの規格に準拠するものであるか識別可能である場合には、このような外部信号に基づいて識別してもよい。また、CPUex502における駆動周波数の選択は、例えば、図55のような映像データの規格と、駆動周波数とを対応付けたルックアップテーブルに基づいて行うことが考えられる。ルックアップテーブルを、バッファex508や、LSIの内部メモリに格納しておき、CPUex502がこのルックアップテーブルを参照することにより、駆動周波数を選択することが可能である。
図54は、本実施の形態の方法を実施するステップを示している。まず、ステップexS200では、信号処理部ex507において、多重化データから識別情報を取得する。次に、ステップexS201では、CPUex502において、識別情報に基づいて映像データが上記各実施の形態で示した符号化方法または装置によって生成されたものであるか否かを識別する。映像データが上記各実施の形態で示した符号化方法または装置によって生成されたものである場合には、ステップexS202において、駆動周波数を高く設定する信号を、CPUex502が駆動周波数制御部ex512に送る。そして、駆動周波数制御部ex512において、高い駆動周波数に設定される。一方、従来のMPEG−2、H.264−AVC、VC−1などの規格に準拠する映像データであることを示している場合には、ステップexS203において、駆動周波数を低く設定する信号を、CPUex502が駆動周波数制御部ex512に送る。そして、駆動周波数制御部ex512において、映像データが上記各実施の形態で示した符号化方法または装置によって生成されたものである場合に比べ、低い駆動周波数に設定される。
さらに、駆動周波数の切替えに連動して、LSIex500またはLSIex500を含む装置に与える電圧を変更することにより、省電力効果をより高めることが可能である。例えば、駆動周波数を低く設定する場合には、これに伴い、駆動周波数を高く設定している場合に比べ、LSIex500またはLSIex500を含む装置に与える電圧を低く設定することが考えられる。
また、駆動周波数の設定方法は、復号する際の処理量が大きい場合に、駆動周波数を高く設定し、復号する際の処理量が小さい場合に、駆動周波数を低く設定すればよく、上述した設定方法に限らない。例えば、H.264−AVC規格に準拠する映像データを復号する処理量の方が、上記各実施の形態で示した動画像符号化方法または装置により生成された映像データを復号する処理量よりも大きい場合には、駆動周波数の設定を上述した場合の逆にすることが考えられる。
さらに、駆動周波数の設定方法は、駆動周波数を低くする構成に限らない。例えば、識別情報が、上記各実施の形態で示した動画像符号化方法または装置によって生成された映像データであることを示している場合には、LSIex500またはLSIex500を含む装置に与える電圧を高く設定し、従来のMPEG−2、H.264−AVC、VC−1などの規格に準拠する映像データであることを示している場合には、LSIex500またはLSIex500を含む装置に与える電圧を低く設定することも考えられる。また、他の例としては、識別情報が、上記各実施の形態で示した動画像符号化方法または装置によって生成された映像データであることを示している場合には、CPUex502の駆動を停止させることなく、従来のMPEG−2、H.264−AVC、VC−1などの規格に準拠する映像データであることを示している場合には、処理に余裕があるため、CPUex502の駆動を一時停止させることも考えられる。識別情報が、上記各実施の形態で示した動画像符号化方法または装置によって生成された映像データであることを示している場合であっても、処理に余裕があれば、CPUex502の駆動を一時停止させることも考えられる。この場合は、従来のMPEG−2、H.264−AVC、VC−1などの規格に準拠する映像データであることを示している場合に比べて、停止時間を短く設定することが考えられる。
このように、映像データが準拠する規格に応じて、駆動周波数を切替えることにより、省電力化を図ることが可能になる。また、電池を用いてLSIex500またはLSIex500を含む装置を駆動している場合には、省電力化に伴い、電池の寿命を長くすることが可能である。
テレビや、携帯電話など、上述した機器・システムには、異なる規格に準拠する複数の映像データが入力される場合がある。このように、異なる規格に準拠する複数の映像データが入力された場合にも復号できるようにするために、LSIex500の信号処理部ex507が複数の規格に対応している必要がある。しかし、それぞれの規格に対応する信号処理部ex507を個別に用いると、LSIex500の回路規模が大きくなり、また、コストが増加するという課題が生じる。
この課題を解決するために、上記各実施の形態で示した動画像復号方法を実行するための復号処理部と、従来のMPEG−2、H.264−AVC、VC−1などの規格に準拠する復号処理部とを一部共有化する構成とする。この構成例を図56Aのex900に示す。例えば、上記各実施の形態で示した動画像復号方法と、MPEG4−AVC規格に準拠する動画像復号方法とは、エントロピー符号化、逆量子化、デブロッキング・フィルタ、動き補償などの処理において処理内容が一部共通する。共通する処理内容については、H.264−AVC規格に対応する復号処理部ex902を共有し、H.264−AVC規格に対応しない、本発明特有の他の処理内容については、専用の復号処理部ex901を用いるという構成が考えられる。特に、本発明は、デブロッキングフィルタリングの適用に特徴を有していることから、例えば、そのようなフィルタリングについては専用の復号処理部ex901を用い、それ以外のエントロピー復号、逆量子化、空間または動き補償予測のいずれか、または、全ての処理については、復号処理部を共有することが考えられる。復号処理部の共有化に関しては、共通する処理内容については、上記各実施の形態で示した動画像復号化方法を実行するための復号処理部を共有し、H.264−AVC規格に特有の処理内容については、専用の復号処理部を用いる構成であってもよい。
また、処理を一部共有化する他の例を図56Bのex1000に示す。この例では、本発明に特有の処理内容に対応した専用の復号処理部ex1001と、他の従来規格に特有の処理内容に対応した専用の復号処理部ex1002と、本発明の動画像復号方法と他の従来規格の動画像復号方法とに共通する処理内容に対応した共用の復号処理部ex1003とを用いる構成としている。ここで、専用の復号処理部ex1001、ex1002は、必ずしも本発明、または、他の従来規格に特有の処理内容に特化したものではなく、他の汎用処理を実行できるものであってもよい。また、構成を、LSIex500で実装することも可能である。
このように、本発明の動画像復号方法と、従来の規格の動画像復号方法とで共通する処理内容について、復号処理部を共有することにより、LSIの回路規模を小さくし、かつ、コストを低減することが可能である。
上記例の大部分については、H.264/MPEG−4 AVCに基づく映像符号化方式との関連において概要を説明し、用語は主に、H.264/MPEG−4 AVCの用語に関連する。しかしながら、H.264/ AVCに基づく符号化に関する用語および様々な実施例の説明によって、本発明の原理および概念をそのようなシステムに限定することを意図するものではない。また、H.264/AVC規格に準拠した符号化および復号の詳細な説明は、ここに説明した例示的な実施形態のよりよい理解を意図したものであり、本発明を、映像符号化におけるプロセスおよび機能に関し説明された特定の実施形態に限定するものと解釈されるべきではない。しかしながら、ここに提案した改良は、説明された映像符号化に容易に適用可能である。さらに、本発明の概念もまた、現在JCT−VCが検討しているH.264/AVC符号化および/またはHEVCの強化に直ちに適用されてもよい。
まとめると、本発明はデブロッキングフィルタリングに関し、画像または映像信号のブロック単位の符号化および復号に有利に適用してもよい。特に、本発明は、画像ブロックに対してデブロッキングフィルタリングを適用するか否かに関する効率的で正確な決定を実行することに関する。隣接画像ブロック間の境界のセグメントにデブロッキングフィルタリングを適用するか否かに関する個別の決定を行うことにより、効率的で正確な決定がなされる。ここで、個別の決定は、画像ブロックを構成する画素ラインのサブセットを構成する画素に基づく。