(実施の形態1)
図1Aは、本発明の実施の形態1に係る画像符号化装置100の機能構成を示すブロック図である。画像符号化装置100は、入力画像をブロックごとに符号化して画像符号化信号を生成する。
図1Aに示すように、画像符号化装置100は、フレームメモリ101と、動き検出部102と、参照ピクチャ用メモリ103と、符号化制御部104と、境界フィルタ部105と、差分部106と、変換部107と、量子化部108と、可変長符号化部109と、逆量子化部110と、逆変換部111と、加算部112とを備える。
フレームメモリ101は、入力画像を保持する。また、参照ピクチャ用メモリ103は、再構成画像を保持する。なお、フレームメモリ101および参照ピクチャ用メモリ103は、画像符号化装置100に接続された外部メモリであってもよい。つまり、画像符号化装置100は、必ずしもフレームメモリ101および参照ピクチャ用メモリ103を備えなくてもよい。また、画像符号化装置100は、フレームメモリ101および参照ピクチャ用メモリ103のそれぞれを別個のメモリとして備える必要はなく、例えば1つのメモリを共有する形でフレームメモリ101および参照ピクチャ用メモリ103を構成してもよい。
動き検出部102は、予測単位それぞれに対して動き推定を行うことにより、予測単位それぞれの動きベクトルMVを検出する。ここで、予測単位とは、処理対象ブロックを分割した領域であり、予測処理の処理単位である。検出された動きベクトルMVは、符号化制御部104および可変長符号化部109に出力される。
符号化制御部104は、検出された動きベクトルに基づいて予測単位ごとに動き補償を行うことにより、処理対象ブロックの動き補償画像を予測画像として生成する。具体的には、符号化制御部104は、まず、予測単位ごとに、当該予測単位の動きベクトルに基づいて参照ピクチャ用メモリから参照画像を読み出す。そして、符号化制御部104は、読みだした各予測単位の参照画像を合成することにより、動き補償画像を生成する。
このように、動き検出部102および符号化制御部104によって予測画像が生成される。すなわち、動き検出部102および符号化制御部104は、予測単位ごとに予測処理を行うことにより処理対象ブロックの予測画像を生成する。
また、符号化制御部104は、生成した予測画像(動き補償画像)MCを境界フィルタ部105へ出力する。さらに、符号化制御部104は、処理対象ブロックを分割して予測単位を得るための分割方法ICを生成し、可変長符号化部109に出力する。
境界フィルタ部105は、変換単位と予測単位とを比較することにより、予測単位の境界のうち変換単位内に位置する境界を検出する。そして、境界フィルタ部105は、生成された予測画像において、検出された境界に対するフィルタ処理を行う。
ここで、変換単位とは、処理対象ブロックを分割した領域であって周波数変換処理の処理単位である。また、境界に対するフィルタ処理とは、境界と直交する方向における画素値の変化を滑らかにするために、境界近傍の画素の画素値を修正する処理である。
なお、境界フィルタ部105は、変換単位の境界に対するフィルタ処理を行わないことが好ましい。つまり、境界フィルタ部105は、予測単位の境界であっても、変換単位の境界と重複する境界に対してはフィルタ処理を行わないことが好ましい。これは、一般的に、変換単位の境界には、参照ピクチャを生成する際にデブロッキングフィルタが行われるからである。
フィルタ処理後の予測画像PRは、差分部106および加算部112に出力される。
差分部106は、フィルタ処理後の予測画像と入力画像との差分を計算することにより、処理対象ブロックの差分画像を生成する。具体的には、差分部106は、処理対象ブロックの各画素において、フィルタ処理後の予測画像と入力画像と間の画素値の差分値を計算し、計算した差分値を画素値として有する差分画像を生成する。そして、この差分画像RSは、変換部107に出力される。
変換部107は、変換単位ごとに差分画像の周波数変換処理を行う。周波数変換処理は、例えば、DCT(Discrete Cosine Transform:離散コサイン変換)を代表とする直交変換処理である。周波数変換処理によって生成された変換係数は、量子化部108に出力される。
量子化部108は、周波数変換処理によって生成された変換係数を量子化することにより量子化係数QCを生成する。生成された量子化係数QCは、可変長符号化部109および逆量子化部110に出力される。
可変長符号化部109は、量子化係数QCと動きベクトルMVと分割方法ICとを可変長符号化することにより画像符号化信号を生成する。
逆量子化部110は、量子化部108によって生成された量子化係数を逆量子化する。また、逆変換部111は、逆量子化部110による逆量子化の結果を逆周波数変換することにより、復号化差分画像を生成する。そして、このように生成された復号化差分画像DRは、加算部112に出力される。
加算部112は、復号化差分画像と予測画像とを加算することにより再構成画像を生成する。そして、このように生成された再構成画像DCは、参照ピクチャ用メモリ103に出力される。つまり、再構成画像DCは、以降のピクチャの符号化時における参照画像として用いるために参照ピクチャ用メモリ103に保持される。
次に、以上のように構成された画像符号化装置100によって実行される画像符号化方法について説明する。
図1Bは、本発明の実施の形態1に係る画像符号化方法における特徴的な処理の流れを示すフローチャートである。
図1Bに示すフローチャートが開始される前に、入力画像は、フレームメモリ101に保持される。また、参照ピクチャ用メモリ103には、符号化済み画像の復号化画像(再構成画像)が既に蓄積されており、この再構成画像が処理対象ブロックを符号化する際の参照ピクチャとして用いられる。
フレームメモリ101に保持された処理対象ブロックは、符号化制御部104により指示される分割方法で予測単位に分割される。以下において、予測単位を分割領域と呼ぶ。
図2は、本発明の実施の形態1における処理対象ブロックの分割方法の一例を示す図である。
本実施の形態では、図2(a)〜(d)に示すように、処理対象ブロックは、8×8画素、4×4画素、8×2画素、または2×8画素の分割領域に分割される。つまり、符号化制御部104により指示される分割方法は、図2(a)〜(d)の4種類ある。
このような状態において、分割領域ごとに予測処理を行うことにより、処理対象ブロックの予測画像が生成される(ステップS101)。このステップS101は、予測ステップに相当する。
具体的には、動き検出部102は、分割領域それぞれに対して動き推定を行うことにより、各分割領域の動きベクトルを検出する(ステップS101a)。より具体的には、動き検出部102は、各々の分割領域の画像について、参照ピクチャ用メモリ103に保持されている参照ピクチャに対する動き検出を行う。動き検出では、参照ピクチャ内の予め定められた範囲(例えば水平方向±32画素、垂直方向±24画素の長方形の領域の範囲)の中で、分割領域の画像に対する評価値が例えば最小となる参照ピクチャ内の位置が検出される。動き検出部102は、このように検出された位置から動きベクトルを検出する。
ここで、評価値とは、参照画像を決定するための値である。評価値としては、例えば、互いに対応する画素間における画素値の絶対値差分和を用いることができる。また、評価値としては、例えば、絶対値差分和と動きベクトルの符号量との重み付け和等を用いることもできる。
動き検出部102は、分割方法ごとに、各分割領域の画像に対して動き検出を行い、当該分割領域の動きベクトルを検出する。さらに、動き検出部102は、最適な分割方法(例えば、最適値の基準として最小を用いる場合には、各分割領域に対する評価値の和が最小となる分割方法)を決定する。そして、動き検出部102は、決定した分割方法を符号化制御部104に出力し、当該分割方法で分割された各分割領域の動きベクトルを動きベクトルMVを可変長符号化部109に出力する。また、決定された分割方法と動きベクトルとは、符号化制御部104に伝えられる。
続いて、符号化制御部104は、動き検出部102によって検出された動きベクトルに基づいて、処理対象ブロックの動き補償画像を予測画像として生成する(ステップS101b)。具体的には、符号化制御部104は、各分割領域に対する参照画像を参照ピクチャ用メモリ103から読み出し、読みだした参照画像を合成することにより予測画像を生成する。生成された予測画像MCは、境界フィルタ部105に出力される。
例えば、図3において、処理対象ブロック300が分割領域301と分割領域302とに分割された場合、符号化制御部104は、参照ピクチャから参照画像303と参照画像304とを取得し、処理対象ブロック300の予測画像(動き補償画像)を生成する。予測画像は、処理ブロック単位(例えば水平16画素、垂直16画素)で処理される。
次に、境界フィルタ部105は、生成された予測画像において、分割領域の境界にフィルタ処理を行う(ステップS102)。この境界フィルタ部105の動作について図4から図7を用いて詳細に説明する。
図4は、本発明の実施の形態1に係る境界フィルタ処理の流れを示すフローチャートである。具体的には、図4は、境界フィルタ部105が符号化制御部104から取得する分割方法に基づいて予測画像に対してフィルタ処理を行う際の動作を説明するためのフローチャートである。
境界フィルタ部105は、予測画像MCと当該予測画像MCに対応する分割方法とを符号化制御部104から取得する(ステップS401)。
次に、境界フィルタ部105は、変換単位内に分割領域の境界があるか否かを判定する(ステップS402)。つまり、境界フィルタ部105は、変換単位と分割領域とを比較することにより、分割領域の境界のうち変換単位内に位置する境界(以下、「処理対象境界」という)を検出する。
具体的には、境界フィルタ部105は、予測画像MCに対応する分割方法に基づいて、分割領域の形状情報を取得する。そして、境界フィルタ部105は、例えば図5に示すように、分割方法に応じて予め決められている変換単位と分割領域とを比較し、変換単位内に分割領域の境界があるかどうかを判定する。
図6を用いて、ステップS402の比較処理をさらに詳しく説明する。図6(a)は、処理対象ブロックにおける変換単位の境界を示す図である。また、図6(b)は、処理対象ブロックにおける分割領域の境界を示す図である。また、図6(c)は、変換単位の境界と、分割領域の境界との比較により検出される処理対象境界を示す図である。図6(c)において、処理対象境界は、ハッチングされている。
例えば、図5に示すように、分割方法と変換単位とが一対一で対応している場合、境界フィルタ部105は、分割方法に対する最小分割幅と変換単位とを比較し、最小分割幅が変換単位の一辺の長さより小さい場合、変換単位内に参照画像MCの分割領域の境界が発生すると判定する。
ここで、処理対象境界が検出されなかった場合(ステップS402でNO)、処理対象ブロックの予測画像においてフィルタ処理は行われず、境界フィルタ処理は終了する。
一方、処理対象境界が検出された場合(ステップS402でYES)、境界フィルタ部105は、処理対象境界(例えば、図6(c)に示す処理対象境界)に対するフィルタ処理を行う(ステップS403)。ここで、図7および図8を用いて、ステップS403における処理対象境界に対するフィルタ処理について詳しく説明する。
図7は、処理対象境界を含む画像の特徴を説明するための模式図である。
図7(a)は、原画像701と予測画像702と差分画像706とを示す。原画像701は、フレームメモリ101に保持されている入力画像に含まれる処理対象ブロックの画像である。予測画像702は、分割領域703、704、705を各々動き補償をすることによって得られた画像である。差分画像706は、原画像701と予測画像702との差分を表す画像である。
予測画像702に示すように、分割領域ごとに動き補償が行われる場合、各分割領域703、704、705において画像の特性が異なることが多い。そのため、原画像701と予測画像702との差分信号である差分画像706において、分割領域の境界近傍の画素の値が大きくなるという特徴が見られる。
図7(b)に、差分画像706の中で、物体境界を含み、かつ、分割領域をまたぐ部分707における画素値の分布を示す。また、図7(c)に、部分707と同じような物体境界を含み、かつ、分割領域をまたがない部分708における画素値の分布を示す。図7(b)および(c)では、横軸は分割領域の境界と直交する方向における画素位置を示し、縦軸は画素値を示す。
図7(b)では、中央部分に分割領域の境界に起因する大きな値の変化があり、右側付近に物体境界に起因する緩やかな値の変化が見られる。一方、図7(c)では、右側付近に物体境界に起因する緩やかな値の変化のみが見られる。
ここで、図7(a)に示す太線で囲まれた2つの領域709が変換単位である場合、図7(b)のように大きな差分値を有する画像に対して変換処理が行われる。画像符号化に用いられるDCT(Discrete Cosine Transform:離散コサイン変換)を代表とする直交変換処理では、自然画像に多く含まれる、空間的に緩やかな画素値の空間的な変化を含む画像(図7(c)で示される自然画像の物体境界に起因する画素値の空間的な変化を含む画像)を効率良く変換することができるが、図7(b)で示される急峻な画素値の変化を示すエッジを含む画像を効率良く変換することができない。
そこで、ステップS402において、境界フィルタ部105は、図7(d)に示される処理対象境界710を検出する。そして、境界フィルタ部105は、予測画像702のうち、この処理対象境界710の近傍の画像に対してフィルタ処理を行う。つまり、境界フィルタ部105は、処理対象境界に対するフィルタ処理を行う。
ここで、フィルタ処理を行う対象となる画像は、差分画像ではなく、予測画像である。これは、入力画像と予測画像との差分画像にフィルタ処理が行われた場合、フィルタ処理によって失われた成分を復元することが困難になるからである。例えば、差分画像のうち一定より高い周波数の周波数成分をゼロに置換するフィルタ処理が行われた場合、フィルタ処理後の差分画像を非常に高い精度で量子化しても、フィルタ処理により失われた高い周波数の周波数成分を復元することが困難となる。つまり、入力画像に近い画像を復元することは難しい。
一方、予測画像にフィルタ処理が行われた場合、フィルタ処理後の予測画像と入力画像との差分画像を周波数変換した変換係数が量子化される。したがって、非常に高い精度で量子化が行われた場合、入力画像に近い画像を復元することができる。
上記のとおり、ここでのフィルタ処理は自然画像には含まれない急峻なエッジを滑らかにすることを目的とする。図8を用いて、処理対象境界に隣接する画素に対して行われるフィルタ処理について説明する。
図8は、フィルタ処理を説明するための図である。図8には、処理対象境界近傍の画素の画素値が表されている。ここで、横軸は処理対象境界と直交する方向における画素の位置を示しており、縦軸は画素値を示している。画素p3、画素p2、画素p1、画素p0、画素q0、画素q1、画素q2、画素q3の画素値は、各々p3、p2、p1、p0、q0、q1、q2、q3とする。
図8(a)は、入力画像の画素値を示し、図8(b)は、予測画像の画素値を示し、図8(c)は、図8(b)の処理対象境界の近傍の画素に対してフィルタ処理を施した後の予測画像の画素値を示す。
図8(a)〜(c)に示すように、フィルタ処理後の予測画像は、フィルタ処理前の参照画像と比べて入力画像に近くなる。その結果、差分画像に含まれる差分値が小さくなるので、効率よく変換処理を行うことが可能となり、効率よく符号化することが可能となる。
上記に説明したように、境界フィルタ部105は、処理対象境界の近傍画素に対して、画素値の変化を滑らかにするための所定の方法でフィルタ処理を行う。そして、境界フィルタ部105は、フィルタ処理後の予測画像PRを差分部106および加算部112に出力する。
図1Bの説明に戻る。
差分部106は、入力画像と、予測画像PRとの対応する画素の画素値の差分値を計算し、残差画像RSを生成する(ステップS103)。この残差画像RSは、差分画像に相当する。
変換部107は、残差画像RSを周波数変換する(ステップS104)。変換部107は、周波数変換によって得られる変換係数を量子化部108に出力する。
なお、フィルタ処理の対象となる、処理対象境界の近傍画素の決定方法については、実施の形態3に詳しく説明し、近傍画素に対するフィルタ処理の方法については、実施の形態4に詳しく説明する。
以上のように、本発明の実施の形態1に係る画像符号化装置100は、入力画像を符号化する際に、入力画像を正方領域であり符号化処理の処理単位であるブロック(符号化単位)に分割する。そして、画像符号化装置100は、そのように分割されたブロックを予め定めておいた分割方法でさらに複数の分割領域に分割する。そして、画像符号化装置100は、各分割領域に対して動き検出および動き補償を行うことにより、処理対象ブロックの予測画像を生成する。ここで、画像符号化装置100は、分割領域の境界のうち、後段の差分信号に対する変換処理の処理単位である変換単位と一致しない境界を処理対象境界として検出する。そして、画像符号化装置100は、予測画像において処理対象境界にフィルタ処理を行う。
このような動作により、変換単位内に予測単位(分割領域)の境界が存在しても、その境界にフィルタ処理を行うことができる。したがって、予測単位の境界において発生する画素値の急激な変化を滑らかにすることができ、入力画像と予測画像との差分画像の値を小さくすることができる。また、従来のように、変換単位内に予測単位(分割領域)の境界が存在しないように、変換単位を小さくする必要がないので、予測単位が小さい場合であっても変換単位を大きくすることができる。これらの結果、符号量を大きく削減することができ、符号化効率を向上させることが可能となる。
本実施の形態においては、予測単位の境界のうち、変換単位内に位置する予測単位の境界にのみフィルタ処理を行う。そのため、予測単位の境界のすべてにフィルタ処理を行う場合よりも処理量を削減することができる。さらに、復号画像もしくは参照画像において、変換単位の境界に対して行われる符号化歪み除去フィルタ(デブロッキングフィルタ)と重複してフィルタ処理を行うことを抑制することもでき、複数回のフィルタ処理による画質の劣化(画像のぼけ)を抑制することができる。
なお、分割方法および変換単位は、図5に示す分割方法および変換単位に限定する必要はない。例えば、予測単位の一部と変換単位の一部とが互いに重複するような場合であっても、本実施の形態に係る画像符号化方法は、変換単位内に位置する予測単位の境界に対してフィルタ処理を行うことにより、上記と同様の効果を奏する。
なお、本実施の形態においては、画像符号化装置100は、変換単位内にある分割領域の境界のすべてに対してフィルタ処理を行っているが、必ずしもすべてに対してフィルタ処理を行う必要はない。例えば、互いに隣接する2つの分割領域において、動きベクトルが同一であり、参照ピクチャ内で隣接する領域から参照画像を取得している場合には、当該2つの分割領域の間の境界に対するフィルタ処理はスキップされてもよい。こうすることで、フィルタ処理の処理量を削減し、予測画像が過剰にフィルタ処理されることを抑制することができ、フィルタ処理による画質の劣化(画像のぼけ)を抑制することができる。
なお、フィルタ処理をスキップすることを示す情報をストリームのヘッダ情報として記述しておいてもよい。このようにすることで、画像の特徴に応じてフィルタのON/OFFをコントロールすることができ、復号化画像の画質を高画質に維持することが可能となる。なお、フィルタヘッダ情報の送り方については、他の実施の形態で詳しく説明する。
なお、図1Bの予測処理(ステップS101)において、動き検出処理(ステップS101a)と動き補償処理(ステップS101b)の代わりに、面内予測処理が行われてもよい。つまり、予測処理(ステップS101)において、符号化制御部104は、符号化済みブロックの再構成画像に基づいて予測単位ごとに面内予測を行うことにより、処理対象ブロックの面内予測画像を予測画像として生成してもよい。この場合、画像符号化装置100は、動き検出部102を備えなくてもよい。
なお、画像符号化装置100は、必ずしも図1Aに示すすべての処理部を備える必要はなく、例えば、図1Bに示す画像符号化方法に含まれる各ステップの処理を実行する処理部のみを備えてもよい。
(実施の形態2)
図9Aは、本発明の実施の形態2に係る画像復号化装置900の機能構成を示すブロック図である。画像復号化装置900は、対象画像が符号化された画像符号化信号を復号化して復号化画像を生成する。画像復号化装置900は、可変長復号化部901と、逆量子化部902と、逆変換部903と、加算部904と、復号化制御部905と、境界フィルタ部906と、動き補償部907と、参照ピクチャ用メモリ908とを備える。
本実施の形態では、入力符号列BSは、本発明の実施の形態1に係る画像符号化装置100により生成された画像符号化信号とする。つまり、入力符号列BSは、入力画像をブロックごとに符号化した画像符号化信号とする。
参照ピクチャ用メモリ908は、復号化済みの画像である復号化画像を保持する。なお、参照ピクチャ用メモリ908は、画像復号化装置900に接続された外部メモリであってもよい。つまり、画像復号化装置900は、必ずしも参照ピクチャ用メモリ908を備えなくてもよい。
可変長復号化部901は、入力符号列BSを可変長復号化することにより、量子化係数と分割方法と動きベクトルとを取得する。分割方法は、処理対象ブロックを複数の予測単位(分割領域)に分割するための方法である。取得した量子化係数QCは逆量子化部902に出力され、分割方法ICは復号化制御部905に出力され、動きベクトルMVは動き補償部907に出力される。
逆量子化部902は、量子化係数を逆量子化する。そして、逆変換部903は、逆量子化部902における逆量子化結果を変換単位ごとに逆周波数変換することにより、復号化差分画像を生成する。このように生成された復号化差分画像DRは、加算部904に出力される。
復号化制御部905は、処理対象ブロックの分割方法ICを取得し、境界フィルタ部906および動き補償部907に出力する。
動き補償部907は、処理対象ブロックを予測単位に分割するための分割方法を取得する。さらに、動き補償部907は、取得した分割方法に従って分割した予測単位ごとに動きベクトルを取得する。そして、動き補償部907は、取得した動きベクトルに基づいて予測単位ごとに動き補償を行うことにより、処理対象ブロックの動き補償画像を予測画像として生成する。つまり、動き補償部907は、処理対象ブロックを分割した領域である予測単位ごとに予測処理を行うことにより、処理対象ブロックの予測画像を生成する。
つまり、動き補償部907は、分割方法と動きベクトルとに基づいて、参照ピクチャ用メモリ908から参照画像を取得することにより、処理対象ブロックの動き補償画像を生成する。ここで、処理対象ブロックが分割されている場合には、分割領域(予測単位)ごとに動きベクトルが記述されている。そこで、動き補償部907は、その動きベクトルにしたがって、分割領域ごとに参照画像を取得し、取得した参照画像を合成することで動き補償画像を生成する。
例えば図3に示すように、処理対象ブロック300が分割領域301と分割領域302とに分割されている場合、動き補償部907は、参照ピクチャ用メモリ908から参照画像303と参照画像304とを取得して、動き補償画像を予測画像MCとして生成する。そして、動き補償部907は、予測画像MCを境界フィルタ部906に出力する。
境界フィルタ部906は、変換単位と予測単位とを比較することにより、予測単位の境界のうち変換単位内に位置する境界を検出する。そして、境界フィルタ部906は、生成された予測画像において、検出された境界に対するフィルタ処理を行う。
なお、変換単位は、例えば、予測単位と変換単位との予め定められた対応関係に従って決定されればよい。また例えば、変換単位は、予測単位とは独立して決定されてもよい。
加算部904は、フィルタ処理後の予測画像と復号化差分画像とを加算することにより、処理対象ブロックの復号化画像を生成する。
次に、以上のように構成された画像復号化装置900によって実行される画像復号化方法について説明する。
図9Bは、本発明の実施の形態2に係る画像復号化方法における特徴的な処理の流れを示すフローチャートである。
図9Bに示すフローチャートが開始される前に、参照ピクチャ用メモリ908には、復号化画像が既に蓄積されているとする。この復号化画像が、符号列を復号する際の参照ピクチャとして用いられる。
まず、逆変換部903は、変換単位ごとに逆周波数変換処理を行うことにより、前記処理対象ブロックの復号化差分画像を生成する(ステップS901)。
次に、動き補償部907は、処理対象ブロックを分割した領域である予測単位ごとに予測処理を行うことにより、処理対象ブロックの予測画像を生成する(ステップS902)。具体的には、動き補償部907は、まず、予測単位ごとに動きベクトルを取得する(ステップS902a)。続いて、動き補償部907は、取得された動きベクトルに基づいて予測単位ごとに動き補償を行うことにより、処理対象ブロックの動き補償画像を予測画像として生成する(ステップS902b)。
境界フィルタ部906は、生成された予測画像において、予測単位の境界に対するフィルタ処理を行う(ステップS903)。この境界フィルタ部906の動作について、図10を用いて説明する。
図10は、本発明の実施の形態2に係る境界フィルタ処理の流れを示すフローチャートである。具体的には、図10は、境界フィルタ部906が復号化制御部905から取得する分割方法に基づいて予測画像に対してフィルタ処理を行う際の動作を説明するためのフローチャートである。
境界フィルタ部906は、動き補償部907から処理対象ブロックの予測画像を取得し、さらに復号化制御部905から処理対象ブロックの分割方法を取得する(ステップS1001)。
次に、境界フィルタ部906は、変換単位内に分割領域の境界があるか否かを判定する(ステップS1002)。つまり、境界フィルタ部105は、変換単位と分割領域とを比較することにより、分割領域の境界のうち変換単位内に位置する境界を検出する。
具体的には、境界フィルタ部906は、分割方法に基づいて、分割領域の形状情報を取得する。そして、境界フィルタ部906は、例えば図5に示すように、分割方法に応じて予め決められている変換単位と分割領域とを比較し、変換単位内に分割領域の境界があるかどうかを判定する。この比較処理は、実施の形態1のステップS402と同様であるため詳細な説明を省略する。
ここで、処理対象境界が検出されなかった場合(ステップS1002でNO)、処理対象ブロックの予測画像においてフィルタ処理は行われず、境界フィルタ処理は終了する。
一方、処理対象境界が検出された場合(ステップS1002でYES)、境界フィルタ部906は、処理対象境界(例えば、図6(c)に示す処理対象境界)に対するフィルタ処理を行う(ステップS1003)。このステップS1003のフィルタ処理については、実施の形態1のステップS403と同様であるため詳細な説明を省略する。境界フィルタ部105は、フィルタ処理後の予測画像PRを加算部904に出力する。
次に、加算部904は、復号化差分画像DRとフィルタ処理後の予測画像PRとを加算することにより、処理対象ブロックの復号化画像DCを生成する(ステップS904)。このように生成された復号化画像DCは、参照ピクチャ用メモリ908に出力される。つまり、復号化画像DCは、出力画像であると共に、以降の復号化において用いられる参照ピクチャである。
以上のように、本発明の実施の形態2に係る画像復号化装置900は、本発明の実施の形態1に係る画像符号化方法により生成された符号列を復号化する際に、各処理対象ブロックの分割情報を取得する。そして、画像復号化装置900は、その分割情報、および符号列中に記述されている動きベクトルまたは既に復号化されている周囲動きベクトルに従って予測単位ごとに動き補償を行うことにより、処理対象ブロックの動き補償画像を予測画像として生成する。このように生成された予測画像において、予測単位内に位置する分割領域の境界に対してフィルタ処理を行う。そして、画像復号化装置900は、フィルタ処理後の予測画像と復号化差分画像とを加算することにより、復号化画像を生成する。
このような動作により、本発明の実施の形態1に係る画像符号化方法により生成された符号列を正しく復号化することができる。
なお、分割方法および変換単位は、図5に示す分割方法および変換単位に限定する必要はない。変換単位内に分割領域の境界が位置する場合には、上記と同様の効果を奏する。
なお、本実施の形態においては、画像復号化装置900は、実施の形態1と同様に、変換単位内にある分割領域の境界のすべてに対してフィルタ処理を行っているが、必ずしもすべてに対してフィルタ処理を行う必要はない。例えば、互いに隣接する2つの分割領域において、動きベクトルが同一であり、参照ピクチャ内で隣接する領域から参照画像を取得している場合には、当該2つの分割領域の間の境界に対するフィルタ処理はスキップされてもよい。こうすることで、フィルタ処理の処理量を削減し、予測画像が過剰にフィルタ処理されることを抑制することができ、フィルタ処理による画質の劣化(画像のぼけ)を抑制することができる。
なお、フィルタ処理をスキップすることを示す情報がストリームのヘッダ情報に記述されている場合、当該情報を復号化することにより、画像の特徴に応じてフィルタのON/OFFをコントロールすることができ、復号化画像の画質を高画質に維持することが可能となる。なお、フィルタヘッダ情報の復号化方法については、他の実施の形態で詳しく説明する。
なお、実施の形態1と同様に、フィルタ処理の対象となる、処理対象境界の近傍画素の決定方法については、実施の形態3に詳しく説明し、近傍画素に対するフィルタ処理の方法については、実施の形態4に詳しく説明する。
なお、画像復号化装置900は、必ずしも図9Aに示すすべての処理部を備える必要はなく、例えば、図9Bに示す画像復号化方法に含まれる各ステップの処理を実行する処理部のみを備えてもよい。
(実施の形態3)
本発明の実施の形態3では、実施の形態1および実施の形態2における処理対象境界に対するフィルタ処理について説明する。特に、フィルタ処理の対象となる画素であるフィルタ対象画素の決定方法について詳しく説明する。
ここで、フィルタ処理を掛けたい部分は、変換単位内に位置する予測単位の境界(処理対象境界)である。このとき、処理対象境界の近傍の画素であってフィルタ処理の対象となる画素であるフィルタ対象画素の決定方法について、図8に示すフィルタ処理方向に一列に並んでいる画素p3、p2、p1、p0、q0、q1、q2、q3を用いて詳しく説明する。なお、画素p3、p2、p1、p0、q0、q1、q2、q3の画素値は、それぞれp3、p2、p1、p0、q0、q1、q2、q3とする。
図11は、本発明の実施の形態3に係るフィルタ対象画素の決定方法の処理の流れを示すフローチャートである。まず、境界フィルタ部105または906(以下、境界フィルタ部105を代表して記載)は、ストリームのヘッダ情報に記述されているフィルタのON/OFFを示すフィルタ情報を取得する。そして、境界フィルタ部105は、フィルタ情報がフィルタOFFを示す情報であるかどうかを判定する(ステップS1101)。
ここで、フィルタ情報がフィルタOFFを示す情報である場合(ステップS1101でYES)、境界フィルタ部105は、処理対象境界の近傍の画素のすべてがフィルタ対象画素ではないと決定する(ステップS1102)。一方、フィルタ情報がフィルタONを示す情報である場合(ステップS1101でNO)、境界フィルタ部105は、画素p0および画素q0をフィルタ対象画素と決定する(ステップS1103)。次に、境界フィルタ部105は、画素p1と画素p0との画素値の差分の絶対値と予め決められた閾値THとを比較する(ステップS1104)。ここで閾値THは、例えば(式1)で与えられる値とする。
ここでQPは量子化精度を表す量子化パラメタである。また、Offsetは、調整パラメタとして、ファイルヘッダ情報に記述される。
なお、閾値THは、量子化パラメタQPが大きくなるほど、大きくなるように決定されればよく、必ずしも(式1)に従って決定される必要はない。また、閾値THは、ファイルヘッダ情報に記述されてもよい。
ここで、差分の絶対値が閾値THより小さい場合(ステップS1104でYES)、境界フィルタ部105は、さらに画素p1をフィルタ対象画素と決定する(ステップS1105)。一方、差分の絶対値が閾値TH以上である場合(ステップS1104でNO)、次のステップS1106に進む。
次に、境界フィルタ部105は、ステップS1104と同様に画素q1と画素q0との画素値の差分の絶対値と閾値THとを比較する(ステップS1106)。なお、この閾値THは、ステップS1104と同じ値を用いる。
ここで、差分の絶対値が閾値THより小さい場合(ステップS1106でYES)、境界フィルタ部105は、さらに画素q1をフィルタ対象画素と決定し(ステップS1107)、フィルタ対象画素の決定処理を終了する。一方、差分の絶対値が閾値TH以上である場合は(ステップS1106でNO)、そのままフィルタ対象画素の決定処理を終了する。
なお、閾値THは、一例として(式1)に示す量子化パラメタQPに依存して変化する値であったが、処理対象境界に隣接する予測単位間における動きベクトルの差に依存して変化する値であっても良い。例えば、動きベクトルのX成分の差分の絶対値とY成分の差分の絶対値との和MVDが大きくなるほど、閾値THが大きくなるように決定されてもよい。
動きベクトルの差が大きい場合には、処理対象境界における画像特性の変化が異なると考えられる。したがって、動きベクトルの差に依存して閾値THを変化させることにより、画像の特性に適応してフィルタ対象画素を決定することができる。
また、前記MVDと量子化パラメタQPとの両方に依存して変化するように、閾値THが決定されてもよい。
上記の方法により、フィルタ対象画素が決定される。
なお、ここでは、境界フィルタ部105は、画素p0、p1、q0、q1しかフィルタ対象画素と決定するか否かの判定をしていないが、さらに画素p2、画素q2についても判定をしてもよい。その場合は、境界フィルタ部105は、隣接画素がフィルタ対象画素(例えばp1)であることを前提として、差分の絶対値(例えば|p2−p1|)と閾値とを比較することにより、フィルタ対象画素と決定するか否かを判定することができる。
なお、ステップS1101において、フィルタのON/OFFを示すフィルタ情報がストリームのヘッダ情報に記述されている場合について説明したが、必ずしもこのようなフィルタ情報がヘッダ情報に記述される必要はない。例えば、予め符号化方法、復号化方法でフィルタのON/OFFが決定されていれば、ヘッダ情報にフィルタ情報が記述されなくてもよい。この場合、ヘッダ情報を削減することができる。
また例えば、ヘッダ情報に境界画素数を示すフィルタ情報が記述されてもよい。この場合には、図11のステップS1101において、境界フィルタ部105は、フィルタ情報が示す画素数に従ってフィルタ対象画素を決定すればよい。例えば画素数が1の場合、境界フィルタ部105は、画素p0、q0をフィルタ対象画素と決定すればよい。また、例えば画素数が2の場合、境界フィルタ部105は、画素p1、p0、q0、q1をフィルタ対象画素と決定すればよい。これにより、境界フィルタ部105の処理量を大幅に削減することができる。
なお、ヘッダ情報の送り方については、他の実施の形態で詳しく説明する。
(実施の形態4)
本発明の実施の形態4では、実施の形態1および実施の形態2における処理対象境界に対するフィルタ処理について説明する。具体的には、実施の形態3で決定されたフィルタ対象画素に対するフィルタ処理について詳しく説明する。
ここで、フィルタ処理対象画素は、実施の形態3に示す方法により既に決められているとする。また、図8に示すフィルタ処理方向に一列に並んでいる画素インデックスp3、p2、p1、p0、q0、q1、q2、q3を用いてフィルタ処理を説明する。なお、画素p3、p2、p1、p0、q0、q1、q2、q3の画素値は、それぞれp3、p2、p1、p0、q0、q1、q2、q3とする。また、以下では、実施の形態1に係る画像符号化装置100がフィルタ処理を行う場合について説明する。
図12は、本発明の実施の形態4に係るフィルタ処理の一例を説明するための模式図である。図12において、処理対象ブロック1200が水平4画素、垂直8画素の分割領域1201と分割領域1202とに分割されている。処理対象ブロック1200は変換単位であり、分割領域1201および分割領域1202は予測単位である。
この場合、符号化制御部104は、参照ピクチャ用メモリ103から参照画像1203および参照画像1204を取得する。そして、符号化制御部104は、参照画像1203および参照画像1204を合成して、処理対象ブロックの予測画像(動き補償画像)を生成する。
例えば、すべてのラインにおいてフィルタ対象画素が画素p0およびq0である場合、境界フィルタ部105は、参照画像1203に隣接する参照画像領域1205と、参照画像1204に隣接する参照画像領域1206とを用いて、フィルタ処理を行う。例えば、境界フィルタ部105は、重複した領域(処理対象ブロック1200のうち、クロスハッチで示す部分)を画素単位で算出した平均値をフィルタ処理後の画素値と決定する。
なお、ここでは、境界フィルタ部105は、2つの参照画像の平均値を算出することにより、処理対象境界に隣接する画素の画素値を決定した。しかし、境界フィルタ部105は、(式2)のようにフィルタ処理を行ってもよい。
ここでd0、d1、d2は、処理対象境界からの距離ごとに決められるフィルタ係数であり、0.5〜1の間の値をとる。例えば、d0=0.5、d1=0.75、d2=0.875である。これらの値は、画像符号化方法、または画像復号化方法で共通する値として予め決められていてもよいし、ストリームのヘッダ情報に記述されてもよい。
フィルタの強度を大きくする(平滑度を強くする)場合には、フィルタ係数d0、d1、d2を0.5に近い値にすればよい。
なお、境界フィルタ部105は、(式2)を変形した(式3)に従って、シフトダウン、およびシフトアップでフィルタ処理を行ってもよい。例えば、(式2)におけるd0=0.5、d1=0.75、d2=0.875は、(式3)において、A=1、B=1、C=1、D=3、E=2、F=1、G=7、H=3、I=1と表現することができる。このように(式3)に従ってフィルタ処理を行う場合、ヘッダ情報の情報量を削減することができ、かつ、フィルタ処理の処理量を削減することができる。
上記に示す方法により、境界フィルタ部105は、決められたフィルタ対象画素に対して、フィルタ処理を行うことができる。なお、境界フィルタ部105は、参照ピクチャ用メモリ103から参照画像を取得するときに、分割領域(予測単位)よりも大きな領域の画像を取得することにより、メモリアクセスを減らすことができる。
なお、境界フィルタ部105は、上記とは別の方法でフィルタ処理を行ってもよい。境界フィルタ部105は、例えば(式4)に従ってフィルタ処理を行ってもよい。ここでは、画素q1、画素q0、画素p0、および画素p1のフィルタ処理後の画素値は、それぞれ、q’1、q’0、p’0、およびp’1と表されている。
ここで、c0,0、c0,1、c0,2、c0,3、c1,0、c1,1、c1,2、c1,3は、フィルタ係数であり、例えば(式5)で表される。
(式5)のフィルタ係数によって実現されるフィルタ処理は、図8(b)の画像を図8(c)の画像のように、処理対象境界における画素値の変化を平滑化する。なお、フィルタ係数は、(式5)に限るものではなく、例えば(式6)のように単純化した値が設定されてもよい。
この場合、強いフィルタ(平滑度を強くする)として動作する。こちらの手法でフィルタ処理を行う場合、動き補償のための画素データの取得量を減らすことができ、処理量を減らすことが可能である。
なお、ここでは、処理対象境界からの距離が2画素までの画素がフィルタ対象画素である場合について説明したが、処理対象境界からの距離が3画素までの画素がフィルタ対象画素である場合にも、フィルタ係数を増やすことにより上記と同様にフィルタ処理を行うことが可能である。
なお、フィルタの種類およびフィルタの係数もしくは、フィルタの強度を表すコードがヘッダ情報に記述されてもよい。このようにすることで、変換単位内において自然画像には存在しない急峻なエッジを取り除くことができる。その結果、予測画像を入力画像に近づけることができるので、差分画像を変換処理により効率的に変換することが可能となり、符号量を削減することができる。
なお、ここでは処理対象境界が水平方向および垂直方向である場合について説明したが、処理対象境界が斜め方向である場合にも上記と同様に処理することができる。
なお、フィルタヘッダ情報の送り方については、他の実施の形態で詳しく説明する。
(実施の形態5)
次に、本発明の実施の形態5について説明する。本実施の形態では、画像符号化装置は、複数のフィルタ処理の方法の中から最適なフィルタ処理の方法を決定し、決定したフィルタ処理の方法を示すフィルタ情報を画像符号化信号中に記述する。
図13は、本発明の実施の形態5に係る画像符号化装置の機能構成を示すブロック図である。図13に示すように、画像符号化装置1300は、フレームメモリ1301と、動き検出部1302と、参照ピクチャ用メモリ1303と、符号化制御部1304と、境界フィルタ部1305と、差分部1306と、変換部1307と、量子化部1308と、可変長符号化部1309と、逆量子化部1310と、逆変換部1311と、加算部1312と、フィルタ情報記述部1313とを備える。画像符号化装置1300は、図1の画像符号化装置100が備える構成要素に加えて、フィルタ情報記述部1313を備える。
なお、画像符号化装置100と共通の処理ブロックのうち、境界フィルタ部1305および可変長符号化部1309を除く処理ブロックは、実施の形態1と同じように動作するので説明を省略する。
境界フィルタ部1305の動作について、図14を用いて説明する。図14は、境界フィルタ部1305が分割方法に基づいて予測画像MCに対してフィルタ処理を行う際の動作を説明するためのフローチャートである。
境界フィルタ部1305は、予測画像MCと当該予測画像MCに対応する分割方法とを符号化制御部1304から取得する(ステップS1401)。
次に、境界フィルタ部1305は、変換単位内に分割領域の境界があるか否かを判定する(ステップS1402)。つまり、境界フィルタ部1305は、変換単位と分割領域とを比較することにより、分割領域の境界のうち変換単位内に位置する境界を検出する。
具体的には、境界フィルタ部1305は、予測画像MCに対応する分割方法に基づいて、分割領域の形状情報を取得する。そして、境界フィルタ部1305は、例えば図5に示すように、分割方法に応じて予め決められている変換単位と分割領域とを比較し、変換単位内に分割領域の境界(処理対象境界)があるかどうかを判定する。なお、ステップS1402の処理は、実施の形態1で説明したステップS402の処理と同様であるため詳細な説明を省略する。
ここで、処理対象境界が検出されなかった場合(ステップS1402でNO)、処理対象ブロックの予測画像においてフィルタ処理は行われず、境界フィルタ処理は終了する。
一方、処理対象境界が検出された場合(ステップS1402でYES)、境界フィルタ部1305は、処理対象境界(例えば、図6(c)に示す処理対象境界)に対する複数の方法のフィルタ処理それぞれに対して評価値を算出する(ステップS1403)。ここでは、境界フィルタ部1305は、実施の形態4で説明したフィルタ処理の方法ごとに評価値を求める。フィルタ処理の方法は、例えば、フィルタ無し、(式2)のフィルタ処理(係数(0.5,0.7,0.825))、(式2)のフィルタ処理(係数(0.5,0,5,0.5))、および(式5)のフィルタ処理の4種類の方法である。この方法の組合せは一例であり、例えばさらに多くの方法の組合せでもよい。
評価値としては、フィルタ処理後の予測画像と入力画像との差分絶対値和とフィルタ方法およびフィルタ係数の符号量との重み付け和を用いることができる。この場合、評価値が小さいほど評価が高くなる。
また、評価値は、変換単位の変換処理(例えば、符号化で使用する変換もしくはアダマール変換等)後の値の和であってもよい。これにより、さらにフィルタの効果を適切に評価することができる。
境界フィルタ部1305は、複数のフィルタ処理の方法の中から、最も評価が高い評価値(ここでは、最も値が小さい評価値)を有するフィルタ処理の方法(方法および係数)を決定する。そして、境界フィルタ部1305は、決定したフィルタ処理の方法を示すフィルタ情報をフィルタ情報記述部1313に出力する(ステップS1404)。
なお決定したフィルタ処理の方法が「フィルタ処理しない」という結果であった場合(ステップS1405でNO)、境界フィルタ部1305は、フィルタ処理を行わずに、動き補償画像(予測画像PR)をそのまま加算部1312および差分部1306に出力する。一方、フィルタ処理を行う場合(ステップS1405のYES)、境界フィルタ部1305は、処理対象境界に対して、ステップS1404で決められた方法に基づいてフィルタ処理を行い(ステップS1406)、フィルタ処理後を予測画像PRを加算部1312および差分部1306に出力する。
フィルタ情報記述部1313は、境界フィルタ部1305から得られるフィルタ情報をフィルタヘッダ情報として可変長符号化部1309に出力する。なお、フィルタ情報記述部1313の動作、およびフィルタヘッダ情報の記述方法については、他の実施の形態で詳しく説明する。
上記の本実施の形態に係る画像符号化方法により、複数のフィルタ処理の方法の中からフィルタ効果の高いフィルタ処理の方法を決定することができる。そして、そのように決定したフィルタ処理の方法に従って、変換単位内に位置する予測単位の境界にフィルタ処理を行うことができる。その結果、入力画像と予測画像との差分をより小さくすることができ、符号量を削減することができる。
なお、境界フィルタ部1305は、フィルタ処理の方法について全ての組合せについて評価値を算出していたが、評価値が予め決めた閾値を下回ったときに以降の評価値の算出を中止し、そのときのフィルタ処理の方法を最適なフィルタ処理の方法と決定してもよい。このようにすることで、フィルタ処理の方法を決定するための処理量を削減することができる。
さらに、図13に示すように、境界フィルタ部1305と変換部1307との間で変換単位TUを受け渡すことにより、境界フィルタ処理の有無を考慮した変換単位の変更を実現することができる。
図15は、分割方法に対する変換単位の変換サイズ候補の一例を示す図である。また、図16は、変換サイズの決定方法の処理の流れを示すフローチャートである。
まず、境界フィルタ部1305は、図15に示す変換サイズに対して順番に、分割方法に示される分割領域(予測単位)の境界が変換単位内にあるかどうかを判定する(ステップS1601)。例えば、変換サイズ8x8の場合、水平方向に3本ある境界が、処理対象境界として検出され、変換単位内に分割領域の境界があると判定される。
ここで、変換単位内に分割領域の境界がある場合(ステップS1601でYES)、境界フィルタ部1305は、図14で示す方法により、最適な評価値となるフィルタ処理の方法を決定し、そのフィルタ処理の方法と評価値とを保持する(ステップS1602)。ここで、例えば、変換単位内に分割領域の境界が3つある場合、境界フィルタ部1305は、3つの境界の評価値の和に基づいて、フィルタ処理の方法を決定すればよい。
一方、変換単位内に分割領域の境界がない場合(ステップS1601でNO)、境界フィルタ部1305は、評価値を計算し保持する(ステップS1603)。例えば、変換サイズ2x2の場合には、変換単位内に分割領域の境界が無いので、変換サイズ2x2ときの評価値が算出される。この場合も、前述と同じ評価値の算出方法(絶対差分和、もしくは差分値を変換単位で変換した値の和と変換サイズ情報およびフィルタ情報の符号量との重み付け和)を用いることができる。
全ての変換サイズの評価値が算出されれば、境界フィルタ部1305は、評価値に基づいて、変換単位の変換サイズおよびフィルタ処理の方法を決定する(ステップS1604)。決められた変換サイズは、フィルタ情報と共にフィルタ情報記述部1313に出力され、ストリームのヘッダ情報として符号列に記述される。
以上により、入力画像とフィルタ処理後の予測画像との差分がより小さくなるように、分割方法および変換サイズおよびフィルタ処理の方法を決定することができる。
なお、境界フィルタ部1305は、変換サイズについて全ての組合せについて評価値を算出したが、予め決めた閾値を下回ったときに以降の評価値の算出を中止し、そのときの変換サイズを最適な変換サイズと決定してもよい。このようにすることで、処理量を削減することができる。
(実施の形態6)
図17は、本発明の実施の形態6に係る画像復号化装置の機能構成を示すブロック図である。この画像復号化装置1700は、実施の形態5に係る画像符号化装置1300によって生成された符号列を復号する。
画像復号化装置1700は、可変長復号化部1701と、逆量子化部1702と、逆変換部1703と、加算部1704と、復号化制御部1705と、境界フィルタ部1706と、動き補償部1707と、参照ピクチャ用メモリ1708と、フィルタ情報復号化部1709とを備える。ここで、本実施の形態の画像復号化装置1700は、実施の形態2の画像復号化装置900にフィルタ情報復号化部1709を追加した構成であり、復号化制御部1705および境界フィルタ部1706の動作以外は全て同じ動作をする。
図18は、本発明の実施の形態6に係るフィルタ情報復号化処理の流れを示すフローチャートである。フィルタ情報復号化部1709は、可変長復号化部1701よりフィルタ情報の符号列を取得し、復号化する(ステップS1801)。フィルタ情報復号化部1709は、復号化することにより得られる、フィルタ境界決定情報(フィルタ境界決定のための閾値導出のためのオフセット値もしくは、閾値もしくは、境界画素数)およびフィルタ処理方法および強度または係数を、復号化制御部1705に出力する(ステップS1802)。なお、復号化制御部1705は、得られたフィルタ境界決定のための情報を境界フィルタ部1706に対し出力し、フィルタ処理方法が(式2)で示される場合には、動き補償部からの画像取得方法を変える。上記の動作を行うことにより、実施の形態5の画像符号化方法によって生成される符号列を正しく復号化することができる。
さらに、画像符号化方法が、変換単位サイズ(変換サイズ)を符号列に記述している場合についての動作の流れを図19に示す。
フィルタ情報復号化部1709は、可変長復号化部1701よりフィルタ情報および変換単位サイズの符号列を取得し、変換単位サイズとフィルタ情報とを復号化する(ステップS1901)。フィルタ情報復号化部1709は、復号化して得られた変換単位サイズを復号化制御部1705に出力する。復号化制御部1705は、変換単位サイズを逆変換部1703に出力する(ステップS1902)。また、フィルタ情報復号化部1709は、復号化して得られたフィルタ境界決定情報およびフィルタ処理方法(係数または強度)を復号化制御部1705に出力する(S1903)。
この動作により、変換処理単位が符号列中に記述されている場合であっても、本発明の復号化方法により、正しく符号列を復号化することができる。
(実施の形態7)
本発明の実施の形態7では、フィルタ決定のための情報、フィルタ処理のための変換単位サイズ等を示すフィルタヘッダ情報FltStrをストリームのヘッダ情報として記述し、符号化および復号化する方法を説明する。
図20は、本発明の実施の形態7に係る画像符号化方法における符号列BSの構成図である。図20(a)は少なくとも1画面で構成される動画シーケンスに対応する符号化信号である。この符号化信号は、全画面のデータであるシーケンスデータSeqDataと、全画面の全データに共通のデータであるシーケンスヘッダSeqHdrとで構成される。
フィルタヘッダ情報FltStrとは、フィルタ決定のための情報、フィルタ処理のための変換単位サイズ等を含む情報である。例えば、フィルタヘッダ情報FltStrは、変換単位内の処理対象境界にフィルタをON/OFFするための情報(例えばNO_TU_MC_FLT_FLG=0(OFF)、NO_TU_MC_FLT_FLG=1(ON))を含む。また、フィルタヘッダ情報FltStrは、フィルタがONの場合は、フィルタ決定のための閾値の算出に用いるOFFSET値、もしくは閾値TH、もしくは処理対象境界からの近傍画素数を、フィルタ決定のための情報として含むことができ、さらにフィルタ処理のための情報として、フィルタ処理の方法とフィルタ係数またはフィルタ強度の番号とを含むことができる。また、これらは全て含まれる必要はなく、一部の情報は画像符号化方法および画像復号化方法で予め決められた値が用いられてもよい。また、図21に示すような変換単位サイズによってテーブル2101、2102等を切り替えて、これらの情報の組み合わせを代表するコード番号を送ってもよい。なお、ここでフィルタ方法のオーバラップ型とは(式2)で示す算出式で処理するものとし、フィルタタップ型とは(式4)で示す算出式で処理するものとする。また、図21の例では、テーブルの切り替えには変換単位のサイズを用いたが、それに限定されない。
シーケンスヘッダには、フィルタヘッダ情報FltStrが含まれている。
図20(b)は、シーケンスデータSeqDataの構造を示す。シーケンスデータSeqDataは、1画面に対応するピクチャの符号化信号であるピクチャ信号PicStrを含んでいる。
図20(c)は、ピクチャ信号PicStrの構造を示す。ピクチャ信号PicStrは、1画面のデータであるピクチャデータPicDataと、1画面全体に共通のデータであるピクチャヘッダPicHdrとで構成される。ピクチャヘッダPicHdrには、フィルタヘッダ情報FltStrが含まれている。
図20(d)は、ピクチャデータPicDataの構造を示す。ピクチャデータPicDataは、複数のブロック単位の集合で構成されるスライスの符号化信号であるスライス信号SliceStrを含んでいる。
図20(e)は、スライス信号SliceStrの構造を示す。スライス信号SliceStrは、1スライスのデータであるスライスデータSliceDataと1スライスの全データに共通のデータであるスライスヘッダSliceHdrとで構成される。スライスヘッダSliceHdrにフィルタヘッダ情報FltStrが含まれることにより、スライスデータSliceData単位で受信した符号化信号を正しく復号化できる。
なお、シーケンスデータSeqDataに複数のピクチャ信号PicStrが含まれている場合には、全てのピクチャヘッダPicHdrにフィルタヘッダ情報FltStrが含まれる代わりに、一部のピクチャヘッダPicHdrにのみにフィルタヘッダ情報FltStrが含まれるようにしてもよい。同様に、ピクチャデータPicDataに複数のスライス信号SliceStrが含まれている場合は、全てのスライスヘッダSliceHdrにフィルタヘッダ情報FltStrが含まれる代わりに、一部のスライスヘッダSliceHdrのみにフィルタヘッダ情報FltStrが含まれるようにしてもよい。フィルタヘッダ情報FltStrの内容が各スライスで共通であれば、図20(e)に示すようにスライスヘッダSliceHdrにフィルタヘッダ情報FltStrが無い場合は、他のスライスヘッダSliceHdrのフィルタヘッダ情報FltStr代用することで、フィルタヘッダ情報FltStrの繰り返しによるビット数の増加を抑えることも可能である。
また、符号列BSが連続したビットストリームでなく、細切れのデータの単位であるパケット等で伝送される場合は、ヘッダ部とヘッダ以外のデータ部とを分離して別々に伝送してもよい。その場合は、図20のようにヘッダ部とデータ部とが1つのビットストリームとなることはない。しかしながら、パケットの場合は、ヘッダ部とデータ部とを伝送する順序が連続しなくても、データ部に対応するヘッダ部がデータ部とは別のパケットで伝送されるだけであり、1つのビットストリームとなっていなくても、概念は図20で説明したビットストリームの場合と同じである。
また、本実施の形態の復号化方法において、上記の手法で符号化された符号列BSは、次の手順で復号化される。まず、シーケンスヘッダSeqHdrに含まれるフィルタヘッダ情報FltStrを取得し、各情報を保持する。次に、ピクチャヘッダPicHdrに含まれるフィルタヘッダ情報FltStrを取得し、各情報を更新する。ここで、フィルタヘッダ情報FltStrが無い場合、もしくは一部が無い場合には、シーケンスヘッダSeqHdrに含まれた情報をそのまま保持する。同様に、スライスヘッダSliceHdr含まれるフィルタヘッダ情報FltStrを取得し、各情報を更新する。
このようにすることにより、上記符号列を正しく復号化することができる。
(実施の形態8)
本発明の実施の形態8では、面内予測画像において、変換単位内に予測単位の境界がある場合に、動き補償画像の場合と同様に、その境界にフィルタ処理を行う画像符号化方法について説明する。
図22は、本発明の実施の形態8に係る画像符号化装置の機能構成を示すブロック図である。図22に示すように、画像符号化装置2200は、差分部2201と、変換・量子化部2202と、逆量子化・逆変換部2203と、加算部2204と、符号化歪み除去部2205と、参照ピクチャ用メモリ2206と、面内予測部2207と、動き補償予測部2208と、動き検出部2209と、スイッチ2210と、可変長符号化部2211と、境界フィルタ部2212とを備える。参照ピクチャ用メモリ2206は、画像符号化装置2200に接続された外部メモリの形で構成してもよい。
入力画像が画像符号化装置2200に入力される。参照ピクチャ用メモリ2206には、符号化済み画像の復号化画像(再構成画像)が既に蓄積されており、これが入力画像を符号化する場合の参照ピクチャとして用いられるものとする。
なお、差分部2201は差分部106、変換・量子化部2202は変換部107および量子化部108、逆量子化・逆変換部2203は逆量子化部110および逆変換部111、加算部2204は加算部112、参照ピクチャ用メモリ2206は参照ピクチャ用メモリ103、境界フィルタ部2212は境界フィルタ部105、動き検出部2209は動き検出部102と同じように動作する。また、動き補償予測部2208、面内予測部2207およびスイッチ2210は、動き補償画像を予測画像MCとして生成する場合には、符号化制御部104と同じように動作する。
差分部2201は後述する方法で生成される予測画像PRと入力画像との差分画像を生成し、生成された差分画像を変換・量子化部2202に出力する。変換・量子化部2202は、入力される差分画像に対して変換、量子化処理を施すことにより量子化信号QDを生成し、生成した量子化信号QDを逆量子化・逆変換部2203と可変長符号化部2211とに出力する。逆量子化・逆変換部2203は、入力された量子化信号QDに対して逆量子化・逆変換処理を施して復号化差分画像を生成し、生成した復号化差分画像を加算部2204に出力する。加算部2204は、逆量子化・逆変換部2203より取得した復号化差分画像と予測画像PRとを加算することにより再構成画像を生成し、生成した再構成画像を符号化歪み除去部2205に出力する。
ここで、符号化歪み除去部2205は、変換単位の境界に対して、符号化歪み除去(デブロックフィルタ)をかける処理(例えば(式4)で示すフィルタを、変換単位の境界に対して処理する等)を行う。なお、符号化歪み除去部2205は、処理を省略することもできる。
予測画像MCの生成には、動き補償予測と面内予測とに大別され、スイッチ2210によって切り替えられる。
面内予測により予測画像MCを生成する場合について説明する。面内予測部2207は、参照ピクチャ用メモリ2206より参照ピクチャを取得する。そして、面内予測部2207は、取得した参照ピクチャに基づいて、予め決められた方法(例えば、隣接する画素を水平または垂直方向に引き伸ばすこと)で面内予測を行うことにより、処理対象ブロックの面内予測画像を生成し、スイッチ2210の「a」に出力する。スイッチ2210により「a」が選択された場合、面内予測画像が予測画像MCとして境界フィルタ部2212に出力される。さらに、面内予測の分割方法が境界フィルタ部2212に出力される。境界フィルタ部2212は、面内予測の分割領域の境界が変換単位内にある場合、その境界を処理対象境界として検出し、その境界にフィルタ処理を行う。
動き補償予測により予測画像MCを生成する場合について説明する。動き検出部2209は、処理対象ブロックに含まれる予測単位に対応する領域を、参照ピクチャより検出する。そして、動き検出部2209は、検出した領域の位置を示す動きベクトルMVを動き補償予測部2208と可変長符号化部2211とに出力する。なお、領域を検出する方法は、入力画像と参照ピクチャ内の検出対象画像との差分和と、動きベクトルMVと、の重み付け和等を用いることができ、この場合は、動き検出部2209は、予め決められた参照ピクチャ内の探索領域(例えば水平32画素、垂直16画素内)の中から最も小さい値をとる領域の位置を探索し、探索された領域の位置を示す動きベクトルMVを出力すればよい。
動き補償予測部2208は、取得した動きベクトルMVで示される参照ピクチャ内の画像を予測単位ごとに取り出し、処理対象ブロックの動き補償画像としてスイッチ2210の「b」に出力する。
スイッチ2210により「b」が選択された場合、動き補償画像が予測画像MCとして境界フィルタ部2212に出力される。さらに、動き補償の分割方法が境界フィルタ部2212に出力される。この場合、他の実施の形態と同様に境界フィルタ部2212は動作する。
スイッチ2210は、予測画像MCとして面内予測画像を出力するか、動き補償画像を出力するかを予め決められた方法で切り替える。つまり、スイッチ2210は、面内予測画像および動き補償画像の一方を予測画像MCとして選択する。例えば、スイッチ2210は、入力画像と面内予測画像との差分和と、入力画像と動き補償画像の差分和とを比較し、差分和が小さい方の画像を予測画像MCとして出力してもよい。予測画像PRの生成方法の情報を予測画像生成情報CIとして可変長符号化部2211に対して出力する。
なお、境界フィルタ部2212により決定するフィルタ情報を符号列に加える場合には、境界フィルタ部2212は、フィルタ情報を予測画像生成情報CIとともに可変長符号化部2211に出力してもよい。
可変長符号化部2211は、量子化信号QDと、動きベクトルMV、および予測画像生成情報CIに対して可変長符号化処理を施し、符号列BSとして出力する。
このような構成をとることにより、実施の形態1で説明する変換単位内に位置する予測単位の境界に対するフィルタ処理を面内予測において実現することができる。これにより、面内予測時にも、差分信号を小さくし、符号量を削減することができる。
なお、画像符号化装置2200は、面内予測部2207と動き補償予測部2208との両方を備えていたが、面内予測部2207のみを備えてもよい。この場合、動き検出部2209およびスイッチ2210は不要となる。
(実施の形態9)
本発明の実施の形態9では、面内予測画像において、変換単位内に予測単位の境界がある場合に、動き補償画像の場合と同様に、その境界にフィルタ処理を行う画像復号化方法について説明する。
図23は、本発明の実施の形態9に係る画像復号化装置の機能構成を示すブロック図である。図23に示すように、画像復号化装置2300は、可変長復号化部2301と、逆量子化・逆変換部2302と、加算部2303と、符号化歪み除去部2304と、参照ピクチャ用メモリ2305と、面内予測部2306と、動き補償予測部2307と、スイッチ2308と、境界フィルタ部2309とを備える。参照ピクチャ用メモリ2305は、画像復号化装置2300に接続された外部メモリの形で構成してもよい。
ここで参照ピクチャ用メモリ2305には、復号化済みの画像が既に蓄積されており、これが入力画像を復号化する場合の参照ピクチャとして用いられるものとする。
なお、逆量子化・逆変換部2302は逆量子化部902および逆変換部903、加算部2303は加算部904、参照ピクチャ用メモリ2305は参照ピクチャ用メモリ908、境界フィルタ部906はと同じように動作する。そして、動き補償部907は、動き補償予測部2307と参照ピクチャ用メモリ2305として表現され、復号化制御部905は動き補償予測部2307、面内予測部2306およびスイッチ2308として表現される。
符号列BSが画像復号化装置2300に入力される。可変長復号化部2301は、符号列BSを可変長復号化し、予測画像生成情報CIと動き情報MVと量子化信号QDとを取得する。そして、可変長復号化部2301は、予測画像生成情報CIをスイッチ2308および境界フィルタ部2309に出力し、動き情報MVを動き補償予測部2307に出力し、量子化信号QDを逆量子化・逆変換部2302に出力する。
逆量子化・逆変換部2302は、量子化信号QDに対して逆量子化・逆変換処理を施して復号化差分画像を生成し、加算部2303に出力する。加算部2303は、復号化差分画像と、後述する予測画像PRとを加算し、符号化歪み除去部2304に出力する。
符号化歪み除去部2304は、入力された信号に対して符号化歪み除去処理を施し、参照ピクチャ用メモリ2305に対して復号化画像として出力する。
ここで、符号化歪み除去部2304は、変換単位の境界に対して、符号化歪み除去(デブロックフィルタ)をかける処理(例えば(式4)で示すフィルタを、変換処理単位の境界に対して処理する等)を行い、省略することもできる。
なお、予測画像の生成方法については、予測画像生成情報CIに基づいて、実施の形態8で示した画像符号化装置と同様に、参照ピクチャ用メモリ2305から取得する参照ピクチャに基づき、面内予測部2306または、動き情報MVと動き補償予測部2307により生成される。生成された画像は境界フィルタ部2309に対して出力され、変換処理単位内にある、予測画像境界に対してフィルタ処理される。なお、符号列に対してフィルタ情報が符号化されている場合には、可変長復号化部2301において復号化され、予測画像生成情報CIとともに、境界フィルタ部2309に入力され、フィルタ情報に基づいたフィルタ処理を施す。
このような構成をとることにより、実施の形態8で説明する変換処理単位内の予測境界に対するフィルタ処理を面内予測に対しても実施した符号列を正しく復号化することができる。
(実施の形態10)
上記各実施の形態で示した画像符号化方法または画像復号化方法の構成を実現するためのプログラムを記憶メディアに記録することにより、上記各実施の形態で示した処理を独立したコンピュータシステムにおいて簡単に実施することが可能となる。記憶メディアは、磁気ディスク、光ディスク、光磁気ディスク、ICカード、半導体メモリ等、プログラムを記録できるものであればよい。
さらにここで、上記各実施の形態で示した画像符号化方法や画像復号化方法の応用例とそれを用いたシステムを説明する。
図24は、コンテンツ配信サービスを実現するコンテンツ供給システムex100の全体構成を示す図である。通信サービスの提供エリアを所望の大きさに分割し、各セル内にそれぞれ固定無線局である基地局ex106、ex107、ex108、ex109、ex110が設置されている。
このコンテンツ供給システムex100は、インターネットex101にインターネットサービスプロバイダex102および電話網ex104、および基地局ex106からex110を介して、コンピュータex111、PDA(Personal Digital Assistant)ex112、カメラex113、携帯電話ex114、ゲーム機ex115などの各機器が接続される。
しかし、コンテンツ供給システムex100は図24のような構成に限定されず、いずれかの要素を組合せて接続するようにしてもよい。また、固定無線局である基地局ex106からex110を介さずに、各機器が電話網ex104に直接接続されてもよい。また、各機器が近距離無線等を介して直接相互に接続されていてもよい。
カメラex113はデジタルビデオカメラ等の動画撮影が可能な機器であり、カメラex116はデジタルカメラ等の静止画撮影、動画撮影が可能な機器である。また、携帯電話ex114は、GSM(登録商標)(Global System for Mobile Communications)方式、CDMA(Code Division Multiple Access)方式、W−CDMA(Wideband−Code Division Multiple Access)方式、若しくはLTE(Long Term Evolution)方式、HSPA(High Speed Packet Access)の携帯電話機、またはPHS(Personal Handyphone System)等であり、いずれでも構わない。
コンテンツ供給システムex100では、カメラex113等が基地局ex109、電話網ex104を通じてストリーミングサーバex103に接続されることで、ライブ配信等が可能になる。ライブ配信では、ユーザがカメラex113を用いて撮影するコンテンツ(例えば、音楽ライブの映像等)に対して上記各実施の形態で説明したように符号化処理を行い、ストリーミングサーバex103に送信する。一方、ストリーミングサーバex103は要求のあったクライアントに対して送信されたコンテンツデータをストリーム配信する。クライアントとしては、上記符号化処理されたデータを復号化することが可能な、コンピュータex111、PDAex112、カメラex113、携帯電話ex114、ゲーム機ex115等がある。配信されたデータを受信した各機器では、受信したデータを復号化処理して再生する。
なお、撮影したデータの符号化処理はカメラex113で行っても、データの送信処理をするストリーミングサーバex103で行ってもよいし、互いに分担して行ってもよい。同様に配信されたデータの復号化処理はクライアントで行っても、ストリーミングサーバex103で行ってもよいし、互いに分担して行ってもよい。また、カメラex113に限らず、カメラex116で撮影した静止画像および/または動画像データを、コンピュータex111を介してストリーミングサーバex103に送信してもよい。この場合の符号化処理はカメラex116、コンピュータex111、ストリーミングサーバex103のいずれで行ってもよいし、互いに分担して行ってもよい。
また、これら符号化・復号化処理は、一般的にコンピュータex111や各機器が有するLSIex500において処理する。LSIex500は、ワンチップであっても複数チップからなる構成であってもよい。なお、動画像符号化・復号化用のソフトウェアをコンピュータex111等で読み取り可能な何らかの記録メディア(CD−ROM、フレキシブルディスク、ハードディスクなど)に組み込み、そのソフトウェアを用いて符号化・復号化処理を行ってもよい。さらに、携帯電話ex114がカメラ付きである場合には、そのカメラで取得した動画データを送信してもよい。このときの動画データは携帯電話ex114が有するLSIex500で符号化処理されたデータである。
また、ストリーミングサーバex103は複数のサーバや複数のコンピュータであって、データを分散して処理したり記録したり配信するものであってもよい。
以上のようにして、コンテンツ供給システムex100では、符号化されたデータをクライアントが受信して再生することができる。このようにコンテンツ供給システムex100では、ユーザが送信した情報をリアルタイムでクライアントが受信して復号化し、再生することができ、特別な権利や設備を有さないユーザでも個人放送を実現できる。
なお、コンテンツ供給システムex100の例に限らず、図25に示すように、デジタル放送用システムex200にも、上記各実施の形態の少なくとも画像符号化装置または画像復号化装置のいずれかを組み込むことができる。具体的には、放送局ex201では映像データに音楽データなどが多重化された多重化データが電波を介して通信または衛星ex202に伝送される。この映像データは上記各実施の形態で説明した画像符号化方法により符号化されたデータである。これを受けた放送衛星ex202は、放送用の電波を発信し、この電波を衛星放送の受信が可能な家庭のアンテナex204が受信する。受信した多重化データを、テレビ(受信機)ex300またはセットトップボックス(STB)ex217等の装置が復号化して再生する。
また、DVD、BD等の記録メディアex215に記録した多重化データを読み取り復号化する、または記録メディアex215に映像信号を符号化し、さらに場合によっては音楽信号と多重化して書き込むリーダ/レコーダex218にも上記各実施の形態で示した画像復号化装置または画像符号化装置を実装することが可能である。この場合、再生された映像信号はモニタex219に表示され、多重化データが記録された記録メディアex215により他の装置やシステムにおいて映像信号を再生することができる。また、ケーブルテレビ用のケーブルex203または衛星/地上波放送のアンテナex204に接続されたセットトップボックスex217内に画像復号化装置を実装し、これをテレビのモニタex219で表示してもよい。このときセットトップボックスではなく、テレビ内に画像復号化装置を組み込んでもよい。
図26は、上記各実施の形態で説明した画像復号化方法および画像符号化方法を用いたテレビ(受信機)ex300を示す図である。テレビex300は、上記放送を受信するアンテナex204またはケーブルex203等を介して映像データに音声データが多重化された多重化データを取得、または出力するチューナex301と、受信した多重化データを復調する、または外部に送信する多重化データに変調する変調/復調部ex302と、復調した多重化データを映像データと、音声データとに分離する、または信号処理部ex306で符号化された映像データ、音声データを多重化する多重/分離部ex303を備える。
また、テレビex300は、音声データ、映像データそれぞれを復号化する、またはそれぞれの情報を符号化する音声信号処理部ex304、映像信号処理部 ex305を有する信号処理部ex306と、復号化した音声信号を出力するスピーカex307、復号化した映像信号を表示するディスプレイ等の表示部 ex308を有する出力部ex309とを有する。さらに、テレビex300は、ユーザ操作の入力を受け付ける操作入力部ex312等を有するインタフェース部ex317を有する。さらに、テレビex300は、各部を統括的に制御する制御部ex310、各部に電力を供給する電源回路部ex311を有する。インタフェース部ex317は、操作入力部ex312以外に、リーダ/レコーダex218等の外部機器と接続されるブリッジex313、SDカード等の記録メディアex216を装着可能とするためのスロット部ex314、ハードディスク等の外部記録メディアと接続するためのドライバex315、電話網と接続するモデムex316等を有していてもよい。なお記録メディアex216は、格納する不揮発性/揮発性の半導体メモリ素子により電気的に情報の記録を可能としたものである。テレビex300の各部は同期バスを介して互いに接続されている。
まず、テレビex300がアンテナex204等により外部から取得した多重化データを復号化し、再生する構成について説明する。テレビex300は、リモートコントローラex220等からのユーザ操作を受け、CPU等を有する制御部ex310の制御に基づいて、変調/復調部ex302で復調した多重化データを多重/分離部ex303で分離する。さらにテレビex300は、分離した音声データを音声信号処理部ex304で復号化し、分離した映像データを映像信号処理部ex305で上記各実施の形態で説明した復号化方法を用いて復号化する。復号化した音声信号、映像信号は、それぞれ出力部ex309から外部に向けて出力される。出力する際には、音声信号と映像信号が同期して再生するよう、バッファex318、ex319等に一旦これらの信号を蓄積するとよい。また、テレビex300は、放送等からではなく、磁気/光ディスク、SDカード等の記録メディアex215、ex216から多重化データを読み出してもよい。次に、テレビex300が音声信号や映像信号を符号化し、外部に送信または記録メディア等に書き込む構成について説明する。テレビex300は、リモートコントローラex220等からのユーザ操作を受け、制御部ex310の制御に基づいて、音声信号処理部ex304で音声信号を符号化し、映像信号処理部ex305で映像信号を上記各実施の形態で説明した符号化方法を用いて符号化する。符号化した音声信号、映像信号は多重/分離部ex303で多重化され外部に出力される。多重化する際には、音声信号と映像信号が同期するように、バッファex320、ex321等に一旦これらの信号を蓄積するとよい。なお、バッファex318、 ex319、ex320、ex321は図示しているように複数備えていてもよいし、1つ以上のバッファを共有する構成であってもよい。さらに、図示している以外に、例えば変調/復調部ex302や多重/分離部ex303の間等でもシステムのオーバフロー、アンダーフローを避ける緩衝材としてバッファにデータを蓄積することとしてもよい。
また、テレビex300は、放送等や記録メディア等から音声データ、映像データを取得する以外に、マイクやカメラのAV入力を受け付ける構成を備え、それらから取得したデータに対して符号化処理を行ってもよい。なお、ここではテレビex300は上記の符号化処理、多重化、および外部出力ができる構成として説明したが、これらの処理を行うことはできず、上記受信、復号化処理、外部出力のみが可能な構成であってもよい。
また、リーダ/レコーダex218で記録メディアから多重化データを読み出す、または書き込む場合には、上記復号化処理または符号化処理はテレビ ex300、リーダ/レコーダex218のいずれで行ってもよいし、テレビex300とリーダ/レコーダex218が互いに分担して行ってもよい。
一例として、光ディスクからデータの読み込みまたは書き込みをする場合の情報再生/記録部ex400の構成を図27に示す。情報再生/記録部ex400は、以下に説明する要素ex401、ex402、ex403、ex404、ex405、ex406、ex407を備える。光ヘッドex401は、光ディスクである記録メディアex215の記録面にレーザスポットを照射して情報を書き込み、記録メディアex215の記録面からの反射光を検出して情報を読み込む。変調記録部ex402は、光ヘッドex401に内蔵された半導体レーザを電気的に駆動し記録データに応じてレーザ光の変調を行う。再生復調部 ex403は、光ヘッドex401に内蔵されたフォトディテクタにより記録面からの反射光を電気的に検出した再生信号を増幅し、記録メディアex215に記録された信号成分を分離して復調し、必要な情報を再生する。バッファex404は、記録メディアex215に記録するための情報および記録メディア ex215から再生した情報を一時的に保持する。ディスクモータex405は記録メディアex215を回転させる。サーボ制御部ex406は、ディスクモータex405の回転駆動を制御しながら光ヘッドex401を所定の情報トラックに移動させ、レーザスポットの追従処理を行う。システム制御部 ex407は、情報再生/記録部ex400全体の制御を行う。上記の読み出しや書き込みの処理はシステム制御部ex407が、バッファex404に保持された各種情報を利用し、また必要に応じて新たな情報の生成・追加を行うと共に、変調記録部ex402、再生復調部ex403、サーボ制御部ex406を協調動作させながら、光ヘッドex401を通して、情報の記録再生を行うことにより実現される。システム制御部ex407は例えばマイクロプロセッサで構成され、読み出し書き込みのプログラムを実行することでそれらの処理を実行する。
以上では、光ヘッドex401はレーザスポットを照射するとして説明したが、近接場光を用いてより高密度な記録を行う構成であってもよい。
図28に光ディスクである記録メディアex215の模式図を示す。記録メディアex215の記録面には案内溝(グルーブ)がスパイラル状に形成され、情報トラックex230には、予めグルーブの形状の変化によってディスク上の絶対位置を示す番地情報が記録されている。この番地情報はデータを記録する単位である記録ブロックex231の位置を特定するための情報を含み、記録や再生を行う装置において情報トラックex230を再生し番地情報を読み取ることで記録ブロックを特定することができる。また、記録メディアex215は、データ記録領域ex233、内周領域ex232、外周領域ex234を含んでいる。ユーザデータを記録するために用いる領域がデータ記録領域ex233であり、データ記録領域ex233より内周または外周に配置されている内周領域ex232と外周領域ex234は、ユーザデータの記録以外の特定用途に用いられる。情報再生/記録部ex400は、このような記録メディアex215のデータ記録領域ex233に対して、符号化された音声データ、映像データまたはそれらのデータを多重化した多重化データの読み書きを行う。
以上では、1層のDVD、BD等の光ディスクを例に挙げ説明したが、これらに限ったものではなく、多層構造であって表面以外にも記録可能な光ディスクであってもよい。また、ディスクの同じ場所にさまざまな異なる波長の色の光を用いて情報を記録したり、さまざまな角度から異なる情報の層を記録したりなど、多次元的な記録/再生を行う構造の光ディスクであってもよい。
また、デジタル放送用システムex200において、アンテナex205を有する車ex210で衛星ex202等からデータを受信し、車ex210が有するカーナビゲーションex211等の表示装置に動画を再生することも可能である。なお、カーナビゲーションex211の構成は例えば図26に示す構成のうち、GPS受信部を加えた構成が考えられ、同様なことがコンピュータex111や携帯電話ex114等でも考えられる。また、上記携帯電話ex114等の端末は、テレビex300と同様に、符号化器・復号化器を両方持つ送受信型端末の他に、符号化器のみの送信端末、復号化器のみの受信端末という3通りの実装形式が考えられる。さらに、デジタル放送用システムex200において、映像データに音楽データなどが多重化された多重化された多重化データを受信、送信するとして説明したが、音声データ以外に映像に関連する文字データなどが多重化されたデータであってもよいし、多重化データではなく映像データ自体であってもよい。
このように、上記各実施の形態で示した画像符号化方法あるいは画像復号化方法を上述したいずれの機器・システムに用いることは可能であり、そうすることで、上記各実施の形態で説明した効果を得ることができる。
また、本発明はかかる上記実施形態に限定されるものではなく、本発明の範囲を逸脱することなく種々の変形または修正が可能である。
(実施の形態11)
上記各実施の形態で示した画像符号化方法または装置と、MPEG−2、MPEG4−AVC、VC−1など異なる規格に準拠した画像符号化方法または装置とを、必要に応じて適宜切替えることにより、映像データを生成することも可能である。
ここで、それぞれ異なる規格に準拠する複数の映像データを生成した場合、復号する際に、それぞれの規格に対応した復号化方法を選択する必要がある。しかしながら、復号する映像データが、どの規格に準拠するものであるか識別できないため、適切な復号化方法を選択することができないという課題を生じる。
この課題を解決するために、映像データに音声データなどを多重化した多重化データは、映像データがどの規格に準拠するものであるかを示す識別情報を含む構成とする。上記各実施の形態で示す画像符号化方法または装置によって生成された映像データを含む多重化データの具体的な構成を以下説明する。多重化データは、MPEG−2トランスポートストリーム形式のデジタルストリームである。
図29は、多重化データの構成を示す図である。図29に示すように多重化データは、ビデオストリーム、オーディオストリーム、プレゼンテーショングラフィックスストリーム(PG)、インタラクティブグラファイックスストリームのうち、1つ以上を多重化することで得られる。ビデオストリームは映画の主映像および副映像を、オーディオストリーム(IG)は映画の主音声部分とその主音声とミキシングする副音声を、プレゼンテーショングラフィックスストリームは、映画の字幕をそれぞれ示している。ここで主映像とは画面に表示される通常の映像を示し、副映像とは主映像の中に小さな画面で表示する映像のことである。また、インタラクティブグラフィックスストリームは、画面上にGUI部品を配置することにより作成される対話画面を示している。ビデオストリームは、上記各実施の形態で示した画像符号化方法または装置、従来のMPEG−2、MPEG4−AVC、VC−1などの規格に準拠した画像符号化方法または装置によって符号化されている。オーディオストリームは、ドルビーAC−3、Dolby Digital Plus、MLP、DTS、DTS−HD、または、リニアPCMのなどの方式で符号化されている。
多重化データに含まれる各ストリームはPIDによって識別される。例えば、映画の映像に利用するビデオストリームには0x1011が、オーディオストリームには0x1100から0x111Fまでが、プレゼンテーショングラフィックスには0x1200から0x121Fまでが、インタラクティブグラフィックスストリームには0x1400から0x141Fまでが、映画の副映像に利用するビデオストリームには0x1B00から0x1B1Fまで、主音声とミキシングする副音声に利用するオーディオストリームには0x1A00から0x1A1Fが、それぞれ割り当てられている。
図30は、多重化データがどのように多重化されるかを模式的に示す図である。まず、複数のビデオフレームからなるビデオストリームex235、複数のオーディオフレームからなるオーディオストリームex238を、それぞれPESパケット列ex236およびex239に変換し、TSパケットex237およびex240に変換する。同じくプレゼンテーショングラフィックスストリームex241およびインタラクティブグラフィックスex244のデータをそれぞれPESパケット列ex242およびex245に変換し、さらにTSパケットex243およびex246に変換する。多重化データex247はこれらのTSパケットを1本のストリームに多重化することで構成される。
図31は、PESパケット列に、ビデオストリームがどのように格納されるかをさらに詳しく示している。図17における第1段目はビデオストリームのビデオフレーム列を示す。第2段目は、PESパケット列を示す。図17の矢印yy1、yy2、yy3、yy4に示すように、ビデオストリームにおける複数のVideo Presentation UnitであるIピクチャ、Bピクチャ、Pピクチャは、ピクチャ毎に分割され、PESパケットのペイロードに格納される。各PESパケットはPESヘッダを持ち、PESヘッダには、ピクチャの表示時刻であるPTS(Presentation Time−Stamp)やピクチャの復号時刻であるDTS(Decoding Time−Stamp)が格納される。
図32は、多重化データに最終的に書き込まれるTSパケットの形式を示している。TSパケットは、ストリームを識別するPIDなどの情報を持つ4ByteのTSヘッダとデータを格納する184ByteのTSペイロードから構成される188Byte固定長のパケットであり、上記PESパケットは分割されTSペイロードに格納される。BD−ROMの場合、TSパケットには、4ByteのTP_Extra_Headerが付与され、192Byteのソースパケットを構成し、多重化データに書き込まれる。TP_Extra_HeaderにはATS(Arrival_Time_Stamp)などの情報が記載される。ATSは当該TSパケットのデコーダのPIDフィルタへの転送開始時刻を示す。多重化データには図32下段に示すようにソースパケットが並ぶこととなり、多重化データの先頭からインクリメントする番号はSPN(ソースパケットナンバー)と呼ばれる。
また、多重化データに含まれるTSパケットには、映像・音声・字幕などの各ストリーム以外にもPAT(Program Association Table)、PMT(Program Map Table)、PCR(Program Clock Reference)などがある。PATは多重化データ中に利用されるPMTのPIDが何であるかを示し、PAT自身のPIDは0で登録される。PMTは、多重化データ中に含まれる映像・音声・字幕などの各ストリームのPIDと各PIDに対応するストリームの属性情報を持ち、また多重化データに関する各種ディスクリプタを持つ。ディスクリプタには多重化データのコピーを許可・不許可を指示するコピーコントロール情報などがある。PCRは、ATSの時間軸であるATC(Arrival Time Clock)とPTS・DTSの時間軸であるSTC(System Time Clock)の同期を取るために、そのPCRパケットがデコーダに転送されるATSに対応するSTC時間の情報を持つ。
図33はPMTのデータ構造を詳しく説明する図である。PMTの先頭には、そのPMTに含まれるデータの長さなどを記したPMTヘッダが配置される。その後ろには、多重化データに関するディスクリプタが複数配置される。上記コピーコントロール情報などが、ディスクリプタとして記載される。ディスクリプタの後には、多重化データに含まれる各ストリームに関するストリーム情報が複数配置される。ストリーム情報は、ストリームの圧縮コーデックなどを識別するためストリームタイプ、ストリームのPID、ストリームの属性情報(フレームレート、アスペクト比など)が記載されたストリームディスクリプタから構成される。ストリームディスクリプタは多重化データに存在するストリームの数だけ存在する。
記録媒体などに記録する場合には、上記多重化データは、多重化データ情報ファイルと共に記録される。
多重化データ情報ファイルは、図34に示すように多重化データの管理情報であり、多重化データと1対1に対応し、多重化データ情報、ストリーム属性情報とエントリマップから構成される。
多重化データ情報は図34に示すようにシステムレート、再生開始時刻、再生終了時刻から構成されている。システムレートは多重化データの、後述するシステムターゲットデコーダのPIDフィルタへの最大転送レートを示す。多重化データ中に含まれるATSの間隔はシステムレート以下になるように設定されている。再生開始時刻は多重化データの先頭のビデオフレームのPTSであり、再生終了時刻は多重化データの終端のビデオフレームのPTSに1フレーム分の再生間隔を足したものが設定される。
ストリーム属性情報は図35に示すように、多重化データに含まれる各ストリームについての属性情報が、PID毎に登録される。属性情報はビデオストリーム、オーディオストリーム、プレゼンテーショングラフィックスストリーム、インタラクティブグラフィックスストリーム毎に異なる情報を持つ。ビデオストリーム属性情報は、そのビデオストリームがどのような圧縮コーデックで圧縮されたか、ビデオストリームを構成する個々のピクチャデータの解像度がどれだけであるか、アスペクト比はどれだけであるか、フレームレートはどれだけであるかなどの情報を持つ。オーディオストリーム属性情報は、そのオーディオストリームがどのような圧縮コーデックで圧縮されたか、そのオーディオストリームに含まれるチャンネル数は何であるか、何の言語に対応するか、サンプリング周波数がどれだけであるかなどの情報を持つ。これらの情報は、プレーヤが再生する前のデコーダの初期化などに利用される。
本実施の形態においては、上記多重化データのうち、PMTに含まれるストリームタイプを利用する。また、記録媒体に多重化データが記録されている場合には、多重化データ情報に含まれる、ビデオストリーム属性情報を利用する。具体的には、上記各実施の形態で示した画像符号化方法または装置において、PMTに含まれるストリームタイプ、または、ビデオストリーム属性情報に対し、上記各実施の形態で示した画像符号化方法または装置によって生成された映像データであることを示す固有の情報を設定するステップまたは手段を設ける。この構成により、上記各実施の形態で示した画像符号化方法または装置によって生成した映像データと、他の規格に準拠する映像データとを識別することが可能になる。
また、本実施の形態における画像復号化方法のステップを図36に示す。ステップexS100において、多重化データからPMTに含まれるストリームタイプ、または、多重化データ情報に含まれるビデオストリーム属性情報を取得する。次に、ステップexS101において、ストリームタイプ、または、ビデオストリーム属性情報が上記各実施の形態で示した画像符号化方法または装置によって生成された多重化データであることを示しているか否かを判断する。そして、ストリームタイプ、または、ビデオストリーム属性情報が上記各実施の形態で示した画像符号化方法または装置によって生成されたものであると判断された場合には、ステップexS102において、上記各実施の形態で示した画像復号化方法により復号を行う。また、ストリームタイプ、または、ビデオストリーム属性情報が、従来のMPEG−2、MPEG4−AVC、VC−1などの規格に準拠するものであることを示している場合には、ステップexS103において、従来の規格に準拠した画像復号化方法により復号を行う。
このように、ストリームタイプ、または、ビデオストリーム属性情報に新たな固有値を設定することにより、復号する際に、上記各実施の形態で示した画像復号化方法または装置で復号可能であるかを判断することができる。従って、異なる規格に準拠する多重化データが入力された場合であっても、適切な復号化方法または装置を選択することができるため、エラーを生じることなく復号することが可能となる。また、本実施の形態で示した画像符号化方法または装置、または、画像復号化方法または装置を、上述したいずれの機器・システムに用いることも可能である。
(実施の形態12)
上記各実施の形態で示した画像符号化方法および装置、画像復号化方法および装置は、典型的には集積回路であるLSIで実現される。一例として、図37に1チップ化されたLSIex500の構成を示す。LSIex500は、以下に説明する要素ex501、ex502、ex503、ex504、 ex505、ex506、ex507、ex508、ex509を備え、各要素はバスex510を介して接続している。電源回路部ex505は電源がオン状態の場合に各部に対して電力を供給することで動作可能な状態に起動する。
例えば符号化処理を行う場合には、LSIex500は、CPUex502、メモリコントローラex503、ストリームコントローラex504、駆動周波数制御部ex512等を有する制御部ex501の制御に基づいて、AV I/Oex509によりマイクex117やカメラex113等からAV信号を入力する。入力されたAV信号は、一旦SDRAM等の外部のメモリex511に蓄積される。制御部ex501の制御に基づいて、蓄積したデータは処理量や処理速度に応じて適宜複数回に分けるなどされ信号処理部ex507に送られ、信号処理部ex507において音声信号の符号化および/または映像信号の符号化が行われる。ここで映像信号の符号化処理は上記各実施の形態で説明した符号化処理である。信号処理部ex507ではさらに、場合により符号化された音声データと符号化された映像データを多重化するなどの処理を行い、ストリームI/Oex506から外部に出力する。この出力された多重化データは、基地局 ex107に向けて送信されたり、または記録メディアex215に書き込まれたりする。なお、多重化する際には同期するよう、一旦バッファex508にデータを蓄積するとよい。
なお、上記では、メモリex511がLSIex500の外部の構成として説明したが、LSIex500の内部に含まれる構成であってもよい。バッファ ex508も1つに限ったものではなく、複数のバッファを備えていてもよい。また、LSIex500は1チップ化されてもよいし、複数チップ化されてもよい。
また、上記では、制御部ex510が、CPUex502、メモリコントローラex503、ストリームコントローラex504、駆動周波数制御部ex512等を有するとしているが、制御部ex510の構成は、この構成に限らない。例えば、信号処理部ex507がさらにCPUを備える構成であってもよい。信号処理部ex507の内部にもCPUを設けることにより、処理速度をより向上させることが可能になる。また、他の例として、CPUex502が信号処理部ex507、または信号処理部ex507の一部である例えば音声信号処理部を備える構成であってもよい。このような場合には、制御部ex501は、信号処理部ex507、またはその一部を有するCPUex502を備える構成となる。
なお、ここでは、LSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。
また、集積回路化の手法はLSIに限るものではなく、専用回路または汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
さらには、半導体技術の進歩または派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適応等が可能性としてありえる。
(実施の形態13)
上記各実施の形態で示した画像符号化方法または装置によって生成された映像データを復号する場合、従来のMPEG−2、MPEG4−AVC、VC−1などの規格に準拠する映像データを復号する場合に比べ、処理量が増加することが考えられる。そのため、LSIex500において、従来の規格に準拠する映像データを復号する際のCPUex502の駆動周波数よりも高い駆動周波数に設定する必要がある。しかし、駆動周波数を高くすると、消費電力が高くなるという課題が生じる。
この課題を解決するために、テレビex300、LSIex500などの画像復号化装置は、映像データがどの規格に準拠するものであるかを識別し、規格に応じて駆動周波数を切替える構成とする。図38は、本実施の形態における構成ex800を示している。駆動周波数切替え部ex803は、映像データが、上記各実施の形態で示した画像符号化方法または装置によって生成されたものである場合には、駆動周波数を高く設定する。そして、上記各実施の形態で示した画像復号化方法を実行する復号処理部ex801に対し、映像データを復号するよう指示する。一方、映像データが、従来の規格に準拠する映像データである場合には、映像データが、上記各実施の形態で示した画像符号化方法または装置によって生成されたものである場合に比べ、駆動周波数を低く設定する。そして、従来の規格に準拠する復号処理部ex802に対し、映像データを復号するよう指示する。
より具体的には、駆動周波数切替え部ex803は、図37のCPUex502と駆動周波数制御部ex512から構成される。また、上記各実施の形態で示した画像復号化方法を実行する復号処理部ex801、および、従来の規格に準拠する復号処理部ex802は、図37の信号処理部ex507に該当する。CPUex502は、映像データがどの規格に準拠するものであるかを識別する。そして、CPUex502からの信号に基づいて、駆動周波数制御部ex512は、駆動周波数を設定する。また、CPUex502からの信号に基づいて、信号処理部ex507は、映像データの復号を行う。ここで、映像データの識別には、例えば、実施の形態11で記載した識別情報を利用することが考えられる。識別情報に関しては、実施の形態11で記載したものに限られず、映像データがどの規格に準拠するか識別できる情報であればよい。例えば、映像データがテレビに利用されるものであるか、ディスクに利用されるものであるかなどを識別する外部信号に基づいて、映像データがどの規格に準拠するものであるか識別可能である場合には、このような外部信号に基づいて識別してもよい。また、CPUex502における駆動周波数の選択は、例えば、図40のような映像データの規格と、駆動周波数とを対応付けたルックアップテーブルに基づいて行うことが考えられる。ルックアップテーブルを、バッファex508や、LSIの内部メモリに格納しておき、CPUex502がこのルックアップテーブルを参照することにより、駆動周波数を選択することが可能である。
図39は、本実施の形態の方法を実施するステップを示している。まず、ステップexS200では、信号処理部ex507において、多重化データから識別情報を取得する。次に、ステップexS201では、CPUex502において、識別情報に基づいて映像データが上記各実施の形態で示した符号化方法または装置によって生成されたものであるか否かを識別する。映像データが上記各実施の形態で示した符号化方法または装置によって生成されたものである場合には、ステップexS202において、駆動周波数を高く設定する信号を、CPUex502が駆動周波数制御部ex512に送る。そして、駆動周波数制御部 ex512において、高い駆動周波数に設定される。一方、従来のMPEG−2、MPEG4−AVC、VC−1などの規格に準拠する映像データであることを示している場合には、ステップexS203において、駆動周波数を低く設定する信号を、CPUex502が駆動周波数制御部ex512に送る。そして、駆動周波数制御部ex512において、映像データが上記各実施の形態で示した符号化方法または装置によって生成されたものである場合に比べ、低い駆動周波数に設定される。
さらに、駆動周波数の切替えに連動して、LSIex500またはLSIex500を含む装置に与える電圧を変更することにより、省電力効果をより高めることが可能である。例えば、駆動周波数を低く設定する場合には、これに伴い、駆動周波数を高く設定している場合に比べ、LSIex500またはLSIex500を含む装置に与える電圧を低く設定することが考えられる。
また、駆動周波数の設定方法は、復号する際の処理量が大きい場合に、駆動周波数を高く設定し、復号する際の処理量が小さい場合に、駆動周波数を低く設定すればよく、上述した設定方法に限らない。例えば、MPEG4−AVC規格に準拠する映像データを復号する処理量の方が、上記各実施の形態で示した画像符号化方法または装置により生成された映像データを復号する処理量よりも大きい場合には、駆動周波数の設定を上述した場合の逆にすることが考えられる。
さらに、駆動周波数の設定方法は、駆動周波数を低くする構成に限らない。例えば、識別情報が、上記各実施の形態で示した画像符号化方法または装置によって生成された映像データであることを示している場合には、LSIex500またはLSIex500を含む装置に与える電圧を高く設定し、従来のMPEG−2、MPEG4−AVC、VC−1などの規格に準拠する映像データであることを示している場合には、LSIex500またはLSIex500を含む装置に与える電圧を低く設定することも考えられる。また、他の例としては、識別情報が、上記各実施の形態で示した画像符号化方法または装置によって生成された映像データであることを示している場合には、CPUex502の駆動を停止させることなく、従来のMPEG−2、MPEG4−AVC、VC−1などの規格に準拠する映像データであることを示している場合には、処理に余裕があるため、CPUex502の駆動を一時停止させることも考えられる。識別情報が、上記各実施の形態で示した画像符号化方法または装置によって生成された映像データであることを示している場合であっても、処理に余裕があれば、CPUex502の駆動を一時停止させることも考えられる。この場合は、従来のMPEG−2、MPEG4−AVC、VC−1などの規格に準拠する映像データであることを示している場合に比べて、停止時間を短く設定することが考えられる。
このように、映像データが準拠する規格に応じて、駆動周波数を切替えることにより、省電力化を図ることが可能になる。また、電池を用いてLSIex500またはLSIex500を含む装置を駆動している場合には、省電力化に伴い、電池の寿命を長くすることが可能である。
(実施の形態14)
テレビや、携帯電話など、上述した機器・システムには、異なる規格に準拠する複数の映像データが入力される場合がある。このように、異なる規格に準拠する複数の映像データが入力された場合にも復号できるようにするために、LSIex500の信号処理部ex507が複数の規格に対応している必要がある。しかし、それぞれの規格に対応する信号処理部ex507を個別に用いると、LSIex500の回路規模が大きくなり、また、コストが増加するという課題が生じる。
この課題を解決するために、上記各実施の形態で示した画像復号化方法を実行するための復号処理部と、従来のMPEG−2、MPEG4−AVC、VC−1などの規格に準拠する復号処理部とを一部共有化する構成とする。この構成例を図41(a)のex900に示す。例えば、上記各実施の形態で示した画像復号化方法と、MPEG4−AVC規格に準拠する画像復号化方法とは、エントロピー符号化、逆量子化、デブロッキング・フィルタ、動き補償などの処理において処理内容が一部共通する。共通する処理内容については、MPEG4−AVC規格に対応する復号処理部ex902を共有し、MPEG4−AVC規格に対応しない、本発明特有の他の処理内容については、専用の復号処理部ex901を用いるという構成が考えられる。特に、本発明は、分割領域の境界におけるフィルタ処理に特徴を有していることから、例えば、分割領域の境界におけるフィルタ処理については専用の復号処理部ex901を用い、それ以外のエントロピー符号化、デブロッキング・フィルタ、動き補償のいずれか、または、全ての処理については、復号処理部を共有することが考えられる。復号処理部の共有化に関しては、共通する処理内容については、上記各実施の形態で示した画像復号化方法を実行するための復号処理部を共有し、MPEG4−AVC規格に特有の処理内容については、専用の復号処理部を用いる構成であってもよい。
また、処理を一部共有化する他の例を図41(b)のex1000に示す。この例では、本発明に特有の処理内容に対応した専用の復号処理部ex1001と、他の従来規格に特有の処理内容に対応した専用の復号処理部ex1002と、本発明の画像復号化方法と他の従来規格の画像復号化方法とに共通する処理内容に対応した共用の復号処理部ex1003とを用いる構成としている。ここで、専用の復号処理部ex1001、ex1002は、必ずしも本発明、または、他の従来規格に特有の処理内容に特化したものではなく、他の汎用処理を実行できるものであってもよい。また、本実施の形態の構成を、LSIex500で実装することも可能である。
このように、本発明の画像復号化方法と、従来の規格の画像復号化方法とで共通する処理内容について、復号処理部を共有することにより、LSIの回路規模を小さくし、かつ、コストを低減することが可能である。