実施の形態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により画面内コピー符号化モードが選択された場合、符号化対象ブロック内の予測ブロック毎に、同一のピクチャ内で既に符号化が行われて局所復号が済んでいる領域の中から、当該予測ブロックと最も近似しているブロックである参照ブロックを探索して、その参照ブロックを当該予測ブロックの予測画像に決定するとともに、その参照ブロックの位置を示すブロックシフトベクトルを可変長符号化部15に出力する処理を実施する。なお、画面内コピー予測部6は画面内コピー予測手段を構成している。
動き補償予測部7は切換スイッチ4から出力された符号化対象ブロックに対応する符号化モードとして、符号化制御部1によりインター符号化モードが選択された場合、符号化対象ブロックと動き補償予測フレームメモリ14に格納されている1フレーム以上の局所復号画像を比較して動きベクトルを探索し、その動きベクトルと符号化制御部1により決定された参照するフレーム番号などのインター予測パラメータを用いて、その符号化対象ブロックに対するインター予測処理(動き補償予測処理)を実施してインター予測画像を生成する処理を実施する。なお、動き補償予測部7は動き補償予測手段を構成している。
減算部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により算出された局所復号画像に対して、所定のフィルタ処理を実施して、フィルタ処理後の局所復号画像を出力する処理を実施する。
具体的には、変換ブロックの境界や予測ブロックの境界に発生する歪みを低減するフィルタ(デブロッキングフィルタ)処理、画素単位に適応的にオフセットを加算する(画素適応オフセット)処理、ウィーナフィルタ等の線形フィルタを適応的に切り替えてフィルタ処理する適応フィルタ処理などを行う。
ただし、ループフィルタ部13は、上記のデブロッキングフィルタ処理、画素適応オフセット処理及び適応フィルタ処理のそれぞれについて、処理を行うか否かを決定し、各処理の有効フラグをヘッダ情報として可変長符号化部15に出力する。なお、上記のフィルタ処理を複数使用する際は、各フィルタ処理を順番に実施する。図12は複数のフィルタ処理を用いる場合のループフィルタ部13の構成例を示している。
一般に使用するフィルタ処理の種類が多いほど、画像品質は向上するが、一方で処理負荷は高くなる。即ち、画像品質と処理負荷はトレードオフの関係にある。また、各フィルタ処理の画像品質改善効果はフィルタ処理対象画像の特性によって異なる。したがって、画像符号化装置が許容する処理負荷や符号化処理対象画像の特性にしたがって使用するフィルタ処理を決めればよい。例えば、図12の構成よりも処理負荷を削減したい場合、デブロッキングフィルタ処理と画素適応オフセット処理のみで構成するといったことが考えられる。
ここで、デブロッキングフィルタ処理では、ブロック境界にかけるフィルタ強度の選択に用いる各種パラメータを初期値から変更することができる。変更する場合には、そのパラメータをヘッダ情報として可変長符号化部15に出力する。
画素適応オフセット処理では、最初に、画像を複数のブロックに分割し、そのブロック単位に、オフセット処理を行わない場合もクラス分類手法の一つとして定義して、予め用意されている複数のクラス分類手法の中から、1つのクラス分類手法を選択する。
次に、選択したクラス分類手法によって、ブロック内の各画素をクラス分類し、クラス毎に符号化歪みを補償するオフセット値を算出する。
最後に、局所復号画像の輝度値に対して、そのオフセット値を加算する処理を行うことで局所復号画像の画像品質を改善する。
したがって、画素適応オフセット処理では、ブロック分割情報、各ブロックのクラス分類手法を示すインデックス、ブロック単位の各クラスのオフセット値を特定するオフセット情報をヘッダ情報として可変長符号化部15に出力する。
なお、画素適応オフセット処理において、例えば、最大符号化ブロックといった固定サイズのブロック単位に常に分割し、そのブロック毎にクラス分類手法を選択して、クラス毎の適応オフセット処理を行ってもよい。この場合、上記ブロック分割情報が不要となり、ブロック分割情報に要する符号量分だけ符号量が削減され、符号化効率を高めることができる。
適応フィルタ処理では、局所復号画像を所定の手法でクラス分類し、各クラスに属する領域(局所復号画像)毎に、重畳されている歪みを補償するフィルタを設計し、そのフィルタを用いて、当該局所復号画像のフィルタ処理を実施する。そして、クラス毎に設計したフィルタをヘッダ情報として可変長符号化部15に出力する。クラス分類手法としては、画像を空間的に等間隔に区切る簡易な手法や、ブロック単位に画像の局所的な特性(分散など)に応じて分類する手法がある。また、適応フィルタ処理で使用するクラス数は、予め画像符号化装置及び画像復号装置に共通の値として設定してもよいし、符号化すべきパラメータとしてもよい。前者と比較して後者の方が、使用するクラス数を自由に設定することができるため、画像品質改善効果が上がるが、一方でクラス数を符号化するために、その分の符号量が増加する。
動き補償予測フレームメモリ14はループフィルタ部13のフィルタ処理後の局所復号画像を格納する記録媒体である。
可変長符号化部15は変換・量子化部9から出力された圧縮データと、符号化制御部1の出力信号(最大符号化ブロック内のブロック分割情報、符号化モード、予測差分符号化パラメータ、ループフィルタパラメータ、イントラ予測パラメータ、画面内コピー予測パラメータ、インター予測パラメータ)と、画面内コピー予測部6から出力されたブロックシフトベクトル(符号化モードが画面内コピー符号化モードである場合)と、動き補償予測部7から出力された動きベクトル(符号化モードがインター符号化モードである場合)とを可変長符号化して符号化データを生成する処理を実施する。
可変長符号化部15は、符号化モードがインター符号化モードである場合、動き補償予測部7から出力された動きベクトルを可変長符号化し、符号化モードが画面内コピー符号化モードである場合、画面内コピー予測部6から出力されたブロックシフトベクトルを画面内コピー予測パラメータに含めて可変長符号化しているが、動きベクトルの可変長符号化に用いる符号化方式と異なる符号化方式を用いて、そのブロックシフトベクトルを可変長符号化する。
また、可変長符号化部15は、図13に例示するように、符号化ビットストリームのヘッダ情報として、シーケンスレベルヘッダ、ピクチャレベルヘッダを符号化し、ピクチャデータと共に符号化ビットストリームを生成する処理を実施する。なお、可変長符号化部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が当該メモリに格納されているプログラムを実行するようにすればよい。
図14はこの発明の実施の形態1による画像符号化装置の処理内容(画像符号化方法)を示すフローチャートである。
図15はこの発明の実施の形態1による画像復号装置を示す構成図である。
図15において、可変長復号部31は図1の画像符号化装置により生成された符号化ビットストリームを入力すると、そのビットストリームからシーケンスレベルヘッダ、ピクチャレベルヘッダ、スライスレベルヘッダなどの各ヘッダ情報とピクチャデータを復号する処理を実施する。
ただし、ピクチャデータは1以上のスライスデータから構成されており、各スライスデータはスライスレベルヘッダと当該スライス内にある符号化データがまとめられているものである。ピクチャデータはスライスデータの他に補足情報を示すヘッダ情報を含む場合もある。このとき、YUV4:4:4フォーマット信号やRGB4:4:4フォーマット信号の各信号をモノクローム画像信号とみなしてそれぞれ独立にモノクローム(YUV4:0:0)符号化していることを示す情報がヘッダ情報に含まれる場合、各色信号の符号化ビットストリームに対してそれぞれ独立に復号処理を実施することができる。
各ヘッダ情報とピクチャデータはNALユニットによって識別される。具体的には、シーケンスパラメータセット(上記シーケンスレベルヘッダに相当)、ピクチャパラメータヘッダ(上記ピクチャレベルヘッダに相当)、スライスデータはそれぞれ固有のNALユニットタイプとして定義され、NALユニットタイプの識別情報(インデックス)を復号することで識別される。補足情報についても、存在する場合には固有のNALユニットとして識別される。また、ピクチャデータはスライスデータを示すNALユニット等をまとめたアクセスユニットとして識別される。
上記ヘッダ情報に含まれる量子化マトリクスの有効フラグ情報が“有効”を示す場合、可変長復号部31は量子化マトリクスパラメータを可変長復号し、量子化マトリクスを特定する。具体的には、各直交変換サイズの色信号や符号化モード毎に、量子化マトリクスパラメータが初期値として、画像符号化装置及び画像復号装置で予め共通に用意されている量子化マトリクス、又は、既に復号された量子化マトリクスである(新しい量子化マトリクスでない)ことを示す場合は、上記マトリクスの内のどの量子化マトリクスであるかを特定するインデックス情報を参照して量子化マトリクスを特定し、量子化マトリクスパラメータが新しい量子化マトリクスを用いることを示す場合は、量子化マトリクスパラメータに含まれる量子化マトリクスを使用する量子化マトリクスとして特定する。
また、可変長復号部31は、スライスレベルヘッダを参照して、スライス分割状態を特定するとともに、各スライスのスライスデータを復号して、最大符号化ブロックの符号化データを特定する。また、スライスデータに含まれるブロック分割情報を復号して、最大符号化ブロックを階層的に分割して復号処理を行う単位である符号化対象ブロックを特定し、各々の符号化対象ブロックに係る圧縮データ、符号化モード、イントラ予測パラメータ(符号化モードがイントラ符号化モードである場合)、ブロックシフトベクトルを含む画面内コピー予測パラメータ(符号化モードが画面内コピー符号化モードである場合)、インター予測パラメータ(符号化モードがインター符号化モードである場合)、動きベクトル(符号化モードがインター符号化モードである場合)及び予測差分符号化パラメータを可変長復号する処理を実施する。
可変長復号部31は、符号化モードがインター符号化モードである場合、動きベクトルを可変長復号し、符号化モードが画面内コピー符号化モードである場合、画面内コピー予測パラメータに含まれているブロックシフトベクトルを可変長復号しているが、動きベクトルの可変長復号に用いる復号方式と異なる復号方式を用いて、そのブロックシフトベクトルを可変長復号する。なお、可変長復号部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により可変長復号されたブロック分割情報から特定される符号化対象ブロックに係る符号化モードが画面内コピー符号化モードである場合、符号化対象ブロック内の予測ブロック毎に、同一のピクチャ内で既に復号が済んでいる領域の中から、可変長復号部31により可変長復号された画面内コピー予測パラメータに含まれているブロックシフトベクトルが示す位置の参照ブロックを取得して、その参照ブロックを当該予測ブロックの予測画像に決定する処理を実施する。なお、画面内コピー予測部35は画面内コピー予測手段を構成している。
動き補償予測部36は可変長復号部31により可変長復号されたブロック分割情報から特定される符号化対象ブロックに係る符号化モードがインター符号化モードである場合、動き補償予測フレームメモリ40に格納されている復号画像を参照しながら、切換スイッチ33から出力された動きベクトルとインター予測パラメータを用いたインター予測処理(動き補償予測処理)を実施してインター予測画像を生成する処理を実施する。なお、動き補償予測部36は動き補償予測手段を構成している。
加算部37は逆量子化・逆変換部32により算出された復号予測差分信号と、イントラ予測部34により生成されたイントラ予測画像、画面内コピー予測部35により生成された画面内コピー予測画像、又は、動き補償予測部36により生成されたインター予測画像とを加算して、図1の加算部11から出力された局所復号画像と同一の復号画像を算出する処理を実施する。
イントラ用メモリ38は加算部37により算出された復号画像をイントラ予測処理及び画面内コピー予測処理で用いる参照画像として格納する記録媒体である。
ループフィルタ部39は加算部37により算出された復号画像に対して、所定のフィルタ処理を実施して、フィルタ処理後の復号画像を出力する処理を実施する。
具体的には、変換ブロックの境界や予測ブロックの境界に発生する歪みを低減するフィルタ(デブロッキングフィルタ)処理、画素単位に適応的にオフセットを加算する(画素適応オフセット)処理、ウィーナフィルタ等の線形フィルタを適応的に切り替えてフィルタ処理する適応フィルタ処理などを行う。
ただし、ループフィルタ部39は、上記のデブロッキングフィルタ処理、画素適応オフセット処理、適応フィルタ処理のそれぞれについて、可変長復号部31により可変長復号された各ヘッダ情報を参照して、当該スライスで行うか否かを特定する。
このとき、2つ以上のフィルタ処理を行う場合において、例えば、画像符号化装置のループフィルタ部13が図12のように構成されていれば、図16に示すようにループフィルタ部39が構成される。当然、画像符号化装置のループフィルタ部13がデブロッキングフィルタ処理と画素適応オフセット処理から構成されていれば、ループフィルタ部39もデブロッキングフィルタ処理と画素適応オフセット処理で構成される。
ここで、デブロッキングフィルタ処理では、可変長復号部31により可変長復号されたヘッダ情報を参照し、ブロック境界にかけるフィルタ強度の選択に用いる各種パラメータを初期値から変更する情報が存在する場合、その変更情報に基づいて、デブロッキングフィルタ処理を実施する。変更情報がない場合は、予め定められた手法に従って行う。
画素適応オフセット処理では、可変長復号部31により可変長復号された画素適応オフセット処理のブロック分割情報に基づいて復号画像を分割し、そのブロック単位に、可変長復号部31により可変長復号されたブロック単位のクラス分類手法を示すインデックスを参照して、そのインデックスが“オフセット処理を行わない”ことを示すインデックスでない場合、ブロック単位にブロック内の各画素を上記インデックスが示すクラス分類手法に従ってクラス分類する。
なお、クラス分類手法の候補として、ループフィルタ部13の画素適応オフセット処理のクラス分類手法の候補と同一のものが予め用意されている。
そして、ブロック単位の各クラスのオフセット値を特定するオフセット情報を参照して、復号画像の輝度値にオフセットを加算する処理を行う。
ただし、画像符号化装置のループフィルタ部13の画素適応オフセット処理において、ブロック分割情報は符号化せずに、常に画像を固定サイズのブロック単位(例えば、最大符号化ブロック単位)に分割し、そのブロック毎にクラス分類手法を選択して、クラス毎の適応オフセット処理を行うように構成されている場合、ループフィルタ部39においても、ループフィルタ部13と同一の固定サイズのブロック単位に画素適応オフセット処理を実施する。
適応フィルタ処理では、可変長復号部31により可変長復号されたクラス毎のフィルタを用いて、図1の画像符号化装置と同一の手法でクラス分類した後に、そのクラス分類情報に基づいてフィルタ処理を行う。
動き補償予測フレームメモリ40はループフィルタ部39のフィルタ処理後の復号画像をインター予測処理(動き補償予測処理)で用いる参照画像として格納する記録媒体である。
図15の例では、画像復号装置の構成要素である可変長復号部31、逆量子化・逆変換部32、切換スイッチ33、イントラ予測部34、画面内コピー予測部35、動き補償予測部36、加算部37、イントラ用メモリ38、ループフィルタ部39及び動き補償予測フレームメモリ40のそれぞれが専用のハードウェアで構成(イントラ用メモリ38及び動き補償予測フレームメモリ40以外の構成要素は、例えば、CPUを実装している半導体集積回路や、ワンチップマイコンなどで構成)されているものを想定しているが、画像復号装置がコンピュータで構成されていてもよい。
画像復号装置をコンピュータで構成する場合、イントラ用メモリ38及び動き補償予測フレームメモリ40をコンピュータのメモリ上に構成するとともに、可変長復号部31、逆量子化・逆変換部32、切換スイッチ33、イントラ予測部34、画面内コピー予測部35、動き補償予測部36、加算部37及びループフィルタ部39の処理内容を記述しているプログラムをコンピュータのメモリに格納し、当該コンピュータのCPUが当該メモリに格納されているプログラムを実行するようにすればよい。
図17はこの発明の実施の形態1による画像復号装置の処理内容(画像復号方法)を示すフローチャートである。
次に動作について説明する。
この実施の形態1では、映像の各フレーム画像を入力画像として、符号化済みの近傍画素からのイントラ予測又は近接フレーム間での動き補償予測を実施して、得られた予測差分信号に対して直交変換・量子化による圧縮処理を施し、その後、可変長符号化を行って符号化ビットストリームを生成する画像符号化装置と、その画像符号化装置から出力される符号化ビットストリームを復号する画像復号装置について説明する。
図1の画像符号化装置は、映像信号の空間・時間方向の局所的な変化に適応して、映像信号を多様なサイズのブロックに分割して、フレーム内・フレーム間適応符号化を行うことを特徴としている。一般的に、映像信号は、空間・時間的に信号の複雑さが局所的に変化する特性を有している。空間的に見ると、ある映像フレーム上では、例えば、空や壁などのような比較的広い画像領域中で均一な信号特性を有する絵柄もあれば、人物や細かいテクスチャを含む絵画など、小さい画像領域内で複雑なテクスチャパターンを有する絵柄も混在することがある。時間的に見ても、空や壁は局所的に時間方向の絵柄の変化は小さいが、動く人物や物体は、その輪郭が時間的に剛体・非剛体の運動をするため、時間的な変化が大きい。
符号化処理は、時間・空間的な予測によって、信号電力やエントロピーの小さい予測差分信号を生成して、全体の符号量を削減する処理を行うが、予測に用いるパラメータをできるだけ大きな画像信号領域に均一に適用できれば、当該パラメータの符号量を小さくすることができる。一方、時間的・空間的に変化の大きい画像信号パターンに対して、同一の予測パラメータを大きな画像領域に適用すると、予測の誤りが増えてしまうため、予測差分信号の符号量が増加してしまう。したがって、時間的・空間的に変化が大きい領域では、同一の予測パラメータを適用して予測処理を行うブロックサイズを小さくして、予測に用いるパラメータのデータ量を増やし、予測差分信号の電力・エントロピーを低減する方が望ましい。
この実施の形態1では、このような映像信号の一般的な性質に適応した符号化を行うため、最初に所定の最大ブロックサイズから予測処理等を開始し、階層的に映像信号の領域を分割し、分割した領域毎に予測処理や、その予測差分の符号化処理を適応化させる構成をとるようにしている。
最初に、図1の画像符号化装置の処理内容を説明する。
まず、符号化制御部1は、符号化対象となるピクチャ(カレントピクチャ)のスライス分割状態を決めると共に、ピクチャの符号化に用いる最大符号化ブロックのサイズと、最大符号化ブロックを階層分割する階層数の上限を決定する(図14のステップST1)。
最大符号化ブロックのサイズの決め方としては、例えば、入力画像の映像信号の解像度に応じて、全てのピクチャに対して同一のサイズを定めてもよいし、入力画像の映像信号の局所的な動きの複雑さの違いをパラメータとして定量化して、動きの激しいピクチャには、小さいサイズを定める一方、動きが少ないピクチャには、大きいサイズを定めるようにしてもよい。
分割階層数の上限の決め方としては、例えば、入力画像の映像信号の解像度に応じて、全てのピクチャに対して同一の階層数を定める方法や、入力画像の映像信号の動きが激しい場合には、階層数を深くして、より細かい動きが検出できるように設定し、動きが少ない場合には、階層数を抑えるように設定する方法などがある。なお、上記最大符号化ブロックのサイズと、最大符号化ブロックを階層分割する階層数の上限は、シーケンスレベルヘッダなどで符号化する。その場合、分割階層数の上限の代わりに、符号化対象ブロックの最小ブロックサイズを符号化するようにしてもよい。即ち、最大符号化ブロックを分割階層数の上限まで分割したときのブロックのサイズが、符号化対象ブロックの最小ブロックサイズであるため、画像復号装置側において、最大符号化ブロックのサイズと符号化対象ブロックの最小ブロックサイズから分割階層数の上限を特定することができる。
また、符号化制御部1は、利用可能な1以上の符号化モードの中から、階層的に分割される各々の符号化対象ブロックに対応する符号化モードを選択する(図14のステップ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により決定された符号化対象ブロックへ階層的に分割して、その符号化対象ブロックを出力する。
ここで、図18は最大符号化ブロックが階層的に複数の符号化対象ブロックに分割される例を示す説明図である。
図18において、最大符号化ブロックは、「第0階層」と記されている輝度成分が(L0,M0)のサイズを有する符号化対象ブロックである。最大符号化ブロックを出発点として、4分木構造で別途定める所定の深さまで、階層的に分割を行うことによって符号化対象ブロックを得るようにしている。深さnにおいては、符号化対象ブロックはサイズ(Ln,Mn)の画像領域である。ただし、LnとMnは、同じであってもよいし、異なっていてもよいが、図18では、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は、図18に示すように、ブロック分割部3によって、予測処理単位を表す1つないし複数の予測ブロックに分割される。以降、符号化対象ブロックBnに属する予測ブロックをPi n(iは、第n階層における予測ブロック番号)と表記する。図18にはP0 0とP1 0の例を示している。符号化対象ブロックBn内の予測ブロックの分割が、どのようになされているかは、符号化モードm(Bn)の中に情報として含まれる。予測ブロックPi nは、全て符号化モードm(Bn)に従って予測処理が行われるが、予測ブロックPi n毎に、個別の予測パラメータ(イントラ予測パラメータ、画面内コピー予測パラメータ又はインター予測パラメータ)を選択することができる。
符号化制御部1は、最大符号化ブロックに対して、例えば、図19に示すようなブロック分割状態を生成して、符号化対象ブロックを特定する。図19(a)の点線で囲まれた矩形が各符号化対象ブロックを表し、各符号化対象ブロック内にある斜線で塗られたブロックが各予測ブロックの分割状態を表している。図19(b)は、図19(a)の例について、階層分割によって符号化モードm(Bn)が割り当てられる状況を4分木グラフで示したものである。図19(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を受けると(図14のステップST3)、イントラ用メモリ12に格納されている局所復号画像を参照しながら、符号化制御部1により決定されたイントラ予測パラメータを用いて、その符号化対象ブロックBn内の各予測ブロックPi nに対するイントラ予測処理を実施して、イントラ予測画像PINTRAi nを生成する(図14のステップST4)。
ただし、詳細は後述するが、イントラ予測画像を生成する処理を行う際に、予測ブロックに隣接する符号化済みの画素を用いることから、イントラ予測画像を生成する処理は、予測処理に用いる予測ブロックに隣接する画素が既に符号化済みとなるように常に変換ブロック単位に行われなくてはならない。したがって、符号化モードがイントラ符号化モードである符号化対象ブロックでは、選択可能な変換ブロックのブロックサイズは、予測ブロックのサイズ以下に制限され、さらに、変換ブロックが予測ブロックより小さい場合(予測ブロック内に複数の変換ブロックが存在する場合)には、変換ブロック単位に、当該予測ブロックで定められたイントラ予測パラメータを用いたイントラ予測処理を実施してイントラ予測画像を生成する処理を実施する。
なお、図15の画像復号装置がイントラ予測画像PINTRAi nと全く同じイントラ予測画像を生成する必要があるため、イントラ予測画像PINTRAi nの生成に用いられたイントラ予測パラメータは、符号化制御部1から可変長符号化部15に出力されて、ビットストリームに多重化される。イントラ予測部5の処理内容の詳細は後述する。
画面内コピー予測部6は、符号化制御部1により決定された符号化モードm(Bn)が画面内コピー符号化モードであり(m(Bn)∈ICOPYの場合)、切換スイッチ4から符号化対象ブロックBnを受けると(図14のステップST3)、その符号化対象ブロックBn内の各予測ブロックPi nとイントラ用メモリ12に格納されている局所復号画像を比較し、予測ブロックPi nと最も類似している領域のブロック(参照ブロック)を探索する。
画面内コピー予測部6は、参照ブロックを予測ブロックPi nの予測画像として、画面内コピー予測画像PICOPYi nを生成する(図14のステップST5)。
図15の画像復号装置では、画面内コピー予測画像PICOPYi nと全く同じ画面内コピー予測画像を生成する必要があるため、画面内コピー予測画像PICOPYi nの生成に用いられたブロックシフトベクトルは、画面内コピー予測部6から可変長符号化部15に出力されて、ビットストリームに多重化される。
このブロックシフトベクトルは、画面内コピー予測部6により探索された参照ブロックを指し示す位置情報であり、一般的に図20に示すようなベクトルである。
図20では、符号化対象ブロックを原点として、参照ブロックまでの移動量をブロックシフトベクトルによって表現している。このブロックシフトベクトルは、可変長符号化部15により符号化されるが、その際、直前の符号化済み予測ブロックのブロックシフトベクトル、あるいは、当該予測ブロックの周囲の符号化済み予測ブロックのブロックシフトベクトルとの差分値を符号化するようにしてもよい。
動き補償予測部7は、符号化制御部1により決定された符号化モードm(Bn)がインター符号化モードであり(m(Bn)∈INTERの場合)、切換スイッチ4から符号化対象ブロックBnを受けると(図14のステップST3)、その符号化対象ブロックBn内の各予測ブロックPi nと動き補償予測フレームメモリ14に格納されているフィルタ処理後の局所復号画像を比較して動きベクトルを探索し、その動きベクトルと符号化制御部1により決定されたインター予測パラメータを用いて、その符号化対象ブロックBn内の各予測ブロックPi nに対するインター予測処理を実施して、インター予測画像PINTERi nを生成する(図14のステップST6)。
図15の画像復号装置がインター予測画像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に出力する(図14のステップST7)。
変換・量子化部9は、減算部8から予測差分信号ei nを受けると、符号化制御部1により決定された予測差分符号化パラメータに含まれる変換ブロック分割情報を参照して、その予測差分信号ei nに対する直交変換処理(例えば、DCT(離散コサイン変換)やDST(離散サイン変換)、予め特定の学習系列に対して基底設計がなされているKL変換等の直交変換処理)を変換ブロック単位に実施して、変換係数を算出する。
また、変換・量子化部9は、その予測差分符号化パラメータに含まれる量子化パラメータを参照して、その変換ブロック単位の変換係数を量子化し、量子化後の変換係数である圧縮データを逆量子化・逆変換部10及び可変長符号化部15に出力する(図14のステップST8)。このとき、上記量子化パラメータから算出される量子化ステップサイズを変換係数毎にスケーリングする量子化マトリクスを用いて量子化処理を実施するようにしてもよい。
量子化マトリクスは、各直交変換サイズで色信号や符号化モード(イントラ符号化かインター符号化か)毎に独立しているマトリクスを使用することができ、初期値として、画像符号化装置及び画像復号装置で、予め共通に用意されている量子化マトリクスや既に符号化された量子化マトリクスの中から選択するか、新しい量子化マトリクスを用いるかをそれぞれ選択することができる。したがって、変換・量子化部9は、各直交変換サイズに対して色信号や符号化モード毎に、新しい量子化マトリクスを用いるか否かを示すフラグ情報を符号化すべき量子化マトリクスパラメータに設定する。
さらに、新しい量子化マトリクスを用いる場合には、図11に示すような量子化マトリクスの各スケーリング値を符号化すべき量子化マトリクスパラメータに設定する。一方、新しい量子化マトリクスを用いない場合には、初期値として、画像符号化装置及び画像復号装置で、予め共通に用意されている量子化マトリクス、又は、既に符号化された量子化マトリクスの中から、使用するマトリクスを特定するインデックスを符号化すべき量子化マトリクスパラメータに設定する。ただし、参照可能な既に符号化された量子化マトリクスが存在しない場合、画像符号化装置及び画像復号装置で、予め共通に用意されている量子化マトリクスのみ選択可能となる。そして、変換・量子化部9は、設定した量子化マトリクスパラメータを可変長符号化部15に出力する。
逆量子化・逆変換部10は、変換・量子化部9から圧縮データを受けると、符号化制御部1により決定された予測差分符号化パラメータに含まれる量子化パラメータ及び変換ブロック分割情報を参照して、変換ブロック単位にその圧縮データを逆量子化する。変換・量子化部9が量子化処理に量子化マトリクスを用いている場合には、逆量子化処理時においても、その量子化マトリクスを参照して、対応した逆量子化処理を実施する。
また、逆量子化・逆変換部10は、変換ブロック単位に逆量子化後の圧縮データである変換係数に対する逆直交変換処理(例えば、逆DCT、逆DST、逆KL変換など)を実施して、減算部8から出力された予測差分信号ei nに相当する局所復号予測差分信号を算出して加算部11に出力する(図14のステップST9)。
加算部11は、逆量子化・逆変換部10から局所復号予測差分信号を受けると、その局所復号予測差分信号に対して、イントラ予測部5により生成されたイントラ予測画像PINTRAi n、画面内コピー予測部6により生成された画面内コピー予測画像PICOPYi n、又は、動き補償予測部7により生成されたインター予測画像PINTERi nのいずれかを加算することで、局所復号画像を算出する(図14のステップST10)。
また、加算部11は、その局所復号画像をループフィルタ部13に出力するとともに、その局所復号画像をイントラ用メモリ12に格納する。この局所復号画像が、以降のイントラ予測処理及び画面内コピー予測処理の際に用いられる符号化済みの画像信号になる。
ループフィルタ部13は、加算部11から局所復号画像を受けると、その局所復号画像に対して、所定のフィルタ処理を実施して、フィルタ処理後の局所復号画像を動き補償予測フレームメモリ14に格納する(図14のステップST11)。
具体的には、変換ブロックの境界や予測ブロックの境界に発生する歪みを低減するフィルタ(デブロッキングフィルタ)処理、画素単位に適応的にオフセットを加算する(画素適応オフセット)処理、ウィーナフィルタ等の線形フィルタを適応的に切り替えてフィルタ処理する適応フィルタ処理などを行う。
ただし、ループフィルタ部13は、上記のデブロッキングフィルタ処理、画素適応オフセット処理、適応フィルタ処理のそれぞれについて、処理を行うか否かを決定し、各処理の有効フラグをシーケンスレベルヘッダの一部及びスライスレベルヘッダの一部として可変長符号化部15に出力する。なお、上記のフィルタ処理を複数使用する際は、各フィルタ処理を順番に実施する。図12は複数のフィルタ処理を用いる場合のループフィルタ部13の構成例を示している。
一般に使用するフィルタ処理の種類が多いほど、画像品質は向上するが、一方で処理負荷は高くなる。即ち、画像品質と処理負荷はトレードオフの関係にある。また、各フィルタ処理の画像品質改善効果はフィルタ処理対象画像の特性によって異なる。したがって、画像符号化装置が許容する処理負荷や符号化処理対象画像の特性にしたがって使用するフィルタ処理を決めればよい。
ここで、デブロッキングフィルタ処理では、ブロック境界にかけるフィルタ強度の選択に用いる各種パラメータを初期値から変更することができる。変更する場合には、そのパラメータをヘッダ情報として可変長符号化部15に出力する。
画素適応オフセット処理では、最初に、画像を複数のブロックに分割し、そのブロック単位に、オフセット処理を行わない場合もクラス分類手法の一つとして定義して、予め用意している複数のクラス分類手法の中から、1つのクラス分類手法を選択する。
次に、選択したクラス分類手法によってブロック内の各画素をクラス分類し、クラス毎に符号化歪みを補償するオフセット値を算出する。
最後に、局所復号画像の輝度値に対して、そのオフセット値を加算する処理を行うことで局所復号画像の画像品質を改善する。
したがって、画素適応オフセット処理は、ブロックの分割情報、ブロック単位のクラス分類手法を示すインデックス、ブロック単位のオフセット情報をヘッダ情報として可変長符号化部15に出力する。
なお、画素適応オフセット処理において、例えば最大符号化ブロックといった固定サイズのブロック単位に常に分割して、そのブロック毎にクラス分類手法を選択して、クラス毎の適応オフセット処理を行ってもよい。この場合、上記ブロック分割情報が不要となり、ブロック分割情報に要する符号量分だけ符号量が削減され、符号化効率を高めることができる。
また、適応フィルタ処理では、局所復号画像を所定の手法でクラス分類し、各クラスに属する領域(局所復号画像)毎に、重畳されている歪みを補償するフィルタを設計し、そのフィルタを用いて、当該局所復号画像のフィルタ処理を実施する。
そして、クラス毎に設計したフィルタをヘッダ情報として可変長符号化部15に出力する。
ここで、クラス分類手法としては、画像を空間的に等間隔に区切る簡易な手法や、ブロック単位に画像の局所的な特性(分散など)に応じて分類する手法がある。また、適応フィルタ処理で使用するクラス数は、予め画像符号化装置及び画像復号装置で共通の値に設定してもよいし、符号化すべきパラメータの一つとしてもよい。
前者と比較して後者の方が、使用するクラス数を自由に設定することができるため、画像品質改善効果が上がるが、一方でクラス数を符号化するために、その分の符号量が増加する。
図14のステップST3〜ST10の処理は、階層的に分割された全ての符号化対象ブロックBnに対する処理が完了するまで繰り返し実施され、全ての符号化対象ブロックBnに対する処理が完了すると、ステップST14の処理に移行する(図14のステップST12,ST13)。
可変長符号化部15は、変換・量子化部9から出力された圧縮データと、符号化制御部1から出力された最大符号化ブロック内のブロック分割情報(図19(b)を例とする4分木情報)、符号化モードm(Bn)及び予測差分符号化パラメータと、ループフィルタパラメータと、符号化制御部1から出力されたイントラ予測パラメータ(符号化モードがイントラ符号化モードである場合)、ブロックシフトベクトルを含む画面内コピー予測パラメータ(符号化モードが画面内コピー符号化モードである場合)又はインター予測パラメータ(符号化モードがインター符号化モードである場合)と、動き補償予測部7から出力された動きベクトル(符号化モードがインター符号化モードである場合)とを可変長符号化し、それらの符号化結果を示す符号化データを生成する(図14のステップST14)。
その際、量子化された直交変換係数である圧縮データの符号化手法として、変換ブロックをさらにCoefficient Group(CG)と呼ばれる4×4画素単位のブロック(符号化サブブロック)に分割して、CG単位に係数の符号化処理を実施する。
図21は16×16画素の変換ブロックにおける係数の符号化順(スキャン順)を示している。このように、4×4画素単位の16個のCGを右下のCGから順に符号化処理し、さらに、各CGはCG内の16個の係数を右下の係数から順に符号化する。
具体的には、まず、CG内の16個の係数の中に有意(非零)係数が存在するか否かのフラグ情報を符号化し、次に、CG内に有意(非零)係数が存在する場合のみ、CG内の各係数が有意(非零)係数であるかを上記順に符号化し、最後に有意(非零)係数に対して、その係数値情報を順に符号化する。これをCG単位に上記順に行う。その際、有意(非零)係数がなるべく連続で発生するように偏るスキャン順とした方がエントロピー符号化による符号化効率を高めることができる。
直交変換後の係数は、左上に位置する直流成分をはじめとして、左上に近い程、低い周波数成分の低い係数を表すことから、図22に示す例のように、一般的に左上に近いほど有意(非零)係数が多く発生するために、図21に示すように、右下から順に符号化することで効率的に符号化することができる。
なお、上記では16×16画素の変換ブロックについて説明したが、8×8画素や32×32画素の変換ブロック等、16×16画素以外のブロックサイズにおいてもCG(符号化サブブロック)単位の符号化処理を実施するものとする。また、イントラ予測が選択されている4×4画素と8×8画素の変換ブロックについては、イントラ予測モードのインデックスに応じて、図21のスキャン順ではなく図23に示すスキャン順で処理を行う。これはイントラ予測の方向によって残差信号の周波数成分の分布が異なる傾向があるためである。
ここで、可変長符号化部15が画面内コピー予測パラメータ及び動きベクトルを可変長符号化する方法について述べる。
既に画面内コピー予測部6の動作説明で述べたように、画面内コピー予測パラメータとしては参照ブロックの位置を指し示すブロックシフトベクトルが挙げられる。つまり、符号化モードが画面内コピー符号化モードである場合も、インター符号化モードである場合も、符号化されるのはベクトルということになる。いずれの場合も直前の符号化済みブロックのベクトル、あるいは、符号化対象ブロックの周囲の符号化済みブロックのベクトルとの差分値を符号化することにより、ベクトルの符号化に要する符号量を削減することができる。
従来、画面内コピー予測処理におけるブロックシフトベクトルと、インター予測処理における動きベクトルは、簡単のために同じ方法で符号化されている。
図24はベクトルの差分値を符号化する代表的方式である次数が1の指数ゴロム符号の符号語を示す説明図である。
図24から明らかなように、小さな差分値となるベクトルに対しては短い符号語を割り当て、差分値が大きくなるにつれて符号語が長くなるようにしている。なお、符号化はベクトルの垂直成分と水平成分のそれぞれに対して行う。また、絶対値を符号化し、差分の正負を表す符号については別途符号化している。
このような符号化方式を用いているのは、ベクトルの差分値がゼロ付近に集中するためである。
図25はカメラで撮影された動画像を符号化した際のインター予測処理における動きベクトルの差分値の分布を示す説明図である。
図25の場合、動きベクトル差分の頻度はゼロ付近がきわめて高く、発生確率が高いことが分かる。したがって、発生確率の高い値に対して短い符号語を割り当てる図24のような符号化方式を用いれば、高い符号化効率を実現することができる。
一方、画面内コピー符号化がよく用いられるスクリーンコンテンツの符号化において、ブロックシフトベクトルの差分値の分布を求めると、図26のようになる。
図26より、スクリーンコンテンツの符号化におけるブロックシフトベクトルの差分値は、カメラで撮影された動画像(スクリーンコンテンツでない画像)の動きベクトルの差分値(図25)と比べて、ゼロ付近への集中度が低いことが分かる。
このような場合、ゼロ付近の符号語が極めて短く、ゼロから離れるにつれて急速に符号語が長くなる図24に示すような符号化方式を利用すると、高い符号化効率を実現することができなくなる。
つまり、従来のように動きベクトルとブロックシフトベクトルの符号化に同じ方式を用いたのでは、十分な符号化効率が得られない。
そこで、この実施の形態1では、インター予測処理における動きベクトルと画面内コピー予測処理におけるブロックシフトベクトルに異なる符号化方式を適用している。
図26に示すようなゼロ付近の発生確率がそれほど高くない信号に対しては、例えば、指数ゴロム符号の次数を上げることが有効である。
図27は次数が4の指数ゴロム符号の符号語を示す説明図である。
次数が1の指数ゴロム符号を示す図24と、次数が4の指数ゴロム符号の符号語を示す図27を比較すると、次数が4の指数ゴロム符号の方が、ゼロ付近の値に対する符号長が大きくなるが、ゼロから離れるにつれて次数が1の指数ゴロム符号ほど、急激に符号長が大きくならないことがわかる。
なお、図26から分かるように、スクリーンコンテンツの符号化におけるブロックシフトベクトルの差分値は、ゼロ付近の発生確率が小さいものの、依然としてゼロが発生する確率は非常に高い。指数ゴロム符号の次数を上げると、図27に示すように、ゼロに対する符号長も大きくなってしまうため、例えば、最初にゼロか否かを表す1ビットのフラグだけを符号化しておき、ゼロ以外の場合だけ、指数ゴロム符号を用いて符号化することで更に符号化効率を改善することができる。
ここで、図28はこの発明の実施の形態1による画像符号化装置の可変長符号化部15の内部構成のうち、ベクトルの符号化に関する部分を示す構成図である。また、図29はベクトルの符号化に関する部分の処理内容を示すフローチャートである。
可変長符号化部15の選択スイッチ52は、符号化制御部1からインター予測パラメータあるいは画面内コピー予測パラメータとしてベクトル差分50を受けると、符号化制御部1から出力された符号化方式選択情報51(符号化モードを示すパラメータ)にしたがって、そのベクトル差分50をベクトル符号化部53(第1の符号化方式で符号化を行う符号化部)又はベクトル符号化部54(第2の符号化方式で符号化を行う符号化部)に出力する。
即ち、可変長符号化部15の選択スイッチ52は、符号化方式選択情報51が、符号化モードがインター符号化モードである旨を示していれば(図29のステップST100)、そのベクトル差分50をベクトル符号化部53に出力し、符号化モードが画面内コピー予測モードを示していれば(図29のステップST100)、そのベクトル差分50をベクトル符号化部54に出力する。
ベクトル符号化部53は、選択スイッチ52からベクトル差分50を受けると、次数が1のゴロム符号化によってベクトル差分50を符号化する(ステップST101)。
ベクトル符号化部54は、選択スイッチ52からベクトル差分50を受けると、次数が4のゴロム符号化によってベクトル差分50を符号化する(ステップST102)。
選択スイッチ55は、符号化方式選択情報51が、符号化モードがインター符号化モードである旨を示していれば、ベクトル符号化部53により符号化されたベクトル差分50の符号化データであるビット列56を符号化ビットストリームに加える。
一方、符号化モードが画面内コピー予測モードを示していれば、ベクトル符号化部54により符号化されたベクトル差分50の符号化データであるビット列56を符号化ビットストリームに加える。
ここでは、符号化方式選択情報51が、符号化モードを示す情報であるものを示しているが、符号化モードを示す情報の他に、例えば、符号化対象ブロックがスクリーンコンテンツであるか否かを示す情報などを含んでいるものであってもよい。
符号化対象ブロックがスクリーンコンテンツであるか否かを示す情報を含んでいる場合、符号化モードが画面内コピー予測モードであり、かつ、符号化対象ブロックがスクリーンコンテンツである場合に限り、ベクトル符号化部54が、次数が4のゴロム符号化によってベクトル差分50を符号化し、それ以外の場合には、ベクトル符号化部53が、次数が1のゴロム符号化によってベクトル差分50を符号化する構成などが考えられる。
図26に示すようなブロックシフトベクトルの差分値の分布は、スクリーンコンテンツに特有のものであるため、符号化対象ブロックがスクリーンコンテンツである場合に限り、次数が4のゴロム符号化を行うことで、どのような動画像が入力されても高い符号化効率を実現することが可能になる。
入力された動画像がスクリーンコンテンツであるか否かの判定は、様々な単位で行うことが考えられる。つまり、入力された動画像が全ピクチャに渡ってスクリーンコンテンツである場合のほか、一部のピクチャのみがスクリーンコンテンツである場合や、ピクチャの一部のみがスクリーンコンテンツである場合などが考えられる。
いずれの場合も、例えば、スクリーンコンテンツである場合には“1”、スクリーンコンテンツでない場合には“0”となるようなフラグを用意し、このフラグを可変長符号化部15で符号化することで、動画像がスクリーンコンテンツであるか否かを図15の画像復号装置が正しく判断できるようにする必要がある。
入力された動画像が全ピクチャに渡ってスクリーンコンテンツであると判断できる場合には、上記のフラグを後述するシーケンスレベルヘッダなどに加えて可変長符号化部15にて符号化を実施する。
また、入力された動画像のうち、一部のピクチャのみがスクリーンコンテンツであると判断できる場合には、上記のフラグを後述するピクチャレベルヘッダなどに加えて可変長符号化部15にて符号化を実施する。
また、入力された動画像の中で、或るピクチャの一部のみがスクリーンコンテンツであると判断できる場合には、上記のフラグを後述するスライスレベルヘッダに加えて可変長符号化部15にて符号化を実施することが考えられる。なお、スライス単位に限らずに、タイル単位あるいは符号化対象ブロック単位にフラグを用意して、可変長符号化部15にて符号化を実施するようにしてもよい。
ただし、図15の画像復号装置において、符号化方式選択情報51を算出することが可能である場合、上記のフラグは符号化する必要がない。
例えば、入力された動画像中のある固定領域が常にスクリーンコンテンツであり、その領域の位置情報を画像符号化装置と画像復号装置の双方で共有できている場合などでは、画像復号装置で符号化方式選択情報51を算出することが可能であると考えられる。
上記のフラグを符号化する必要がなければ、その分だけ符号量を削減することができるため、更に符号化効率を高めることが可能である。
ここでは、可変長符号化部15が、次数が1の指数ゴロム符号あるいは次数が4の指数ゴロム符号を切り替えて用いるものを示したが、当然ながら、さらに異なる次数の指数ゴロム符号や、これと全く異なる他の符号化方式を用いることも考えられる。つまり、任意の2種類の符号化方式を用意して符号化方式を切り替えることが考えられる。また、3種類以上の符号化方式を用意して切り替えるようにしてもよい。
また、可変長符号化部15は、図13に例示するように、符号化ビットストリームのヘッダ情報として、シーケンスレベルヘッダ、ピクチャレベルヘッダを符号化し、ピクチャデータと共に符号化ビットストリームを生成する。ただし、ピクチャデータは1以上のスライスデータから構成され、各スライスデータはスライスレベルヘッダと当該スライス内にある上記符号化データをまとめたものである。ピクチャデータはスライスデータの他に補足情報を示すヘッダ情報を含む場合もある。
シーケンスレベルヘッダは、画像サイズ、色信号フォーマット、輝度信号や色差信号の信号値のビット深度、シーケンス単位でのループフィルタ部13における各フィルタ処理(適応フィルタ処理、画素適応オフセット処理、デブロッキングフィルタ処理、ヒストグラム補正処理)の有効フラグ情報、量子化マトリクスの有効フラグ情報など、一般的にシーケンス単位に共通となるヘッダ情報をまとめたものである。
ピクチャレベルヘッダは、参照するシーケンスレベルヘッダのインデックスや動き補償時の参照ピクチャ数、エントロピー符号化の確率テーブル初期化フラグ等のピクチャ単位で設定するヘッダ情報をまとめたものである。
スライスレベルヘッダは、当該スライスがピクチャのどの位置にあるかを示す位置情報、どのピクチャレベルヘッダを参照するかを示すインデックス、スライスの符号化タイプ(オールイントラ符号化、インター符号化など)、ループフィルタ部13における各フィルタ処理(適応フィルタ処理、画素適応オフセット処理、デブロッキングフィルタ処理、ヒストグラム補正処理)を行うか否かを示すフラグ情報などといったスライス単位のパラメータをまとめたものである。
各ヘッダ情報とピクチャデータはNALユニットによって識別される。具体的には、シーケンスパラメータセット(上記シーケンスレベルヘッダに相当)、ピクチャパラメータヘッダ(上記ピクチャレベルヘッダに相当)、スライスデータはそれぞれ固有のNALユニットタイプとして定義され、NALユニットタイプの識別情報(インデックス)と共に符号化される。補足情報についても存在する場合には、固有のNALユニットとして定義される。また、上記ピクチャデータはアクセスユニットとして定義され、一つのピクチャの符号化データを含むデータアクセスの単位を示している。
次に、イントラ予測部5の処理内容を詳細に説明する。
イントラ予測部5は、上述したように、予測ブロックPi nのイントラ予測パラメータを参照して、その予測ブロックPi nに対するイントラ予測処理を実施して、イントラ予測画像PINTRAi nを生成するが、ここでは、輝度信号における予測ブロックPi nのイントラ予測画像を生成するイントラ処理について説明する。
図36は符号化対象ブロックBn内の各予測ブロックPi nが選択可能なイントラ予測モードの一例を示す説明図であり、イントラ予測モードのインデックス値と、そのイントラ予測モードが示す予測方向ベクトルを示している。上記イントラ予測モードのインデックス値がイントラ予測パラメータを示している。なお、イントラ予測モード数は、処理対象となるブロックのサイズに応じて異なるように構成してもよい。大きいサイズのブロックでは、イントラ予測の効率が低下するため、選択できるイントラ予測方向数を少なくし、小さいサイズのブロックでは、選択できるイントラ予測方向数を多くするように構成することで演算量を抑制することができる。
まず、イントラ予測画像を生成する処理は、処理対象のブロックに隣接する符号化済みの画素を用いることから、上述した通り、変換ブロック単位に行われなくてはならない。ここで、イントラ予測画像を生成する変換ブロックを予測画像生成ブロックと呼ぶこととする。したがって、イントラ予測部5は、予測画像生成ブロック単位に下記に述べるイントラ予測画像生成処理を実施して、予測ブロックPi nのイントラ予測画像を生成する。予測画像生成ブロックのサイズをli n×mi n画素とする。
図30はli n=mi n=4の場合の予測画像生成ブロック内の画素の予測値を生成する際に用いる画素の一例を示す説明図である。図30では、予測画像生成ブロックの上の符号化済みの画素(2×li n+1)個と、左の符号化済みの画素(2×mi n)個を予測に用いる画素としているが、予測に用いる画素は、図30に示す画素より多くても少なくてもよい。また、図30では、予測画像生成ブロックの近傍の1行又は1列分の画素を予測に用いているが、2行又は2列、あるいは、それ以上の画素を予測に用いてもよい。
予測画像生成ブロックが属する予測ブロックPi nに対するイントラ予測モードのインデックス値が0(平面(Planar)予測)の場合には、予測画像生成ブロックの上に隣接する符号化済み画素と、予測画像生成ブロックの左に隣接する符号化済み画素を用いて、これら画素と予測画像生成ブロック内の予測対象画素との距離に応じて内挿した値を予測値として予測画像を生成する。
予測画像生成ブロックが属する予測ブロックPi nに対するイントラ予測モードのインデックス値が1(平均値(DC)予測)の場合には、予測画像生成ブロックの上に隣接する符号化済み画素と、予測画像生成ブロックの左に隣接する符号化済み画素の平均値を予測画像生成ブロック内の画素の予測値として予測画像を生成する。
さらに、予測画像生成ブロックの上端及び左端に位置する図31の領域A,B,Cに対して、ブロック境界を平滑化するフィルタ処理を行って最終的な予測画像とする。例えば、下記の式(1)にしたがって、図32のフィルタの参照画素配置で、下記のフィルタ係数を用いてフィルタ処理を実施する。
・領域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)は予測画像生成ブロック内の左上画素を原点とする相対座標(図33を参照)であり、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)は予測画像生成ブロック内の左上画素を原点とする相対座標(図33を参照)であり、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)に基づいて、予測画像生成ブロック内の画素の予測値を生成する。
図33に示すように、予測画像生成ブロックの左上画素を原点として、予測画像生成ブロック内の相対座標を(x,y)と設定すると、予測に用いる参照画素の位置は、下記のLと隣接画素の交点になる。
ただし、kは負の実数である。
参照画素が整数画素位置にある場合には、その整数画素を予測対象画素の予測値とし、参照画素が整数画素位置にない場合には、参照画素に隣接する整数画素から生成される補間画素を予測値とする。図30の例では、参照画素は整数画素位置にないので、参照画素に隣接する2画素から内挿したものを予測値とする。なお、隣接する2画素のみではなく、隣接する2画素以上の画素から補間画素を生成して予測値としてもよい。補間処理に用いる画素を多くすることで補間画素の補間精度を向上させる効果がある一方、補間処理に要する演算の複雑度が増加することから、演算負荷が大きくても高い符号化性能を要求する画像符号化装置の場合には、より多くの画素から補間画素を生成するようにした方がよい。
以上に述べた処理によって、予測画像生成ブロック単位に予測ブロックPi n内の輝度信号の全ての画素に対する予測画素を生成して、イントラ予測画像PINTRAi nを出力する。なお、イントラ予測画像PINTRAi nの生成に用いられたイントラ予測パラメータ(イントラ予測モード)は、ビットストリームに多重化するために可変長符号化部15に出力される。
なお、先に説明したMPEG−4 AVC/H.264における8×8画素のブロックのイントラ予測時に参照画素に対して施される平滑化処理と同様に、イントラ予測部5において、予測画像生成ブロックの予測画像を生成する際の参照画素を、予測画像生成ブロックに隣接する符号化済み画素を平滑化処理した画素とするように構成した場合であっても、上述の例と同様の予測画像に対するフィルタ処理を行うことができる。このようにすることで参照画素へのフィルタ処理による参照画素のノイズが除去され、これを用いて予測を行うことで予測の精度高めることができる。あるいは、上記参照画素へのフィルタ処理は予測画像へのフィルタ処理を行う平均値予測、垂直方向予測、水平方向予測以外の予測の際のみ実施するようにしてもよい。このようにすることで、各予測モードに対して最大で1つのフィルタ処理しか行わずに済み、演算量の増加を抑えることができる。
上記では、輝度信号の予測画像生成処理について説明したが、色差成分に対する予測画像は次のように生成する。予測ブロックPi nの色差信号に対して、色差信号のイントラ予測パラメータ(イントラ予測モード)に基づくイントラ予測処理を実施し、イントラ予測画像の生成に用いられたイントラ予測パラメータを可変長符号化部15に出力する。
図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信号である場合、輝度信号に使用したイントラ予測モードのインデックスを色差信号の予測に用いるイントラ予測モードのインデックスに変換し、変換後のインデックスに対応するイントラ予測モードによる色差信号の予測処理を実施する。
図35は図36のイントラ予測モードにおけるイントラ予測モードインデックスの変換例を示している。図35の変換テーブルは、予測方向の角度がθであるとき(図10を参照)、イントラ予測モードの方向性予測が図37に示すtanθとなる角度である場合、tanθC=2tanθLの関係に最も近い角度θCに変換するテーブルの例である。
変換処理の実現は、上記のように、インデックスの変換テーブルを用意し、その変換テーブルを参照することでインデックスを変換するように構成してもよいし、変換式を用意し、その変換式に従ってインデックスを変換するように構成してもよい。このように構成することで、方向性予測処理自体を変更することなく、インデックスの変換のみでYUV4:2:2信号のフォーマットに応じた色差信号の適切な予測を実施することができる。
また、色差信号に対して上記LMモードを行わないように構成してもよい。このときの色差信号のイントラ予測パラメータ(インデックス値)と色差イントラ予測モードの対応例として、図38が挙げられる。このようにLMモードも用いないようにすることで、予測対象画素の輝度信号と色差信号の依存性がなくなるため、輝度信号と色差信号の予測処理の並列化が可能となり、高速な演算処理を実現することができる。
さらに、色差信号では、平均値(DC)予測、垂直方向予測、水平方向予測について、輝度信号の場合で説明したブロック境界のフィルタ処理を行わずに、MPEG−4 AVC/H.264と同様の予測手法としてもよい。このようにフィルタ処理を行わないことで、予測処理の低演算化を図ることができる。
次に、図15の画像復号装置の処理内容を具体的に説明する。
可変長復号部31は、図1の画像符号化装置により生成された符号化ビットストリームを入力すると、そのビットストリームに対する可変長復号処理を実施して(図17のステップST21)、1フレーム以上のピクチャから構成されるシーケンス単位のヘッダ情報(シーケンスレベルヘッダ)及びピクチャ単位のヘッダ情報(ピクチャレベルヘッダ)などの各ヘッダ情報とピクチャデータを復号する。ただし、ピクチャデータは1以上のスライスデータから構成され、各スライスデータはスライスレベルヘッダと当該スライス内にある符号化データがまとめられているものである。ピクチャデータはスライスデータの他に補足情報を示すヘッダ情報を含む場合もある。
このとき、上記ヘッダ情報に含まれる量子化マトリクスの有効フラグ情報が“有効”を示す場合、可変長復号部31は量子化マトリクスパラメータを可変長復号し、量子化マトリクスを特定する。具体的には、各直交変換サイズの色信号や符号化モード毎に、量子化マトリクスパラメータが初期値として、画像符号化装置及び画像復号装置で、予め共通に用意されている量子化マトリクス、又は、既に復号された量子化マトリクスである(新しい量子化マトリクスでない)ことを示す場合は、量子化マトリクスパラメータに含まれる上記マトリクスの内のどの量子化マトリクスであるかを特定するインデックス情報を参照して量子化マトリクスを特定し、量子化マトリクスパラメータが新しい量子化マトリクスを用いることを示す場合は、量子化マトリクスパラメータに含まれる量子化マトリクスを使用する量子化マトリクスとして特定する。そして、ピクチャ単位のデータを構成するスライスデータから、スライス分割情報等のスライス単位のヘッダ情報(スライスレベルヘッダ)を復号し、各スライスの符号化データを復号する。
また、可変長復号部31は、上記ヘッダ情報から、最大符号化ブロックサイズ及び分割階層数の上限を特定する(図17のステップST22)。ただし、分割階層数の上限の代わりに、符号化対象ブロックの最小ブロックサイズが符号化されている場合、これを復号することで分割階層数の上限を決定する。即ち、最大符号化ブロックを上記最小ブロックサイズまで分割した場合が分割階層数の上限となる。
可変長復号部31は、決定された最大符号化ブロック単位に、図19で示されるような最大符号化ブロックの分割状態を復号する。復号された分割状態に基づき、階層的に符号化対象ブロックを特定する(図17のステップST23)。
次に、可変長復号部31は、符号化対象ブロックに割り当てられている符号化モードを復号する。復号した符号化モードに含まれる情報に基づき、符号化対象ブロックをさらに1つないし複数の予測処理単位である予測ブロックに分割し、予測ブロック単位に割り当てられている予測パラメータを復号する(図17のステップST24)。
即ち、可変長復号部31は、符号化対象ブロックに割り当てられている符号化モードがイントラ符号化モードである場合、符号化対象ブロックに含まれており、予測処理単位となる1つ以上の予測ブロック毎にイントラ予測パラメータを復号し、符号化対象ブロックに割り当てられている符号化モードが画面内コピー符号化モードである場合、符号化対象ブロックに含まれており、予測処理単位となる1つ以上の予測ブロック毎に画面内コピー予測パラメータを復号する。また、符号化対象ブロックに割り当てられている符号化モードがインター符号化モードである場合、符号化対象ブロックに含まれており、予測処理単位となる1つ以上の予測ブロック毎にインター予測パラメータ及び動きベクトルを復号する(図17のステップST24)。
ここで、画面内コピー予測パラメータは、予測のための参照ブロックの位置を示すブロックシフトベクトル(あるいは、その予測差分)であり、従来はインター予測処理における動きベクトル(あるいは、その予測差分)と同様の方式で復号される。しかし、図1の画像符号化装置の構成及び動作の説明で述べたように、この実施の形態1では、これらのベクトルを異なる符号化方式で可変長符号化しているため、可変長復号の際もそれぞれ異なる方式を用いる必要がある。
図39はこの発明の実施の形態1による画像復号装置の可変長復号部31の内部構成のうち、ベクトルの復号に関する部分を示す構成図である。また、図40はベクトルの復号に関する部分の処理内容を示すフローチャートである。
以下、図15の画像復号装置において、ベクトルの予測差分が符号化されている場合について説明する。
可変長復号部31は、符号化対象ブロックに割り当てられている符号化モードがインター符号化モードあるいは画面内コピー符号化モードである場合、符号化ビットストリーム60を受け取ると、図1の画像符号化装置の可変長符号化部15が参照する符号化方式選択情報51と同じ復号方式選択情報61(符号化モードを示すパラメータ)を求める。この復号方式選択情報61は、先に復号している符号化モードを参照することで求めることができる。
可変長復号部31の選択スイッチ62は、符号化対象ブロックに割り当てられている符号化モードがインター符号化モードあるいは画面内コピー符号化モードである場合、符号化ビットストリーム60を受け取ると、復号方式選択情報61にしたがって、その符号化ビットストリーム60をベクトル復号部63(第1の復号方式で復号を行う復号部)又はベクトル復号部64(第2の復号方式で復号を行う復号部)に出力する。
即ち、選択スイッチ62は、復号方式選択情報61が、符号化モードがインター符号化モードである旨を示していれば(図40のステップST200)、その符号化ビットストリーム60をベクトル復号部63に出力し、符号化モードが画面内コピー予測モードを示していれば(図40のステップST200)、その符号化ビットストリーム60をベクトル復号部64に出力する。
ベクトル復号部63は、選択スイッチ62から符号化ビットストリーム60を受けると、次数が1のゴロム復号によって符号化ビットストリーム60からベクトル差分(この場合のベクトル差分は、動きベクトルの差分である)を復号し、そのベクトル差分に対して、既に復号している他のブロックの動きベクトル(画像符号化装置において、当該予測ブロックの動きベクトルと差分が取られているブロックの動きベクトル)を加算することで、当該予測ブロックの動きベクトルを算出する(ステップST201)。
ここでは、図1の画像符号化装置の可変長符号化部15が、符号化対象ブロックの動きベクトルと、例えば、直前の符号化済み予測ブロックの動きベクトルとの差分値を符号化しているものとしているので、復号したベクトル差分に対して、上記の符号化済み予測ブロックに対応する復号済み予測ブロックの動きベクトルを可算して、符号化対象ブロックの動きベクトルを算出する。
ベクトル復号部64は、選択スイッチ62から符号化ビットストリーム60を受けると、次数が4のゴロム復号によって符号化ビットストリーム60からベクトル差分(この場合のベクトル差分は、ブロックシフトベクトルの差分である)を復号する(ステップST202)。
ここでは、図1の画像符号化装置の可変長符号化部15が、符号化対象ブロックのブロックシフトベクトルと、直前の符号化済み予測ブロックのブロックシフトベクトル(あるいは、当該予測ブロックの周囲の符号化済み予測ブロックのブロックシフトベクトル)との差分値を符号化しているものとしているので、その復号したベクトル差分に対して、上記の符号化済み予測ブロックに対応する復号済み予測ブロックのブロックシフトベクトルを可算して、符号化対象ブロックのブロックシフトベクトルを算出する。
選択スイッチ65は、復号方式選択情報61が、符号化モードがインター符号化モードである旨を示していれば、ベクトル復号部63により算出された動きベクトルを復号ベクトル66として、切換スイッチ33を介して動き補償予測部36に出力する。
一方、符号化モードが画面内コピー予測モードを示していれば、ベクトル復号部64により算出されたブロックシフトベクトルを復号ベクトル66として、切換スイッチ33を介して画面内コピー予測部35に出力する。
図1の画像符号化装置の処理内容の説明で言及したように、例えば、符号化対象ブロックがスクリーンコンテンツであれば“1”、スクリーンコンテンツでなければ“0”となるようなフラグが、シーケンスレベルヘッダやピクチャレベルヘッダなどに含まれることがある。
このようなフラグが含まれている場合には、そのフラグを復号し、符号化モードが画面内コピー予測モードであり、かつ、そのフラグが“1”である場合に限り、ベクトル復号部64が、次数が4のゴロム復号によってベクトル差分を復号し、それ以外の場合には、ベクトル復号部63が、次数が1のゴロム復号によってベクトル差分を復号する構成などが考えられる。
さらに、可変長復号部31は、予測差分符号化パラメータに含まれる変換ブロック分割情報に基づき、変換ブロック毎に圧縮データ(変換・量子化後の変換係数)を復号する(図17のステップST24)。その際、図1の画像符号化装置の可変長符号化部15での圧縮データの符号化処理と同様に、CG単位の係数の復号処理を実施する。したがって、図21に示すように、4×4画素単位の16個のCGを右下のCGから順に復号処理し、さらに、各CGはCG内の16個の係数を右下の係数から順に復号していくことになる。
具体的には、まず、CG内の16個の係数の中に有意(非零)係数が存在するか否かのフラグ情報を復号し、次に復号したフラグ情報がCG内に有意(非零)係数が存在することを示す場合のみCG内の各係数が有意(非零)係数であるかを上記順に復号し、最後に有意(非零)係数を示す係数に対して、その係数値情報を順に復号する。これをCG単位に上記順に行う。ただし、スキャン順については、イントラ予測が選択されている4×4画素と8×8画素の変換ブロックの場合、イントラ予測モードのインデックスに応じて、図21のスキャン順ではなく図23に示すスキャン順で処理を行う。
切換スイッチ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)である場合(図17のステップST25)、切換スイッチ33から出力された予測ブロック単位のイントラ予測パラメータを受け取って、図1のイントラ予測部5と同様の手順で、イントラ用メモリ38に格納されている復号画像を参照しながら、上記イントラ予測パラメータを用いた符号化対象ブロックBn内の各予測ブロックPi nに対するイントラ予測処理を実施して、イントラ予測画像PINTRAi nを生成する(図17のステップST26)。
また、イントラ予測部34は、輝度信号については、輝度信号に対する上記イントラ予測パラメータを用いたイントラ予測処理(フレーム内予測処理)を実施して、輝度信号の予測画像を生成する。
一方、色差信号については、色差信号のイントラ予測パラメータに基づくイントラ予測処理を実施して、色差信号の予測画像を生成する。
図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信号である場合、輝度信号に使用したイントラ予測モードのインデックスを色差信号の予測に用いるイントラ予測モードのインデックスに変換し、変換後のインデックスに対応するイントラ予測モードによる色差信号の予測処理を実施する。
図35の変換テーブルは、予測方向の角度がθであるとき(図10を参照)、イントラ予測モードの方向性予測が図37に示すtanθとなる角度である場合、tanθC=2tanθLの関係に最も近い角度θCに変換するテーブルの例である。変換処理の実現は、上記のように、インデックスの変換テーブルを用意し、その変換テーブルを参照することでインデックスを変換するように構成してもよいし、変換式を用意し、その変換式に従ってインデックスを変換するように構成してもよい。このように構成することで、方向性予測処理自体を変更することなく、インデックスの変換のみでYUV4:2:2信号のフォーマットに応じた色差信号の適切な予測を実施することができる。
また、色差信号に対して、上記LMモードを行わないように画像符号化装置が構成されている場合、その画像符号化装置から生成される符号化ビットストリームが復号できるように画像復号装置も同様の構成とする。このときの色差信号のイントラ予測パラメータ(インデックス値)と色差イントラ予測モードの対応例として、図38が挙げられる。このようにLMモードも用いないようにすることで、予測対象画素の輝度信号と色差信号の依存性がなくなるため、輝度信号と色差信号の予測処理の並列化が可能になり、高速な演算処理を実現することができる。
さらに、色差信号では、平均値(DC)予測、垂直方向予測、水平方向予測について、輝度信号の場合で説明したブロック境界のフィルタ処理を行わずに、MPEG−4 AVC/H.264と同様の予測手法として画像符号化装置が構成されている場合、その画像符号化装置から生成される符号化ビットストリームが復号できるように画像復号装置も同様の構成とする。このようにフィルタ処理を行わないことで、予測処理の低演算化を図ることができる。
画面内コピー予測部35は、可変長復号部31により可変長復号された符号化モードm(Bn)が画面内コピー符号化モード(m(Bn)∈ICOPY)である場合(図17のステップST25)、切換スイッチ33から出力された予測ブロック単位の画面内コピー予測パラメータを受け取って、イントラ用メモリ38に格納されている復号画像を参照しながら、上記画面内コピー予測パラメータに含まれているブロックシフトベクトルを用いた符号化対象ブロックBn内の各予測ブロックPi nに対する画面内コピー予測処理を実施して、画面内コピー予測画像PICOPYi nを生成する(図17のステップST27)。
動き補償予測部36は、可変長復号部31により可変長復号された符号化モードm(Bn)がインター符号化モード(m(Bn)∈INTER)である場合(図17のステップST25)、切換スイッチ33から出力された予測ブロック単位の動きベクトルとインター予測パラメータを受け取って、動き補償予測フレームメモリ40に格納されているフィルタ処理後の復号画像を参照しながら、その動きベクトルとインター予測パラメータを用いた符号化対象ブロックBn内の各予測ブロックPi nに対するインター予測処理を実施してインター予測画像PINTERi nを生成する(図17のステップST28)。
逆量子化・逆変換部32は、可変長復号部31から圧縮データ及び予測差分符号化パラメータを受けると、図1の逆量子化・逆変換部10と同様の手順で、その予測差分符号化パラメータに含まれる量子化パラメータ及び変換ブロック分割情報を参照して、変換ブロック単位にその圧縮データを逆量子化する。このとき、可変長復号部31により可変長復号された各ヘッダ情報を参照し、各ヘッダ情報が、当該スライスで量子化マトリクスを用いて、逆量子化処理を実施することを示している場合は、量子化マトリクスを用いて逆量子化処理を行う。
この際、可変長復号部31により可変長復号された各ヘッダ情報を参照して、各直交変換サイズで色信号や符号化モード(イントラ符号化、画面内コピー符号化、インター符号化)毎に使用する量子化マトリクスを特定する。また、逆量子化・逆変換部32は、変換ブロック単位に逆量子化後の圧縮データである変換係数に対する逆直交変換処理を実施して、図1の逆量子化・逆変換部10から出力された局所復号予測差分信号と同一の復号予測差分信号を算出する(図17のステップST29)。
加算部37は、逆量子化・逆変換部32により算出された復号予測差分信号に対して、イントラ予測部34により生成されたイントラ予測画像PINTRAi n、画面内コピー予測部35により生成された画面内コピー予測画像PICOPYi n、又は、動き補償予測部36により生成されたインター予測画像PINTERi nのいずれかを加算して復号画像を算出し、その復号画像をループフィルタ部39に出力するとともに、その復号画像をイントラ用メモリ38に格納する(図17のステップST30)。この復号画像が、以降のイントラ予測処理及び画面内コピー予測処理の際に用いられる復号済みの画像信号になる。
ループフィルタ部39は、全ての符号化対象ブロックBnに対するステップST23〜ST30の処理が完了すると(図17のステップST31)、加算部37から出力された復号画像に対して、所定のフィルタ処理を実施して、フィルタ処理後の復号画像を動き補償予測フレームメモリ40に格納する(図17のステップST32)。
具体的には、変換ブロックの境界や予測ブロックの境界に発生する歪みを低減するフィルタ(デブロッキングフィルタ)処理、画素単位に適応的にオフセットを加算する(画素適応オフセット)処理、ウィーナフィルタ等の線形フィルタを適応的に切り替えてフィルタ処理する適応フィルタ処理などを行う。
ただし、ループフィルタ部39は、上記のデブロッキングフィルタ処理、画素適応オフセット処理、適応フィルタ処理のそれぞれについて、可変長復号部31により可変長復号された各ヘッダ情報を参照して、当該スライスで処理を行うか否かを特定する。
このとき、2つ以上のフィルタ処理を行う場合に、例えば、画像符号化装置のループフィルタ部13が図12のように構成されている場合には、図16に示すようにループフィルタ部39が構成される。
ここで、デブロッキングフィルタ処理では、可変長復号部31により可変長復号されたヘッダ情報を参照し、ブロック境界にかけるフィルタ強度の選択に用いる各種パラメータを初期値から変更する情報が存在する場合には、その変更情報に基づいて、デブロッキングフィルタ処理を実施する。変更情報がない場合は、予め定められた手法に従って行う。
画素適応オフセット処理では、可変長復号部31により可変長復号された画素適応オフセット処理のブロック分割情報に基づいて分割し、そのブロック単位に、可変長復号部31により可変長復号されたブロック単位のクラス分類手法を示すインデックスを参照して、そのインデックスが“オフセット処理を行わない”ことを示すインデックスでない場合、ブロック単位にブロック内の各画素を上記インデックスが示すクラス分類手法に従ってクラス分類する。
なお、クラス分類手法の候補として、ループフィルタ部13の画素適応オフセット処理のクラス分類手法の候補と同一のものが予め用意されている。
そして、ループフィルタ部39は、ブロック単位の各クラスのオフセット値を特定する可変長復号部31により可変長復号されたオフセット情報を参照して、復号画像の輝度値にオフセットを加算する処理を行う。
適応フィルタ処理では、可変長復号部31により可変長復号されたクラス毎のフィルタを用いて、図1の画像符号化装置と同一の手法でクラス分類した後に、そのクラス分類情報に基づいてフィルタ処理を行う。
このループフィルタ部39によるフィルタ処理後の復号画像が、動き補償予測用の参照画像となり、また、再生画像となる。
以上で明らかなように、この実施の形態1によれば、可変長符号化部15が、動き補償予測部7により探索された動きベクトルの可変長符号化に用いる符号化方式と異なる符号化方式を用いて、画面内コピー予測部6で探索された参照ブロックの位置を示すブロックシフトベクトルを可変長符号化するように構成したので、参照ブロックの位置を示すブロックシフトベクトルの符号量を削減して、符号化効率を高めることができる効果を奏する。
また、この実施の形態1によれば、可変長符号化部15が、可変長復号部31で可変長復号に用いる復号方式を決定する際に参照する情報として、例えば、符号化対象ブロックがスクリーンコンテンツであるか否かを示すフラグを可変長符号化するように構成したので、入力された動画像に応じて任意の単位で適応的にベクトルの符号化方式を切り替えることができるようになり、符号化性能の改善率を更に高めることができる効果を奏する。
また、この実施の形態1によれば、上記効果を持つ画像符号化装置及び画像符号化方法が生成する符号化ビットストリームを正しく復号することができる画像復号装置及び画像復号方法が得られる効果を奏する。
実施の形態2.
上記実施の形態1では、可変長符号化部15が、動きベクトルの可変長符号化に用いる符号化方式と異なる符号化方式を用いて、ブロックシフトベクトルを可変長符号化するものを示したが、予め用意している複数のベクトルの表現形式の中から、可変長符号化部15によりブロックシフトベクトルが可変長符号化された際の符号量が最も少なくなるベクトルの表現形式を選択し、その表現形式で表現したブロックシフトベクトルを可変長符号化するようにしてもよい。
この実施の形態2による画像符号化装置は、上記実施の形態1における図1の画像符号化装置と同様の構成であるが、画面内コピー予測部6の内部構成および動作が異なる。
図42はこの発明の実施の形態2による画像符号化装置の画面内コピー予測部6を示す構成図である。
図42において、参照ブロック探索部71は符号化対象ブロックBn内の各予測ブロックPi nとイントラ用メモリ12に格納されている局所復号画像を比較し、予測ブロックPi nと最も類似している領域のブロック(参照ブロック)を探索して、その参照ブロックの位置を示すブロックシフトベクトルを出力する処理を実施する。
予測画像生成部72は参照ブロック探索部71から出力されたブロックシフトベクトルが指し示す参照ブロックを予測ブロックPi nの予測画像として、画面内コピー予測画像PICOPYi nを生成する処理を実施する。
ベクトル表現形式決定部73は予め用意している複数のベクトルの表現形式の中から、可変長符号化部15により当該ブロックシフトベクトルが可変長符号化された際の符号量が最も少なくなるベクトルの表現形式を選択し、その表現形式で表現したブロックシフトベクトルを可変長符号化する処理を実施する。
次に動作について説明する。
画面内コピー予測部6の参照ブロック探索部71は、符号化制御部1により決定された符号化モードm(Bn)が画面内コピー符号化モードであり(m(Bn)∈ICOPYの場合)、切換スイッチ4から符号化対象ブロックBnを受けると(図14のステップST3)、符号化対象ブロックBn内の各予測ブロックPi nとイントラ用メモリ12に格納されている局所復号画像を比較し、予測ブロックPi nと最も類似している領域のブロック(参照ブロック)を探索して、その参照ブロックの位置を示すブロックシフトベクトルを出力する。
図43は参照ブロック探索部71から出力されるブロックシフトベクトルの表現形式を示す説明図である。
参照ブロック探索部71から出力されるブロックシフトベクトルは、図43に示すように、参照ブロックの位置を示す位置情報として、符号化対象ブロックから参照ブロックまでの相対的な水平移動量と垂直移動量(BVx,BVy)で表現している。
画面内コピー予測部6の予測画像生成部72は、参照ブロック探索部71からブロックシフトベクトルを受けると、そのブロックシフトベクトルが指し示す参照ブロックを予測ブロックPi nの予測画像として、画面内コピー予測画像PICOPYi nを生成する(図14のステップST5)。
図15の画像復号装置では、画面内コピー予測画像PICOPYi nと全く同じ画面内コピー予測画像を生成する必要があるため、画面内コピー予測画像PICOPYi nの生成に用いた参照ブロックの位置を示すブロックシフトベクトルを可変長符号化部15に出力して、ビットストリームに多重化する必要がある。
このとき、予測ブロックPi nのブロックシフトベクトルと、直前の符号化済み予測ブロックのブロックシフトベクトル、あるいは、当該予測ブロックの周囲の符号化済み予測ブロックのブロックシフトベクトルとの差分値を符号化するようにすることで、予測ブロックPi nのブロックシフトベクトルの符号化に必要な符号量を削減することが可能である。
しかし、図26に示しているブロックシフトベクトルの差分値の分布からも分かるように、スクリーンコンテンツの符号化においては、ブロックシフトベクトルの予測精度が低く、差分値が大きくなってしまう傾向にあり、しばしば非常に大きな差分値が観測される。
このような場合に、そのままブロックシフトベクトルの符号化を行うと、符号量が大きくなり、符号化効率の低下を招くことになる。
そこで、この実施の形態2では、画面内コピー予測部6の中にベクトル表現形式決定部73を追加し、ベクトル表現形式決定部73が、複数のベクトルの表現形式から最適な表現形式を選択して、ブロックシフトベクトルの符号化に必要な符号量を削減するようにしている。
以下、ベクトル表現形式決定部73の処理内容を具体的に説明する。
ベクトル表現形式決定部73は、参照ブロック探索部71から、図43に示すように、符号化対象ブロックから参照ブロックまでの相対的な水平移動量と垂直移動量(BVx,BVy)で表現されているブロックシフトベクトルを受ける。
ここで、直前の符号化済み予測ブロックのブロックシフトベクトル、あるいは、当該予測ブロックの周囲の符号化済み予測ブロックのブロックシフトベクトルを(PBVx,PBVy)として、予測ブロックPi nのブロックシフトベクトルである(BVx,BVy)と、符号化済み予測ブロックのブロックシフトベクトルである(PBVx,PBVy)との差分(BVDx,BVDy)だけを符号化するようにすると、符号量を削減することができる。
(BVDx,BVDy)=(BVx−PBVx,BVy−PBVy)
しかし、既に述べたように、スクリーンコンテンツにおける符号化では、必ずしも(PBVx,PBVy)の予測精度が高くないため、(BVDx,BVDy)が十分にゼロに近い値にならないことがある。
図44は図43と異なるブロックシフトベクトルの表現形式を示す説明図である。
図44の例では、参照ブロックを内部に含む最大符号化ブロックのインデックスをk、この最大符号化ブロックの左上座標を原点とする参照ブロックの位置座標を(BVx’,BVy’)として、3つの数値の組(k、BVx’,BVy’)によって参照ブロックの位置を表現している。
ベクトル表現形式決定部73は、ベクトルの表現形式として、図43の表現形式と図44の表現形式が用意されている場合、図43の表現形式で表現されているブロックシフトベクトルが可変長符号化部15で可変長符号化された場合の符号量と、図44の表現形式で表現されているブロックシフトベクトルが可変長符号化部15で可変長符号化された場合の符号量とを算出する。
ベクトル表現形式決定部73は、図43の表現形式で表現されている場合の符号量と、図44の表現形式で表現されている場合の符号量とを比較し、図43の表現形式で表現されている場合の符号量の方が少なければ、図43の表現形式を選択し、図43の表現形式で表現しているブロックシフトベクトルを可変長符号化部15に出力する。
一方、図44の表現形式で表現されている場合の符号量の方が少なければ、図44の表現形式を選択し、図44の表現形式で表現しているブロックシフトベクトルを可変長符号化部15に出力する。
また、ベクトル表現形式決定部73は、どちらの表現形式で表現しているかを示す識別情報として、ベクトル表現形式インデックスも可変長符号化部15に出力する。
ベクトル表現形式インデックスとしては、例えば、図43の表現形式で表現している場合は“0”の値、図44の表現形式で表現している場合は“1”の値を取るようなものが考えられる。
ここでは、2種類のベクトル表現形式が用意されている例を示しているが、3種類以上のベクトル表現形式を用意し、3種類以上のベクトル表現形式の中から、最も符号量が少なくなるベクトル表現形式を選択するようにしてもよい。
可変長符号化部15は、ベクトル表現形式決定部73からブロックシフトベクトルとベクトル表現形式インデックスを受けると、そのブロックシフトベクトルとベクトル表現形式インデックスを含む画面内コピー予測パラメータを可変長符号化して、その画面内コピー予測パラメータの符号化データをビットストリームに多重化する。
可変長符号化部15における画面内コピー予測パラメータの符号化方式は、上記実施の形態1と同様である。
ここで、図44の表現形式では、インデックスkの最大符号化ブロックの左上座標を原点しているが、図45に示すように、インデックスkの最大符号化ブロックの右下座標を原点とする方が、左上座標を原点とする場合より、参照ブロックの位置座標(BVx’,BVy’)の符号量が少なくなることがある。
このため、どの座標を原点とするかを示すインデックス(例えば、インデックスを2ビットとして、左上座標を“00”、右上座標を“01”、左下座標を“10”、右下座標を“11”と表現する)をパラメータとして別途追加するようにしてもよい。
適切な座標を原点とすることで、ブロックシフトベクトルの符号化に必要な符号量を削減して符号化効率を高めることが可能である。
また、ベクトル表現形式インデックスは、常に符号化対象ブロック単位で符号化する必要はなく、より大きな任意の領域を単位として符号化するようにしてもよい。つまり、シーケンスレベルヘッダ、ピクチャレベルヘッダ、スライスレベルヘッダなどにベクトル表現形式インデックスを加えて、可変長符号化部15で符号化することで、ベクトル表現形式インデックスの符号化に必要な符号量を削減して、符号化効率を高めることが可能である。
もちろん、画面内コピー符号化モードにおけるブロックシフトベクトルの符号化には、常に図44のベクトル表現形式を用いるようにするなど、符号化モード情報などと対応付けて一意にベクトル表現形式を導出できるようにしてもよい。このようにすれば、ベクトル表現形式インデックスを符号化する必要がなくなり、符号量が削減されて符号化効率が向上する。
この実施の形態2による画像復号装置は、上記実施の形態1における図15の画像復号装置と同様の構成であるが、画面内コピー予測部35の内部構成および動作が異なる。
図46はこの発明の実施の形態2による画像復号装置の画面内コピー予測部35を示す構成図である。
図46において、参照ブロック座標決定部81は可変長復号部31により復号された画面内コピー予測パラメータに含まれているベクトル表現形式インデックスから、その画面内コピー予測パラメータに含まれているブロックシフトベクトルの表現形式を認識して、そのブロックシフトベクトルから参照ブロックの位置を表す座標を特定する処理を実施する。
予測画像生成部82はイントラ用メモリ38に格納されている局所復号画像から、参照ブロック座標決定部81により特定された座標上の参照ブロックを読み出して、その参照ブロックを予測画像として加算部37に出力する処理を実施する。
次に動作について説明する。
画面内コピー予測部35の参照ブロック座標決定部81は、可変長復号部31により復号された画面内コピー予測パラメータを受けると、その画面内コピー予測パラメータに含まれているベクトル表現形式インデックスから、その画面内コピー予測パラメータに含まれているブロックシフトベクトルの表現形式を認識する。
例えば、ベクトル表現形式インデックスが“0”であれば、図43の表現形式で表現されていると認識し、ベクトル表現形式インデックスが“1”であれば、図44の表現形式で表現されていると認識する。
また、ベクトル表現形式インデックスが“1”であるとき、どの座標を原点とするかを示すインデックスが含まれている場合、そのインデックスから図44の表現形式で表現されているのか、図45の表現形式で表現されているのか等を認識する。
参照ブロック座標決定部81は、ブロックシフトベクトルの表現形式を認識すると、そのブロックシフトベクトルから参照ブロックの位置を表す座標を特定する。
画面内コピー予測部35の予測画像生成部82は、参照ブロック座標決定部81が参照ブロックの位置を表す座標を特定すると、イントラ用メモリ38に格納されている局所復号画像から、その座標上の参照ブロックを読み出して、その参照ブロックを予測画像として加算部37に出力する。
以上で明らかなように、この実施の形態2によれば、画面内コピー予測部6が、予め用意している複数のベクトルの表現形式の中から、可変長符号化部15によりブロックシフトベクトルが可変長符号化された際の符号量が最も少なくなるベクトルの表現形式を選択し、可変長符号化部15が、画面内コピー予測部6により選択された表現形式で表現したブロックシフトベクトルを可変長符号化するように構成したので、上記実施の形態1よりも、ブロックシフトベクトルの符号化に必要な符号量を更に削減して、スクリーンコンテンツに対する符号化性能を高めることができる効果を奏する。
また、この実施の形態2によれば、ブロックシフトベクトルの表現形式を示すベクトル表現形式インデックスを可変長符号化するように構成したので、入力された動画像に応じて任意の単位で適応的にベクトルの表現形式を切り替えることができるようになり、符号化性能の改善率を更に高めることができる効果を奏する。
また、この実施の形態2によれば、上記効果を持つ画像符号化装置及び画像符号化方法が生成する符号化ビットストリームを正しく復号することができる画像復号装置及び画像復号方法が得られる効果を奏する。
実施の形態3.
上記実施の形態1,2では、画面内コピー符号化モードで予測処理を実施する際、符号化対象ブロック全体で1つのブロックシフトベクトルを用いて、符号化済み領域から参照ブロックを取得する構成である。
この実施の形態3では、符号化対象ブロックが複数の領域に分割されている場合、各々の分割ブロック毎に、異なるブロックシフトベクトルを用いて、符号化済み領域から参照ブロックを取得する際、それらのブロックシフトベクトルの符号化に必要な符号量を削減する構成である。
この実施の形態3による画像符号化装置は、上記実施の形態1における図1の画像符号化装置と同様の構成であるが、画面内コピー予測部6の内部構成および動作が異なる。
図47はこの発明の実施の形態3による画像符号化装置の画面内コピー予測部6を示す構成図である。
図47において、領域分割部91は符号化対象ブロックを複数の領域に分割して、複数の領域である分割ブロックを出力する処理を実施する。
参照領域探索部92は領域分割部91から複数の分割ブロックを受けると、イントラ用メモリ12に格納されている局所復号画像の中から、各々の分割ブロックと類似している参照領域(分割ブロックに対応する参照ブロック)をそれぞれ探索し、その参照領域を指し示すベクトルであるブロックシフトベクトルをそれぞれ出力する処理を実施する。
予測画像生成部93は参照領域探索部92から複数のブロックシフトベクトルを受けると、各々のブロックシフトベクトルが指し示す参照領域を予測画像として、複数の予測画像を符号化対象ブロック全体の予測画像として出力する処理を実施する。
ベクトル差分計算部94は参照領域探索部92から出力された複数のブロックシフトベクトルが可変長符号化部15で可変長符号化される際に、複数のブロックシフトベクトルの全体の符号量が最も少なくなる複数のブロックシフトベクトルの符号化順を決定して、その符号化順に複数のブロックシフトベクトルの並び替えを実施する。
可変長符号化部15はベクトル差分計算部94により並び替えられた複数のブロックシフトベクトルを並び順に可変長符号化するとともに、ベクトル差分計算部94によるブロックシフトベクトルの並び替えを示す並び替え情報を可変長符号化する。このとき、複数のブロックシフトベクトルの符号化方法は、上記実施の形態1,2と同様である。
次に動作について説明する。
画面内コピー予測部6の領域分割部91は、符号化対象ブロックを受けると、その符号化対象ブロックを複数の領域に分割し、複数の領域である分割ブロックを出力する。
図48は符号化対象ブロックのブロックサイズが16画素×16画素である場合の分割例を示す説明図である。
図48の太線で囲まれている領域が分割された1つの領域を示している。図48(a)では、符号化対象ブロックを均等に1画素×16画素の16領域に分割している例を示しており、図48(b)では、符号化対象ブロックを不均等に9領域に分割している例を示している。
この実施の形態3では、符号化対象ブロックをどのように分割するかは問わないが、符号化制御部1が符号化効率や画質などを考慮して決定することが考えられる。
図15の画像復号装置における画面内コピー予測部35が、上記と同じ領域分割を行う必要があるため、必要に応じて画面内コピー予測部6の領域分割部91が、符号化対象ブロックの分割状況を示す領域分割情報を可変長符号化部15に出力し、可変長符号化部15が領域分割情報を符号化してビットストリームに多重化する。
領域分割情報としては、例えば、図48(b)に示すような分割を行う場合、各領域の始点位置(符号化対象ブロック内の画素をラスタスキャンした場合のインデックス等)と連結の長さを用いることが考えられる。ただし、分割方法を常に固定とする場合には、領域分割情報を符号化してビットストリームに多重化する必要はない。
画面内コピー予測部6の参照領域探索部92は、領域分割部91から複数の分割ブロックを受けると、イントラ用メモリ12に格納されている局所復号画像の中から、各々の分割ブロックと類似している参照領域(分割ブロックに対応する参照ブロック)をそれぞれ探索し、その参照領域を指し示すベクトルであるブロックシフトベクトルをそれぞれ出力する。
図49は複数の分割ブロックに対応する参照ブロックを示すブロックシフトベクトルを示す説明図である。
図49の例では、符号化対象ブロックが3つの分割ブロックに分割され、3つの分割ブロックに対応する参照ブロック(1)〜(3)を指し示すブロックシフトベクトル(1)〜(3)を示している。
画面内コピー予測部6の予測画像生成部93は、参照領域探索部92から複数のブロックシフトベクトルを受けると、ブロックシフトベクトル毎に、当該ブロックシフトベクトルが指し示す参照ブロックを取得する。
予測画像生成部93は、複数のブロックシフトベクトルを用いて、複数の参照ブロックを取得すると、複数の参照ブロックを符号化対象ブロック全体の予測画像として出力する。
画面内コピー予測部6のベクトル差分計算部94は、参照領域探索部92から複数のブロックシフトベクトルを受けると、複数のブロックシフトベクトルが可変長符号化部15で可変長符号化される際に、複数のブロックシフトベクトルの全体の符号量が最も少なくなる複数のブロックシフトベクトルの符号化順を決定して、その符号化順に複数のブロックシフトベクトルの並び替えを実施する。
以下、ベクトル差分計算部94の処理内容を具体的に説明する。
ベクトル差分計算部94は、参照領域探索部92から複数のブロックシフトベクトルを受けると、符号化対象ブロックの近傍にあるブロック(直前の符号化済み予測ブロック、あるいは、当該予測ブロックの周囲の符号化済み予測ブロック)のブロックシフトベクトルと参照領域探索部92から出力されたブロックシフトベクトルとの差分を算出する。あるいは、1つの符号化対象ブロックにおける複数の分割ブロックのブロックシフトベクトルの間で差分を算出ことも考えられる。
ここで、図50は符号化対象ブロックが9個の領域に分割されて、9本のブロックシフトベクトルが得られている様子を示す説明図である。9本のブロックシフトベクトルには、0〜8のインデックスが付けられている。
このとき、i番目のブロックシフトベクトルを(BVxi,BVyi)で表すと、ベクトル差分計算部94は、(BVxi−BVxi−1,BVyi−BVyi−1)のようにして2つの隣り合ったベクトルをペアにしてベクトルの差分を求めるようにしてもよい。
なお、(BVx0,BVy0)については、近傍にあるブロックのブロックシフトベクトルを用いて予測を行ってもよいし、あるいは(10,10)などの適当な定数により予測を行ってもよい。
上記のようにブロックシフトベクトルの差分を求め、この差分を可変長符号化部15が符号化する場合、その差分をゼロ近傍に集中させることができれば、少ない符号量で符号化することが可能になり、高い符号化効率を実現することができる。
図50の例では、(BVx6,BVy6)と(BVx7,BVy7)などは、類似しているベクトルであるため(ベクトルの方向が近い)、ベクトルの差分を小さくすることができるが、(BVx3,BVy3)と(BVx4,BVy4)などでは、類似していないため、ベクトルの差分が非常に大きくなり、符号化効率が低下する。
そこで、ベクトル差分計算部94は、ブロックシフトベクトル間の差分が小さくなるようにベクトルの並べ替えを行う。
図51はベクトル差分計算部94によるベクトルの並べ替え方法を示す説明図である。
図51では、図50に示している9本のブロックシフトベクトルの原点を合わせて図示している。
ここで、水平方向からのなす角θが最も小さいインデックス(3)のベクトルと、最も大きいインデックス(2)のベクトルに着目し、例えば、これら2つのベクトルがなす角を4等分して4つのエリアを定義し、これを順にA0,A1,A2,A3とする。
まず、エリアA0に含まれるブロックシフトベクトルを、インデックスが小さい順に符号化する。つまり、インデックス(3)のブロックシフトベクトルを可変長符号化部15に出力して符号化し、続いてインデックス(8)のベクトルの符号化として、インデックス(8)のベクトルとインデックス(3)のベクトルとの差分(BVx8−BVx3,BVy8−BVy3)を符号化する。
次に、エリアA1に含まれるブロックシフトベクトルをインデックスが小さい順に符号化する。つまり、インデックス(5)のベクトルの符号化として、インデックス(5)のベクトルとインデックス(8)のベクトルとの差分(BVx5−BVx8,BVy5−BVy8)を符号化する。
同様に、エリアA2,A3に含まれるブロックシフトベクトルをインデックスが小さい順に符号化する。
このようにすることで、ブロックシフトベクトルを単純にインデックス(0)から順に(1),(2),・・・と符号化していく場合と比べて、直前に符号化したベクトルとの差分を小さく抑えることができ、ベクトルの符号化に必要な符号量を削減して符号化効率を改善することができる。
この実施の形態3は、図51に示すようなエリアの分割方法及び分割数に限定されるものではなく、例えば、図55に示すように、図51とは異なるエリアの分割方法及び分割数を用いることも当然考えられる。
上記のように、ベクトル差分計算部94がブロックシフトベクトルの並べ替えを行っているため、図15の画像復号装置における画面内コピー予測部35が、復号したブロックシフトベクトルを正しい順序に並べ直す必要がある。
しかし、画面内コピー予測部35では、どのような並べ替えが行われているかが未知であるため、正しい並べ替えを行うことができるようにベクトル差分計算部94が、ベクトルの並べ替え情報を出力し、このベクトルの並べ替え情報を可変長符号化部15で符号化してビットストリームに多重化する。
ベクトル並べ替え情報は、インデックス(0)から順に各ブロックシフトベクトルがA0,A1,A2,A3のいずれのエリアに属しているかを示すものである。つまり、図51の例では、ベクトル並べ替え情報は、図52のようになる。
ただし、図51のようなA0,A1,A2,A3といったエリア分割を行わず、全てのベクトルを任意に入れ替えて、その入れ替え順番をベクトルのインデックスによって表現しているベクトル並べ替え情報を符号化するようにしてもよい。
しかし、このようにすると符号化対象ブロック内に含まれるブロックシフトベクトルの数が例えば64などのように大きくなった場合、(0)から(63)までのインデックスを符号化しなければならず、ベクトル並べ替え情報の符号化に必要な符号量が大きくなり符号化効率が低下する。
一方、図51のようなエリア分割を行って各ベクトルが属するエリアのインデックスだけをベクトル並べ替え情報として符号化するようにすれば、インデックスの符号化に必要な符号量を分割エリア数で調整することができるため、符号量を削減して符号化効率を改善することができる。
この実施の形態3による画像復号装置は、上記実施の形態1における図15の画像復号装置と同様の構成であるが、画面内コピー予測部35の内部構成および動作が異なる。
図53はこの発明の実施の形態3による画像復号装置の画面内コピー予測部35を示す構成図である。
図53において、ベクトル並べ替え部95は可変長復号部31により復号された各分割ブロックに係るブロックシフトベクトルの並べ替え情報を参照して、可変長復号部31により復号された各分割ブロックのブロックシフトベクトルを正しい順番に並べ替える(ベクトル差分計算部94により並べ替えられる前のブロックシフトベクトルと同じ順番になるように、可変長復号部31により復号された各分割ブロックのブロックシフトベクトルを並べ替える)処理を実施する。
予測画像生成部96はベクトル並べ替え部95により並び替えられたブロックシフトベクトルを用いて、イントラ用メモリ38に格納されている局所復号画像から、各分割ブロックに対応する参照ブロックを読み出し、複数の参照ブロックを復号対象ブロック全体の予測画像として出力する処理を実施する。
次に動作について説明する。
画面内コピー予測部35のベクトル並べ替え部95は、可変長復号部31から各分割ブロックに係るブロックシフトベクトルの並べ替え情報を受けると、その並べ替え情報を参照して、可変長復号部31により復号された各分割ブロックのブロックシフトベクトルを正しい順番に並べ替える処理を行う。
図54は並べ替え前後のベクトルインデックスとベクトルの並べ替え情報を示す説明図である。
以下、図54を参照しながら、ブロックシフトベクトルの並べ替えを説明する。
9本のブロックシフトベクトルがあり、復号された順番に(0)から(8)までのインデックスが付けられているものとする。
ベクトル並べ替え部95は、ベクトル並べ替え情報(所属エリアインデックス)を参照して、所属エリアインデックスが小さい順にブロックシフトベクトルを並べる。つまり、所属エリアインデックスが(0)となるブロックシフトベクトルを求め、所属エリアインデックスが(0)となるブロックシフトベクトルが複数存在する場合は、ベクトルインデックスが小さい順に並べる。
図54の例では、所属エリアインデックスが(0)となるブロックシフトベクトルは、インデックス(3)とインデックス(8)のベクトルであるため、ベクトルインデックスが小さい順に、インデックス(3)とインデックス(8)のベクトルを並べる。
これを繰り返していき、最終的に図54のようにベクトルの並べ替えが行われ、図1の画像符号化装置における画面内コピー予測部6で並べ替えを行う前の正しいベクトルインデックスを得ることができる。
画面内コピー予測部35の予測画像生成部96は、可変長復号部31により復号された領域分割情報を受け取り、ベクトル並べ替え部95により正しい順番に並び替えられたブロックシフトベクトルを用いて、イントラ用メモリ38に格納されている局所復号画像から、各分割ブロックに対応する参照ブロックを読み出し、複数の参照ブロックを復号対象ブロック全体の予測画像として出力する。
この実施の形態3では、可変長符号化部15がベクトルの並べ替え情報を符号化してビットストリームに多重化しているものを示したが、並べ替え情報を利用せずとも画像復号装置で正しくブロックシフトベクトルを並べ替えることが可能である場合には、必ずしもベクトルの並べ替え情報を符号化する必要はない。
以上で明らかなように、この実施の形態3によれば、可変長符号化部15が、ベクトル差分計算部94により並び替えられた複数のブロックシフトベクトルを並び順に可変長符号化するとともに、ベクトル差分計算部94によるブロックシフトベクトルの並び替えを示す並び替え情報を可変長符号化するように構成したので、ブロックシフトベクトルの符号化に必要な符号量が削減され、スクリーンコンテンツに対する符号化性能を高めることができる効果を奏する。
また、この実施の形態3によれば、上記効果を持つ画像符号化装置及び画像符号化方法が生成する符号化ビットストリームを正しく復号することができる画像復号装置及び画像復号方法が得られる効果を奏する。
実施の形態4.
上記実施の形態1では、可変長符号化部15が画面内コピー予測のブロックシフトベクトルを符号化する際、直前の符号化済みブロックのベクトル、あるいは、符号化対象ブロックの周囲の符号化済みブロックのベクトルを予測ベクトルとしてベクトルの差分値を符号化するものを示したが、ベクトルの差分値を符号化するか、あるいは、ベクトルの予測を行わずにブロックシフトベクトルを直接符号化するかを適応的に切り替えるようにしてもよい。
この実施の形態4による画像符号化装置は、上記実施の形態1における図1の画像符号化装置と同様の構成であるが、可変長符号化部15の内部構成および動作が異なる。
図56はこの発明の実施の形態4による画像符号化装置の可変長符号化部15のうち画面内コピー予測のブロックシフトベクトルを符号化する部分を示す構成図である。
図56において、ベクトル符号量計算部113は画面内コピー予測部6からブロックシフトベクトル111と、直前の符号化済みブロックのベクトル、あるいは、符号化対象ブロックの周囲の符号化済みブロックのベクトルなどから生成した予測ベクトル112とを受け取り、ブロックシフトベクトル111をそのまま符号化する場合の符号量と、ブロックシフトベクトル111と予測ベクトル112の差分を取ってから符号化する場合の符号量とを求め、これらの符号量を示す情報として符号量情報114を出力する処理を実施する。
ベクトル符号量比較部115はベクトル符号量計算部113から出力された符号量情報114に基づいてブロックシフトベクトル111をそのまま符号化する場合と、ブロックシフトベクトル111と予測ベクトル112の差分を取ってから符号化する場合とにおいて、どちらの方が符号化性能が高くなるかを決定し、最終的に符号化するベクトル116と、ベクトルの予測を行うか否かを示すフラグ117(例えば、予測を行う場合は1、予測を行わない場合は0)を出力する処理を実施する。
ベクトル116とフラグ117は、可変長符号化部15の内部で可変長符号化されてビットストリームに重畳される。
次に動作について説明する。
まず、ベクトル符号量計算部113は、画面内コピー予測部6から(BVx,BVy)で表されるブロックシフトベクトル111と、(PBVx,PBVy)で表される予測ベクトル112を受け取ると、予測ベクトル112を使用せずにブロックシフトベクトル111をそのまま符号化する場合の符号量と、予測ベクトル112を使用して差分値(BVx−PBVx,BVy−PBVy)を符号化する場合の符号量とを計算し、それらの計算結果を符号量情報114として出力する。
ベクトル符号量比較部115は、ベクトル符号量計算部113から符号量情報114を受け取ると、ブロックシフトベクトル111である(BVx,BVy)を符号化する場合の符号量と、差分値(BVx−PBVx,BVy−PBVy)を符号化する場合の符号量とを比較して、小さくなる方を選択する。
ベクトル符号量比較部115は、差分値(BVx−PBVx,BVy−PBVy)を符号化する場合の符号量の方が小さくなる場合、その差分値(BVx−PBVx,BVy−PBVy)をベクトル116として出力するとともに、ベクトルの予測を行うか否かを示すフラグ117を1(予測を行うことを示す値)として出力する。
一方、ブロックシフトベクトル111である(BVx,BVy)を符号化する場合の符号量の方が小さくなる場合、(BVx,BVy)をベクトル116として出力するとともに、フラグ117を0(予測を行わないことを示す値)として出力する。
ベクトル116とフラグ117は、可変長符号化部15の内部で可変長符号化されてビットストリームに重畳される。
画面内コピー予測におけるブロックシフトベクトル111は、予測が難しいため、直前の符号化済みブロックのベクトル、あるいは、符号化対象ブロックの周囲の符号化済みブロックのベクトルによって常に高精度に予測できるとは限らない。したがって、ベクトルの予測を実施することで逆に符号量が増加してしまうケースがある。この実施の形態4では、ベクトルの予測を行うか否かをベクトルの予測精度に応じて適応的に切り替えられるように構成したため、ブロックシフトベクトル111の符号化に必要な符号量を削減して符号化性能を向上することが可能である。
なお、ベクトルの予測を実施するか否かを示すフラグ117は、ベクトルの水平成分と垂直成分のそれぞれに対して個別に設けるようにしてもよい。つまり、例えばベクトルの水平成分は予測を実施し、垂直成分は予測を実施しない、といった柔軟な選択が行えるようにしてもよい。このようにすることで、符号量の削減効果がさらに向上する。
ここで、図57及び図58はこの発明の実施の形態4による画像符号化装置の可変長符号化部15が画面内コピー予測のブロックシフトベクトルを可変長符号化する手順を示すフローチャートである。
以下、図57及び図58を用いて、可変長符号化部15が画面内コピー予測のブロックシフトベクトルを可変長符号化する手順を説明する。
いま、符号化するベクトル116の値を(Vx,Vy)とする。(Vx,Vy)は、フラグ117が0の場合、(BVx,BVy)と等しく、フラグ117が1の場合、(BVx−PBVx,BVy−PBVy)と等しいものとする。
まず、可変長符号化部15は、Vxの絶対値|Vx|を求め(図57のステップST120)、フラグabs_mvd_greater0_flag_xを符号化する(ステップST121)。フラグabs_mvd_greater0_flag_xは、|Vx|が0より大きい場合に1、|Vx|が0以下の場合に0となるフラグである。
また、Vyについても同様にVyの絶対値|Vy|を求め(ステップST122)、フラグabs_mvd_greater0_flag_yを符号化する(ステップST123)。フラグabs_mvd_greater0_flag_yは、|Vy|が0より大きい場合に1、|Vy|が0以下の場合に0となるフラグである。
可変長符号化部15は、|Vx|と|Vy|が共に0の場合(ステップST124:Yesの場合)、そのまま終了するが、|Vx|又は|Vy|の少なくとも一方が1の場合(ステップST124:Noの場合)、フラグis_pred_flagを符号化する(図58のステップST125)。フラグis_pred_flagは、フラグ117の値に等しく、ベクトルの予測を行う場合に1、予測を行わない場合に0となるフラグである。
次に、可変長符号化部15は、Vxの絶対値|Vx|が0よりも大きければ(ステップST126:Yesの場合)、フラグabs_mvd_greater1_flag_xを符号化する(ステップST127)。フラグabs_mvd_greater1_flag_xは|Vx|が1よりも大きい場合に1、そうでない場合に0となるフラグである。
また、Vyの絶対値|Vy|が0よりも大きければ(ステップST128:Yesの場合)、フラグabs_mvd_greater1_flag_yを符号化する(ステップST129)。フラグabs_mvd_greater1_flag_yは|Vy|が1よりも大きい場合に1、そうでない場合に0となるフラグである。
次に、可変長符号化部15は、Vxの絶対値|Vx|が1よりも大きければ(ステップST130:Yesの場合)、Vxの絶対値|Vx|から2を引いた値を符号化し(ステップST131)、Vxの絶対値|Vx|が0よりも大きければ(ステップST132:Yesの場合)、フラグmvd_sign_flag_xを符号化する(ステップST133)。フラグmvd_sign_flag_xは、Vxが正の場合に0、負の場合に1となるフラグである。
また、Vyについても同様に、Vyの絶対値|Vy|が1よりも大きければ(ステップST134:Yesの場合)、Vyの絶対値|Vy|から2を引いた値を符号化し(ステップST135)、Vyの絶対値|Vy|が0よりも大きければ(ステップST136:Yesの場合)、フラグmvd_sign_flag_yを符号化する(ステップST137)。フラグmvd_sign_flag_yは、Vyが正の場合に0、負の場合に1となるフラグである。
ここでは、フラグabs_mvd_greater0_flag_x及びフラグabs_mvd_greater0_flag_y、さらにフラグabs_mvd_greater1_flag_x及びフラグabs_mvd_greater1_flag_yを用いることでベクトルが0あるいは1の場合はフラグだけを符号化するようにしているが、必ずしも、これらのフラグの全てを用いなくてもよい。つまり、例えばベクトルが0か否かを示すフラグだけを利用し、|Vx|から1を引いた値および|Vy|から1を引いた値を符号化することなどが考えられる。
図57及び図58に示すベクトルの可変長符号化の手順が従来の画像符号化装置と異なるのは、画面内コピー予測におけるブロックシフトベクトル111の予測を行うか否かを示すフラグis_pred_flagをステップST125で符号化している点だけである。したがって、ベクトルの可変長符号化の手順を従来の画像符号化装置からほとんど変えることなく、画面内コピー予測におけるブロックシフトベクトル111の予測を行うか否かを適応的に切り替えることが可能である。
ここで、画面内コピー予測におけるブロックシフトベクトル111の予測を行わずに(BVx,BVy)をそのまま符号化する場合を考えてみると、ベクトルの値には制限があることがわかる。画面内コピー予測で参照できる領域は、図59に示すような符号化済み領域(符号化対象ブロック以前に符号化が完了している領域)のみであるため、(BVx,BVy)=(0,0)となることはあり得ず、さらに、BVx>0かつBVy>0となることもあり得ない。
したがって、BVx=0のときは必ずBVy<0になり、BVy=0のときは必ずBVx<0になる他、BVxとBVyの正負の組み合わせは、BVx<0かつBVy<0、BVx>0かつBVy<0、BVx<0かつBVy>0のいずれかとなる。
図57及び図58では、Vxの符号を表すフラグmvd_sign_flag_x、Vyの符号を表すフラグmvd_sign_flag_yを常に符号化していたが、画面内コピー予測におけるブロックシフトベクトル111の予測を行わずに(BVx,BVy)をそのまま符号化する場合は、上記のようにベクトルの値に制限があることを利用すると、例えば、図60、図61及び図62に示すようなベクトルの可変長符号化の手順も考えることができる。
図60及び図61におけるステップST140〜ST152までは図57及び図58と同様であるため説明を割愛する。ただし、mvd_sign_flag_xとmvd_sign_flag_yの符号化(図58のステップST132及びST133とステップST136及びST137)を行っていない点に注意されたい。図62のステップST154において、フラグis_pred_flagを符号化し、これが1である場合(ステップST155:Yesの場合)、つまり、ブロックシフトベクトル111の予測を実施する場合は、mvd_sign_flag_xとmvd_sign_flag_yを符号化する(ステップST156からST159)。
一方、フラグis_pred_flagが0となる場合(ステップST155:Noの場合)、つまりブロックシフトベクトル111の予測を実施せず、ベクトルをそのまま符号化する場合は、VxまたはVyのいずれかが0となるのであれば符号フラグ(mvd_sign_flag_xやmvd_sign_flag_y)を符号化することなく終了する(ステップST160:Noの場合)。なぜならば、Vy=0ならば必ずVx<0となり、Vx=0ならば必ずVy<0となるため正負を表す符号を別途符号化する必要がないためである。
また、VxとVyがどちらも0でない場合(ステップST160:Yesの場合)、まず、フラグboth_negative_flagを符号化する(ステップST161)。フラグboth_negative_flagは、Vx<0かつVy<0の場合に1、そうでない場合に0となるフラグである。Vx<0かつVy<0の場合は(ステップST162:Yesの場合)、そのまま終了し、Vx又はVyのうち、少なくとも一方が0より大きい場合(ステップST162:Noの場合)、VxとVyのどちらかの符号をシグナリングする必要があるため、図62ではVxの符号としてフラグmvd_sign_flag_xを符号化する(ステップST163)。
図57及び図58と、図60、図61及び図62とを比較すると、図57及び図58ではVxとVyのそれぞれについて常に符号を表すフラグmvd_sign_flag_x,mvd_sign_flag_yを符号化しているのに対し、図60、図61及び図62では、ベクトルの予測を実施しない場合に、符号化するベクトルの値に制限があることを利用して符号を表すフラグの符号化回数を最小限に抑えている。これにより、画面内コピー予測におけるブロックシフトベクトル111の符号化に必要な符号量を削減することができ、符号化性能を向上させることができる。
この実施の形態4による画像復号装置は、上記実施の形態1における図15の画像復号装置と同様の構成であるが、可変長復号部31、画面内コピー予測部35の内部構成および動作が異なる。
図63はこの発明の実施の形態4による画像復号装置の画面内コピー予測部35を示す構成図である。
図63において、参照ブロック座標決定部180は可変長復号部31により復号された画面内コピー予測パラメータに含まれているベクトル予測フラグから、その画面内コピー予測パラメータに含まれているブロックシフトベクトル111に対してベクトルの予測が行われているのかどうかを認識して、そのブロックシフトベクトル111から参照ブロックの位置を表す座標を特定する処理を実施する。
予測画像生成部181はイントラ用メモリ38に格納されている局所復号画像から、参照ブロック座標決定部180により特定された座標上の参照ブロックを読み出して、その参照ブロックを予測画像として加算部37に出力する処理を実施する。
次に動作について説明する。
図64及び図65は、画面内コピー予測パラメータが画像符号化装置にて図57及び図58に示す手順で符号化されている場合に、その復号に係る可変長復号部31の動作を示したものである。
いま、画面内コピー予測におけるブロックシフトベクトルを(Vx,Vy)とし、その初期値を0とする。まず、可変長復号部31は、フラグabs_mvd_greater0_flag_xを復号し、これをVxに加算する(図64のステップST190)。
また、可変長復号部31は、フラグabs_mvd_greater0_flag_yを復号し、これをVyに加算する(ステップST191)。
可変長復号部31は、Vx,Vyのいずれかが0でない場合(ステップST192:Noの場合)、ベクトルが予測されているか否かを表すフラグis_pred_flagを復号する(図65のステップST193)。ここで、Vx,Vyが共に0である場合(フラグis_pred_flagを復号しない場合)、フラグis_pred_flagは1に設定される。
次に、可変長復号部31は、Vxが0よりも大きい場合(ステップST194:Yesの場合)、フラグabs_mvd_greater1_flag_xを復号し、これをVxに加算する(ステップST195)。
また、可変長復号部31は、Vyが0よりも大きい場合(ステップST196:Yesの場合)、フラグabs_mvd_greater1_flag_yを復号し、これをVyに加算する(ステップST197)。
次に、可変長復号部31は、Vxが1よりも大きい場合(ステップST198:Yesの場合)、Vx’(=|Vx|−2)を復号し、これをVxに加算する(ステップST199)。そして、Vxが0よりも大きい場合(ステップST200:Yesの場合)、フラグmvd_sign_flag_xを復号し、これが1の場合だけVxの符号を負に設定する(ステップST201)。
また、可変長復号部31は、Vyが1よりも大きい場合(ステップST202:Yesの場合)、Vy’ (=|Vy|−2)を復号し、これをVyに加算する(ステップST203)。そして、Vyが0よりも大きい場合(ステップST204:Yesの場合)、フラグmvd_sign_flag_yを復号し、これが1の場合だけVyの符号を負に設定する(ステップST205)。
可変長復号部31は、以上の手順により得られた画面内コピー予測のブロックシフトベクトル(Vx,Vy)と、このベクトルが予測ベクトルとの差分になっているか否かを表すベクトル予測フラグis_pred_flagを画面内コピー予測パラメータとして出力する。
また、図66、図67及び図68は画面内コピー予測パラメータが画像符号化装置にて図60〜図62に示す手順で符号化されている場合に、その復号に係る可変長復号部31の動作を示したものである。図66及び図67におけるステップST210〜ST220までは図64及び図65と同様であるため説明を割愛する。ただし、is_pred_flagの復号(図65のステップST193)、mvd_sign_flag_xとmvd_sign_flag_yの復号(図65のステップST200及びST201とステップST204及びST205)を行っていない点に注意されたい。図68のステップST222において、フラグis_pred_flagを復号し、これが1である場合(ステップST223:Yesの場合)、つまり、ブロックシフトベクトル111の予測を実施する場合は、mvd_sign_flag_xとmvd_sign_flag_yを復号してVxとVyの符号を設定する(ステップST224からST227)。
一方、フラグis_pred_flagが0となる場合(ステップST223:Noの場合)、つまりブロックシフトベクトル111の予測が実施されず、ベクトルがそのまま符号化されている場合は、VxまたはVyのいずれかが0となるのであれば(ステップST228:Noの場合)、0でない方の符号を負に設定して終了する(ステップST232)。
また、VxとVyがどちらも0でない場合(ステップST228:Yesの場合)、まず、フラグboth_negative_flagを復号してこれが1であればVxとVyの符号を負に設定する(ステップST229)。フラグboth_negative_flagが0の場合(ステップST230:Noの場合)、フラグmvd_sign_flag_xを復号し、これが1であればVxの符号を負、Vyの符号を正、0であればVxの符号を正、Vyの符号を負に設定する。(ステップST231)。
可変長復号部31は、以上の手順により得られた画面内コピー予測のブロックシフトベクトル(Vx,Vy)と、このベクトルが予測ベクトルとの差分になっているか否かを表すベクトル予測フラグis_pred_flagを画面内コピー予測パラメータとして出力する。
画面内コピー予測部35の参照ブロック座標決定部180は、可変長復号部31により復号された画面内コピー予測パラメータを受けると、その画面内コピー予測パラメータに含まれているベクトル予測フラグから、その画面内コピー予測パラメータに含まれているブロックシフトベクトルに対してベクトルの予測が行われているのかどうかを認識する。
例えば、ベクトル予測フラグが“0”であれば、ベクトルの予測が行われず、画面内コピー予測におけるベクトルがそのまま符号化されていると認識し、ベクトル予測フラグが“1”であれば、ベクトルの予測が行われて、画面内コピー予測におけるベクトルと予測ベクトルとの差分が符号化されていると認識して、画面内コピー予測パラメータに含まれているブロックシフトベクトルに対して予測ベクトルを加算したベクトルを生成する。
参照ブロック座標決定部81は、ブロックシフトベクトルから参照ブロックの位置を表す座標を特定する。
画面内コピー予測部35の予測画像生成部82は、参照ブロック座標決定部81が参照ブロックの位置を表す座標を特定すると、イントラ用メモリ38に格納されている局所復号画像から、その座標上の参照ブロックを読み出して、その参照ブロックを予測画像として加算部37に出力する。
以上で明らかなように、この実施の形態4によれば、画面内コピー予測部6が、可変長符号化部15によりブロックシフトベクトルが可変長符号化された際の符号量が最も少なくなるようにブロックシフトベクトルの予測を行うか否かを選択し、その選択結果を示すフラグと、予測を行う場合はブロックシフトベクトルとその予測ベクトルとの差分ベクトル、予測を行わない場合はブロックシフトベクトルそのものを出力して、これを可変長符号化部15が可変長符号化するように構成したので、上記実施の形態1よりも、ブロックシフトベクトルの符号化に必要な符号量を更に削減して、スクリーンコンテンツに対する符号化性能を高めることができる効果を奏する。
また、この実施の形態4によれば、上記効果を持つ画像符号化装置及び画像符号化方法が生成する符号化ビットストリームを正しく復号することができる画像復号装置及び画像復号方法が得られる効果を奏する。
実施の形態5.
上記実施の形態では、参照ブロックの位置を示すブロックシフトベクトルの符号量を削減して、符号化効率を高めることができる符号化装置、復号化装置について説明した。
本実施の形態5では、上記符号化装置、上記復号化装置を利用した実施例について説明する。
図69は、本実施の形態5におけるシステム構成の例を示す説明図である。図69において、制御装置(101A〜101C)は、例えば、FAシステムにおけるシーケンサやプラントシステムにおける制御装置に相当するものである。端末装置(102A〜102C)は、例えば、FAシステムにおけるGOT(Graphic Operation Terminal)やプラントシステムにおけるOPS(Operator Station)に相当するものである。保守員端末103は、例えば、FAシステムやプラントシステムにおける保守員が現場等からアクセスするのに使用するスマートフォンやタブレット等の端末である。
図69のようなシステムにおいて、例えば、端末装置(102A〜102C)から制御装置(101A〜101C)の検証作業を行った検証画面の情報を記録して残しておきたいという要求がある。あるいは、保守現場にいる保守員が、保守員端末103を使用して端末装置(102A〜102C)からの情報に基づいて作業を行いたいという要求がある。更には、保守員端末103で撮影した動画にコメント等のグラフィックテキストを多重化して端末装置(102A〜102C)に送信したいといった要求がある。
静止画データやテキストデータのようなデータ量のそれほど多くないデータであれば、従来技術として、ネットワーク上の離れたコンピュータを遠隔操作するためのプロトコルとしてVNC(Virtual Network Computing)があり、このような通信プロトコルを使用してデータの送受信を行うことができた。しかし、上記のような検証画面の情報、端末装置(102A〜102C)からの情報等に動画データが含まれている場合や、グラフィックテキストが多重化された動画等のデータ処理を行う場合は、VNCのような通信プロトコルでは対応できないといった問題があった。
このため、上記のような動画情報を含むデータを処理する場合には、より圧縮効率の高い符号化復号化技術が必要となる。そこで、本実施の形態5では、上記実施の形態で説明した符号化復号化技術を用いて、上記のような動画情報を含むデータ処理を実施する場合について説明する。
例えば、端末装置(102A〜102C)から制御装置(101A〜101C)の検証作業を行った検証画面の大容量の情報を記録する場合、端末装置(102A〜102C)は、上記実施の形態で説明した符号化方法を用いて、検証画面の情報を符号化して、記憶装置(図示しない)に保存する。
また、保守現場にいる保守員が、保守員端末103を使用して端末装置(102A〜102C)からの動画像を含む大容量の情報に基づいて作業を行う場合、端末装置(102A〜102C)は、上記実施の形態で説明した符号化方法を用いて、保守員端末103に表示させる情報を符号化した後、インターネットを介して保守員端末103に送信する。端末装置(102A〜102C)から符号化された情報を受け取った保守員端末103は、上記実施の形態で説明した復号化方法を用いて復号して表示する。
また、保守員端末103で撮影した動画像にコメント等のグラフィックテキストを多重化して端末装置(102A〜102C)に送信する場合、保守員端末103は、上記実施の形態で説明した符号化方法を用いて、撮影した動画像にコメント等のグラフィックテキストを多重化した情報を符号化した後、インターネットを介して端末装置(102A〜102C)に送信する。保守員端末103から符号化された情報を受け取った端末装置(102A〜102C)は、上記実施の形態で説明した復号化方法を用いて復号して表示する。ここで、動画像を含む大容量データであるために、上記実施の形態で説明した符号化復号化方法を用いることが有効であるが、更に動画像にグラフィックテキストを多重化すると、その境界部分での画質の劣化が発生するため、本実施の形態5で説明した符号化復号化技術のベースとなっている非特許文献1に記載したH.265の技術が有効となる。
次に各装置の構成と動作について説明する。
図70は、端末装置102Aの内部構成を示す一例である。
端末装置102Aは、受信部201と、演算処理部202、表示処理部203と、符号化部204と、データ保存部205と、記録部206と、要求処理部207と、配信部208と、送信部209と、閲覧処理部210と、復号部211とを備える。
受信部201は、制御ネットワークを介して制御装置から出力されたデータを受信する。
受信部201は、受信したデータ(のヘッダー部)を解析する。
なお、本実施の形態5における端末装置102Aは、制御装置(101A〜101C)が出力するデータ、保守員端末103が出力するデータ、保守員端末103が出力する要求指示の三種類を受信する場合について説明を行うが、これら以外のデータを受信し、対応する処理を行うようにしてもよい。
受信部201は、受信したデータを解析した結果、(1)制御装置(101A〜101C)が出力する符号化されていないデータで有った場合、演算処理部202へ受信したデータを渡し、(2)保守員端末103が出力する符号化されたデータだった場合、記録部206へ受信したデータを渡し、(3)保守員端末103が出力する要求指示だった場合、要求処理部207へ受信したデータを渡す。
演算処理部202は、受信部201からデータを受け取り、端末装置102Aの本来の動作を行う。例えば、制御装置101Aから出力されるデータをグラフに表示し、予め設定された値を超えた場合に警報を発令するプログラムであってもよい。
また、演算処理部202は、監視対象である制御装置(101A〜101C)を模した図を画面上に表示したり、制御装置(101A〜101C)が有する処理機能の相関関係を整理した機能系統図を表示したりするプログラムであってもよい。
また、制御装置(101A〜101C)から受け取ったデータが動画であった場合、この動画に対し、文字列やグラフや記号を重畳した映像を作成したりしても良い。
演算処理部202は、受信部201から受け取ったデータに対し、演算処理を行った結果を表示処理部203へ渡す。
記録部206は、受信部201で受信したデータが保守員端末103の出力する符号化されたデータであった場合、受信部201からデータを受け取る。
記録部206は、受信部201から受け取ったデータに、そのデータの固有情報を付加し、データ保存部205へ渡す。データの固有情報として、例えば、送られて来たデータがどの保守員端末から送られたものなのかを示す情報、データが送られてきた日時の情報を用いても良い。なお、受信部201から受け取ったデータが、どの保守員端末から送られてきたのかを示す情報、送られてきた日時を示す情報などは、データのヘッダー部を解析する事で確認しても良い。
要求処理部207は、受信部201で受信したデータが保守員端末103からの要求であった場合、受信部201からデータを受け取る。
受信部201から受け取ったデータは、例えば、どの保守員端末からの要求データかを一意に特定できる固有情報である。例えば、情報が出力された保守員端末もしくは制御装置のIP(Internet Protocol)アドレスと、情報が出力された時刻で指定しても良いし、そのIPアドレスから何番目に出力されたデータであっても良い。
また、現在、端末装置102Aの出力用デバイス(図示せず、例えばディスプレイ等)に出力されているリアルタイムな情報であっても良い。また、端末装置102Aの出力用デバイスに出力されているリアルタイムな情報は、画面全体でも良いし、画面の一部でも良い。画面の一部の場合、領域を指定しても良いし、自動的に取り決めてもよい。
配信部208は、要求処理部207からデータを特定するための条件を受け取り、データ保存部205から条件と一致するデータを取得し、取得したデータを送信部209へ渡す。
送信部209は、配信部208から渡されたデータを制御ネットワークに出力する。
送信部209が制御ネットワークに出力するデータは、ブロードキャスト送信することによって、誰でも受け取れるようにしてもよい。また、要求処理を発した保守員端末に対してのみ送信するようにしてもよい。
閲覧処理部210は、データ保存部205に格納されたデータを端末装置102Aの表示用デバイスに出力したい場合に用いる。
閲覧処理部210は、例えば、端末装置102Aを操作するためのユーザインターフェース(図示せず、例えばキーボードやタッチパネル等)を用いて、データ保存部205に保存されているデータを選択する。
閲覧処理部210は、選択されたデータをデータ保存部205から読み出し、復号部211へ出力する。
復号部211は、上記実施の形態で述べた復号化装置と同等の機能を有する。
閲覧処理部210は、復号部211で復号されたデータを受け取り、表示処理部203へ渡す。
表示処理部203は、閲覧処理部210から受け取ったデータを表示用デバイス(図示せず、例えばディスプレイ等)に表示する。
また、表示処理部203は、演算処理部202から受け取ったデータを表示用デバイスに表示する。
表示用デバイスは、例えば、液晶画面やモニタ等を用いてもよい。
また、表示処理部203は、表示用デバイスに表示するために用いたデータを符号化部204で符号化する。
なお、表示処理部203は、演算処理部202からデータを受け取って表示用デバイスに表示を行った場合、演算処理部202から受け取ったデータを符号化部204へ出力し、符号化する。
符号化部204は、上記実施の形態で述べた符号化装置と同等の機能を有する。
表示処理部203は、符号化部204で符号化したデータをデータ保存部205に保存する。
なお、本実施の形態5では、データ保存部205に保存されるデータは全て符号化されたデータであるようにしたが、データに符号化されているか否かを示す情報を付け足すことにより、符号化されているデータと符号化されていないデータを混在させてもよい。
なお、データ保存部205に、符号化されているデータと符号化されていないデータを混在させる場合には、符号化されていないデータを送信する際には、配信部208または送信部209から符号化部204を呼び出し、符号化したデータを送信できるようにする。
なお、端末装置は複数でもよい。また、符号化部204、復号部211は、表示処理部203、閲覧処理部210を介して動作しているが、表示処理部203の後や閲覧処理部210の後で動作するようにしてもよい。
図71は、保守員端末103の内部構成を示す一例である。
なお、図71における保守員端末103は、端末装置102Aとやりとりをする場合を例に説明を行う。
保守員端末103は、受信部301と、復号部211と、表示処理部302と、データ取得部303と、送信部304と、符号化部204を備える。
受信部301は、制御ネットワークを介し、端末装置102Aが出力するデータを受け取る。
受信部301は、受け取ったデータを復号部211へ渡す。
なお、受信部301は、端末装置102A〜102Cが出力するデータ以外を受け取った場合には、データに応じた処理を行うその他の処理部(図示せず)にデータを渡す。
復号部211は、受信部301から受け取ったデータを復号し、受信部301に出力する。
表示処理部302は、受信部301から出力されたデータを表示用デバイス(図示せず、例えばディスプレイ等)に表示する。
データ取得部303は、センサやカメラ(静止画像用あるいは動画用)である。
データ取得部303は、センサからの測定データやカメラからの静止画あるいは動画を送信部304に出力する。
送信部304は、データ取得303から出力されたデータを符号化部204へ出力する。
符号化部204は、上記実施の形態で述べた符号化装置と同等の機能を有する。
送信部304は、符号化部204で符号化されたデータを制御ネットワークに出力する。
送信部304が符号化されたデータを送信する相手は、保守員端末103のユーザインタフェース(図示せず)を用いてどの端末装置なのかを設定できるようにしても良いし、予め固定された送り先であっても良いし、相手先を指定せず、ブロードキャストするように設定しても良い。
なお、保守員端末は複数でもよい。また、符号化部204、復号部211は、送信部304、受信部301を介して動作しているが、送信部304前や受信部301の後で動作するようにしてもよい。
また、図72は、本実施の形態5における別のシステム構成の例を示す説明図である。図72において、情報装置(104A〜104C)は、例えば、テレマティクスにおける様々な情報を持つ情報装置であり、この情報装置は車両に搭載されるものである。データ管理センター105は、例えば、テレマティクスにおける情報装置を搭載した車両からの情報を集める。情報装置(104A〜104C)とデータ管理センター105との間は、ネットワークで接続され、このネットワークは有線でも無線でもよい。
図72のようなシステムにおいて、例えば、情報装置(104A〜104C)が搭載された車両に関する情報や、車両に搭載されるカメラ等の動画あるいは静止画を用いた交通渋滞や事故の情報を、データ管理センターに集約したいという要求がある。あるいは、情報装置を搭載した車両が、データ管理センターから交通渋滞、事故が発生した過去の状況等をデータ管理サーバーから受け取りたいといった要求(フィードバック)がある。
静止画データやテキストデータのようなデータ量のそれほど多くないデータであれば、従来技術として、ネットワーク上の離れたコンピュータを遠隔操作するためのプロトコルとしてVNC(Virtual Network Computing)があり、このような通信プロトコルを使用してデータの送受信を行うことができた。しかし、上記のような情報装置(104A〜104C)からの情報等に動画データが含まれている場合や、グラフィックテキストが多重化された動画等のデータ処理を行う場合は、VNCのような通信プロトコルでは対応できないといった問題があった。
このため、上記のような動画情報を含むデータを処理する場合には、より圧縮効率の高い符号化復号化技術が必要となる。そこで、本実施の形態5では、上記実施の形態で説明した符号化復号化技術を用いて、上記のような動画情報を含むデータ処理を実施する場合について説明する。
例えば、情報装置(104A〜104C)で撮影され、データ管理センター105に集約された動画像に道路案内、交通情報等のグラフィックテキストを多重化して、情報装置(104A〜104C)に送信する場合、データ管理センター105は、上記実施の形態で説明した符号化方法を用いて、集約した動画像に道路案内、交通情報等のグラフィックテキストを多重化した情報を符号化した後、インターネットを介して情報装置(104A〜104C)に送信する。
情報装置(104A〜104C)から符号化された情報を受け取ったデータ管理センター105は、上記実施の形態で説明した復号化方法を用いて復号してデータの解析、分類、整理などの処理を行う。
ここで用いる情報は、動画像を含む大容量データであるために、符号化復号化方法を用いることが有効であるが、更に動画像にグラフィックテキストを多重化すると、その境界部分での画質の劣化が発生するため、本実施の形態5で説明した符号化復号化技術のベースとなっている非特許文献1に記載したH.265の技術が有効となる。
図73は、データ管理センター105の内部構成を示す一例である。
データ管理センター105は、受信部201と、記録部206と、データ保存部205と、データ生成部501と、復号部211と、配信部208と、送信部209と、符号化部204を備える。
受信部201は、ネットワークを介し、車両に搭載される情報端末が出力するデータを受け取る。なお、ネットワークは有線でも無線でもよい。
受信部201は、受け取ったデータにデータの固有情報を付加し、記録部206に出力する。
固有情報は、データを送ってきた情報端末を一意に特定できる固有IDもしくはIPアドレスであってよい。また、固有情報として、データが送られてきた時間、もしくはその情報端末から送られたデータの通し番号を用いてもよい。
記録部206は、受信部301から出力されたデータをデータ保存部205に出力する。
本実施の形態5では、受信部201で受け取ったデータに固有情報のみを付加したものをデータ保存部205に保存するような構成を用いて説明したが、情報端末に配信し易いデータに予めデータを加工したり、組み替えたりしておいてもよい。
データ生成部501は、データ保存部205に保存されたデータを参照し(車両に搭載されている)情報端末に向けて配信するためのデータ生成を行う。
データ生成部501は、データ保存部205から読み出したデータを復号部211に出力する。
復号部211は、上記実施の形態で述べた復号化装置と同等の機能を有する。
復号部211は、データ生成部501から受け取ったデータを復号し、データ生成部501に出力する。
データ生成部501は、復号されたデータを用いて、配信用データを生成し、符号化部204に出力する。
送信部209は、配信部208から渡された配信用データを符号化部204に出力する。
符号化部204は、上記実施の形態で述べた符号化装置と同等の機能を有する。
符号化部204は、送信部209から渡された配信用データを符号化し、送信部209に出力する。
送信部209は、符号化された配信用データを送信する。送信する方法は相手を指定して良いし、ブロードキャストで送信しても良い。
なお、データ管理センターは複数でもよい。また、符号化部204は、送信部209を介して動作しているが、送信部209の前で動作するようにしてもよい。
図74は、情報装置104Aの内部構成を示す一例である。
情報装置104Aは、受信部201と、復号部211と、表示処理部302と、データ取得部303と、送信部209と符号化部204を備える。
受信部201は、ネットワークを介し、データ管理センター105が出力するデータを受け取る。
受信部201は、受け取ったデータを復号部211に出力する。
なお、受信部201は、データ管理センター105が出力するデータ以外を受け取った場合には、データに応じた処理を行うその他の処理部(図示せず)にデータを渡す。
復号部211は、受信部301から受け取ったデータを復号し、受信部301に出力する。
表示処理部302は、受信部201から渡されたデータを表示用デバイス(図示せず、例えばディスプレイ等)に表示する。
データ取得部303は、センサやカメラ(静止画像用あるいは動画用)である。
データ取得部303は、センサからの測定データやカメラからの静止画あるいは動画を送信部209に出力する。
送信部209は、データ取得部303から出力されたデータを符号化部204に出力する。
符号化部204は、上記実施の形態で述べた符号化装置と同等の機能を有する。
送信部209は、符号化部204で符号化されたデータをデータ管理センター105に送信する。
送信部209が符号化されたデータを送信する相手として、情報装置700のユーザインタフェース(図示せず)を用いてどのデータ管理センターなのかを設定できるようにしても良いし、予め固定された送り先であっても良いし、相手先を指定せず、ブロードキャストするように設定しても良い。
なお、情報装置は複数でもよい。また、符号化部204、復号部211は、送信部304、受信部301等を介して動作しているが、送信部304の前や受信部301の後で動作するようにしてもよい。
また、本実施の形態5では、制御装置(101A〜101C)から端末装置(102A〜102C)に送付されるデータが符号化されていない場合について説明したが、制御装置(101A〜101C)が上記実施の形態で述べた符号化装置を備え、符号化したデータを送付し、端末装置(102A〜102C)も符号化されたデータを受信するようにしてもよい。
以上説明したように、この実施の形態5によれば、符号化部204および復号部211を用いることにより、参照ブロックの位置を示すブロックシフトベクトルの符号量を削減して、符号化効率を高めることができ、動画情報を含むデータを処理することができる。
また、符号化部204および復号部211を用いることにより、VNC等のネットワーク上の離れたコンピュータを遠隔操作するためのプロトコルを用いずに済むため、セキュリティを向上することができる。
なお、本願発明はその発明の範囲内において、各実施の形態の自由な組み合わせ、あるいは各実施の形態の任意の構成要素の変形、もしくは各実施の形態において任意の構成要素の省略が可能である。