実施の形態1.
図1はこの発明の実施の形態1による画像符号化装置を示す構成図である。
この実施の形態1の画像符号化装置が処理対象とする映像信号は、輝度信号と2つの色差信号からなるYUV信号や、ディジタル撮像素子から出力されるRGB信号等の任意の色空間のカラー映像信号のほか、モノクロ画像信号や赤外線画像信号など、映像フレームが水平・垂直2次元のディジタルサンプル(画素)列から構成される任意の映像信号である。各画素の階調は8ビットでもよいし、10ビット、12ビットなどの階調であってもよい。また、入力信号は映像信号ではなく静止画像信号でもよいことは、静止画像信号を1フレームのみで構成される映像信号と解釈できることから当然である。
以下の説明においては、便宜上、特に断らない限り、入力される映像信号が、2つの色差成分U,Vが輝度成分Yに対して、縦横ともに2分の1にサブサンプルされたYUV4:2:0フォーマット、2つの色差成分U,Vが輝度成分Yに対して、横方向に2分の1にサブサンプルされたYUV4:2:2フォーマット、あるいは、2つの色差成分U,Vが輝度成分Yと同じサンプル数であるYUV4:4:4フォーマットの信号であるものとする。また、赤色(R)、緑色(G)、青色(B)の三原色の信号からなるRGB4:4:4フォーマットの信号については、それぞれの信号をYUV4:4:4フォーマットの信号とみなしてYUV4:4:4フォーマットと同一の符号化を行う。ただし、RGB4:4:4フォーマットの各信号(RGB)のYUV4:4:4フォーマットの各信号(YUV)への対応付けについては限定しない(任意に設定できる)。この対応付けはインデックス情報として上位ヘッダで符号化して画像復号装置側で認識できるようにしてもよい。このようにすることで、画像復号装置によって復号した復号画像の色を正しく表示することができる。
また、YUV4:4:4フォーマット信号やRGB4:4:4フォーマット信号の場合、各信号をモノクローム画像信号とみなしてそれぞれ独立にモノクローム(YUV4:0:0)符号化してビットストリームを生成するようにしてもよい。このようにすることで各信号並列に符号化処理を実施することができる。その際、各モノクローム信号がどの色信号であるかを示す情報をインデックス情報として上位ヘッダで符号化して画像復号装置側で認識できるようにしてもよい。このようにすることで、画像復号装置によって復号した復号画像の色を正しく表示することができる。
なお、映像の各フレームに対応する処理データ単位を「ピクチャ」と称し、この実施の形態1では、「ピクチャ」は順次走査(プログレッシブスキャン)された映像フレームの信号として説明を行う。ただし、映像信号がインタレース信号である場合、「ピクチャ」は映像フレームを構成する単位であるフィールド画像信号であってもよい。
図1において、符号化制御部1は符号化処理が実施される際の処理単位となる符号化ブロックの最大サイズを決定するとともに、最大サイズの符号化ブロックが階層的に分割される際の上限の階層数を決定することで、各々の符号化ブロックのサイズを決定する処理を実施する。また、符号化制御部1は選択可能な1以上の符号化モード(予測処理単位を示す予測ブロックのサイズなどが異なる1以上のイントラ符号化モード、予測処理単位を示す予測ブロックのサイズなどが異なる1以上のイントラブロックコピー符号化モード、予測ブロックのサイズなどが異なる1以上のインター符号化モード)の中から、ブロック分割部3から出力される符号化ブロックに適用する符号化モードを選択する処理を実施する。選択手法の例としては、選択可能な1以上の符号化モードの中から、ブロック分割部3から出力される符号化ブロックに対する符号化効率が最も高い符号化モードを選択する手法がある。
また、符号化制御部1は符号化効率が最も高い符号化モードがイントラ符号化モードである場合、そのイントラ符号化モードで符号化ブロックに対するイントラ予測処理を実施する際に用いるイントラ予測パラメータを上記イントラ符号化モードが示す予測処理単位である予測ブロック毎に決定し、符号化効率が最も高い符号化モードがイントラブロックコピー符号化モードである場合、そのイントラブロックコピー符号化モードで符号化ブロックに対するイントラブロックコピー予測処理を実施する際に用いるイントラブロックコピー予測パラメータを上記イントラブロックコピー符号化モードが示す予測処理単位である予測ブロック毎に決定し、符号化効率が最も高い符号化モードがインター符号化モードである場合、そのインター符号化モードで符号化ブロックに対するインター予測処理を実施する際に用いるインター予測パラメータを上記インター符号化モードが示す予測処理単位である予測ブロック毎に決定する処理を実施する。
さらに、符号化制御部1は変換・量子化部9及び逆量子化・逆変換部10に与える予測差分符号化パラメータを決定する処理を実施する。予測差分符号化パラメータには、符号化ブロックにおける直交変換処理単位となる変換ブロックの分割情報を示す変換ブロック分割情報や、変換係数の量子化を行う際の量子化ステップサイズを規定する量子化パラメータなどが含まれる。
ここで、図2はYUV4:2:0フォーマットの信号における輝度信号及び色差信号の圧縮処理(変換処理、量子化処理)を実施する際の変換ブロックサイズを示す説明図である。変換ブロックサイズは、図2に示すように、符号化ブロックを四分木状に階層分割することによって決定される。例えば、変換ブロックを分割する場合と変換ブロックを分割しない場合での符号量や、符号化誤差を加味した評価尺度などに基づいて、評価値が最小になるように変換ブロックを分割するか否かを決定することで、符号量と符号化誤差のトレードオフの観点から最適な変換ブロックの分割形状を決定することができる。
輝度信号については、例えば、図2に示すように、符号化ブロックが1つ又は複数の正方形の変換ブロックに階層的に分割されるように構成する。色差信号については、図2に示すように、入力信号フォーマットがYUV4:2:0信号である場合、輝度信号と同様に、符号化ブロックが1つ又は複数の正方形の変換ブロックに階層的に分割されるように構成する。この場合、色差信号の変換ブロックサイズは、対応する輝度信号の変換ブロックの縦横ともに半分のサイズとなる。
入力信号フォーマットがYUV4:2:2信号である場合、図3に示すように、輝度信号と同様の四分木状の階層分割を行う。また、分割したブロックの形状が、垂直方向の画素数が水平方向の画素数の2倍になる長方形となるため、さらに、分割したブロックを上下に二分することで、YUV4:2:0信号での色差信号と同じブロックサイズ(輝度信号の変換ブロックの縦横ともに半分のサイズ)の変換ブロック2つで構成するようにする。
また、入力信号フォーマットがYUV4:4:4信号である場合、図4に示すように、色差信号の変換ブロックは、常に輝度信号の変換ブロックと同様の分割を行い、同じサイズの変換ブロックとなるように構成する。輝度信号の変換ブロックの分割情報は、例えば、階層毎に分割するか否かを示す変換ブロック分割フラグとして可変長符号化部15に出力する。
スライス分割部2は入力画像として映像信号を入力すると、その入力画像を符号化制御部1により決定されたスライス分割情報にしたがって1以上の“スライス”という部分画像に分割する処理を実施する。スライスの分割単位は、上述した符号化ブロック単位まで細かくすることができる。
ブロック分割部3はスライス分割部2により分割されたスライスを入力する毎に、そのスライスを符号化制御部1により決定された最大サイズの符号化ブロックである最大符号化ブロックに分割するとともに、符号化制御部1により決定された上限の階層数に至るまで、その最大符号化ブロックを階層的に各符号化ブロックへ分割する処理を実施する。即ち、ブロック分割部3はスライスを符号化制御部1により決定された分割に応じて各符号化ブロックに分割して、その符号化ブロックを出力する処理を実施する。また、各符号化ブロックは予測処理単位となる1つないし複数の予測ブロックに分割される。
切換スイッチ4は符号化制御部1により決定された符号化モードがイントラ符号化モードであれば、ブロック分割部3から出力された符号化ブロックをイントラ予測部5に出力し、符号化制御部1により決定された符号化モードがイントラブロックコピー符号化モードであれば、ブロック分割部3から出力された符号化ブロックをイントラブロックコピー予測部6に出力し、符号化制御部1により決定された符号化モードがインター符号化モードであれば、ブロック分割部3から出力された符号化ブロックを動き補償予測部7に出力する処理を実施する。
イントラ予測部5は切換スイッチ4から出力された符号化ブロックに対応する符号化モードとして、符号化制御部1によりイントラ符号化モードが選択された場合、イントラ用メモリ12に格納されている局所復号画像を参照しながら、符号化制御部1により決定されたイントラ予測パラメータを用いたイントラ予測処理(フレーム内予測処理)を実施してイントラ予測画像を生成する処理を実施する。
即ち、イントラ予測部5は、輝度信号については、輝度信号のイントラ予測パラメータを用いたイントラ予測処理(フレーム内予測処理)を実施して、輝度信号の予測画像を生成する。一方、色差信号については、色差信号のイントラ予測パラメータが、輝度信号に対するイントラ予測モードと同じ予測モードを用いる旨を示している場合(イントラ予測パラメータが輝度色差共通イントラ予測モード(DMモード)を示している場合)、輝度信号と同じフレーム内予測を実施して、色差信号の予測画像を生成する。図5はYUV4:2:0フォーマットの信号において輝度信号と色差信号で同一の方向性予測を用いた場合を示し、図6はYUV4:2:2フォーマットの信号において輝度信号と色差信号で同一の方向性予測を用いた場合を示している。
また、色差信号のイントラ予測パラメータが、垂直方向予測モード又は水平方向予測モードを示している場合、色差信号に対する方向性予測を実施して、色差信号の予測画像を生成する。また、色差信号のイントラ予測パラメータが、輝度相関利用色差信号予測モード(LMモード)を示している場合、予測画像の生成対象ブロックの上及び左に隣接している複数の画素の輝度信号及び色差信号を用いて、輝度信号と色差信号の相関を示す相関パラメータを算出し、その相関パラメータと予測処理対象の色差信号のブロックに対応する輝度信号を用いて、色差信号の予測画像を生成する。
入力信号フォーマットがYUV4:2:2信号である場合、図7に示すように、輝度信号が正方ブロックであれば、色差信号は輝度信号と比較して水平方向の画素数が1/2となる長方形のブロックとなる。したがって、図8に示すように、YUV4:4:4信号をYUV4:2:2信号に変換した際に、輝度信号と色差信号で同一方向の予測となるようにするためには、YUV4:2:2信号上では、垂直方向予測と水平方向予測以外の方向性予測の場合には、色差信号の予測方向が輝度信号の予測方向と異なることとなる。具体的には、図9に示すように、輝度信号の予測方向ベクトルをvL=(dxL,dyL)とした場合、色差信号の予測方向ベクトルは、vC=(dxL/2,dyL)となる。即ち、図10に示すように、予測方向の角度をθとした場合、輝度信号の予測方向の角度をθL、色差信号の予測方向の角度をθCとして、tanθC=2tanθLの関係となる予測方向で予測する必要がある。
したがって、輝度信号と色差信号で同一方向の予測を行う上記DMモードを正しく実施できるようにするために、入力信号フォーマットがYUV4:2:2信号である場合、輝度信号に使用したイントラ予測モードのインデックスを色差信号の予測に用いるイントラ予測モードのインデックスに変換し、変換後のインデックスに対応するイントラ予測モードによる色差信号の予測処理を実施する。具体的には、インデックスの変換テーブルを用意し、その変換テーブルを参照することで、インデックスを変換するように構成してもよいし、予め変換式を用意して、その変換式に従ってインデックスを変換するように構成してもよい。このように構成することで、方向性予測処理自体を変更することなく、インデックスの変換のみで、YUV4:2:2信号のフォーマットに応じた色差信号の適切な予測を実施することができる。
イントラブロックコピー予測部6は切換スイッチ4から出力された符号化ブロックに対応する符号化モードとして、符号化制御部1によりイントラブロックコピー符号化モードが選択された場合、その符号化ブロック内の予測ブロック(予測処理単位のブロック)が属している最大サイズの符号化ブロック(最大符号化ブロック)の中で、未だ局所復号が済んでいない領域内の各画素の画素値を所定の方法で仮定する処理を実施する。また、イントラブロックコピー予測部6は符号化ブロック内の予測ブロック毎に、同一のピクチャ内で既に符号化が行われて局所復号が済んでいる領域の中から、当該予測ブロックと最も近似しているブロックである参照ブロックを探索して、その参照ブロックを当該予測ブロックの予測画像に決定する処理を実施する。
動き補償予測部7は切換スイッチ4から出力された符号化ブロックに対応する符号化モードとして、符号化制御部1によりインター符号化モードが選択された場合、符号化ブロックと動き補償予測フレームメモリ14に格納されている1フレーム以上の局所復号画像を比較して動きベクトルを探索し、その動きベクトルと符号化制御部1により決定された参照するフレーム番号などのインター予測パラメータを用いて、その符号化ブロックに対するインター予測処理(動き補償予測処理)を実施してインター予測画像を生成する処理を実施する。
減算部8はブロック分割部3より出力された符号化ブロックから、イントラ予測部5により生成されたイントラ予測画像、イントラブロックコピー予測部6により生成されたイントラブロックコピー予測画像、又は、動き補償予測部7により生成されたインター予測画像を減算して、その減算結果である差分画像を示す予測差分信号を変換・量子化部9に出力する処理を実施する。
変換・量子化部9は符号化制御部1により決定された予測差分符号化パラメータに含まれる変換ブロック分割情報を参照して、減算部8から出力された予測差分信号に対する直交変換処理(例えば、DCT(離散コサイン変換)やDST(離散サイン変換)、予め特定の学習系列に対して基底設計がなされているKL変換等の直交変換処理)を変換ブロック単位に実施して変換係数を算出するとともに、その予測差分符号化パラメータに含まれる量子化パラメータを参照して、その変換ブロック単位の変換係数を量子化し、量子化後の変換係数である圧縮データを逆量子化・逆変換部10及び可変長符号化部15に出力する処理を実施する。
変換・量子化部9は変換係数を量子化する際、上記量子化パラメータから算出される量子化ステップサイズを変換係数毎にスケーリングする量子化マトリクスを用いて、変換係数の量子化処理を実施するようにしてもよい。
ここで、図11は4×4DCTの量子化マトリクスの一例を示す説明図である。図中の数字は、各変換係数の量子化ステップサイズのスケーリング値を示している。例えば、符号化ビットレートを抑制するために、図11に示すように、高域の変換係数程、量子化ステップサイズを大きな値にスケーリングすることで、複雑な画像領域等で発生する高域の変換係数を抑制して符号量を抑えつつ、主観品質に大きく影響する低域の係数の情報を落とさずに符号化することができる。このように、変換係数毎の量子化ステップサイズを制御したい場合には量子化マトリクスを用いればよい。
また、量子化マトリクスは、各直交変換サイズで色信号や符号化モード(イントラ符号化かインター符号化か)毎に独立したマトリクスを使用することができ、初期値として、画像符号化装置及び画像復号装置で予め共通に用意されている量子化マトリクスや既に符号化された量子化マトリクスの中から選択するか、新しい量子化マトリクスを用いるかをそれぞれ選択することができる。したがって、変換・量子化部9は、各直交変換サイズに対して色信号や符号化モード毎に、新しい量子化マトリクスを用いるか否かを示すフラグ情報を符号化すべき量子化マトリクスパラメータに設定する。
さらに、新しい量子化マトリクスを用いる場合には、図11に示すような量子化マトリクスの各スケーリング値を符号化すべき量子化マトリクスパラメータに設定する。一方、新しい量子化マトリクスを用いない場合には、初期値として、画像符号化装置及び画像復号装置で、予め共通に用意されている量子化マトリクス、又は、既に符号化された量子化マトリクスの中から、使用するマトリクスを特定するインデックスを符号化すべき量子化マトリクスパラメータに設定する。ただし、参照可能な既に符号化された量子化マトリクスが存在しない場合、画像符号化装置及び画像復号装置で予め共通に用意されている量子化マトリクスのみ選択可能となる。
逆量子化・逆変換部10は符号化制御部1により決定された予測差分符号化パラメータに含まれる量子化パラメータ及び変換ブロック分割情報を参照して、変換ブロック単位に変換・量子化部9から出力された圧縮データを逆量子化するとともに、逆量子化後の圧縮データである変換係数に対する逆直交変換処理を実施して、減算部8から出力された予測差分信号に相当する局所復号予測差分信号を算出する処理を実施する。なお、変換・量子化部9が量子化マトリクスを用いて、量子化処理を実施している場合には、逆量子化処理時においても、その量子化マトリクスを参照して、対応する逆量子化処理を実施する。
加算部11は逆量子化・逆変換部10により算出された局所復号予測差分信号と、イントラ予測部5により生成されたイントラ予測画像、イントラブロックコピー予測部6により生成されたイントラブロックコピー予測画像、又は、動き補償予測部7により生成されたインター予測画像とを加算して、ブロック分割部3から出力された符号化ブロックに相当する局所復号画像を算出する処理を実施する。
イントラ用メモリ12は加算部11により算出された局所復号画像を格納する記録媒体である。
ループフィルタ部13は加算部11により算出された局所復号画像に対して、所定のフィルタ処理を実施して、フィルタ処理後の局所復号画像を出力する処理を実施する。具体的には、変換ブロックの境界や予測ブロックの境界に発生する歪みを低減するフィルタ(デブロッキングフィルタ)処理、画素単位に適応的にオフセットを加算する(画素適応オフセット)処理、ウィーナフィルタ等の線形フィルタを適応的に切り替えてフィルタ処理する適応フィルタ処理などを行う。
これらのループフィルタは、復号画像の画質を向上させることを目的として適用されるが、図42に示すようなスクリーンコンテンツの特殊なヒストグラム形状を考慮しておらず、十分な画質改善効果が得られない。そこで、この実施の形態1では、新たなループフィルタ処理としてヒストグラム補正処理を実施する。
ループフィルタ部13は、上記のデブロッキングフィルタ処理、画素適応オフセット処理、適応フィルタ処理及びヒストグラム補正処理のそれぞれについて処理を行うか否かを決定し、各処理の有効フラグをヘッダ情報として可変長符号化部15に出力する。なお、上記のフィルタ処理を複数使用する際には、各フィルタ処理を順番に実施する。図12は複数のフィルタ処理を用いる場合のループフィルタ部13の構成例を示している。
ただし、図12に示しているループフィルタの種類と順序は一例に過ぎず、適用するループフィルタの種類と適用順序は必ずしも図12のようにする必要はない。例えば、デブロッキングフィルタ処理、画素適応オフセット処理、ヒストグラム補正処理の3種類だけでループフィルタ部13を構成することや、適用順序をデブロッキングフィルタ処理、ヒストグラム補正処理、画素適応オフセット処理の順にすることなどが考えられる。
デブロッキングフィルタ処理では、ブロック境界にかけるフィルタ強度の選択に用いる各種パラメータを初期値から変更することができる。変更する場合には、そのパラメータをヘッダ情報として可変長符号化部15に出力する。
画素適応オフセット処理では、最初に、画像を複数のブロックに分割し、そのブロック単位に、オフセット処理を行わない場合もクラス分類手法の一つとして定義して、予め用意されている複数のクラス分類手法の中から、1つのクラス分類手法を選択する。次に、選択したクラス分類手法によって、ブロック内の各画素をクラス分類し、クラス毎に符号化歪みを補償するオフセット値を算出する。最後に、局所復号画像の画素値に対して、そのオフセット値を加算する処理を行うことで局所復号画像の画像品質を改善する。
したがって、画素適応オフセット処理では、ブロック分割情報、各ブロックのクラス分類手法を示すインデックス、ブロック単位の各クラスのオフセット値を特定するオフセット情報をヘッダ情報として可変長符号化部15に出力する。
なお、画素適応オフセット処理において、例えば、最大符号化ブロックといった固定サイズのブロック単位に常に分割して、そのブロック毎にクラス分類手法を選択して、クラス毎の適応オフセット処理を行ってもよい。この場合、上記ブロック分割情報が不要となり、ブロック分割情報に要する符号量分だけ符号量が削減され、符号化効率を高めることができる。
適応フィルタ処理では、局所復号画像を所定の手法でクラス分類し、各クラスに属する領域(局所復号画像)毎に、重畳されている歪みを補償するフィルタを設計し、そのフィルタを用いて、当該局所復号画像のフィルタ処理を実施する。そして、クラス毎に設計したフィルタをヘッダ情報として可変長符号化部15に出力する。クラス分類手法としては、画像を空間的に等間隔に区切る簡易な手法や、ブロック単位に画像の局所的な特性(分散など)に応じて分類する手法がある。また、適応フィルタ処理で使用するクラス数は、予め画像符号化装置及び画像復号装置に共通の値として設定してもよいし、符号化すべきパラメータとしてもよい。前者と比較して後者の方が、使用するクラス数を自由に設定することができるため、画像品質改善効果が上がるが、一方でクラス数を符号化するために、その分の符号量が増加する。
図13はヒストグラム補正処理を実施するループフィルタ部13内の処理部を示す構成図である。
図13において、ヒストグラム算出部21は映像信号が示す入力画像(符号化対象画像)を複数のブロックに分割するとともに、加算部11により算出された局所復号画像を複数のブロックに分割し、その局所復号画像のブロック毎に画素値のヒストグラムを算出する処理を実施する。なお、ヒストグラム算出部21はヒストグラム算出手段を構成している。
画素値補正部22はヒストグラム算出部21により算出されたヒストグラムから符号化歪みに伴うノイズが重畳している画素を特定して、そのノイズが重畳している画素の画素値を補正する処理を実施する。なお、画素値補正部22は画素値補正手段を構成している。
画素値補正部22の第1の誤差算出部23はブロック単位の入力画像と局所復号画像との誤差を算出する処理を実施する。
第2の誤差算出部24はヒストグラム算出部21により算出されたヒストグラムにおけるピーク画素値を含む補正画素値範囲内の画素値を前記ピーク画素値に置換したと仮定した場合のブロック単位の局所復号画像と、ブロック単位の入力画像との誤差を算出する処理を実施する。
補正画素値範囲保存部25は第2の誤差算出部24により算出された誤差が第1の誤差算出部23により算出された誤差より小さければ、第1の誤差算出部23により算出された誤差を第2の誤差算出部24により算出された誤差に置き換えて、その補正画素値範囲を上書き保存する。
繰り返し処理部26は前記補正画素値範囲が予め設定された最大範囲に至るまで、その補正画素値範囲を更新して、誤差の算出処理の再実施を第2の誤差算出部24に繰り返し指示する処理を実施する。
画素値置換部27は繰り返し処理部26により更新された補正画素値範囲が予め設定された最大範囲に至ったのち、補正画素値範囲保存部25により保存されている補正画素値範囲内の画素値をピーク画素値に置換する処理を実施する。
即ち、ヒストグラム補正処理では、最初に、ヒストグラム算出部21が、映像信号が示す入力画像を複数のブロックに分割するとともに、加算部11により算出された局所復号画像を複数のブロックに分割し、その局所復号画像のブロック毎に画素値のヒストグラムを算出する。
画素値補正部22は、ヒストグラム算出部21により算出されたヒストグラムのピーク画素値を所定の方法によって特定する。そのピーク画素値の近傍には、符号化歪みによるノイズが存在するため、ピーク画素値に近い画素値を持つ画素(補正画素値範囲内の画素値)に対して、その画素値をピーク画素値で置換することで符号化歪みを低減する。
ここで、図14は補正前後の画素値のヒストグラムを示す説明図である。
図14では、どれだけの範囲の画素値に対して補正を実施するのかを示す補正幅(補正画素値範囲)をwで表しており、この補正幅wは、ピーク画素値の位置や画像の特性に応じて最適な値が変わるため、画素値補正部22が算出する。
図1において、動き補償予測フレームメモリ14はループフィルタ部13のフィルタ処理後の局所復号画像を格納する記録媒体である。
可変長符号化部15は変換・量子化部9から出力された圧縮データと、符号化制御部1の出力信号(最大符号化ブロック内のブロック分割情報、符号化モード、予測差分符号化パラメータ、ループフィルタパラメータ、イントラ予測パラメータ、イントラブロックコピー予測パラメータ、インター予測パラメータ)と、動き補償予測部7から出力された動きベクトル(符号化モードがインター符号化モードである場合)と、画素値補正部22により算出された最適な補正幅w(補正画素値範囲)とを可変長符号化して符号化データを生成する処理を実施する。
また、可変長符号化部15は、図15に例示するように、符号化ビットストリームのヘッダ情報として、シーケンスレベルヘッダ、ピクチャレベルヘッダを符号化し、ピクチャデータと共に符号化ビットストリームを生成する処理を実施する。なお、可変長符号化部15は符号化手段を構成している。
ただし、ピクチャデータは1以上のスライスデータから構成され、各スライスデータはスライスレベルヘッダと当該スライス内にある上記符号化データをまとめたものである。ピクチャデータはスライスデータの他に補足情報を示すヘッダ情報を含む場合もある。
シーケンスレベルヘッダは、画像サイズ、色信号フォーマット、輝度信号や色差信号の信号値のビット深度、シーケンス単位でのループフィルタ部13における各フィルタ処理(適応フィルタ処理、画素適応オフセット処理、デブロッキングフィルタ処理、ヒストグラム補正処理)の有効フラグ情報、量子化マトリクスの有効フラグ情報など、一般的にシーケンス単位に共通となるヘッダ情報をまとめたものである。
ピクチャレベルヘッダは、参照するシーケンスレベルヘッダのインデックスや動き補償時の参照ピクチャ数、エントロピー符号化の確率テーブル初期化フラグ、量子化マトリクスパラメータなど、ピクチャ単位で設定するヘッダ情報をまとめたものである。
スライスレベルヘッダは、当該スライスがピクチャのどの位置にあるかを示す位置情報、どのピクチャレベルヘッダを参照するかを示すインデックス、スライスの符号化タイプ(オールイントラ符号化、インター符号化など)、ループフィルタ部13における各フィルタ処理(適応フィルタ処理、画素適応オフセット処理、デブロッキングフィルタ処理、適応オフセット処理)を行うか否かを示すフラグ情報などのスライス単位のパラメータをまとめたものである。
各ヘッダ情報とピクチャデータはNALユニットによって識別される。具体的には、シーケンスパラメータセット(上記シーケンスレベルヘッダに相当)、ピクチャパラメータヘッダ(上記ピクチャレベルヘッダに相当)、スライスデータはそれぞれ固有のNALユニットタイプとして定義され、NALユニットタイプの識別情報(インデックス)と共に符号化される。補足情報についても、存在する場合には固有のNALユニットとして定義される。また、上記ピクチャデータはアクセスユニットとして定義され、一つのピクチャの符号化データを含むデータアクセスの単位を示している。
図1の例では、画像符号化装置の構成要素である符号化制御部1、スライス分割部2、ブロック分割部3、切換スイッチ4、イントラ予測部5、イントラブロックコピー予測部6、動き補償予測部7、減算部8、変換・量子化部9、逆量子化・逆変換部10、加算部11、イントラ用メモリ12、ループフィルタ部13、動き補償予測フレームメモリ14及び可変長符号化部15のそれぞれが専用のハードウェアで構成(イントラ用メモリ12及び動き補償予測フレームメモリ14以外の構成要素は、例えば、CPUを実装している半導体集積回路や、ワンチップマイコンなどで構成)されているものを想定しているが、画像符号化装置がコンピュータで構成されていてもよい。
画像符号化装置をコンピュータで構成する場合、イントラ用メモリ12及び動き補償予測フレームメモリ14をコンピュータのメモリ上に構成するとともに、符号化制御部1、スライス分割部2、ブロック分割部3、切換スイッチ4、イントラ予測部5、イントラブロックコピー予測部6、動き補償予測部7、減算部8、変換・量子化部9、逆量子化・逆変換部10、加算部11、ループフィルタ部13及び可変長符号化部15の処理内容を記述しているプログラムをコンピュータのメモリに格納し、当該コンピュータのCPUが当該メモリに格納されているプログラムを実行するようにすればよい。
図16はこの発明の実施の形態1による画像符号化装置の処理内容を示すフローチャートである。
図17はこの発明の実施の形態1による画像復号装置を示す構成図である。
図17において、可変長復号部31は図1の画像符号化装置により生成された符号化ビットストリームを入力すると、そのビットストリームからシーケンスレベルヘッダ、ピクチャレベルヘッダ、スライスレベルヘッダなどの各ヘッダ情報とピクチャデータを復号する処理を実施する。
ただし、ピクチャデータは1以上のスライスデータから構成されており、各スライスデータはスライスレベルヘッダと当該スライス内にある符号化データがまとめられているものである。ピクチャデータはスライスデータの他に補足情報を示すヘッダ情報を含む場合もある。このとき、YUV4:4:4フォーマット信号やRGB4:4:4フォーマット信号の各信号をモノクローム画像信号とみなしてそれぞれ独立にモノクローム(YUV4:0:0)符号化していることを示す情報がヘッダ情報に含まれる場合、各色信号の符号化ビットストリームに対してそれぞれ独立に復号処理を実施することができる。
各ヘッダ情報とピクチャデータはNALユニットによって識別される。具体的には、シーケンスパラメータセット(上記シーケンスレベルヘッダに相当)、ピクチャパラメータヘッダ(上記ピクチャレベルヘッダに相当)、スライスデータはそれぞれ固有のNALユニットタイプとして定義され、NALユニットタイプの識別情報(インデックス)を復号することで識別される。補足情報についても、存在する場合には固有のNALユニットとして識別される。また、ピクチャデータはスライスデータを示すNALユニット等をまとめたアクセスユニットとして識別される。
上記ヘッダ情報に含まれる量子化マトリクスの有効フラグ情報が“有効”を示す場合、可変長復号部31は量子化マトリクスパラメータを可変長復号し、量子化マトリクスを特定する。具体的には、各直交変換サイズの色信号や符号化モード毎に、量子化マトリクスパラメータが初期値として、画像符号化装置及び画像復号装置で予め共通に用意されている量子化マトリクス、又は、既に復号された量子化マトリクスである(新しい量子化マトリクスでない)ことを示す場合は、上記マトリクスの内のどの量子化マトリクスであるかを特定するインデックス情報を参照して量子化マトリクスを特定し、量子化マトリクスパラメータが新しい量子化マトリクスを用いることを示す場合は、量子化マトリクスパラメータに含まれる量子化マトリクスを使用する量子化マトリクスとして特定する。
また、可変長復号部31は、スライスレベルヘッダを参照して、スライス分割状態を特定するとともに、各スライスのスライスデータを復号して、最大符号化ブロックの符号化データを特定すると共に、スライスデータに含まれるブロック分割情報を復号して、最大符号化ブロックを階層的に分割して復号処理を行う単位である符号化ブロックを特定し、各々の符号化ブロックに係る圧縮データ、符号化モード、イントラ予測パラメータ(符号化モードがイントラ符号化モードである場合)、イントラブロックコピー予測パラメータ(符号化モードがイントラブロックコピー符号化モードである場合)、インター予測パラメータ(符号化モードがインター符号化モードである場合)、動きベクトル(符号化モードがインター符号化モードである場合)、最適な補正幅w(補正画素値範囲)及び予測差分符号化パラメータを可変長復号する処理を実施する。なお、可変長復号部31は復号手段を構成している。
逆量子化・逆変換部32は可変長復号部31により可変長復号された予測差分符号化パラメータに含まれる量子化パラメータ及び変換ブロック分割情報を参照して、可変長復号部31により可変長復号された圧縮データを変換ブロック単位に逆量子化するとともに、逆量子化後の圧縮データである変換係数に対する逆直交変換処理を実施して、図1の逆量子化・逆変換部10から出力された局所復号予測差分信号と同一の復号予測差分信号を算出する処理を実施する。
ここで、上記変換ブロック分割情報から、符号化ブロックにおける変換ブロックの分割状態を特定する。例えば、YUV4:2:0フォーマットの信号の場合、変換ブロックサイズは、図2に示すように、符号化ブロックを四分木状に階層分割することによって決定される。
輝度信号については、例えば、図2に示すように、符号化ブロックが1つ又は複数の正方形の変換ブロックに階層的に分割されるように構成する。色差信号については、図2に示すように、入力信号フォーマットがYUV4:2:0信号である場合、輝度信号と同様に、符号化ブロックが1つ又は複数の正方形の変換ブロックに階層的に分割されるように構成する。この場合、色差信号の変換ブロックサイズは、対応する輝度信号の変換ブロックの縦横ともに半分のサイズとなる。
入力信号フォーマットがYUV4:2:2信号である場合、図3に示すように、輝度信号と同様の四分木状の階層分割を行う。また、分割したブロックの形状が、垂直方向の画素数が水平方向の画素数の2倍になる長方形となるため、さらに、分割したブロックを上下に二分することで、YUV4:2:0信号での色差信号と同じブロックサイズ(輝度信号の変換ブロックの縦横ともに半分のサイズ)の変換ブロック2つで構成するようにする。
入力信号フォーマットがYUV4:4:4信号である場合、図4に示すように、色差信号の変換ブロックは、常に輝度信号の変換ブロックと同様の分割を行い、同じサイズの変換ブロックとなるように構成する。
また、可変長復号部31により可変長復号された各ヘッダ情報が、当該スライスで量子化マトリクスを用いて、逆量子化処理を実施することを示している場合、量子化マトリクスを用いて逆量子化処理を行う。具体的には、各ヘッダ情報から特定される量子化マトリクスを用いて逆量子化処理を行う。
切換スイッチ33は可変長復号部31により可変長復号された符号化モードがイントラ符号化モードであれば、可変長復号部31により可変長復号されたイントラ予測パラメータをイントラ予測部34に出力し、可変長復号部31により可変長復号された符号化モードがイントラブロックコピー符号化モードであれば、可変長復号部31により可変長復号されたイントラブロックコピー予測パラメータをイントラブロックコピー予測部35に出力し、可変長復号部31により可変長復号された符号化モードがインター符号化モードであれば、可変長復号部31により可変長復号されたインター予測パラメータ及び動きベクトルを動き補償予測部36に出力する処理を実施する。
イントラ予測部34は可変長復号部31により可変長復号されたブロック分割情報から特定される符号化ブロックに係る符号化モードがイントラ符号化モードである場合、イントラ用メモリ38に格納されている復号画像を参照しながら、切換スイッチ33から出力されたイントラ予測パラメータを用いたイントラ予測処理(フレーム内予測処理)を実施してイントラ予測画像を生成する処理を実施する。
即ち、イントラ予測部34は、輝度信号については、輝度信号に対する上記イントラ予測パラメータを用いたイントラ予測処理(フレーム内予測処理)を実施して、輝度信号の予測画像を生成する。一方、色差信号については、色差信号のイントラ予測パラメータが、輝度信号に対するイントラ予測モードと同じ予測モードを用いる旨を示している場合(イントラ予測パラメータが輝度色差共通イントラ予測モード(DMモード)を示している場合)、輝度信号と同じフレーム内予測を実施して、色差信号の予測画像を生成する。
また、色差信号のイントラ予測パラメータが、垂直方向予測モード又は水平方向予測モードを示している場合、色差信号に対する方向性予測を実施して、色差信号の予測画像を生成する。また、色差信号のイントラ予測パラメータが、輝度相関利用色差信号予測モード(LMモード)を示している場合、予測画像の生成対象ブロックの上及び左に隣接している複数の画素の輝度信号及び色差信号を用いて、輝度信号と色差信号の相関を示す相関パラメータを算出し、その相関パラメータと予測処理対象の色差信号のブロックに対応する輝度信号を用いて、色差信号の予測画像を生成する。
入力信号フォーマットがYUV4:2:2信号である場合、図7に示すように、輝度信号が正方ブロックであれば、色差信号は輝度信号と比較して水平方向の画素数が1/2となる長方形のブロックとなる。したがって、図8に示すように、YUV4:4:4信号をYUV4:2:2信号に変換した際に、輝度信号と色差信号で同一方向の予測となるようにするためには、YUV4:2:2信号上では、垂直方向予測と水平方向予測以外の方向性予測の場合には、色差信号の予測方向が輝度信号の予測方向と異なることとなる。具体的には、図9に示すように、輝度信号の予測方向ベクトルをvL=(dxL,dyL)とした場合、色差信号の予測方向ベクトルは、vC=(dxL/2,dyL)となる。即ち、図10に示すように、予測方向の角度をθとした場合、輝度信号の予測方向の角度をθL、色差信号の予測方向の角度をθCとして、tanθC=2tanθLの関係となる予測方向で予測する必要がある。
したがって、輝度信号と色差信号で同一方向の予測を行う上記DMモードを正しく実施できるようにするために、入力信号フォーマットがYUV4:2:2信号である場合、輝度信号に使用したイントラ予測モードのインデックスを色差信号の予測に用いるイントラ予測モードのインデックスに変換し、変換後のインデックスに対応するイントラ予測モードによる色差信号の予測処理を実施する。具体的には、インデックスの変換テーブルを用意し、その変換テーブルを参照することで、インデックスを変換するように構成してもよいし、予め変換式を用意して、その変換式に従ってインデックスを変換するように構成してもよい。このように構成することで、方向性予測処理自体を変更することなく、インデックスの変換のみで、YUV4:2:2信号のフォーマットに応じた色差信号の適切な予測を実施することができる。
イントラブロックコピー予測部35は可変長復号部31により可変長復号されたブロック分割情報から特定される符号化ブロックに係る符号化モードがイントラブロックコピー符号化モードである場合、その符号化ブロック内の予測ブロックが属している最大符号化ブロックの中で、未だ復号が済んでいない領域内の各画素の画素値を所定の方法で仮定する処理を実施する。また、イントラブロックコピー予測部35は符号化ブロック内の予測ブロック毎に、同一のピクチャ内で既に復号が済んでいる領域の中から、当該予測ブロックと最も近似しているブロックである参照ブロックを探索して、その参照ブロックを当該予測ブロックの予測画像に決定する処理を実施する。
動き補償予測部36は可変長復号部31により可変長復号されたブロック分割情報から特定される符号化ブロックに係る符号化モードがインター符号化モードである場合、動き補償予測フレームメモリ40に格納されている復号画像を参照しながら、切換スイッチ33から出力された動きベクトルとインター予測パラメータを用いたインター予測処理(動き補償予測処理)を実施してインター予測画像を生成する処理を実施する。
加算部37は逆量子化・逆変換部32により算出された復号予測差分信号と、イントラ予測部34により生成されたイントラ予測画像、イントラブロックコピー予測部35により生成されたイントラブロックコピー予測画像、又は、動き補償予測部36により生成されたインター予測画像とを加算して、図1の加算部11から出力された局所復号画像と同一の復号画像を算出する処理を実施する。
イントラ用メモリ38は加算部37により算出された復号画像をイントラ予測処理及びイントラブロックコピー予測処理で用いる参照画像として格納する記録媒体である。
ループフィルタ部39は加算部37により算出された復号画像に対して、所定のフィルタ処理を実施して、フィルタ処理後の復号画像を出力する処理を実施する。具体的には、変換ブロックの境界や予測ブロックの境界に発生する歪みを低減するフィルタ(デブロッキングフィルタ)処理、画素単位に適応的にオフセットを加算する(画素適応オフセット)処理、ウィーナフィルタ等の線形フィルタを適応的に切り替えてフィルタ処理する適応フィルタ処理などを行う。
これらのループフィルタは、復号画像の画質を向上させることを目的として適用されるが、図42に示すようなスクリーンコンテンツの特殊なヒストグラム形状を考慮しておらず、十分な画質改善効果が得られない。そこで、この実施の形態1では、新たなループフィルタ処理としてヒストグラム補正処理を実施する。
ループフィルタ部39は、上記のデブロッキングフィルタ処理、画素適応オフセット処理、適応フィルタ処理及びヒストグラム補正処理のそれぞれについて、可変長復号部31により可変長復号された各ヘッダ情報を参照することで、当該スライスで行うか否かを特定する。
このとき、2つ以上のフィルタ処理を行う場合において、例えば、画像符号化装置のループフィルタ部13が図12のように構成されていれば、図18に示すようにループフィルタ部39が構成される。当然、画像符号化装置のループフィルタ部13がデブロッキングフィルタ処理、画素適応オフセット処理及びヒストグラム補正処理から構成されていれば、ループフィルタ部39もデブロッキングフィルタ処理、画素適応オフセット処理及びヒストグラム補正処理で構成される。
デブロッキングフィルタ処理では、可変長復号部31により可変長復号されたヘッダ情報を参照し、ブロック境界にかけるフィルタ強度の選択に用いる各種パラメータを初期値から変更する情報が存在する場合、その変更情報に基づいて、デブロッキングフィルタ処理を実施する。変更情報がない場合は、予め定められた手法に従って行う。
画素適応オフセット処理では、可変長復号部31により可変長復号された画素適応オフセット処理のブロック分割情報に基づいて復号画像を分割し、そのブロック単位に、可変長復号部31により可変長復号されたブロック単位のクラス分類手法を示すインデックスを参照して、そのインデックスが“オフセット処理を行わない”ことを示すインデックスでない場合、ブロック単位にブロック内の各画素を上記インデックスが示すクラス分類手法に従ってクラス分類する。なお、クラス分類手法の候補として、ループフィルタ部13の画素適応オフセット処理のクラス分類手法の候補と同一のものが予め用意されている。そして、ブロック単位の各クラスのオフセット値を特定するオフセット情報を参照して、復号画像の画素値にオフセットを加算する処理を行う。
ただし、画像符号化装置のループフィルタ部13の画素適応オフセット処理において、ブロック分割情報は符号化せずに、常に画像を固定サイズのブロック単位(例えば、最大符号化ブロック単位)に分割し、そのブロック毎にクラス分類手法を選択して、クラス毎の適応オフセット処理を行うように構成されている場合、ループフィルタ部39においても、ループフィルタ部13と同一の固定サイズのブロック単位に画素適応オフセット処理を実施する。
適応フィルタ処理では、可変長復号部31により可変長復号されたクラス毎のフィルタを用いて、図1の画像符号化装置と同一の手法でクラス分類した後に、そのクラス分類情報に基づいてフィルタ処理を行う。
図19はヒストグラム補正処理を実施するループフィルタ部39内の処理部を示す構成図である。
図19において、ヒストグラム算出部41は加算部11により算出された復号画像を複数のブロックに分割し、その局所復号画像のブロック毎に画素値のヒストグラムを算出する処理を実施する。なお、ヒストグラム算出部41はヒストグラム算出手段を構成している。
画素値補正部42はヒストグラム算出部41により算出されたヒストグラムから符号化歪みに伴うノイズが重畳している画素を特定して、そのノイズが重畳している画素の画素値を補正する処理を実施する。
即ち、画素値補正部42はヒストグラム算出部41により算出されたヒストグラムにおけるピーク画素値を含む補正幅w(補正画素値範囲)内の画素値をピーク画素値に置換する処理を実施する。なお、画素値補正部42は画素値補正手段を構成している。
即ち、ヒストグラム補正処理では、ヒストグラム算出部41が、可変長復号部31により可変長復号されたヒストグラム補正処理のブロック分割情報に基づいて復号画像を分割し、そのブロック単位に、可変長復号部31により可変長復号されたヒストグラム補正を実施するか否かを表すフラグを参照して、そのフラグが“ヒストグラム補正処理を行わない”ことを示す値でない場合、当該ブロックで画素値のヒストグラムを算出する。
画素値補正部42は、ヒストグラム算出部41により算出されたヒストグラムのピーク画素値を所定の方法によって特定する。そのピーク画素値の近傍には、符号化歪みによるノイズが存在するため、ピーク画素値に近い画素値を持つ画素(可変長復号部31により可変長復号された補正幅w内の画素値)に対して、その画素値をピーク画素値で置換することで符号化歪みを低減する。
図17において、動き補償予測フレームメモリ40はループフィルタ部39のフィルタ処理後の復号画像をインター予測処理(動き補償予測処理)で用いる参照画像として格納する記録媒体である。
図17の例では、画像復号装置の構成要素である可変長復号部31、逆量子化・逆変換部32、切換スイッチ33、イントラ予測部34、イントラブロックコピー予測部35、動き補償予測部36、加算部37、イントラ用メモリ38、ループフィルタ部39及び動き補償予測フレームメモリ40のそれぞれが専用のハードウェアで構成(イントラ用メモリ38及び動き補償予測フレームメモリ40以外の構成要素は、例えば、CPUを実装している半導体集積回路や、ワンチップマイコンなどで構成)されているものを想定しているが、画像復号装置がコンピュータで構成されていてもよい。
画像復号装置をコンピュータで構成する場合、イントラ用メモリ38及び動き補償予測フレームメモリ40をコンピュータのメモリ上に構成するとともに、可変長復号部31、逆量子化・逆変換部32、切換スイッチ33、イントラ予測部34、イントラブロックコピー予測部35、動き補償予測部36、加算部37及びループフィルタ部39の処理内容を記述しているプログラムをコンピュータのメモリに格納し、当該コンピュータのCPUが当該メモリに格納されているプログラムを実行するようにすればよい。
図20はこの発明の実施の形態1による画像復号装置の処理内容を示すフローチャートである。
次に動作について説明する。
この実施の形態1では、映像の各フレーム画像を入力画像として、符号化済みの近傍画素からのイントラ予測又は近接フレーム間での動き補償予測を実施して、得られた予測差分信号に対して直交変換・量子化による圧縮処理を施し、その後、可変長符号化を行って符号化ビットストリームを生成する画像符号化装置と、その画像符号化装置から出力される符号化ビットストリームを復号する画像復号装置について説明する。
図1の画像符号化装置は、映像信号の空間・時間方向の局所的な変化に適応して、映像信号を多様なサイズのブロックに分割して、フレーム内・フレーム間適応符号化を行うことを特徴としている。一般的に、映像信号は、空間・時間的に信号の複雑さが局所的に変化する特性を有している。空間的に見ると、ある映像フレーム上では、例えば、空や壁などのような比較的広い画像領域中で均一な信号特性を有する絵柄もあれば、人物や細かいテクスチャを含む絵画など、小さい画像領域内で複雑なテクスチャパターンを有する絵柄も混在することがある。時間的に見ても、空や壁は局所的に時間方向の絵柄の変化は小さいが、動く人物や物体は、その輪郭が時間的に剛体・非剛体の運動をするため、時間的な変化が大きい。
符号化処理は、時間・空間的な予測によって、信号電力やエントロピーの小さい予測差分信号を生成して、全体の符号量を削減する処理を行うが、予測に用いるパラメータをできるだけ大きな画像信号領域に均一に適用できれば、当該パラメータの符号量を小さくすることができる。一方、時間的・空間的に変化の大きい画像信号パターンに対して、同一の予測パラメータを大きな画像領域に適用すると、予測の誤りが増えてしまうため、予測差分信号の符号量が増加してしまう。したがって、時間的・空間的に変化が大きい領域では、同一の予測パラメータを適用して予測処理を行うブロックサイズを小さくして、予測に用いるパラメータのデータ量を増やし、予測差分信号の電力・エントロピーを低減する方が望ましい。
この実施の形態1では、このような映像信号の一般的な性質に適応した符号化を行うため、最初に所定の最大ブロックサイズから予測処理等を開始し、階層的に映像信号の領域を分割し、分割した領域毎に予測処理や、その予測差分の符号化処理を適応化させる構成をとるようにしている。
最初に、図1の画像符号化装置の処理内容を説明する。
まず、符号化制御部1は、符号化対象となるピクチャ(カレントピクチャ)のスライス分割状態を決めると共に、ピクチャの符号化に用いる最大符号化ブロックのサイズと、最大符号化ブロックを階層分割する階層数の上限を決定する(図16のステップST1)。
最大符号化ブロックのサイズの決め方としては、例えば、入力画像の映像信号の解像度に応じて、全てのピクチャに対して同一のサイズを定めてもよいし、入力画像の映像信号の局所的な動きの複雑さの違いをパラメータとして定量化して、動きの激しいピクチャには、小さいサイズを定める一方、動きが少ないピクチャには、大きいサイズを定めるようにしてもよい。
分割階層数の上限の決め方としては、例えば、入力画像の映像信号の解像度に応じて、全てのピクチャに対して同一の階層数を定める方法や、入力画像の映像信号の動きが激しい場合には、階層数を深くして、より細かい動きが検出できるように設定し、動きが少ない場合には、階層数を抑えるように設定する方法などがある。なお、上記最大符号化ブロックのサイズと、最大符号化ブロックを階層分割する階層数の上限は、シーケンスレベルヘッダなどで符号化する。その場合、分割階層数の上限の代わりに、符号化ブロックの最小ブロックサイズを符号化するようにしてもよい。即ち、最大符号化ブロックを分割階層数の上限まで分割したときのブロックのサイズが、符号化ブロックの最小ブロックサイズであるため、画像復号装置側において、最大符号化ブロックのサイズと符号化ブロックの最小ブロックサイズから分割階層数の上限を特定することができる。
また、符号化制御部1は、利用可能な1以上の符号化モードの中から、階層的に分割される各々の符号化ブロックに対応する符号化モードを選択する(図16のステップST2)。即ち、符号化制御部1は、最大符号化ブロックサイズの画像領域毎に、先に定めた分割階層数の上限に至るまで、階層的に符号化ブロックサイズを有する符号化ブロックに分割して、各々の符号化ブロックに対する符号化モードを決定する。
符号化モードには、1つないし複数のイントラ符号化モード(総称して「INTRA」と称する)と、1つないし複数のイントラブロックコピー符号化モード(総称して「ICOPY」と称する)と、1つないし複数のインター符号化モード(総称して、「INTER」と称する)とがあり、符号化制御部1は、当該ピクチャで利用可能な全ての符号化モード、又は、そのサブセットの中から、各々の符号化ブロックに対応する符号化モードを選択する。
ただし、後述するブロック分割部3により階層的に分割される各々の符号化ブロックは、さらに予測処理を行う単位である1つないし複数の予測ブロックに分割され、予測ブロックの分割状態も符号化モードの中に情報として含まれる。即ち、符号化モードは、どのような予測ブロック分割を持つイントラ符号化モード、イントラブロックコピー符号化モード又はインター符号化モードかを識別するインデックスである。
符号化制御部1による符号化モードの選択方法は、公知の技術であるため詳細な説明を省略するが、例えば、利用可能な任意の符号化モードを用いて、符号化ブロックに対する符号化処理を実施して符号化効率を検証し、利用可能な複数の符号化モードの中で、最も符号化効率がよい符号化モードを選択する方法などがある。
また、符号化制御部1は、各々の符号化ブロック毎に、差分画像が圧縮される際に用いられる量子化パラメータ及び変換ブロック分割状態を決定するとともに、予測処理が実施される際に用いられる予測パラメータ(イントラ予測パラメータ、イントラブロックコピー予測パラメータ又はインター予測パラメータ)を決定する。ただし、符号化ブロックがさらに予測処理を行う予測ブロック単位に分割される場合は、予測ブロック毎に予測パラメータ(イントラ予測パラメータ、イントラブロックコピー予測パラメータ又はインター予測パラメータ)を選択する。
ここで、図2は4:2:0フォーマットの信号における輝度信号及び色差信号の圧縮処理(変換処理、量子化処理)を実施する際の変換ブロックサイズを示す説明図である。変換ブロックサイズは、図2に示すように、符号化ブロックを四分木状に階層分割することによって決定される。
例えば、変換ブロックを分割する場合と変換ブロックを分割しない場合での符号量や、符号化誤差を加味した評価尺度などに基づいて、評価値が最小になるように変換ブロックを分割するか否かを決定することで、符号量と符号化誤差のトレードオフの観点から最適な変換ブロックの分割形状を決定することができる。
輝度信号については、例えば、図2に示すように、符号化ブロックが1つ又は複数の正方形の変換ブロックに階層的に分割されるように構成する。色差信号については、図2に示すように、入力信号フォーマットがYUV4:2:0信号である場合、輝度信号と同様に、符号化ブロックが1つ又は複数の正方形の変換ブロックに階層的に分割されるように構成する。この場合、色差信号の変換ブロックサイズは、対応する輝度信号の変換ブロックの縦横ともに半分のサイズとなる。
入力信号フォーマットがYUV4:2:2信号である場合、図3に示すように、輝度信号と同様の四分木状の階層分割を行う。また、分割したブロックの形状が、垂直方向の画素数が水平方向の画素数の2倍になる長方形となるため、さらに、分割したブロックを上下に二分することで、YUV4:2:0信号での色差信号と同じブロックサイズ(輝度信号の変換ブロックの縦横ともに半分のサイズ)の変換ブロック2つで構成するようにする。
また、入力信号フォーマットがYUV4:4:4信号である場合、図4に示すように、色差信号の変換ブロックは、常に輝度信号の変換ブロックと同様の分割を行い、同じサイズの変換ブロックとなるように構成する。
符号化制御部1は、符号化ブロックにおける変換ブロックの分割情報を示す変換ブロック分割情報や、変換係数の量子化を行う際の量子化ステップサイズを規定する量子化パラメータなどを含む予測差分符号化パラメータを変換・量子化部9、逆量子化・逆変換部10及び可変長符号化部15に出力する。
符号化制御部1は、イントラ予測パラメータを必要に応じてイントラ予測部5に出力する。
また、符号化制御部1は、イントラブロックコピー予測パラメータを必要に応じてイントラブロックコピー予測部6に出力する。
また、符号化制御部1は、インター予測パラメータを必要に応じて動き補償予測部7に出力する。
スライス分割部2は、入力画像として映像信号を入力すると、その入力画像を符号化制御部1により決定されたスライス分割情報にしたがって1以上の部分画像であるスライスに分割する。
ブロック分割部3は、スライス分割部2から各スライスを入力する毎に、そのスライスを符号化制御部1により決定された最大符号化ブロックサイズに分割し、さらに、分割した最大符号化ブロックを符号化制御部1により決定された符号化ブロックへ階層的に分割して、その符号化ブロックを出力する。
ここで、図21は最大符号化ブロックが階層的に複数の符号化ブロックに分割される例を示す説明図である。
図21において、最大符号化ブロックは、「第0階層」と記されている輝度成分が(L0,M0)のサイズを有する符号化ブロックである。最大符号化ブロックを出発点として、4分木構造で別途定める所定の深さまで、階層的に分割を行うことによって符号化ブロックを得るようにしている。深さnにおいては、符号化ブロックはサイズ(Ln,Mn)の画像領域である。ただし、LnとMnは、同じであってもよいし、異なっていてもよいが、図21では、Ln=Mnのケースを示している。
以降、符号化制御部1により決定される符号化ブロックサイズは、符号化ブロックの輝度成分におけるサイズ(Ln,Mn)と定義する。4分木分割を行うため、常に、(Ln+1,Mn+1)=(Ln/2,Mn/2)が成立する。なお、RGB信号など、全ての色成分が同一サンプル数を有するカラー映像信号(4:4:4フォーマット)では、全ての色成分のサイズが(Ln,Mn)になるが、4:2:0フォーマットを扱う場合、対応する色差成分の符号化ブロックサイズは(Ln/2,Mn/2)になる。
以降、第n階層の符号化ブロックをBnで表し、符号化ブロックBnで選択可能な符号化モードをm(Bn)で表すものとする。複数の色成分からなるカラー映像信号の場合、符号化モードm(Bn)は、色成分毎に、それぞれ個別のモードを用いるように構成されてもよいし、全ての色成分に対し共通のモードを用いるように構成されてもよい。以降、特に断らない限り、YUV信号、4:2:0フォーマットの符号化ブロックの輝度成分に対する符号化モードを指すものとして説明を行う。
符号化ブロックBnは、図21に示すように、ブロック分割部3によって、予測処理単位を表す1つないし複数の予測ブロックに分割される。以降、符号化ブロックBnに属する予測ブロックをPi n(iは、第n階層における予測ブロック番号)と表記する。図21にはP0 0とP1 0の例を示している。符号化ブロックBn内の予測ブロックの分割が、どのようになされているかは、符号化モードm(Bn)の中に情報として含まれる。予測ブロックPi nは、全て符号化モードm(Bn)に従って予測処理が行われるが、予測ブロックPi n毎に、個別の予測パラメータ(イントラ予測パラメータ、イントラブロックコピー予測パラメータ又はインター予測パラメータ)を選択することができる。
符号化制御部1は、最大符号化ブロックに対して、例えば、図22に示すようなブロック分割状態を生成して、符号化ブロックを特定する。図22(a)の点線で囲まれた矩形が各符号化ブロックを表し、各符号化ブロック内にある斜線で塗られたブロックが各予測ブロックの分割状態を表している。図22(b)は、図22(a)の例について、階層分割によって符号化モードm(Bn)が割り当てられる状況を4分木グラフで示したものである。図22(b)の□で囲まれているノードは、符号化モードm(Bn)が割り当てられたノード(符号化ブロック)である。この4分木グラフの情報は符号化モードm(Bn)と共に符号化制御部1から可変長符号化部15に出力されて、ビットストリームに多重化される。
切換スイッチ4は、符号化制御部1により決定された符号化モードm(Bn)がイントラ符号化モードである場合(m(Bn)∈INTRAの場合)、ブロック分割部3から出力された符号化ブロックBnをイントラ予測部5に出力し、符号化制御部1により決定された符号化モードm(Bn)がイントラブロックコピー符号化モードである場合(m(Bn)∈ICOPYの場合)、ブロック分割部3から出力された符号化ブロックBnをイントラブロックコピー予測部6に出力し、符号化制御部1により決定された符号化モードm(Bn)がインター符号化モードである場合(m(Bn)∈INTERの場合)、ブロック分割部3から出力された符号化ブロックBnを動き補償予測部7に出力する。
イントラ予測部5は、符号化制御部1により決定された符号化モードm(Bn)がイントラ符号化モードであり(m(Bn)∈INTRAの場合)、切換スイッチ4から符号化ブロックBnを受けると(図16のステップST3)、イントラ用メモリ12に格納されている局所復号画像を参照しながら、符号化制御部1により決定されたイントラ予測パラメータを用いて、その符号化ブロックBn内の各予測ブロックPi nに対するイントラ予測処理を実施して、イントラ予測画像PINTRAi nを生成する(図16のステップST4)。
ただし、詳細は後述するが、イントラ予測画像を生成する処理を行う際に、予測ブロックに隣接する符号化済みの画素を用いることから、イントラ予測画像を生成する処理は、予測処理に用いる予測ブロックに隣接する画素が既に符号化済みとなるように常に変換ブロック単位に行われなくてはならない。したがって、符号化モードがイントラ符号化モードである符号化ブロックでは、選択可能な変換ブロックのブロックサイズは、予測ブロックのサイズ以下に制限され、さらに、変換ブロックが予測ブロックより小さい場合(予測ブロック内に複数の変換ブロックが存在する場合)には、変換ブロック単位に、当該予測ブロックで定められたイントラ予測パラメータを用いたイントラ予測処理を実施してイントラ予測画像を生成する処理を実施する。
なお、図17の画像復号装置がイントラ予測画像PINTRAi nと全く同じイントラ予測画像を生成する必要があるため、イントラ予測画像PINTRAi nの生成に用いられたイントラ予測パラメータは、符号化制御部1から可変長符号化部15に出力されて、ビットストリームに多重化される。イントラ予測部5の処理内容の詳細は後述する。
イントラブロックコピー予測部6は、符号化制御部1により決定された符号化モードm(Bn)がイントラブロックコピー符号化モードであり(m(Bn)∈ICOPYの場合)、切換スイッチ4から符号化ブロックBnを受けると(図16のステップST3)、その符号化ブロックBn内の各予測ブロックPi nとイントラ用メモリ12に格納されている局所復号画像を比較してブロックシフトベクトルを探索する。即ち、イントラブロックコピー予測部6は、イントラ用メモリ12に格納されている局所復号画像の中で、予測ブロックPi nと最も近似している領域のブロック(参照ブロック)を特定して、その参照ブロックを指し示すブロックシフトベクトルを探索する。
イントラブロックコピー予測部6は、参照ブロックを指し示すブロックシフトベクトルを探索すると、そのブロックシフトベクトルが指し示す参照ブロックを予測ブロックPi nの予測画像として、イントラブロックコピー予測画像PICOPYi nを生成する(図16のステップST5)。
図17の画像復号装置では、イントラブロックコピー予測画像PICOPYi nと全く同じイントラブロックコピー予測画像を生成する必要があるため、イントラブロックコピー予測画像PICOPYi nの生成に用いられたイントラブロックコピー予測パラメータは、符号化制御部1から可変長符号化部15に出力されて、ビットストリームに多重化される。
イントラブロックコピー予測パラメータとしては、イントラブロックコピー予測部6により探索されたブロックシフトベクトルが挙げられる。また、ブロックシフトベクトルは直前の符号化済み予測ブロックのブロックシフトベクトル、あるいは当該予測ブロックの周囲の符号化済み予測ブロックのブロックシフトベクトルとの差分値をイントラブロックコピー予測パラメータの一部として符号化するようにしてもよい。
動き補償予測部7は、符号化制御部1により決定された符号化モードm(Bn)がインター符号化モードであり(m(Bn)∈INTERの場合)、切換スイッチ4から符号化ブロックBnを受けると(図16のステップST3)、その符号化ブロックBn内の各予測ブロックPi nと動き補償予測フレームメモリ14に格納されているフィルタ処理後の局所復号画像を比較して動きベクトルを探索し、その動きベクトルと符号化制御部1により決定されたインター予測パラメータを用いて、その符号化ブロックBn内の各予測ブロックPi nに対するインター予測処理を実施して、インター予測画像PINTERi nを生成する(図16のステップST6)。
図17の画像復号装置がインター予測画像PINTERi nと全く同じインター予測画像を生成する必要があるため、インター予測画像PINTERi nの生成に用いられたインター予測パラメータは、符号化制御部1から可変長符号化部15に出力されて、ビットストリームに多重化される。
また、動き補償予測部7により探索された動きベクトルも可変長符号化部15に出力されて、ビットストリームに多重化される。
減算部8は、ブロック分割部3から符号化ブロックBnを受けると、その符号化ブロックBn内の予測ブロックPi nから、イントラ予測部5により生成されたイントラ予測画像PINTRAi n、イントラブロックコピー予測部6により生成されたイントラブロックコピー予測画像PICOPYi n、又は、動き補償予測部7により生成されたインター予測画像PINTERi nのいずれかを減算して、その減算結果である差分画像を示す予測差分信号ei nを変換・量子化部9に出力する(図16のステップST7)。
変換・量子化部9は、減算部8から予測差分信号ei nを受けると、符号化制御部1により決定された予測差分符号化パラメータに含まれる変換ブロック分割情報を参照して、その予測差分信号ei nに対する直交変換処理(例えば、DCT(離散コサイン変換)やDST(離散サイン変換)、予め特定の学習系列に対して基底設計がなされているKL変換等の直交変換処理)を変換ブロック単位に実施して、変換係数を算出する。
また、変換・量子化部9は、その予測差分符号化パラメータに含まれる量子化パラメータを参照して、その変換ブロック単位の変換係数を量子化し、量子化後の変換係数である圧縮データを逆量子化・逆変換部10及び可変長符号化部15に出力する(図16のステップST8)。このとき、上記量子化パラメータから算出される量子化ステップサイズを変換係数毎にスケーリングする量子化マトリクスを用いて量子化処理を実施するようにしてもよい。
量子化マトリクスは、各直交変換サイズで色信号や符号化モード(イントラ符号化かインター符号化か)毎に独立しているマトリクスを使用することができ、初期値として、画像符号化装置及び画像復号装置で、予め共通に用意されている量子化マトリクスや既に符号化された量子化マトリクスの中から選択するか、新しい量子化マトリクスを用いるかをそれぞれ選択することができる。したがって、変換・量子化部9は、各直交変換サイズに対して色信号や符号化モード毎に、新しい量子化マトリクスを用いるか否かを示すフラグ情報を符号化すべき量子化マトリクスパラメータに設定する。
さらに、新しい量子化マトリクスを用いる場合には、図11に示すような量子化マトリクスの各スケーリング値を符号化すべき量子化マトリクスパラメータに設定する。一方、新しい量子化マトリクスを用いない場合には、初期値として、画像符号化装置及び画像復号装置で、予め共通に用意されている量子化マトリクス、又は、既に符号化された量子化マトリクスの中から、使用するマトリクスを特定するインデックスを符号化すべき量子化マトリクスパラメータに設定する。ただし、参照可能な既に符号化された量子化マトリクスが存在しない場合、画像符号化装置及び画像復号装置で、予め共通に用意されている量子化マトリクスのみ選択可能となる。そして、変換・量子化部9は、設定した量子化マトリクスパラメータを可変長符号化部15に出力する。
逆量子化・逆変換部10は、変換・量子化部9から圧縮データを受けると、符号化制御部1により決定された予測差分符号化パラメータに含まれる量子化パラメータ及び変換ブロック分割情報を参照して、変換ブロック単位にその圧縮データを逆量子化する。変換・量子化部9が量子化処理に量子化マトリクスを用いている場合には、逆量子化処理時においても、その量子化マトリクスを参照して、対応した逆量子化処理を実施する。
また、逆量子化・逆変換部10は、変換ブロック単位に逆量子化後の圧縮データである変換係数に対する逆直交変換処理(例えば、逆DCT、逆DST、逆KL変換など)を実施して、減算部8から出力された予測差分信号ei nに相当する局所復号予測差分信号を算出して加算部11に出力する(図16のステップST9)。
加算部11は、逆量子化・逆変換部10から局所復号予測差分信号を受けると、その局所復号予測差分信号と、イントラ予測部5により生成されたイントラ予測画像PINTRAi n、イントラブロックコピー予測部6により生成されたイントラブロックコピー予測画像PICOPYi n、又は、動き補償予測部7により生成されたインター予測画像PINTERi nのいずれかを加算することで、局所復号画像を算出する(図16のステップST10)。
また、加算部11は、その局所復号画像をループフィルタ部13に出力するとともに、その局所復号画像をイントラ用メモリ12に格納する。この局所復号画像が、以降のイントラ予測処理及びイントラブロックコピー予測処理の際に用いられる符号化済みの画像信号になる。
ループフィルタ部13は、加算部11から局所復号画像を受けると、その局所復号画像に対して、所定のフィルタ処理を実施して、フィルタ処理後の局所復号画像を動き補償予測フレームメモリ14に格納する(図16のステップST11)。具体的には、変換ブロックの境界や予測ブロックの境界に発生する歪みを低減するフィルタ(デブロッキングフィルタ)処理、画素単位に適応的にオフセットを加算する(画素適応オフセット)処理、ウィーナフィルタ等の線形フィルタを適応的に切り替えてフィルタ処理する適応フィルタ処理などを行う。
これらのループフィルタは、復号画像の画質を向上させることを目的として適用されるが、図42に示すようなスクリーンコンテンツの特殊なヒストグラム形状を考慮しておらず、十分な画質改善効果が得られない。そこで、この実施の形態1では、新たなループフィルタ処理としてヒストグラム補正処理を実施する。
ループフィルタ部13は、上記のデブロッキングフィルタ処理、画素適応オフセット処理、適応フィルタ処理及びヒストグラム補正処理のそれぞれについて処理を行うか否かを決定し、各処理の有効フラグをヘッダ情報として可変長符号化部15に出力する。なお、上記のフィルタ処理を複数使用する際には、各フィルタ処理を順番に実施する。図12は複数のフィルタ処理を用いる場合のループフィルタ部13の構成例を示している。
ただし、図12に示しているループフィルタの種類と順序は一例に過ぎず、適用するループフィルタの種類と適用順序は必ずしも図12のようにする必要はない。例えば、デブロッキングフィルタ処理、画素適応オフセット処理、ヒストグラム補正処理の3種類だけでループフィルタ部13を構成することや、適用順序をデブロッキングフィルタ処理、ヒストグラム補正処理、画素適応オフセット処理の順にすることなどが考えられる。
ここで、デブロッキングフィルタ処理では、ブロック境界にかけるフィルタ強度の選択に用いる各種パラメータを初期値から変更することができる。変更する場合には、そのパラメータをヘッダ情報として可変長符号化部15に出力する。
画素適応オフセット処理では、最初に、画像を複数のブロックに分割し、そのブロック単位に、オフセット処理を行わない場合もクラス分類手法の一つとして定義して、予め用意されている複数のクラス分類手法の中から、1つのクラス分類手法を選択する。次に、選択したクラス分類手法によって、ブロック内の各画素をクラス分類し、クラス毎に符号化歪みを補償するオフセット値を算出する。最後に、局所復号画像の画素値に対して、そのオフセット値を加算する処理を行うことで局所復号画像の画像品質を改善する。
クラス分類手法としては、局所復号画像の画素値の大きさで分類する手法(BO手法と呼ぶ)や、エッジの方向毎に各画素の周囲の状況(エッジ部か否か等)に応じて分類する手法(EO手法と呼ぶ)がある。これらの手法は、予め画像符号化装置及び画像復号装置で共通に用意されており、例えば、図23に示すように、オフセット処理を行わない場合もクラス分類手法の一つとして定義して、これらの手法のうち、どの手法でクラス分類を行うかを示すインデックスを上記ブロック単位に選択する。
したがって、画素適応オフセット処理は、ブロックの分割情報、ブロック単位のクラス分類手法を示すインデックス、ブロック単位のオフセット情報をヘッダ情報として可変長符号化部15に出力する。
なお、画素適応オフセット処理において、例えば、最大符号化ブロックといった固定サイズのブロック単位に常に分割し、そのブロック毎にクラス分類手法を選択して、クラス毎の適応オフセット処理を行ってもよい。この場合、上記ブロック分割情報が不要となり、ブロック分割情報に要する符号量分だけ符号量が削減され、符号化効率を高めることができる。
また、適応フィルタ処理では、局所復号画像を所定の手法でクラス分類し、各クラスに属する領域(局所復号画像)毎に、重畳されている歪みを補償するフィルタを設計し、そのフィルタを用いて、当該局所復号画像のフィルタ処理を実施する。そして、クラス毎に設計したフィルタをヘッダ情報として可変長符号化部15に出力する。
ここで、クラス分類手法としては、画像を空間的に等間隔に区切る簡易な手法や、ブロック単位に画像の局所的な特性(分散など)に応じて分類する手法がある。また、適応フィルタ処理で使用するクラス数は、予め画像符号化装置及び画像復号装置で共通の値に設定してもよいし、符号化すべきパラメータの一つとしてもよい。前者と比較して後者の方が、使用するクラス数を自由に設定することができるため、画像品質改善効果が上がるが、一方でクラス数を符号化するために、その分の符号量が増加する。
図24A及び図24Bはこの発明の実施の形態1による画像符号化装置におけるヒストグラム補正処理の内容を示すフローチャートである。
以下、図24A及び図24Bを参照しながら、ヒストグラム補正処理の流れを説明する。
ヒストグラム補正処理では、最初に、図13のヒストグラム算出部21が、映像信号が示す入力画像を複数のブロックに分割するとともに、加算部11により算出された局所復号画像を複数のブロックに分割する。
画素値補正部22の第1の誤差算出部23は、ヒストグラム算出部21により分割されたブロック単位の入力画像と局所復号画像との誤差Eminを算出する(図24AのステップST100〜ST101)。
誤差Eminの算出方法として、例えば、画素値の絶対値差分を合計するSAD(Sum of Absolute Differences)、画素値の差分を二乗した値を合計するSSD(Sum of Squared Differences)などを用いることが考えられる。これらの指標が小さいほど、入力画像と局所復号画像が似通っており、符号化による歪みが小さいことを意味する。
また、誤差ではなく画質を表す指標を算出するようにしてもよい。画質を表す指標としては、信号が取り得る最大のパワーと劣化をもたらすノイズの比率を表すPSNR(Peak Signal−to−Noise Ratio)などが考えられる。画質を表す指標を用いた場合は、値が大きいほど符号化歪みが小さいことを意味する。
また、ヒストグラム算出部21は、その局所復号画像のブロック毎に画素値のヒストグラムを算出し(図24AのステップST102)、ヒストグラムの値が最大となる画素値を選択し、その画素値をp(以下、「ピーク画素値」と称する)とする(図24AのステップST103)。
なお、ヒストグラムのステップ幅は、必ずしも1とする必要はなく、1以上の値としてもよい。ヒストグラム生成のためのステップ幅を大きくすると、ヒストグラムの精度は落ちるが、ヒストグラム生成のために必要なメモリなどを小さく抑えることが可能である。ヒストグラムのステップ幅を1以上とした場合は、ピーク画素値pはステップ幅の中央値などに設定することが考えられる。
また、必ずしもブロック内の全ての画素を用いてヒストグラムを計算する必要はなく、一部の画素だけを用いてヒストグラムを求めてもよい。ヒストグラム計算に使用する画素数を削減することで、ヒストグラム計算に必要な演算量を削減することが可能である。
なお、求めたヒストグラムを直接用いてその値が最大となる画素値を選択するだけでなく、例えばヒストグラムを微分してからその最大値を求めることも考えられる。このようにすることで、隣接したピークからの差分が大きい顕著なピークだけを特定できる効果が期待できる。
次に、第2の誤差算出部24、補正画素値範囲保存部25及び繰り返し処理部26が、補正を適用する幅である図14の補正幅wを決定する処理を実施する。
まず、補正幅wの初期値として、補正幅wtempが例えば1に設定されたのち(図24AのステップST104)、第2の誤差算出部24が、補正幅wtemp内の画素値((ピーク画素値p−補正幅wtemp)〜(ピーク画素値p+補正幅wtemp)の画素値)をピーク画素値pに置換する(図24AのステップST105〜ST108)。ただし、ここでの置換は、補正幅wを決定するために仮に置換するだけであり、実際の置換(画素値の補正)は最適な補正幅wが決定されてから、画素値置換部27で行われる。
具体的には、以下のように、画素値の置換を行う。
ここで、(x,y)はブロック単位の局所復号画像における画素の座標を表し、L(x,y)は置換前の画素値、L’(x,y)は置換後の画素値を表している。
ブロック内の全部または一部の画素に対して上記の補正を実施する。なお、上式において、p−w
tempが画素値の下限を下回った場合はこれを画素値の下限に置き換え、p+w
tempが画素値の上限を上回った場合はこれを画素値の上限に置き換えてもよい。
ここでは、補正幅w
tempをピーク画素値pよりも大きい側と小さい側で同一としているが、必ずしも両者を一致させる必要はなく、それぞれに対して異なる補正幅w
tempを使用してもよい。
第2の誤差算出部24は、補正幅wtemp内の画素値を仮にピーク画素値pに置換すると、ブロック単位の局所復号画像と、ブロック単位の入力画像との誤差Eを算出する(図24AのステップST109)。
補正画素値範囲保存部25は、第2の誤差算出部24が誤差Eを算出すると、その誤差Eと第1の誤差算出部23により算出された誤差Eminとを比較し(図24AのステップST110)、その誤差Eが誤差Eminより小さければ(E<Emin)、第1の誤差算出部23により算出された誤差Eminを誤差Eに置き換えるとともに、補正幅wtempを現在のピーク画素値に対する最適な補正幅wi(初期値は0)として上書き保存する(図24AのステップST111)。
ただし、iは処理中のピーク画素値を示すインデックスであり、初期値は0である。なお、誤差Eが誤差Eminよりも大きい場合は、画素値を置換することで誤差が増加しているので、誤差Emin及び補正幅wtempの更新を行わない。なお、誤差としてPSNRなどの画質を表す指標を用いる場合は、ステップST110の不等号が逆向きになる。
次に、繰り返し処理部26は、その補正幅wtempに対して、例えば、1を加算することで、その補正幅wtempを更新して(図24AのステップST112)、ピーク画素値pに置換した補正幅wtemp内の画素値を元の画素値に戻してから(図24AのステップST113)、更新後の補正幅wtempと予め設定された最大補正幅wmaxを比較する(図24AのステップST114)。
繰り返し処理部26は、更新後の補正幅wtempが最大補正幅wmax以下であれば(wtemp≦wmax)、誤差Eの算出処理の再実施を第2の誤差算出部24に指示して、ステップST105の処理に戻る。
一方、更新後の補正幅wtempが最大補正幅wmaxより大きければ(wtemp>wmax)、ステップST115の処理に移行する。
ステップST105からST114の処理の繰り返し回数は、最大補正幅wmaxに依存する。最大補正幅wmaxの値は画像符号化装置が自由に設定してよいが、大きな値を設定するとヒストグラム補正処理による画質改善効果は高くなるが、繰り返し回数が増えるために計算時間が増大する。逆に小さな値を設定すると画質改善効果は小さくなるが、計算時間も抑えられるというトレードオフの関係が存在する。最大補正幅wmaxの具体例としては15などが考えられる。
なお、wmaxの値は必ずしも常に固定値とする必要はなく、符号化処理中に符号化パラメータに応じて変更してもよい。例えば、量子化パラメータが大きく、符号化歪みが大きい場合はwmaxを大きくして画質改善効果を高め、量子化パラメータが小さく、符号化歪みが小さい場合はwmaxを小さくして計算時間を削減することなどが考えられる。
また、補正幅wは、例えば2のべき乗などの値に限定するようにしてもよい。このようにした場合、補正幅wを符号化する際に指数部だけを符号化すればよいため、補正幅wの符号化に必要な符号量を削減することが可能である。
画素値置換部27は、更新後の補正幅w
tempが最大補正幅w
maxより大きくなると(w
temp>w
max)、以下のように、補正画素値範囲保存部25により保存されている最適な補正幅w
i内の画素値((ピーク画素値p−補正幅w
i)〜(ピーク画素値p+補正幅w
i)の画素値)をピーク画素値pに置換する(図24BのステップST115〜ST118)。
ブロック内の全部または一部の画素に対して上記の補正を実施する。なお、上式において、p−w
iが画素値の下限を下回った場合はこれを画素値の下限に置き換え、p+w
iが画素値の上限を上回った場合はこれを画素値の上限に置き換えてもよい。
次に、画素値置換部27は、ピーク画素値を示すインデックスiに1を加え、ST102でヒストグラム算出部21により算出されたヒストグラムから、画素値がpとなる画素に相当する部分を削除する(図24BのステップST119〜ST120)。
画素値置換部27は、インデックスiと予め設定された最大ピーク数Pmaxを比較し(図24BのステップST121)、インデックスiが最大ピーク数Pmaxより小さければ(i<Pmax)、ピーク画素値の再選択をヒストグラム算出部21に指示して、ステップST103の処理に戻る。
一方、インデックスiが最大ピーク数Pmaxに到達していれば(i≧Pmax)、ヒストグラム補正処理を終了する。
この実施の形態1では、画素値補正部22が、ヒストグラムの各ピーク画素値に対する最適な補正幅wiを求め、可変長符号化部15が、各ピーク画素値に対する最適な補正幅wiを符号化する。
したがって、補正を実施するピークの数Pmaxの分だけ補正幅wiを符号化(w0,w1,w2,…,wPmax−1の全てを符号化)する必要があり、最大ピーク数Pmaxが大きくなると画質改善効果は大きくなるが符号量が増大し、逆に最大ピーク数Pmaxが小さくなると画質改善効果は小さくなるが符号量が抑えられるというトレードオフの関係が存在する。
また、当然ながら最大ピーク数Pmaxが大きいほど計算時間も増える。最大ピーク数Pmaxの具体例としては4などが考えられる。
例えば、全てのピーク画素値に対する補正幅wiが0である場合(ヒストグラム補正処理を実施しても効果が見られない場合)などは、当該ブロックに対してはヒストグラム補正処理を適用しないようにすることも可能である。このようにすることで、不要な情報を符号化することを避け、符号量を削減することで符号化効率を高めることができる。
ヒストグラム補正処理を適用するか否かの判定には、この他にも様々な手法を用いることができ、例えば、実際にヒストグラム補正処理を実施して符号化を行った場合にどれだけ符号化効率を改善できるかを調べるようにしてもよいし、テクスチャやエッジなどの画像特徴や、スクリーンコンテンツであるか否かを判定した結果を利用して決定するようにしてもよい。
したがって、ヒストグラム補正処理では、まず、ブロック分割情報をヘッダ情報として可変長符号化部15に出力し、さらにブロック毎に補正を実施するか否かのフラグ、補正を実施する場合は各ピーク画素値に対する適正な補正幅wi(i=0、1、…、Pmax−1)をヘッダ情報として可変長符号化部15に出力する。
また、ヒストグラム補正処理を実施するか否かは、映像単位やスライス、ピクチャ単位に決定してもよい。例えば、映像単位でのヘッダ部(シーケンスパラメータセット)にフラグを追加し、映像がスクリーンコンテンツではなく、ヒストグラム補正処理が効果的でないとあらかじめ判断できる場合には、このフラグを0などに設定することでヒストグラム補正処理が実施されないようにしてもよい。もちろん、ピクチャやスライス単位でのヘッダ部(ピクチャパラメータセット、スライスパラメータセット)にフラグを追加し、ピクチャやスライス単位で切り替えることも考えられる。このようにすることで、ヒストグラム補正処理の効果がない映像あるいはピクチャ、スライスに対してはヒストグラム補正処理に係るパラメータを符号化する必要がなくなるため、符号量を削減することが可能である。
なお、ヒストグラム補正処理において、例えば、最大符号化ブロックといった固定サイズのブロック単位に常に分割して、そのブロック毎にヒストグラムを算出し、各ピーク画素値に対する補正幅wiを求めて補正処理を行ってもよい。この場合、上記のブロック分割情報が不要になり、ブロック分割情報に要する符号量分だけ符号量が削減されるため、符号化効率を高めることができる。
また、既にヒストグラム補正処理済みの近傍ブロックの補正幅などを用いて、処理中ブロックの補正幅wiを予測し、その予測誤差のみを可変長符号化部15に出力して符号化するようにしてもよい。このようにすることで、補正幅wiの符号量を削減することができる。
図16のステップST3〜ST10の処理は、階層的に分割された全ての符号化ブロックBnに対する処理が完了するまで繰り返し実施され、全ての符号化ブロックBnに対する処理が完了すると、ステップST14の処理に移行する(図16のステップST12,ST13)。
可変長符号化部15は、変換・量子化部9から出力された圧縮データと、符号化制御部1から出力された最大符号化ブロック内のブロック分割情報(図22(b)を例とする4分木情報)、符号化モードm(Bn)及び予測差分符号化パラメータと、ループフィルタパラメータと、符号化制御部1から出力されたイントラ予測パラメータ(符号化モードがイントラ符号化モードである場合)、イントラブロックコピー予測パラメータ(符号化モードがイントラブロックコピー符号化モードである場合)又はインター予測パラメータ(符号化モードがインター符号化モードである場合)と、動き補償予測部7から出力された動きベクトル(符号化モードがインター符号化モードである場合)と、画素値補正部22により算出された全てのピーク画素値に対する補正幅wiとを可変長符号化し、それらの符号化結果を示す符号化データを生成する(図16のステップST14)。
その際、量子化された直交変換係数である圧縮データの符号化手法として、変換ブロックをさらにCoefficient Group(CG)と呼ばれる4×4画素単位のブロック(符号化サブブロック)に分割して、CG単位に係数の符号化処理を実施する。
図25は16×16画素の変換ブロックにおける係数の符号化順(スキャン順)を示している。このように、4×4画素単位の16個のCGを右下のCGから順に符号化処理し、さらに、各CGはCG内の16個の係数を右下の係数から順に符号化する。
具体的には、まず、CG内の16個の係数の中に有意(非零)係数が存在するか否かのフラグ情報を符号化し、次に、CG内に有意(非零)係数が存在する場合のみ、CG内の各係数が有意(非零)係数であるかを上記順に符号化し、最後に有意(非零)係数に対して、その係数値情報を順に符号化する。これをCG単位に上記順に行う。その際、有意(非零)係数がなるべく連続で発生するように偏るスキャン順とした方がエントロピー符号化による符号化効率を高めることができる。
直交変換後の係数は、左上に位置する直流成分をはじめとして、左上に近い程、低い周波数成分の低い係数を表すことから、図26に示す例のように、一般的に左上に近いほど有意(非零)係数が多く発生するために、図25に示すように、右下から順に符号化することで効率的に符号化することができる。
なお、上記では16×16画素の変換ブロックについて説明したが、8×8画素や32×32画素の変換ブロック等、16×16画素以外のブロックサイズにおいてもCG(符号化サブブロック)単位の符号化処理を実施するものとする。また、イントラ予測が選択されている4×4画素と8×8画素の変換ブロックについては、イントラ予測モードのインデックスに応じて、図25のスキャン順ではなく図27に示すスキャン順で処理を行う。これはイントラ予測の方向によって残差信号の周波数成分の分布が異なる傾向があるためである。
また、可変長符号化部15は、図15に例示するように、符号化ビットストリームのヘッダ情報として、シーケンスレベルヘッダ、ピクチャレベルヘッダを符号化し、ピクチャデータと共に符号化ビットストリームを生成する。ただし、ピクチャデータは1以上のスライスデータから構成され、各スライスデータはスライスレベルヘッダと当該スライス内にある上記符号化データをまとめたものである。ピクチャデータはスライスデータの他に補足情報を示すヘッダ情報を含む場合もある。
シーケンスレベルヘッダは、画像サイズ、色信号フォーマット、輝度信号や色差信号の信号値のビット深度、シーケンス単位でのループフィルタ部13における各フィルタ処理(適応フィルタ処理、画素適応オフセット処理、デブロッキングフィルタ処理、ヒストグラム補正処理)の有効フラグ情報、量子化マトリクスの有効フラグ情報など、一般的にシーケンス単位に共通となるヘッダ情報をまとめたものである。
ピクチャレベルヘッダは、参照するシーケンスレベルヘッダのインデックスや動き補償時の参照ピクチャ数、エントロピー符号化の確率テーブル初期化フラグ等のピクチャ単位で設定するヘッダ情報をまとめたものである。
スライスレベルヘッダは、当該スライスがピクチャのどの位置にあるかを示す位置情報、どのピクチャレベルヘッダを参照するかを示すインデックス、スライスの符号化タイプ(オールイントラ符号化、インター符号化など)、ループフィルタ部13における各フィルタ処理(適応フィルタ処理、画素適応オフセット処理、デブロッキングフィルタ処理、ヒストグラム補正処理)を行うか否かを示すフラグ情報などといったスライス単位のパラメータをまとめたものである。
各ヘッダ情報とピクチャデータはNALユニットによって識別される。具体的には、シーケンスパラメータセット(上記シーケンスレベルヘッダに相当)、ピクチャパラメータヘッダ(上記ピクチャレベルヘッダに相当)、スライスデータはそれぞれ固有のNALユニットタイプとして定義され、NALユニットタイプの識別情報(インデックス)と共に符号化される。補足情報についても存在する場合には、固有のNALユニットとして定義される。また、上記ピクチャデータはアクセスユニットとして定義され、一つのピクチャの符号化データを含むデータアクセスの単位を示している。
次に、イントラ予測部5の処理内容を詳細に説明する。
イントラ予測部5は、上述したように、予測ブロックPi nのイントラ予測パラメータを参照して、その予測ブロックPi nに対するイントラ予測処理を実施して、イントラ予測画像PINTRAi nを生成するが、ここでは、輝度信号における予測ブロックPi nのイントラ予測画像を生成するイントラ処理について説明する。
図28は符号化ブロックBn内の各予測ブロックPi nが選択可能なイントラ予測モードの一例を示す説明図であり、イントラ予測モードのインデックス値と、そのイントラ予測モードが示す予測方向ベクトルを示している。上記イントラ予測モードのインデックス値がイントラ予測パラメータを示している。なお、イントラ予測モード数は、処理対象となるブロックのサイズに応じて異なるように構成してもよい。大きいサイズのブロックでは、イントラ予測の効率が低下するため、選択できるイントラ予測方向数を少なくし、小さいサイズのブロックでは、選択できるイントラ予測方向数を多くするように構成することで演算量を抑制することができる。
まず、イントラ予測画像を生成する処理は、処理対象のブロックに隣接する符号化済みの画素を用いることから、上述した通り、変換ブロック単位に行われなくてはならない。ここで、イントラ予測画像を生成する変換ブロックを予測画像生成ブロックと呼ぶこととする。したがって、イントラ予測部5は、予測画像生成ブロック単位に下記に述べるイントラ予測画像生成処理を実施して、予測ブロックPi nのイントラ予測画像を生成する。予測画像生成ブロックのサイズをli n×mi n画素とする。
図29はli n=mi n=4の場合の予測画像生成ブロック内の画素の予測値を生成する際に用いる画素の一例を示す説明図である。図29では、予測画像生成ブロックの上の符号化済みの画素(2×li n+1)個と、左の符号化済みの画素(2×mi n)個を予測に用いる画素としているが、予測に用いる画素は、図29に示す画素より多くても少なくてもよい。また、図29では、予測画像生成ブロックの近傍の1行又は1列分の画素を予測に用いているが、2行又は2列、あるいは、それ以上の画素を予測に用いてもよい。
予測画像生成ブロックが属する予測ブロックPi nに対するイントラ予測モードのインデックス値が0(平面(Planar)予測)の場合には、予測画像生成ブロックの上に隣接する符号化済み画素と、予測画像生成ブロックの左に隣接する符号化済み画素を用いて、これら画素と予測画像生成ブロック内の予測対象画素との距離に応じて内挿した値を予測値として予測画像を生成する。
予測画像生成ブロックが属する予測ブロックPi nに対するイントラ予測モードのインデックス値が1(平均値(DC)予測)の場合には、予測画像生成ブロックの上に隣接する符号化済み画素と、予測画像生成ブロックの左に隣接する符号化済み画素の平均値を予測画像生成ブロック内の画素の予測値として予測画像を生成する。
さらに、予測画像生成ブロックの上端及び左端に位置する図30の領域A,B,Cに対して、ブロック境界を平滑化するフィルタ処理を行って最終的な予測画像とする。例えば、下記の式(1)にしたがって、図31のフィルタの参照画素配置で、下記のフィルタ係数を用いてフィルタ処理を実施する。
・領域A(P
i nの左上の画素)
a
0=1/2,a
1=1/4,a
2=1/4
・領域B(領域A以外のP
i nの上端の画素)
a
0=3/4,a
2=1/4,(a
1=0)
・領域C(領域A以外のP
i nの左端の画素)
a
0=3/4,a
1=1/4,(a
2=0)
ただし、式(1)において、an(n=0,1,2)は参照画素にかかるフィルタ係数、pn(n=0,1,2)はフィルタ処理対象画素p0を含むフィルタの参照画素、S’(p0)はフィルタ処理対象画素p0におけるフィルタ処理後の予測値、S(pn)(n=0,1,2)はフィルタ処理対象画素p0を含む参照画素のフィルタ処理前の予測値を表している。
さらに、上記フィルタ処理を行う予測画像生成ブロックのブロックサイズは限定してもよい。一般にブロック端のみフィルタ処理を行って予測値を変化させる場合、大きなブロックサイズのブロックでは、フィルタ処理により予測値が変化する領域の占める割合が小さいために、この予測値の変化によって生じた予測残差信号の変化を非常に高い周波数成分で表されることになり、この高周波数成分を符号化するために符号化効率の悪化を生じさせてしまう傾向がある。また、符号化効率を優先して、この高周波数成分を符号化しないようにすることで、ブロック端の予測残差信号の変化を復元できずに、ブロック境界に歪みが生じてしまう傾向がある。
一方、小さなブロックサイズのブロックでは、フィルタ処理により予測値が変化する領域の占める割合が大きいために、この予測値の変化によって生じた予測残差信号の変化が大きなブロックサイズのブロックの時のような高い周波数成分で表されることはなく、適切に残差信号を符号化することができ、本フィルタ処理によって、ブロック境界の連続性を高めた分、復号画像の品質を高めることができる。したがって、例えば、32×32画素以上のブロックサイズの予測画像生成ブロックでは、上記フィルタ処理を適用せずに、32×32画素より小さいブロックのみに上記フィルタ処理を適用することで、従来の平均値予測よりも予測性能を向上させながら、演算量の増加を抑えることができる。
予測画像生成ブロックに属する予測ブロックP
i nに対するイントラ予測モードのインデックス値が26(垂直方向予測)の場合、下記の式(2)から予測画像生成ブロック内の画素の予測値を算出して予測画像を生成する。
ただし、座標(x,y)は予測画像生成ブロック内の左上画素を原点とする相対座標(図32を参照)であり、S’(x,y)は座標(x,y)における予測値、S(x,y)は座標(x,y)における符号化済み画素の輝度値(復号された輝度値)である。また、算出した予測値が輝度値の取り得る値の範囲を超えている場合、予測値がその範囲内に収まるように値を丸めるようにする。
なお、式(2)の1行目の式は、MPEG−4 AVC/H.264における垂直方向予測の予測値であるS(x,−1)に対し、隣接する符号化済み画素の垂直方向の輝度値の変化量S(−1,y)−S(−1,−1)を1/2にした値を加算することで、ブロック境界が平滑化されるようにフィルタ処理したものを予測値とすることを意味しており、式(2)の2行目の式は、MPEG−4 AVC/H.264における垂直方向予測と同じ予測式を示している。
予測画像生成ブロックが属する予測ブロックP
i nに対するイントラ予測モードのインデックス値が10(水平方向予測)の場合、下記の式(3)から予測画像生成ブロック内の画素の予測値を算出して予測画像を生成する。
ただし、座標(x,y)は予測画像生成ブロック内の左上画素を原点とする相対座標(図32を参照)であり、S’(x,y)は座標(x,y)における予測値、S(x,y)は座標(x,y)における符号化済み画素の輝度値(復号された輝度値)である。また、算出した予測値が輝度値の取り得る値の範囲を超えている場合、予測値がその範囲内に収まるように値を丸めるようにする。
なお、式(3)の1行目の式は、MPEG−4 AVC/H.264における水平方向予測の予測値であるS(−1,y)に対し、隣接する符号化済み画素の水平方向の輝度値の変化量S(x,−1)−S(−1,−1)を1/2にした値を加算することで、ブロック境界が平滑化されるようにフィルタ処理したものを予測値とすることを意味しており、式(3)の2行目の式は、MPEG−4 AVC/H.264における水平方向予測と同じ予測式を示している。
ただし、式(2)の垂直方向予測、式(3)の水平方向予測を行う予測画像生成ブロックのブロックサイズを限定してもよい。一般にブロック端のみ予測方向の輝度値の変化量に比例する値を加算するフィルタ処理を行うことで予測値を変化させる場合、大きなブロックサイズのブロックでは、上述した予測画像生成ブロックのブロック端のフィルタ処理により予測値が変化する領域の占める割合が小さいために、この予測値の変化によって生じた予測残差信号の変化を非常に高い周波数成分で表されることになり、この高周波数成分を符号化するために符号化効率の悪化を生じさせてしまう傾向がある。また、符号化効率を優先して、この高周波数成分を符号化しないようにすることで、ブロック端の予測残差信号の変化を復元できずにブロック境界に歪みが生じてしまう傾向がある。
一方、小さなブロックサイズのブロックでは、上記フィルタ処理により予測値が変化する領域の占める割合が大きいために、この予測値の変化によって生じた予測残差信号の変化が大きなブロックサイズのブロックの時のような高い周波数成分で表されることはなく、適切に残差信号を符号化することができ、本フィルタ処理によってブロック境界の連続性を高めた分、復号画像の品質を高めることができる。したがって、例えば、32×32画素以上のブロックサイズの予測画像生成ブロックでは、予測対象画素の座標によらず、式(2)及び式(3)の2行目の式を常に用いるようにし(予測画像生成ブロックのブロック端のフィルタ処理を行わないことにする)、32×32画素より小さいブロックのみに、上記フィルタ処理を行う式(2)及び式(3)を適用することで、従来の垂直方向予測、水平方向予測よりも予測性能を向上させながら、演算量の増加を抑えることができる。
イントラ予測モードのインデックス値が0(平面予測)、1(平均値予測)、26(垂直方向予測)、10(水平方向予測)以外の場合には、インデックス値が示す予測方向ベクトルυ
p=(dx,dy)に基づいて、予測画像生成ブロック内の画素の予測値を生成する。
図32に示すように、予測画像生成ブロックの左上画素を原点として、予測画像生成ブロック内の相対座標を(x,y)と設定すると、予測に用いる参照画素の位置は、下記のLと隣接画素の交点になる。
ただし、kは負の実数である。
参照画素が整数画素位置にある場合には、その整数画素を予測対象画素の予測値とし、参照画素が整数画素位置にない場合には、参照画素に隣接する整数画素から生成される補間画素を予測値とする。図29の例では、参照画素は整数画素位置にないので、参照画素に隣接する2画素から内挿したものを予測値とする。なお、隣接する2画素のみではなく、隣接する2画素以上の画素から補間画素を生成して予測値としてもよい。補間処理に用いる画素を多くすることで補間画素の補間精度を向上させる効果がある一方、補間処理に要する演算の複雑度が増加することから、演算負荷が大きくても高い符号化性能を要求する画像符号化装置の場合には、より多くの画素から補間画素を生成するようにした方がよい。
以上に述べた処理によって、予測画像生成ブロック単位に予測ブロックPi n内の輝度信号の全ての画素に対する予測画素を生成して、イントラ予測画像PINTRAi nを出力する。なお、イントラ予測画像PINTRAi nの生成に用いられたイントラ予測パラメータ(イントラ予測モード)は、ビットストリームに多重化するために可変長符号化部15に出力される。
なお、先に説明したMPEG−4 AVC/H.264における8×8画素のブロックのイントラ予測時に参照画素に対して施される平滑化処理と同様に、イントラ予測部5において、予測画像生成ブロックの予測画像を生成する際の参照画素を、予測画像生成ブロックに隣接する符号化済み画素を平滑化処理した画素とするように構成した場合であっても、上述の例と同様の予測画像に対するフィルタ処理を行うことができる。このようにすることで参照画素へのフィルタ処理による参照画素のノイズが除去され、これを用いて予測を行うことで予測の精度高めることができる。あるいは、上記参照画素へのフィルタ処理は予測画像へのフィルタ処理を行う平均値予測、垂直方向予測、水平方向予測以外の予測の際のみ実施するようにしてもよい。このようにすることで、各予測モードに対して最大で1つのフィルタ処理しか行わずに済み、演算量の増加を抑えることができる。
上記では、輝度信号の予測画像生成処理について説明したが、色差成分に対する予測画像は次のように生成する。予測ブロックPi nの色差信号に対して、色差信号のイントラ予測パラメータ(イントラ予測モード)に基づくイントラ予測処理を実施し、イントラ予測画像の生成に用いられたイントラ予測パラメータを可変長符号化部15に出力する。
図33は色差信号のイントラ予測パラメータ(インデックス値)と色差イントラ予測モードの対応例を示す説明図である。色差信号のイントラ予測パラメータが、輝度信号に対するイントラ予測モードと同じ予測モードを用いる旨を示している場合(イントラ予測パラメータが輝度色差共通イントラ予測モード(DMモード)を示している場合)、輝度信号と同じフレーム内予測を実施して、色差信号の予測画像を生成する。
また、色差信号のイントラ予測パラメータが、垂直方向予測モード又は水平方向予測モードを示している場合、色差信号に対する方向性予測を実施して、色差信号の予測画像を生成する。また、色差信号のイントラ予測パラメータが、輝度相関利用色差信号予測モード(LMモード)を示している場合、予測画像の生成対象ブロックの上及び左に隣接している複数の画素の輝度信号及び色差信号を用いて、輝度信号と色差信号の相関を示す相関パラメータを算出し、その相関パラメータと予測処理対象の色差信号のブロックに対応する輝度信号を用いて、色差信号の予測画像を生成する。
入力信号フォーマットがYUV4:2:2信号である場合、図7に示すように、輝度信号が正方ブロックであれば、色差信号は輝度信号と比較して水平方向の画素数が1/2となる長方形のブロックとなる。したがって、図8に示すように、YUV4:4:4信号をYUV4:2:2信号に変換した際に、輝度信号と色差信号で同一方向の予測となるようにするためには、YUV4:2:2信号上では、垂直方向予測と水平方向予測以外の方向性予測の場合には、色差信号の予測方向が輝度信号の予測方向と異なることとなる。具体的には、図9に示すように、輝度信号の予測方向ベクトルをvL=(dxL,dyL)とした場合、色差信号の予測方向ベクトルは、vC=(dxL/2,dyL)となる。即ち、図10に示すように、予測方向の角度をθとした場合、輝度信号の予測方向の角度をθL、色差信号の予測方向の角度をθCとして、tanθC=2tanθLの関係となる予測方向で予測する必要がある。
したがって、輝度信号と色差信号で同一方向の予測を行う上記DMモードを正しく実施できるようにするために、入力信号フォーマットがYUV4:2:2信号である場合、輝度信号に使用したイントラ予測モードのインデックスを色差信号の予測に用いるイントラ予測モードのインデックスに変換し、変換後のインデックスに対応するイントラ予測モードによる色差信号の予測処理を実施する。
図34は図28のイントラ予測モードにおけるイントラ予測モードインデックスの変換例を示している。図34の変換テーブルは、予測方向の角度がθであるとき(図10を参照)、イントラ予測モードの方向性予測が図35に示すtanθとなる角度である場合、tanθC=2tanθLの関係に最も近い角度θCに変換するテーブルの例である。
変換処理の実現は、上記のように、インデックスの変換テーブルを用意し、その変換テーブルを参照することでインデックスを変換するように構成してもよいし、変換式を用意し、その変換式に従ってインデックスを変換するように構成してもよい。このように構成することで、方向性予測処理自体を変更することなく、インデックスの変換のみでYUV4:2:2信号のフォーマットに応じた色差信号の適切な予測を実施することができる。
また、色差信号に対して上記LMモードを行わないように構成してもよい。このときの色差信号のイントラ予測パラメータ(インデックス値)と色差イントラ予測モードの対応例として、図34が挙げられる。このようにLMモードも用いないようにすることで、予測対象画素の輝度信号と色差信号の依存性がなくなるため、輝度信号と色差信号の予測処理の並列化が可能となり、高速な演算処理を実現することができる。
さらに、色差信号では、平均値(DC)予測、垂直方向予測、水平方向予測について、輝度信号の場合で説明したブロック境界のフィルタ処理を行わずに、MPEG−4 AVC/H.264と同様の予測手法としてもよい。このようにフィルタ処理を行わないことで、予測処理の低演算化を図ることができる。
次に、図17の画像復号装置の処理内容を具体的に説明する。
可変長復号部31は、図1の画像符号化装置により生成された符号化ビットストリームを入力すると、そのビットストリームに対する可変長復号処理を実施して(図20のステップST21)、1フレーム以上のピクチャから構成されるシーケンス単位のヘッダ情報(シーケンスレベルヘッダ)及びピクチャ単位のヘッダ情報(ピクチャレベルヘッダ)などの各ヘッダ情報とピクチャデータを復号する。ただし、ピクチャデータは1以上のスライスデータから構成され、各スライスデータはスライスレベルヘッダと当該スライス内にある符号化データがまとめられているものである。ピクチャデータはスライスデータの他に補足情報を示すヘッダ情報を含む場合もある。
このとき、上記ヘッダ情報に含まれる量子化マトリクスの有効フラグ情報が“有効”を示す場合、可変長復号部31は量子化マトリクスパラメータを可変長復号し、量子化マトリクスを特定する。具体的には、各直交変換サイズの色信号や符号化モード毎に、量子化マトリクスパラメータが初期値として、画像符号化装置及び画像復号装置で、予め共通に用意されている量子化マトリクス、又は、既に復号された量子化マトリクスである(新しい量子化マトリクスでない)ことを示す場合は、量子化マトリクスパラメータに含まれる上記マトリクスの内のどの量子化マトリクスであるかを特定するインデックス情報を参照して量子化マトリクスを特定し、量子化マトリクスパラメータが新しい量子化マトリクスを用いることを示す場合は、量子化マトリクスパラメータに含まれる量子化マトリクスを使用する量子化マトリクスとして特定する。そして、ピクチャ単位のデータを構成するスライスデータから、スライス分割情報等のスライス単位のヘッダ情報(スライスレベルヘッダ)を復号し、各スライスの符号化データを復号する。
また、可変長復号部31は、上記ヘッダ情報から、最大符号化ブロックサイズ及び分割階層数の上限を特定する(図20のステップST22)。ただし、分割階層数の上限の代わりに、符号化ブロックの最小ブロックサイズが符号化されている場合、これを復号することで分割階層数の上限を決定する。即ち、最大符号化ブロックを上記最小ブロックサイズまで分割した場合が分割階層数の上限となる。
可変長復号部31は、決定された最大符号化ブロック単位に、図22で示されるような最大符号化ブロックの分割状態を復号する。復号された分割状態に基づき、階層的に符号化ブロックを特定する(図20のステップST23)。
次に、可変長復号部31は、符号化ブロックに割り当てられている符号化モードを復号する。復号した符号化モードに含まれる情報に基づき、符号化ブロックをさらに1つないし複数の予測処理単位である予測ブロックに分割し、予測ブロック単位に割り当てられている予測パラメータを復号する(図20のステップST24)。
即ち、可変長復号部31は、符号化ブロックに割り当てられている符号化モードがイントラ符号化モードである場合、符号化ブロックに含まれており、予測処理単位となる1つ以上の予測ブロック毎にイントラ予測パラメータを復号し、符号化ブロックに割り当てられている符号化モードがイントラブロックコピー符号化モードである場合、符号化ブロックに含まれており、予測処理単位となる1つ以上の予測ブロック毎にイントラブロックコピー予測パラメータを復号する。また、符号化ブロックに割り当てられている符号化モードがインター符号化モードである場合、符号化ブロックに含まれており、予測処理単位となる1つ以上の予測ブロック毎にインター予測パラメータ及び動きベクトルを復号する(図20のステップST24)。また、全てのピーク画素値に対する補正幅wiを復号する。
さらに、可変長復号部31は、予測差分符号化パラメータに含まれる変換ブロック分割情報に基づき、変換ブロック毎に圧縮データ(変換・量子化後の変換係数)を復号する(図20のステップST24)。その際、図1の画像符号化装置の可変長符号化部15での圧縮データの符号化処理と同様に、CG単位の係数の復号処理を実施する。したがって、図25に示すように、4×4画素単位の16個のCGを右下のCGから順に復号処理し、さらに、各CGはCG内の16個の係数を右下の係数から順に復号していくことになる。
具体的には、まず、CG内の16個の係数の中に有意(非零)係数が存在するか否かのフラグ情報を復号し、次に復号したフラグ情報がCG内に有意(非零)係数が存在することを示す場合のみCG内の各係数が有意(非零)係数であるかを上記順に復号し、最後に有意(非零)係数を示す係数に対して、その係数値情報を順に復号する。これをCG単位に上記順に行う。ただし、スキャン順については、イントラ予測が選択されている4×4画素と8×8画素の変換ブロックの場合、イントラ予測モードのインデックスに応じて、図25のスキャン順ではなく図27に示すスキャン順で処理を行う。
切換スイッチ33は、可変長復号部31により可変長復号された符号化モードm(Bn)がイントラ符号化モードであれば(m(Bn)∈INTRAの場合)、可変長復号部31により可変長復号された予測ブロック単位のイントラ予測パラメータをイントラ予測部34に出力し、可変長復号部31により可変長復号された符号化モードm(Bn)がイントラブロックコピー符号化モードであれば(m(Bn)∈ICOPYの場合)、可変長復号部31により可変長復号された予測ブロック単位のイントラブロックコピー予測パラメータをイントラブロックコピー予測部35に出力し、可変長復号部31により可変長復号された符号化モードm(Bn)がインター符号化モードであれば(m(Bn)∈INTERの場合)、可変長復号部31により可変長復号された予測ブロック単位のインター予測パラメータ及び動きベクトルを動き補償予測部36に出力する。
イントラ予測部34は、可変長復号部31により可変長復号された符号化モードm(Bn)がイントラ符号化モード(m(Bn)∈INTRA)である場合(図20のステップST25)、切換スイッチ33から出力された予測ブロック単位のイントラ予測パラメータを受け取って、図1のイントラ予測部5と同様の手順で、イントラ用メモリ38に格納されている復号画像を参照しながら、上記イントラ予測パラメータを用いた符号化ブロックBn内の各予測ブロックPi nに対するイントラ予測処理を実施して、イントラ予測画像PINTRAi nを生成する(図20のステップST26)。
また、イントラ予測部34は、輝度信号については、輝度信号に対する上記イントラ予測パラメータを用いたイントラ予測処理(フレーム内予測処理)を実施して、輝度信号の予測画像を生成する。
一方、色差信号については、色差信号のイントラ予測パラメータに基づくイントラ予測処理を実施して、色差信号の予測画像を生成する。
図33に示すように、色差信号のイントラ予測パラメータが、輝度信号に対するイントラ予測モードと同じ予測モードを用いる旨を示している場合(イントラ予測パラメータが輝度色差共通イントラ予測モード(DMモード)を示している場合)、輝度信号と同じフレーム内予測を実施して、色差信号の予測画像を生成する。
また、色差信号のイントラ予測パラメータが、垂直方向予測モード又は水平方向予測モードを示している場合、色差信号に対する方向性予測を実施して、色差信号の予測画像を生成する。また、色差信号のイントラ予測パラメータが、輝度相関利用色差信号予測モード(LMモード)を示している場合、予測画像の生成対象ブロックの上及び左に隣接している複数の画素の輝度信号及び色差信号を用いて、輝度信号と色差信号の相関を示す相関パラメータを算出し、その相関パラメータと予測処理対象の色差信号のブロックに対応する輝度信号を用いて、色差信号の予測画像を生成する。
入力信号フォーマットがYUV4:2:2信号である場合、図7に示すように、輝度信号が正方ブロックであれば、色差信号は輝度信号と比較して水平方向の画素数が1/2となる長方形のブロックとなる。したがって、図8に示すように、YUV4:4:4信号をYUV4:2:2信号に変換した際に、輝度信号と色差信号で同一方向の予測となるようにするためには、YUV4:2:2信号上では、垂直方向予測と水平方向予測以外の方向性予測の場合には、色差信号の予測方向が輝度信号の予測方向と異なることとなる。具体的には、図9に示すように、輝度信号の予測方向ベクトルをvL=(dxL,dyL)とした場合、色差信号の予測方向ベクトルは、vC=(dxL/2,dyL)となる。即ち、図10に示すように、予測方向の角度をθとした場合、輝度信号の予測方向の角度をθL、色差信号の予測方向の角度をθCとして、tanθC=2tanθLの関係となる予測方向で予測する必要がある。
したがって、輝度信号と色差信号で同一方向の予測を行う上記DMモードを正しく実施できるようにするために、入力信号フォーマットがYUV4:2:2信号である場合、輝度信号に使用したイントラ予測モードのインデックスを色差信号の予測に用いるイントラ予測モードのインデックスに変換し、変換後のインデックスに対応するイントラ予測モードによる色差信号の予測処理を実施する。
図34の変換テーブルは、予測方向の角度がθであるとき(図10を参照)、イントラ予測モードの方向性予測が図35に示すtanθとなる角度である場合、tanθC=2tanθLの関係に最も近い角度θCに変換するテーブルの例である。変換処理の実現は、上記のように、インデックスの変換テーブルを用意し、その変換テーブルを参照することでインデックスを変換するように構成してもよいし、変換式を用意し、その変換式に従ってインデックスを変換するように構成してもよい。このように構成することで、方向性予測処理自体を変更することなく、インデックスの変換のみでYUV4:2:2信号のフォーマットに応じた色差信号の適切な予測を実施することができる。
また、色差信号に対して、上記LMモードを行わないように画像符号化装置が構成されている場合、その画像符号化装置から生成される符号化ビットストリームが復号できるように画像復号装置も同様の構成とする。このときの色差信号のイントラ予測パラメータ(インデックス値)と色差イントラ予測モードの対応例として、図34が挙げられる。このようにLMモードも用いないようにすることで、予測対象画素の輝度信号と色差信号の依存性がなくなるため、輝度信号と色差信号の予測処理の並列化が可能になり、高速な演算処理を実現することができる。
さらに、色差信号では、平均値(DC)予測、垂直方向予測、水平方向予測について、輝度信号の場合で説明したブロック境界のフィルタ処理を行わずに、MPEG−4 AVC/H.264と同様の予測手法として画像符号化装置が構成されている場合、その画像符号化装置から生成される符号化ビットストリームが復号できるように画像復号装置も同様の構成とする。このようにフィルタ処理を行わないことで、予測処理の低演算化を図ることができる。
イントラブロックコピー予測部35は、可変長復号部31により可変長復号された符号化モードm(Bn)がイントラブロックコピー符号化モード(m(Bn)∈ICOPY)である場合(ステップST25)、切換スイッチ33から出力された予測ブロック単位のブロックシフトベクトルを含むイントラブロックコピー予測パラメータを受け取って、イントラ用メモリ38に格納されている復号画像を参照しながら、上記イントラブロックコピー予測パラメータを用いた符号化ブロックBn内の各予測ブロックPi nに対するイントラブロックコピー予測処理を実施して、イントラブロックコピー予測画像PICOPYi nを生成する(ステップST27)。画像符号化装置において、ブロックシフトベクトルは直前の符号化(復号)済み予測ブロックのブロックシフトベクトル、あるいは当該予測ブロックの周囲の符号化(復号)済み予測ブロックのブロックシフトベクトルとの差分値をイントラブロックコピー予測パラメータの一部として符号化するようにしている場合、イントラブロックコピー予測パラメータに含む差分値と上記ブロックシフトベクトルとを可算して、当該予測ブロックのブロックシフトベクトルを算出する。
動き補償予測部36は、可変長復号部31により可変長復号された符号化モードm(Bn)がインター符号化モード(m(Bn)∈INTER)である場合(図20のステップST25)、切換スイッチ33から出力された予測ブロック単位の動きベクトルとインター予測パラメータを受け取って、動き補償予測フレームメモリ40に格納されているフィルタ処理後の復号画像を参照しながら、その動きベクトルとインター予測パラメータを用いた符号化ブロックBn内の各予測ブロックPi nに対するインター予測処理を実施してインター予測画像PINTERi nを生成する(図20のステップST28)。
逆量子化・逆変換部32は、可変長復号部31から圧縮データ及び予測差分符号化パラメータを受けると、図1の逆量子化・逆変換部10と同様の手順で、その予測差分符号化パラメータに含まれる量子化パラメータ及び変換ブロック分割情報を参照して、変換ブロック単位にその圧縮データを逆量子化する。このとき、可変長復号部31により可変長復号された各ヘッダ情報を参照し、各ヘッダ情報が、当該スライスで量子化マトリクスを用いて、逆量子化処理を実施することを示している場合は、量子化マトリクスを用いて逆量子化処理を行う。
この際、可変長復号部31により可変長復号された各ヘッダ情報を参照して、各直交変換サイズで色信号や符号化モード(イントラ符号化、イントラブロックコピー符号化、インター符号化)毎に使用する量子化マトリクスを特定する。また、逆量子化・逆変換部32は、変換ブロック単位に逆量子化後の圧縮データである変換係数に対する逆直交変換処理を実施して、図1の逆量子化・逆変換部10から出力された局所復号予測差分信号と同一の復号予測差分信号を算出する(図20のステップST29)。
加算部37は、逆量子化・逆変換部32により算出された復号予測差分信号と、イントラ予測部34により生成されたイントラ予測画像PINTRAi n、イントラブロックコピー予測部35により生成されたイントラブロックコピー予測画像PICOPYi n、又は、動き補償予測部36により生成されたインター予測画像PINTERi nのいずれかを加算して復号画像を算出し、その復号画像をループフィルタ部39に出力するとともに、その復号画像をイントラ用メモリ38に格納する(図20のステップST30)。この復号画像が、以降のイントラ予測処理及びイントラブロックコピー予測処理の際に用いられる復号済みの画像信号になる。
ループフィルタ部39は、全ての符号化ブロックBnに対するステップST23〜ST30の処理が完了すると(図20のステップST31)、加算部37から出力された復号画像に対して、所定のフィルタ処理を実施して、フィルタ処理後の復号画像を動き補償予測フレームメモリ40に格納する(図20のステップST32)。
具体的には、変換ブロックの境界や予測ブロックの境界に発生する歪みを低減するフィルタ(デブロッキングフィルタ)処理、画素単位に適応的にオフセットを加算する(画素適応オフセット)処理、ウィーナフィルタ等の線形フィルタを適応的に切り替えてフィルタ処理する適応フィルタ処理などを行う。
これらのループフィルタは、復号画像の画質を向上させることを目的として適用されるが、図42に示すようなスクリーンコンテンツの特殊なヒストグラム形状を考慮しておらず、十分な画質改善効果が得られない。そこで、この実施の形態1では、新たなループフィルタ処理としてヒストグラム補正処理を実施する。
ループフィルタ部39は、上記のデブロッキングフィルタ処理、画素適応オフセット処理、適応フィルタ処理及びヒストグラム補正処理のそれぞれについて、可変長復号部31により可変長復号された各ヘッダ情報を参照することで、当該スライスで行うか否かを特定する。
このとき、2つ以上のフィルタ処理を行う場合において、例えば、図1の画像符号化装置のループフィルタ部13が図12のように構成されていれば、図18に示すようにループフィルタ部39が構成される。当然、画像符号化装置のループフィルタ部13がデブロッキングフィルタ処理、画素適応オフセット処理及びヒストグラム補正処理から構成されていれば、ループフィルタ部39もデブロッキングフィルタ処理、画素適応オフセット処理及びヒストグラム補正処理で構成される。
ここで、デブロッキングフィルタ処理では、可変長復号部31により可変長復号されたヘッダ情報を参照し、ブロック境界にかけるフィルタ強度の選択に用いる各種パラメータを初期値から変更する情報が存在する場合には、その変更情報に基づいて、デブロッキングフィルタ処理を実施する。変更情報がない場合は、予め定められた手法に従って行う。
画素適応オフセット処理では、可変長復号部31により可変長復号された画素適応オフセット処理のブロック分割情報に基づいて分割し、そのブロック単位に、可変長復号部31により可変長復号されたブロック単位のクラス分類手法を示すインデックスを参照して、そのインデックスが“オフセット処理を行わない”ことを示すインデックスでない場合、ブロック単位にブロック内の各画素を上記インデックスが示すクラス分類手法に従ってクラス分類する。なお、クラス分類手法の候補として、ループフィルタ部13の画素適応オフセット処理のクラス分類手法の候補と同一のものが予め用意されている。
そして、ループフィルタ部39は、ブロック単位の各クラスのオフセット値を特定する可変長復号部31により可変長復号されたオフセット情報を参照して、復号画像の画素値にオフセットを加算する処理を行う。
適応フィルタ処理では、可変長復号部31により可変長復号されたクラス毎のフィルタを用いて、図1の画像符号化装置と同一の手法でクラス分類した後に、そのクラス分類情報に基づいてフィルタ処理を行う。
ヒストグラム補正処理では、ヒストグラム算出部41が、可変長復号部31により可変長復号されたヒストグラム補正処理のブロック分割情報に基づいて復号画像を分割し、そのブロック単位に、可変長復号部31により可変長復号されたヒストグラム補正を実施するか否かを表すフラグを参照して、そのフラグが“ヒストグラム補正処理を行わない”ことを示す値でない場合、当該ブロックに対してヒストグラム補正処理を実行する。
図37はこの発明の実施の形態1による画像復号装置におけるヒストグラム補正処理の内容を示すフローチャートである。
以下、図37を参照しながら、ヒストグラム補正処理の流れを説明する。
ヒストグラム補正処理では、最初に、図19のヒストグラム算出部41が、加算部37により算出された復号画像を複数のブロックに分割し、その復号画像のブロック毎に画素値のヒストグラムを算出する(図37のステップST200〜ST201)。また、ヒストグラムの値が最大となる画素値を選択し、その画素値をp(以下、「ピーク画素値」と称する)とする(図37のステップST202)。
なお、ヒストグラムのステップ幅は、必ずしも1とする必要はないが、ループフィルタ部39の出力画像を図1の画像符号化装置におけるループフィルタ部13の出力画像と一致させる必要があるため、ここではループフィルタ部13と同じステップ幅を用いる。また、ヒストグラムのステップ幅を1以上とした場合は、pはステップ幅の中央値などに設定することが考えられるが、これも上記と同様の理由によりループフィルタ部13と一致させる必要がある。
また、必ずしもブロック内の全ての画素を用いてヒストグラムを計算する必要はなく、一部の画素だけを用いてヒストグラムを求めてもよい。ヒストグラム計算に使用する画素数を削減することで、ヒストグラム計算に必要な演算量を削減することが可能である。なお、これも上記と同様の理由によりループフィルタ部13と一致させる必要がある。
また、求めたヒストグラムを直接用いてその値が最大となる画素値を選択するだけでなく、例えばヒストグラムを微分してからその最大値を求めることも考えられるが、これも上記と同様の理由によりループフィルタ部13と一致させる必要がある。
画素値補正部42は、可変長復号部31により可変長復号されたi番目のピークに対する補正幅w
i内の画素値((ピーク画素値p−補正幅w
i)〜(ピーク画素値p+補正幅w
i)の画素値)をピーク画素値pに置換する(図37のステップST203〜ST206)。
ここで、(x,y)はブロック単位の復号画像における画素の座標を表し、D(x,y)は置換前の画素値、D’(x,y)は置換後の画素値を表している。
ブロック内の全部または一部の画素に対して上記の補正を実施する。なお、上式において、p−wiが画素値の下限を下回った場合はこれを画素値の下限に置き換え、p+wiが画素値の上限を上回った場合はこれを画素値の上限に置き換えてもよい。
ここでは、補正幅wiをピーク画素値pよりも大きい側と小さい側で同一としているが、必ずしも両者を一致させる必要はなく、それぞれに対して異なる補正幅wiを使用してもよい。ただし、ループフィルタ部39の出力画像を図1の画像符号化装置におけるループフィルタ部13の出力画像と一致させる必要があるため、ループフィルタ部13と同様の方式を用いなければならない。
次に、画素値補正部42は、ピーク画素値を示すインデックスiに1を加え、ST202でヒストグラム算出部41により算出されたヒストグラムから、画素値がpとなる画素に相当する部分を削除する(図37のステップST207〜ST208)。
画素値補正部42は、インデックスiと予め設定された最大ピーク数Pmaxを比較し(図37のステップST209)、インデックスiが最大ピーク数Pmaxより小さければ(i<Pmax)、ピーク画素値の再選択をヒストグラム算出部41に指示して、ステップST202の処理に戻る。
一方、インデックスiが最大ピーク数Pmaxに到達していれば(i≧Pmax)、ヒストグラム補正処理を終了する。
このループフィルタ部39によるフィルタ処理後の復号画像が、動き補償予測用の参照画像となり、また、再生画像となる。
以上で明らかなように、この実施の形態1によれば、入力画像の圧縮データから得られる局所復号画像における画素値のヒストグラムを算出するヒストグラム算出部21と、ヒストグラム算出部21により算出されたヒストグラムから符号化歪みに伴うノイズが重畳している画素を特定して、そのノイズが重畳している画素の画素値を補正する画素値補正部22とを備えるように構成したので、ヒストグラムが疎になるスクリーンコンテンツの局所復号画像に生じる符号化歪みに伴うノイズを十分に低減することができる効果を奏する。
即ち、画像符号化装置におけるループフィルタ部13の画素値補正部22が、局所復号画像のブロック毎に、ヒストグラムの各ピーク画素値に対する最適な補正幅wiを求め、その補正幅wi内の画素値をピーク画素値pに置換することで、局所復号画像からノイズを取り除くよう構成したので、図42に示すように、ヒストグラムの各ピークが鋭く、疎であるようなスクリーンコンテンツに対して、局所復号画像の大幅な画質改善を実現することができる効果を奏する。ただし、本効果はスクリーンコンテンツに限定されるものではなく、同様のヒストグラム特徴を持つ映像信号であれば、当然ながら同様の効果が得られる。
また、この実施の形態1によれば、画像符号化装置の可変長符号化部15が、各ピーク画素値に対する補正幅wiを符号化して出力する一方、画像復号装置の可変長復号部31が、各ピーク画素値に対する補正幅wiを復号し、ループフィルタ部39の画素値補正部42が、可変長復号部31により復号された補正幅wi内の画素値をピーク画素値pに置換することで、局所復号画像からノイズを取り除くよう構成したので、図42に示すように、ヒストグラムの各ピークが鋭く、疎であるようなスクリーンコンテンツに対して、復号画像の大幅な画質改善を実現することができる効果を奏する。ただし、本効果はスクリーンコンテンツに限定されるものではなく、同様のヒストグラム特徴を持つ映像信号であれば、当然ながら同様の効果が得られる。
また、この実施の形態1によれば、上記効果を持つ画像符号化装置及び画像符号化方法が生成する符号化ビットストリームを正しく復号することができる画像復号装置及び画像復号方法が得られる効果を奏する。
実施の形態2.
上記実施の形態1では、図1の画像符号化装置のループフィルタ部13に対して、図12に示すようにヒストグラム補正処理を追加し、さらに、図17の画像復号装置のループフィルタ部39に対して、図18に示すようにヒストグラム補正処理を追加しているものを示したが、既存のループフィルタの一部としてヒストグラム補正処理を実現するように構成することで、符号化する情報量を削減するようにしてもよい。
この実施の形態2による画像符号化装置は、上記実施の形態1における図1の画像符号化装置と同様の構成であるが、図12に示すループフィルタ部13の内部構成のみが、図38のように変更される。
ここでは、図38に示す変更後のループフィルタ部13の構成についてのみ説明する。
図38のループフィルタ部13は、加算部11により算出された局所復号画像に対して、所定のフィルタ処理を実施して、フィルタ処理後の局所復号画像を出力する処理を実施する。具体的には、変換ブロックの境界や予測ブロックの境界に発生する歪みを低減するフィルタ(デブロッキングフィルタ)処理、画素単位に適応的にオフセットを加算する(画素適応オフセット)処理、ウィーナフィルタ等の線形フィルタを適応的に切り替えてフィルタ処理する適応フィルタ処理などを行う。
これらのループフィルタは、復号画像の画質を向上させることを目的として適用されるが、図42に示したようなスクリーンコンテンツの特殊なヒストグラム形状を考慮しておらず、十分な画質改善効果が得られない。
そこで、上記実施の形態1では、新たなループフィルタを追加する形でヒストグラム補正処理を実施しているが、この実施の形態2では、既存のループフィルタの一部としてヒストグラム補正処理を実施する。
この実施の形態2では、画素適応オフセットの一部としてヒストグラム補正処理を実施する場合について説明する。
ただし、ヒストグラム補正処理との組み合わせは必ずしも画素適応オフセットに限定されるものではなく、他のループフィルタとの組み合わせも当然考えられる。
図38のループフィルタ部13は、上記のデブロッキングフィルタ処理、画素適応オフセット処理、適応フィルタ処理のそれぞれについて、処理を行うか否かを決定し、各処理の有効フラグをヘッダ情報として可変長符号化部15に出力する。なお、上記のフィルタ処理を複数使用する際は、各フィルタ処理を順番に実施する。図38は複数のフィルタ処理を用いる場合のループフィルタ部13の構成例を示している。
ただし、図38に示しているループフィルタの種類と順序は一例に過ぎず、適用するループフィルタの種類と適用順序は必ずしも図38のようにする必要はない。例えば、デブロッキングフィルタ処理と画素適応オフセット処理の2種類だけでループフィルタ部13を構成することや、適用順序を画素適応オフセット処理、デブロッキングフィルタ処理の順にすることなどが考えられる。
ここで、デブロッキングフィルタ処理では、ブロック境界にかけるフィルタ強度の選択に用いる各種パラメータを初期値から変更することができる。変更する場合には、そのパラメータをヘッダ情報として可変長符号化部15に出力する。
画素適応オフセット処理では、最初に、画像を複数のブロックに分割し、そのブロック単位に、オフセット処理を行わない場合も含めて、複数のオフセットの適用方法の中から一つを選択する。
この実施の形態2では、このオフセットの適用方法の一つとしてヒストグラム補正処理を選択することが可能である。図38のループフィルタ部13は、選択したオフセット適用方法に応じて、ブロック内の各画素をクラス分類し、クラス毎に符号化歪みを補償するオフセット値を算出するか、あるいは、ヒストグラム補正を実施するための最適な補正幅Wiをピーク画素値毎に算出する。
最後に、局所復号画像の画素値に対してオフセット値を加算する処理を行うか、あるいは、局所復号画像のヒストグラムを補正することによって局所復号画像の画像品質を改善する。
補正幅がw
iである場合、ヒストグラム補正処理は、以下のように行う。
ここで、(x,y)はブロック単位の局所復号画像における画素の座標を表し、L(x,y)は置換前の画素値、L’(x,y)は置換後の画素値を表している。
ブロック内の全部または一部の画素に対して上記の補正を実施する。なお、上式において、p−w
iが画素値の下限を下回った場合はこれを画素値の下限に置き換え、p+w
iが画素値の上限を上回った場合はこれを画素値の上限に置き換えてもよい。
ここでは、補正幅w
iをピーク画素値pよりも大きい側と小さい側で同一としているが、必ずしも両者を一致させる必要はなく、それぞれに対して異なる補正幅w
iを使用してもよい。
ヒストグラム補正処理では、上記のようにして最初のピークを補正した後、次のピークに移動し、同様の処理を所定のピーク数に達するまで繰り返し実施する。
画素適応オフセット処理では、ブロック分割情報、各ブロックのクラス分類手法を示すインデックス、ブロック単位の各クラスのオフセット値を特定するオフセット情報あるいはヒストグラム補正のためのヒストグラムの各ピークに対する補正幅をヘッダ情報として可変長符号化部15に出力する。
上記実施の形態1では、画素適応オフセット処理のための情報に加えてヒストグラム補正処理のための情報を符号化する必要があったが、この実施の形態2では、画素適応オフセット処理の一部としてヒストグラム補正処理を実施することによって、オフセット処理のための情報とヒストグラム補正処理のための情報のいずれか一方だけを符号化すればよいため、ループフィルタ全体での符号量を削減することができる。
なお、画素適応オフセット処理において、例えば、最大符号化ブロックといった固定サイズのブロック単位に常に分割して、そのブロック毎にクラス分類手法を選択して、クラス毎の適応オフセット処理を行ってもよい。この場合、上記ブロック分割情報が不要となり、ブロック分割情報に要する符号量分だけ符号量が削減され、符号化効率を高めることができる。
適応フィルタ処理では、局所復号画像を所定の手法でクラス分類し、各クラスに属する領域(局所復号画像)毎に、重畳されている歪みを補償するフィルタを設計し、そのフィルタを用いて、当該局所復号画像のフィルタ処理を実施する。そして、クラス毎に設計したフィルタをヘッダ情報として可変長符号化部15に出力する。クラス分類手法としては、画像を空間的に等間隔に区切る簡易な手法や、ブロック単位に画像の局所的な特性(分散など)に応じて分類する手法がある。また、適応フィルタ処理で使用するクラス数は、予め画像符号化装置及び画像復号装置に共通の値として設定してもよいし、符号化すべきパラメータとしてもよい。前者と比較して後者の方が、使用するクラス数を自由に設定することができるため、画像品質改善効果が上がるが、一方でクラス数を符号化するために、その分の符号量が増加する。
この実施の形態2による画像復号装置は、上記実施の形態1における図17の画像復号装置と同様の構成であるが、図18に示すループフィルタ部39の内部構成のみが、図39のように変更される。
ここでは、図39に示す変更後のループフィルタ部39の構成についてのみ説明する。
図39のループフィルタ部39は、加算部37により算出された復号画像に対して、所定のフィルタ処理を実施して、フィルタ処理後の復号画像を出力する処理を実施する。具体的には、変換ブロックの境界や予測ブロックの境界に発生する歪みを低減するフィルタ(デブロッキングフィルタ)処理、画素単位に適応的にオフセットを加算する(画素適応オフセット)処理、ウィーナフィルタ等の線形フィルタを適応的に切り替えてフィルタ処理する適応フィルタ処理などを行う。
これらのループフィルタは、復号画像の画質を向上させることを目的として適用されるが、図42に示したようなスクリーンコンテンツの特殊なヒストグラム形状を考慮しておらず、十分な画質改善効果が得られない。
そこで、上記実施の形態1では、新たなループフィルタを追加する形でヒストグラム補正処理を実施しているが、この実施の形態2では、既存のループフィルタの一部としてヒストグラム補正処理を実施する。
この実施の形態2では、画素適応オフセットの一部としてヒストグラム補正処理を実施する場合について説明する。
ただし、ヒストグラム補正処理との組み合わせは必ずしも画素適応オフセットに限定されるものではなく、他のループフィルタとの組み合わせも当然考えられる。ただし、組み合わせ方法は、画像符号化装置のループフィルタ部13と同様にする必要がある。
図39のループフィルタ部39は、上記のデブロッキングフィルタ処理、画素適応オフセット処理、適応フィルタ処理のそれぞれについて、可変長復号部31により可変長復号された各ヘッダ情報を参照して、当該スライスで行うか否かを特定する。
このとき、2つ以上のフィルタ処理を行う場合において、例えば、画像符号化装置のループフィルタ部13が図38のように構成されていれば、図39に示すようにループフィルタ部39が構成される。当然、画像符号化装置のループフィルタ部13がデブロッキングフィルタ処理と画素適応オフセット処理から構成されていれば、ループフィルタ部39もデブロッキングフィルタ処理と画素適応オフセット処理で構成される。
ここで、デブロッキングフィルタ処理では、可変長復号部31により可変長復号されたヘッダ情報を参照し、ブロック境界にかけるフィルタ強度の選択に用いる各種パラメータを初期値から変更する情報が存在する場合、その変更情報に基づいて、デブロッキングフィルタ処理を実施する。変更情報がない場合は、予め定められた手法に従って行う。
画素適応オフセット処理では、可変長復号部31により可変長復号された画素適応オフセット処理のブロック分割情報に基づいて復号画像を分割し、そのブロック単位に、可変長復号部31により可変長復号されたブロック単位のクラス分類手法を示すインデックスを参照して、そのインデックスが“オフセット処理を行わない”ことを示すインデックスではなく、かつ“ヒストグラム補正処理を行う”ことを示すインデックスではない場合、そのインデックスに応じてブロック単位にブロック内の各画素を上記インデックスが示すクラス分類手法に従ってクラス分類する。なお、クラス分類手法の候補として、図38のループフィルタ部13の画素適応オフセット処理のクラス分類手法の候補と同一のものが予め用意されている。そして、ブロック単位の各クラスのオフセット値を特定するオフセット情報を参照して、復号画像の画素値にオフセットを加算する処理を行う。
一方、可変長復号部31により可変長復号されたブロック単位のクラス分類手法を示すインデックスが“オフセット処理を行わない”ことを示すインデックスではなく、かつ“ヒストグラム補正処理を行う”ことを示すインデックスである場合、当該ブロックにおける画素値のヒストグラムを算出し、そのヒストグラムのピーク画素値の位置を所定の方法によって決定する。
画素値補正部42は、可変長復号部31により可変長復号されたi番目のピークに対する補正幅w
i内の画素値((ピーク画素値p−補正幅w
i)〜(ピーク画素値p+補正幅w
i)の画素値)をピーク画素値pに置換する。
ここで、(x,y)はブロック単位の復号画像における画素の座標を表し、D(x,y)は置換前の画素値、D’(x,y)は置換後の画素値を表している。
ブロック内の全部または一部の画素に対して上記の補正を実施する。なお、上式において、p−w
iが画素値の下限を下回った場合はこれを画素値の下限に置き換え、p+w
iが画素値の上限を上回った場合はこれを画素値の上限に置き換えてもよい。
ここでは、補正幅wiをピーク画素値pよりも大きい側と小さい側で同一としているが、必ずしも両者を一致させる必要はなく、それぞれに対して異なる補正幅wiを使用してもよい。ただし、ループフィルタ部39の出力画像を画像符号化装置におけるループフィルタ部13の出力画像と一致させる必要があるため、ループフィルタ部13と同様の方式を用いなければならない。
ヒストグラム補正処理では、上記のようにして最初のピークを補正した後、次のピークに移動し、同様の処理を所定のピーク数に達するまで繰り返し実施する。
ただし、画像符号化装置のループフィルタ部13の画素適応オフセット処理において、ブロック分割情報は符号化せずに、常に画像を固定サイズのブロック単位(例えば、最大符号化ブロック単位)に分割し、そのブロック毎にクラス分類手法を選択して、クラス毎の適応オフセット処理を行うように構成されている場合、ループフィルタ部39においても、ループフィルタ部13と同一の固定サイズのブロック単位に画素適応オフセット処理を実施する。
適応フィルタ処理では、可変長復号部31により可変長復号されたクラス毎のフィルタを用いて、図1の画像符号化装置と同一の手法でクラス分類した後に、そのクラス分類情報に基づいてフィルタ処理を行う。
次に、この実施の形態2による画像符号化装置において、上記実施の形態1による画像符号化装置と構成が異なるループフィルタ部13についての動作を説明する。その他の動作は、上記実施の形態1と同様である。
図38のループフィルタ部13は、加算部11から局所復号画像を受けると、その局所復号画像に対して、所定のフィルタ処理を実施して、フィルタ処理後の局所復号画像を動き補償予測フレームメモリ14に格納する(図16のステップST11)。具体的には、変換ブロックの境界や予測ブロックの境界に発生する歪みを低減するフィルタ(デブロッキングフィルタ)処理、画素単位に適応的にオフセットを加算する(画素適応オフセット)処理、ウィーナフィルタ等の線形フィルタを適応的に切り替えてフィルタ処理する適応フィルタ処理などを行う。
これらのループフィルタは、復号画像の画質を向上させることを目的として適用されるが、図42に示したようなスクリーンコンテンツの特殊なヒストグラム形状を考慮しておらず、十分な画質改善効果が得られない。
そこで、上記実施の形態1では、新たなループフィルタを追加する形でヒストグラム補正処理を実施しているが、この実施の形態2では、既存のループフィルタの一部としてヒストグラム補正処理を実施する。
この実施の形態2では、画素適応オフセットの一部としてヒストグラム補正処理を実施する場合について説明する。
ただし、ヒストグラム補正処理との組み合わせは必ずしも画素適応オフセットに限定されるものではなく、他のループフィルタとの組み合わせも当然考えられる。
図38のループフィルタ部13は、上記のデブロッキングフィルタ処理、画素適応オフセット処理、適応フィルタ処理のそれぞれについて、処理を行うか否かを決定し、各処理の有効フラグをヘッダ情報として可変長符号化部15に出力する。なお、上記のフィルタ処理を複数使用する際は、各フィルタ処理を順番に実施する。図38は複数のフィルタ処理を用いる場合のループフィルタ部13の構成例を示している。
ただし、図38に示しているループフィルタの種類と順序は一例に過ぎず、適用するループフィルタの種類と適用順序は必ずしも図38のようにする必要はない。例えば、デブロッキングフィルタ処理と画素適応オフセット処理の2種類だけでループフィルタ部13を構成することや、適用順序を画素適応オフセット処理、デブロッキングフィルタ処理の順にすることなどが考えられる。
ここで、デブロッキングフィルタ処理では、ブロック境界にかけるフィルタ強度の選択に用いる各種パラメータを初期値から変更することができる。変更する場合には、そのパラメータをヘッダ情報として可変長符号化部15に出力する。
画素適応オフセット処理では、最初に、画像を複数のブロックに分割し、そのブロック単位に、オフセット処理を行わない場合も含めて、複数のオフセットの適用方法の中から一つを選択する。
この実施の形態2では、このオフセットの適用方法の一つとしてヒストグラム補正処理を選択することが可能である。図38のループフィルタ部13は、選択したオフセット適用方法に応じて、ブロック内の各画素をクラス分類し、クラス毎に符号化歪みを補償するオフセット値を算出するか、あるいは、ヒストグラム補正を実施するための最適な補正幅Wiをピーク画素値毎に算出する。
最後に、局所復号画像の画素値に対してオフセット値を加算する処理を行うか、あるいは、局所復号画像のヒストグラムを補正することによって局所復号画像の画像品質を改善する。
オフセット適用手法としては、局所復号画像の画素値の大きさでクラス分類する手法(BO手法と呼ぶ)や、エッジの方向毎に各画素の周囲の状況(エッジ部か否か等)に応じてクラス分類する手法(EO手法と呼ぶ)がある。
この実施の形態2では、上記実施の形態1と異なり、ここにヒストグラム補正処理を追加している。これらの手法は、予め画像符号化装置及び画像復号装置で共通に用意されており、例えば、図40に示すように、オフセット処理を行わない場合もオフセット適用手法の一つとして定義し、これらの手法のうち、どの手法を用いるか示すインデックスを上記ブロック単位に選択する。
また、図40に示すオフセット適用手法は、あらかじめいくつかのセットを用意しておき、それを切り替えて用いてもよい。例えば、入力映像がスクリーンコンテンツであるか否かを示すフラグ(ここではSCフラグと呼ぶ)をシーケンスごとに付与するヘッダ(シーケンスパラメータセット)に用意し、そのフラグに応じて図59に示す2つのセットを切り替えるようにすることが考えられる。図59では、入力映像がスクリーンコンテンツでない場合はBO手法またはEO手法を用いるようにし、入力映像がスクリーンコンテンツの場合はBO手法またはヒストグラム補正処理を用いるようにしている。このようにすることで、オフセット適用手法を表現するのに必要なインデックスのビット数を削減することが可能である。なお、SCフラグは必ずしもシーケンスパラメータセットに置く必要はなく、ピクチャ単位に切り替えるためにピクチャごとに付与するヘッダ(ピクチャパラメータセット)に置いたり、スライス単位に切り替えるためにスライスごとに付与するヘッダ(スライスパラメータセット)に置くことなども考えられる。さらに、ブロック単位に切り替えることも当然考えられる。また、当然ながらSCフラグも任意の条件で変更可能なフラグに一般化できる。
図41は図40における複数のオフセット適用手法の中から、使用するオフセット適用手法を選択する手順を示すフローチャートである。
まず、図38のループフィルタ部13は、画素適応オフセット処理を適用せずに符号化を実施した場合の符号化コストCoffを求める(図41のステップST300)。
符号化コストの算出方法には様々な手法が考えられるが、原画像との誤差をd、ヘッダ情報などを送るのに必要となる符号量をrとすると、d+λrという形で表現することが一般的である。ここで、λはビットレートなどに応じて画像符号化装置が決定する係数である。
次に、図38のループフィルタ部13は、図40に示すBO手法やEO手法のそれぞれについて、ブロック内の各画素をクラス分類し、クラス毎に符号化歪みを補償するオフセット値を算出する。クラス分類手法やオフセット算出手法については公知の技術であるためここでは説明を割愛する。
そして、図38のループフィルタ部13は、これらのオフセット値を局所復号画像の画素値に対して加算した場合の符号化コストを求める(図41のステップST301〜ST305)。
この実施の形態2では、上記の他に、図38のループフィルタ部13が、ヒストグラム補正を実施するためのヒストグラムの各ピーク画素値に対する補正幅wiを算出する。補正幅wiの算出方法は、上記実施の形態1と同様に行うことが考えられる。
図38のループフィルタ部13は、各ピーク画素値に対する補正幅wiを用いて局所復号画像のヒストグラム補正を実施した場合の符号化コストを求める(図41のステップST306)。
図38のループフィルタ部13は、図40における複数のオフセット適用手法の中から、最も小さい符号化コストを示す手法を選択する(図41のステップST307)。
上記の比較の結果、画素適応オフセット処理を適用しても符号化効率の改善が見られない場合(Coffが最小となる場合)、インデックス0をヘッダ情報として可変長符号化部15に出力して終了する(図41のステップST308〜ST309)。これは、画素適応オフセット処理を適用しないことを意味する。
一方、符号化コストを最小化する手法として、BO手法またはEO手法が選択された場合、選択された手法を表すインデックスを図40に従ってヘッダ情報として可変長符号化部15に出力し、さらに、各クラスに対するオフセットをヘッダ情報として可変長符号化部15に出力して終了する(図41のステップST310〜ST311)。
また、符号化コストを最小化する手法として、ヒストグラム補正が選択された場合、選択された手法を表すインデックスを図40に従ってヘッダ情報として可変長符号化部15に出力し、さらに、ヒストグラムの各ピークに対する補正幅をヘッダ情報として可変長符号化部15に出力して終了する(図41のステップST312)。
図41からも明らかなように、この実施の形態2では、BO手法またはEO手法を適用するためのオフセットか、あるいは、ヒストグラム補正を適用するための補正幅wiのどちらか一方だけが符号化される。したがって、両者を符号化する必要がある上記実施の形態1よりも符号量を削減することが可能である。
ただし、BO手法またはEO手法及びヒストグラム補正の両方を適用することが可能である上記実施の形態1に対し、この実施の形態2では、BO手法またはEO手法か、ヒストグラム補正のどちらか一方だけしか適用できないため、画質改善効果は上記実施の形態1よりも劣る可能性がある。
BO手法またはEO手法で分類するクラスの数と、ヒストグラム補正処理を適用するヒストグラムのピークの数(上記実施の形態1における最大ピーク数Pmax)とを同一とすれば、オフセットまたは補正幅を符号化するためのシンタックスを共通にして簡易化することができる。もちろん、クラス数とヒストグラムのピーク数を異なる値とすることも可能である。
したがって、画素適応オフセット処理は、ブロックの分割情報、ブロック単位のオフセット適用手法を示すインデックス、ブロック単位のオフセット情報あるいはヒストグラム補正のため補正幅wiをヘッダ情報として可変長符号化部15に出力する。
なお、画素適応オフセット処理において、例えば、最大符号化ブロックといった固定サイズのブロック単位に常に分割して、そのブロック毎にクラス分類手法を選択して、クラス毎の適応オフセット処理を行ってもよい。この場合、上記ブロック分割情報が不要となり、ブロック分割情報に要する符号量分だけ符号量が削減され、符号化効率を高めることができる。
図44は、画素適応オフセット処理において、最大符号化ブロックであるCoding Tree Unit(CTU)の単位で常に分割する場合を例として、画素適応オフセット処理におけるパラメータを符号化してビットストリームに挿入する位置を図示したものである。なお、図44はあくまでも一例であり、必ずしもこのように符号化を行う必要はない。図44では、スライスヘッダに続く各CTUのデータの先頭にまずオフセット適用手法を示すインデックス(図40)を符号化して挿入し、続いてEO手法またはBO手法を用いる場合は各クラスに対するオフセット、ヒストグラム補正処理を行う場合は、画素値ヒストグラムの各ピークに対応する補正幅を符号化して挿入している。なお、画素適応オフセット処理を行わない場合は、インデックス以降には何も符号化しない。
また、図45は、可変長符号化部15においてどのように画素適応オフセット処理パラメータを符号化してビットストリームに加えるかを示したフローチャートである。可変長符号化部15は、まず、図40に示す各オフセット適用手法に対応するインデックスを符号化する(図45のステップST400)。そして、オフセットを適用しない場合(図45のステップST401)はそのまま終了し、EO手法またはBO手法を用いる場合は各クラスに対するオフセットを全て符号化する(図45のステップST402,ST403)。一方、ヒストグラム補正処理を行う場合は、画素値ヒストグラムの各ピークに対応する補正幅を全て符号化する(図45のステップST404)。なお、図45では、EO手法またはBO手法におけるクラスの数およびヒストグラム補正において補正対象とする画素値ヒストグラムのピークの数をいずれも4としている。
また、適応フィルタ処理では、局所復号画像を所定の手法でクラス分類し、各クラスに属する領域(局所復号画像)毎に、重畳されている歪みを補償するフィルタを設計し、そのフィルタを用いて、当該局所復号画像のフィルタ処理を実施する。そして、クラス毎に設計したフィルタをヘッダ情報として可変長符号化部15に出力する。
ここで、クラス分類手法としては、画像を空間的に等間隔に区切る簡易な手法や、ブロック単位に画像の局所的な特性(分散など)に応じて分類する手法がある。また、適応フィルタ処理で使用するクラス数は、予め画像符号化装置及び画像復号装置で共通の値に設定してもよいし、符号化すべきパラメータの一つとしてもよい。前者と比較して後者の方が、使用するクラス数を自由に設定することができるため、画像品質改善効果が上がるが、一方でクラス数を符号化するために、その分の符号量が増加する。
次に、この実施の形態2による画像復号装置において、上記実施の形態1による画像復号装置と構成が異なるループフィルタ部39についての動作を説明する。なお、その他の動作は、上記実施の形態1と同様である。
図20に示す画像復号装置の動作を表すフローチャートにおいて、図39のループフィルタ部39は、全ての符号化ブロックBnに対するステップST23〜ST30の処理が完了した後(図20のステップST31)、加算部37から出力された復号画像に対して、所定のフィルタ処理を実施して、フィルタ処理後の復号画像を動き補償予測フレームメモリ40に格納する(図20のステップST32)。
具体的には、変換ブロックの境界や予測ブロックの境界に発生する歪みを低減するフィルタ(デブロッキングフィルタ)処理、画素単位に適応的にオフセットを加算する(画素適応オフセット)処理、ウィーナフィルタ等の線形フィルタを適応的に切り替えてフィルタ処理する適応フィルタ処理などを行う。
これらのループフィルタは、復号画像の画質を向上させることを目的として適用されるが、図42に示したようなスクリーンコンテンツの特殊なヒストグラム形状を考慮しておらず、十分な画質改善効果が得られない。
そこで、上記実施の形態1では、新たなループフィルタを追加する形でヒストグラム補正処理を実施しているが、この実施の形態2では、既存のループフィルタの一部としてヒストグラム補正処理を実施する。
ただし、図39のループフィルタ部39は、上記のデブロッキングフィルタ処理、画素適応オフセット処理、適応フィルタ処理のそれぞれについて、可変長復号部31により可変長復号された各ヘッダ情報を参照して、当該スライスで処理を行うか否かを特定する。このとき、2つ以上のフィルタ処理を行う場合に、例えば、画像符号化装置のループフィルタ部13が図38のように構成されている場合には、図39に示すようにループフィルタ部39が成される。
ここで、デブロッキングフィルタ処理では、可変長復号部31により可変長復号されたヘッダ情報を参照し、ブロック境界にかけるフィルタ強度の選択に用いる各種パラメータを初期値から変更する情報が存在する場合には、その変更情報に基づいて、デブロッキングフィルタ処理を実施する。変更情報がない場合は、予め定められた手法に従って行う。
画素適応オフセット処理では、可変長復号部31により可変長復号された画素適応オフセット処理のブロック分割情報に基づいて復号画像を分割し、そのブロック単位に、可変長復号部31により可変長復号されたブロック単位のクラス分類手法を示すインデックスを参照して、そのインデックスが“オフセット処理を行わない”ことを示すインデックスではなく、かつ“ヒストグラム補正処理を行う”ことを示すインデックスではない場合、そのインデックスに応じてブロック単位にブロック内の各画素を上記インデックスが示すクラス分類手法に従ってクラス分類する。
クラス分類手法の候補として、図38のループフィルタ部13の画素適応オフセット処理のクラス分類手法の候補と同一のものが予め用意されている。そして、ブロック単位の各クラスのオフセット値を特定するオフセット情報を参照して、復号画像の画素値にオフセットを加算する処理を行う。
一方、可変長復号部31により可変長復号されたブロック単位のクラス分類手法を示すインデックスが“オフセット処理を行わない”ことを示すインデックスではなく、かつ“ヒストグラム補正処理を行う”ことを示すインデックスである場合、当該ブロックに対してヒストグラム補正処理を実行する。
図46は、可変長復号部31による画素値適応オフセット処理パラメータの復号手順を示すフローチャートである。
この実施の形態2による画像復号装置におけるヒストグラム補正処理の処理内容は、上記実施の形態1による画像復号装置におけるヒストグラム補正処理と同様である。
即ち、ヒストグラム算出部41が、加算部37により算出された復号画像を複数のブロックに分割し、その復号画像のブロック毎に画素値のヒストグラムを算出する(図37のステップST200〜ST201)。また、ヒストグラムの値が最大となる画素値を選択し、その画素値をピーク画素値pとする(図37のステップST202)。
なお、ヒストグラムのステップ幅は、必ずしも1とする必要はないが、ループフィルタ部39の出力画像を図38のループフィルタ部13の出力画像と一致させる必要があるため、ここではループフィルタ部13と同じステップ幅を用いる。また、ヒストグラムのステップ幅を1以上とした場合は、pはステップ幅の中央値などに設定することが考えられるが、これも上記と同様の理由によりループフィルタ部13と一致させる必要がある。
画素値補正部42は、可変長復号部31により可変長復号されたi番目のピークに対する補正幅w
i内の画素値((ピーク画素値p−補正幅w
i)〜(ピーク画素値p+補正幅w
i)の画素値)をピーク画素値pに置換する(図37のステップST203〜ST206)。
ここで、(x,y)はブロック単位の復号画像における画素の座標を表し、D(x,y)は置換前の画素値、D’(x,y)は置換後の画素値を表している。
ブロック内の全部または一部の画素に対して上記の補正を実施する。なお、上式において、p−wiが画素値の下限を下回った場合はこれを画素値の下限に置き換え、p+wiが画素値の上限を上回った場合はこれを画素値の上限に置き換えてもよい。
ここでは、補正幅wiをピーク画素値pよりも大きい側と小さい側で同一としているが、必ずしも両者を一致させる必要はなく、それぞれに対して異なる補正幅wiを使用してもよい。ただし、ループフィルタ部39の出力画像を図38のループフィルタ部13の出力画像と一致させる必要があるため、ループフィルタ部13と同様の方式を用いなければならない。
次に、画素値補正部42は、ピーク画素値を示すインデックスiに1を加え、ST202でヒストグラム算出部41により算出されたヒストグラムから、画素値がpとなる画素に相当する部分を削除する(図37のステップST207〜ST208)。
画素値補正部42は、インデックスiと予め設定された最大ピーク数Pmaxを比較し(図37のステップST2091)、インデックスiが最大ピーク数Pmaxより小さければ(i<Pmax)、ピーク画素値の再選択をヒストグラム算出部41に指示して、ステップST202の処理に戻る。
一方、インデックスiが最大ピーク数Pmaxに到達していれば(i≧Pmax)、ヒストグラム補正処理を終了する。
ただし、図38のループフィルタ部13の画素適応オフセット処理において、ブロック分割情報は符号化せずに、常に画像を固定サイズのブロック単位(例えば、最大符号化ブロック単位)に分割し、そのブロック毎にクラス分類手法を選択して、クラス毎の適応オフセット処理を行うように構成されている場合、ループフィルタ部39においても、ループフィルタ部13と同一の固定サイズのブロック単位に画素適応オフセット処理を実施する。
適応フィルタ処理では、可変長復号部31により可変長復号されたクラス毎のフィルタを用いて、図1の画像符号化装置と同一の手法でクラス分類した後に、そのクラス分類情報に基づいてフィルタ処理を行う。
このループフィルタ部39によるフィルタ処理後の復号画像が、動き補償予測用の参照画像となり、また、再生画像となる。
この実施の形態2では、上記実施の形態1と同様に、画像符号化装置のループフィルタ部13が、局所復号画像のブロック毎にヒストグラムの各ピーク画素値に対する最適な補正幅wiを求め、ヒストグラムを補正することで局所復号画像からノイズを取り除くよう構成したので、図42に示すようにヒストグラムの各ピークが鋭く、疎であるようなスクリーンコンテンツに対して局所復号画像の大幅な画質改善を実現することができる効果を奏する。ただし、本効果はスクリーンコンテンツに限定されるものではなく、同様のヒストグラム特徴を持つ映像信号であれば当然ながら同様の効果が得られる。
さらに、この実施の形態2では、上記のヒストグラム補正を既存のループフィルタ(例えば、画素適応オフセット)の一部として実行するようにし、画像符号化装置で一つの手法を選択して適用する(例えば、図40に示す手法の中から、いずれか一つだけを選択して適用する)ように構成したので、ループフィルタに関して符号化するヘッダ情報を上記実施の形態1よりも少なくすることができ、符号量を削減することができる効果を奏する。
また、この実施の形態2では、上記実施の形態1と同様に、画像符号化装置の可変長符号化部15が、上記のヒストグラム補正に必要な各ピークの補正幅wiを符号化して出力し、画像復号装置は、各ピークの補正幅wiを可変長復号し、ループフィルタ部39において復号画像のヒストグラム補正を行って復号画像からノイズを取り除くよう構成したので、図42に示すようにヒストグラムの各ピークが鋭く、疎であるようなスクリーンコンテンツに対して復号画像の大幅な画質改善を実現することができる効果を奏する。ただし、本効果はスクリーンコンテンツに限定されるものではなく、同様のヒストグラム特徴を持つ映像信号であれば当然ながら同様の効果が得られる。
また、この実施の形態2によれば、上記効果を持つ画像符号化装置及び画像符号化方法が生成する符号化ビットストリームを正しく復号することができる画像復号装置及び画像復号方法が得られる効果を奏する。
実施の形態3.
上記実施の形態1では、画像符号化装置において常にそれぞれのブロックに対して新たにヒストグラム補正処理のパラメータ(画素値ヒストグラムの各ピークに対する補正幅など)を算出して符号化していたのに対し、この実施の形態3では、過去に計算した他ブロックのパラメータを流用できるように構成することで、符号化する情報量を削減できる場合を説明する。
実施の形態3による画像符号化装置は、基本的に図1に示す実施の形態1の画像符号化装置と同様の構成および動作である。ただし、図12に示すループフィルタ部13および可変長符号化部15のヒストグラム補正処理に関する動作のみが異なる。以降ではまず、ループフィルタ部13のヒストグラム補正処理に関する動作について説明する。
図47A及び図47Bは、実施の形態3におけるループフィルタ部13の動作を示すフローチャートであり、これに基づいてループフィルタ部13の動作を説明する。まず、ループフィルタ部13は、ヒストグラム補正処理を行わない場合の符号化コストCOFFを求め(図47AのステップST600)、続いて実施の形態1と同様の手順(図24)で画素値ヒストグラムの各ピークに対する最適な補正幅を求め、このパラメータを符号化する場合の符号化コストCNEWを求める(図47AのステップST601)。
ここで、ヒストグラム補正処理により図48のようなブロック分割が行われ、右下のブロックがヒストグラム補正処理中のブロックであるとする。また、このとき、その周囲のブロック1、2、3はすでにヒストグラム補正処理が完了しているものとする。この実施の形態3では、ヒストグラム補正中のブロックにて新たに計算したパラメータを用いてもよいし、すでに処理が完了しているブロック1、2、3のいずれかのパラメータを流用してもよい。なお、図48はあくまでも参照可能なブロックの例を示しているに過ぎず、他にも、処理中ブロックの真上と左だけを参照するなどのさまざまなバリエーションが考えられる。
パラメータの流用方法を図49に示す。例えば、図48に示すヒストグラム補正処理済みブロック1において、図49上段のようにヒストグラム補正処理が施されたものとする。図49上段において、p0、p1、p2、p3は補正処理を施したピークの位置を表しており、ヒストグラムの値はp0>p1>p2>p3である。また、各ピークに対する補正幅をw0、w1、w2、w3とする。このとき、ヒストグラム補正中ブロックでは、図49下段に示すように画素値のヒストグラムを求め、さらにヒストグラム補正処理済みブロック1を参照して補正幅w0をヒストグラムの値が最大となるピークp0’に適用して当該ピークの補正を行う。続いて、ヒストグラムの値がp0’の次に大きいp1’に対してw1の補正幅で補正を実施する。以降これを繰り返し、ヒストグラム補正処理済みブロック1のパラメータを流用してp0’、p1’、p2’、p3’の補正を行う。
また、異なるパラメータの流用方法として、図50に示すように常に同じピーク位置に対して補正を実施することも考えられる。図49では、ヒストグラム補正処理済みブロックの補正幅w0、w1、w2、w3だけを参照し、ピーク位置p0’、p1’、p2’、p3’については補正中ブロックにおいて新たに計算していた。これに対し、図50に示す流用方法では、補正幅に加えてピーク位置p0、p1、p2、p3についても補正処理済みブロックを参照し、補正中ブロックのヒストグラム形状によらず、常にp0、p1、p2、p3に対して幅w0、w1、w2、w3の補正を施すようにする。
図49に示すパラメータ流用方法の利点として、保持するパラメータの量を最小限に抑えられることが挙げられる。パラメータを流用するために保持する必要があるのは各ブロックにおける補正幅w0、w1、w2、w3のみである。しかし、補正中ブロックにおいてピーク位置を求めるために画素値のヒストグラムを計算しなければならない。これに対し、図50に示すパラメータ流用方法では、補正幅に加えてピーク位置も流用しているため、補正中ブロックにおいてヒストグラムを計算する必要がない。しかし、補正幅のみでなくピーク位置も保持しておく必要があるため、パラメータ保持のためのメモリサイズは図49に示す手法に比べて大きくなる。
いま、図48に示すとおり参照可能なブロックを左上、真上、左とすると、これらのブロックにおけるヒストグラム補正処理パラメータを流用するか、新規に計算したパラメータを用いるか、あるいはヒストグラム補正処理を行わないかを図51に示すインデックスで表現することができる。つまり、ヒストグラム補正処理を行わない場合はインデックス0を符号化し、新規に計算したパラメータを用いる場合はインデックス1を符号化した後にそれに続いて計算したヒストグラム補正処理パラメータを符号化する。一方、周囲のブロックのパラメータを流用する場合は、そのブロック位置を表すインデックスだけを符号化すればよく、別途パラメータを符号化する必要がない。そのため、新規にパラメータを符号化する場合に比べて、符号量を削減することが可能である。なお、図51はあくまでもインデックスの一例であり、図51と異なるインデックスを用いることも考えられる。
このように周囲のブロックのパラメータを流用する場合は、インデックスだけを符号化すればよいことを考慮して、左上、真上、左のブロックのヒストグラム補正処理パラメータを流用した場合の符号化コストCTL、CT、CLをそれぞれ計算する(図47AのステップST602からST604)。
そして、各符号化コストを比較し、COFFが最も小さい場合は図51に基づいてインデックス0を可変長符号化部15に出力して終了する(図47BのステップST605,ST606)。一方、CNEWが最も小さい場合は新規にパラメータを符号化することを意味するインデックス1を可変長符号化部15に出力し(図47BのステップST607、ST608)、それに続いてヒストグラム補正処理パラメータを可変長符号化部15に出力して終了する(図47BのステップST609)。
また、CTL、CT、CLのいずれかが最小コストとなる場合は、対応するブロックの位置を表すインデックスだけを可変長符号化部15に出力して終了する(図47BのステップST610〜ST614)。
図52は、可変長符号化部15の動作を表すフローチャートである。図52を用いてこの実施の形態3に関わるヒストグラム補正処理における可変長符号化部15の動作を説明する。可変長符号化部15は、ループフィルタ部13からヒストグラム補正処理について図51に示すパラメータ符号化方法を表すインデックスを受け取り、まずこれを符号化する(図52のステップST700)。
続いて、新規にパラメータを符号化する(図51においてインデックスが1)場合(ステップST701)、インデックスの後にループフィルタ部13から受け取ったヒストグラム補正処理のためのパラメータ(各ピークに対する補正幅)を符号化して終了する(図52のステップST702)。一方、新規にパラメータを符号化しない(図51においてインデックスが1以外)場合、インデックスのみを符号化して終了する。
この実施の形態3による画像復号装置は、基本的に図17に示す実施の形態1の画像復号装置と同様の構成および動作である。ただし、図18に示すループフィルタ部39および可変長復号部31のヒストグラム補正処理に関する動作のみが異なる。以降ではまず、可変長復号部31のヒストグラム補正処理に関する動作について説明する。
図53は、ヒストグラム補正処理に関する可変長復号部31の動作を示すフローチャートである。可変長復号部31は、まず、ビットストリームから当該ブロックのヒストグラム補正処理について、パラメータの符号化方法を示すインデックスを復号する(図52のステップST800)。復号したインデックスが、新規にパラメータを符号化していることを意味する値である場合(図51のインデックス1)、さらにヒストグラム補正処理パラメータを復号する(図52のステップST801,ST802)。
この実施の形態3による画像復号装置におけるヒストグラム補正処理の処理内容は、上記実施の形態1による画像復号装置におけるヒストグラム補正処理と基本的に同様であるが、他ブロックのパラメータを流用する場合の動作が異なる。
即ち、可変長復号部31を参照して得られる図51のインデックスが0または1である場合、その動作は実施の形態1による画像復号装置におけるヒストグラム補正処理と同様である。一方、インデックスが2、3、4のいずれかである場合は、図48に示すヒストグラム補正処理済みのブロックのうちインデックスに対応するブロックを参照し、ヒストグラム補正処理に係るパラメータを流用する。
パラメータの流用方法を図49に示す。例えば、図48に示すヒストグラム補正処理済みブロック1において、図49上段のようにヒストグラム補正処理が施されたものとする。図49上段において、p0、p1、p2、p3は補正処理を施したピークの位置を表しており、ヒストグラムの値はp0>p1>p2>p3である。また、各ピークに対する補正幅をw0、w1、w2、w3とする。このとき、ヒストグラム補正中ブロックでは、図49下段に示すように画素値のヒストグラムを求め、さらにヒストグラム補正処理済みブロック1を参照して補正幅w0をヒストグラムの値が最大となるピークp0’に適用して当該ピークの補正を行う。続いて、ヒストグラムの値がp0’の次に大きいp1’に対してw1の補正幅で補正を実施する。以降これを繰り返し、ヒストグラム補正処理済みブロック1のパラメータを流用してp0’、p1’、p2’、p3’の補正を行う。
また、異なるパラメータの流用方法として、図50に示すように常に同じピーク位置に対して補正を実施することも考えられる。図49では、ヒストグラム補正処理済みブロックの補正幅w0、w1、w2、w3だけを参照し、ピーク位置p0’、p1’、p2’、p3’については補正中ブロックにおいて新たに計算していた。これに対し、図50に示す流用方法では、補正幅に加えてピーク位置p0、p1、p2、p3についても補正処理済みブロックを参照し、補正中ブロックのヒストグラム形状によらず、常にp0、p1、p2、p3に対して幅w0、w1、w2、w3の補正を施すようにする。
図49に示すパラメータ流用方法の利点として、保持するパラメータの量を最小限に抑えられることが挙げられる。パラメータを流用するために保持する必要があるのは各ブロックにおける補正幅w0、w1、w2、w3のみである。しかし、補正中ブロックにおいてピーク位置を求めるために画素値のヒストグラムを計算しなければならない。これに対し、図50に示すパラメータ流用方法では、補正幅に加えてピーク位置も流用しているため、補正中ブロックにおいてヒストグラムを計算する必要がない。しかし、補正幅のみでなくピーク位置も保持しておく必要があるため、パラメータ保持のためのメモリサイズは図49に示す手法に比べて大きくなる。
なお、ループフィルタ部39の出力画像を図38のループフィルタ部13の出力画像と一致させる必要があるため、パラメータの流用方式はループフィルタ部13と同様のものを用いなければならない。
このループフィルタ部39によるフィルタ処理後の復号画像が、動き補償予測用の参照画像となり、また、再生画像となる。
この実施の形態3では、上記実施の形態1と同様に、画像符号化装置のループフィルタ部13が、局所復号画像のブロック毎にヒストグラムの各ピーク画素値に対する最適な補正幅wiを求め、ヒストグラムを補正することで局所復号画像からノイズを取り除くよう構成したので、図42に示すようにヒストグラムの各ピークが鋭く、疎であるようなスクリーンコンテンツに対して局所復号画像の大幅な画質改善を実現することができる効果を奏する。ただし、本効果はスクリーンコンテンツに限定されるものではなく、同様のヒストグラム特徴を持つ映像信号であれば当然ながら同様の効果が得られる。
さらに、この実施の形態3では、上記のヒストグラム補正に係るパラメータを既にヒストグラム補正処理済みのブロックから参照できるように構成したので、常に上記のパラメータを符号化する場合に比べて符号化するヘッダ情報を上記実施の形態1よりも少なくすることができ、符号量を削減することができる効果を奏する。
また、この実施の形態3では、上記実施の形態1と同様に、画像符号化装置の可変長符号化部15が、上記のヒストグラム補正に必要な各ピークの補正幅wiまたは参照するブロックのインデックスを符号化して出力し、画像復号装置は、各ピークの補正幅wiあるいは参照するブロックのインデックスを可変長復号し、ループフィルタ部39において復号画像のヒストグラム補正を行って復号画像からノイズを取り除くよう構成したので、図42に示すようにヒストグラムの各ピークが鋭く、疎であるようなスクリーンコンテンツに対して復号画像の大幅な画質改善を実現することができる効果を奏する。ただし、本効果はスクリーンコンテンツに限定されるものではなく、同様のヒストグラム特徴を持つ映像信号であれば当然ながら同様の効果が得られる。
また、この実施の形態3によれば、上記効果を持つ画像符号化装置及び画像符号化方法が生成する符号化ビットストリームを正しく復号することができる画像復号装置及び画像復号方法が得られる効果を奏する。
また、この実施の形態3は、上記実施の形態2とも容易に組み合わせることができる。例えば、図40に示すインデックス表を図54に示すように2種類のインデックスを用いたものに置き換えることが考えられる。
図55は、この実施の形態3を上記実施の形態2と組み合わせた場合の可変長符号化部15のオフセット処理に係る動作を図示したものである。まず、可変長符号化部15は、図54に示すインデックス1を符号化する(図55のステップST900)。即ち、当該ブロックにおいてオフセット処理(ヒストグラム補正処理を含む)を実施しない場合は0、新たに符号化したパラメータを用いてオフセット処理を実施する場合は1、処理済みブロックのパラメータを流用してオフセット処理を実施する場合は2を符号化する。
続いて、当該ブロックにおいてオフセット処理を実施しない場合は終了し(図55のステップST901)、実施する場合はインデックス2を符号化する(図55のステップST902)。即ち、新規にパラメータを符号化する場合(インデックス1が1)はオフセット適用手法を表す値を符号化し、処理済みブロックのパラメータを流用する場合はブロック位置を表す値を符号化する。
続いて、処理済みブロックのパラメータを流用する場合は終了し、新規にパラメータを符号化する場合はそのパラメータを符号化する(図55のステップST903,ST904)。
また、図56は、実施の形態3を実施の形態2と組み合わせた場合の可変長復号部31のオフセット処理に係る動作を図示したものである。まず、可変長復号部31は、図54に示すインデックス1を復号する(図56のステップST1000)。
続いて、復号したインデックス1を参照し、当該ブロックにおいてオフセット処理を実施しない場合は終了し(図56のステップST1001)、実施する場合はインデックス2を復号する(図56のステップST1002)。
続いて、復号したインデックス2を参照し、処理済みブロックのパラメータを流用する場合は終了し、新規にパラメータが符号化されている場合はそのパラメータを復号する(図56のステップST1003,ST1004)。
実施の形態4.
上記実施の形態1では、画像符号化装置において画素値ヒストグラムの各ピークに対して最適な補正幅を求め、それらを可変長符号化してビットストリームに加えていたが、この実施の形態4では、補正幅ではなくノイズ除去を実施するピークの個数を符号化するよう構成することで、符号化する情報量を削減できる場合を説明する。
この実施の形態4による画像符号化装置は、基本的に図1に示す実施の形態1の画像符号化装置と同様の構成および動作である。ただし、ヒストグラム補正処理に必要なパラメータとして、ヒストグラムの各ピークの補正幅ではなく、ノイズ除去を実施するピークの個数を符号化している。
図1におけるループフィルタ部13は、図57に示すように画素値ヒストグラムの各ピークに対する補正幅を全てwとし、補正を実施するピークの個数NPを決定する。図57はNP=4の例を示している。p0、p1、p2、p3、p4、p5は各ピークの高さを表し、p0>p1>p2>p3>p4>p5である。即ち、値の大きなピークから順に幅wの補正を実施する。
このとき、ループフィルタ部13は、上記実施の形態1でピークごとの補正幅の最適値を求めた場合と同様にして、NPを変化させながら画質改善効果や符号化効率が最も高くなるようなNPを求める。なお、補正幅wは例えば15などの定数をあらかじめ設定しておいてもよいし、ヒストグラム補正処理を実施するブロックごとに最適な値を求めてもよい。
そして、求めたピークの個数の最適値NPを可変長符号化部15に出力して符号化する。なお、補正幅wをブロックごとに変化させる場合は補正幅wも併せて符号化する。
この実施の形態4による画像復号装置は、基本的に図17に示す実施の形態1の画像復号装置と同様の構成および動作である。ただし、可変長復号部31は、ヒストグラム補正処理に必要なパラメータとしてノイズ除去を実施するピークの個数NPを復号し、ループフィルタ部39はこれを参照してヒストグラム補正処理を実施する。また、補正幅wが符号化されている場合は、これも併せて可変長復号部31で復号し、ループフィルタ部39で参照してヒストグラム補正処理を実施する。
このループフィルタ部39によるフィルタ処理後の復号画像が、動き補償予測用の参照画像となり、また、再生画像となる。
この実施の形態4では、画像符号化装置のループフィルタ部13が、局所復号画像のブロック毎にノイズ除去を実施する最適なヒストグラムのピークの個数NP(あるいはこれに加えて補正幅w)を求め、ヒストグラムを補正することで局所復号画像からノイズを取り除くよう構成したので、図42に示すようにヒストグラムの各ピークが鋭く、疎であるようなスクリーンコンテンツに対して局所復号画像の大幅な画質改善を実現することができる効果を奏する。ただし、本効果はスクリーンコンテンツに限定されるものではなく、同様のヒストグラム特徴を持つ映像信号であれば当然ながら同様の効果が得られる。
この実施の形態4では、ピークの個数NPの一種類、あるいは個数NPと幅wの二種類だけをヒストグラム補正処理に必要なパラメータとして符号化するため、上記実施の形態1に比べて符号化するパラメータの個数が減り、符号化するヘッダ情報を少なくすることができ、符号量を削減することができる効果を奏する。
また、この実施の形態4では、画像符号化装置の可変長符号化部15が、上記のヒストグラム補正に必要なピークの個数NP(あるいはこれに加えて補正幅w)を符号化して出力し、画像復号装置は、ピークの個数NP(あるいはこれに加えて補正幅w)を可変長復号し、ループフィルタ部39において復号画像のヒストグラム補正を行って復号画像からノイズを取り除くよう構成したので、図42に示すようにヒストグラムの各ピークが鋭く、疎であるようなスクリーンコンテンツに対して復号画像の大幅な画質改善を実現することができる効果を奏する。ただし、本効果はスクリーンコンテンツに限定されるものではなく、同様のヒストグラム特徴を持つ映像信号であれば当然ながら同様の効果が得られる。
また、この実施の形態4によれば、上記効果を持つ画像符号化装置及び画像符号化方法が生成する符号化ビットストリームを正しく復号することができる画像復号装置及び画像復号方法が得られる効果を奏する。
また、この実施の形態4は、他の実施の形態とも容易に組み合わせることができる。例えば、上記実施の形態1〜3のようにヒストグラムの各ピークに対して最適な補正幅を求めて符号化するのに加え、補正を実施するピークの本数も符号化する(NPとwi(i=0〜NP−1)の全てを符号化する)ことで、より画質改善効果を高めることができる。ただし、符号化するヘッダ情報が増えることで符号量が増加することに注意が必要である。
なお、上記の他の実施の形態との組み合わせ方は、映像単位、あるいはピクチャやスライス、ブロック単位で適応的に変更してもよい。このようにすることで、画質改善効果や符号化効率がより向上する。このとき、組み合わせ方を示すフラグなどを変更単位に応じてヘッダ(シーケンスパラメータセットやピクチャパラメータセット、スライスパラメータセットなど)に追加し、画像符号化装置にて符号化してもよい。
実施の形態5.
上記実施の形態1では、画像符号化装置において画素値ヒストグラムの各ピークに対して最適な補正幅を求め、それらを可変長符号化してビットストリームに加えていたが、この実施の形態5では、補正幅ではなくノイズ除去を実施するピークの位置を符号化するよう構成することで、復号処理における演算量を削減できる場合を説明する。
この実施の形態5による画像符号化装置は、基本的に図1に示す実施の形態1の画像符号化装置と同様の構成および動作である。ただし、ヒストグラム補正処理に必要なパラメータとして、ヒストグラムの各ピークの補正幅ではなく、ノイズ除去を実施するピークの位置を用いる。
図1におけるループフィルタ部13は、図58に示すように画素値ヒストグラムの各ピークに対する補正幅を全てwとし、補正を実施するピークの位置v0、v1、v2、v3を決定する。図57では、補正するピークの個数を4としている。
このとき、ループフィルタ部13は、上記実施の形態1でピークごとの補正幅の最適値を求めた場合と同様にして、補正値vi(図57の例ではi=0、1、2、3)を変化させながら画質改善効果や符号化効率が最も高くなるようなviを求める。なお、補正幅wは例えば15などの定数をあらかじめ設定しておいてもよいし、ヒストグラム補正処理を実施するブロックごとに最適な値を求めてもよい。
そして、求めたピークの位置の最適値viを可変長符号化部15に出力して符号化する。なお、補正幅wをブロックごとに変化させる場合は補正幅wも併せて符号化する。
この実施の形態5による画像復号装置は、基本的に図17に示す実施の形態1の画像復号装置と同様の構成および動作である。ただし、可変長復号部31は、ヒストグラム補正処理に必要なパラメータとしてノイズ除去を実施するピークの位置viを復号し、ループフィルタ部39はこれを参照してヒストグラム補正処理を実施する。また、補正幅wが符号化されている場合は、これも併せて可変長復号部31で復号し、ループフィルタ部39で参照してヒストグラム補正処理を実施する。
なお、補正するピークの位置viがループフィルタ部39で既知となるため、実際にはループフィルタ部39でヒストグラムを求める必要はない。即ち、この実施の形態5では、実施の形態1に比べてループフィルタ部39における演算量を削減することが可能である。
このループフィルタ部39によるフィルタ処理後の復号画像が、動き補償予測用の参照画像となり、また、再生画像となる。
この実施の形態5では、画像符号化装置のループフィルタ部13が、局所復号画像のブロック毎にノイズ除去を実施する最適なヒストグラムのピークの位置vi(あるいはこれに加えて補正幅w)を求め、ヒストグラムを補正することで局所復号画像からノイズを取り除くよう構成したので、図42に示すようにヒストグラムの各ピークが鋭く、疎であるようなスクリーンコンテンツに対して局所復号画像の大幅な画質改善を実現することができる効果を奏する。ただし、本効果はスクリーンコンテンツに限定されるものではなく、同様のヒストグラム特徴を持つ映像信号であれば当然ながら同様の効果が得られる。
この実施の形態5では、ピークの位置vi(あるいはこれに加えて補正幅w)をヒストグラム補正処理に必要なパラメータとして符号化するため、復号時にループフィルタ部39にてヒストグラム計算をする必要がなくなり、上記実施の形態1に比べて復号処理のための演算量を削減することができる効果を奏する。
また、この実施の形態5では、画像符号化装置の可変長符号化部15が、上記のヒストグラム補正に必要なピークの位置vi(あるいはこれに加えて補正幅w)を符号化して出力し、画像復号装置は、ピークの位置vi(あるいはこれに加えて補正幅w)を可変長復号し、ループフィルタ部39において復号画像のヒストグラム補正を行って復号画像からノイズを取り除くよう構成したので、図42に示すようにヒストグラムの各ピークが鋭く、疎であるようなスクリーンコンテンツに対して復号画像の大幅な画質改善を実現することができる効果を奏する。ただし、本効果はスクリーンコンテンツに限定されるものではなく、同様のヒストグラム特徴を持つ映像信号であれば当然ながら同様の効果が得られる。
また、この実施の形態5によれば、上記効果を持つ画像符号化装置及び画像符号化方法が生成する符号化ビットストリームを正しく復号することができる画像復号装置及び画像復号方法が得られる効果を奏する。
また、この実施の形態5は、他の実施の形態とも容易に組み合わせることができる。例えば、上記実施の形態1から3のようにヒストグラムの各ピークに対して最適な補正幅を求めて符号化するのに加え、上記実施の形態4のように補正を実施するピークの本数も符号化する(NP、vi、wi(i=0〜NP−1)の全てを符号化する)ことで、より画質改善効果を高めることができる。ただし、符号化するヘッダ情報が増えることで符号量が増加することに注意が必要である。
なお、上記の他の実施の形態との組み合わせ方は、映像単位、あるいはピクチャやスライス、ブロック単位で適応的に変更してもよい。このようにすることで、画質改善効果や符号化効率がより向上する。このとき、組み合わせ方を示すフラグなどを変更単位に応じてヘッダ(シーケンスパラメータセットやピクチャパラメータセット、スライスパラメータセットなど)に追加し、画像符号化装置にて符号化してもよい。
実施の形態6.
上記実施の形態1では、画像符号化装置において画素値ヒストグラムの各ピークに対して最適な補正幅を求め、それらを可変長符号化してビットストリームに加えていたが、この実施の形態6では、ブロック単位にヒストグラム補正を実施するか否かのフラグだけを符号化するように構成することで、ヒストグラム補正処理に必要なパラメータの符号化に係る符号量を削減できる場合を説明する。
この実施の形態6による画像符号化装置は、基本的に図1に示す実施の形態1の画像符号化装置と同様の構成および動作である。ただし、ヒストグラム補正処理のパラメータとして、ヒストグラム補正を当該ブロックで実施するか否かのフラグだけを符号化する。
図1におけるループフィルタ部13は、所定のピーク本数に対して所定の補正幅で補正を実施し、その際の符号化コストを求める。なお、ピーク本数は常に固定値としてもよいし、スライスやブロックといった任意の単位で変更できるようにしてもよい。また、補正幅についても、全てのピークに対して常に同じ固定値を用いるようにしてもよいし、ピークごとに異なる値を用いるようにしてもよい。
そして、求めた符号化コストが、ヒストグラム補正処理を実施しない場合の符号化コストよりも小さくなる場合、当該ブロックにてヒストグラム補正処理を実施するか否かを示すフラグに例えば1を代入して可変長符号化部15に出力する。また、求めた符号化コストが、ヒストグラム補正処理を実施しない場合の符号化コストよりも大きくなる場合、当該ブロックにてヒストグラム補正処理を実施するか否かを示すフラグに例えば0を代入して可変長符号化部15に出力する。
この実施の形態6による画像復号装置は、基本的に図17に示す実施の形態1の画像復号装置と同様の構成および動作である。ただし、可変長復号部31は、ヒストグラム補正処理に必要なパラメータとして当該ブロックにてヒストグラム補正処理を実施するか否かを示すフラグを復号し、ループフィルタ部39はこれを参照してヒストグラム補正処理を実施する。
即ち、ループフィルタ部39は、可変長復号部31で復号したフラグを参照し、これが1である場合は、所定のピーク本数に対して所定の補正幅で補正を実施する。なお、ピーク本数は常に固定値としてもよいし、スライスやブロックといった任意の単位で変更できるようにしてもよいが、ループフィルタ部39の出力画像を図1の画像符号化装置におけるループフィルタ部13の出力画像と一致させる必要があるため、ループフィルタ部13と同様にする必要がある。また、補正幅についても、全てのピークに対して常に同じ固定値を用いるようにしてもよいし、ピークごとに異なる値を用いるようにしてもよいが、これもループフィルタ部13と同様にする必要がある。
また、可変長復号部31で復号したフラグが0である場合は、ループフィルタ部39は、当該ブロックにてヒストグラム補正処理を実施しない。
このループフィルタ部39によるフィルタ処理後の復号画像が、動き補償予測用の参照画像となり、また、再生画像となる。
この実施の形態6では、画像符号化装置のループフィルタ部13が、局所復号画像のブロック毎に所定のピーク本数と補正幅を参照してヒストグラムを補正することで局所復号画像からノイズを取り除くよう構成したので、図42に示すようにヒストグラムの各ピークが鋭く、疎であるようなスクリーンコンテンツに対して局所復号画像の大幅な画質改善を実現することができる効果を奏する。ただし、本効果はスクリーンコンテンツに限定されるものではなく、同様のヒストグラム特徴を持つ映像信号であれば当然ながら同様の効果が得られる。
この実施の形態6では、当該ブロックにてヒストグラム補正処理を実施するか否かを示すフラグだけを符号化するため、上記実施の形態1に比べてヒストグラム補正処理に係るパラメータの符号化に必要な符号量を削減することができる効果を奏する。
また、この実施の形態6では、画像符号化装置の可変長符号化部15が、当該ブロックにて上記のヒストグラム補正を実施するか否かを表すフラグを符号化して出力し、画像復号装置は、上記のフラグを可変長復号し、フラグがヒストグラム補正処理を実施することを示す値である場合はループフィルタ部39において復号画像のヒストグラム補正を行って復号画像からノイズを取り除くよう構成したので、図42に示すようにヒストグラムの各ピークが鋭く、疎であるようなスクリーンコンテンツに対して復号画像の大幅な画質改善を実現することができる効果を奏する。ただし、本効果はスクリーンコンテンツに限定されるものではなく、同様のヒストグラム特徴を持つ映像信号であれば当然ながら同様の効果が得られる。
また、この実施の形態6によれば、上記効果を持つ画像符号化装置及び画像符号化方法が生成する符号化ビットストリームを正しく復号することができる画像復号装置及び画像復号方法が得られる効果を奏する。
なお、本願発明はその発明の範囲内において、各実施の形態の自由な組み合わせ、あるいは各実施の形態の任意の構成要素の変形、もしくは各実施の形態において任意の構成要素の省略が可能である。