本発明は、動画像の符号化に関する。
動画像の符号化方式としてMPEG-2 (ISO/IEC 13818)が蓄積、通信、放送などの分野で普及している。近年は、MPEG系の新しい符号化方式として、H.264/MPEG-4 AVC (ISO/IEC 14496-10)が標準化され、その普及が期待されている(以下、H.264)。
H.264の符号化装置は、動画像のフレームをフレーム内符号化する場合のイントラ予測の方式として、様々な予測モードを用意し、複数の予測モードの中から最適な予測モードを選ぶことで、従来よりも高い符号化効率を得ることができる。以下では、予測モードの種類と、予測画像の生成方法について説明する。
予測画像は、画面内の既に符号化済みのデータから、局所的に復号した画像を用いて生成する。符号化は、画面の左上から右下に向かって、ブロック単位で行うので、対象ブロックの予測画像生成に利用可能な画素は、対象ブロックの左側や上側などのブロックの復号画像になる。
図1は予測画像を生成するために用いられる隣接ブロックを示す図で、斜線部が予測画像の生成対象のブロック、ブロックA、B、C、Dが局所復号した参照可能なブロックの画像である。
図2はH.264の4×4画素ブロックの符号化における、予測の方向ごとの九種類の予測モードを示す図である。予測モードごとに、どの参照画素を用いて予測画像を生成するのかが定義されている。
図3は各予測モードと予測画素値の関係を説明する図で、画素a〜pは、予測画像として生成される各画素の位置を示し、画素A〜Mは、予測画像の生成に利用する参照画素を示す。
予測モード0は垂直(vertical)予測で、予測画像の各画素を以下のように生成する。
a, e, i, m:A
b, f, j, n:B
c, g, k, o:C
d, h, l, p:D …(1)
予測モード1は水平(horizontal)予測で、予測画像の各画素を以下のように生成する。
a, b, c, d:I
e, f, g, h:J
i, j, k, l:K
m, n, o, p:L …(2)
予測モード2は、図2には示されないが、DC成分の予測で、予測画像の各画素を以下のように生成する。なお「≫」はビットシフトを表し、「≫ x」はxビット右シフトする、言い換えれば1/2xにすることを意味する。
a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p:(A+B+C+D+I+J+K+L+4) ≫ 3 …(3)
予測モード3は斜め左下(diagonal_down_left)予測で、予測画像の各画素を以下のように生成する。
a:(A+2B+C+2) ≫ 2
b, e:(B+2C+D+2) ≫ 2
c, f, i:(C+2D+E+2) ≫ 2
d, g, j, m:(D+2E+F+2) ≫ 2
h, k, n:(E+2F+G+2) ≫ 2
l, o:(F+2G+H+2) ≫ 2
p:(G+3H+2) ≫ 2 …(4)
予測モード4は斜め右下(diagonal_down_right)予測で、予測画像の各画素を以下のように生成する。
m:(J+2K+L+2) ≫ 2
i, n:(I+2J+K+2) ≫ 2
e, j, o:(M+2I+J+2) ≫ 2
a, f, k, p:(A+2M+I+2) ≫ 2
b, g, l:(M+2A+B+2) ≫ 2
c, h:(A+2B+C+2) ≫ 2
d:(B+2C+D+2) ≫ 2 …(5)
予測モード5は斜めやや右下(diagonal_vertical_right)予測で、予測画像の各画素を以下のように生成する。
a, j:(M+A+1) ≫ 1
b, k:(A+B+1) ≫ 1
c, l:(B+C+1) ≫ 1
d:(C+D+1) ≫ 1
e, n:(I+2M+A+2) ≫ 2
f, o:(M+2A+B+2) ≫ 2
g, p:(A+2B+C+2) ≫ 2
h:(B+2C+D+2) ≫ 2
i:(M+2I+J+2) ≫ 2
m:(I+2J+K+2) ≫ 2 …(6)
予測モード6は水平やや下(horizontal_down)予測で、予測画像の各画素を以下のように生成する。
a, g:(M+I+1) ≫ 1
b, h:(I+2M+A+2) ≫ 2
c:(M+2A+B+2) ≫ 2
d:(A+2B+C+2) ≫ 2
e, k:(I+J+1) ≫ 1
f, l:(M+2I+J+2) ≫ 2
i, o:(J+K+1) ≫ 1
j, p:(I+2J+K+2) ≫ 2
m:(K+L+1) ≫ 1
n:(J+2K+L+2) ≫ 2 …(7)
予測モード7は斜めやや左下(diagonal_vertical_left)予測で、予測画像の各画素を以下のように生成する。
a:(A+B+1) ≫ 1
b, i:(B+C+1) ≫ 1
c, j:(C+D+1) ≫ 1
d, k:(D+E+1) ≫ 1
l:(E+F+1) ≫ 1
e:(A+2B+C+2) ≫ 2
f, m:(B+2C+D+2) ≫ 2
g, n:(C+2D+E+2) ≫ 2
h, o:(D+2E+F+2) ≫ 2
p:(E+2F+G+2) ≫ 2 …(8)
予測モード8は、水平やや上(horizontal_up)予測で、予測画像の各画素を以下のように生成する。
a:(I+J+1) ≫ 1
b:(I+2J+K+2) ≫ 2
c, e:(J+K+1) ≫ 1
d, f:(J+2K+L+2) ≫ 2
g, i:(K+L+1) ≫ 1
h, j:(K+3L+2) ≫ 2
k, l, m, n, o, p:L …(9)
このように、4×4画素ブロックの予測モードは九種類ある。九種類すべての予測モードについて予測画像を生成し、評価値を求め、その中から最適な予測モードを決定するには、演算量が多く、処理負担が大きい問題がある。
処理負荷を緩和する方法として、特許文献1は次の方法を開示する。つまり、九種類のモードを、水平方向に相関があるものと、垂直方向に相関があるものの二種類に分類する。そして、予測画像の生成対象ブロックがどちらに属するかを、水平方向の差分和と垂直方向の差分和の比較から検出する。しかし、この方法においても、水平・垂直の何れを選択しても、さらに、六種類の予測モードについて予測画像を生成して、最適な予測モードを決定することになる。つまり、演算量を充分に削減することはできない。
本発明は、フレーム内符号化の予測モードの決定に必要な演算量を削減することを目的とする。
本発明は、前記の目的を達成する一手段として、以下の構成を備える。
本発明にかかる動画像のフレームをブロック単位に符号化する画像処理は、前記生成手段が、符号化対象のブロックをフレーム内符号化する場合の複数の予測モードそれぞれに対応する複数の予測画像を生成し、前記計算手段が、前記複数の予測モードごとに、前記符号化対象のブロックと前記予測モードに対応する予測画像から前記予測モードに応じた位置の画素の値を取得して、前記取得した画素の値の間の差分を示す評価値を計算し、前記設定手段が、前記複数の予測モードそれぞれに対応する評価値に基づき、前記符号化対象のブロックをフレーム内符号化する場合の予測モードを設定することを特徴とする。
また、前記第一の生成手段が、符号化対象のブロックをフレーム内符号化する場合の複数の予測モードそれぞれに対応する複数の予測画像の、各予測モードに応じた位置の画素を生成し、前記計算手段が、前記複数の予測モードごとに、前記符号化対象のブロックから前記予測モードに応じた位置の画素の値を取得して、前記予測モードに応じて生成した画素の値と前記予測モードに応じて取得した画素の値の間の差分を示す評価値を計算し、前記設定手段が、前記複数の予測モードそれぞれに対応する評価値に基づき、前記符号化対象のブロックをフレーム内符号化する場合の予測モードを設定し、前記第二の生成手段が、前記設定された予測モードの予測画像を生成することを特徴とする。
また、前記取得手段が、符号化対象のブロックに隣接する複数の符号化済みブロックの予測モード情報を取得し、前記第一の生成手段が、前記予測モード情報が示す予測モードによって、前記符号化対象のブロックをフレーム内符号化する場合の第一の予測画像を生成し、前記第一の計算手段が、前記符号化対象のブロックと前記第一の予測画像の対応する画素の値の間の差分を示す第一の評価値を計算し、前記選択手段が、前記第一の評価値に基づき、前記複数の符号化済みブロックの予測モードの何れかを選択し、前記第二の生成手段が、前記選択された予測モードにおける画素の予測方向に隣接する予測方向をもつ予測モードによって、前記符号化対象のブロックをフレーム内符号化する場合の第二の予測画像を生成し、前記第二の計算手段が、前記符号化対象のブロックと前記第二の予測画像の対応する画素の値の間の差分を示す第二の評価値を計算し、前記設定手段が、前記第一および第二の評価値に基づき、前記符号化対象のブロックをフレーム内符号化する場合の予測モードを設定することを特徴とする。
また、前記取得手段が、符号化対象のブロックの所定位置の画素の値を取得し、前記設定手段が、前記所定位置の画素の値の組み合わせに基づき、前記符号化ブロックをフレーム内符号化する場合の予測モードを設定することを特徴とする。
また、前記取得手段が、符号化対象のブロックの所定位置の画素の値を取得し、前記選択手段が、前記所定位置の画素の値の組み合わせに基づき、前記符号化ブロックをフレーム内符号化する場合の複数の予測モードを選択し、前記生成手段が、前記複数の予測モードそれぞれに対応する複数の予測画像を生成し、前記計算手段が、前記複数の予測モードごとに、前記符号化対象のブロックと前記予測モードに対応する予測画像の、対応する画素の値の間の差分を示す評価値を計算し、前記設定手段が、前記複数の予測モードそれぞれに対応する評価値に基づき、前記符号化対象のブロックをフレーム内符号化する場合の予測モードを設定することを特徴とする。
本発明によれば、フレーム内符号化の予測モードの決定に必要な演算量を削減することができる。
以下、本発明にかかる実施例の画像処理を図面を参照して詳細に説明する。なお、以下では、4×4画素のブロックを説明するが、16×16画素のブロックや8×8画素のブロックにおいても同様に処理することができる。
[装置の構成]
図4は実施例の符号化装置の構成例を示すブロック図である。符号化装置は、符号化ブロックに分割された動画像のフレームを、ブロック単位にH.264方式で符号化する。
減算器1001は、符号化対象のフレーム(以下、現フレーム)の符号化対象のブロック(以下、現ブロック)の画像と、予測画像の差分を計算して、差分画像を出力する。直交変換(DCT)部1002は、差分画像を直交変換する。量子化部1003は、直交変換係数を量子化する。可変長符号化部1004は、ハフマン符号化や算術符号化を使用して、量子化された直交変換係数から符号を生成する。
予測画像の生成には、既に符号化したデータを局所的に復号した画像(以下、局所復号画像)を用いる。逆量子化部1006は、量子化された直交変換係数を逆量子化する。逆DCT部1007は、逆量子化によって得られた直交変換係数を逆DCTして、局所復号画像を生成する。加算器1017は、フレーム間予測符号化の場合、逆DCT部1007が出力する画像と、予測画像を加算する。ブロック歪除去部1011は、ブロック歪と呼ばれる量子化ステップが大きい場合に発生し易い視覚的な劣化を抑制する。上記の復号処理は、ローカルデコードとも呼ばれる。フレームメモリ(FM)1013は、ローカルデコードした画像を一時記憶する。
イントラ予測部1010は、フレーム内符号化のイントラ予測用に、現ブロックの画像と、FM1013から現ブロックの近傍に位置する局所復号画像を入力して、予測画像を生成する。動き補償部1012は、フレーム間予測符号化用に、現ブロックの画像と、FM1013から現フレーム近傍のフレームのローカルデコード画像を入力し、ブロック間におけるオブジェクトの相対的な動き量(以下、動きベクトル)を算出し、予測画像を生成する。
可変長符号化部1004は、符号化を行う際、イントラ予測におけるモード判定や、フレーム間予測における動きベクトルなどの付加情報も併せて符号化する。バッファ部1014は、発生する符号量を監視し、その状態をレート制御部1015に出力するとともに、所定の伝送レートで符号を出力する。レート制御部1015は、発生符号量>目標値の場合は粗い量子化を行う量子化ステップを量子化部1003に設定し、発生符号量<目標値の場合は細かい量子化を行う量子化ステップを量子化部1003に設定して、発生符号量を制御する。
モード判定部1005は、現フレームをフレーム内符号化するか、フレーム間予測符号化するかを判定し、判定結果に応じてスイッチ1008と1009を制御する。フレーム内符号化するイントラピクチャ(Iピクチャ)の場合、スイッチ1009を介してイントラ予測部1010の予測画像が減算器1001に入力される。また、スイッチ1008はオープンである。一方、フレーム間予測符号化する予測ピクチャ(Pピクチャ)または双方向予測ピクチャ(Bピクチャ)の場合、スイッチ1009を介して、動き補償部1012の予測画像が減算器1001に入力される。また、スイッチ1008を介して、動き補償部1012の予測画像が加算器1017に入力される。
このように、H.264方式は、フレーム内符号化およびフレーム間予測符号化ともに、現ブロックの画像と予測画像のブロックの画像の差分画像を符号化することになる。
図11は符号化装置をコンピュータ装置2000で実現する例を説明するブロック図である。
CPU 2002は、RAM 2004をワークメモリとして、ROM 2003やハードディスクドライブ(HDD) 2008に格納されたオペレーティングシステム(OS)や各種プログラムを実行する。そして、システムバス2001を介して後述する各種構成を制御するとともに、実施例の符号化装置としての機能を実現するプログラムを実行することにより、図4に示す符号化装置として機能する。
ネットワークインタフェイス(I/F) 2005は、ネットワーク2010とのインタフェイスである。入力装置2006は、例えばマウスやキーボード、あるいは、ビデオカメラなどの映像入力機器である。出力装置2007は、モニタや各種記録メディアに映像を記録する記録装置である。
コンピュータ装置2000は、入力装置2006から入力されるビデオデータ、または、HDD 2008に格納されたビデオデータを符号化して、出力装置2007に出力したり、ネットワーク2010を介してサーバやクライアントに伝送する。
[イントラ予測部]
図5はイントラ予測部1010の構成例を示すブロック図である。
予測画像生成部201〜209はそれぞれ、局所復号画像から予測モード0〜8の予測画像を生成する。つまり、九種類の予測モードに対応する九つの予測画像(以下、予測画像0〜8)を生成する。
画素選択部211〜219はそれぞれ、現ブロックの画素(入力画素)と、予測画像0〜8の対応する画素(予測画素)の選択を行う。SAD算出部221〜229はそれぞれ、入力画素と選択画素の差分絶対値和(sum of absolute difference: SAD)を計算し、対応する画素間のSADの総和または平均値を評価値とする。
評価値は、現ブロックの画像と予測画像の間の誤差を示す値であればどのようなものでもよく、例えば、入力画素と予測画素の差分二乗和でもよい。さらに精度を高めるには、差分値を直交変換した変換係数で比較したり、変換係数を量子化した場合の発生符号量を予測値で比較してもよい。
図6は画素選択部211〜219が選択する画素の位置を示す図である。矢印は予測の方向を示す。
予測モード0用の画素選択部211は、図6(a)に示す画素(図3に示す画素m、n、o、p)を選択する。予測モード1用の画素選択部212は、図6(b)に示す画素(図3に示す画素d、h、l、p)を選択する。予測モード2用の画素選択部213は、図6(c)に示す画素(図3に示す画素a、d、m、p)を選択する。予測モード3用の画素選択部214は、図6(d)に示す画素(図3に示す画素i、m、n、o)を選択する。予測モード4用の画素選択部215は、図6(e)に示す画素(図3に示す画素h、l、n、o)を選択する。予測モード5用の画素選択部216は、図6(f)に示す画素(図3に示す画素h、n、o、p)を選択する。予測モード6用の画素選択部217は、図6(g)に示す画素(図3に示す画素h、l、n、p)を選択する。予測モード7用の画素選択部218は、図6(h)に示す画素(図3に示す画素e、m、n、o)を選択する。予測モード8用の画素選択部219は、図6(i)に示す画素(図3に示す画素b、c、d、h)を選択する。
つまり、画素選択部211〜219はそれぞれ四画素を選択して評価値を計算するから、全画素を選択して評価値を計算する場合に比べて、各SAD算出部221〜229の計算量は1/4に削減される。
なお、画素選択部211〜219が選択する画素の数は図6に示すように四つずつに制限されるわけではない。評価精度は選択する画素の数に比例する。また、選択画素の位置も制約はないが、予測モードの予測方向に対して、予測画像の生成に用いる画素(図6に丸印○で示す画素)からより遠い位置にある画素を選択する方が、評価精度が高くなると考えられる。そこで、図6には、最も遠い位置にある画素を選択する例を示した。
また、すべての予測モードにおいて選択する画素の数を四つずつとしたが、予測モードごとに変えても構わない。ただし、予測モードによって選択する画素の数が異なる場合は、SADを選択画素数で割り、一画素当りの平均値を求めるか、SADに選択画素数に応じた重み係数を乗じるなど、評価値の重みを一致させる処置を行う。
予測モード判定部210は、SAD算出部221〜229から九つの評価値を入力し、評価値が最小の予測モードを判定し、判定結果を出力する。セレクタ220は、予測モード判定部210の判定結果に応じて、予測画像生成部201〜209の予測画像の何れかを選択的に出力する。
図7はイントラ予測部1010の動作を説明するフローチャートである。
イントラ予測部1010は、局所復号画像を入力し(S301)、現ブロックの画像を入力する(S302)。そして、カウンタiを0に初期設定する(S303)。
次に、イントラ予測部1010は、予測モードiに対応する予測画像生成部により予測画像を生成する(S304)。そして、予測モードiに対応する画素選択部により、予測モードiにおける評価値計算用の画素を選択する(S305)。そして、予測モードiに対応するSAD算出部により、予測モードiにおける評価量を計算する(S306)。
次に、イントラ予測部1010は、i<8か否かを判定する(S307)。i<8の場合は、iをインクリメントし(S308)、処理をステップS304に戻す。また、i=8の場合は、全予測モードにおける評価値が求まったので、予測モード判定部210により、評価値が最小の予測モードを選択し(S309)、セレクタ220により、選択した予測モードの予測画像を選択的に出力する。
このように、本実施例は、まず、符号化対象のブロックをフレーム内符号化する場合の複数の予測モードそれぞれに対応する複数の予測画像を生成する。そして、符号化対象のブロックと複数の予測画像から各予測モードに応じた位置の画素の値を取得して、画素値の間の差分を示す評価値を計算する。そして、複数の予測モードそれぞれに対応する評価値に基づき、符号化対象のブロックの予測モードを設定することで、予測モードを決定するための演算量を削減することができる。
以下、本発明にかかる実施例2の画像処理を説明する。なお、実施例2において、実施例1と略同様の構成については、同一符号を付して、その詳細説明を省略する。
図8は実施例2のイントラ予測部1010の構成例を示すブロック図である。
画素選択部401〜409はそれぞれ、現ブロックの画素(入力画素)と、局所復号画像0〜8の対応する画素の選択を行う。予測画像生成部411〜419は、画素選択部401〜409が選択した画素位置のみの予測画像を局所復号画像から生成する。
予測モード0に対応する予測画像生成部411は次式により予測画像を生成する。
m:A
n:B
o:C
p:D …(10)
予測モード1に対応する予測画像生成部412は次式により予測画像を生成する。
d:I
h:J
l:K
p:L …(11)
予測モード2に対応する予測画像生成部413は次式により予測画像を生成する。
a, d, m, p:(A+B+C+D+I+J+K+L+4) ≫ 3 …(12)
予測モード3に対応する予測画像生成部414は次式により予測画像を生成する。
i:(C+2D+E+2) ≫ 2
m:(D+2E+F+2) ≫ 2
n:(E+2F+G+2) ≫ 2
o:(F+2G+H+2) ≫ 2 …(13)
予測モード4に対応する予測画像生成部415は次式により予測画像を生成する。
o:(M+2I+J+2) ≫ 2
n:(I+2J+K+2) ≫ 2
l:(M+2A+B+2) ≫ 2
h:(A+2B+C+2) ≫ 2 …(14)
予測モード5に対応する予測画像生成部416は次式により予測画像を生成する。
n:(I+2M+A+2) ≫ 2
o:(M+2A+B+2) ≫ 2
p:(A+2B+C+2) ≫ 2
h:(B+2C+D+2) ≫ 2 …(15)
予測モード6に対応する予測画像生成部417は次式により予測画像を生成する。
h:(I+2M+A+2) ≫ 2
l:(M+2I+J+2) ≫ 1
p:(I+2J+K+2) ≫ 2
n:(J+2K+L+2) ≫ 2 …(16)
予測モード7に対応する予測画像生成部418は次式により予測画像を生成する。
e:(A+2B+C+2) ≫ 2
m:(B+2C+D+2) ≫ 2
n:(C+2D+E+2) ≫ 2
o:(D+2E+F+2) ≫ 2 …(17)
予測モード8に対応する予測画像生成部414は次式により予測画像を生成する。
b:(I+2J+K+2) ≫ 2
c:(J+K+1) ≫ 1
d:(J+2K+L+2) ≫ 2
h:(K+3L+2) ≫ 2 …(18)
セレクタ220は、実施例1と同様に、予測モード判定部210の判定結果に従い、予測画像生成部411〜419の予測画像の何れかを選択的に出力する。ただし、選択された予測画像は、ブロックの全画素値をもつわけではない。
追加予測画像生成部430は、予測モード判定部210の判定結果に従い、画素選択部401?409が選択した画素位置以外の予測画像を局所復号画像から生成する。予測画像統合部431は、セレクタ220が出力する画像と、追加予測画像生成部430が出力する画像を合成して、完全な予測画像を出力する。
例えば、予測モード0が選択された場合、予測画像生成部411が生成した予測画像は、画素m、n、o、pの四つの画素値をもつだけである。従って、残る画素の画素値は追加予測画像生成部430が生成する。
図9は実施例2のイントラ予測部1010の動作を説明するフローチャートである。ただし、図7に示す処理と同様のステップには、図7と同じ符号を付し、その詳細説明を省略する。
イントラ予測部1010は、カウンタiを初期化(S303)した後、予測モードiに対応する画素選択部により、予測モードiにおける評価値計算用の画素を選択する(S504)。そして、予測モードiに対応する予測画像生成部により、画素選択部が選択した画素位置における予測画像を生成する(S505)。そして、予測モードiに対応するSAD算出部により、予測モードiにおける評価量を算出する(S506)。
イントラ予測部1010は、予測モード判定部210により、評価値が最小の予測モードを選択(S309)すると、追加予測画像生成部430により、選択した予測モードにおける不足分の予測画像を生成する(S510)。そして、予測画像統合部431により統合した予測画像を出力する(S511)。
図10はイントラ予測部1010の別の構成例を示すブロック図である。
図10に示すイントラ予測部1010は、最終の予測画像を出力する際、予測画像生成部433により、予測モードの選択結果に応じた予測画像を生成する。この構成によれば、予測画像生成部411〜419は予測画像を保持する必要はなく、セレクタ220と予測画像統合部431も不要になる。
図10に示す構成の場合、イントラ予測部1010の動作は、予測画像生成部433により、選択された予測モードに対応する予測画像を生成し(S510)、生成した予測画像を出力する(S511)ことになる。
このように、本実施例は、符号化対象のブロックをフレーム内符号化する場合の複数の予測モードそれぞれに対応する複数の予測画像について、各予測モードに応じた位置の画素を第一の生成手段によって生成する。そして、符号化対象のブロックと複数の予測画像の前記各予測モードに応じた位置の画素の値を取得して、画素値の間の差分を示す評価値を計算する。そして、複数の予測モードそれぞれに対応する評価値に基づき、符号化対象のブロックの予測モードを設定し、設定された予測モードの予測画像を第二の生成手段によって生成することで、予測モードを決定するための演算量を削減することができる。
以下、本発明にかかる実施例3の画像処理を説明する。なお、実施例3において、実施例1、2と略同様の構成については、同一符号を付して、その詳細説明を省略する。
図12は実施例3のイントラ予測部1010の構成例を示すブロック図である。
予測画像生成部1201と1202は、局所復号画像から予測画像を生成する。モード設定部1203は、予測画像生成部1201と1202が生成する予測画像の予測モードを設定する。
処理対象ブロックの予測モードは、処理対象画像データとともに符号化されるが、本実施例では、その後に処理する隣接ブロックの予測に利用するため、隣接ブロックの処理が終わるまで、一時的に記憶しておく。
モード設定部1203は、現ブロックの上ブロック(図1に示すブロックB)の予測モードを予測画像生成部1201に設定し、左ブロック(図1に示すブロックA)の予測モードを予測画像生成部1202に設定する。これは、現ブロックの予測モードと、現ブロックに隣接するブロック(以下、隣接ブロック)の予測モードの間の強い相関を利用するものである。勿論、図1に示す隣接ブロックCやDの予測モードを利用することも可能である。
SAD算出部1204(1205)は、現ブロックの画像と、予測画像生成部1201(1202)が生成した予測画像から評価値を計算する。予測モード判定部1206は、SAD算出部1204と1205が計算した評価値を比較して、評価値の小さい方の予測モードを選択して仮予測モードを示す信号(以下、仮予測信号)を出力する。
例えば、予測モード判定部1206は、予測画像生成部1201の予測モードを仮予測モードとする場合は‘0’の、予測画像生成部1202の予測モードを仮予測モードとする場合は‘1’の仮予測信号を出力する。セレクタ1207、1208はそれぞれ、仮予測信号が‘0’の場合は予測画像生成部1201とSAD算出部1204の出力を選択し、仮予測信号が‘1’の場合は予測画像生成部1202とSAD算出部1205の出力を選択する。
例えば、現ブロックの上ブロックが予測モード1、左ブロックが予測モード5とすると、予測画像生成部1201は予測モード1の予測画像を生成し、予測画像生成部1202は予測モード5の予測画像を生成する。従って、予測モード判定部1206は、予測モード1と5の評価値を判定して、発生符号量が小さい予測モードを仮予測モードにする。
モード設定部1212は、仮予測信号を入力して、仮予測モードに隣接する予測モードを予測画像生成部1210と予測画像生成部1211に設定する。仮予測モードに隣接する予測モードは、図2に示すように、仮予測モードの予測方向に隣接する予測方向をもつ予測モードのことである。
予測モード判定部1215は、SAD算出部1213と1214が計算した評価値、および、セレクタ1208を介してSAD算出部1204または1205が計算した評価値を入力する。そして、それら評価値を比較して、評価値が最小の予測モードを示す予測モード信号を出力する。
例えば、予測モード判定部1215は、次の予測モード信号を出力する。
予測画像生成部1210の予測モードを選択する場合:‘0’
予測画像生成部1211の予測モードを選択する場合:‘1’
予測画像生成部1201または1202の予測モードを選択する場合:‘2’
セレクタ1217は、予測モード信号に基づき、予測画像を選択的に出力する。
例えば、仮予測モードが1だとすると、モード設定部1212は、予測画像生成部1210に予測モード6を、予測画像生成部1211に予測モード8を設定する。従って、予測モード判定部1215は、予測モード1、6、8の評価値を判定して、発生符号量が小さい予測モードを選択する。例えば、予測モード8が選択された場合、セレクタ1217は、予測画像生成部1211の予測画像を選択的に出力する。
図13Aと13Bは実施例3のイントラ予測部1010の動作を説明するフローチャートである。
イントラ予測部1010は、局所復号画像を入力し(S1301)、現ブロックの画像を入力する(S1302)。
次に、イントラ予測部1010は、モード設定部1203により、上ブロックの予測モード情報を取得する(S1303)。そして、予測画像生成部1201により、上ブロックの予測モードによる予測画像を生成し(S1304)、SAD算出部1204により、上ブロックの予測モードにおける評価値を算出する(S1305)。
次に、イントラ予測部1010は、モード設定部1203により、左ブロックの予測モード情報を入力する(S1306)。そして、予測画像生成部1202により、左ブロックの予測モードによる予測画像を生成し(S1307)、SAD算出部1205により、左ブロックの予測モードにおける評価値を算出する(S1308)。
次に、イントラ予測部1010は、予測モード判定部1206により、評価値の小さい予測モードを仮予測モードとして選択する(S1309)。そして、モード設定部1212により、仮予測モードに隣接する予測モード(以下、隣接予測モード)を設定する(S1311)。
図14は仮予測モードと隣接予測モードの関係を示すテーブルを示す図で、モード設定部1212はこのテーブルに従い隣接予測モードを選択する。例えば、隣接予測モードは、選択予測モードの予測方向に対して、予測方向の傾きがプラス方向で最も近い予測モードと、予測方向の傾きがマイナス方向で最も近い予測モードである。図14には、隣接予測モードの数を最大二つとしているが、予測モード2(DC予測モード)を加えて、最大三つとしてもよい。また、予測モード2の隣接予測モードとして、比較的、発生頻度が高い予測モード0と1を設定してもよい。
次に、イントラ予測部1010は、隣接予測モードがあるか否かを判定する(S1312)。例えば、仮予測モードが2の場合、図14に示すテーブルには隣接予測モードはない。また、ステップS1303とS1306で入力した予測モードが8と1で、仮予測モードが8の場合も、予測モード1の処理は不要であるから、隣接予測モードはないと判定する。隣接予測モードがない場合、イントラ予測部1010は、予測モード判定部1215により、仮予測モードを最終の予測モードに決定し(S1313)、処理をステップ1318に進める。
一方、隣接予測モードがある場合、イントラ予測部1010は、予測画像生成部1210により、隣接予測モードの予測画像を生成し(S1314)、SAD算出部1213により、評価値として算出する(S1315)。そして、隣接予測モードが二つある場合は(S1316)、予測画像生成部1211とSAD算出部1214により、二つ目の評価値を算出する(S1314、S1315)。
次に、イントラ予測部1010は、予測モード判定部1215により、すべての評価値の中から最小の評価値をもつ予測モードを、現ブロックの予測モードに決定する(S1317)。そして、決定した予測モードの予測画像を選択的に出力する(S1318)。
このように、本実施例は、符号化対象のブロックに隣接する複数の符号化済みブロックの予測モード情報を取得する。そして、予測モード情報が示す予測モードによって、符号化対象のブロックをフレーム内符号化する場合の第一の予測画像を第一の生成手段によって生成する。そして、符号化対象のブロックと第一の予測画像の対応する画素値の間の差分を示す第一の評価値を第一の計算手段によって計算し、第一の評価値に基づき、予測モード情報が示す予測モードを選択する選択する。そして、選択された予測モードの予測方向に隣接する予測方向をもつ予測モードによって、符号化対象のブロックをフレーム内符号化する場合の第二の予測画像を第二の生成手段によって生成する。そして、符号化対象のブロックと第二の予測画像の対応する画素値の間の差分を示す第二の評価値を第二の計算手段によって計算する。そして、第一および第二の評価値に基づき、符号化対象のブロックの予測モードを設定することで、すべての予測モードの予測画像を生成し評価値を計算する処理を省くことができる。従って、予測モードを決定するための演算量を削減することができる。
以下、本発明にかかる実施例4の画像処理を説明する。なお、実施例4において、実施例1〜3と略同様の構成については、同一符号を付して、その詳細説明を省略する。
図15は実施例4のイントラ予測部1010の構成例を示すブロック図である。
実施例3と異なるのは、仮予測モードを選択した後、閾値処理により、隣接予測モードに関する判定を制御することである。
閾値判定部1220は、仮予測モードの評価値Etと所定の閾値thを比較する。そして、評価値が閾値未満(Et<th)の場合は、仮予測モードの予測画像を出力するように、セレクタ1218と1219を制御する。つまり、Et<thの場合、隣接予測モードに関する判定を行わずに、仮予測モードを最終の予測モードにすることになる。また、評価値が閾値以上(Et≧th)の場合は、セレクタ1218は仮予測モードの予測画像をセレクタ1217に供給し、セレクタ1219はセレクタ1217が選択した予測画像を出力するように切り替わる。従って、実施例3と同様に、仮予測モードと隣接予測モードの評価値に基づき、予測画像が出力される。
所定の閾値thは、入力画像に含まれるノイズ量を考慮して決定することが好ましい。ブロック内の画素値のレベルがノイズのレベルより小さい場合は、ノイズの影響が予測モードを決める際の支配的な要因となる。この場合、最小の評価値となる予測モードを選択しても、符号化効率の改善は僅かなものとなる。
図16は実施例4のイントラ予測部1010の動作を説明するフローチャートである。なお、処理の前半は図13Aと同じである。図13Aと13Bに示す実施例3の動作と異なるのは、仮予測モードを選択(S1309)した後、仮予測モードの評価値Etと閾値thを比較して(S1310)、比較結果に応じて処理をステップS1311またはS1313に分岐する点である。
このように、現ブロックの予測モードと隣接ブロックの予測モードの強い相関を利用して現ブロックの予測モードを仮設定した場合、その評価値が充分に小さければ、さらに隣接予測モードの評価を行わず、予測画像を生成し評価値を計算する処理を省く。従って、予測モードを決定するための演算量を削減することができる。
以下、本発明にかかる実施例5の画像処理を説明する。なお、実施例5において、実施例1〜4と略同様の構成については、同一符号を付して、その詳細説明を省略する。
図17は実施例5のイントラ予測部1010の構成例を示すブロック図である。
画素選択部2201は、現ブロックの画像から所定画素を選択し、その画素値を入力する。ここでは、図3に示す画素a、d、m、pの四画素を選択する例を説明する。予測モード設定部2202は、画素選択部2201が選択した画素の値から一意に予測モードを設定する。予測画像生成部2203は、局所復号画像から予測モード設定部202が設定した予測モードに対応する予測画像を生成し出力する。
図18は四画素の値の組み合わせと予測モードの関係を示すテーブルを示す図で、予測モード設定部2202はこのテーブルに従い予測モードを設定する。
例えば、画素a、d、m、pが同値の場合は、DC予測が最適と考えられ、予測モード2を設定するようにテーブルを記述する。また、画素aとmの値が類似し、画素dとpの値が類似する場合、垂直方向の相関が高いと考えられ、予測モード0を設定するようにテーブルを記述する。また、画素aとdの値が類似し、画素mとpの値が類似する場合、水平方向の相関が高いと考えられ、予測モード1を設定するようにテーブルを記述する。
このように、画素a、d、m、pの四値の組み合わせについて、設定すべき予測モードをテーブルに記述しておけば、各予測モードの予測画像の生成や、評価値の算出を行わずに、予測モードを決定することができる。
図19は実施例5のイントラ予測部1010の動作を説明するフローチャートである。
イントラ予測部1010は、局所復号画像を入力し(S2301)、現ブロックの画像を入力する(S2302)。そして、画素選択部2201により、所定画素の画素値を入力し(S2303)、図18に示すテーブルを利用する予測モード設定部2202により、所定画素の画素値の組み合わせに対応する予測モードを設定する(S2304)。そして、予測画像生成部2203により、予測モードに対応する予測画像を生成し出力する(S2305)。
画素選択部2201が選択する画素の位置や数に制約はない。たとえば、a、b、c、d、e、h、i、l、m、n、o、pの12画素を選ぶことも可能である。
このように、符号化対象のブロックの所定画素の値を取得し、所定画素の値の組み合わせに基づき、符号化ブロックをフレーム内符号化する場合の予測モードを設定することで、予測モードを決定するための演算量を削減することができる。
以下、本発明にかかる実施例6の画像処理を説明する。なお、実施例6において、実施例1〜5と略同様の構成については、同一符号を付して、その詳細説明を省略する。
実施例5と異なるのは、現ブロックの所定画素の値の組み合わせから選択される予測モード(以下、選択予測モード)と、選択予測モードに隣接する予測モードの三つの予測モードの評価値を計算する。そして、評価値の比較から、より精度よく予測モードを決定することである。
図20は実施例5のイントラ予測部1010の構成例を示すブロック図である。
予測モード設定部2202は、画素選択部2201が選択した四画素の値の組み合わせから予測モードを選択する。そして、選択予測モードと、選択予測モードの隣接予測モードをそれぞれ予測画像生成部2204、2205、2206に設定する。選択予測モードは、必ずしも九種類の予測モードすべての中から選ぶ必要はない。ここでは、選択予測モードの候補を予測モード0、1、3、4の四種類として説明する。
予測モード設定部2202は、ブロックの四隅の画素a、d、m、pにおける相互の差分絶対値|a-d|、|a-m|、|a-p|、|d-m|、|d-p|、|m-p|を計算して評価値とする。そして、どの評価値が最小かによって予測モードを選択する。
図21は最小の評価値と予測モードの関係を示すテーブルを示す図で、予測モード設定部2202はこのテーブルに従い予測モードを選択する。
図22は四つの画素値の相対的な大きさを模式的に示す図である。図22(a)の例は画素aとmの差分絶対値が最小であり、垂直方向の相関が強いと考えられ、予測モード0を選択する。図22(b)の例は画素aとdの差分絶対値が最小であり、水平方向の相関が強いと考えられ、仮の予測モード1を選択する。図22(c)の例は、画素dとmの差分絶対値が最小であり、右上から左下への斜め方向の相関が強いと考えられ、予測モード3を選択する。図22(d)の例は、画素aとpの差分絶対値が最小であり、左上から右下への斜め方向の相関が強いと考えられ、予測モード4を選択する。
図23は選択予測モードと隣接予測モードの関係を示すテーブルを示す図で、予測モード設定部2202はこのテーブルに従い隣接予測モードを設定する。なお、図23には、隣接予測モードは最大二種類とする例を示したが、DC予測を加え最大三種類にするなど、隣接予測モードの数に制限はない。
予測画像生成部2204〜2206はそれぞれ、局所復号画像から設定された予測モードの予測画像を生成する。SAD算出部2207〜2209はそれぞれ、現ブロックの画像と予測画像の差分絶対和を計算して評価値とする。予測モード判定部2210は、SAD算出部2207〜2209が算出した評価値から最小の評価値を判定し、最小の評価値に対応する予測モードを最終の予測モードに決定する。セレクタ2210は、予測モード判定部2211が決定した予測モードの予測画像を選択的に出力する。
図24は実施例6のイントラ予測部1010の動作を説明するフローチャートである。
イントラ予測部1010は、画素選択部2201により所定画素の画素値を入力(S2303)すると、予測モード設定部2202により、予測モードを選択する(S2604)。そして、予測画像生成部により、選択予測モードに対応する予測画像を生成する(S2605)。
次に、イントラ予測部1010は、予測モード設定部2202により、選択予測モードに隣接する予測モードを設定し(S2606)、予測画像生成部により、隣接予測モードに対応する予測画像を生成する(S2607)。そして、隣接予測モードに対応する予測画像の生成が終了すると(S2608)、SAD算出部により、各予測モードの評価値を計算する(S2609)。
評価値の計算が終了すると(S2610)、イントラ予測部1010は、予測モード判定部2211により、最小の評価値をもつ予測モードを決定し(S2611)、セレクタ2210により、決定した予測モードの予測画像を選択的に出力する(S2612)。
このように、現ブロックの所定画素の値の組み合わせから選択される予測モードと、選択予測モードに隣接する予測モードの三つの予測モードの評価値を計算して予測モードを決定する。従って、予測モードを決定するための演算量を削減するとともに、より精度よく予測モードを決定することができる。
[他の実施例]
なお、本発明は、複数の機器(例えばコンピュータ、インタフェイス機器、リーダ、プリンタなど)から構成されるシステムに適用しても、一つの機器からなる装置(例えば、複写機、ファクシミリ装置、制御装置など)に適用してもよい。
また、本発明の目的は、上記実施例の機能を実現するコンピュータプログラムを記録した記憶媒体をシステムまたは装置に供給し、そのシステムまたは装置のコンピュータ(CPUやMPU)が前記コンピュータプログラムを実行することでも達成される。この場合、記憶媒体から読み出されたソフトウェア自体が上記実施例の機能を実現することになり、そのコンピュータプログラムと、そのコンピュータプログラムを記憶する、コンピュータが読み取り可能な記憶媒体は本発明を構成する。
また、前記コンピュータプログラムの実行により上記機能が実現されるだけではない。つまり、そのコンピュータプログラムの指示により、コンピュータ上で稼働するオペレーティングシステム(OS)および/または第一、第二、第三、…のプログラムなどが実際の処理の一部または全部を行い、それによって上記機能が実現される場合も含む。
また、前記コンピュータプログラムがコンピュータに接続された機能拡張カードやユニットなどのデバイスのメモリに書き込まれていてもよい。つまり、そのコンピュータプログラムの指示により、第一、第二、第三、…のデバイスのCPUなどが実際の処理の一部または全部を行い、それによって上記機能が実現される場合も含む。
本発明を前記記憶媒体に適用する場合、その記憶媒体には、先に説明したフローチャートに対応または関連するコンピュータプログラムが格納される。
予測画像を生成するために用いられる隣接ブロックを示す図、
H.264の4×4画素ブロックの符号化における、予測の方向ごとの九種類の予測モードを示す図、
各予測モードと予測画素値の関係を説明する図、
実施例の符号化装置の構成例を示すブロック図、
イントラ予測部の構成例を示すブロック図、
画素選択部が選択する画素の位置を示す図、
イントラ予測部の動作を説明するフローチャート、
実施例2のイントラ予測部の構成例を示すブロック図、
実施例2のイントラ予測部の動作を説明するフローチャート、
イントラ予測部の別の構成例を示すブロック図、
符号化装置をコンピュータ装置で実現する例を説明するブロック図、
実施例3のイントラ予測部の構成例を示すブロック図、
実施例3のイントラ予測部の動作を説明するフローチャート、
実施例3のイントラ予測部の動作を説明するフローチャート、
仮予測モードと隣接予測モードの関係を示すテーブルを示す図、
実施例4のイントラ予測部の構成例を示すブロック図、
実施例4のイントラ予測部の動作を説明するフローチャート、
実施例5のイントラ予測部の構成例を示すブロック図、
四画素の値の組み合わせと予測モードの関係を示すテーブルを示す図、
実施例5のイントラ予測部の動作を説明するフローチャート、
実施例5のイントラ予測部の構成例を示すブロック図、
最小の評価値と予測モードの関係を示すテーブルを示す図、
四つの画素値の相対的な大きさを模式的に示す図、
選択予測モードと隣接予測モードの関係を示すテーブルを示す図、
実施例6のイントラ予測部の動作を説明するフローチャートである。