本発明の実施例1について説明する。図1は本実施例に係る動画像符号化装置の一例を示したものである。動画像符号化装置は、入力された原画像(101)を保持する入力画像メモリ(102)と、ブロック単位で画面内予測を行う画面内予測部(103)と、動き探索部(104)にて検出された動き量を基にブロック単位で画面間予測を行う画面間予測部(105)と、画像の性質に適した予測方法およびブロック形状を決定する予測方法・予測ブロック決定部(106)と、予測差分を生成するための減算部(107)と、予測差分に対して周波数変換を行う周波数変換部(108)および予測差分の性質に合った周波数変換のブロック形状を決定する周波数変換ブロック決定部(114)と、周波数変換後の係数値に対して量子化処理を行う量子化処理部(109)および可変長符号化処理を行うための可変長符号化部(110)と、符号化した予測差分に逆量子化処理を行う逆量子化処理部(111)および逆量子化処理後に逆周波数変換処理を行う逆周波数変換部(112)と、逆周波数変換処理により復号化された予測差分を用いて復号化画像を生成する加算部(113)と、後の予測処理に用いるために復号化画像を保持する参照画像メモリ(115)を有する。
入力画像メモリ(102)は原画像(101)の中から一枚の画像を符号化対象画像として保持し、画像を画面内予測部(103)、動き探索部(104)、画面間予測部(105)および減算部(107)に送信する。動き探索部(104)では、参照画像メモリ(115)に格納されている復号化済み画像を用いて該当ブロックの動き量を計算し、動きベクトルを画面間予測部(105)に送信する。画面内予測部(103)および画面間予測部(105)では、画面内予測処理および画面間予測処理を複数種類の形状のブロック単位で実行する。予測方法・予測ブロック決定部(106)は、最適な予測方法と形状ブロックとの組み合わせを決定し、決定した予測方法と形状ブロックによる予測画像を出力する。
予測方法・予測ブロック決定部(106)における最適な予測方法と形状ブロックとの組み合わせの決定は、たとえば、予測差分と符号量とが好適に小さくなるように決定する。例えばすべての組み合わせに対して(数式1)にて表される符号化コストCostを計算し、これが最も小さい組み合わせを決定した組合わせとすると効果的である。
(数式1)
Cost = SAD + λ×R
ここで、SAD (Square Absolute Difference)は予測差分の絶対値和を、R(Rate)は、予測差分を符号化した際の符号量の見積もり値を表す。また、λは重み付けをするための定数であり、この値は予測方法(画面内予測・画面間予測)や量子化時のパラメータなどによって最適値が異なるため、それらを厳密に設定すると効果的である。符号量の見積もり値は、予測差分情報だけではなく、ブロック形状情報や動きベクトルなどの符号量を加味して算出するのが望ましい。
次に、減算部(107)では、原画像から予測画像を減算して予測差分を生成し、周波数変換部(108)に送信する。周波数変換部(109)および量子化処理部(110)では、取得した予測差分に対して、それぞれ複数種類の形状のブロック単位でDCT(Discrete Cosine Transformation:離散コサイン変換)などの周波数変換および量子化処理を行い、可変長符号化処理部(110)および逆量子化処理部(111)に送信する。逆量子化処理部(111)では、量子化後の周波数変換係数に対して逆量子化処理を行う。逆周波数変換部(112)では、逆量子化処理後の係数に対してIDCT(Inverse DCT:逆DCT)などの逆周波数変換をおこない予測差分を復号し、加算部(113)に送信する。続いて加算部(113)は、予測方法・予測ブロック決定部(106)が出力する予測画像に、逆周波数変換部(112)が復号した予測差分を加算して復号化画像を生成し、周波数変換ブロック決定部(114)に出力する。周波数変換ブロック決定部(114)では、周波数変換を行う際の最適な周波数変換ブロック形状を決定し、決定した周波数変換ブロック形状の情報を可変長符号化部(110)に送信する。また、周波数変換ブロック決定部(114)は、加算部(113)から取得した復号化画像のうち、決定した最適な周波数変換ブロック形状による周波数変換により生成された復号化画像を参照画像メモリ(115)に出力する。参照画像メモリ(115)が格納する復号化画像は、画面内予測部(103)及び画面間予測部(105)の予測処理や動き探索部(104)の動き探索処理に用いられる。
ここで、周波数変換ブロック決定部(114)による最適な周波数変換ブロック形状の決定の一例として復号画像の画質歪と符号量が好適に小さくなるように周波数変換ブロック形状を決定すればよい。例えば画質歪みと符号量の関係から最適な符号化モードを決定するRD-Optimization方式を用いることによって、効率良く符号化できる。RD-Optimization方式の詳細については参考文献1を参照のこと。
[参考文献1]G. Sullivan and T.Wiegand : “Rate-Distortion Optimization for Video Compression”、 IEEE Signal Processing Magazine、 vol.15、 no.6、 pp.74-90、 1998.
可変長符号化処理部(110)では、予測方法・予測ブロック決定部(106)が決定した予測ブロック形状情報と、周波数変換ブロック決定部(114)が決定した周波数変換ブロック形状情報と、決定した周波数変換ブロック形状にて周波数変換を行って量子化した周波数変換係数(予測差分情報)、および例えば画面内予測を行う際の予測方向や画面間予測を行う際の動きベクトルなど、復号化時の予測処理に必要な情報に可変長符号化を行って符号化ストリームを生成する。
次に、本実施例に係るブロック形状の符号化処理について、H.264/AVC規格と比較しながら説明する。
まず、H.264/AVC規格では、符号化処理が完了した画像情報を利用して符号化対象画像を予測し、原画像との予測差分を符号化することによって、動画像の持つ冗長性を削除して符号量を減らしている。ここでは、動画像の局所的性質を利用するために、画像を細かく分割したブロック単位で予測が行われる。予測には大別して画面内予測と画面間予測があり、例えば、図3は画面間予測時のブロック形状について、その表現方法を示している。符号化処理は対象画像に対してラスタースキャンの順序に従い、16×16画素で構成されるマクロブロック(301)単位で実行する。H.264/AVC規格ではマクロブロックをさらに細かく分割したブロック単位で予測することができる(302)。特に画面間予測の場合は、マクロブロックを根とした木構造に基づくモデル(303)に基づいて分割が行われる。すなわち、マクロブロックは8×8画素、8×16画素、16×8画素、16×16画素のいずれかに分割して予測を行うことが可能であり、さらに対象マクロブロックが8×8画素に分割(4分割)された場合には、さらに4個存在する8×8画素ブロックに対して、それぞれ4×4画素、4×8画素、8×4画素、8×8画素のいずれかに分割することができる。
さらに、上記方法にてマクロブロックを分割して予測を行った後に、予測差分の符号化もマクロブロックを分割したブロック単位で行う。ここでは、計算された16×16サイズの予測差分に対し、4分割(8×8画素ブロック単位)もしくは16分割(4×4画素ブロック単位)して周波数変換を施し、その係数を量子化して可変長符号化する。なお、H.264/AVC規格では、上記周波数変換としてDCTを採用している。
ここで、上記のようにH.264/AVC規格では、予測を実行する際のブロック形状を複数の候補から選択する場合、予測差分情報とは別にブロック形状情報をマクロブロック単位で符号化することが必要であった。また、仮に周波数変換を行う際のブロック形状も同様に複数の候補から選択可能にするとDCT係数の符号量は削減できる可能性があるものの、ブロック形状を表現するための符号量がさらに増大する。
図4はH.264/AVC規格の画面間予測において、図3に示したブロック形状情報を符号化する際に用いる符号表を示している。ここでは、マクロブロックを根とする木構造について、16×16画素マクロブロックの子となるパターン(8×8画素ブロック、8×16画素ブロック、16×8画素ブロック、16×16画素ブロック)をマクロブロックタイプ(mb_type)として(401)、さらに8×8画素ブロックの子となるパターン(4×4画素ブロック、4×8画素ブロック、8×4画素ブロック、8×8画素ブロック)をサブマクロブロックタイプ(sub_mb_type)として(402)定義し、それぞれ互いに重複しない値が設定されている。これらの値は、選択される頻度が統計的に高いパターンに対して小さい値が設定されており、符号表(403)を利用して効率的に可変長符号化される。
以上のように、H.264/AVC規格では、木構造に基づいてマクロブロックの分割パターンを階層的に規定することにより、ブロック形状を効率的に表現している。この表現方法は、ブロック形状情報に必要な符号量が比較的少なくてすむという利点があるが、例えばマクロブロックよりも大きなブロックや、複数のマクロブロックをまたがるようなブロックを表現できないなど、表現可能なブロック形状の種類に制限があるといった課題があった。
また、上記のような課題は木構造の階層数を増やすことによってある程度改善できるが、この場合候補となるブロック形状の種類が増大し、符号表に登録すべき要素数が急増して符号量が爆発するという課題があった。
これに対し、本実施例に係るブロック形状の符号化処理の一例では、図5に示すブロック形状の表現方法を用いる。本実施例では、符号化開始位置(501)とブロックの種類(502)の組み合わせよりブロック形状を表現し、これら2種類の値をブロックごとに符号化する。ブロックの種類については、あらかじめ様々な形状(正方形、長方形、三角形またはこれらが複数集まったブロック集合など)で様々な大きさ(32×32、16×16、8×8など)のパターンを用意しておき(503)、これら候補の中から各領域にとって最適となるものを選択する。ここで言う最適とは、その形状で対象領域を符号化した場合、符号量が少なく復号画像の画質が高くなる場合をいう。なお、符号化開始位置(501)は、復号化側では、復号化対象ブロックの復号化開始位置として用いられる。また、ブロックの種類には変形多角形ブロックも用いることができる。
図6は、本実施例による符号化開始位置の符号化方法について、その一例を示している。符号化対象ブロックの代表点を点A(601)、直前に符号化したブロックの代表点を点B(602)とする。ここで、本実施例では、点A及び点Bは、例えば、該当ブロックのもっとも左上に位置する点を用いる。隣接ブロックなどの点Aと点Bを用いれば、その差分座標は絶対座標よりも小さい値になることから、差分座標 (x_sub, y_sub)(603)を可変長符号化すれば効果が良くなる。差分座標は、例えば(604)のような符号表を用いてx成分(x_sub)とy成分(y_sub)それぞれ個別に符号化しても良いし、例えば(605)のような2次元的な符号表を用いてx成分とy成分をまとめて符号化してもよい。この場合、ブロックの種類(503)によって出現する差分座標の種類や頻度が異なるため、統計的に出現頻度が高い座標に対して短い符号を割り当てると効果的である。また、点Aと点Bの差分座標ではなく、点Aの絶対座標を符号化してもよいし、点Bとしては特に直前に符号化したブロックの代表点でなくても、符号化対象ブロックよりも先に符号化したブロックであればどんなブロックの代表点を選んでもよい。
次に、図7は本実施例によるブロックの種類を符号化する際に用いる符号表(701)の一例を示している。ここでは候補となるすべてのブロックパターン(503)に対し、それぞれ一意に決まる特有の符号を割り当てている。割り当ての例としては、統計的に選択される頻度の高いものに対して短い符号を割り当てれば、符号量を小さくすることができ、効果的である。ここでは、ブロックの形状(形と大きさ)の組み合わせを一つの表によって表現しているが、例えばブロックの形(正方形、長方形、三角形またはこれらが複数集まったブロック集合など)と大きさ(32×32、16×16、8×8など)を別々の符号として互いに独立に符号化してもよい。この場合、符号表を用意してそれぞれ別個に符号化する。なお、図7のような符号表を用いれば、図5に示す変形多角形ブロックのように頂点や辺が多い形状のブロックでも、符号量が頂点や辺の数に比例することがなく、より符号量を低減することが可能となる。
次に、図8に、本実施例によるブロック形状符号化の流れについて、その一例を示す。ここでは、差分座標の符号化には図6の符号表(604)を、ブロックの種類には図7の符号表(701)を用いる場合について説明する。
まず、対象画像(801)の左上端の最初のブロックαの代表点Aは座標(0,0)である。このとき、直前に符号化したブロックは画像中に存在しないので点Bは、座標を(0,0)にて初期化しておく。よって、この場合の差分座標は(0,0)となる。そのため図6の符号表(604)に基づいて差分座標のx_subとy_subにそれぞれ符号010を割り当てる。ここでブロックαでは32×32画素の正方ブロック領域であるので(802)、ブロックの種類を表現するために図7の符号表(701)に基づいて符号1を割り当てる。よってブロックαのブロック位置・形状を表現するための符号は全体で0100101となる(806)。
続いて、座標(32,0)に16×32画素の長方ブロックβを配置して符号化すると(803)、点Aの座標は(32,0)、点Bの座標は(0,0)となり、差分座標は(32,0)となる。そのため、x_subに符号010を、y_subに符号1を、ブロックの種類を表現するために符号00100を割り当てることになり、ブロックβブロック位置・形状を表現するための符号は全体で010100100となる(807)。
同様に、座標(64,0)に32×32画素の直角三角形(1)ブロックγを配置して符号化する場合(804)、ブロックγのブロック位置・形状を表現するための符号は01010001000(808)となる。
次に、同じ座標(64,0)に16×32画素の長方ブロックδを配置して符号化する場合には(805)、ブロックδのブロック位置・形状を表現するための符号は01001000100となる(809)。このとき、新たに配置する長方ブロックδと、既に符号化が完了している直角三角形ブロックγ領域とに重なりが生じる。このように複数のブロックに重なりが生じる場合、領域の決定には、例えば先に符号化したブロックまたは後に符号化したブロックのいずれか一方のブロックを優先すればよい。先に符号化したブロックを優先する場合、直角三角形ブロックγと長方ブロックδの重複領域は直角三角形ブロックγの方に割り当てられ、長方ブロックδとして割り当てられるのは、元の長方ブロック形状から重複領域を除いた領域となる。ここで、先に符号化したブロックを優先すれば、上記重複領域について、後に符号化する長方ブロックδの符号化処理において符号化する必要がなくなるため、後に符号化したブロックを優先するよりも処理量を低減することが可能となる。
また、上記のようにいずれか一方のブロックを優先するのではなく、二つ以上のブロックが重複した場合に、例えば、それらすべてのブロックに対して本来の形状を割り当て、重複領域に対しては、各ブロックにて計算された結果(各画素についての予測値または周波数変換値など)の平均値や加重平均値などとして計算してもよい。
以上図8を用いて説明した本実施例に係るブロック位置・形状の符号化方法によれば、多角形や領域形状の頂点の数が多いブロックを用いてもより小さい符号量でブロック位置・形状を符号化することが可能となる。
図8を用いて説明した本実施例に係るブロック位置・形状の符号化処理は、図1に示す動画像符号化装置において、予測方法・予測ブロック決定部(106)が決定した予測ブロック形状と、周波数変換ブロック決定部(114)が決定した周波数変換ブロック形状とに基づいて、可変長符号化処理部(110)で行われる。
また、図8を用いて説明した本実施例に係るブロック位置・形状の符号化方法は、予測処理(画面内予測および画面間予測)を行う際のブロック形状と、予測差分に対して周波数変換処理を施す際のブロック形状のうちいずれか一方を符号化する際に用いても良いが、両方の形状符号化に用いるとより好適なブロック形状による処理とブロック位置・形状の符号量の低減の両立の点で効果的である。
このとき、両方の形状を同一にして一つの形状情報を符号化しても良いが、上記2種類のブロック形状の最適値は必ずしも一致しない。そこで、それぞれ個別に最適な形状を符号化するとより好適に圧縮効率の向上を図ることが可能となる。
この場合、差分座標に関する符号表(604)(605)やブロックの種類に関する符号表(701)は、予測処理を行う際のブロック形状と、周波数変換処理を行う際のブロック形状とで同一のものを用いても良いが、異なるものを用いても構わない。同一の符号表を用いる場合は、動画像符号化装置においてあらかじめ用意しておく符号表のデータ量を低減することができ、メモリ容量を低減することが可能となる。一方、異なる符号表を用いる場合は、予測処理と周波数変換処理とに、それぞれ好適なブロック形状を有する符号表を用いることが可能となり、より好適に圧縮効率の向上を図ることが可能となる。
図13は、本実施例における符号化ストリームの構成例(1フレーム分)を表す。ここでは、1フレーム内に、予測を行う際のブロックがN個、周波数変換を行う際のブロック形状がM個存在する場合について説明する。図13に示す各予測ブロック形状フラグまたは各周波数変換ブロック形状フラグには、例えば、図8に示すビット(806)〜(809)などが含まれる。
図13において、まず最初の予測ブロック形状1を符号化し(1301)、続いてそのブロックに対する予測方法1(画面間予測/画面内予測など)を符号化する(1302)。この場合、例えば図15の符号表(1501)のように、予測方法と予測処理の詳細の組み合わせに対して符号表を用意すればよい。また、本実施例では、ブロック形状情報と予測方法についてそれぞれ異なる符号表を用意しているが、これらの組み合わせに対して1種類の2次元的な符号表を用意しても良い。
続いて、2個目の予測ブロック形状2(1303)とその予測方法2を符号化する(1304)。これをN個目のブロック分まで繰り返す(1305)(1306)。続いて、周波数変換ブロック形状の符号化を開始する。まず1つ目の周波数変換ブロックの形状1を符号化し(1307)、続いてそのブロックの予測差分に対する周波数変換係数情報1を符号化する(1308)。そして2個目の周波数変換ブロックの形状2を符号化し(1309)、そのブロックに対する周波数変換係数情報2を符号化する(1310)。これをM個目のブロック分まで繰り返す(1311)(1312)。
図13の例では、予測ブロック形状と周波数変換ブロックの形状を互いに独立に符号化しているが、両者は一致する可能性は低くない。そのため、例えば図14に示すように両者を関連付けて符号化するとさらに符号量を減らすことができる。
図14は図13における周波数変換ブロック形状情報を符号化しており、ブロック形状同一フラグとブロック形状情報から構成する符号化ビットである。図14に示す構成以外の予測ブロック形状の情報と予測方法の情報に関しては、図13と同様の方法にて符号化すればよいので、説明を省略する。
ここで、ブロック形状同一フラグn(1401)は1ビットで構成されており、符号化対象の周波数変換ブロック形状が、対応する位置にある予測ブロック形状と一致するか否かを表現している。すなわち、n番目の周波数変換ブロックに関するフラグが1、すなわち予測ブロック形状に一致することを示す場合は、n番目の予測ブロック形状と同じブロックを周波数変換ブロック用いて周波数変換を実施する。このとき、周波数変換ブロック自体の形状情報(1402)は符号化しない。一方、このブロック形状同一フラグが0、すなわち周波数変換ブロック形状が予測ブロック形状と一致しないことを示す場合は、周波数変換を行う際の形状情報を例えば図13の周波数変換ブロック形状と同様に符号表(701)を用いて非同一時ブロック形状nとして符号化する(1402)。すなわち、当該非同一時ブロック形状フラグnは、図13における周波数変換ブロック形状フラグnと同様のフラグを用いればよい。このように、ブロック形状同一フラグと非同一時ブロック形状フラグを用いる構成とすることにより、予測処理と周波数変換処理とで同一のブロッ形状を用いる場合には、1ビットのみで周波数変換ブロック形状を符号化することが可能となり、好適に符号量を低減することが可能となる。
図11は、本実施例における1フレームの符号化処理手順について示している。まず、符号化対象となるフレーム内に存在するすべての領域に対して(1101)、以下の処理を行う。すなわち、該当領域に対して、複数の予測ブロック形状それぞれにて予測を実行する(1102)。ここでは、予測の方法に応じて(1103)、画面内予測(1104)、または画面間予測(1105)を行い、予測差分の計算を行う。そして、複数の予測方法、複数の予測ブロック形状にて予測を行った結果の中から、予測方法と予測ブロック形状との最適な組み合わせを決定する(1106)。予測方法・ブロック形状の決定方法の詳細は、図1の予測方法・予測ブロック決定部(106)の動作の説明で説明したとおりなので説明を省略する。
続いて、決定した予測方法・予測ブロック形状による予測差分に対して、複数のブロック形状のそれぞれについて(1107)、周波数変換(1108)、量子化をおこなって量子化済みの周波数変換係数である量子化データを生成(1109)し、逆量子化(1110)、逆周波数変換(1111)を行って予測差分を復号化し、予測画像と加算することにより復号化画像を生成(1112)する。
次に、複数のブロック形状の中から周波数変換を行う最適な周波数変換ブロック形状を決定する(1113)。周波数変換ブロック形状の決定方法の詳細は、図1の周波数変換ブロック決定部(114)の動作の説明で説明したとおりなので説明を省略する。
次に、予測方法、予測ブロック形状の決定処理(1106)で決定した組み合わせの予測方法の情報、予測ブロック形状の情報、及び必要であれば予測ブロックの位置情報を符号化し、周波数変換ブロック形状の決定処理(1113)で決定した周波数変換ブロック形状情報及び必要であれば周波数変換ブロックの位置情報を符号化し、量子化データの生成処理(1109)で生成した量子化データを可変長符号化する(1114)。
以上の処理をすべての領域に対して完了すれば、画像1フレーム分の符号化は終了する(1115)。
以上のような画像1フレーム分の符号化処理を複数フレームについて行うことにより、符号化された周波数変換係数、予測方法の情報、予測ブロック形状または位置の情報、周波数変換ブロック形状または位置の情報を複数の画像フレーム分含めた符号化ストリームが生成される。 以上説明した実施例1に係る動画像符号化装置及び動画像符号化方法によれば、領域形状の頂点や辺が多い形状のブロックなどを予測処理や周波数変換処理に用いても、より小さい符号量でブロック位置・形状を符号化することが可能となる。
これにより、ブロック位置・形状の符号量を抑えながら、予測処理や周波数変換処理にそれぞれ好適なブロック形状を用いて予測処理や周波数変換処理を行うことが可能となり、予測差分情報の符号量を低減し、より圧縮効率の高い動画像符号化装置及び動画像符号化方法を実現することが可能となる。
次に、図2を用いて本実施例に係る動画像復号化装置の一例を説明する。図2の動画像復号化装置の各構成部の動作について説明する。まず、可変長復号化部(202)は、例えば図1に示す動画像符号化装置によって生成された符号化ストリーム(201)に対して可変長符号化の逆の手順を行って可変長復号を行い、量子化された予測差分情報を生成する。
予測方法・予測ブロック判別部(209)は、符号化ストリームに含まれる予測方法の情報、予測ブロック形状の情報、予測ブロックの位置情報を復号して、復号化対象ブロックの予測処理に用いる予測方法、予測ブロック形状、予測ブロックの位置を判別する。予測方法・予測ブロック判別部(209)が復号化対象ブロックの予測方法が画面間予測であると判別した場合には、画面間予測部(205)が、予測方法・予測ブロック判別部(209)が判別した予測ブロック形状、予測ブロックの位置の情報を用いて画面間予測処理を行って予測画像を生成する。予測方法・予測ブロック判別部(209)が復号化対象ブロックの予測方法が画面内予測であると判別した場合には、画面内予測部(206)が、予測方法・予測ブロック判別部(209)が判別した予測ブロック形状、予測ブロックの位置の情報を用いて画面内予測処理を行って予測画像を生成する。
周波数変換ブロック判別部(210)は、符号化ストリームに含まれる周波数変換ブロック形状情報、周波数変換ブロックの位置情報を復号して、復号化対象ブロックの周波波数変換に用いるブロック形状、ブロックの位置を判別する。逆量子化処理部(203)および逆周波数変換部(204)は、周波数変換ブロック判別部(210)が判別したブロック形状単位でそれぞれ、量子化された予測差分情報に対する逆量子化と逆周波数変換を行い、予測差分情報を復号する。
加算部(207)は、生成された予測画像と復号された予測差分情報を加算して復号画像を生成して出力する。生成された復号画像は出力されるだけではなく、参照画像メモリ(208)に記憶され、画面間予測部(205)及び 画面内予測部(206)の予測処理に用いされる。
ここで、上記予測方法・予測ブロック判別部(209)における予測ブロックの判別処理は、図1の動画像符号化装置における可変長符号化処理部(110)のブロック位置・形状の符号化処理の逆処理により行う。例えば、図13において説明した符号化ストリームに含まれる予測ブロック形状フラグ、すなわち図8に示す割り当てビット(806)〜(809)に対して、図7に示す符号表を用いてブロックの種類を判別し、図6または図7の符号表を用いてブロック間の差分座標を判別してブロックの位置を判別する。
また、上記周波数変換ブロック判別部(210)における周波数変換ブロックの判別処理は、図1の動画像符号化装置における可変長符号化処理部(110)のブロック位置・形状の符号化処理の逆処理により行う。例えば、図13において説明した符号化ストリームに含まれる予測ブロック形状フラグ、すなわち図8に示す割り当てビット(806)〜(809)に対して、図7に示す符号表を用いてブロックの種類を判別し、図6または図7の符号表を用いてブロック間の差分座標を判別してブロックの位置を判別する。符号化ストリーム中の周波数変換ブロックフラグが図14に示す構成の場合は、周波数変換ブロック判別部(210)は、ブロック形状同一フラグが同一を示すか非同一を示すかを判別する。同一を示す場合には、予測方法・予測ブロック判別部(209)が判別したブロックの種類、位置を周波数変換ブロックの種類、位置と判別する。非同一を示す場合には、非同一時ブロック形状フラグに含まれるビット、例えば図8に示す割り当てビット(806)〜(809)に対して、図7に示す符号表を用いてブロックの種類を判別し、図6または図7の符号表を用いてブロック間の差分座標を判別してブロックの位置を判別する。
図12は、本実施例における1フレームの復号化処理手順について示している。まず、1フレーム内のすべての領域に対して、以下の処理を行う(1201)。すなわち、入力される符号化ストリームの符号のうち、可変長符号を復号して量子化された予測差分情報を生成し、予測方法の情報、予測ブロック形状の情報、予測ブロックの位置情報を復号して、復号化対象ブロックの予測処理に用いる予測方法、予測ブロック形状、予測ブロックの位置を判別し、周波数変換ブロック形状情報、周波数変換ブロックの位置情報を復号して、復号化対象ブロックの周波波数変換に用いるブロック形状、ブロックの位置を判別する(1202)。
判別した復号化対象ブロックの周波数変換ブロック形状、周波数変換ブロックの位置の復号化対象ブロック単位で、量子化された予測差分情報に逆量子化処理(1203)および逆周波数変換処理(1204)を行い予測差分を復号化する。
続いて、判別した復号化対象ブロックの予測ブロック形状単位で、判別した予測方法による予測処理、すなわち画面内予測(1206)または画面間予測(1207)を行って予測画像を生成する。
生成した予測画像と生成した予測差分を加算して、復号化対象ブロックの復号画像を生成する(1208)。
以上の処理をフレーム中のすべての領域に対して完了すれば、画像1フレーム分の復号化が終了する(1209)。
以上説明した実施例1に係る動画像復号化装置及び動画像復号化方法によれば、予測処理や周波数変換処理に用いるブロックの位置・形状を好適に復号することが可能となる。これにより、予測処理や周波数変換処理にそれぞれ好適なブロック形状を用いて予測処理や周波数変換処理を行った圧縮効率の高い符号化ストリームに対応する動画像復号化装置及び動画像復号化方法を実現することが可能となる。
また、本実施例では周波数変換の一例としてDCTを挙げているが、DST(Discrete Sine Transformation:離散サイン変換)、WT(Wavelet Transformation:ウェーブレット変換)、DFT(Discrete Fourier Transformation:離散フーリエ変換)、KLT(Karhunen-Loeve Transformation:カルーネン-レーブ変換)など、画素間相関除去に利用する直交変換ならどのようなものでも構わない。特に周波数変換を行わず予測差分そのものを符号化・復号化する符号化・復号化方式に適用しても構わない。さらに、可変長符号化・復号化も行わない符号化・復号化方式に適用してもよい。
また、本実施例は静止画像などの符号化方法に用いてもよい。
以上説明した実施例1に係る動画像符号化装置、動画像符号化方法、動画像復号化装置、動画像復号化方法によれば、より圧縮効率の高い動画像符号化技術および動画復号化技術を提供することが可能となる。
次に、本発明の実施例2について説明する。実施例1では、対象ブロックの位置情報を表現するために、符号化・復号化開始位置を符号化している。実施例2では、各ブロックを符号化・復号化する時の開始位置を符号化側と復号化側で予め規定しておくことにより符号化・復号化開始位置の符号化を不要にし、ブロックの位置情報の符号量を削減する。
実施例2に係る動画像符号化技術および動画復号化技術は、実施例1に係る動画像符号化技術および動画復号化技術に比べて、図8に示すブロック位置・形状の符号化処理・復号化処理を図9及び図10に示すブロック位置・形状の符号化処理・復号化処理に変更したものである。
すなわち、実施例2に係る動画像符号化装置は、実施例1に係る動画像符号化装置のうち、可変長符号化処理部(110)におけるブロック位置・形状の符号化処理を図8のブロック位置・形状の符号化処理・復号化処理を図9及び図10に示すブロック位置・形状の符号化処理・復号化処理に変更したものである。実施例2の動画像符号化装置におけるその他の構成は実施例1に係る動画像符号化装置と同一であるので説明を省略する。
また、実施例2に係る動画像復号化装置は、実施例1に係る動画像復号化装置のうち、周波数変換ブロック判別部(210)及び予測方法・予測ブロック判別部(209)におけるブロック位置・形状の復号及び判別方法を図8に示すブロック位置・形状の復号及び判別方法から図9及び図10に示すブロック位置・形状の復号及び判別方法に変更したものである。実施例2の動画像復号化装置におけるその他の構成は実施例1に係る動画像復号化装置と同一であるので説明を省略する。
以下、実施例2に係るブロック位置・形状の符号化処理・復号化処理について説明する。
図9は、本実施例によるブロック形状の表現方法について、その一例を示している。ここでは、ブロックの符号化手順を例えば(901)に示す所定のアルゴリズムにより行うことにより、ブロックの位置、形状をブロックの形状の種類の情報のみで表現することができる。ブロックの種類については、実施例1と同様の方法で表現する(503)。
具体的には、例えば、符号化時には、1フレームの画像を既符号化領域集合S1(901)と、未符号化領域集合S2(902)に分割し、未符号化領域集合S2に属する領域の中からY座標が最小の座標を抽出し、当該最小のY座標を有する点のうちX座標が最小となる点の座標を次回符号化開始点P、すなわち符号化対象ブロックの代表点とする。さらにPを開始点とする当該ブロックの符号化が完了すれば、Pを開始点とする当該ブロックブロックに含まれる領域は未符号化領域集合S2から既符号化領域S1へと変わる。さらに次のブロックを符号化する際は上記の未符号化領域集合S2に属する領域の中からの最小のY座標の抽出からの手順を繰り返す。当該アルゴリズムにより、いずれの符号化対象ブロックの符号化開始時点においても、符号化開始位置、すなわちブロックの代表点は一意に決定する。よって、ブロックの位置情報を符号化する必要がなくなり、符号量を低減することが可能となる。
また、上記のアルゴリズムを用いることにより、例えば、正方形ブロックを用いる符号化方式のように、所定の画素数の整数倍の座標(例えば16の整数倍の座標)を必ずしもブロックの符号化開始位置、代表点とする必要がなくなる。すなわち、上記のアルゴリズムを用いれば、所定の画素数の整数倍の位置以外の座標(例えば16の整数倍以外の座標)であってもブロックの符号化開始位置、代表点とすることが可能となる。
図7の符号表ではいずれも8の整数倍の辺を有するブロック形状を例に挙げているが、実施例2に係るブロック位置・形状の符号化処理によれば、所定の画素数の整数倍の位置以外の座標でもブロックの符号化開始位置、代表点とすることができるので、例えば、図7の符号表のブロックに加えて、7×14の矩形ブロックなど、8の整数倍以外の辺を有するブロックを8の整数倍の辺を有するブロックと併用した場合でも、ブロックの位置情報を符号化する必要がない。
図10を用いて、本実施例によるブロック形状符号化の流れの一例を示す。ここでは、ブロックの種類の符号化に図7の符号表(701)を用いた場合について説明する。符号化対象画像 (1001)の左上端の領域に対して、符号化を始める際には、画面全体が未符号化領域集合S2であるので、次回符号化開始点Pの座標は、最小のY座標を有する点のうちX座標が最小となる座標(0,0)である。ここで、32×32画素の正方ブロックαを配置して符号化する場合(1002)、ここで符号化するブロックの形状情報は、ブロックαのブロックの種類を表現するための符号1のみである(1006)。このとき、既符号化領域集合S1にブロックαが属し、その他の領域が未符号化領域集合S2となるので、次回符号化開始点Pを未符号化領域集合S2の最小のY座標を有する点のうちX座標が最小となる座標(32,0)に更新する。
次に、点P(32,0)の位置に16×32画素の長方ブロックβを配置して符号化すると(1003)、既符号化領域集合S1にブロックα、ブロックβが属し、その他の領域が未符号化領域集合S2となるので、次回符号化開始点Pの座標を未符号化領域集合S2の最小のY座標を有する点のうちX座標が最小となる座標(64,0)に更新する。ブロックβのブロックの種類を表現するための符号00100が割り当てられる(1007)。
同様にして、点P(64,0)に32×32画素の直角三角形(1)ブロックγを配置して符号化すると(1004)、ブロックγのブロックの種類を表現する符号0001000を割り当てる(1008)。このとき既符号化領域集合S1にブロックα、ブロックβ、ブロックγが属し、その他の領域が未符号化領域集合S2となるので、未符号化領域集合S2の最小のY座標を有する点のうちX座標が最小となる座標は座標(64,0)であり、次回符号化開始点Pの座標を(64,0)のままとする。
続いて、点P(64,0)に16×32画素の長方ブロックδを配置して符号化すると(1005)、ブロックδのブロック形状を表現するための符号は00100となる。このとき、既符号化領域集合S1にブロックα、ブロックβ、ブロックγ、ブロックδが属し、その他の領域が未符号化領域集合S2となるので、次回符号化開始点Pの座標を未符号化領域集合S2の最小のY座標を有する点のうちX座標が最小となる座標(96,0)に更新する(1009)。このとき、ブロックの重なりが生じるが、ブロックの重なりについての対応方法については実施例1と同様のため、説明を省略する。
以上のように、図10に示した実施例2のブロック形状符号化処理において符号化したブロックの割り当てビットは、図8に示した実施例1のブロック形状符号化処理において符号化したブロックの割り当てビットに比べて、差分座標情報のビットがない分、符号量が小さい。
当該ブロック形状符号化処理は、予測ブロックのブロック形状の符号化及び周波数変換のブロック形状の符号化ともに用いることが可能である。
実施例2の動画像符号化装置が生成する符号化ストリームの構成は、図13に示す実施例1の符号化ストリームと同様となるが、予測ブロック形状フラグ、周波数変換ブロック形状フラグともに差分座標情報のビットが含まれない点で相違する。このため、実施例2の動画像符号化装置が生成する符号化ストリームの方が符号量が小さくなる。
また、実施例1と同様に図14のブロック形状同一フラグを用いた構成としてもよい。このとき、実施例2においては、予測ブロックの形状と周波数変換ブロックの形状とが非同一の場合に用いる非同一時ブロック形状フラグには差分座標情報のビットが含まれないため、実施例1における非同一時ブロック形状フラグよりも符号量を低減することが可能となる。
以上説明した実施例2に係る動画像符号化装置及び動画像符号化方法によれば、実施例1に係る動画像符号化装置及び動画像符号化方法の効果に加えて、符号化ストリームからブロックの位置情報を削減することにより、より小さい符号量でブロック位置・形状を符号化することが可能となる。
次に、上述のように符号化されたブロック形状を、実施例2の動画像復号化装置で復号して、動画像復号化装置の予測方法・予測ブロック判別部(209)または周波数変換ブロック判別部(210)において復号化対象ブロックの位置及び形状を判別する方法は以下のとおりとなる。
まず復号化対象ブロックについて、図10に示す割り当てビットに対して図7に示す符号表を用いることにより、ブロック形状を判別する。
ここで、復号化対象ブロックの位置については、図10において説明したアルゴリズムを用いて判別する。図10のアルゴリズムの説明のうち、「符号化」との表現を「復号化」に変更すれば、復号化対象ブロックの位置の判別アルゴリズムの説明となる。すなわち、復号化対象画像を既復号化領域集合S1と未復号化領域集合S2とに分割し、復号化対象ブロックの開始点すなわち復号化対象ブロックの代表点Pを、未符号化領域集合S2の最小のY座標を有する点のうちX座標が最小となる座標とする。このアルゴリズムを用いることにより、符号化ストリームに復号化対象ブロックの位置情報が含まれていなくとも、復号化対象ブロックの形状情報が含まれていれば、復号化対象ブロックの位置と形状を判別することが可能となる。
なお、動画像復号化装置に入力される符号化ストリームが図14に示すブロック形状同一フラグを用いた構成である場合は、周波数変換ブロック判別部(210)は、実施例1と同様に、ブロック形状同一フラグが同一を示すか非同一を示すかを判別する。同一を示す場合には、予測方法・予測ブロック判別部(209)が判別したブロックの種類、位置を周波数変換ブロックの種類、位置と判別する。非同一を示す場合には、非同一時ブロック形状フラグに含まれるビット、例えば図10に示す割り当てビット(1006)〜(1009)に対して、図7に示す符号表を用いてブロックの種類を判別し、図9及び図10において説明したアルゴリズムを用いてブロックの位置を判別する。
なお、図9及び図10において説明したアルゴリズムは、X座標及びY座標を用いて説明したが、言い換えれば、画面中の未符号化・復号化領域に属する点であってもっとも画面上端に近い座標を有する点のうち、もっとも画面左端に近い点を、符号化・復号化対象ブロックの符号化・復号化開始位置とするということである。
以上説明した実施例2に係る動画像復号化装置及び動画像復号化方法によれば、実施例2に係る動画像復号化装置及び動画像復号化方法の効果に加えて、ブロックの位置情報含まない符号化ストリームであっても、予測処理や周波数変換処理に用いるブロックの位置・形状を好適に復号することが可能となる。これにより、予測処理や周波数変換処理にそれぞれ好適なブロック形状を用いて予測処理や周波数変換処理を行った圧縮効率の高い符号化ストリームに対応する動画像復号化装置及び動画像復号化方法を実現することが可能となる。
以上説明した実施例2に係る動画像符号化装置、動画像符号化方法、動画像復号化装置、動画像復号化方法によれば、実施例1に係る動画像符号化装置、動画像符号化方法、動画像復号化装置、動画像復号化方法よりも圧縮効率の高い動画像符号化技術および動画復号化技術を提供することが可能となる。