以下、添付の図面を参照して、本願発明をその好適な実施形態に基づいて詳細に説明する。なお、以下の実施形態において示す構成は一例に過ぎず、本発明は図示された構成に限定されるものではない。
<実施形態1>
以下、本発明の実施形態を、図面を用いて説明する。図1は本実施形態の画像符号化装置を示すブロック図である。図1において、1000は画像データを入力する端子である。
1001は入力画像を複数の基本ブロック単位でブロックを切り出し、必要に応じてサブブロックに分割するブロック分割部である。量子化制御はサブブロック単位で行うことになる。説明を容易にするために、入力画像は8ビットの画素値を持つこととするが、これに限定されない。また、基本ブロックのサイズを64画素×64画素とし、サブブロックの最小サイズを8画素×8画素とする。この場合、基本ブロックは、4つのサブブロックを包含することになる。またブロックの分割に関しては縦横1/2のサイズに4分割する方法を例にとって説明するが、これにブロックの形状、サイズは限定されない。基本ブロックはサブブロックを最低限2つ以上包含していればよい。サブブロックの分割に関しては、特に限定されない。例えば全体をサブブロックに分割し、エッジ量などを算出しクラスタリングして分割を行っても構わない。すなわち、エッジが多く集まる部分は細かくサブブロックを設定し、平坦な部分は大きなサブブロックを設定する。1002は基本ブロックの量子化パラメータ、および各サブブロックの量子化パラメータを決定する量子化パラメータ決定部である。
1003はブロック分割部1001で分割された各サブブロックを、サブブロック単位で予測を行い、各サブブロックの予測誤差を算出するブロック予測部である。静止画または動画の場合のイントラフレームではイントラ予測を行い、動画の場合は動き補償予測も行うものとする。1004は各サブブロックの予測誤差に対して直交変換を行い、直交変換係数を算出するブロック変換部である。直交変換に関しては特に限定しないが、離散コサイン変換やアダマール変換等を用いてもよい。1005は量子化パラメータ決定部1002で決定されたサブブロック単位の量子化パラメータによって前記直交変換係数を量子化するブロック量子化部である。この量子化によって量子化係数を得ることができる。1006はこのようにして得られたサブブロック単位の量子化係数を可変長符号化して量子化係数符号データを生成するブロック符号化部である。符号化の方法は特に限定しないが、ハフマン符号や算術符号等を用いることができる。1007はブロック再生画像生成部である。ブロック量子化部、ブロック変換部1004の逆の動作を行って予測誤差を再生し、ブロック予測部1003の結果から基本ブロックの復号画像を生成する。再生された画像データは保持され、ブロック予測部1003での予測に用いられる。
1008は量子化パラメータ決定部1002で決定した基本ブロックの量子化パラメータおよび各サブブロックの量子化パラメータを符号化して量子化パラメータ符号データを生成する量子化パラメータ符号化部である。
1009は統合符号化部である。ヘッダ情報や予測に関する符号を生成するとともに、量子化パラメータ符号化部1008で生成された量子化パラメータ符号データおよびブロック符号化部1006で生成された量子化係数符号データを統合する。1010は端子であり、統合符号化部1009で統合されて生成されたビットストリームを外部に出力する端子である。
上記画像符号化装置における画像の符号化動作を以下に説明する。本実施形態では動画像データをフレーム単位に入力する構成となっているが、1フレーム分の静止画像データを入力する構成としても構わない。
端子1000から入力された1フレーム分の画像データはブロック分割部1001に入力され、64画素×64画素の基本ブロックに分割される。さらに必要に応じて最小8画素×8画素のサブブロックに分割される。サブブロックの分割に関する情報と分割された画像データは量子化パラメータ決定部1002とブロック予測部1003に入力される。
ブロック予測部1003ではブロック再生画像生成部1007に保持されている再生画像を参照して予測を行い、予測誤差を生成してブロック変換部1004及びブロック再生画像生成部1007に入力する。ブロック変換部1004では入力された予測誤差に対して直交変換を行い、直交変換係数を求め、ブロック量子化部1005に入力する。
一方、量子化パラメータ決定部1002では入力された各サブブロック単位で発生した符号量を鑑みて、サブブロック単位で画質と符号量のバランスから最適な量子化パラメータを決定する。例えば、特開平4−323961号公報に記載されているような手法を用いることができる。決定された各サブブロックの量子化パラメータはブロック量子化部1005、ブロック再生画像生成部1007、量子化パラメータ符号化部1008に入力される。
ブロック量子化部1005において、ブロック変換部1004から出力された直交変換係数を量子化パラメータ決定部1002で決定した量子化パラメータで量子化して量子化係数を生成する。生成された量子化係数はブロック符号化部1006とブロック再生画像生成部1007に入力される。ブロック再生画像生成部1007では入力された量子化係数を量子化パラメータ決定部1002で決定した量子化パラメータで直交変換係数を再生する。直交変換係数は逆直交変換されて予測誤差を再生する。再生された予測誤差は予測時に参照した画素値等によって再生画像として生成され、保持される。一方、ブロック符号化部1006では量子化係数を符号化し、量子化係数符号データを生成して統合符号化部1009に出力する。
量子化パラメータ決定部1002で決定された量子化パラメータは量子化パラメータ符号化部1008で基本ブロック単位に符号化される。
図3に量子化パラメータ符号化部1008の詳細なブロック図を示す。図3において、1は図1の量子化パラメータ決定部1002から各サブブロックの量子化パラメータを入力する端子である。2は入力された各サブブロックの量子化パラメータを一旦格納する量子化パラメータ保持部である。3は格納された各サブブロックの量子化パラメータから基本ブロックの量子化パラメータを決定する基本ブロック量子化パラメータ決定部である。4は基本ブロック量子化パラメータを符号化して基本ブロック量子化パラメータ符号を生成する基本ブロック量子化パラメータ符号化部である。5は生成された基本ブロック量子化パラメータ符号を図1の統合符号化部1009に出力する端子である。6は基本ブロック量子化パラメータを用いて各サブブロックの量子化パラメータとの差分を求めるサブブロック量子化パラメータ差分部である。7は前記差分を符号化してサブブロック量子化パラメータ差分値符号を生成するサブブロック量子化パラメータ符号化部である。8はサブブロック量子化パラメータ符号を図1の統合符号化部1009に出力する端子である。
以上の構成において、量子化パラメータ保持部2は端子1から入力されるサブブロック量子化パラメータを基本ブロック単位で格納する。格納されたら、基本ブロック量子化パラメータ決定部3は基本ブロック量子化パラメータ算出を行う。本実施形態ではサブブロック量子化パラメータの平均値を算出する。図2(b)の場合、その平均値は14.6となる。量子化パラメータの符号化が整数単位であれば、四捨五入を行い、基本ブロック量子化パラメータを15とする。決定された基本ブロック量子化パラメータは基本ブロック量子化パラメータ符号化部4とサブブロック量子化パラメータ差分部6に入力される。基本ブロック量子化パラメータ符号化部4は入力された基本ブロック量子化パラメータをゴロム符号化で符号化し、基本ブロック量子化パラメータ符号を生成して端子5を経由して出力する。
一方、サブブロック量子化パラメータ差分部6では各サブブロック量子化パラメータと基本ブロック量子化パラメータとの差分を算出する。図2(b)の場合、差分値は領域四分木構造の順で−3、−1、+3、−3、+3、−3、−3、−1、−1、+5となる。これらの差分値はサブブロック量子化パラメータ符号化部7に入力される。サブブロック量子化パラメータ符号化部7ではこれらの値を変化の有無とともに符号化する。まず、最初のサブブロック10001の量子化パラメータは基本ブロック量子化パラメータの15とは異なる。そこで、変化があったことを表す1ビットの値“1”と差分値“−3”をゴロム符号化によって符号化し、サブブロック量子化パラメータ差分値符号化データとして端子8から出力する。続いて、第2番目のサブブロック10002のサブブロック量子化パラメータの差分値を符号化する。この差分値は基本ブロック量子化パラメータと異なるため、変化があったことを表す1ビットの値“1”と−1をゴロム符号化した符号を端子8から出力する。以後、同様に変化があったことを表す1ビットの値“1”とサブブロック量子化パラメータの差分値を符号化し、サブブロック量子化パラメータ差分値符号化データを生成する。
図1に戻り、統合符号化部1009は画像のシーケンス、フレームのヘッダといった符号を生成し、各基本ブロックに関しては、ブロック予測部1003から予測のモードといった情報を取得して符号化する。続いて量子化パラメータ符号化部1008から基本ブロック量子化パラメータ符号を入力する。以後、サブブロックごとにサブブロック量子化パラメータ差分値符号化データと各量子化係数符号データを統合してビットストリームとして端子1010から出力する。
図4は、実施形態1に係る画像符号化装置における画像符号化処理を示すフローチャートである。まず、ステップS001にて、統合符号化部1009はシーケンス、フレームのヘッダといった符号を生成して出力する。
ステップS002にて、ブロック分割部1001は入力された画像に対して、基本ブロックを画像の左上から順に切り出す。
ステップS003にて、ブロック分割部1001はさらに基本ブロックをサブブロックに分割する。
ステップS004にて、各サブブロックの量子化パラメータを決定する。ステップS005にて、ステップS004で求められたサブブロック量子化パラメータから基本ブロックの量子化パラメータを決定する。本実施例では説明のため、基本ブロック内のサブブロックの量子化パラメータの平均値を基本ブロックの量子化パラメータとして算出する。
ステップS006にて、ステップS005で決定された基本ブロック量子化パラメータをゴロム符号化して基本ブロック量子化パラメータ符号として出力する。
ステップS007にて、サブブロック単位でサブブロック量子化パラメータの符号化を行う。領域四分木構造の順で基本ブロックと同じ量子化パラメータを使用する場合は1ビットの符号“0”を符号として出力する。異なる場合は、1ビットの符号“1”に続いてサブブロック量子化パラメータと基本ブロック量子化パラメータとの差分を符号化して出力する。
ステップS008にて、サブブロックの画像データに対して、予測を行い、予測誤差に対して、直交変換、量子化を行い、得られた量子化係数を符号化して量子化係数符号データを出力する。
ステップS009にて、得られた量子化係数を逆量子化、逆変換を行い、予測誤差を算出する。この予測誤差と再生画像からの予測値から当該サブブロックの再生画像を生成する。
ステップS010にて、画像符号化装置は、当該基本ブロック内の全てのサブブロックの符号化が終了したか否かの判定を行い、終了していればステップS011に進み、終了していなければ次のサブブロックを対象としてステップS007に戻る。
ステップS011にて、画像符号化装置は、全ての基本ブロックの符号化が終了したか否かの判定を行い、終了していれば全ての動作を停止して処理を終了し、そうでなければ次の基本ブロックを対象としてステップS002に戻る。
以上の構成と動作により、特にステップS005からステップS009の処理により、基本ブロック量子化パラメータを用いて各サブブロック量子化パラメータの差分値を符号化することで発生する符号量を抑制することができる。
なお、本実施形態では平均値をそのまま用いたが、これに限定されず、平均値に最も近い実在するサブブロック量子化パラメータを選択しても構わない。例えば、図2(b)の例では平均値は前述の通り14.6であるが、四捨五入ではなく、最も近い実在するサブブロック量子化パラメータの値、14を用いても構わない。このようにすることで変化を表す符号を“0”とすることができ、伝送するサブブロック量子化パラメータ差分値もより少なくできる。
さらに本構成において、予測、量子化、変換、符号化を並列に効率よく行うことが可能になり、高速化を図ることができる効果もある。
図5に、図2(a)に示した基本ブロックのサブブロックを量子化・変換・符号化する例を示す。ここでは説明のために符号化処理に使用するプロセッサを3つと仮定する。これらのプロセッサ(A〜C)で各サブブロックの量子化パラメータ(QP)の算出、量子化パラメータ差分値(ΔQP)の算出・符号化、予測誤差の直交変換・量子化、量子化係数の符号化を行う場合を例にとる。この時、別プロセッサでこれらの符号を統合することとする。
図5(a)は従来の並列処理の例を表した図である。最初にプロセッサAにサブブロック10001の処理を、プロセッサBにサブブロック10002の処理を、プロセッサCにサブブロック10003の処理を割り当てる。QPの算出に関してはブロックの大きさや画像の複雑度等によって処理時間が変わる。ブロックサイズの大きいサブブロック10001の量子化パラメータ算出はサブブロック10002やサブブロック10003より時間がかかる傾向にある。
量子化パラメータ算出に続き、量子化パラメータ差分値算出を行う。サブブロック10002のサブブロック量子化パラメータ差分値の算出はサブブロック10001のサブブロック量子化パラメータ算出が終了しなければ求められない。したがってこの間、プロセッサAでのサブブロック10001のサブブロック量子化パラメータの算出までプロセッサBは待機状態になる。また、サブブロック10002の量子化パラメータ算出がサブブロック10003より時間がかかった場合、サブブロック10003の差分値の算出はサブブロック10002のサブブロック量子化パラメータの算出が終了しなければ求められない。この間、プロセッサBでのサブブロック10002のサブブロック量子化パラメータの算出までプロセッサCは待機状態になる。
これに対して、図5(b)は本実施形態での並列処理の例を表した図である。従来の場合と同様に、プロセッサAにサブブロック10001の処理を、プロセッサBにサブブロック10002の処理を、プロセッサCにサブブロック10003の処理を割り当てる。サブブロック量子化パラメータの算出に続き、サブブロック量子化パラメータ差分値の算出を行う。サブブロック10002のサブブロック量子化パラメータ差分値の算出は、基本ブロック量子化パラメータが算出済みなので、サブブロック量子化パラメータの算出の直後から開始できる。以上により本発明によって並列化を効率よく行うことができる。特に複数のサイズのサブブロックが混在する場合、処理の間隔を縮める効果が大きくなる。
なお、本実施形態においては、基本ブロック量子化パラメータの値そのものを符号化したが、前に処理した基本ブロック量子化パラメータを用いて予測を行い符号化してもよい。
さらに、本実施形態では説明のために基本ブロックを64画素×64画素、サブブロックを8画素×8画素までとしたが、これに限定されない。例えば基本ブロックは128画素×128画素等のブロックサイズへの変更が可能であり、また、基本ブロック、サブブロックの形状も正方形に限定されず、8画素×4画素などの長方形で発明の本質は変わらない。
また、本実施形態では基本ブロック量子化パラメータを各サブブロック量子化パラメータの平均値としたが、これに限定されない。例えばサブブロックの中央値としても構わないし、最も頻度の高いサブブロック量子化パラメータの値としてももちろん構わない。このように算出方法を複数用意し、最も効率の良い基本ブロック量子化パラメータを選択してももちろん構わない。
なお、サブブロック量子化パラメータ差分値符号化データとして変化の有無を表す符号を1ビット付与して符号化を行ったが、これに限定されず、変化がない場合でもサブブロック量子化パラメータ差分値を符号化してももちろん構わない。
なお、本実施形態で基本ブロック量子化パラメータ、サブブロック量子化パラメータ差分値および量子化係数の符号化にゴロム符号化を用いて説明したが、これに限定されない。例えばハフマン符号化やその他の算術符号化であってももちろん構わないし、値を符号化せずにそのままの値を出力しても構わない。
なお、本実施形態においては、イントラ予測を用いるフレームを例にとって説明したが、予測に動き補償を行うインター予測を使用できるフレームにおいても対応できることは明らかである。
<実施形態2>
本実施形態では、実施形態1の符号化方法を用いて符号化された符号データを復号する画像復号方法について説明する。図6は、本発明の実施形態2に係る画像復号装置の構成を示すブロック図である。
1100は符号化されたビットストリームを入力する端子である。1101はビットストリームのヘッダ情報の復号、ビットストリームから必要な符号を分離して後段へ出力する復号・分離部である。復号・分離部1101は図1の統合符号化部1009の逆の動作を行う。1102は量子化パラメータの符号化データを復号する量子化パラメータ復号部である。1103は各サブブロックの量子化係数符号を復号し、量子化係数を再生するブロック復号部である。1104は量子化パラメータ復号部1102で再生されたサブブロック量子化パラメータによって量子化係数に逆量子化を行い、直交変換係数を再生するブロック逆量子化部である。1105は図1のブロック変換部1004の逆直交変換を行い、予測誤差を再生するブロック逆変換部である。1106は予測誤差と復号済みの画像データからサブブロックの画像データを再生するブロック再生部である。1107は再生されたサブブロックの画像データをそれぞれの位置に配置し、基本ブロックの画像データを再生するブロック合成部である。
上記画像復号装置における画像の復号動作を以下に説明する。本実施形態では実施形態1で生成された動画像ビットストリームをフレーム単位に入力する構成となっているが、1フレーム分の静止画像ビットストリームを入力する構成としても構わない。
図6において、端子1100から入力された1フレーム分のストリームデータは復号・分離部1101に入力され、画像を再生するのに必要なヘッダ情報が復号される。これに続く基本ブロック量子化パラメータ符号を量子化パラメータ復号部1102に入力する。さらにそれに続くサブブロック量子化パラメータ差分値符号も量子化パラメータ復号部1102に入力する。
図7は量子化パラメータ復号部1102の詳細を表すブロック図である。101は図6の復号・分離部1101から基本ブロック量子化パラメータ符号を入力する端子である。102は図6の復号・分離部1101からサブブロック量子化パラメータ差分符号化データを入力する端子である。103は基本ブロック量子化パラメータ符号を入力して復号し、基本ブロック量子化パラメータを再生する基本ブロック量子化パラメータ復号部である。104はサブブロック量子化パラメータ差分値符号化データを復号し、各サブブロック量子化パラメータ差分値を再生するサブブロック量子化パラメータ復号部である。105は再生された基本ブロック量子化パラメータと各サブブロック量子化パラメータ差分値を加算して各サブブロック量子化パラメータを再生するサブブロック量子化パラメータ加算部である。106は再生された各サブブロック量子化パラメータを図6のブロック逆量子化部1104に出力する端子である。
端子101から入力された基本ブロック量子化パラメータ符号は基本ブロック量子化パラメータ復号部103に入力され、ゴロム符号の復号により、基本ブロック量子化パラメータを再生し、これを保持する。
端子102から入力されたサブブロック量子化パラメータ差分値符号化データはサブブロック量子化パラメータ復号部104に入力され、ゴロム符号の復号により、サブブロック量子化パラメータ差分値を再生する。すなわち、基本ブロック量子化パラメータに対して変化の有無を表す1ビットを復号し、変化がない場合はサブブロック量子化パラメータ差分値として0を出力する。変化がある場合は続いてサブブロック量子化パラメータ差分値を復号し、出力する。サブブロック量子化パラメータ加算部105で再生された基本ブロック量子化パラメータにサブブロック量子化パラメータ差分値を加算してサブブロック量子化パラメータを再生し、端子106から出力する。
図6に戻り、復号・分離部1101において分離されたサブブロックの量子化係数符号データはブロック復号部1103に入力され、ゴロム符号の復号により各量子化係数が再生される。サブブロックの量子化係数が再生されたら、ブロック逆量子化部1104に入力される。ブロック逆量子化部1104では、入力されたサブブロックの量子化係数とサブブロック量子化パラメータから逆量子化を行い、直交変換係数を再生する。再生された直交変換係数はブロック逆変換部1105にて逆変換を行い、予測誤差を再生する。再生された予測誤差はブロック再生部1106に入力され、復号済みの周囲の画素データ、または前のフレームの画素データから予測を行ってサブブロックの画像データを再生する。ブロック合成部1107は再生されたサブブロックの画像データをそれぞれの位置に配置し、基本ブロックの画像データを再生する。再生された基本ブロックの画像データは端子1108を介して外部に出力される。また、ブロック再生部1106に入力され、予測値算出に使用される。
図8は、実施形態2に係る画像復号装置における画像復号処理を示すフローチャートである。まず、ステップS101にて、復号・分離部1101がヘッダ情報を復号する。
ステップS102にて、基本ブロック量子化パラメータ復号部103は基本ブロック量子化パラメータ符号を復号し、基本ブロック量子化パラメータを再生する。
ステップS103にて、サブブロック量子化パラメータ復号部104はサブブロック量子化パラメータ差分値符号化データを復号し、サブブロック量子化パラメータ差分値を再生する。さらに、基本ブロック量子化パラメータを加算し、サブブロック量子化パラメータを再生する。
ステップS104にて、サブブロックの量子化係数符号データを復号し、量子化係数を再生し、逆量子化、逆直交変換を行い、予測誤差を再生する。さらに復号済みの周囲の画素データまたは前のフレームの画素データから予測を行い、サブブロックの復号画像を再生する。
ステップS105にて、サブブロックの復号画像を基本ブロックの復号画像に配置する。ステップS106にて、画像復号装置は、当該基本ブロック内の全てのサブブロックの復号が終了したか否かの判定を行い、終了していればステップS107に進み、終了していなければ次のサブブロックを対象としてステップS103に戻る。
ステップS107にて、基本ブロックの復号画像をフレームの復号画像に配置する。ステップS108にて、画像復号装置は、全ての基本ブロックの復号が終了したか否かの判定を行い、終了していれば全ての動作を停止して処理を終了し、そうでなければ次の基本ブロックを対象としてステップS102に戻る。
以上の構成と動作により、実施形態1で生成された、符号量が削減されたビットストリームの復号を行い、再生画像を得ることができる。
さらにサブブロックごとに区切り記号などで符号が識別できる形式であれば、サブブロックの量子化パラメータの再生、サブブロックの逆量子化、逆変換、画像データの再生を並列に効率的に行うことができ、高速な復号が行えるという効果もある。
図9に図2(a)に示した基本ブロックのサブブロックを復号・逆量子化・逆変換して予測誤差を再生する例を示す。実施形態1の図5と同様にここでは説明のために使用するプロセッサを3つと仮定する。これらのプロセッサで各サブブロックの量子化パラメータ差分値(ΔQP)の復号、量子化パラメータ(QP)の再生、量子化係数の復号、量子化係数の逆量子化・逆直交変換を行う場合を例にとる。この時、別プロセッサでこれらの符号を分離することとする。
図9(a)は従来の並列処理の例を表した図である。最初にプロセッサAにサブブロック10001の処理を、プロセッサBにサブブロック10002の処理を、プロセッサCにサブブロック10003の処理を割り当てる。プロセッサAは先頭なので、サブブロック量子化パラメータそのものを復号し、プロセッサBおよびCは各サブブロック量子化パラメータ差分値を復号し、続いてサブブロック量子化パラメータの再生を行う。これはサブブロック量子化パラメータの予測値となる前のサブブロックのサブブロック量子化パラメータとサブブロック量子化パラメータ差分値の加算によって実現する。
サブブロック10002のサブブロック量子化パラメータの再生はサブブロック10001の量子化パラメータの復号が終了しなければ求められない。したがってこの間、プロセッサAでのサブブロック10001の量子化パラメータの再生までプロセッサBは待機状態になる。
また、サブブロック10002の量子化パラメータ再生も同様で、プロセッサBでのサブブロック10002の量子化パラメータの再生までの間、プロセッサCは待機状態になる。以後、処理が終了したプロセッサに順次、領域四分木構造の順、すなわち、サブブロック10004、サブブロック10005、サブブロック10006の順に処理される。サブブロック10006のサブブロック量子化パラメータの再生はサブブロック10005の量子化パラメータの再生が終了しなければ求められない。したがってこの間、プロセッサAでのサブブロック10005の量子化パラメータの再生までプロセッサCは待機状態になる。
これに対して、図9(b)は本実施形態での並列処理の例を表した図である。まず、プロセッサAは基本ブロック量子化パラメータを復号して保持しておく。以下、従来の場合と同様に、プロセッサAにサブブロック10001の処理を、プロセッサBにサブブロック10002の処理を、プロセッサCにサブブロック10003の処理を割り当てる。サブブロック量子化パラメータ差分値の復号に続き、サブブロック量子化パラメータの再生を行う。サブブロック10002の量子化パラメータの再生は、基本ブロック量子化パラメータが再生済みなので、サブブロック量子化パラメータ差分値の復号の直後から開始できる。本発明によって並列化を効率よく行うことができる。特に複数のサイズのサブブロックが混在する場合、処理の間隔を縮める効果が大きくなる。
また、画像データからその一部を切り出す編集等のアプリケーションを考えた時、例えば、図2(a)のサブブロック10008のみを切り出す場合を考える。従来例であれば、サブブロック10001から1007までの復号が必要である。本発明によればサブブロック10001とサブブロック10006のみを復号すればイントラ予測を含めても復号できることが分かる。このように復号処理をスキップすることで処理の速度を向上させることができる。
また、実施形態1と同様にブロックのサイズ、処理ユニットのサイズ、参照する処理ユニットとその画素の配置、符号についてはこれに限定されない。
なお、本実施形態で基本ブロック量子化パラメータ、サブブロック量子化パラメータ差分値および量子化係数の復号にゴロム符号化を用いて説明したが、これに限定されない。例えばハフマン符号化やその他の算術符号化であってももちろん構わないし、値を符号化せずにそのままの値を出力しても構わない。
なお、本実施形態においては、イントラ予測を用いるフレームを例にとって説明したが、予測に動き補償を行うインター予測を使用できるフレームにおいても対応できることは明らかである。
<実施形態3>
図10は本実施形態の画像符号化装置を示すブロック図である。本実施形態では、先頭のサブブロックの量子化パラメータを基本ブロック量子化パラメータとし、個別に基本ブロック量子化パラメータを符号化しない。また変化の有無を表す符号がないことが実施形態1と異なる点である。ただし、実施形態1と同様に変化の有無を表す符号を用いた符号化を行っても構わない。図10において、実施形態1の図1と同様の機能を果たす部分に関しては同じ番号を付与し、説明を省略する。
1208はサブブロック量子化パラメータの符号化を行い、量子化パラメータ符号データを生成する量子化パラメータ符号化部である。1209は統合符号化部である。ヘッダ情報や予測に関する符号を生成するとともに、量子化パラメータ符号化部1208で生成された量子化パラメータ符号データおよびブロック符号化部1006で生成された量子化係数符号データを統合する。
図11に量子化パラメータ符号化部1208の詳細なブロック図を示す。図11において、実施形態1の図3と同様の機能を果たす部分に関しては同じ番号を付与し、説明を省略する。
200はセレクタであり、入力されたサブブロック量子化パラメータのサブブロックの位置に応じて出力先を選択する。203は基本ブロックの領域四分木構造順で先頭のサブブロックの量子化パラメータを基本ブロック量子化パラメータとして保持する基本ブロック量子化パラメータ保持部である。206は続く各サブブロックの量子化パラメータと基本ブロック量子化パラメータとの差分値を算出するサブブロック量子化パラメータ差分部である。207は先頭のサブブロックの量子化パラメータと各サブブロックのサブブロック量子化パラメータ差分値を符号化するサブブロック量子化パラメータ符号化部である。
上記の構成において、実施形態1と同様に、サブブロック量子化パラメータを端子1から領域四分木構造の順に入力する。セレクタ200は領域四分木構造順で先頭のサブブロックの量子化パラメータについては基本ブロック量子化パラメータ保持部203に出力する。それ以降のサブブロック量子化パラメータに関してはサブブロック量子化パラメータ差分部206に出力する。
先頭のサブブロックのサブブロックは基本ブロック量子化パラメータとして基本ブロック量子化パラメータ保持部203で保持される。その後、先頭の量子化パラメータはサブブロック量子化パラメータ差分部206にも入力される。当該サブブロック量子化パラメータは基本ブロックの先頭であるため、差分の算出は行わず、そのまま後段のサブブロック量子化パラメータ符号化部207に出力する。サブブロック量子化パラメータ符号化部207では入力されたサブブロック量子化パラメータをゴロム符号によって符号化し、端子8からサブブロック量子化パラメータ符号化データとして出力する。
続いて、端子1から領域四分木構造の順にサブブロック量子化パラメータが入力され、セレクタ200を介して、サブブロック量子化パラメータ差分部206に入力される。サブブロック量子化パラメータ差分部206では入力されたサブブロック量子化パラメータと基本ブロック量子化パラメータ保持部203に保持されている基本ブロック量子化パラメータとの差分値を算出する。サブブロック量子化パラメータ符号化部207では量子化パラメータ差分値をゴロム符号により符号化し、サブブロック量子化パラメータ差分値符号化データを生成し、サブブロック量子化パラメータ符号化データとして端子8から出力する。以後、基本ブロック内のサブブロックのサブブロック量子化パラメータに関して、差分を求め、符号化する。
図12は、実施形態3に係る画像符号化装置における画像符号化処理を示すフローチャートである。図12において、実施形態1の図4と同様の機能を果たす部分に関しては同じ番号を付与し、説明を省略する。
ステップS001からステップS004までは実施形態1と同様にサブブロック分割とサブブロック量子化パラメータの決定を行う。
ステップS205にて、先頭のサブブロック量子化パラメータを基本ブロック量子化パラメータとして保持する。
ステップS206にて、入力されたサブブロックが基本ブロックの先頭のサブブロックか否かを判定し、先頭であればステップS208に進み、そうでなければ、ステップS207に進む。ステップS207にて、ステップS205で保持された基本ブロック量子化パラメータと入力されたサブブロック量子化パラメータとの差分を算出する。
ステップS208にて、入力されたサブブロック量子化パラメータ、ないしサブブロック量子化パラメータ差分値をゴロム符号により符号化し、サブブロック量子化パラメータ符号化データとして出力する。
ステップS008、ステップS009は実施形態1と同様に動作する。ステップS210にて基本ブロック内の全てのサブブロックについて処理が終わったか否かを判定する。終了していなければ次のサブブロックの処理のためにステップS206に進む。終わっていればステップS011に進む。以後、実施形態1と同様に画像全体の符号化を行う。以上の構成と動作により、基本ブロック量子化パラメータを先頭のサブブロック量子化パラメータとすることで、基本ブロック量子化パラメータを送らずに済むので、符号化効率を向上させる効果がある。
また、実施形態1と同様に並列処理を効果的に行うことも可能になる。すなわち、図5(a)にてプロセッサBとCは最初についてはプロセッサAの先頭のサブブロック量子化パラメータの算出を待つ必要がある。しかし、以後、サブブロック10005の量子化パラメータ差分値の算出はサブブロック10004の処理を待たずに行えるようになる。
なお、実施形態1の基本ブロック量子化パラメータを符号化する方法と本実施形態の基本ブロック量子化パラメータを先頭のサブブロック量子化パラメータとすることを切り替える符号を設け、符号化効率の良い方を選択してももちろん構わない。
なお、先頭のサブブロック量子化パラメータ(基本ブロック量子化パラメータ)と後続のサブブロック量子化パラメータ差分値について同じ符号化を施すように説明したが、これに限定されない。それぞれ個別の符号化方法を適用してももちろん構わない。
なお、本実施形態で基本ブロック量子化パラメータ、サブブロック量子化パラメータ差分値および量子化係数の符号化にゴロム符号化を用いて説明したが、これに限定されない。例えばハフマン符号化やその他の算術符号化であってももちろん構わない。
なお、本実施形態においては、イントラ予測を用いるフレームを例にとって説明したが、予測に動き補償を行うインター予測を使用できるフレームにおいても対応できることは明らかである。
<実施形態4>
本実施形態では、実施形態3の符号化方法を用いて符号化された符号データを復号する画像復号方法について説明する。図13は実施形態3の符号化方法を用いて符号化された符号データを復号する画像復号装置を示すブロック図である。図13において、実施形態2の図6と同様の機能を果たす部分に関しては同じ番号を付与し、説明を省略する。
図13において、1301は復号・分離部であり、ビットストリームのヘッダ情報の復号、ビットストリームから必要な符号を分離して後段へ出力する。1302は量子化パラメータ復号部でありサブブロック量子化パラメータを再生する。実施形態2の図10における復号・分離部301、量子化パラメータ復号部302とは量子化パラメータの符号データが異なる。
上記画像復号装置における画像の復号動作を以下に説明する。本実施形態では実施形態3で生成された動画像ビットストリームをフレーム単位に入力する構成となっているが、1フレーム分の静止画像ビットストリームを入力する構成としても構わない。
実施形態2と同様に、端子1100から入力された1フレーム分のストリームデータは復号・分離部1301に入力され、画像を再生するのに必要なヘッダ情報が復号される。これに続くサブブロック量子化パラメータ符号化データを領域四分木構造の順に量子化パラメータ復号部1302に入力する。
図14は量子化パラメータ復号部1302の詳細なブロック図である。図14において、実施形態2の図7と同様の機能を果たす部分に関しては同じ番号を付与し、説明を省略する。
304はサブブロック量子化パラメータ及びサブブロック量子化パラメータ差分値符号化データを復号し、各サブブロック量子化パラメータ差分値を再生するサブブロック量子化パラメータ復号部である。300はセレクタであり、入力されたサブブロック量子化パラメータのサブブロックの位置に応じて出力先を選択する。310は最初に復号されたサブブロック量子化パラメータを基本ブロック量子化パラメータとして保持する基本量子化パラメータ保持部である。305は保持された基本ブロック量子化パラメータと各サブブロック量子化パラメータ差分値を加算して各サブブロック量子化パラメータを再生するサブブロック量子化パラメータ加算部である。
上記の構成において、基本ブロックの復号の開始時に、セレクタ300は出力先を基本ブロック量子化パラメータ保持部310とする。端子102から入力された基本ブロックの先頭サブブロックのサブブロック量子化パラメータ符号化データはサブブロック量子化パラメータ復号部104に入力され、ゴロム符号の復号により、サブブロック量子化パラメータを再生する。この先頭サブブロックのサブブロック量子化パラメータはセレクタ300を介して基本ブロック量子化パラメータ保持部310に入力され、当該基本ブロックの処理中、保持される。また、サブブロック量子化パラメータ加算部305にも先頭サブブロックのサブブロック量子化パラメータが入力される。サブブロック量子化パラメータ加算部305は先頭サブブロックに関しては差分値ではないので、再生されたサブブロック量子化パラメータを端子106から出力する。先頭のサブブロック量子化パラメータが基本ブロック量子化パラメータ保持部310に記録されたら、セレクタ300は出力先をサブブロック量子化パラメータ加算部305とする。
続いて、2番目以降のサブブロック量子化パラメータ差分値符号化データがサブブロック量子化パラメータ復号部304に入力される。入力されたサブブロック量子化パラメータ差分値符号化データはゴロム符号の復号により、サブブロック量子化パラメータ差分値を再生する。サブブロック量子化パラメータ加算部305では、保持された基本ブロック量子化パラメータにセレクタ300を介して入力されたサブブロック量子化パラメータ差分値を加算する。このようにして、サブブロック量子化パラメータを再生し、端子106から出力する。以後、基本ブロック内のサブブロックのサブブロック量子化パラメータに関して、復号を行い、サブブロック量子化パラメータ差分値を求め、加算してサブブロック量子化パラメータを再生する。
図15は、本実施形態における画像復号処理を示すフローチャートである。図15において、実施形態2の図8と同様の機能を果たす部分に関しては同じ番号を付与し、説明を省略する。
ステップS101は実施形態2と同様にヘッダ情報の復号を行う。ステップS310にて、復号するサブブロックが基本ブロックの先頭のサブブロックか否かを判定し、先頭サブブロックであれば、ステップS311に進み、そうでなければステップS303に進む。
ステップS311にて、入力されたサブブロック量子化パラメータに関する符号はサブブロック量子化パラメータの符号化データである。これをゴロム符号で復号する。復号結果を基本ブロック量子化パラメータとして保持する。その後、先頭のサブブロックの復号画像生成のため、ステップS104に進む。
ステップS303にて、入力されたサブブロック量子化パラメータに関する符号はサブブロック量子化パラメータ差分値の符号化データである。これをゴロム符号で復号し、サブブロック量子化パラメータ差分値を再生する。再生されたサブブロック量子化パラメータ差分値はステップS311で保持されている基本ブロック量子化パラメータと加算される。加算された結果がサブブロック量子化パラメータとなる。2番目以降のサブブロックの復号画像生成のため、ステップS104に進む。
以下、実施形態2と同様に、サブブロックの復号画像の生成、フレーム画像の再生が行われる。
以上の構成と動作により、実施形態3で生成した、個別に基本量子化パラメータの符号化を行わず符号量を抑えた符号化データを復号することができる。
また、実施形態2と同様に並列処理を効果的に行うことも可能になる。すなわち、図9(b)にてプロセッサAの量子化パラメータの復号の代わりに基本ブロックの先頭サブブロック量子化パラメータの復号が基本ブロック量子化パラメータの復号および先頭のサブブロック量子化パラメータ差分値の復号を置き換えることになる。これによりBとCは最初についてはプロセッサAの先頭のサブブロック量子化パラメータの復号を待つ必要があるが、以後、全てのサブブロックの量子化パラメータの再生は他のサブブロックの処理を待たずに行えるようになる。
なお、本実施形態で基本ブロック量子化パラメータ、サブブロック量子化パラメータ差分値および量子化係数の復号にゴロム符号化を用いて説明したが、これに限定されない。例えばハフマン符号化やその他の算術符号化であってももちろん構わない。
なお、実施形態3で基本ブロック量子化パラメータを符号化する方法と本実施形態の基本ブロック量子化パラメータを先頭のサブブロック量子化パラメータとすることを切り替える符号を設けた場合、その符号を解釈し、図8のステップS102を実行する。もしくは、図15のステップS310、S311,S303を実行するかを選択すればよい。
なお、本実施形態においては、イントラ予測を用いるフレームを例にとって説明したが、予測に動き補償を行うインター予測を使用できるフレームにおいても対応できることは明らかである。
<実施形態5>
本実施形態では、直前の基本ブロックのサブブロック量子化パラメータを用いて基本ブロック量子化パラメータを決定する実施の形態を説明する。
本実施形態では符号化装置は実施形態3の図10と同じ構成をとる。ただし、量子化パラメータ符号化部1208の構成が異なる。
図16は本実施形態の量子化パラメータ符号化部1208の詳細な構成を示すブロック図である。
図16において、400はセレクタであり、入力されたサブブロック量子化パラメータの基本ブロックの位置に応じて入力先を選択する。410は1つ前の基本ブロックのサブブロック量子化パラメータを保持するサブブロック量子化パラメータ保持部である。403は基本ブロック量子化パラメータ決定部である。サブブロック量子化パラメータ保持部410が保持するサブブロック量子化パラメータから符号化処理する基本ブロックの基本ブロック量子化パラメータを決定する。406はサブブロック量子化パラメータ差分部であり、基本ブロック量子化パラメータと各サブブロック量子化パラメータとの差分値を算出する。407は先頭のサブブロックの量子化パラメータと各サブブロックのサブブロック量子化パラメータ差分値を符号化するサブブロック量子化パラメータ符号化部である。
上記構成において、実施形態3と同様に、端子1000から画像データが入力され、ブロック分割部1001でサブブロックに分割され、量子化パラメータ決定部1002で各サブブロックの量子化パラメータが決定される。決定されたサブブロック量子化パラメータは量子化パラメータ符号化部1208に入力される。
図16に移り、入力されたサブブロック量子化パラメータは画像の先頭の基本ブロックの先頭サブブロックであれば、セレクタ400は端子1からの入力を選択する。入力されたサブブロック量子化パラメータはサブブロック量子化パラメータ保持部410とサブブロック量子化パラメータ差分部406、セレクタ400を経由して基本ブロック量子化パラメータ決定部403に入力される。サブブロック量子化パラメータ保持部410は次の基本ブロックの処理のためにサブブロック量子化パラメータを保持する。基本ブロック量子化パラメータ決定部403は実施形態3の基本ブロック量子化パラメータ保持部203と同様に入力されたサブブロック量子化パラメータを基本ブロック量子化パラメータとして保持する。サブブロック量子化パラメータ差分部406は実施形態3のサブブロック量子化パラメータ差分部206と同様に、サブブロック量子化パラメータをそのまま出力する。サブブロック量子化パラメータ符号化部407はこの先頭のサブブロック量子化パラメータをゴロム符号で符号化し、端子8から出力する。
以後、画像の先頭の基本ブロックの他のサブブロック量子化パラメータは端子1から入力され、サブブロック量子化パラメータ保持部410とサブブロック量子化パラメータ差分部406に入力される。サブブロック量子化パラメータ差分部406では基本ブロック量子化パラメータ決定部403から出力される基本ブロック量子化パラメータと入力との差分値を算出する。差分値はサブブロック量子化パラメータ符号化部407に入力され、実施形態3と同様に符号化され、端子8から出力される。
一方、続いて入力される画像の先頭ではない基本ブロックについてその処理を説明する。基本ブロックの符号化処理に先立ち、セレクタ400は入力先にサブブロック量子化パラメータ保持部410を選択する。基本ブロック量子化パラメータ決定部403は保持されているサブブロック量子化パラメータの平均値を算出し、これを基本ブロック量子化パラメータとする。その後、端子1から当該基本ブロックのサブブロック量子化パラメータがサブブロック量子化パラメータ差分部406に入力される。サブブロック量子化パラメータ差分部406では基本ブロック量子化パラメータ決定部403から出力される基本ブロック量子化パラメータと入力との差分値を算出する。差分値はサブブロック量子化パラメータ符号化部407に入力され、実施形態3と同様に符号化され、端子8から出力される。
図17は、実施形態5に係る画像符号化装置における画像符号化処理を示すフローチャートである。図17において、実施形態1の図4と同様の機能を果たす部分に関しては同じ番号を付与し、説明を省略する。
ステップS001からS003は実施形態1と同様にヘッダ情報の符号化、基本ブロックの分割、サブブロックの分割を行う。ステップS401にて、当該基本ブロックが画像の先頭か否かを判定する。先頭であれば、ステップS402にすすみ、そうでなければステップS409に進む。ステップS402にて、先頭基本ブロックの先頭のサブブロックか否かを判定する。先頭のサブブロックであれば、ステップS403に進み、そうでなければ、ステップS406に進む。
ステップS403にて、先頭基本ブロックの先頭サブブロックのサブブロック量子化パラメータを決定し、次の基本ブロックの処理の際に参照できるように保持する。ステップS404にて、ステップS403で決定されたサブブロック量子化パラメータを基本ブロック量子化パラメータとして保持する。ステップS405にて、ステップS403で決定されたサブブロック量子化パラメータを符号化し、ステップS008に進む。ステップS406にて、当該サブブロックのサブブロック量子化パラメータを決定し、次の基本ブロックの処理の際に参照できるように保持する。
ステップS407にて、ステップS406で決定されたサブブロック量子化パラメータからステップS404で保持された基本ブロック量子化パラメータを引く。これにより当該サブブロックのサブブロック量子化パラメータ差分値を算出する。ステップS408にて、ステップS407で算出された量子化パラメータ差分値を符号化し、量子化パラメータ差分値符号化データを生成し、ステップS008に進む。ステップS409にて、先頭ではない基本ブロックの先頭のサブブロックか否かを判定する。先頭のサブブロックであれば、ステップS410に進み、そうでなければ、ステップS406に進む。ステップS410にて、ステップS403ないしステップS406にて保持された前の基本ブロックのサブブロック量子化パラメータを参照して、当該基本ブロックの基本ブロック量子化パラメータを算出する。本実施形態では前記サブブロック量子化パラメータの平均値を算出し、これを基本ブロック量子化パラメータとする。ステップS411にて、当該サブブロックのサブブロック量子化パラメータを決定し、次の基本ブロックの処理の際に参照できるように保持する。
ステップS412にて、ステップS411で決定されたサブブロック量子化パラメータからステップS410で算出された基本ブロック量子化パラメータを引く。これにより当該サブブロックのサブブロック量子化パラメータ差分値を算出する。
ステップS413にて、ステップS412で算出された量子化パラメータ差分値を符号化し、量子化パラメータ差分値符号化データを生成し、ステップS008に進む。ステップS414にて、画像符号化装置は、当該基本ブロック内の全てのサブブロックの符号化が終了したか否かの判定を行い、終了していればステップS011に進み、終了していなければ次のサブブロックを対象としてステップS401に戻る。ステップS008、ステップS009,ステップS011は実施形態1と同様に動作し、画像全体の符号化を行う。
以上の構成と動作により、前の基本ブロックのサブブロック量子化パラメータを用いて基本ブロック量子化パラメータを決定するので、当該基本ブロックの処理を開始すると同時に基本ブロック量子化パラメータの決定が行える。このため処理の遅延を最小限に抑える効果がある。また、基本ブロック量子化パラメータを前の基本ブロックのサブブロック量子化パラメータから産出することで、基本ブロック量子化パラメータを送らずに済むので、符号化効率が向上する効果もある。
また、実施形態1と同様に並列処理を効果的に行うことも可能になる。すなわち、図5(b)にて符号化以前に基本ブロック量子化パラメータが前の基本ブロックのサブブロック量子化パラメータによって算出されている。これにより全サブブロックの量子化パラメータ差分値の算出はそれぞれのサブブロックの処理を待たずに行えるようになる。
なお、本実施形態では画像の先頭の基本ブロックの時のみ先頭サブブロックのサブブロック量子化パラメータをそのまま符号化したが、これに限定されない。つまり複数の基本ブロックからなるスライスのような構成をとり、その先頭の基本ブロックに対して同様な処理を行っても構わない。
また、本実施形態では前の基本ブロックのサブブロック量子化パラメータを参照して決定したが、これに限定されず、前の基本ブロックの最後のサブブロック量子化パラメータを当該基本ブロックの基本ブロック量子化パラメータとしても構わない。さらには周囲の基本ブロックのサブブロック量子化パラメータまたは基本ブロック量子化パラメータを参照してももちろん構わない。
また、本実施形態では基本ブロック量子化パラメータを前の基本ブロックの各サブブロック量子化パラメータの平均値としたが、これに限定されない。例えばサブブロックの中央値としても構わないし、最も頻度の高いサブブロック量子化パラメータの値としてももちろん構わない。このように算出方法を複数用意し、最も効率の良い基本ブロック量子化パラメータを選択してその方法を表す符号を用いて符号化してももちろん構わない。
なお、本実施形態においては、イントラ予測を用いるフレームを例にとって説明したが、予測に動き補償を行うインター予測を使用できるフレームにおいても対応できることは明らかである。
<実施形態6>
本実施形態では、実施形態5の符号化方法を用いて符号化された符号データを復号する画像復号方法について説明する。本実施形態では符号化装置は実施形態4の図13と同じ構成をとる。ただし、量子化パラメータ復号部1302の構成が異なる。
図18は、本発明の実施形態6に係る量子化パラメータ復号部1302の構成を示すブロック図である。図18において、実施形態4の図14と同様の機能を果たす部分に関しては同じ番号を付与し、説明を省略する。
500はセレクタであり、入力されたサブブロック量子化パラメータのサブブロック及びそのサブブロックの基本ブロックの位置に応じて出力先を選択する。501はサブブロック量子化パラメータ自体が符号化されている場合に符号を復号し、サブブロック量子化パラメータを再生するサブブロック量子化パラメータ復号部である。502はサブブロック量子化パラメータ差分値が符号化されている場合に符号を復号し、サブブロック量子化パラメータ差分値を再生するサブブロック量子化パラメータ差分値復号部である。503はセレクタであり、入力されたサブブロック量子化パラメータのサブブロック及びそのサブブロックの基本ブロックの位置に応じて入力先を選択する。504は基本ブロック量子化パラメータを決定する基本ブロック量子化パラメータ決定部である。505は決定された基本ブロック量子化パラメータと各サブブロック量子化パラメータ差分値を加算して各サブブロック量子化パラメータを再生するサブブロック量子化パラメータ加算部である。506はセレクタであり、入力されたサブブロック量子化パラメータのサブブロック及びそのサブブロックの基本ブロックの位置に応じて入力先を選択する。507は再生されたサブブロック量子化パラメータを保持するサブブロック量子化パラメータ保持部である。
上記画像復号装置における画像の復号動作を以下に説明する。本実施形態では動画像ビットストリームをフレーム単位に入力する構成となっているが、1フレーム分の静止画像ビットストリームを入力する構成としても構わない。
1フレーム分のビットストリームの復号処理に先立ち、セレクタ500は出力先をサブブロック量子化パラメータ復号部501とし、セレクタ503は入力先をサブブロック量子化パラメータ復号部501とする。セレクタ505は入力先をサブブロック量子化パラメータ復号部501とする。
まず先頭基本ブロックのサブブロック量子化パラメータの符号化データがセレクタ500を介してサブブロック量子化パラメータ復号部501に入力される。サブブロック量子化パラメータ復号部501はゴロム符号を用いて復号し、サブブロック量子化パラメータを再生する。このサブブロック量子化パラメータはセレクタ503を介して基本ブロック量子化パラメータ決定部504に入力される。基本ブロック量子化パラメータ決定部504は前記サブブロック量子化パラメータのサブブロックが先頭基本ブロックの先頭サブブロックであることから、入力をそのまま保持して基本ブロック量子化パラメータとする。また、サブブロック量子化パラメータ復号部501で再生されたサブブロック量子化パラメータはセレクタ506を介して端子106から出力される。また、サブブロック量子化パラメータはサブブロック量子化パラメータ保持部507で保持される。
その後、セレクタ500は出力先をサブブロック量子化パラメータ差分値復号部502とし、セレクタ503は入力先をサブブロック量子化パラメータ保持部507とする。セレクタ506は入力先をサブブロック量子化パラメータ加算部305とする。
続くサブブロックのサブブロック量子化パラメータ差分値符号化データが入力されると、セレクタ500を介してサブブロック量子化パラメータ差分値復号部502に入力される。サブブロック量子化パラメータ差分値復号部502ではサブブロック量子化パラメータ差分値符号化データを復号してサブブロック量子化パラメータ差分値を再生する。サブブロック量子化パラメータ加算部305では、基本ブロック量子化パラメータにサブブロック量子化パラメータ差分値を加算し、サブブロック量子化パラメータを再生する。再生されたサブブロック量子化パラメータは端子106から出力される。また、サブブロック量子化パラメータはサブブロック量子化パラメータ保持部507で保持される。
続く基本ブロックのサブブロック量子化パラメータ差分値符号化データが入力される。この時、基本ブロック量子化パラメータ決定部504は前の基本ブロックのサブブロック量子化パラメータをサブブロック量子化パラメータ保持部507から読み出す。読み出されたサブブロック量子化パラメータの平均値を求め、当該基本ブロックの基本ブロック量子化パラメータとする。
入力されたサブブロック量子化パラメータ差分値符号化データはサブブロック量子化パラメータ差分値復号部502で復号され、サブブロック量子化パラメータ差分値を再生する。サブブロック量子化パラメータ加算部305でサブブロック量子化パラメータを再生し、端子106から出力し、サブブロック量子化パラメータ保持部507で保持する。
続いて入力されるサブブロック量子化パラメータ差分値符号化データに関しても同様にサブブロック量子化パラメータ差分値を再生し多のち、サブブロック量子化パラメータを再生する。再生されたサブブロック量子化パラメータは端子106から出力され、サブブロック量子化パラメータ保持部507で保持される。
図19は、実施形態6に係る画像復号装置における画像復号処理を示すフローチャートである。
ステップS101は実施形態2と同様にヘッダ情報の復号を行う。ステップS501にて、復号するサブブロックの基本ブロックが画像の先頭か否かを判定し、先頭基本ブロックであれば、ステップS502に進み、そうでなければステップS504に進む。
ステップS502にて、復号するサブブロックが基本ブロックの先頭のサブブロックか否かを判定し、先頭ブロックであれば、ステップS503に進み、そうでなければステップS506に進む。ステップS503にて、入力されたサブブロック量子化パラメータに関する符号はサブブロック量子化パラメータの符号化データである。これをゴロム符号で復号する。復号結果を基本ブロック量子化パラメータとして保持する。と同時に次の基本ブロックの基本ブロック量子化パラメータを決定する際に参照するために別途保持しておく。その後、先頭のサブブロックの復号画像生成のため、ステップS104に進む。
ステップS504にて、復号するサブブロックが基本ブロックの先頭のサブブロックか否かを判定し、先頭ブロックであれば、ステップS505に進み、そうでなければステップS506に進む。
ステップS505にて、保持されている前の基本ブロックのサブブロック量子化パラメータから平均値を求め、基本ブロック量子化パラメータとして算出する。以後、ステップS506に進む。
ステップS506にて、入力されたサブブロック量子化パラメータに関する符号はサブブロック量子化パラメータ差分値符号化データである。これをゴロム符号で復号し、サブブロック量子化パラメータ差分値を再生する。再生されたサブブロック量子化パラメータ差分値はステップS503ないしはステップS505で保持または算出されていた基本ブロック量子化パラメータと加算される。加算された結果がサブブロック量子化パラメータとなる。以後、サブブロックの復号画像生成のため、ステップS104に進む。以下、実施形態4と同様に、サブブロックの復号画像の生成、フレーム画像の再生が行われる。
以上の構成と動作により、実施形態5で生成された基本ブロック量子化パラメータ値を符号化しないビットストリームを復号することができる。
また、実施形態2と同様に並列処理を効果的に行うことも可能になる。すなわち、図9(b)にてプロセッサAの基本ブロック量子化パラメータの復号の代わりに前の基本ブロックのサブブロック量子化パラメータによる基本ブロック量子化パラメータの算出と置き換えることになる。これにより、全てのサブブロックの量子化パラメータの再生は他のサブブロックの処理を待たずに行えるようになる。
なお、本実施形態では基本ブロック量子化パラメータを前の基本ブロックの各サブブロック量子化パラメータの平均値としたが、実施形態5の基本ブロック量子化パラメータの算出方法と同じ方法であればこれに限定されない。例えばサブブロックの中央値としても構わないし、最も頻度の高いサブブロック量子化パラメータの値としてももちろん構わない。これらの情報はサブブロック量子化パラメータ保持部507に保持されているサブブロック量子化パラメータから導出できる。
また、符号化側でこのように算出方法を複数用意し、最も効率の良い基本ブロック量子化パラメータを選択してその方法を表す符号を用いて符号化しても、復号して同様にサブブロック量子化パラメータを算出できる。
なお、本実施形態においては、イントラ予測を用いるフレームを例にとって説明したが、予測に動き補償を行うインター予測を使用できるフレームにおいても対応できることは明らかである
<実施形態7>
図1、図3、図6、図7、図10、図11、図13、図14、図16、図18に示した各処理部はハードウェアでもって構成しているものとして上記実施形態では説明した。しかし、これらの図に示した各処理部で行なう処理をコンピュータプログラムでもって構成しても良い。
図20は、上記各実施形態に係る画像表示装置に適用可能なコンピュータのハードウェアの構成例を示すブロック図である。
CPU1401は、RAM1402やROM1403に格納されているコンピュータプログラムやデータを用いてコンピュータ全体の制御を行うと共に、上記各実施形態に係る画像処理装置が行うものとして上述した各処理を実行する。即ち、CPU1401は、図1、図3、図6、図7、図10、図11、図13、図14、図16、図18に示した各処理部として機能することになる。
RAM1402は、外部記憶装置1406からロードされたコンピュータプログラムやデータ、I/F(インターフェース)1409を介して外部から取得したデータなどを一時的に記憶するためのエリアを有する。更に、RAM1402は、CPU1401が各種の処理を実行する際に用いるワークエリアを有する。即ち、RAM1402は、例えば、フレームメモリとして割当てたり、その他の各種のエリアを適宜提供することができる。
ROM1403には、本コンピュータの設定データや、ブートプログラムなどが格納されている。操作部1404は、キーボードやマウスなどにより構成されており、本コンピュータのユーザが操作することで、各種の指示をCPU1401に対して入力することができる。表示部1405は、CPU1401による処理結果を表示する。また表示部1405は例えば液晶ディスプレイのようなホールド型の表示装置や、フィールドエミッションタイプの表示装置のようなインパルス型の表示装置で構成される。
外部記憶装置1406は、ハードディスクドライブ装置に代表される、大容量情報記憶装置である。外部記憶装置1406には、OS(オペレーティングシステム)や、図1、図3、図6、図7、図10、図11、図13、図14、図16、図18に示した各部の機能をCPU1401に実現させるためのコンピュータプログラムが保存されている。更には、外部記憶装置1406には、処理対象としての各画像データが保存されていても良い。
外部記憶装置1406に保存されているコンピュータプログラムやデータは、CPU1401による制御に従って適宜RAM1402にロードされ、CPU1401による処理対象となる。I/F1407には、LANやインターネット等のネットワーク、投影装置や表示装置などの他の機器を接続することができ、本コンピュータはこのI/F1407を介して様々な情報を取得したり、送出したりすることができる。1408は上述の各部を繋ぐバスである。
上述の構成からなる作動は前述のフローチャートで説明した作動をCPU1401が中心となってその制御を行う。
また、CPUがマルチコアである場合、それぞれのコアに各処理のスレッドを割り当てることで並列処理を効率よく行うことができる。
<その他の実施形態>
本発明の目的は、前述した機能を実現するコンピュータプログラムのコードを記録した記憶媒体を、システムに供給し、そのシステムがコンピュータプログラムのコードを読み出し実行することによっても達成される。この場合、記憶媒体から読み出されたコンピュータプログラムのコード自体が前述した実施形態の機能を実現し、そのコンピュータプログラムのコードを記憶した記憶媒体は本発明を構成する。また、そのプログラムのコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した機能が実現される場合も含まれる。
さらに、以下の形態で実現しても構わない。すなわち、記憶媒体から読み出されたコンピュータプログラムコードを、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込む。そして、そのコンピュータプログラムのコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行って、前述した機能が実現される場合も含まれる。
本発明を上記記憶媒体に適用する場合、その記憶媒体には、先に説明したフローチャートに対応するコンピュータプログラムのコードが格納されることになる。