本発明の実施の形態は、ピクチャを所定サイズの矩形ブロックに分割し、更にそのブロックを1つ或いは複数の符号化ブロックに分割し、符号化ブロック単位に量子化・符号化を行う動画像符号化において、処理対象のブロックの量子化パラメータの符号量を削減するために、周囲の符号化済みブロックの符号化情報から最適な予測量子化パラメータを導出し、予測量子化パラメータとの差分を算出して、符号化する符号量制御技術を提供する。
本発明を実施する好適な動画像符号化装置100及び動画像復号装置200について説明する。図1は本発明を実施する動画像符号化装置100の構成を示すブロック図であり、画像メモリ101、残差信号生成部102、直交変換・量子化部103、第2の符号化ビット列生成部104、逆量子化・逆直交変換部105、復号画像信号重畳部106、復号画像メモリ107、予測画像生成部108、アクティビティ算出部109、量子化パラメータ算出部110、差分量子化パラメータ生成部111、第1の符号化ビット列生成部112、符号化情報格納メモリ113、予測量子化パラメータ導出部114及び符号化ビット列多重化部115から構成される。尚、各ブロック間を結ぶ太実線の矢印はピクチャの画像信号、細実線の矢印は符号化を制御するパラメータ信号の流れを表すものである。
画像メモリ101は、撮影/表示時間順に供給された符号化対象の画像信号を一時格納する。画像メモリ101は、格納された符号化対象の画像信号を、所定の画素ブロック単位で、残差信号生成部102、予測画像生成部108及びアクティビティ算出部109に供給する。その際、撮影/表示時間順に格納された画像は、符号化順序に並べ替えられて、画素ブロック単位で、画像メモリ101から出力される。
残差信号生成部102は、符号化する画像信号と予測画像生成部108にて生成された予測信号との引き算を行い残差信号を生成し、直交変換・量子化部103に供給する。
直交変換・量子化部103は、残差信号に対して直交変換及び量子化を行い、直交変換・量子化された残差信号を生成し、第2の符号化ビット列生成部104と逆量子化・逆直交変換部105に供給する。
第2の符号化ビット列生成部104は、直交変換及び量子化された残差信号を規定のシンタックス規則に従ってエントロピー符号化して第2の符号化ビット列を生成し、符号化ビット列多重化部115に供給する。
逆量子化・逆直交変換部105は、直交変換・量子化部103から供給された直交変換・量子化された残差信号を逆量子化及び逆直交変換して残差信号を算出し、復号画像信号重畳部106に供給する。
復号画像信号重畳部106は、予測画像生成部108により生成された予測画像信号と逆量子化・逆直交変換部105で逆量子化及び逆直交変換された残差信号を重畳して復号画像を生成し、復号画像メモリ107に格納する。尚、復号画像に対して符号化によるブロック歪等の歪を減少させるフィルタリング処理を施して、復号画像メモリ107に格納されることもあり、その場合、必要に応じてデブロッキングフィルタ等のポストフィルタの情報を識別するフラグ等の予測された符号化情報を符号化情報格納メモリ113に格納する。
予測画像生成部108は、画像メモリ101から供給される画像信号と復号画像メモリ107から供給される復号画像信号から、予測モードを基にフレーム内予測(イントラ予測)或いはフレーム間予測(インター予測)を行い、予測画像信号を生成する。イントラ予測は、画像メモリ101から供給される画像信号を所定のブロック単位で分割された符号化対象のブロックと、復号画像メモリ107から供給される符号化対象のブロックと同じフレーム内に存在する符号化対象のブロックに近接する周囲の符号化済みブロックの画素信号を用いて予測画像信号を生成する。インター予測は、画像メモリ101から供給される画像信号を所定のブロック単位で分割された符号化対象のブロックのフレーム(符号化フレーム)の時系列で前または後ろに数フレーム離れた復号画像メモリ107に格納されている符号化済みフレームを参照フレームとし、符号化フレームと参照フレームとの間でブロックマッチングを行い、動きベクトルと呼ばれる動き量を求め、この動き量を基に参照フレームから動き補償を行い、予測画像信号を生成する。こうして生成された予測画像信号を残差信号生成部102に供給する。予測画像生成部108にて得られた動きベクトル等の符号化情報は、必要に応じて符号化情報格納メモリ113に格納する。更に、予測画像生成部108では、複数の予測モードの選択が可能である場合、生成された予測画像信号と元の画像信号との間の歪量等を評価することにより、最適な予測モードを決定し、決定された予測モードによる予測により生成された予測画像信号を選択し、残差信号生成部102に供給するとともに、予測モードがイントラ予測である場合はイントラ予測モードを符号化情報格納メモリ113及び第1の符号化ビット列生成部に供給する。イントラ予測モードの詳細な説明は後述する。
アクティビティ算出部109は、画像メモリ101から供給される符号化対象のブロックの画像の複雑さや滑らかさを示す係数であるアクティビティが計算され、量子化パラメータ算出部110に供給する。アクティビティ算出部109の詳細な構成と動作は、後述する実施例にて説明する。
量子化パラメータ算出部110は、アクティビティ算出部109にて算出されたアクティビティによって、符号化対象のブロックの量子化パラメータを算出し、差分量子化パラメータ生成部111及び符号化情報格納メモリ113に供給する。量子化パラメータ算出部110の詳細な構成と動作は、後述する実施例にて説明する。
差分量子化パラメータ生成部111は、量子化パラメータ算出部110にて算出された量子化パラメータに対して、予測量子化パラメータ導出部114にて導出された予測量子化パラメータと引き算を行い、差分量子化パラメータを算出し、第1の符号化ビット列生成部112に供給する。
第1の符号化ビット列生成部112は、差分量子化パラメータ生成部111によって算出された差分量子化パラメータを規定のシンタックス規則に従って符号化して第1の符号化ビット列を生成し、符号化ビット列多重化部115に供給する。
符号化情報格納メモリ113は、符号化が終了したブロックの量子化パラメータを格納する。また、図1に結線を図示していないが、予測画像生成部108にて生成される予測モードや動きベクトル等の符号化情報も、次の符号化対象のブロックを符号化に必要な情報として格納する。更に、ピクチャやスライス単位で生成される符号化情報も必要に応じて格納する。
予測量子化パラメータ導出部114は、符号化対象のブロックの周囲に近接する既符号化済みのブロックの量子化パラメータや符号化情報を用いて、予測量子化パラメータを導出し、差分量子化パラメータ生成部111に供給する。予測量子化パラメータ導出部114の詳細な構成と動作は、後述する実施例にて説明する。
符号化ビット列多重化部115は、第1の符号化ビット列と第2の符号化ビット列を規定のシンタックス規則に従って多重化し、ビットストリームを出力する。
図2は図1の動画像符号化装置100に対応した実施の形態に係る動画像復号装置200の構成を示すブロック図である。実施の形態の動画像復号装置200は、ビット列分離部201、第1符号化ビット列復号部202、量子化パラメータ生成部203、符号化情報格納メモリ204、予測量子化パラメータ導出部205、第2符号化ビット列復号部206、逆量子化・逆直交変換部207、復号画像信号重畳部208、予測画像生成部209及び復号画像メモリ210を備える。尚、図1の動画像符号化装置100と同様に、各ブロック間を結ぶ太実線の矢印はピクチャの画像信号、細実線の矢印は符号化を制御するパラメータ信号の流れを表すものである。
図2の動画像復号装置200の復号処理は、図1の動画像符号化装置100の内部に設けられている復号処理に対応するものであるから、図2の逆量子化・逆直交変換部207、復号画像信号重畳部208、予測画像生成部209、復号画像メモリ210及び符号化情報格納メモリ204の各構成は、図1の動画像符号化装置100の逆量子化・逆直交変換部105、復号画像信号重畳部106、予測画像生成部108、復号画像メモリ107及び符号化情報格納メモリ113の各構成とそれぞれ対応する機能を有する。
ビット列分離部201に供給されるビットストリームは規定のシンタックスの規則に従って分離し、分離された符号化ビット列が第1符号化ビット列復号部202、第2符号化ビット列復号部206に供給される。
第1符号化ビット列復号部202は、供給された符号化ビット列を復号して予測モード、動きベクトル、差分量子化パラメータ等に関する符号化情報を出力し、差分量子化パラメータを量子化パラメータ生成部203に与えるとともに、符号化情報を符号化情報格納メモリ204に格納する。
量子化パラメータ生成部203は、第1符号化ビット列復号部202から供給される差分量子化パラメータと予測量子化パラメータ導出部205にて導出される量子化パラメータとを加算して量子化パラメータを算出し、逆量子化・逆直交変換部207及び符号化情報格納メモリ204に供給する。
符号化情報格納メモリ113は、復号が終了したブロックの量子化パラメータを格納する。更に、第1符号化ビット列復号部202にて復号されたブロック単位の符号化情報だけでなく、ピクチャやスライス単位で生成される符号化情報も必要に応じて格納する。また、図2に結線を図示していないが、復号された予測モードや動きベクトル等の符号化情報を予測画像生成部209に供給する。
予測量子化パラメータ導出部205は、復号対象ブロックの周囲に近接する既復号済みのブロックの量子化パラメータや符号化情報を用いて、予測量子化パラメータを導出し、量子化パラメータ生成部203に供給する。予測量子化パラメータ導出部205は動画像符号化装置100の予測量子化パラメータ導出部114と同等の機能を有しており、詳細な構成と動作は後述する実施例にて説明する。
第2符号化ビット列復号部206は、供給された符号化ビット列を復号して直交変換・量子化された残差信号を算出し、直交変換・量子化された残差信号を逆量子化・逆直交変換部207に与える。
逆量子化・逆直交変換部207は、第2符号化ビット列復号部206で復号された直交変換・量子化された残差信号に対して、量子化パラメータ生成部203にて生成された量子化パラメータを用いて、逆直交変換及び逆量子化を行い、逆直交変換・逆量子化された残差信号を得る。
復号画像信号重畳部208は、予測画像生成部209で生成された予測画像信号と、逆量子化・逆直交変換部207により逆直交変換・逆量子化された残差信号とを重畳することにより、復号画像信号を生成し、出力するとともに復号画像メモリ210に格納する。復号画像メモリ210に格納する際には、復号画像に対して符号化によるブロック歪等を減少させるフィルタリング処理を施して、復号画像メモリ210に格納されることもある。
予測画像生成部209は、第2符号化ビット列復号部206で復号される予測モードや動きベクトル等の符号化情報、更に符号化情報格納メモリ204から符号化情報を基にして、復号画像メモリ210から供給される復号画像信号から予測画像信号を生成し、復号画像信号重畳部208に供給する。
次に、動画像符号化装置100の中で太点線に囲まれた諸部120、特に予測量子化パラメータ導出部114と、動画像復号装置200の中で太点線に囲まれた諸部220、特に予測量子化パラメータ導出部205とで共通に実施される予測量子化パラメータを導出する方法の詳細について説明する。
まず、本実施の形態の動画像符号化装置100の中で太点線で囲まれた諸部120の各部の動作について説明する。諸部120では、画像メモリ101から供給される所定画素サイズ単位の画素ブロックを符号化ブロックとし、そのブロックを量子化する為の量子化パラメータを決定する。量子化パラメータは主に符号量制御と適応量子化のアルゴリズムによって決定される。最初にアクティビティ算出部109における適応量子化の手法について説明する。
アクティビティ算出部109では、一般に人間の視覚特性はエッジの少ない低周波成分に敏感である為、視覚的に劣化の目立ちやすい平坦部ではより細かく量子化し、劣化の比較的目立ちにくい絵柄の複雑な部分でより粗く量子化するように、所定ブロック単位に画像の複雑さや滑らかさを表現するアクティビティを算出する。
アクティビティの一例として、MPEG−2 TestModel5(TM5)に記載される符号化ブロック内の画素の分散値による算出が挙げられる。分散値はブロック内の画像を構成する画素の平均からの散らばりの度合いを示す値であり、ブロック内に画像が平坦である(輝度変化が小さい)程小さく、複雑な絵柄である(輝度変化が大きい)もの程値が大きくなるので、ブロックのアクティビティとして利用する。ブロック内の画素値をp(x,y)で表すと、ブロックのアクティビティactは次式で算出される。
ここで、BLKは符号化ブロックの画素総数であり、p_meanはブロック内の画素の平均値である。
また、以上のような分散に限らず、符号化ブロック内の画素に対して、水平方向及び垂直方向で近接する画素との差分絶対値をとり、ブロック内で総和をとっても良い。この場合でも、画像が平坦である場合は小さく、エッジが多い複雑な絵柄部分では大きい値となり、アクティビティとして利用可能である。次式により算出される。
こうして算出されたアクティビティactは量子化パラメータ算出部110に供給される。
次に、符号量制御について説明する。本実施の形態の動画像符号化装置100では、特に符号量制御を実現する部を設けていないが、符号量制御では発生符号量に基づき符号化ブロックの量子化パラメータを決定する為、量子化パラメータ算出部110の中にその機能を包含することとして説明する。
符号量制御はフレーム等の所定単位の発生符号量を目標符号量付近に合わせることを目的としており、符号化済ブロックの発生符号量が目標符号量よりも多いと判断した場合には以降に符号化するブロックに相対的に粗い量子化を適用し、符号化済ブロックの発生符号量が目標符号量よりも少ないと判断した場合には以降に符号化するブロックに相対的に細かい量子化を適用するものである。
具体的な符号量制御のアルゴリズムについて、図3を用いて説明する。
まず、フレーム毎に目標符号量(T)を決定する。一般的にはIピクチャ>Pピクチャ>参照Bピクチャ>非参照BピクチャとなるようにTを決定する。例えば、動画像の目標ビットレートが5Mbpsであり、1秒間にIピクチャが1枚、Pピクチャが3枚、参照Bピクチャが11枚、非参照Bピクチャが15枚ある場合において、ピクチャタイプ別の目標符号量をTi、Tp、Tbr、Tbとすると、Ti:Tp:Tbr:Tb=4:3:2:1の比率となるように目標符号量を制御したい場合、Ti=400kbit、Tp=300kbit、Tbr=200kbit、Tb=100kbitとなる。但し、ピクチャタイプ別の割当符号量は本発明の本質には影響しない。
次に、フレーム内の符号量制御について説明する。量子化パラメータを決定する単位であるブロックの数をN、発生符号量をB、目標符号量との差分ビットをDとすると、
となる。ここで、jは符号化ブロックの符号化処理順カウント番号である。D(0)は目標符号量差分の初期値である。
符号量制御による量子化パラメータbQPは以下のように決定される。
ここで、rは目標符号量差分を量子化パラメータに変換する比例係数である。この比例係数rは使用可能な量子化パラメータに応じて決定される。
量子化パラメータ算出部110は、符号化ブロック毎にアクティビティ算出部109で算出されたアクティビティactを使って、符号量制御にて算出された符号化ブロックの量子化パラメータを変化させる。以下では、符号化ブロック毎に算出するので、符号量制御による量子化パラメータの符号化処理順カウント番号を削除し、bQPで表すものとする。
量子化パラメータ算出部110は、アクティビティ算出部109で算出されたアクティビティactを基にして、符号化ブロックの最適な量子化パラメータQPを算出する。
量子化パラメータ算出部110は、直前に符号化したフレーム内の平均アクティビティをavg_actとして記録しておき、符号化ブロックの正規化アクティビティNactを次式により算出する。
ここで、上式の係数2は量子化パラメータのダイナミックレンジを表す値であり、0.5〜2.0の範囲をとる正規化アクティビティNactが算出される。
尚、avg_actは、符号化過程の前に、予めフレーム内の全てのブロックに対してアクティビティを算出し、その平均値をavg_actとしてもよい。更に、avc_actは符号化情報格納メモリ113に格納しておいてもよく、必要に応じて量子化パラメータ算出部110が符号化情報格納メモリ113からavg_actを取得してもよい。
算出された正規化アクティビティNactを基準となる量子化パラメータbQPと次式の如く乗算を行い、符号化ブロックの量子化パラメータQPを得る。
尚、bQPは上述したように符号量制御で算出されるブロック単位の量子化パラメータとしたが、固定値として符号化ブロックを含むフレーム或いはスライスを代表する量子化パラメータであってもよい。また、直前に符号化したフレームの平均量子化パラメータであってもよく、本実施の形態では特に算出方法について限定しない。
こうして算出された符号化ブロックの量子化パラメータは、符号化情報格納メモリ113及び差分量子化パラメータ生成部111に供給される。
符号化情報格納メモリ113は、量子化パラメータ算出部110にて算出された量子化パラメータや既に符号化が終了した過去の符号化ブロックの量子化パラメータが格納されるだけでなく、符号化ブロックの符号化となる動きベクトルや予測モード等の符号化情報も格納され、必要に応じて各部が符号化情報を取得する。
予測量子化パラメータ導出部114は、符号化情報格納メモリ113から符号化ブロックの周囲の既符号化済みの近接ブロックの量子化パラメータやその他符号化情報を用いて、符号化ブロックの量子化パラメータを効率良く符号化、伝送する為の予測量子化パラメータを導出する。
量子化パラメータを効率良く符号化、伝送する為には、量子化パラメータのまま符号化するよりも、既符号化済みのブロックの量子化パラメータとの差分(差分量子化パラメータ)をとって、その差分量子化パラメータを符号化、伝送する方が効率が良い。符号量制御の観点から見れば、符号化処理順で直前の符号化済みブロックの量子化パラメータを予測量子化パラメータとすると伝送する差分量子化パラメータの値が小さくなり、符号量は小さくなる。一方、適応量子化の観点から見れば、符号化ブロックと周囲の近接ブロックとは近接している為、同じ或いは似た絵柄となることが多いので、符号化ブロックに近接するブロックのアクティビティは符号化ブロックのアクティビティと近い値となり、近接ブロックの量子化パラメータを予測量子化パラメータとすると伝送する差分量子化パラメータの値が小さくなり、符号量は小さくなる。その為、H.264では、図4で示されるように、量子化パラメータを伝送する単位がマクロブロック(16x16画素群)で固定されており、ラスタスキャン順に符号化ブロックより前、ないし直前に符号化をした左隣に近接するブロックの量子化パラメータを予測量子化パラメータとし、符号化ブロックの量子化パラメータと予測量子化パラメータとの差分をとり、差分量子化パラメータを符号化、伝送する方法が採用されている。つまり、H.264では符号量制御を想定した量子化パラメータの予測に最適化されている。但し、H.264は後述する階層ツリー符号化を行わないので、画像の左端以外は、直前のブロックが左ブロックである為、近接ブロックの量子化パラメータを予測量子化パラメータとして使用することになり、適応量子化を想定した予測にもほぼ最適化されていると言える。その為、H.264のように、量子化パラメータを伝送する単位が固定され、階層ツリー符号化を行わないような構成の場合には、量子化パラメータの予測は直前の符号化済みブロックが最適だと言える。
しかしながら、階層ツリー符号化を行う場合、H.264と同様に直前のブロックの量子化パラメータを予測量子化パラメータとして使用すると、符号量制御には最適化されるが、適応量子化を用いて量子化パラメータを伝送する場合、最適な予測値とはならず、差分量子化パラメータの符号量が増大してしまうという課題が生じる。
ここで、階層ツリー符号化について説明する。ここで言う階層ツリー符号化とは、ツリーブロック単位(ここでは64x64ブロックとする)でそれぞれ符号化単位を表すdepthを決定し、決定されたdepthで符号化ブロック単位の符号化を行う。これにより、画像の精細度に依存した最適なdepthを決定して符号化を行うことができ、符号化効率を大幅に向上する。
図5に階層ツリー符号化構造の符号化処理順序を示す。図5の上図に示されるように、画面内を所定の同一サイズの正方の矩形の単位にて均等分割する。この単位をツリーブロックと呼び、画像内での符号化/復号ブロックを特定するためのアドレス管理の基本単位とする。ツリーブロックは画像内のテクスチャ等に応じて、符号化処理を最適にすべく、必要に応じてツリーブロック内を階層的に4分割して、ブロックサイズの小さいブロックにすることが出来る。このように小さなブロックに分割して構成される階層的なブロック構造をツリーブロック構造と呼び、この分割されたブロックを符号化ブロック(CU:Coding Unit)と呼び、符号化及び復号を行う際の処理の基本単位とする。図5の下図はツリーブロックを4分割してできた各CUのうち、左下を除く3つのCUさらに4分割した例である。本実施例においては、CU単位で量子化パラメータを設定するものとする。ツリーブロックは最大サイズの符号化ブロックでもある。
このような階層ツリー符号化では、符号化順序は図4のH.264のようなラスタスキャン順(左〜右)と異なる為、量子化パラメータが直前の符号化済みブロックと左の近接ブロックとで等しくならない場合がある。例えば階層ツリー符号化の一例として、図6で示されるように、符号化対象とするツリーブロックの中の左上の符号化ブロック(図6中の斜線部の矩形)は、左に近接するツリーブロックの中で分割されたブロックのうち、最後に符号化された右下の符号化済みブロック(図6中の灰色部の矩形)の量子化パラメータを予測に用いる。また、図7に示されるように、符号化対象とするツリーブロックの中の左下の符号化ブロック(図7中の斜線部の矩形)は、同じツリーブロックの中で分割され、直前に符号化されたブロック(図7中の灰色部の矩形)の量子化パラメータを予測に用いることになる。その為、直前の符号化済みブロックから量子化パラメータを予測するだけでは、符号量制御に最適化された予測は行うことが出来ても、分割によってブロック間の距離を隔てる為に、適応量子化に適した予測を行うことが出来ないので、差分量子化パラメータの符号量が増大し、符号化効率を低減させてしまう。
また、H.264のように一意に左隣のブロックの量子化パラメータを予測量子化パラメータとすると、例えば図8で示される事例の場合、符号化ブロックと左の近接ブロックとの画像の絵柄が異なるので、それぞれの量子化パラメータに影響を及ぼし、差分量子化パラメータも大きな値となり、発生符号量も大きくなり、効率的な符号化、伝送が出来ない恐れが生じる。
その解決策として、左の近接ブロックから予測量子化パラメータを一意に選択せず、既符号化済みの上の近接ブロックの量子化パラメータを予測量子化パラメータとする方法が考えられる。
しかしながら、ツリーブロック境界を越えて上の近接ブロックから量子化パラメータを予測する場合、符号量制御による量子化パラメータの算出を考慮すると、符号化ブロックよりもかなり過去の時点で算出された量子化パラメータである為、図9に示されるように、符号化ブロックの処理順jに対して、上の近接ブロックの処理順iは、ブロックとしてピクチャ内で近接していても、符号化処理順ではi<<jとなるので、符号量制御の観点から見れば、必ずしも符号化ブロックの量子化パラメータが上の近接ブロックの量子化パラメータと相関性が高いとは言えないことになる。
更に、復号過程の高速化の為に、ツリーブロックスライス毎に並列処理を実施する場合には、ツリーブロック境界を越えて上の近接ブロックの量子化パラメータを予測に使用することは出来なくなるので、ツリーブロック境界を越えて上の近接ブロックを参照することにより効率的な符号化、伝送が出来ない恐れが生じる。
そこで、本発明の実施の形態に係る予測量子化パラメータ導出部114は、符号化ブロックの上に近接するツリーブロックの近接ブロックを量子化パラメータの予測に使用せずに、周囲の既符号化済みのブロックから最適な予測量子化パラメータを導出して、差分量子化パラメータの発生符号量の効率を向上させる。
図10は予測量子化パラメータ導出部114は詳細な構成を示す図である。予測量子化パラメータ導出部114はスイッチ301、メモリ302、第1の予測量子化パラメータ導出部303及び第2の予測量子化パラメータ導出部304から構成される。
符号化情報格納メモリ113から供給される符号化ブロックの周囲の既符号化済みの近接ブロックの量子化パラメータや符号化ブロックの予測モード等の符号化情報はメモリ302に一時記憶されるとともに、スイッチ301に符号化ブロックの予測モードが供給される。
スイッチ301は予測モードに応じて量子化パラメータの予測を行う導出部を切り換える。予測モードがインター予測の場合は第1の予測量子化パラメータ導出部303、予測モードがイントラ予測の場合は第2の予測量子化パラメータ導出部304で予測量子化パラメータを導出する。
第1の予測量子化パラメータ導出部303は、メモリ302から符号化ブロックの周囲の既符号化済みの近接ブロックの量子化パラメータの相対比較により、予測量子化パラメータを導出する。
一方、第2の予測量子化パラメータ導出部304は、メモリ302から符号化ブロックの周囲の既符号化済みの近接ブロックの量子化パラメータと、予測画像生成部108で予測モードとしてイントラ予測が選択された場合に、イントラ予測にて参照する近接ブロックの画素の方向を示すイントラ予測モード(以下、intraPredModeと称す)により、予測量子化パラメータを導出する。
ここで、イントラ予測の詳細を説明する。イントラ予測では、同じ画面内の周囲の復号済みのブロックの画素の値から符号化ブロックの画素の値を予測する。本発明の動画像符号化装置100及び動画像復号装置200では、34通りのイントラ予測モードから選択して、イントラ予測する。
図11は本実施の形態で規定するイントラ予測モードの値と予測方向を説明する図である。実線の矢印はイントラ予測で参照する方向を示し、矢印の終点から始点に向かってイントラ予測を行う。番号はイントラ予測モードの値を示す。イントラ予測モードは、上の復号済みのブロックから垂直方向に予測する垂直予測(イントラ予測モードintraPredMode=0)、左の復号済みのブロックから水平方向に予測する水平予測(イントラ予測モードintraPredMode=1)、周囲の復号済みのブロックから平均値を算出することにより予測する平均値予測(イントラ予測モードintraPredMode=2)、周囲の復号済みのブロックから斜め45度の角度で右下方向に予測する平均値予測(intraPredMode=3)に加えて、周囲の復号済みのブロックから様々な角度で斜め方向に予測する30通りの角度予測(イントラ予測モードintraPredMode=4,5,…,33)を定義する。
イントラ予測モードは、輝度信号、色差信号それぞれに用意され、輝度信号用のイントラ予測モードをイントラ輝度予測モード、色差信号用のイントラ予測モードをイントラ色差予測モードと定義する。イントラ輝度予測モードの符号化及び復号においては、周辺のブロックのイントラ輝度予測モードとの相関性を利用し、符号化側で周辺のブロックのイントラ輝度予測モードから予測出来ると判断された場合は、参照するブロックを特定する情報を伝送し、周辺のブロックのイントラ輝度予測モードから予測するよりもイントラ輝度予測モードに別の値を設定した方が良いと判断された場合に、更にイントラ輝度予測モードの値を符号化、または復号する仕組みを用いる。周辺のブロックのイントラ輝度予測モードから符号化・復号対象ブロックのイントラ輝度予測モードを予測することにより、伝送する符号量を削減できる。一方、イントラ色差予測モードの符号化及び復号においては、色差信号の予測ブロックと同じ位置の輝度信号の予測ブロックのイントラ輝度予測モードとの相関性を利用し、符号化側でイントラ輝度予測モードから予測出来ると判断された場合はイントラ輝度予測モードの値からイントラ色差予測モードの値を予測し、イントラ輝度予測モードから予測するよりもイントラ色差予測モードに独自の値を設定した方が良いと判断した場合に、イントラ色差予測モードの値を符号化、または復号する仕組みを用いる。イントラ輝度予測モードからイントラ色差予測モードを予測することにより、伝送する符号量を削減出来る。本実施の形態では、特に断らない限り、イントラ輝度予測モードをイントラ予測モードとする。
予測画像生成部108では、この34通りのイントラ予測モードの中から、最も符号化効率の高いイントラ予測モードを選択し、予測モードがイントラ予測が選択された場合に、予測モードとともにイントラ予測モードが符号化情報格納メモリ113を介して、予測量子化パラメータ導出部114に供給する。
第2の予測量子化パラメータ導出部304は、このイントラ予測モードに基づいて、予測量子化パラメータを導出する。こうして導出された予測量子化パラメータは差分量子化パラメータ生成部111に供給される。
差分量子化パラメータ生成部111は、量子化パラメータ算出部110にて算出された符号化ブロックの量子化パラメータに対して、予測量子化パラメータ導出部114にて導出された予測量子化パラメータと引き算を行い、差分量子化パラメータを算出する。予測量子化パラメータは復号時にも復号済みの周囲の近接ブロックから符号化時と同様に導出されるので、差分符号化パラメータを符号化対象とすることで、符号化と復号で矛盾が生じず、量子化パラメータの符号量を削減することが可能となる。算出された差分量子化パラメータは第1の符号化ビット列生成部112に供給される。
第1の符号化ビット列生成部112は、差分量子化パラメータ生成部111によって算出された差分量子化パラメータを規定のシンタックス規則に従ってエントロピー符号化して第1の符号化ビット列を生成する。図12に差分量子化パラメータのエントロピー符号化に使用される符号化変換テーブルの一例を示す。これは符号付き指数ゴロム符号化と呼ばれるテーブルであり、差分量子化パラメータの絶対値が小さい程短い符号長が与えられる。一般に画像をブロックで分割した場合、近接したブロックでは似たような画像となるので、アクティビティが近い値となり、算出されるブロックの量子化パラメータも近い値になる。その為、差分量子化パラメータの発生頻度は、0が最も高く、絶対値が大きくなるにつれて低くなる傾向となり、図12のテーブルもその特徴を反映して、発生頻度が高い値に対して短い符号長を割り当てられている。予測量子化パラメータが符号化ブロックの量子化パラメータに近い値で予測されれば、0に近い差分量子化パラメータが算出され、発生符号量を抑制することが可能となる。第1の符号化ビット列生成部112は、差分量子化パラメータに対応する符号ビット列を図12のテーブルから抽出し、その符号ビット列を符号化ビット列多重化部115に供給する。
上述した本実施例の動画像符号化装置100に対応する動画像復号装置200の中で太点線で囲まれた諸部220の各部の動作について説明する。
諸部220では、最初に第1符号化ビット列復号部202にて復号された差分量子化パラメータが量子化パラメータ生成部203に供給される。また、差分量子化パラメータ以外の符号化情報が必要に応じて符号化情報格納メモリ204に格納される。
量子化パラメータ生成部203では、第1符号化ビット列復号部202から供給される差分量子化パラメータと予測量子化パラメータ導出部205にて導出される量子化パラメータとを加算して、復号ブロックの量子化パラメータを算出し、逆量子化・逆直交変換部207及び符号化情報格納メモリ204に供給する。
符号化情報格納メモリ204は、復号が終了したブロックの量子化パラメータが格納される。更に、第1符号化ビット列復号部202にて復号されたブロック単位の符号化情報だけでなく、ピクチャやスライス単位で生成される符号化情報も必要に応じて格納される。
予測量子化パラメータ導出部205は、復号ブロックの周囲に近接する既復号済みのブロックの量子化パラメータや符号化情報を用いて、予測量子化パラメータを導出し、量子化パラメータ生成部203に供給する。量子化パラメータ生成部203で算出された量子化パラメータは符号化情報格納メモリ204に格納され、次の復号ブロックの予測量子化パラメータの導出時に、復号ブロックの周囲に位置する復号済みの近接ブロックを判定し、近接ブロックの量子化パラメータを符号化情報格納メモリ204から取得する。こうして得られる復号済みの近接ブロックの量子化パラメータは、動画像符号化装置100の予測量子化パラメータ導出部114が符号化情報格納メモリ113から取得する量子化パラメータと同一である。予測量子化パラメータ導出部205は動画像符号化装置100の予測量子化パラメータ導出部114と同等の機能を有しているので、符号化情報格納メモリ204から供給される近接ブロックの量子化パラメータが同じであれば、符号化時と同一の予測量子化パラメータが導出される。
予測量子化パラメータ導出部205では、符号化済みの近接ブロックを復号済みの近接ブロックと変更する以外同様の処理を行うので、量子化パラメータ予測の説明は割愛する。
こうして符号化側で導出された予測量子化パラメータが、復号側でも矛盾無く導出されることになる。
本実施の形態において、予測量子化パラメータの導出を行う場合に、動画像符号化装置100の予測量子化パラメータ導出部114で参照する近接ブロックは符号化済みのブロックであり、動画像復号装置200の予測量子化パラメータ導出部205で参照する近接ブロックは復号済みのブロックである。符号化側で参照される符号化済みのブロックは、符号化内部で次の符号化の為に局部復号されたブロックであり、復号側で参照される復号済みブロックと同じである。その為、予測量子化パラメータ導出部114及び205の機能も共通であり、それぞれで導出される予測量子化パラメータも同じある。以降の実施例では、予測量子化パラメータの導出について、符号化と復号で切り分けず、共通の機能として符号化側で説明する。
以下、予測量子化パラメータ導出部114及び205で共通に実施される予測量子化パラメータを導出する方法の詳細について説明する。
[実施例1]
実施例1における第1の予測量子化パラメータ導出部303の詳細な動作について説明する。実施例1では、符号化対象の符号化ブロックが上のツリーブロックと近接する場合に、符号化順序でかなり過去となる上のツリーブロックの中の符号化済みブロックの量子化パラメータを予測に使用することを禁止するが、符号化順序で過去ではあるが、上のツリーブロック程過去ではない左に近接するツリーブロックの符号化済みブロックの量子化パラメータを予測に使用する。
図13に示されるように、符号化はツリーブロック単位に画面の左上から右下に向かってラスタスキャン順に行われる。今、符号化対象ツリーブロックを図13中の斜線矩形で表すと、符号化済みのツリーブロックは図13中の灰色部分で表される。ツリーブロック内部では符号化条件に応じて、階層ツリー符号化がなされることから、符号化ブロックはツリーブロック以下のサイズに分割にされるので、符号化対象ツリーブロック内部の符号化ブロックと上のツリーブロック内部の符号化済みブロックとは近接しているものの、符号化処理順では大きく離れていることになる。その為、符号量制御により算出される量子化パラメータは、符号化処理順で算出されるので、符号化ブロックの量子化パラメータと上のツリーブロック内部の符号化済みブロックの量子化パラメータが近い値になるとは言えない。そこで、実施例1では上のツリーブロックを量子化パラメータの予測に使用せず、符号化処理順の近い左のツリーブロックのみを使用する。
また、図14で示されるように、ツリーブロックの中の符号化ブロックを図14中の斜線矩形とすると、実細線が符号化処理順を表し、符号化ブロックまでに符号化されたブロックは図14中の灰色部分で表される。同じツリーブロック内部では符号化ブロックと符号化済みブロックの符号化処理順が離れておらず、同じ或いは似た絵柄となることが多いので、同じツリーブロック内部では上の符号化済みブロックの量子化パラメータを予測に使用することは有効である。実施例1では、符号化処理順で近い符号化済みブロックよりも、近接する符号化済みブロックを予測に使用することを優先する。
図15は分割されたツリーブロック内部の各符号化ブロックが参照する符号化済みブロックの方向を太矢印で表す。図15中の実細線は符号化処理順を表しており、符号化ブロックは符号化処理順で近い符号化済みブロックよりも、近接する符号化済みブロックを優先する。図15中のツリーブロックの上端に位置するBLK0及びBLK1は上のツリーブロックと境界を接しているので、上に近接する符号化済みブロックの量子化パラメータを予測に使用せず、左に近接する符号化済みブロックの量子化パラメータのみを使用する。BLK2及びBLK3は上に近接する符号化済みブロックが同じツリーブロック内部にあるので、上の符号化済みブロックの量子化パラメータと左の符号化済みブロックの量子化パラメータとを予測に使用する。
図16は本実施の形態で定義する符号化ブロックと周囲に近接する既符号化済みのブロックとの配置を示す。本実施の形態では説明の都合上、各ブロックのサイズを同じものとして表記しているが、例えば動き予測等でブロックサイズを変えて、最適な動き予測を行う場合にでも、符号化ブロックの左上の点を基準として、その周囲に近接するブロックを選抜することで実現可能である。
図16の記載の記号QPx(x=L,A,AL)は、周囲の既符号化済みの近接ブロックの量子化パラメータを表す。第1の予測量子化パラメータ導出部303は、図16に示される左と上の近接ブロックの量子化パラメータの有無により、予測量子化パラメータを判定する。
第1の予測量子化パラメータ導出部303の動作について説明する。図17は実施例1における第1の予測量子化パラメータ導出部303の動作を示すフローチャートである。
まず、符号化対象の符号化ブロックの位置情報が取得される(S100)。符号化ブロックの位置情報は、画面の左上を基点として、符号化ブロックを含むツリーブロックの左上の位置が求められ、更にツリーブロックの左上の位置から符号化ブロックの位置が求められる。次に符号化ブロックが上のツリーブロックと近接しているか否かが判定される(S101)。
符号化ブロックが上のツリーブロックと近接している場合(S101のYes)、即ち符号化ブロックがツリーブロックの上端に位置している場合は上の近接ブロックが上のツリーブロックの中に含まれる為、ツリーブロック境界を越えてしまうので、量子化パラメータ予測に上の近接ブロックを使用しない。ここで、量子化パラメータは常に正値をとることに着目して、上の近接ブロックを使用しない場合、上の近接ブロックの量子化パラメータQPAを0に設定する(S102)。
一方、符号化ブロックが上のツリーブロックと近接していない場合(S101のNo)、即ち上の近接ブロックが符号化ブロックと同一のツリーブロックの中に位置している場合は、符号化ブロックの左上の基準位置情報から、メモリ302から符号化ブロックの上に近接する既符号化済みのブロックの量子化パラメータQPAを取得する(S103)。この時、符号化ブロックの左上の基準位置情報に基づいて、符号化情報格納メモリ113に格納された記憶領域をアクセスして、該当する周囲の符号化済みブロックの量子化パラメータが予測量子化パラメータ導出部114内部のメモリ302に供給され、メモリ302中から上の近接ブロックの量子化パラメータを取得する。
続いて、符号化ブロックの左に近接する符号化済みブロックが存在するか否かを判定する(S104)。左に近接ブロックが存在する場合(S104のYes)、メモリ302から符号化ブロックの左に近接する符号化済みのブロックの量子化パラメータQPLを取得する(S105)。左の近接ブロックが存在しない場合(S104のNo)、左の近接ブロックの量子化パラメータQPLを0に設定する(S106)。
次に、左及び上の近接ブロックの量子化パラメータがともに正であるか否かを判定する(S107)。左及び上の近接ブロックの量子化パラメータがともに正の場合(S107のYes)、左及び上の両方の近接ブロックが存在するので、左と上の近接ブロックの量子化パラメータの平均値を予測量子化パラメータとする(S111)。一方、左及び上の近接ブロックの量子化パラメータがともに正でない場合(S107のNo)、即ち少なくとも左或いは上のどちらか一方の近接ブロックの量子化パラメータが0であり、少なくとも左或いは上のどちらか一方の近接ブロックが存在しないことになる。この場合はS108に進む。
次に、左及び上の近接ブロックの量子化パラメータがともに0であるか否かを判定する(S108)。即ち、左及び上の近接ブロックの量子化パラメータがともに0の場合、両方ともに存在しないので、予測量子化パラメータとして左及び上の近接ブロックの量子化パラメータを参照出来ない。そこで、符号化対象の符号化ブロックより前、ないし直前に符号化したブロックの量子化パラメータ(prevQP)を予測量子化パラメータとする。尚、画像の左上端のブロックが符号化ブロックである場合は、左と上の近接ブロック、更に符号化対象の符号化ブロックより前、ないし直前に符号化したブロックが存在しないので、ピクチャ或いはスライスの量子化パラメータを予測量子化パラメータとする(S109)。左或いは上の近接ブロックのどちらか一方が存在する場合、正である一方の量子化パラメータを予測量子化パラメータとする(S110)。こうして算出された予測量子化パラメータは差分量子化パラメータ生成部111に供給される。
また、第1の予測量子化パラメータ導出部303は、図16に示される符号化ブロックの周囲の左、上及び左上の近接ブロックの量子化パラメータにより、予測量子化パラメータを判定することも可能である。上述した手法との相違は、予測量子化パラメータの判定に基づいて、左及び上の近接ブロックの量子化パラメータに重み付けを行い、導出される値を予測量子化パラメータとする点である。
図18は第1の予測量子化パラメータ導出部303の動作を示すフローチャートである。図18のフローチャートのS200からS210の処理過程は、上述した図17のフローチャートのS100からS110と同様なので説明を割愛し、左及び上の近接ブロックの量子化パラメータがともに正であるか否かの判定において(S207)、左及び上の近接ブロックの量子化パラメータがともに正の場合(S207のYes)から説明する。左及び上の近接ブロックの量子化パラメータがともに正の場合、左及び上の両方の近接ブロックが存在する。この時、左上の近接ブロックも存在するので、符号化ブロックの左上の基準位置情報から、符号化情報格納メモリ113に格納された記憶領域をアクセスして、該当する左上の近接ブロックの量子化パラメータQPALを予測量子化パラメータ導出部114に供給する(S211)。
次に、左の近接ブロックの量子化パラメータQPLと左上の近接ブロックの量子化パラメータQPALとの一致判定を行う(S212)。QPLとQPALが一致する場合、上の近接ブロックの量子化パラメータの重み付け係数FA、左の近接ブロックの量子化パラメータの重み付け係数FLとすると、FA>FLとなるように上の近接ブロックの量子化パラメータに対して重み付けを大きく設定する(S213)。例えば、FAを3、FLを1に設定する。この場合、一例として図8で示される量子化パラメータの配置が考えられるので、上の近接ブロックの量子化パラメータの重み付けを大きく設定することは適当と言える。また、QPAもQPL及びQPALと一致する場合は、全ての近接ブロックの量子化パラメータが同じとなるので問題ない。QPLとQPALが一致しない場合、S214に進み、QPAとQPALとの一致判定を行う(S214)。QPAとQPALが一致する場合、FA<FLとなるように左の近接ブロックの量子化パラメータに対して重み付けを大きく設定する(S215)。例えば、FAを1、FLを3に設定する。QPAとQPALが一致しない場合、FAとFLを同じ重み付けとし、左と上の近接ブロックの量子化パラメータに対する重み付けを均等化する(S216)。この場合、左、上及び左上の近接ブロックの量子化パラメータが全て異なるので、QPL或いはQPAのどちらか一方の重み付けを大きく設定するには十分な条件判定が出来ない。そこで、QPLとQPAの平均を予測量子化パラメータとして、均等な判定値とし、例えば、FAを2、FLを2に設定する。決定した重み付け係数からと各量子化パラメータから次式にて予測量子化パラメータpredQPを導出する(S217)。
ここで、上式の分母はFA+FLであり、分子の2は四捨五入の為に加算される(FA+FL)/2の値である。こうして導出された予測量子化パラメータは差分量子化パラメータ生成部111に供給される。
更に、図18中のS212のQPLとQPAL及びS214のQPAとQPALの同一判定に代わって、左と左上の近接ブロックの量子化パラメータの差分絶対値をΔL、上と左上の近接ブロックの量子化パラメータの差分絶対値をΔAとして、ΔLとΔAの比較に基づいて、左或いは上の量子化パラメータを予測量子化パラメータとして選択することも可能である。
符号化ブロックとその周囲の既符号化済みの近接ブロックにおいて、ΔL及びΔAは左と左上、上と左上の近接ブロックの量子化パラメータの差分絶対値を表し、それぞれ次式で表される。
ΔAがΔLよりも大きくなる場合は、QPAとQPALとの差が大きい場合であり、上と左上の近接ブロックの間で画像の滑らかさ或いは複雑さが左と左上の近接ブロック間よりも異なっている(変化が大きい)と推察される。その為、符号化ブロックとその周囲の既符号化済みの近接ブロックにおいて、左2つのブロック(左と左上の近接ブロック)と右2つのブロック(符号化ブロックと上の近接ブロック)とで量子化パラメータの差が生じると考えられるので、符号化ブロックの量子化パラメータは左の近接ブロックの量子化パラメータよりも上の近接ブロックの量子化パラメータに近いと判定する。
復号処理の場合は、予測量子化パラメータ導出部を303から205、符号化情報格納メモリを302から204に符号を置き換え、予測量子化パラメータの出力先を差分量子化パラメータ生成部111から量子化パラメータ生成部203とすることで、同等の処理を実現する。
[実施例2]
実施例2における第1の予測量子化パラメータ導出部303及び205の動作について説明する。尚、ここでは符号化処理について説明するが、復号処理の場合は、符号化が復号となり、予測量子化パラメータ導出部を303から205、符号化情報格納メモリを302から204に符号を置き換え、予測量子化パラメータの出力先を差分量子化パラメータ生成部111から量子化パラメータ生成部203とすることで、同等の処理を実現するものとする。実施例2では、実施例1と同様に、符号化対象の符号化ブロックに近接する左と上の符号化済みブロックの量子化パラメータを予測に使用する。一方、実施例1との相違は、符号化ブロックが上のツリーブロックと近接する場合と同様に、左のツリーブロックと近接する場合に、左のツリーブロックの中の符号化済みブロックの量子化パラメータを予測に使用することを禁止する点である。これは、符号化ブロックの量子化パラメータの算出が符号化制御の符号化処理順に基づいて行われるので、ツリーブロック内部に比べてツリーブロック間では符号化処理順が符号化ブロック間で離れてしまい、ツリーブロック間で符号化ブロックが近接していたとしても、符号量制御で算出される符号化ブロックの量子化パラメータが必ずしも近い値にならず、予測量子化パラメータとして適さないことがある為である。そこで、実施例2では、符号化または復号対象の符号化ブロックが左或いは上のツリーブロックと近接する場合には、左或いは上のツリーブロックの中の符号化済みブロックの量子化パラメータを予測に使用せず、符号化処理順で符号化対象の符号化ブロックより前、ないし直前に符号化したブロックの量子化パラメータに置き換えて使用することとする。
図19は分割されたツリーブロック内部の各符号化ブロックが参照する符号化済みブロックの方向を太矢印で表す。図19中の実細線は符号化処理順を表しており、符号化ブロックは、符号化ブロックを含むツリーブロック内部で近接する符号化済みブロックの量子化パラメータを原則使用する。図20中のツリーブロックの上端に位置するBLK0は左及び上のツリーブロックと境界を接しているので、符号化対象の符号化ブロックより前、ないし直前に符号化したブロックの量子化パラメータを左及び上に近接する符号化済みブロックの量子化パラメータに置き換えて予測に使用する。BLK1は上のツリーブロックと境界を接しているので、上に近接する符号化済みブロックの量子化パラメータを予測に使用せず、符号化対象の符号化ブロックより前、ないし直前に符号化したブロックの量子化パラメータに置き換えて、左に近接する符号化済みブロックの量子化パラメータとともに予測に使用する。BLK2は左のツリーブロックと境界を接しているので、左に近接する符号化済みブロックの量子化パラメータを予測に使用せず、符号化対象の符号化ブロックより前、ないし直前に符号化したブロックの量子化パラメータに置き換えて、上に近接する符号化済みブロックの量子化パラメータとともに予測に使用する。BLK3は左及び上に近接する符号化済みブロックが同じツリーブロック内部にあるので、上の符号化済みブロックの量子化パラメータと左の符号化済みブロックの量子化パラメータとを予測に使用する。
図20は実施例2における第1の予測量子化パラメータ導出部303の動作を示すフローチャートである。
まず、符号化対象の符号化ブロックの位置情報が取得される(S300)。符号化ブロックの位置情報は、画面の左上を基点として、符号化ブロックを含むツリーブロックの左上の位置が求められ、更にツリーブロックの左上の位置から符号化ブロックの位置が求められる。次に符号化ブロックが上のツリーブロックと近接しているか否かが判定される(S301)。符号化ブロックが上のツリーブロックと近接している場合(S301のYes)、即ち符号化ブロックがツリーブロックの上端に位置している場合は上の近接ブロックが上のツリーブロックの中に含まれる為、ツリーブロック境界を越えてしまうので、量子化パラメータ予測に上の近接ブロックを使用せず、符号化対象の符号化ブロックより前、ないし直前に符号化した符号化ブロックの量子化パラメータprevQPをQPAに設定する(S302)。
一方、符号化ブロックが上のツリーブロックと近接していない場合(S301のNo)、即ち上の近接ブロックが符号化ブロックと同一のツリーブロックの中に位置している場合は、メモリ302から符号化ブロックの上に近接する既符号化済みのブロックの量子化パラメータQPAを取得する(S303)。この時、符号化ブロックの左上の基準位置情報に基づいて、符号化情報格納メモリ113に格納された記憶領域をアクセスして、該当する周囲の符号化済みブロックの量子化パラメータが予測量子化パラメータ導出部114内部のメモリ302に供給され、メモリ302の中から上の近接ブロックの量子化パラメータを取得する。
続いて、符号化ブロックが左のツリーブロックと近接しているか否かが判定される(S304)。符号化ブロックが左のツリーブロックと近接している場合(S304のYes)、即ち符号化ブロックがツリーブロックの左端に位置している場合は左の近接ブロックが左のツリーブロックの中に含まれる為、ツリーブロック境界を越えてしまうので、量子化パラメータ予測に左の近接ブロックを使用せず、符号化対象の符号化ブロックより前、ないし直前に符号化した符号化ブロックの量子化パラメータprevQPをQPLに設定する(S306)。
一方、符号化ブロックが左のツリーブロックと近接していない場合(S304のNo)、即ち左の近接ブロックが符号化ブロックと同一のツリーブロックの中に位置している場合は、メモリ302から符号化ブロックの左に近接する既符号化済みのブロックの量子化パラメータQPLを取得する(S306)。最後に左と上の近接ブロックの量子化パラメータの平均値を予測量子化パラメータとする(S307)。こうして算出された予測量子化パラメータは差分量子化パラメータ生成部111に供給される。
実施例2では、左及び上の近接ブロックがツリーブロック境界を越える場合には、それぞれの量子化パラメータを符号化対象の符号化ブロックより前、ないし直前に符号化した符号化ブロックの量子化パラメータとして代用する為、必ず非0の値を備えるので、実施例1よりも量子化パラメータの値の判定処理を削減することが可能となる。
[実施例3]
実施例3における第1の予測量子化パラメータ導出部303及び205の動作について説明する。尚、ここでは符号化処理について説明するが、復号処理の場合は、符号化が復号となり、予測量子化パラメータ導出部を303から205、符号化情報格納メモリを302から204に符号を置き換え、予測量子化パラメータの出力先を差分量子化パラメータ生成部111から量子化パラメータ生成部203とすることで、同等の処理を実現するものとする。実施例1との相違は、符号化または復号対象の符号化ブロックが上のツリーブロックと近接する場合と同様に、左のツリーブロックと近接する場合に、左のツリーブロックの中の符号化済みブロックの量子化パラメータを予測に使用することを禁止する点である。即ち、ツリーブロック境界を越えての符号化済みブロックの量子化パラメータを予測に使用するのは、ツリーブロック内部で最初の符号化処理順の符号化ブロックが符号化対象の符号化ブロックより前、ないし直前に符号化したブロックの量子化パラメータを使用する場合のみに制限する。
図21は分割されたツリーブロック内部の各符号化ブロックが参照する符号化済みブロックの方向を太矢印で表す。図21中の実細線は符号化処理順を表しており、符号化ブロックは、符号化ブロックを含むツリーブロック内部で近接する符号化済みブロックの量子化パラメータを使用する。
図21中のツリーブロックの上端に位置するBLK0は左及び上のツリーブロックと境界を接しているので、符号化対象の符号化ブロックより前、ないし直前に符号化したブロックの量子化パラメータのみ予測に使用する。BLK1は上のツリーブロックと境界を接しているので、上に近接する符号化済みブロックの量子化パラメータを予測に使用せず、左に近接する符号化済みブロックの量子化パラメータのみ予測に使用する。BLK2は左のツリーブロックと境界を接しているので、左に近接する符号化済みブロックの量子化パラメータを予測に使用せず、上に近接する符号化済みブロックの量子化パラメータのみ予測に使用する。BLK3は左及び上に近接する符号化済みブロックが同じツリーブロック内部にあるので、上の符号化済みブロックの量子化パラメータと左の符号化済みブロックの量子化パラメータとを予測に使用する。
図22は実施例3における第1の予測量子化パラメータ導出部303の動作を示すフローチャートである。図22のフローチャートのS400からS403及びS407からS411までは実施例1の図17のS100からS103及びS107からS111までと同じであるので、説明を割愛し、符号化ブロックが上のツリーブロックと近接しているか否か判定された後のS404からの相違のみ説明する。
符号化ブロックと上のツリーブロックとの近接判定後に、符号化ブロックが左のツリーブロックと近接しているか否かが判定される(S404)。符号化ブロックが左のツリーブロックと近接している場合(S404のYes)、即ち符号化ブロックがツリーブロックの左端に位置している場合は左の近接ブロックが左のツリーブロックの中に含まれる為、ツリーブロック境界を越えてしまうので、量子化パラメータ予測に左の近接ブロックを使用しない。ここで、量子化パラメータは常に正値をとることに着目して、左の近接ブロックを使用しない場合、左の近接ブロックの量子化パラメータQPLを0に設定する(S405)。一方、符号化ブロックが左のツリーブロックと近接していない場合(S404のNo)、即ち左の近接ブロックが符号化ブロックと同一のツリーブロックの中に位置している場合は、メモリ302から符号化ブロックの左に近接する既符号化済みのブロックの量子化パラメータQPLを取得する(S406)。こうして取得された左及び上の近接ブロックの量子化パラメータから予測量子化パラメータが導出され、予測量子化パラメータは差分量子化パラメータ生成部111に供給される。
[実施例4]
実施例4における第1の予測量子化パラメータ導出部303及び205の動作について説明する。尚、ここでは符号化処理について説明するが、復号処理の場合は、符号化が復号となり、予測量子化パラメータ導出部を303から205、符号化情報格納メモリを302から204に符号を置き換え、予測量子化パラメータの出力先を差分量子化パラメータ生成部111から量子化パラメータ生成部203とすることで、同等の処理を実現するものとする。実施例4では、符号化または復号対象の符号化ブロックが左或いは上のツリーブロックと近接する場合に、左或いは上のツリーブロックの中の符号化済みブロックの量子化パラメータを予測に使用することを禁止する。更に、左に近接する符号化済みブロックの量子化パラメータを予測に使用することを原則とし、左に近接する符号化ブロックが存在しない或いはツリーブロック境界を越えた位置に存在する場合は、符号化対象の符号化ブロックより前、ないし直前に符号化したブロックの量子化パラメータを予測に使用する。
図23は分割されたツリーブロック内部の各符号化ブロックが参照する符号化済みブロックの方向を太矢印で表す。図23中の実細線は符号化処理順を表しており、符号化ブロックは、符号化ブロックを含むツリーブロック内部で左に近接する符号化済みブロックの量子化パラメータを予測に原則使用する。
図23中のツリーブロックの上端に位置するBLK0は左及び上のツリーブロックと境界を接しているので、符号化対象の符号化ブロックより前、ないし直前に符号化したブロックの量子化パラメータを予測に使用する。BLK1及びBLK3は、左に近接する符号化済みブロックが同じツリーブロック内部にあるので、左の符号化済みブロックの量子化パラメータを予測に使用する。BLK2は左のツリーブロックと境界を接しているので、左に近接する符号化済みブロックの量子化パラメータを予測に使用せず、符号化対象の符号化ブロックより前、ないし直前に符号化したブロックの量子化パラメータを予測に使用する。
図24は実施例4における第1の予測量子化パラメータ導出部303の動作を示すフローチャートである。まず、符号化対象の符号化ブロックの位置情報が取得される(S500)。符号化ブロックの位置情報は、画面の左上を基点として、符号化ブロックを含むツリーブロックの左上の位置が求められ、更にツリーブロックの左上の位置から符号化ブロックの位置が求められる。次に符号化ブロックが左のツリーブロックと近接しているか否かが判定される(S501)。符号化ブロックが左のツリーブロックと近接している場合(S304のYes)、即ち符号化ブロックがツリーブロックの左端に位置している場合は左の近接ブロックが左のツリーブロックの中に含まれる為、ツリーブロック境界を越えてしまうので、量子化パラメータ予測に左の近接ブロックを使用せず、符号化対象の符号化ブロックより前、ないし直前に符号化した符号化ブロックの量子化パラメータprevQPを予測量子化パラメータとして設定する(S502)。一方、符号化ブロックが左のツリーブロックと近接していない場合(S501のNo)、即ち左の近接ブロックが符号化ブロックと同一のツリーブロックの中に位置している場合は、メモリ302から符号化ブロックの左に近接する既符号化済みのブロックの量子化パラメータQPLを取得する(S503)。この時、符号化ブロックの左上の基準位置情報に基づいて、符号化情報格納メモリ113に格納された記憶領域をアクセスして、該当する周囲の符号化済みブロックの量子化パラメータが予測量子化パラメータ導出部114内部のメモリ302に供給され、メモリ302中から左の近接ブロックの量子化パラメータを取得し、予測量子化パラメータとして設定する。こうして導出された予測量子化パラメータは差分量子化パラメータ生成部111に供給される。
実施例4では、符号化ブロックの符号化済みの左の近接ブロックの量子化パラメータを原則予測に使用するようにしたので、これまでの実施例に比べて判定処理が簡便化され、回路規模を抑えることが可能となる。
[実施例5]
実施例5における第1の予測量子化パラメータ導出部303及び205の動作について説明する。尚、ここでは符号化処理について説明するが、復号処理の場合は、符号化が復号となり、予測量子化パラメータ導出部を303から205、符号化情報格納メモリを302から204に符号を置き換え、予測量子化パラメータの出力先を差分量子化パラメータ生成部111から量子化パラメータ生成部203とすることで、同等の処理を実現するものとする。実施例5は実施例1と2の組合せであり、符号化または復号対象の符号化ブロックが左のツリーブロックと近接する場合は、左に近接するツリーブロックの符号化済みブロックの量子化パラメータを予測に使用を許可する。符号化ブロックが上のツリーブロックと近接する場合は、上のツリーブロックの中の符号化済みブロックの量子化パラメータを予測に使用することを禁止し、上のツリーブロックの中の符号化済みブロックの量子化パラメータに代わりに符号化対象の符号化ブロックより前、ないし直前に符号化したブロックの量子化パラメータを予測に使用する。
図25は分割されたツリーブロック内部の各符号化ブロックが参照する符号化済みブロックの方向を太矢印で表す。図25中の実細線は符号化処理順を表しており、符号化対象の符号化ブロックは符号化処理順で近い符号化済みブロックよりも、近接する符号化済みブロックを優先する。
図25中のツリーブロックの上端に位置するBLK0及びBLK1は上のツリーブロックと境界を接しているので、上に近接する符号化済みブロックの量子化パラメータを予測に使用せず、代わりに符号化対象の符号化ブロックより前、ないし直前に符号化したブロックの量子化パラメータと左に近接する符号化済みブロックの量子化パラメータを予測に使用する。BLK2及びBLK3は上に近接する符号化済みブロックが同じツリーブロック内部にあるので、上の符号化済みブロックの量子化パラメータと左の符号化済みブロックの量子化パラメータとを予測に使用する。
実施例5における第1の予測量子化パラメータ導出部303の詳細な動作について説明する。図26は実施例5における第1の予測量子化パラメータ導出部303の動作を示すフローチャートである。
まず、符号化対象の符号化ブロックの位置情報が取得される(S600)。符号化ブロックの位置情報は、画面の左上を基点として、符号化ブロックを含むツリーブロックの左上の位置が求められ、更にツリーブロックの左上の位置から符号化ブロックの位置が求められる。次に符号化ブロックが上のツリーブロックと近接しているか否かが判定される(S601)。符号化ブロックが上のツリーブロックと近接している場合(S601のYes)、即ち符号化ブロックがツリーブロックの上端に位置している場合は上の近接ブロックが上のツリーブロックの中に含まれる為、ツリーブロック境界を越えてしまうので、量子化パラメータ予測に上の近接ブロックを使用せず、符号化対象の符号化ブロックより前、ないし直前に符号化した符号化ブロックの量子化パラメータprevQPをQPAに設定する(S602)。
一方、符号化ブロックが上のツリーブロックと近接していない場合(S601のNo)、即ち上の近接ブロックが符号化ブロックと同一のツリーブロックの中に位置している場合は、メモリ302から符号化ブロックの上に近接する既符号化済みのブロックの量子化パラメータQPAを取得する(S603)。この時、符号化ブロックの左上の基準位置情報に基づいて、符号化情報格納メモリ113に格納された記憶領域をアクセスして、該当する周囲の符号化済みブロックの量子化パラメータが予測量子化パラメータ導出部114内部のメモリ302に供給され、メモリ302中から上の近接ブロックの量子化パラメータを取得する。
続いて、符号化ブロックの左に近接する符号化済みブロックが存在するか否かを判定する(S604)。左に近接ブロックが存在する場合(S604のYes)、符号化ブロックの左上の基準位置情報から、符号化情報格納メモリ113に格納された記憶領域をアクセスして、該当する左の近接ブロックの量子化パラメータQPLを予測量子化パラメータ導出部114に供給する(S605)。左の近接ブロックが存在しない場合(S104のNo)、左の近接ブロックの量子化パラメータQPLを0に設定する(S606)。
次に左の近接ブロックの量子化パラメータが正であるか否かを判定する(S607)。左の近接ブロックの量子化パラメータが正の場合(S607のYes)、左の近接ブロックが存在するので、左と上の近接ブロックの量子化パラメータの平均値を予測量子化パラメータとする(S608)。一方、左の近接ブロックの量子化パラメータが正でない場合(S607のNo)、即ち左の近接ブロックの量子化パラメータが0であり、左の近接ブロックが存在しないことになる。この場合には、QPAを予測量子化パラメータとする(S609)。こうして算出された予測量子化パラメータは差分量子化パラメータ生成部111に供給される。
[実施例6]
実施例6では、第2の予測量子化パラメータ導出部304及び205の動作について説明する。尚、ここでは符号化処理について説明するが、復号処理の場合は、符号化が復号となり、予測量子化パラメータ導出部を304から205、符号化情報格納メモリを302から204に符号を置き換え、予測量子化パラメータの出力先を差分量子化パラメータ生成部111から量子化パラメータ生成部203とすることで、同等の処理を実現するものとする。第2の予測量子化パラメータ導出部304は、予測画像生成部108で符号化ブロックの予測モードがイントラ予測を選択した場合に、イントラ予測で参照する近接ブロックの画素の方向を示すイントラ予測モードに基づいて、予測量子化パラメータを選択或いは導出する。
図27は、符号化ブロックの予測モードがイントラ予測の場合に、イントラ予測モードの予測方向と予測量子化パラメータとして選択する左及び上の近接ブロックとの関係を示す図である。イントラ予測では、イントラ予測モードが示す予測方向の近接ブロックの画素から予測信号を生成して、符号化効率が高く、歪量の少ないイントラ予測モードが選択される。その為、イントラ予測モードが上側を選択する場合は上の近接ブロックとの相関性が高く、イントラ予測モードが左側を選択する場合は左の近接ブロックとの相関性が高いと判断される。ブロック間の相関性が高い方が、ブロック内の絵柄や複雑度合い(アクティビティ)が似ており、アクティビティから算出される量子化パラメータも近い値になる。そこで、本実施例6では、符号化ブロックの量子化パラメータの高効率で符号化、伝送する為に、符号化ブロックと相関性が高い近接ブロックをイントラ予測モードで予測判定し、判定された近接ブロックの量子化パラメータを予測量子化パラメータとして選択する。
図28は実施例6における第2の予測量子化パラメータ導出部304の動作を示すフローチャートである。実施例6では、符号化ブロックが上のツリーブロックと近接する場合に、上のツリーブロックの中の符号化済みブロックの量子化パラメータを予測に使用することを禁止するが、左に近接するツリーブロックの符号化済みブロックの量子化パラメータを予測に使用することとする。
まず、符号化対象の符号化ブロックの位置情報が取得される(S700)。符号化ブロックの位置情報は、画面の左上を基点として、符号化ブロックを含むツリーブロックの左上の位置が求められ、更にツリーブロックの左上の位置から符号化ブロックの位置が求められる。次に符号化ブロックが上のツリーブロックと近接しているか否かが判定される(S701)。
符号化ブロックが上のツリーブロックと近接している場合(S701のYes)、即ち符号化ブロックがツリーブロックの上端に位置している場合は上の近接ブロックが上のツリーブロックの中に含まれる為、ツリーブロック境界を越えてしまうので、量子化パラメータ予測に上の近接ブロックを使用しない。ここで、量子化パラメータは常に正値をとることに着目して、上の近接ブロックを使用しない場合、上の近接ブロックの量子化パラメータQPAを0に設定する(S702)。
一方、符号化ブロックが上のツリーブロックと近接していない場合(S701のNo)、即ち上の近接ブロックが符号化ブロックと同一のツリーブロックの中に位置している場合は、メモリ302から符号化ブロックの上に近接する既符号化済みのブロックの量子化パラメータQPAを取得する(S703)。この時、符号化ブロックの左上の基準位置情報に基づいて、符号化情報格納メモリ113に格納された記憶領域をアクセスして、該当する周囲の符号化済みブロックの量子化パラメータが予測量子化パラメータ導出部114内部のメモリ302に供給され、メモリ302から上の近接ブロックの量子化パラメータを取得する。
続いて、符号化ブロックの左に近接する符号化済みブロックが存在するか否かを判定する(S704)。左に近接ブロックが存在する場合(S704のYes)、メモリ302から符号化ブロックの左に近接する符号化済みのブロックの量子化パラメータQPLを取得する(S705)。左の近接ブロックが存在しない場合(S704のNo)、左の近接ブロックの量子化パラメータQPLを0に設定する(S706)。
次に、左及び上の近接ブロックの量子化パラメータがともに正であるか否かを判定する(S707)。左及び上の近接ブロックの量子化パラメータがともに正の場合(S707のYes)、左及び上の両方の近接ブロックが存在する。その為、イントラ予測モードで示される予測方向で指定される近接ブロックを参照し、その量子化パラメータを取得することが可能であるので、この場合はイントラ予測モードで示される予測方向に基づく予測判定を行う。
一方、左及び上の近接ブロックの量子化パラメータがともに正でない場合(S707のNo)、即ち少なくとも左或いは上のどちらか一方の近接ブロックの量子化パラメータが0であり、少なくとも左或いは上のどちらか一方の近接ブロックが存在しないことになる。その為、イントラ予測モードで示される予測方向で指定される近接ブロックが存在しないことも有り得るので、この場合はイントラ予測モードで示される予測方向に基づく予測判定を行わず、左或いは上の近接ブロックの存在有無、即ち左或いは上の近接ブロックの量子化パラメータが0であるか否かにより判定を行う。最初に上の近接ブロックの量子化パラメータが0であるか否かを判定する(S710)。上の近接ブロックの量子化パラメータが0でない場合(S710のNo)、上の近接ブロックの量子化パラメータを予測量子化パラメータとする(S711)。一方、0である場合(S710のYes)、予測量子化パラメータとして上の近接ブロックの量子化パラメータを参照出来ないので、S712の判定に進む。次に、左の近接ブロックの量子化パラメータが0であるか否かの判定する(S712)。左の近接ブロックの量子化パラメータが0でない場合(S712のNo)、左の近接ブロックの量子化パラメータを予測量子化パラメータとする(S713)。一方、0である場合(S712のYes)、即ち、左及び上の近接ブロックの量子化パラメータがともに0であり、両方ともに存在しないので、予測量子化パラメータとして左及び上の近接ブロックの量子化パラメータを参照出来ない。そこで、符号化対象の符号化ブロックより前、ないし直前に符号化したブロックの量子化パラメータ(prevQP)を予測量子化パラメータとする。尚、画像の左上端のブロックが符号化ブロックである場合は、左と上の近接ブロック、更に符号化対象の符号化ブロックより前、ないし直前に符号化したブロックが存在しないので、ピクチャ或いはスライスの量子化パラメータを予測量子化パラメータとする(S714)。
S707の判定に戻って、左及び上の近接ブロックの量子化パラメータがともに正の場合(S707のYes)は、メモリ302から符号化ブロックのイントラ予測モードintraPredModeを取得する。イントラ予測モードも周囲の符号化済みブロックの量子化パラメータの取得と同様に、符号化ブロックの左上の基準位置情報に基づいて、符号化情報格納メモリ113に格納された記憶領域をアクセスして、メモリ302に供給され、メモリ302から取得する。
イントラ予測モードは図27で示される予測方向に対して割り当てられた番号である。以下の判定処理を容易にする為に、イントラ予測モードを図29に示される変換テーブルを用いてイントラ予測方向(以下、intraPredDirecと称す)に変換する。イントラ予測方向は、intraPredDirec=0をイントラ予測における周囲の復号済みのブロックから平均値を算出することにより予測する平均値予測(intraPredMode=2)に割り当て、それ以外の1〜33を図30で示されるイントラ予測モードの予測方向の右上(intraPredMode=6)から左下(intraPredMode=9)に向けて対応付けるようにして割り当てられる。この変換テーブルにより、取得したイントラ予測モードをイントラ予測方向に変換する(S708)。変換されたイントラ予測方向に基づき量子化パラメータの予測を行う(S709)。図30で示されるイントラ予測モードの予測方向の閾値としてTHが設定され、ここではTHをイントラ予測方向の値で18に設定することとし、イントラ予測方向が18未満であれば上の近接ブロックの量子化パラメータ、18以上であれば左の近接ブロックの量子化パラメータを予測量子化パラメータとして導出することとする。
図31を用いて、イントラ予測方向による量子化パラメータの予測の詳細な動作を説明する。最初に、変換されたイントラ予測方向が0であるか否かを判定する(S720)。イントラ予測方向が0となるのは平均値予測によるイントラ予測が行われる場合である(S720のYes)である。この場合、左或いは上の近接ブロックのどちらか一方を優先して選択せず、左及び上の近接ブロックの量子化パラメータQPLとQPAの平均値を予測量子化パラメータとする(S721)。一方、イントラ予測方向が0でない場合(S720のNo)、イントラ予測方向が18未満が否かを判定する(S722)。イントラ予測方向が18未満となる場合(S722のYes)、図27で示されるように上の近接ブロックの参照することとし、上の近接ブロックの量子化パラメータQPAを予測量子化パラメータとする(S723)。一方、イントラ予測方向が18以上である場合(S722のNo)、左の近接ブロックの参照することとし、左の近接ブロックの量子化パラメータQPLを予測量子化パラメータとする(S724)。こうして導出された予測量子化パラメータは差分量子化パラメータ生成部111に供給される。
以上のように、実施例6における第2の予測量子化パラメータ導出部304では、図30で示されるイントラ予測モードの予測方向の判定に基づいて、左或いは上の近接ブロックの量子化パラメータを予測量子化パラメータとして導出したが、左及び上の近接ブロックの量子化パラメータに重み付けを行い、導出される重み付け平均値を予測量子化パラメータとすることも可能である。
上の近接ブロックの量子化パラメータの重み付け係数FA、左の近接ブロックの量子化パラメータの重み付け係数FLとすると、図32で示されるイントラ予測モードの予測方向に対して、閾値としてTH(=18)を設定し、イントラ予測方向が18未満であればFA>FLとなるように上の近接ブロックの量子化パラメータに対して重み付けを大きく設定し、18以上であればFA<FLとなるように左の近接ブロックの量子化パラメータに対して重み付けを大きく設定する。
図33は第2の予測量子化パラメータ導出部304の動作を示すフローチャートである図28のイントラ予測方向による量子化パラメータの予測(S709)の詳細な動作を説明する図である。
最初に、変換されたイントラ予測方向が0であるか否かを判定する(S730)。イントラ予測方向が0となるのは平均値予測によるイントラ予測が行われる場合である(S730のYes)である。この場合、左或いは上の近接ブロックのどちらか一方を優先して選択せず、左及び上の近接ブロックの量子化パラメータの重み付き係数FLとFAを同じ値に設定する(S731)。例えば、FA=FL=2に設定する。一方、イントラ予測方向が0でない場合(S730のNo)、イントラ予測方向が18未満が否かを判定する(S732)。イントラ予測方向が18未満となる場合(S732のYes)、FA>FLとなるように上の近接ブロックの量子化パラメータに対して重み付けを大きく設定する(S733)。例えば、FAを3、FLを1に設定する。一方、イントラ予測方向が18以上である場合(S732のNo)、FA<FLとなるように左の近接ブロックの量子化パラメータに対して重み付けを大きく設定する(S734)。例えば、FAを1、FLを3に設定する。
以上のようにして、決定した重み付け係数からと各量子化パラメータから次式にて予測量子化パラメータpredQPを導出する(S735)。
ここで、上式の分母はFA+FLであり、分子の2は四捨五入の為に加算される(FA+FL)/2の値である。こうして導出された予測量子化パラメータは差分量子化パラメータ生成部111に供給される。
尚、ここでは重み付け係数FA及びFLの係数の組合せとして、(FA,FL)=(3,1)、(2,2)、(1,3)としたが、これ以外の係数を設定してもよい。但し、計算の高速化を重視する場合、FA+FLが2の冪乗で表される変数を選択することが望ましい。上述した予測量子化パラメータの導出式をビットシフト演算で行うと次式で表される。
また、重み付け係数FA及びFLの係数の組合せとして、(FA,FL)=(3,1)を(FA,FL)=(4,0)、(FA,FL)=(1,3)を(FA,FL)=(0,4)とすると、前者では上の近接ブロック、後者では左の近接ブロックとなり、これは実施例6と同じ結果となる。但し、実施例6では、QPAとQPLの平均値を算出する場合のみ計算処理を行い、平均値を予測量子化パラメータとしない場合は左或いは上の近接ブロックの量子化パラメータを選択するだけで済む為、処理の簡略化と高速化を実現することが可能となる。
尚、実施例6では、左或いは上の近接ブロックの量子化パラメータの参照判定として、イントラ予測方向の閾値THを18としたが、この値でなくてもよく、動画像符号化装置100及び動画像復号装置200で矛盾が生じない限り、暗黙的に設定出来るものとする。また、ヘッダー情報にイントラ予測方向の閾値を設定して、シーケンス、ピクチャ、スライス等の単位で変更してもよい。
更に、イントラ予測モードの予測方向の閾値数を増やして、閾値で区切られるイントラ予測モードの予測方向の領域の範囲毎に左及び上の近接ブロックの量子化パラメータの重み付け係数を変更して設定するようにしてもよい。
図34はイントラ予測モードの予測方向を閾値THLO及びTHHIにより3つの領域に分割した一例を示す図である。閾値THLO及びTHHIは図34中に太点線で示され、閾値にて区切られた領域の範囲内で同じ重み付け係数に設定される。THLOよりも右側にあるイントラ予測モードでは、主に符号化ブロックの上に近接している符号化済みブロックの画素信号を用いてイントラ予測を行うので、上の近接ブロックとの相関性が高い。一方、THHIから下側にあるイントラ予測モードでは、主に符号化ブロックの左に近接している符号化済みブロックの画素信号を用いてイントラ予測を行うので、左の近接ブロックとの相関性が高い。その為、イントラ予測モードがTHLOより右側にある場合は上の近接ブロックの量子化パラメータに対して重み付けを大きくし(FA>FL)、THHIから下側にある場合は左の近接ブロックの量子化パラメータに対して重み付けを大きくする(FA<FL)。また、THLOからTHHIの間にあるイントラ予測モードでは、符号化ブロックの左及び上に近接している符号化済みブロックの一方に偏らないので、左と上の近接ブロックの量子化パラメータに対する重み付けを均等にする(FA=FL)。尚、閾値THLO及びTHHIはイントラ予測方向の値であり、実施例6ではTHLOを13、THHIを22とする。
図35は第2の予測量子化パラメータ導出部304の動作を示すフローチャートである図28のイントラ予測方向による量子化パラメータの予測(S709)の詳細な動作を説明する図である。
最初に、変換されたイントラ予測方向が0であるか否かを判定する(S740)。イントラ予測方向が0となるのは平均値予測によるイントラ予測が行われる場合である(S740のYes)である。この場合、左或いは上の近接ブロックのどちらか一方を優先して選択せず、左及び上の近接ブロックの量子化パラメータの重み付き係数FLとFAを同じ値に設定する(S741)。例えば、FA=FL=2に設定する。一方、イントラ予測方向が0でない場合(S740のNo)、最初に、イントラ予測方向が閾値THLO未満か否かが判定される(S742)。イントラ予測方向がTHLO未満である場合(S742のYes)、FA>FLとなるように上の近接ブロックの量子化パラメータに対して重み付けを大きく設定する(S743)。例えば、FAを3、FLを1に設定する。イントラ予測方向がTHLO以上である場合(S742のNo)、イントラ予測方向が閾値THHI未満か否かが判定される(S744)。イントラ予測方向がTHHI未満でない、即ちTHHI以上である場合(S744のNo)、FA<FLとなるように左の近接ブロックの量子化パラメータに対して重み付けを大きく設定する(S745)。例えば、FAを1、FLを3に設定する。イントラ予測方向がTHHI未満である場合(S744のYes)、左と上の近接ブロックの量子化パラメータに対する重み付けを均等化するので、S741に進む。
以上のようにして、決定した重み付け係数からと各量子化パラメータから次式にて予測量子化パラメータpredQPを導出する(S746)。
ここで、上式の分母はFA+FLであり、分子の2は四捨五入の為に加算される(FA+FL)/2の値である。こうして導出された予測量子化パラメータは差分量子化パラメータ生成部111に供給される。
尚、ここでは重み付け係数FA及びFLの係数の組合せとして、(FA,FL)=(3,1)、(2,2)、(1,3)としたが、これ以外の係数を設定してもよい。但し、計算の高速化を重視する場合、FA+FLが2の冪乗で表される変数を選択することが望ましい。上述した予測量子化パラメータの導出式をビットシフト演算で行うと次式で表される。
上述した重み付け係数FA及びFLの係数の組合せとして、(FA,FL)=(3,1)を(FA,FL)=(4,0)、(FA,FL)=(1,3)を(FA,FL)=(0,4)とすると、前者では上の近接ブロック、後者では左の近接ブロックとなる。この場合、THLOからTHHIの間にあるイントラ予測モードの予測方向でQPAとQPLの平均値を算出する計算処理を行い、それ以外の平均値を予測量子化パラメータとしない場合は左或いは上の近接ブロックの量子化パラメータを選択するだけで実現出来る。その為、処理の簡略化と高速化が可能となる。
また、実施例6では、閾値THLO及びTHHIの値をそれぞれイントラ予測方向の値で13、22としたが、これらの値でなくてもよく、動画像符号化装置100及び動画像復号装置200で矛盾が生じない限り、暗黙的に設定出来るものとする。
更に、実施例6では、閾値THLO及びTHHIにて、イントラ予測モードの予測方向を3つの領域に分割したが、閾値の数を増やして、分割数を増やしてもよい。但し、各領域で設定される重み付け係数FA及びFLの係数は、計算の高速化を重視する場合、FA+FLが2の冪乗で表される変数を選択することが望ましい。
尚、実施例6では、符号化ブロックが上のツリーブロックと近接する場合に、上のツリーブロックの中の符号化済みブロックの量子化パラメータを予測に使用することを禁止するが、左に近接するツリーブロックの符号化済みブロックの量子化パラメータを予測に使用することとして説明したが、上に加え左のツリーブロックの中の符号化済みブロックの量子化パラメータを予測に使用することを禁止する場合でも適用出来る。この場合、S701〜S703の上のツリーブロックの近接判定を上から左に、QPAをQPLに変更したものをS704〜S706の判定分岐に入れ換えるだけで実現出来る。
[実施例7]
実施例7における第2の予測量子化パラメータ導出部304及び205の動作について説明する。尚、ここでは符号化処理について説明するが、復号処理の場合は、符号化が復号となり、予測量子化パラメータ導出部を304から205、符号化情報格納メモリを302から204に符号を置き換え、予測量子化パラメータの出力先を差分量子化パラメータ生成部111から量子化パラメータ生成部203とすることで、同等の処理を実現するものとする。実施例7では、実施例6と同様に、符号化ブロックに近接する左と上の符号化済みブロックの量子化パラメータを予測に使用する。一方、実施例6との相違は、符号化ブロックが上のツリーブロックと近接する場合と同様に、左のツリーブロックと近接する場合に、左のツリーブロックの中の符号化済みブロックの量子化パラメータを予測に使用することを禁止する点である。これは、符号化ブロックの量子化パラメータの算出が符号化制御の符号化処理順に基づいて行われるので、ツリーブロック内部に比べてツリーブロック間では符号化処理順が符号化ブロック間で離れてしまい、ツリーブロック間で符号化ブロックが近接していたとしても、符号量制御で算出される符号化ブロックの量子化パラメータが必ずしも近い値にならず、予測量子化パラメータとして適さないことがある為である。そこで、実施例7では、実施例2と同様に、符号化または復号対象の符号化ブロックが左或いは上のツリーブロックと近接する場合には、左或いは上のツリーブロックの中の符号化済みブロックの量子化パラメータを予測に使用せず、符号化処理順で符号化対象の符号化ブロックより前、ないし直前に符号化したブロックの量子化パラメータに置き換えて使用することとする。
図36は、図19で示される分割されたツリーブロック内部の中から、符号化ブロックBLK1の周辺を拡大した図である。図36のBLK1が参照する符号化済みブロックの方向を太矢印で表す。図36中の実細線は符号化処理順を表しており、符号化ブロックは、符号化ブロックを含むツリーブロック内部で近接する符号化済みブロックの量子化パラメータを原則使用する。BLK1は上のツリーブロックと境界を接しているので、上に近接する符号化済みブロックの量子化パラメータを予測に使用せず、符号化対象の符号化ブロックより前、ないし直前に符号化したブロックの量子化パラメータ(prevQP)に置き換えて、左に近接する符号化済みブロックの量子化パラメータとともに予測に使用する。ここで、BLK1は予測モードとしてイントラ予測と判定され、イントラ予測モードが23であることとすると、イントラ予測モードの予測方向は図36中の太点線で表される。イントラ予測モードが23の場合、予測方向としては上側になるので、上の近接ブロックを参照するように判定される。しかし、BLK1は上のツリーブロックと境界を接しているので、上の近接ブロックの量子化パラメータを参照出来ず、置き換えた符号化対象の符号化ブロックより前、ないし直前に符号化したブロックの量子化パラメータを参照することになる。符号化対象の符号化ブロックより前、ないし直前に符号化したブロックの量子化パラメータは、実際にイントラ予測モードの予測方向で判定される上の近接ブロックの量子化パラメータとは異なるが、符号化処理順では最も近い量子化パラメータなので、予測量子化パラメータの精度の劣化を極力抑えることが出来る。また、符号化ブロックに近接する左及び上の近接ブロックの量子化パラメータが符号化対象の符号化ブロックより前、ないし直前に符号化したブロックの量子化パラメータで置き換えることで、常に左及び上の近接ブロックに非0の量子化パラメータが存在することになり、実施例6のように左及び上の近接ブロックの量子化パラメータが共に存在するか否かで、イントラ予測モードに基づく量子化パラメータの予測と他の処理に切り換える必要が無く、判定分岐も不要となる。その為、実施例6よりも量子化パラメータの予測の判定処理を簡略化することが可能となる。
図37は実施例7における第2の予測量子化パラメータ導出部304の動作を示すフローチャートである。
まず、符号化対象の符号化ブロックの位置情報が取得される(S800)。符号化ブロックの位置情報は、画面の左上を基点として、符号化ブロックを含むツリーブロックの左上の位置が求められ、更にツリーブロックの左上の位置から符号化ブロックの位置が求められる。次に符号化ブロックが上のツリーブロックと近接しているか否かが判定される(S801)。符号化ブロックが上のツリーブロックと近接している場合(S801のYes)、即ち符号化ブロックがツリーブロックの上端に位置している場合は上の近接ブロックが上のツリーブロックの中に含まれる為、ツリーブロック境界を越えてしまうので、量子化パラメータ予測に上の近接ブロックを使用せず、符号化対象の符号化ブロックより前、ないし直前に符号化した符号化ブロックの量子化パラメータprevQPをQPAに設定する(S802)。一方、符号化ブロックが上のツリーブロックと近接していない場合(S801のNo)、即ち上の近接ブロックが符号化ブロックと同一のツリーブロックの中に位置している場合は、メモリ302から符号化ブロックの上に近接する既符号化済みのブロックの量子化パラメータQPAを取得する(S803)。この時、符号化ブロックの左上の基準位置情報に基づいて、符号化情報格納メモリ113に格納された記憶領域をアクセスして、該当する周囲の符号化済みブロックの量子化パラメータが予測量子化パラメータ導出部114内部のメモリ302に供給され、メモリ302の中から上の近接ブロックの量子化パラメータを取得する。
続いて、符号化ブロックが左のツリーブロックと近接しているか否かが判定される(S804)。符号化ブロックが左のツリーブロックと近接している場合(S804のYes)、即ち符号化ブロックがツリーブロックの左端に位置している場合は左の近接ブロックが左のツリーブロックの中に含まれる為、ツリーブロック境界を越えてしまうので、量子化パラメータ予測に左の近接ブロックを使用せず、符号化対象の符号化ブロックより前、ないし直前に符号化した符号化ブロックの量子化パラメータprevQPをQPLに設定する(S805)。一方、符号化ブロックが左のツリーブロックと近接していない場合(S804のNo)、即ち左の近接ブロックが符号化ブロックと同一のツリーブロックの中に位置している場合は、メモリ302から符号化ブロックの左に近接する既符号化済みのブロックの量子化パラメータQPLを取得する(S806)。
次に、メモリ302から符号化ブロックのイントラ予測モードintraPredModeを取得し、イントラ予測方向intraPredDirecに変換する(S807)。イントラ予測方向への変換は実施例6と同様なので、説明は割愛する。変換されたイントラ予測方向に基づき量子化パラメータの予測を行う(S808)。ここでは、実施例6と同様に、図30で示されるイントラ予測モードの予測方向の閾値THをイントラ予測方向の値で18に設定することとし、イントラ予測方向が18未満であれば上の近接ブロックの量子化パラメータ、18以上であれば左の近接ブロックの量子化パラメータを予測量子化パラメータとして導出することとする。
図38を用いて、イントラ予測方向による量子化パラメータの予測の詳細な動作を説明する。最初に、変換されたイントラ予測方向が0であるか否かを判定する(S810)。イントラ予測方向が0となるのは平均値予測によるイントラ予測が行われる場合である(S810のYes)である。この場合、左或いは上の近接ブロックのどちらか一方を優先して選択せず、左及び上の近接ブロックの量子化パラメータQPLとQPAの平均値を予測量子化パラメータとする(S811)。一方、イントラ予測方向が0でない場合(S810のNo)、イントラ予測方向が18未満が否かを判定する(S812)。イントラ予測方向が18未満となる場合(S812のYes)、上の近接ブロックの参照することとし、上の近接ブロックの量子化パラメータQPAを予測量子化パラメータとする(S813)。一方、イントラ予測方向が18以上である場合(S812のNo)、左の近接ブロックの参照することとし、左の近接ブロックの量子化パラメータQPLを予測量子化パラメータとする(S814)。こうして導出された予測量子化パラメータは差分量子化パラメータ生成部111に供給される。
図38で示されるように、実施例7のイントラ予測方向に基づく量子化パラメータの予測(S808)は実施例6のイントラ予測方向に基づく量子化パラメータの予測(S709)と同様である。その為、実施例6において、イントラ予測モードの予測方向に応じて左及び上の近接ブロックの量子化パラメータに重み付け係数を設定する場合、更に、図34で示されるようにイントラ予測モードの予測方向の閾値数を増やして、閾値で区切られるイントラ予測モードの予測方向の領域の範囲毎に左及び上の近接ブロックの量子化パラメータの重み付け係数を設定する場合にも、実施例7では同様に実施可能であるので、ここでは説明を割愛する。
[実施例8]
実施例8における第2の予測量子化パラメータ導出部304及び205の動作について説明する。尚、ここでは符号化処理について説明するが、復号処理の場合は、符号化が復号となり、予測量子化パラメータ導出部を304から205、符号化情報格納メモリを302から204に符号を置き換え、予測量子化パラメータの出力先を差分量子化パラメータ生成部111から量子化パラメータ生成部203とすることで、同等の処理を実現するものとする。実施例1との相違は、符号化または復号対象の符号化ブロックが上のツリーブロックと近接する場合と同様に、左のツリーブロックと近接する場合に、左のツリーブロックの中の符号化済みブロックの量子化パラメータを予測に使用することを禁止する点である。即ち、ツリーブロック境界を越えての符号化済みブロックの量子化パラメータを予測に使用するのは、ツリーブロック内部で最初の符号化処理順の符号化ブロックが符号化対象の符号化ブロックより前、ないし直前に符号化したブロックの量子化パラメータを使用する場合のみに制限する。更に、イントラ予測方向による量子化パラメータの予測を行う前に、左及び上の符号化済みの近接ブロックがともにツリーブロックの境界を越えた位置にない場合、即ち左及び上の近接ブロックの量子化パラメータが非0であるか否かの判定を省略し、直接イントラ予測モードによる量子化パラメータの予測を行うことで、実施例6におけるイントラ予測モードによる量子化パラメータの予測を行わない場合の判定処理(S710〜S714)を削減した点である。
実施例8では、イントラ予測モードの予測方向で判定された近接ブロックがツリーブロックの境界を越えた位置にない場合は、判定された近接ブロックの量子化パラメータから予測量子化パラメータを導出し、イントラ予測モードの予測方向で判定された近接ブロックがツリーブロックの境界を越えた位置にある場合は、判定された近接ブロックの量子化パラメータを使用することが出来ないので、他の近接ブロックの量子化パラメータや符号化対象の符号化ブロックより前、ないし直前に符号化したブロックの量子化パラメータを有効か判定し、予測量子化パラメータとして導出する。
図39は実施例8における第1の予測量子化パラメータ導出部303の動作を示すフローチャートである。図39のフローチャートのS900からS903及びS907 は実施例6の図28のS700からS703及びS708、S904からS906は実施例7の図37のS804からS806と同じであるので、説明を割愛し、イントラ予測方向による量子化パラメータの予測S908の詳細な動作のみ説明する。
図40を用いて、イントラ予測方向による量子化パラメータの予測(S908)の詳細な動作を説明する。ここでは、実施例6と同様に、図30で示されるイントラ予測モードの予測方向の閾値THをイントラ予測方向の値で18に設定することとし、イントラ予測方向が閾値THによって量子化パラメータの予測を切り換えて、予測量子化パラメータを導出することとする。
最初に、変換されたイントラ予測方向が0であるか否かを判定する(S910)。イントラ予測方向が0となるのは平均値予測によるイントラ予測が行われる場合である(S910のYes)である。この場合、method1(S911)に進む。一方、イントラ予測方向が0でない場合(S910のNo)、イントラ予測方向が18未満が否かを判定する(S912)。イントラ予測方向が18未満となる場合(S912のYes)、method2(S913)に進み、イントラ予測方向が18以上である場合(S912のNo)、method3(S914)に進む。
まず、method1の処理を図41を用いて説明する。S910においてイントラ予測方向が0(S910のYes)と判定されるのは平均値予測によるイントラ予測が行われる場合である。この場合、左或いは上の近接ブロックのどちらか一方を優先して選択せず、左及び上の近接ブロックの量子化パラメータQPLとQPAの平均値を予測量子化パラメータとすることになる為、最初に左及び上の近接ブロックの量子化パラメータがともに正であるか否かを判定する(S920)。左及び上の近接ブロックの量子化パラメータがともに正の場合(S920のYes)、左及び上の両方の近接ブロックが存在する。その為、イントラ予測モードで示される方向で指定される近接ブロックを参照し、その量子化パラメータを取得することが可能であるので、左及び上の近接ブロックの量子化パラメータQPLとQPAの平均値を予測量子化パラメータとする(S921)。
一方、左及び上の近接ブロックの量子化パラメータがともに正でない場合(S920のNo)、即ち少なくとも左或いは上のどちらか一方の近接ブロックの量子化パラメータが0であり、少なくとも左或いは上のどちらか一方の近接ブロックが存在しないことになる。その為、左及び上の近接ブロックの量子化パラメータQPLとQPAの平均値を予測量子化パラメータとすることは出来ないので、左或いは上の近接ブロックの存在有無、即ち左或いは上の近接ブロックの量子化パラメータが0であるか否かにより、取り得る量子化パラメータを予測量子化パラメータとする。
最初に上の近接ブロックの量子化パラメータが0であるか否かを判定する(S922)。上の近接ブロックの量子化パラメータが0でない場合(S922のNo)、上の近接ブロックの量子化パラメータを予測量子化パラメータとする(S923)。一方、0である場合(S922のYes)、予測量子化パラメータとして上の近接ブロックの量子化パラメータを参照出来ないので、S924の判定に進む。次に、左の近接ブロックの量子化パラメータが0であるか否かの判定する(S924)。左の近接ブロックの量子化パラメータが0でない場合(S924のNo)、左の近接ブロックの量子化パラメータを予測量子化パラメータとする(S925)。一方、0である場合(S924のYes)、即ち、左及び上の近接ブロックの量子化パラメータがともに0であり、両方ともに存在しないので、予測量子化パラメータとして左及び上の近接ブロックの量子化パラメータを参照出来ない。そこで、符号化対象の符号化ブロックより前、ないし直前に符号化したブロックの量子化パラメータ(prevQP)を予測量子化パラメータとする(S926)。尚、画像の左上端のブロックが符号化ブロックである場合は、左と上の近接ブロック、更に符号化対象の符号化ブロックより前、ないし直前に符号化したブロックが存在しないので、ピクチャ或いはスライスの量子化パラメータを予測量子化パラメータとする。
次に、method2の処理を図42を用いて説明する。S912においてイントラ予測方向が18未満(S912のYes)と判定されたので、上の符号化済みの近接ブロックの量子化パラメータを予測量子化パラメータを選択することになる為、最初に上の近接ブロックの量子化パラメータが0であるか否かを判定する(S930)。上の近接ブロックの量子化パラメータが0でない場合(S930のNo)、上の近接ブロックの量子化パラメータを予測量子化パラメータとする(S931)。一方、0である場合(S930のYes)、予測量子化パラメータとして上の近接ブロックの量子化パラメータを参照出来ないので、S932の判定に進む。次に、左の近接ブロックの量子化パラメータが0であるか否かの判定する(S932)。左の近接ブロックの量子化パラメータが0でない場合(S932のNo)、左の近接ブロックの量子化パラメータを予測量子化パラメータとする(S933)。一方、0である場合(S932のYes)、即ち、左及び上の近接ブロックの量子化パラメータがともに0であり、両方ともに存在しないので、予測量子化パラメータとして左及び上の近接ブロックの量子化パラメータを参照出来ない。そこで、符号化対象の符号化ブロックより前、ないし直前に符号化したブロックの量子化パラメータ(prevQP)を予測量子化パラメータとする(S934)。尚、画像の左上端のブロックが符号化ブロックである場合は、左と上の近接ブロック、更に符号化対象の符号化ブロックより前、ないし直前に符号化したブロックが存在しないので、ピクチャ或いはスライスの量子化パラメータを予測量子化パラメータとする。
続いて、method3の処理を図43を用いて説明する。S912においてイントラ予測方向が18以上(S912のNo)と判定されたので、左の符号化済みの近接ブロックの量子化パラメータを予測量子化パラメータを選択することになる為、最初に左の近接ブロックの量子化パラメータが0であるか否かを判定する(S940)。左の近接ブロックの量子化パラメータが0でない場合(S940のNo)、左の近接ブロックの量子化パラメータを予測量子化パラメータとする(S941)。一方、0である場合(S940のYes)、予測量子化パラメータとして左の近接ブロックの量子化パラメータを参照出来ないので、S942の判定に進む。次に、上の近接ブロックの量子化パラメータが0であるか否かの判定する(S942)。上の近接ブロックの量子化パラメータが0でない場合(S942のNo)、上の近接ブロックの量子化パラメータを予測量子化パラメータとする(S943)。一方、0である場合(S942のYes)、即ち、左及び上の近接ブロックの量子化パラメータがともに0であり、両方ともに存在しないので、予測量子化パラメータとして左及び上の近接ブロックの量子化パラメータを参照出来ない。そこで、符号化対象の符号化ブロックより前、ないし直前に符号化したブロックの量子化パラメータ(prevQP)を予測量子化パラメータとする(S944)。尚、画像の左上端のブロックが符号化ブロックである場合は、左と上の近接ブロック、更に符号化対象の符号化ブロックより前、ないし直前に符号化したブロックが存在しないので、ピクチャ或いはスライスの量子化パラメータを予測量子化パラメータとする。
以上のようなイントラ予測方向に分岐された各methodにおいて、イントラ予測方向で判定された近接ブロックの量子化パラメータが0となる場合は、以降の判定を行わずに符号化対象の符号化ブロックより前、ないし直前に符号化したブロックの量子化パラメータ(prevQP)を予測量子化パラメータとして、判定処理を簡略化することも可能である。method1では、左及び上の近接ブロックの量子化パラメータがともに正であるか否かを判定(S920)で、左及び上の近接ブロックの量子化パラメータがともに正でない場合(S920のNo)、S922以降の判定処理を行わずに符号化対象の符号化ブロックより前、ないし直前に符号化したブロックの量子化パラメータ(prevQP)を予測量子化パラメータとする(S926)。method2では、上の近接ブロックの量子化パラメータが0であるか否かを判定(S930)で、0である場合(S930のYes)、S932以降の判定処理を行わずに符号化対象の符号化ブロックより前、ないし直前に符号化したブロックの量子化パラメータ(prevQP)を予測量子化パラメータとする(S934)。method3では、左の近接ブロックの量子化パラメータが0であるか否かを判定(S940)で、0である場合(S940のYes)、S942以降の判定処理を行わずに符号化対象の符号化ブロックより前、ないし直前に符号化したブロックの量子化パラメータ(prevQP)を予測量子化パラメータとする(S944)。
こうして導出された予測量子化パラメータは差分量子化パラメータ生成部111に供給される。
実施例8のイントラ予測方向に基づく量子化パラメータの予測(S908)は、実施例6のイントラ予測方向に基づく量子化パラメータの予測(S709)と同様に、イントラ予測モードの予測方向に応じて左及び上の近接ブロックの量子化パラメータに重み付け係数を設定する場合、更に、図34で示されるようにイントラ予測モードの予測方向の閾値数を増やして、閾値で区切られるイントラ予測モードの予測方向の領域の範囲毎に左及び上の近接ブロックの量子化パラメータの重み付け係数を設定する場合にも実施可能である。ここでは、図34で示されるようにイントラ予測モードの予測方向の閾値数を増やして、閾値で区切られるイントラ予測モードの予測方向の領域の範囲毎に左及び上の近接ブロックの量子化パラメータの重み付け係数を設定する場合の一例として、イントラ予測方向に基づく量子化パラメータの予測(S908)に適用した場合について説明する。実施例6で説明されたその他の事例についても、以下で説明する実施例8を適用する場合と同様に可能であるので、説明を割愛する。
図44は、図34で示されるようにイントラ予測モードの予測方向の閾値数を増やして、閾値で区切られるイントラ予測モードの予測方向の領域の範囲毎に左及び上の近接ブロックの量子化パラメータの重み付け係数を設定する場合に、イントラ予測方向に基づく量子化パラメータの予測(S908)の詳細な動作を示すフローチャートである。実施例6と同様に、図34で示されるイントラ予測モードの予測方向を閾値THLO及びTHHIにより3つの領域に分割し、THLOを13、THHIを22にそれぞれ設定することとし、イントラ予測方向が閾値で区切られた領域毎に決められた量子化パラメータの予測を切り換えて、予測量子化パラメータを導出することとする。
最初に、変換されたイントラ予測方向が0であるか否かを判定する(S950)。イントラ予測方向が0となるのは平均値予測によるイントラ予測が行われる場合である(S950のYes)である。この場合、method1(S951)に進む。一方、イントラ予測方向が0でない場合(S950のNo)、イントラ予測方向がTHLO未満が否かを判定する(S952)。イントラ予測方向がTHLO未満である場合(S952のYes)、method2(S953)に進む。イントラ予測方向がTHLO以上である場合(S952のNo)、イントラ予測方向が閾値THHI未満か否かが判定される(S954)。イントラ予測方向がTHHI未満でない、即ちTHHI以上である場合(S954のNo)、method3(S955)に進む。イントラ予測方向がTHHI未満である場合(S954のYes)、左と上の近接ブロックの量子化パラメータに対する重み付けを均等化するので、S951に進む。
次に、method2(S953)の詳細な動作について説明する。図45はmethod2(S953)の詳細な動作を説明するフローチャートである。重み付け平均を求める場合、左及び上の近接ブロックがともに存在しなければならない。その為、左及び上の近接ブロックの量子化パラメータがともに正であるか否かを判定する(S960)。左及び上の近接ブロックの量子化パラメータがともに正の場合(S960のYes)、左及び上の両方の近接ブロックが存在するので、FA>FL>0となるように上の近接ブロックの量子化パラメータに対して重み付けを大きく設定する(S961)。例えば、FAを3、FLを1に設定する。一方、左及び上の近接ブロックの量子化パラメータがともに正でない場合(S960のNo)、即ち少なくとも左或いは上のどちらか一方の近接ブロックの量子化パラメータが0であり、少なくとも左或いは上のどちらか一方の近接ブロックが存在しないことになる。その為、左及び上の近接ブロックの量子化パラメータから重み付き平均を求めることが出来ないので、左或いは上の近接ブロックの存在有無、即ち左或いは上の近接ブロックの量子化パラメータが0であるか否かにより、取り得る量子化パラメータを予測量子化パラメータとする。最初に上の近接ブロックの量子化パラメータが0であるか否かを判定する(S962)。
上の近接ブロックの量子化パラメータが0でない場合(S962のNo)、上の近接ブロックの量子化パラメータを予測量子化パラメータとする為に、左の近接ブロックの量子化パラメータの重み付き係数FLを0に設定する(S963)。例えば、FAを4、FLを0に設定する。一方、0である場合(S962のYes)、予測量子化パラメータとして上の近接ブロックの量子化パラメータを参照出来ないので、S964の判定に進む。次に、左の近接ブロックの量子化パラメータが0であるか否かの判定する(S964)。左の近接ブロックの量子化パラメータが0でない場合(S964のNo)、左の近接ブロックの量子化パラメータを予測量子化パラメータとする為に、上の近接ブロックの量子化パラメータの重み付き係数FAを0に設定する(S965)。例えば、FAを0、FLを4に設定する。一方、0である場合(S964のYes)、即ち、左及び上の近接ブロックの量子化パラメータがともに0であり、両方ともに存在しないので、予測量子化パラメータとして左及び上の近接ブロックの量子化パラメータを参照出来ない。そこで、符号化対象の符号化ブロックより前、ないし直前に符号化したブロックの量子化パラメータ(prevQP)を予測量子化パラメータとする(S967)。左及び上の近接ブロックの量子化パラメータの重み付き係数が設定された場合は、決定した重み付け係数からと各量子化パラメータから次式にて予測量子化パラメータpredQPを導出する(S966)。
ここで、上式の分母はFA+FLであり、分子の2は四捨五入の為に加算される(FA+FL)/2の値である。こうして導出された予測量子化パラメータは差分量子化パラメータ生成部111に供給される。
method1(S951)及びmethod3(S955)についても、method2と同様の判定処理で実現される。但し、S961における左及び上の近接ブロックの量子化パラメータの重み付き係数の設定を、method1ではFA=FL≠0、method3では0<FA<FLとなるように重み付けを設定する必要がある。
尚、ここでは重み付け係数FA及びFLの係数の組合せ以外の係数を設定してもよい。但し、計算の高速化を重視する場合、FA+FLが2の冪乗で表される変数を選択することが望ましい。上述した予測量子化パラメータの導出式をビットシフト演算で行うと次式で表される。
上述した重み付け係数FA及びFLの係数の組合せとして、(FA,FL)=(3,1)を(FA,FL)=(4,0)、(FA,FL)=(1,3)を(FA,FL)=(0,4)とすると、前者では上の近接ブロック、後者では左の近接ブロックとなる。この場合、THLOからTHHIの間にあるイントラ予測モードの予測方向でQPAとQPLの平均値を算出する計算処理を行い、それ以外の平均値を予測量子化パラメータとしない場合は左或いは上の近接ブロックの量子化パラメータを選択するだけで実現出来る。その為、処理の簡略化と高速化が可能となる。
また、実施例8では、閾値THLO及びTHHIの値をそれぞれイントラ予測方向の値で13、22としたが、これらの値でなくてもよく、動画像符号化装置100及び動画像復号装置200で矛盾が生じない限り、暗黙的に設定出来るものとする。
更に、実施例8では、閾値THLO及びTHHIにて、イントラ予測モードの予測方向を3つの領域に分割したが、閾値の数を増やして、分割数を増やしてもよい。但し、各領域で設定される重み付け係数FA及びFLの係数は、計算の高速化を重視する場合、FA+FLが2の冪乗で表される変数を選択することが望ましい。
[実施例9]
実施例6及び8では、符号化対象の符号化ブロックのイントラ予測モードの予測方向に基づいて判定される近接ブロックがツリーブロックの境界を越えた位置にある場合があった。実施例6では、イントラ予測モードによる量子化パラメータの予測を可能とする為に、予め左及び上の近接ブロックがともにツリーブロックの境界を越えた位置にあるか否かを判定し、ともに越えた位置に無い場合にのみイントラ予測モードによる量子化パラメータの予測を実施し、そうでない(少なくとも一方の近接ブロックがツリーブロックの境界を越えた位置にある)場合はイントラ予測モードによる量子化パラメータの予測を実施しなかった。実施例8では、イントラ予測モードの予測方向で判定された近接ブロックがツリーブロックの境界を越えた位置にある場合は、判定された近接ブロックの量子化パラメータを使用することが出来ないので、他の近接ブロックの量子化パラメータや符号化対象の符号化ブロックより前、ないし直前に符号化したブロックの量子化パラメータを有効か判定し、予測量子化パラメータとして導出した。このように、符号化対象の符号化ブロックのイントラ予測モードの予測方向で判定された近接ブロックがツリーブロックの境界を越えた位置にある場合には、イントラ予測モードの予測方向と参照先の近接ブロックの位置とが合致しないので、イントラ予測モードよる判定の精度が低下する恐れがある。また、本来符号化ブロックがイントラ予測であっても、周囲に符号化済みの近接ブロックがツリーブロックの境界を越えた位置にあり、イントラ予測モードによる判定が出来ない場合がある。そこで、実施例9では、第2の予測量子化パラメータ導出部でイントラ予測モードによる判定と参照する近接ブロックの位置が合致しない場合はイントラ予測モードによる判定結果を採用せず、第1の予測量子化パラメータ導出部で再判定を行うことで、量子化パラメータの予測精度を向上させるものである。尚、ここでは符号化処理について説明するが、復号処理の場合は、符号化が復号となり、予測量子化パラメータ導出部を114から205、符号化情報格納メモリを113から204に符号を置き換え、予測量子化パラメータの出力先を差分量子化パラメータ生成部111から量子化パラメータ生成部203とすることで、同等の処理を実現するものとする。
実施例9の判定を適用した予測量子化パラメータ導出部114及び205の詳細な構成を図46に示す。予測量子化パラメータ導出部114及び205はスイッチ401、メモリ402、第1の予測量子化パラメータ導出部403、第2の予測量子化パラメータ導出部404及び再演算判定部405から構成される。図46のスイッチ401から第1の予測量子化パラメータ導出部403の諸部は、図10のスイッチ301から第1の予測量子化パラメータ導出部303の諸部と同じ機能を有しているので、説明を割愛する。図46の第2の予測量子化パラメータ導出部404に、上述した図10の第2の予測量子化パラメータ導出部304と異なる機能に変更したので、その差異について説明する。
図47は、実施例6で説明した第2の予測量子化パラメータ導出部304に対して、実施例9の機能を適用した第2の予測量子化パラメータ導出部404の動作を説明するフローチャートである。S1000からS1009までの処理は上述した第2の予測量子化パラメータ導出部304と同様であり、説明を割愛する。上述した第2の予測量子化パラメータ導出部304との差異は、左及び上の近接ブロックの量子化パラメータがともに正であるか否かを判定(S1007)し、左及び上の近接ブロックの量子化パラメータの少なくとも1つがともに正でない場合(S1007のNo)、イントラ予測モードによる量子化パラメータの予測を行わず、予測量子化パラメータ(predQP)を0に設定する(S1010)ようにした点である。第2の予測量子化パラメータ導出部304では、符号化ブロックがイントラ予測であっても、周囲に符号化済みの近接ブロックがツリーブロックの境界を越えた位置にあり、近接ブロックの量子化パラメータが0に設定され、イントラ予測モードによる量子化パラメータの予測が出来ない場合、イントラ予測モードに関係無く、近接ブロックの存在有無で判定していた。第2の予測量子化パラメータ導出部404では、イントラ予測モードによる量子化パラメータの予測のみ実施するようにし、イントラ予測モードによる量子化パラメータの予測で判定出来ない場合は、後述する再演算判定部405で第1の予測量子化パラメータ導出部403で再判定を行う判断をさせる為に予測量子化パラメータを0に設定する。導出された予測量子化パラメータは再演算判定部405に供給される。
図48は、実施例8で説明した第2の予測量子化パラメータ導出部304のイントラ予測方向による量子化パラメータの予測(S908)に対して、実施例9の機能を適用した第2の予測量子化パラメータ導出部404のイントラ予測方向による量子化パラメータの予測の動作を説明するフローチャートである。実施例8と同様に、図30で示されるイントラ予測モードの予測方向の閾値THをイントラ予測方向の値で18に設定することとし、イントラ予測方向が閾値THによって量子化パラメータの予測を切り換えて、予測量子化パラメータを導出することとする。最初に、変換されたイントラ予測方向が0であるか否かを判定する(S1020)。イントラ予測方向が0となるのは平均値予測によるイントラ予測が行われる場合である(S1020のYes)である。この場合、method1(S1021)に進む。一方、イントラ予測方向が0でない場合(S1020のNo)、イントラ予測方向が18未満が否かを判定する(S1022)。イントラ予測方向が18未満となる場合(S1022のYes)、method2(S1023)に進み、イントラ予測方向が18以上である場合(S1022のNo)、method3(S1024)に進む。
まず、method1の処理を図49を用いて説明する。S1020においてイントラ予測方向が0(S1020のYes)と判定されるのは平均値予測によるイントラ予測が行われる場合である。この場合、左或いは上の近接ブロックのどちらか一方を優先して選択せず、左及び上の近接ブロックの量子化パラメータQPLとQPAの平均値を予測量子化パラメータとすることになる為、最初に左及び上の近接ブロックの量子化パラメータがともに正であるか否かを判定する(S1030)。左及び上の近接ブロックの量子化パラメータがともに正の場合(S1030のYes)、左及び上の両方の近接ブロックが存在する。その為、イントラ予測モードで示される方向で指定される近接ブロックを参照し、その量子化パラメータを取得することが可能であるので、左及び上の近接ブロックの量子化パラメータQPLとQPAの平均値を予測量子化パラメータとする(S1031)。一方、左及び上の近接ブロックの量子化パラメータがともに正でない場合(S1030のNo)、即ち少なくとも左或いは上のどちらか一方の近接ブロックの量子化パラメータが0であり、少なくとも左或いは上のどちらか一方の近接ブロックが存在しないことになる。その為、左及び上の近接ブロックの量子化パラメータQPLとQPAの平均値を予測量子化パラメータとすることは出来ないので、予測量子化パラメータを0に設定する(S1032)。
次に、method2の処理を図50を用いて説明する。S1022においてイントラ予測方向が18未満(S1022のYes)と判定されたので、上の符号化済みの近接ブロックの量子化パラメータを予測量子化パラメータを選択することになる為、最初に上の近接ブロックの量子化パラメータが0であるか否かを判定する(S1040)。上の近接ブロックの量子化パラメータが0でない場合(S1040のNo)、上の近接ブロックの量子化パラメータを予測量子化パラメータとする(S1041)。一方、0である場合(S1040のYes)、予測量子化パラメータとして上の近接ブロックの量子化パラメータを参照出来ないので、予測量子化パラメータを0に設定する(S1042)。
続いて、method3の処理を図51を用いて説明する。S1022においてイントラ予測方向が18以上(S1022のNo)と判定されたので、左の符号化済みの近接ブロックの量子化パラメータを予測量子化パラメータを選択することになる為、最初に左の近接ブロックの量子化パラメータが0であるか否かを判定する(S1050)。左の近接ブロックの量子化パラメータが0でない場合(S1050のNo)、左の近接ブロックの量子化パラメータを予測量子化パラメータとする(S1051)。一方、0である場合(S1050のYes)、予測量子化パラメータとして左の近接ブロックの量子化パラメータを参照出来ないので、予測量子化パラメータを0に設定する(S1052)。
以上のように、イントラ予測方向に分岐された各methodにおいて、イントラ予測方向で判定された近接ブロックの量子化パラメータが0となる場合は、近接ブロックがツリーブロックの境界を越えた位置にある、若しくは画面外にある場合であり、イントラ予測方向で判定された近接ブロックの量子化パラメータにより予測量子化パラメータを導出することが出来ない。そこで、イントラ予測モードによる量子化パラメータの予測で判定出来ないことを表す為に、予測量子化パラメータを0に設定する。導出された予測量子化パラメータは再演算判定部405に供給される。
こうして、第2の予測量子化パラメータ導出部404で導出された予測量子化パラメータ(predQP)が再演算判定部405に供給される。
再演算判定部405の詳細な動作を図52を用いて説明する。再演算判定部405には、第2の予測量子化パラメータ導出部404から予測量子化パラメータが供給される(S1100)。再演算判定部405は、供給される予測量子化パラメータが0であるか否かを判定する(S1101)。予測量子化パラメータが0である場合、第2の予測量子化パラメータ導出部404で適切な判定結果が得られなかったとみなし、第1の予測量子化パラメータ導出部403で再度予測量子化パラメータの導出を促す(S1102)。予測量子化パラメータが0でない場合、第2の予測量子化パラメータ導出部404で導出された予測量子化パラメータを差分量子化パラメータ生成部111に供給する。
以上のようにして、第2の予測量子化パラメータ導出部でイントラ予測モードによる判定と参照する近接ブロックの位置が合致しない場合はイントラ予測モードによる判定結果を採用せず、第1の予測量子化パラメータ導出部で再判定を行うことが可能となる。
実施例9では、第2の予測量子化パラメータ導出部404でイントラ予測モードによる判定と参照する近接ブロックの位置が合致しない場合はイントラ予測モードによる判定結果を採用せず、予測量子化パラメータを0として出力するようにした点を除けば、実施例6及び8の第2の予測量子化パラメータ導出部304のイントラ予測モードによる量子化パラメータの予測判定と何ら変更されていない。その為、実施例6において、イントラ予測モードの予測方向に応じて左及び上の近接ブロックの量子化パラメータに重み付け係数を設定する場合、更に、図34で示されるようにイントラ予測モードの予測方向の閾値数を増やして、閾値で区切られるイントラ予測モードの予測方向の領域の範囲毎に左及び上の近接ブロックの量子化パラメータの重み付け係数を設定する場合にも、実施例9では同様に実施可能であるので、ここでは説明を割愛する。
実施の形態の動画像符号化装置によれば、符号化対象のブロック毎に符号化される量子化パラメータを、周囲の符号化済みブロックの量子化パラメータを用いて、量子化パラメータの予測を行い、最適な予測量子化パラメータを導出し、量子化パラメータと予測量子化パラメータとの差分をとり符号化することで、画質を変化させずに、量子化パラメータの符号量を削減して、符号化効率を向上させることが出来る。
また、符号化側と復号側で、量子化パラメータ予測の共通の機能として実装出来るので、回路規模を縮小することが出来る。これは、符号化済みの近接ブロックが符号化側では次の符号化ブロックの予測の為に局部復号したブロックとなり、復号済みブロックと同一である為、符号化側と復号側で矛盾を生じないように量子化パラメータ予測の判定を実現したことによる。
尚、上述の説明では、符号化ブロックを単位として量子化パラメータの予測を行ったが、ツリーブロック内の分割を増やし、ブロックサイズの小さい符号化ブロックが多く発生すると、符号量制御における符号化ブロック当たりの割当符号量は小さくなり過ぎて、量子化パラメータが適切に算出されない場合がある。また、符号化及び復号時に量子化パラメータ等の符号化情報を記憶しておく動画像符号化装置100及び動画像復号装置200の符号化情報格納メモリ113及び204のメモリ量を増加させることにもなる。そこで、量子化パラメータを符号化、伝送する単位として量子化グループというブロックを新たに設定し、このブロック単位に量子化パラメータの予測を行うことにしてもよい。
量子化グループはツリーブロックのサイズに従って決定されるブロックであり、そのサイズはツリーブロックのブロックの辺の長さに1/2n倍(nは0以上の整数)を乗じた値で表される。即ち、ツリーブロックのブロックの辺の長さをnビット右にシフトした値が量子化グループの辺の長さとなる。この値はツリーブロック構造と同じようにブロックサイズが決定されるので、ツリーブロックとの親和性が高い。また、ツリーブロック内を均等サイズで分割されるので、符号化情報格納メモリ113及び204に記憶される量子化パラメータの管理や読み出しを簡便化することが出来る。
図53はツリーブロック内部をツリーブロック構造で分割した一例を示す。ツリーブロックのブロックサイズは64×64とし、ツリーブロック内部を階層的に4分割し、1回目の分割で32×32ブロック(図53中の点線矩形)、2回目の分割で16×16ブロック(図53中の斜線矩形)、3回目の分割で8×8ブロック(図53中の白抜き矩形)の符号化ブロックに分割される。ここで、量子化グループを16×16の矩形ブロックとすると、量子化グループは図53の太点線で表され、量子化グループ単位に量子化パラメータの予測を行う。
符号化対象の符号化ブロックが量子化グループのブロックサイズよりも大きい場合(32×32ブロック)、例えば図53の点描矩形で表される符号化ブロックの内部は量子化グループで4つに分割される。量子化グループにより4分割されているものの、この符号化ブロックの量子化パラメータは1つであるので、符号化ブロックのサイズが量子化グループより大きい場合は、符号化ブロックの量子化パラメータの予測後の差分量子化パラメータを符号化、伝送し、4つに分割された量子化グループそれぞれに対応する符号化情報格納メモリ113及び204のメモリ領域に同じ量子化パラメータを記憶する。メモリ内部で量子化パラメータが重複することになるが、量子化パラメータの予測での周囲の符号化済みブロックの量子化パラメータのアクセスしやすくなる。
符号化対象の符号化ブロックが量子化グループのブロックサイズと同じ場合(16×16ブロック)、上述した符号化ブロック単位での量子化パラメータの予測の場合と同じである。
符号化対象の符号化ブロックが量子化グループのブロックサイズより小さい場合(8×8ブロック)、例えば図53の白抜き矩形で表される符号化ブロックであり、量子化グループの中に4つの符号化ブロックが収納されるので、量子化グループの中の符号化ブロックは個々で量子化パラメータを備えるのではなく、量子化グループ内で1つの量子化パラメータを備え、その量子化パラメータに個々の符号化ブロックを符号化することとする。尚、量子化グループの量子化パラメータとして、量子化グループ内の4つの符号化ブロックの量子化パラメータから1つを代表値として選択、平均値等算出方法があるが、ここでは特に限定しない。
図54は符号化ブロックが量子化グループのブロックサイズより小さい場合の量子化パラメータの予測の一例を示す。図54の中の斜線矩形は符号化対象の符号化ブロック、灰色矩形は符号化ブロックを含む量子化グループが量子化パラメータの予測で使用する符号化済みブロックを示し、細実線は符号化処理順を表す。量子化パラメータの予測は、処理対象の量子化グループの左上隅の画素の位置を基準にして行う。上に近接する符号化済みブロックの量子化パラメータを予測に使用する場合は、図54の中の斜線矩形は符号化対象の符号化ブロックを含む量子化グループの左上隅の画素に対して、1画素上に近接する画素を含む符号化済みブロックの位置を算出し、その位置に該当するアドレスに記憶されている量子化パラメータを符号化情報格納メモリ113及び204から呼び出す。同様にして、左に近接する符号化済みブロックの量子化パラメータを予測に使用する場合は、符号化対象の符号化ブロックを含む量子化グループの左上隅の画素に対して、1画素左に近接する画素を含む符号化済みブロックの位置を算出し、その位置に該当するアドレスに記録されている量子化パラメータを符号化情報格納メモリ113及び204から呼び出す。符号化対象の符号化ブロックを含む量子化グループの左上隅の画素の左及び上に近接する画素を含む符号化済みブロックがツリーブロックの境界を越えている場合には、符号化対象の符号化ブロックより前、ないし直前に符号化した符号化済みブロックの量子化パラメータを使用するので、符号化で符号化情報格納メモリ113及び204に量子化パラメータを記憶した時に記憶したメモリ上のアドレスを一時記憶しておき、符号化対象の符号化ブロックより前、ないし直前の位置に該当するアドレスに記憶されている量子化パラメータを符号化情報格納メモリ113及び204から呼び出す。こうして、符号化対象の符号化ブロックの量子化パラメータの予測が可能となる。
以上のように、量子化グループ単位の量子化パラメータの予測も上述した符号化ブロック単位の量子化パラメータの予測と同様に行うことが可能である。
尚、量子化グループのブロックサイズは、ビットストリームのヘッダー情報にブロックサイズを直接記述しても良いし、ツリーブロックサイズの1/2n倍(nは0以上の整数)にするかを表すビットシフト量を記述しても良い。例えば、ピクチャのヘッダー情報の中に、ピクチャ単位で量子化パラメータ予測を行い、差分量子化パラメータをビットストリーム中に記述し伝送するか否かを指定するフラグcu_qp_delta_enable_flagを定義し、更にフラグcu_qp_delta_enable_flagを有効とする("1"に設定)場合にのみ、量子化グループのサイズを決定するパラメータdiff_cu_qp_delta_depthをビットストリームに記述する。量子化グループのサイズは、ツリーブロックのサイズが2nで示される場合に、指数nからdiff_cu_qp_delta_depthを引いた値を指数とした2の冪乗で表されることになる。また、特にビットストリームに記述せずに、符号化と復号で暗黙に量子化グループのサイズを決めておいても良い。
以上述べた実施の形態の動画像符号化装置が出力する動画像の符号化ストリームは、実施の形態で用いられた符号化方法に応じて復号することができるように特定のデータフォーマットを有しており、動画像符号化装置に対応する動画像復号装置がこの特定のデータフォーマットの符号化ストリームを復号することができる。
動画像符号化装置と動画像復号装置の間で符号化ストリームをやりとりするために、有線または無線のネットワークが用いられる場合、符号化ストリームを通信路の伝送形態に適したデータ形式に変換して伝送してもよい。その場合、動画像符号化装置が出力する符号化ストリームを通信路の伝送形態に適したデータ形式の符号化データに変換してネットワークに送信する動画像送信装置と、ネットワークから符号化データを受信して符号化ストリームに復元して動画像復号装置に供給する動画像受信装置とが設けられる。
動画像送信装置は、動画像符号化装置が出力する符号化ストリームをバッファするメモリと、符号化ストリームをパケット化するパケット処理部と、パケット化された符号化データをネットワークを介して送信する送信部とを含む。動画像受信装置は、パケット化された符号化データをネットワークを介して受信する受信部と、受信された符号化データをバッファするメモリと、符号化データをパケット処理して符号化ストリームを生成し、動画像復号装置に提供するパケット処理部とを含む。
以上の符号化及び復号に関する処理は、ハードウェアを用いた伝送、蓄積、受信装置として実現することができるのは勿論のこと、ROM(リード・オンリ・メモリ)やフラッシュメモリ等に記憶されているファームウェアや、コンピュータ等のソフトウェアによっても実現することができる。そのファームウェアプログラム、ソフトウェアプログラムをコンピュータ等で読み取り可能な記録媒体に記録して提供することも、有線あるいは無線のネットワークを通してサーバから提供することも、地上波あるいは衛星ディジタル放送のデータ放送として提供することも可能である。
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。