以下、添付の図面を参照して、本願発明をその好適な実施形態に基づいて詳細に説明する。なお、以下の実施形態において示す構成は一例に過ぎず、本発明は図示された構成に限定されるものではない。
<実施形態1>
以下、本発明の実施形態を、図面を用いて説明する。図1は本実施形態の画像符号化装置を示すブロック図である。
図1において、101は画像データ(以下、画像)を入力する端子である。102は入力された画像を複数のブロックに分割するブロック分割部である。103はブロック分割部102で分割された各ブロックを、ブロック単位で予測を行い、予測方法を決定し、それに従って差分値算出を行い、予測誤差を算出する予測部である。予測部103ではイントラ予測若しくは動き補償予測も行うものとする。イントラ予測は一般的には、周囲の画素データから予測値を算出するために、複数の参照方法の中から最適なものを予測方法として選択することで実現する。
104は各ブロックの予測誤差に対して直交変換を行う変換部であり、入力されたブロックのサイズまたはそれを細分化したサイズを単位に直交変換を行い、直交変換係数を算出する。以下では直交変換を行うブロックを変換ブロックと呼称する。直交変換に関しては特に限定しないが、離散コサイン変換やアダマール変換等を用いてもよい。また、本実施形態では説明のため、8×8画素のブロック単位の予測誤差を縦横2分割し、4×4画素の変換ブロック単位で直交変換を行うものとするが、変換ブロックの大きさ、形状はこれに限定されない。ブロックと同一の大きさの変換ブロックを用いて直交変換を行っても良いし、ブロックを縦横2分割よりもさらに細かい単位で分割した変換ブロックを用いて直交変換を行っても良い。
107は量子化マトリクスを生成し、格納する量子化マトリクス保持部である。格納される量子化マトリクスの生成方法については特に限定しないが、ユーザが量子化マトリクスを入力しても良いし、入力画像の特性から算出しても、初期値として予め指定されたものを使用してももちろん良い。本実施形態では、図5(a)や(b)に示されるような4×4画素の変換ブロックに対応した二次元の量子化マトリクスが生成され、格納されるものとする。
105は量子化マトリクス保持部107に格納された量子化マトリクスによって、前記直交変換係数を量子化する量子化部である。この量子化によって量子化係数を得ることができる。106はこのようにして得られた量子化係数を符号化して量子化係数符号データを生成する係数符号化部である。符号化の方法は特に限定しないが、ハフマン符号や算術符号などを用いることができる。108は量子化マトリクス保持部107に格納された量子化マトリクスが、所定の量子化マトリクスと一致するか否かを判定する量子化マトリクス判定部である。より具体的には符号化対象の量子化マトリクスが、既に符号化済みの量子化マトリクス、予め定められた量子化マトリクスもしくは係数が全て同一の値を持つフラットな量子化マトリクスであるか否かを判定する。この予め定められた量子化マトリクスは量子化マトリクス保持部107に格納されているとする。但しこれに限定されない。例えば、量子化マトリクス判定部108に格納されていても構わない。
109は量子化マトリクス判定部108における判定を示す情報やその他の量子化マトリクスに関する情報をヘッダとして符号化して量子化マトリクスヘッダ符号を生成する量子化マトリクスヘッダ符号化部である。110は符号化対象の量子化マトリクスの各係数を符号化して量子化マトリクス係数符号を生成する量子化マトリクス係数符号化部である。
111はヘッダ情報や予測、変換に関する符号を生成するとともに、前述の各符号化部で生成された符号データを統合してビットストリームを形成して出力する統合符号化部である。具体的には、係数符号化部106で生成された量子化係数符号データや量子化マトリクスヘッダ符号化部109で生成された量子化マトリクスヘッダ符号、量子化マトリクス係数符号化部110で生成された量子化マトリクス係数符号を統合する。ここで予測、変換に関する符号とは、例えば選択した予測方法や変換ブロックの分割の様子等の符号である。112は統合符号化部111で生成されたビットストリームを外部に出力する端子である。
上記画像符号化装置における画像の符号化動作を以下に説明する。本実施形態では動画像データをピクチャ単位に入力する構成となっているが、1ピクチャ分の静止画像データを入力する構成としても構わない。また、本実施形態では、説明を容易にするため、イントラ予測符号化の処理のみを説明するが、これに限定されずインター予測符号化の処理においても適用可能である。本実施形態では説明のため、ブロック分割部102においては8×8画素のブロックに分割するものとして説明するが、これに限定されない。
<量子化マトリクス係数の符号化>
最初に、量子化マトリクス保持部107は量子化マトリクスを生成する。符号化処理に用いられる直交変換のサイズである変換ブロックサイズに応じて、量子化マトリクスが決定される。量子化マトリクスの係数の決定方法は特に限定しない。例えば、所定の初期値を用いても良いし、個別に設定しても良い。また、画像の特性に応じて設定して生成されても構わない。
量子化マトリクス保持部107には、このようにして生成された量子化マトリクスが保持されている。図5(a)、(b)は4×4画素の変換ブロックに対応する量子化マトリクスの一例である。説明を簡易にするため、4×4画素の変換ブロックに対応した16画素分の構成とし、太枠内の各正方形は係数を表しているものとする。本実施形態では、図5(a)、(b)に示された量子化マトリクスが二次元形状で保持されているものとするが、量子化マトリクス内の係数はもちろんこれに限定されない。例えば、本実施形態に加えて8×8画素の変換ブロックサイズも用いる場合には、8×8画素変換ブロックに対応する他の量子化マトリクスを保持することになる。
量子化マトリクス判定部108は符号化対象の量子化マトリクスを量子化マトリクス保持部107から順に読み出す。そして所定の量子化マトリクスと一致するか否かを判定し、符号化対象の量子化マトリクスが所定の量子化マトリクスと一致することを示す一致情報を生成する。本実施形態では、符号化済みの量子化マトリクス、図5(a)に示されたデフォルトの量子化マトリクスもしくは図5(b)に示されたフラットな量子化マトリクスのいずれかと一致するか否かを判定する。符号化済みの量子化マトリクスは量子化マトリクス保持部107に格納されており、図5(a)および図5(b)に示された量子化マトリクスも量子化マトリクス保持部107に予め記憶されているものとする。符号化対象の量子化マトリクスがいずれかと一致すると判定された場合は、さらにどの量子化マトリクスと一致するかを示す参照情報を生成する。この参照情報は一致情報とともに量子化マトリクスヘッダ符号化部109に出力する。この場合、量子化マトリクス係数符号化部110には何も出力せず、動作しない。一方、いずれの量子化マトリクスとも一致しない場合は、一致情報のみを量子化マトリクスヘッダ符号化部109に出力しつつ、符号化対象の量子化マトリクスを量子化マトリクス係数符号化部110に出力する。本実施形態では、所定の量子化マトリクスの中に符号化対象の量子化マトリクスと一致するものがある場合には一致情報は1となり、そうでない場合は0となるものとするが、値と状態との組合せはこれに限定されない。
図11は本実施形態における符号化対象の量子化マトリクスと参照情報との関係の一例を示す図である。本実施形態では、YCbCr色空間で入力された画像のY成分の量子化に対応する第一、Cb成分の量子化に対応する第二、Cr成分の量子化に対応する第三の3種類の量子化マトリクスが存在するものとするが、これに限定されない。変換ブロックサイズや予測方法、色空間の組み合わせによってより多くの量子化マトリクスを定義しても構わない。また、本実施形態では図5(a)に示された量子化マトリクスをデフォルト4×4、図5(b)に示された量子化マトリクスをフラット4×4の量子化マトリクスであるものとするが、使用される量子化マトリクスはこれらに限定されない。
例えば、符号化対象量子化マトリクスが第一(4x4Y)であり、デフォルト4×4と一致する場合、参照情報は0とする。また、フラット4×4と一致する場合、参照情報は1とする。このようなフラット4×4と一致することが、符号化対象の量子化マトリクスの係数が全て同一の値であることを示すフラット情報となる。同様に、符号化対象量子化マトリクスが第二(4x4Cb)の場合、デフォルト4×4と一致すれば参照情報は0とし、符号化済みの第一(4x4Y)と一致すれば参照情報は1となる。また、フラット4×4と一致すれば参照情報は2とする。符号化対象量子化マトリクスが第三(4x4Cr)の場合も同様である。
量子化マトリクスヘッダ符号化部109では、量子化マトリクス判定部108から入力された一致情報および必要に応じて参照情報を符号化して量子化マトリクスヘッダ符号を生成する。本実施形態では、符号化対象の量子化マトリクスが符号化装置に予め記憶されている量子化マトリクスもしくは符号化済みの量子化マトリクスのいずれかと一致する場合には、一致情報および参照情報の両方を符号化する。一方、上記のいずれの量子化マトリクスとも一致しない場合には、一致情報のみを符号化する。符号化の方法は特に限定しないが、ハフマン符号や算術符号などを用いることができる。生成された量子化マトリクスヘッダ符号は統合符号化部111に出力される。
量子化マトリクス係数符号化部110では、量子化マトリクス判定部108から入力された符号化対象の量子化マトリクスを符号化して量子化マトリクス係数符号を生成する。本実施形態では、符号化対象の量子化マトリクスが符号化装置に予め記憶されている量子化マトリクスや符号化済みの量子化マトリクスとは一致しない場合に限り、量子化マトリクス係数符号化部110は動作する。符号化方式としては、本実施形態では、各係数をそのまま符号化する、直前の係数との差分を符号化する、DPCM、他の量子化マトリクスとの差分を符号化するといった方式を用いることとするが、方式はこれらに限定されない。また、符号化装置に予め記憶されていないフラットな量子化マトリクスを符号化する場合には代表値のみを符号化するような方式をとってもよい。また、これらと合わせて同じ値が続くときは符号化を打ち切る符号を挿入することにより量子化マトリクスの符号量を抑制することもできる。
統合符号化部111では画像の符号化に必要なヘッダ情報を符号化し、入力された量子化マトリクスヘッダ符号および量子化マトリクス係数符号を統合する。
なお、量子化マトリクス判定部108と量子化マトリクスヘッダ符号化部109と量子化マトリクス係数符号化部110は、1つの処理部である量子化マトリクス符号化部として機能してもよい。
<画像の符号化>
端子101から入力された1ピクチャ分の画像はブロック分割部102に入力され、8×8画素のブロック単位に分割される。分割された画像は予測部103に入力される。予測部103ではブロック単位の予測が行われ、予測誤差が生成される。変換部104では、予測部103で生成された予測誤差を変換ブロックサイズに分割して直交変換を行い、直交変換係数を生成する。そして、直交変換係数を量子化部105に入力する。本実施形態では、8×8画素のブロック単位の予測誤差を4×4画素の変換ブロック単位に分割して直交変換を行うものとする。量子化部105では、変換部104から出力された直交変換係数を量子化マトリクス保持部107に格納されている量子化マトリクスを用いて量子化して量子化係数を生成する。生成された量子化係数は係数符号化部106に入力される。係数符号化部106では、量子化部105で生成された量子化係数を符号化し、量子化係数符号データを生成して統合符号化部111に出力する。統合符号化部111はブロック単位で予測、変換に関する符号を生成し、前記ヘッダの符号化データとともに、ブロック単位の符号、係数符号化部106で生成された量子化係数符号データを統合し、ビットストリームを生成して端子112から出力する。
図10に実施形態1で出力されるビットストリームの例を示す。シーケンスヘッダに量子化マトリクスの符号データが含まれ、ヘッダ符号や各係数の符号化結果で構成されている。図10(a)は第1から第3までの量子化マトリクスの全てが異なりかつフラットな量子化マトリクスともデフォルトの量子化マトリクスとも異なる場合のビットストリームの例である。すなわち、第1から第3までの各量子化マトリクスヘッダ符号には、一致情報の0が符号化されており、各量子化マトリクス係数符号には各量子化マトリクスの係数が符号化されている。但し、符号化の位置はこれに限定されない。ピクチャヘッダ部やその他のヘッダ部に符号化される構成をとってももちろん構わない。
図10(b)は第1から第3までの量子化マトリクスの全てがフラットな量子化マトリクスであった場合のビットストリームの例である。この場合、第1の量子化マトリクスヘッダ符号には、一致情報の1とフラットな量子化マトリクスを示す参照情報の1が符号化されている。また、第2の量子化マトリクスヘッダ符号には、一致情報の1とフラットな量子化マトリクスを示す参照情報の2が符号化されている。この場合においては、参照情報が1であっても、参照対象の第1の量子化マトリクスもフラットな量子化マトリクスであるため、ビットストリームの復号結果は同一となる。同様に、第3の量子化マトリクスヘッダ符号には、一致情報の1とフラットな量子化マトリクスを示す参照情報の2が符号化されている。この場合も、参照情報が1もしくは2であっても、参照対象の第1または第2の量子化マトリクスもフラットな量子化マトリクスであるため、ビットストリームの復号結果は同一となる。
図10(c)は第1の量子化マトリクスはフラットな量子化マトリクスともデフォルトの量子化マトリクスとも異なるが、第2、第3の量子化マトリクスは第1の量子化マトリクスと同一である場合のビットストリームの例である。この場合、第1の量子化マトリクスヘッダ符号には、一致情報の0が符号化されており、第1量子化マトリクス係数符号には第1量子化マトリクスの係数が符号化されている。また、第2の量子化マトリクスヘッダ符号には、一致情報の1と第1の量子化マトリクスへの参照を示す参照情報の1が符号化されている。同様に第3の量子化マトリクスヘッダ符号には、一致情報の1と第2の量子化マトリクスへの参照を示す参照情報の1が符号化されている。
図6は実施形態1に係る画像符号化装置における画像符号化処理を示すフローチャートである。まず、ステップS601にて、量子化マトリクス保持部107は量子化マトリクスを生成する。ステップS602にて、量子化マトリクス判定部108は符号化対象の量子化マトリクスが所定の量子化マトリクスが一致するか否かを判定し、一致情報を生成する。本実施形態では、符号化済みの量子化マトリクス、予め符号化装置に記憶されている図5(a)に示されたデフォルトの量子化マトリクスもしくは図5(b)に示されたフラットな量子化マトリクスのいずれかと一致するか否かを判定する。符号化対象の量子化マトリクスが上記のいずれかの量子化マトリクスと一致すると判定された場合は、さらにどの量子化マトリクスと一致するかを示す参照情報を生成する。
ステップS603にて、量子化マトリクスヘッダ符号化部109は、ステップS602で生成された一致情報および参照情報を符号化して量子化マトリクスヘッダ符号を生成する。ステップS604にて画像符号化装置は前述の一致情報に基づいて、符号化対象の量子化マトリクスの係数を符号化するか否かを判定する。対象の量子化マトリクスの係数を符号化する場合にはステップS605に進み、そうでない場合はステップS606に進む。
ステップS605にて、量子化マトリクス係数符号化部110はステップS601で生成された量子化マトリクスを符号化し、量子化マトリクス係数符号を生成する。ステップS606にて、画像符号化装置は量子化マトリクスを全て符号化したか否かの判定を行い、終了していればステップS607に進み、そうでなければ次の量子化マトリクスを対象としてステップS601に戻る。ステップS607にて、統合符号化部111はビットストリームのヘッダ部の符号化を行い、出力する。本実施形態では、図10に示される例のシーケンスヘッダおよびピクチャヘッダの符号化を行い、出力するものとする。
ステップS608にて、ブロック分割部102は、ピクチャ単位の入力画像をブロック単位に分割する。ステップS609にて、予測部103はブロック単位の予測を行い、予測誤差を生成する。ステップS610にて、変換部104はステップS609で生成された予測誤差に対して変換ブロックサイズに分割して直交変換を行い、直交変換係数を生成する。ステップS611にて、量子化部105はステップS610で生成された直交変換係数を、ステップS601で生成されて量子化マトリクス保持部107に格納された量子化マトリクスを用いて量子化して量子化係数を生成する。ステップS612にて、係数符号化部106はステップS611で生成された量子化係数を符号化し、量子化係数符号データを生成する。ステップS613にて、画像符号化装置は、当該ブロック内の全ての変換ブロックの符号化が終了したか否かの判定を行い、終了していればステップS614に進み、終了していなければ次の変換ブロックを対象としてステップS610に戻る。ステップS614にて、画像符号化装置は、全てのブロックの符号化が終了したか否かの判定を行い、終了していれば全ての動作を停止して処理を終了し、そうでなければ次のブロックを対象としてステップS608に戻る。
以上の構成と動作により、特にステップS602からステップS604によって、フラットな量子化マトリクスを符号化する際に、他の量子化マトリクスと一致する場合、冗長な符号を送る必要が無いため、符号量を削減したビットストリームを構成することができる。これにより、フラットな量子化マトリクスの係数を一つずつ符号化するよりも少ない符号量でビットストリームを生成することができる。
なお、本実施形態においては、イントラ予測のみを用いるピクチャを例にとって説明したが、インター予測を使用できるピクチャにおいても対応できることは明らかである。さらに、本実施形態では説明のためにブロックを8×8画素、変換ブロックを4×4画素としたが、これに限定されない。例えば16×16画素や32×32画素などのブロックサイズへの変更が可能であり、また、ブロックの形状も正方形に限定されず、16×8画素などの長方形でも良い。また、変換ブロックサイズはブロックサイズの縦横それぞれ半分としたが、同じ大きさでも構わないし、縦横それぞれ半分よりもさらに細かいサイズでももちろん構わない。
<実施形態2>
図2は、本発明の実施形態2に係る画像復号装置の構成を示すブロック図である。本実施形態では、実施形態1で生成されたビットストリームの復号について説明する。
図2において、201は符号化されたビットストリームを入力する端子である。202は入力されたビットストリームのヘッダ情報を復号し、ビットストリームから必要な符号を分離して後段へ出力する復号・分離部である。復号・分離部202は図1の統合符号化部111と逆の動作を行う。
203はビットストリームのヘッダ情報から分離された量子化マトリクスヘッダ符号を復号し、一致情報および参照情報を復元する量子化マトリクスヘッダ復号部である。204はビットストリームから分離された量子化マトリクス係数符号を復号し、量子化マトリクスの各係数を復元する量子化マトリクス係数復号部である。205は得られた一致情報および参照情報あるいは量子化マトリクスの各係数から復号対象の量子化マトリクスを再構成する量子化マトリクス再構成部である。206は量子化マトリクス再構成部205で得られた量子化マトリクスを格納しておく量子化マトリクス保持部である。実施形態1の量子化マトリクス判定部108が格納している所定の量子化マトリクスはこれに保持されているものとする。但し、これに限定されない。量子化マトリクス再構成部205に格納されていても構わない。また、量子化マトリクスヘッダ復号部203と量子化マトリクス係数復号部204と量子化マトリクス再構成部205はひとつの処理部である量子化マトリクス復号部として機能してもよい。
一方、207は復号・分離部202で分離された量子化係数符号データから量子化係数符号を復号し、量子化係数を復元する係数復号部である。208は量子化マトリクス保持部206に格納された量子化マトリクスを用いて量子化係数に逆量子化を行い、直交変換係数を得る逆量子化部である。209は図1の変換部104の逆となる逆直交変換を行い、予測誤差を得る逆変換部である。210は予測誤差と復号済みの画像からブロックの画像を復元する予測再構成部である。
上記画像復号装置における画像の復号動作を以下に説明する。本実施形態では実施形態1で生成された動画像ビットストリームをピクチャ単位で入力する構成となっているが、1ピクチャ分の静止画像ビットストリームを入力する構成としても構わない。また、本実施形態では説明を容易にするため、イントラ予測復号処理のみを説明するが、これに限定されずインター予測復号処理においても適用可能である。
図2において、端子201から入力された1ピクチャ分のビットストリームは復号・分離部202に入力され、画像を再生するのに必要なヘッダ情報が復号され、さらに後段で使用される符号が分離されて出力される。ヘッダ情報に含まれる量子化マトリクスヘッダ符号は量子化マトリクスヘッダ復号部203に出力される。本実施形態では、図10に示されるビットストリームの例のシーケンスヘッダおよびピクチャヘッダが入力・復号され、符号が出力されるものとする。
量子化マトリクスヘッダ復号部203では、まず、入力された量子化マトリクスヘッダ符号を復号し、一致情報を復元する。一致情報が復号対象の量子化マトリクスと一致するマトリクスが存在していることを意味する1であった場合には、さらに量子化マトリクスヘッダ符号から参照情報を再生する。復元された参照情報は量子化マトリクス再構成部205に出力される。一方、一致情報が一致するマトリクスが存在しないことを意味する0であった場合には、復号対象の量子化マトリクスの係数を復号する必要性があることを示す情報を復号・分離部202に出力する。本実施形態では一致情報が上述の情報であるものとするが、同様の意味を持つ情報であればその形態は特に限定されない。
復号・分離部202では、量子化マトリクスヘッダ復号部203から復号対象の量子化マトリクスの係数を復号する必要性があることを示す情報が入力された場合、量子化マトリクス係数復号部204に量子化マトリクス係数符号データを出力する。量子化マトリクス係数復号部204では、入力された量子化マトリクス係数符号データが復号され、復号対象の量子化マトリクスの各係数が復元される。再生された量子化マトリクスの各係数は量子化マトリクス再構成部205に出力される。
量子化マトリクス再構成部205では、量子化マトリクスヘッダ復号部203から入力された参照情報もしくは量子化マトリクス係数復号部204から入力された量子化マトリクスの各係数から復号対象の量子化マトリクスを再構成する。量子化マトリクス係数復号部204から量子化マトリクスの各係数が入力された場合には、入力された各係数を用いて量子化マトリクスを再構成し、量子化マトリクス保持部206に出力する。一方、量子化マトリクスヘッダ復号部203から参照情報が入力された場合には、参照情報に基づいて、参照先の量子化マトリクスを量子化マトリクス保持部206から読み出し、復号対象の量子化マトリクスを再構成する。そして再構成された量子化マトリクスは量子化マトリクス保持部206に出力される。量子化マトリクス保持部206では、入力された量子化マトリクスを格納し、必要に応じて量子化マトリクス再構成部205および逆量子化部208に出力される。
復号・分離部202で分離された符号のうち、量子化係数符号データは係数復号部207に入力される。そして、係数復号部207は変換ブロックごとに量子化係数符号データを復号し、量子化係数を復元し、逆量子化部208に出力する。逆量子化部208は、係数復号部207で復元された量子化係数および量子化マトリクス保持部206に格納されている量子化マトリクスを入力する。そして、前記量子化マトリクスを用いて逆量子化を行い、直交変換係数を復元し、逆変換部209に出力する。逆変換部209は、直交変換係数を入力し、図1の変換部104の逆となる逆直交変換を行い、予測誤差を復元し、予測再構成部210に出力する。予測再構成部210は、入力された予測誤差に復号済みの周囲の画素データから予測を行ってブロック単位の画像を復元し、端子211から出力する。
図7は、実施形態2に係る画像復号装置における画像復号処理を示すフローチャートである。
まず、ステップS701にて、復号・分離部202がヘッダ情報を復号し、符号を後段に出力するために分離する。本実施形態では、図10に示されるビットストリームの例のシーケンスヘッダおよびピクチャヘッダが入力・復号され、続く符号が該当するブロックに出力されるものとする。ステップS702にて、量子化マトリクスヘッダ復号部203は、まず、分離された量子化マトリクスヘッダ符号を復号し、一致情報を復元する。一致情報が復号対象の量子化マトリクスと一致するマトリクスが存在していることを意味する1であった場合には、さらに量子化マトリクスヘッダ符号から参照情報を再生する。逆に復号対象の量子化マトリクスと一致するマトリクスが存在しないことを意味する0であった場合には、本ステップではこれ以上の動作は行わない。
ステップS703にて、画像復号装置はステップS702で生成された一致情報に基づいて、復号対象の量子化マトリクスの係数を復号するか否かを判定する。対象の量子化マトリクスの係数を復号する場合にはステップS704に進み、そうでない場合はステップS705に進む。ステップS704にて、量子化マトリクス係数復号部204は量子化マトリクス係数符号データを復号し、復号対象の量子化マトリクスの各係数を再生する。ステップS705にて、量子化マトリクス再構成部205はステップS702で復元された参照情報もしくはステップS704で復元された量子化マトリクスの各係数から復号対象の量子化マトリクスを再構成する。
ステップS706にて、画像復号装置は全ての量子化マトリクスが復号されたか否かの判定を行い、完了していればステップS707へと進み、そうでなければ次の量子化マトリクスを対象として、ステップS702に戻る。ステップS707にて、係数復号部207は変換ブロック単位でビットストリームから分離された量子化係数符号データを復号し、量子化係数を復元する。ステップS708にて、逆量子化部208はステップS705で再生された量子化マトリクスを用いてステップS707にて再生された量子化係数を逆量子化し、直交変換係数を復元する。ステップS709にて、逆変換部209はステップS708で復元された直交変換係数に対し、逆直交変換を行い、予測誤差を復元する。
ステップS710にて、画像復号装置は、当該ブロック内の全ての変換ブロックの復号が終了したか否かの判定を行い、終了していればステップS711に進み、終了していなければ次の変換ブロックを対象としてステップS707に戻る。ステップS711にて、予測再構成部210は復号済みの周囲の画素データから予測を行い、ステップS709で復元された予測誤差に加算して、ブロックの復号画像を生成する。ステップS712にて、画像復号装置は、全てのブロックの復号が終了したか否かの判定を行い、終了していれば全ての動作を停止して処理を終了し、そうでなければ次のブロックを対象として、ステップS707に戻る。
以上の構成と動作により、実施形態1で生成された一致情報などの少ない符号量で表された符号を含むビットストリームの復号を行い、再生画像を得ることができる。
なお、実施形態1と同様にブロックのサイズ、変換ブロックのサイズ、ブロックの形状についてはこれに限定されない。また、1つのシーケンスのビットストリーム中で量子化マトリクス符号データを複数回含めることで、量子化マトリクスの更新をすることも可能である。復号・分離部202で量子化マトリクスヘッダ符号を検出し、量子化マトリクスヘッダ復号部203で一致情報および必要に応じて参照情報を再生する。さらに一致情報に応じて、量子化マトリクス係数復号部204では復号対象の量子化マトリクスの係数を復元する。次に、量子化マトリクス再構成部205では参照情報あるいは量子化マトリクスの各係数から復号対象の量子化マトリクスを復元する。そして、復元された量子化マトリクスのデータを量子化マトリクス保持部206の該当する量子化マトリクスに置き換える。この際、全ての量子化マトリクスを書き換えても良いし、書き換える量子化マトリクスを判別することでその一部を変更することも可能である。
また、本実施形態では1ピクチャ分の符号データを蓄積してから処理を行う方式を例にとって説明したが、これに限定されない。例えば、ブロック単位や複数のブロックで構成されるスライス単位といった入力方法でも構わない。さらにはブロック等の構成ではなく、固定長のパケット等に分割されているものでも構わない。
<実施形態3>
図3は本実施形態の画像符号化装置を示すブロック図である。図3において、実施形態1の図1と同様の機能を果たす部分に関しては同じ番号を付与し、説明を省略する。
303は図1の予測部103同様、ブロック分割部102で分割された各ブロックを、ブロック単位で予測を行い、予測方法を決定し、それに従って差分値算出を行い、予測誤差を算出する予測部である。321は予測部303で生成された予測誤差に対して、直交変換を行うか否かを判定し、後段に予測誤差を出力するとともに判定結果を変換スキップ判定情報として後段に出力する変換制御部である。304は図1の変換部104同様、各ブロックの予測誤差に対して直交変換を行う変換部であり、入力されたブロックのサイズまたはそれを細分化したブロックを単位に直交変換を行い、直交変換係数を算出する。
322は後段の量子化部305における量子化処理との整合性を取るために予測誤差のビット深度調整を行うビット深度調整部である。ここでのビット深度調整の度合いは入力映像のビット深度や変換部304における直交変換に伴うビット深度調整、量子化部305における量子化処理に伴うビット深度調整および量子化マトリクスの係数値などによって定まるものとする。例えば、本実施形態においては、所定値である13と入力画像のビット深度との差の分だけ予測誤差を左側にビットシフトすることによりビット深度調整を行うものとする。すなわち、入力画像のビット深度が8ビットであれば、5ビット分予測誤差を左側にビットシフトするものとする。ただし、ビット深度調整に用いられる値はこれに限定されない。
305は量子化マトリクス保持部107に格納された量子化マトリクスによって、変換部304で生成された直交変換係数もしくはビット深度調整部322でビット深度調整をされた予測誤差を量子化する量子化部である。311はヘッダ情報や予測、変換に関する符号を生成するとともに、前述の各符号化部で生成された符号データを統合してビットストリームを形成して出力する統合符号化部である。図1の統合符号化部111とは変換スキップ判定情報をさらに符号化して符号データを生成し、ビットストリームを形成して出力する点が異なる。
上記画像符号化装置における画像の符号化動作を以下に説明する。
予測部303では、まず、ブロック単位の予測が行われ、予測誤差が生成される。生成された予測誤差は変換制御部321に出力される。変換制御部321では、入力された予測誤差に対し直交変換を行うか否かを決定する。そして、直交変換を行う場合には予測誤差を変換部304に出力し、直交変換を行わない場合には予測誤差をビット深度調整部322に出力する。直交変換を行うか否かの決定方法は特に限定しないが、画像の特徴や直交変換後の変換係数の大きさなどから決定しても良い。また、決定された判定結果を変換スキップ判定情報として統合符号化部311に出力する。変換部304では、変換制御部321から入力された予測誤差を変換ブロックサイズ単位で直交変換を行い、直交変換係数を生成する。
一方、ビット深度調整部322では、変換制御部321から入力された予測誤差を変換ブロック単位でビット深度調整を行い、ビット深度調整された予測誤差を生成する。量子化部305では、変換部304から出力された直交変換係数あるいはビット深度調整部322から出力されたビット深度調整された予測誤差に対し、量子化マトリクス保持部107に格納されている量子化マトリクスを用いて量子化し、量子化係数を生成する。生成された量子化係数は係数符号化部106に入力される。
統合符号化部311では画像の符号化に必要なヘッダ情報を符号化し、入力された量子化マトリクスヘッダ符号および量子化マトリクス係数符号を統合する。統合符号化部311では図1の統合符号化部111で符号化するヘッダ情報に加えて変換制御部321から入力された変換スキップ判定情報もさらに符号化する。
図8は実施形態3に係る画像符号化装置における画像符号化処理を示すフローチャートである。図8において、実施形態1の図6と同様の機能を果たす部分に関しては同じ番号を付与し、説明を省略する。
ステップS820にて、変換制御部321はステップS609で生成された予測誤差に対し直交変換を行うか否かを決定して変換スキップ判定情報を生成する。ステップS821にて、変換スキップ判定情報に基づいて、直交変換を行うのであればステップS610に進み、行わないのであればステップS822に進む。ステップS822にて、ビット深度調整部322はステップS609で生成された予測誤差を変換ブロック単位でビット深度調整を行い、ビット深度調整された予測誤差を生成する。ステップS811にて、量子化部305はステップS610で生成された直交変換係数もしくはステップS822で生成されたビット深度調整された予測誤差を、ステップS601で生成された量子化マトリクスを用いて量子化し、量子化係数を生成する。ステップS823にて、統合符号化部311はステップS821で生成された変換スキップ判定情報を符号化する。
以上の構成と動作により、特にステップS820からステップS823によって、変換スキップに対応するフラットな量子化マトリクスを符号化する際に、冗長な符号を送る必要が無いため、符号量を削減したビットストリームを構成することができる。
本実施形態においては、変換ブロック単位で変換スキップ判定情報が符号化される構成としたが、変換スキップ判定情報が符号化される単位はこれに限定されない。ブロック単位で符号化しても良いし、各色成分で共通した変換スキップ判定情報を用いて符号量を節約する構成をとることも可能である。符号化の方法は特に限定しないが、ハフマン符号や算術符号などを用いることができる。
<実施形態4>
図4は本実施形態の画像復号装置を示すブロック図である。図4において、実施形態2の図2と同様の機能を果たす部分に関しては同じ番号を付与し、説明を省略する。本実施形態では、実施形態3で生成されたビットストリームの復号について説明する。
402は入力されたビットストリームのヘッダ情報を復号し、ビットストリームから必要な符号を分離して後段へ出力する復号・分離部である。復号・分離部402は図3の統合符号化部311と逆の動作を行う。図2の復号・分離部202とは変換スキップ判定情報をさらに復号・再生して後段に出力するところが異なる。408は量子化マトリクス保持部206に格納された量子化マトリクスを用いて量子化係数に逆量子化を行い、逆量子化係数を再生する逆量子化部である。本実施形態における逆量子化係数は実施形態3における直交変換係数もしくはビット深度調整された予測誤差に相当する。
421は復号・分離部402から入力された変換スキップ判定情報に基づいて、逆直交変換を行うか否かを判定し、後段に逆量子化係数を出力する逆変換制御部である。409は図3の変換部304の逆となる逆直交変換を行い、予測誤差を再生する逆変換部である。422は図3のビット深度調整部322の逆となるビット深度調整を行い、予測誤差を再生するビット深度逆調整部である。ここでのビット深度逆調整の度合いは出力画像のビット深度や、逆変換部409における逆直交変換に伴うビット深度調整、逆量子化部408における量子化処理に伴うビット深度調整および量子化マトリクスの係数値などによって定まるものとする。例えば、本実施形態においては、13と出力画像のビット深度との差の分だけ係数を右側にビットシフトすることによりビット深度逆調整を行うものとする。すなわち、出力画像のビット深度が8ビットであれば、5ビット分予測誤差を右側にビットシフトするものとする。ただし、ビット深度逆調整に用いられる値はこれに限定されない。410は予測誤差と復号済みの画像からブロックの画像を再生する予測再構成部である。
上記画像復号装置における画像の復号動作を以下に説明する。
図4において、端子201から入力された1ピクチャ分のビットストリームは復号・分離部402に入力され、画像を再生するのに必要なヘッダ情報が復号され、さらに後段で使用される符号が分離され、適宜出力される。ヘッダ情報に含まれる量子化マトリクスヘッダ符号は量子化マトリクスヘッダ復号部203に出力される。また、復号・分離部402では、量子化マトリクスヘッダ復号部203から復号対象の量子化マトリクスの係数を復号する必要性があることを示す情報が入力された場合、量子化マトリクス係数復号部204に量子化マトリクス係数符号データを出力する。さらに復号・分離部402では、ビットストリームから変換ブロック単位で逆直交変換を行うか否かを示す変換スキップ判定情報を復号・再生し、逆変換制御部421に出力する。
逆量子化部408では、係数復号部207で再生された量子化係数および量子化マトリクス保持部206に格納されている量子化マトリクスを入力する。そして、前記量子化マトリクスを用いて逆量子化を行い、逆量子化係数を再生し、逆変換制御部421に出力する。逆変換制御部421では、復号・分離部402から入力された変換スキップ判定情報に基づいて、入力された逆量子化係数に対し逆直交変換を行うか否かを決定する。そして、逆直交変換を行う場合には逆量子化係数を逆変換部409に出力し、行わない場合には逆量子化係数をビット深度逆調整部422に出力する。逆変換部209では、入力された逆量子化係数である直交変換係数に対し、図3の変換部304の逆となる逆直交変換を行い、予測誤差を再生し、予測再構成部410に出力する。
一方、ビット深度逆調整部422では、逆変換制御部421から入力された逆量子化係数であるビット深度調整された予測誤差を変換ブロック単位でビット深度逆調整を行い、予測誤差を再生し、予測再構成部410に出力する。予測再構成部410では、入力された予測誤差に復号済みの周囲の画素データから予測を行ってブロック単位の画像を再生し、端子211から出力する。
図9は実施形態4に係る画像復号装置における画像復号処理を示すフローチャートである。実施形態2の図7と同様の機能を果たす部分に関しては同じ番号を付与し、説明を省略する。
ステップS921にて、復号・分離部402はビットストリームから変換ブロック単位で逆直交変換を行うか否かを示す変換スキップ判定情報を復号・再生する。ステップS922にて、ステップS921で生成された変換スキップ判定情報に基づいた判定を行う。逆直交変換を行う場合はS709に進み、そうでない場合はS923に進む。ステップS923にて、ビット深度逆調整部422はステップS708で生成された逆量子化係数を変換ブロック単位でビット深度逆調整を行い、予測誤差を再生する。
以上の構成と動作により、変換スキップ処理を有した画像復号装置においても、実施形態3で生成された、量子化マトリクス一致情報等で少ない符号量で表されたフラットな量子化マトリクスの復号を行い、再生画像を得ることができる。
また、本実施形態においては、変換ブロックごとに変換スキップ判定情報が存在する構成としたが、ヘッダ部分にフラグを持ち、それによって復号装置が変換スキップ処理を有するか否かを切り替える構成をとっても良い。その場合、変換スキップ処理を用いる場合のみフラットな量子化マトリクスを記憶しておき参照対象とし、そうでない場合は参照対象から外すような構成をとっても良い。
<実施形態5>
図1、図2、図3、図4に示した各処理部はハードウェアでもって構成しているものとして上記実施形態では説明した。しかし、図1、図2、図3、図4に示した各処理部で行なう処理をコンピュータプログラムでもって構成しても良い。
図12は、上記各実施形態に係る画像表示装置に適用可能なコンピュータのハードウェアの構成例を示すブロック図である。
CPU1201は、RAM1202やROM1203に格納されているコンピュータプログラムやデータを用いてコンピュータ全体の制御を行うと共に、上記各実施形態に係る画像処理装置が行うものとして上述した各処理を実行する。即ち、CPU1201は、図1、図2、図3、図4に示した各処理部として機能することになる。
RAM1202は、外部記憶装置1206からロードされたコンピュータプログラムやデータ、I/F(インターフェース)1207を介して外部から取得したデータなどを一時的に記憶するためのエリアを有する。更に、RAM1202は、CPU1201が各種の処理を実行する際に用いるワークエリアを有する。即ち、RAM1202は、例えば、ピクチャメモリとして割当てたり、その他の各種のエリアを適宜提供することができる。
ROM1203には、本コンピュータの設定データや、ブートプログラムなどが格納されている。操作部1204は、キーボードやマウスなどにより構成されており、本コンピュータのユーザが操作することで、各種の指示をCPU1201に対して入力することができる。出力部1205は、CPU1201による処理結果を出力する。また出力部1205は例えば液晶ディスプレイのような表示装置で構成して処理結果を表示することができる。
外部記憶装置1206は、ハードディスクドライブ装置に代表される、大容量情報記憶装置である。外部記憶装置1206には、OS(オペレーティングシステム)や、図1、図2、図3、図4に示した各部の機能をCPU1201に実現させるためのコンピュータプログラムが保存されている。更には、外部記憶装置1206には、処理対象としての各画像が保存されていても良い。
外部記憶装置1206に保存されているコンピュータプログラムやデータは、CPU1201による制御に従って適宜RAM1202にロードされ、CPU1201による処理対象となる。I/F1207には、LANやインターネット等のネットワーク、投影装置や表示装置などの他の機器を接続することができ、本コンピュータはこのI/F1207を介して様々な情報を取得したり、送出したりすることができる。1208は上述の各部を繋ぐバスである。
上述の構成からなる作動は前述のフローチャートで説明した作動をCPU1201が中心となってその制御を行う。
<その他の実施形態>
本発明の目的は、前述した機能を実現するコンピュータプログラムのコードを記録した記憶媒体を、システムに供給し、そのシステムがコンピュータプログラムのコードを読み出し実行することによっても達成される。この場合、記憶媒体から読み出されたコンピュータプログラムのコード自体が前述した実施形態の機能を実現し、そのコンピュータプログラムのコードを記憶した記憶媒体は本発明を構成する。また、そのプログラムのコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した機能が実現される場合も含まれる。
さらに、以下の形態で実現しても構わない。すなわち、記憶媒体から読み出されたコンピュータプログラムコードを、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込む。そして、そのコンピュータプログラムのコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行って、前述した機能が実現される場合も含まれる。
本発明を上記記憶媒体に適用する場合、その記憶媒体には、先に説明したフローチャートに対応するコンピュータプログラムのコードが格納されることになる。