近年、画像をディジタル信号として取り扱い、当該ディジタル信号を効率よく伝送、蓄積することを目的として、画像情報特有の冗長性を利用して、離散コサイン変換等の直交変換と動き補償により圧縮するMPEG(Moving Picture Expert Group)等の方式に準拠した装置が、放送局などの情報配信、および一般家庭における情報受信の双方において普及しつつある。
特に、MPEG2(ISO/IEC 13818-2)圧縮方式は、汎用性がある画像圧縮方式として定義された規格であり、飛び越し走査画像および順次走査画像の双方、並びに標準解像度画像および高精細画像を網羅する標準であって、例えばDVD(Digital Versatile Disk)規格に代表されるように、プロフェッショナル用途およびコンシューマー用途の広範なアプリケーションに現在広く用いられている。
MPEG2圧縮方式を用いることにより、例えば、720×480画素を持つ標準解像度の飛び越し走査画像に対しては4乃至8Mbps、1920×1088画素を持つ高解像度の飛び越し走査画像に対しては18乃至22Mbpsの符号量(ビットレート)を割り当てることで、高い圧縮率と良好な画質の実現が可能である。
ところで、MPEG2は、主として放送用に適合する高画質符号化を対象としていたが、より高い圧縮率の符号化方式には対応していなかったので、より高い圧縮率の符号化方式として、MPEG4符号化方式の標準化が行われた。画像符号化方式に関しては、1998年12月にISO/IEC 14496-2としてその規格が国際標準に承認された。
さらに、近年、テレビ会議用の画像符号化を当初の目的として、国際電気連合の電気通信標準化部門であるITU-T(International Telecommunication Union − Telecommunication Standardization Sector)によるH.26L(ITU-T Q6/16 VCEG)と称される標準の規格化が進められている。
H.26Lは、MPEG2やMPEG4などの従来の符号化方式に比較して、符号化処理、および復号処理により多くの演算量が必要となるが、より高い符号化効率が実現されることが知られている。
またさらに、現在、MPEG4の活動の一環としてITU-Tと共同で、H.26Lに基づいた、H.26Lではサポートされない機能を取り入れた、より高い符号化効率を実現する符号化技術の標準化が、Joint Model of Enhanced-Compression Video Codingとして進められている。
ここで、離散コサイン変換またはカルーネン・レーベ変換等の直交変換と動き補償とを利用した従来の画像情報符号化装置について、図1を参照して説明する。図1は、従来の画像情報符号化装置の構成の一例を示している。
当該画像情報符号化装置において、アナログ信号である入力画像信号は、A/D変換部1によってディジタル信号に変換された後、画面並べ替えバッファ2に供給される。画面並べ替えバッファ2は、A/D変換部1からの画像情報を、当該画像情報符号化装置が出力する画像圧縮情報のGOP(Group of Pictures)構造に応じて、フレームの並べ替えを行う。
まず、イントラ(画像内)符号化が行われる画像について説明する。画面並び替えバッファ2において、イントラ符号化が行われる画像については、その画像情報が加算器3を介して直交変換部4に供給される。
直交変換部4では、画像情報に対して直交変換(離散コサイン変換、またはカルーネン・レーベ変換等)が施され、得られた変換係数が量子化部5に供給される。量子化部5では、蓄積バッファ7に蓄積された変換係数のデータ量に基づくレート制御部8からの制御に従い、直交変換部4から供給された変換係数に対して量子化処理が施こされる。
可逆符号化部6では、量子化部5から供給された量子化された変換係数や量子化スケール等から符号化モードが決定され、決定された符号化モードに対して可逆符号化(可変長符号化、または算術符号化等)が施こされ、画像符号化単位のヘッダ部に挿入される情報が形成される。また、符号化された符号化モードは、蓄積バッファ7に供給されて蓄積される。蓄積バッファ7に蓄積された、符号化された符号化モードは、画像圧縮情報として後段に出力される。
また、可逆符号化部6では、量子化された変換係数に対して可逆符号化が施され、符号化された変換係数が蓄積バッファ7に蓄積させる。蓄積バッファ7に蓄積された、符号化された変換係数も、画像圧縮情報として後段に出力される。
逆量子化部9では、量子化部5によって量子化された変換係数が逆量子化される。逆直交変換部10では、逆量子化された変換係数に対して逆直交変換処理が施されて復号画像情報が生成される。生成された復号画像情報は、フレームメモリ11に蓄積される。
次に、インター(画像間)符号化が行われる画像について説明する。画面並び替えバッファ2において、インター符号化が行われる画像については、その画像情報が加算器3および動き予測・補償部12に供給される。
動き予測・補償部12では、画面並び替えバッファ2からのインター符号化が行われる画像に対応する、参照するための画像情報がフレームメモリ11から読み出され、動き予測・補償処理を施して参照画像情報が生成され、加算器3に供給される。また、動き予測・補償部12で動き予測・補償処理の際に得られた動きベクトル情報は、可逆符号化部6に供給される。
加算器3では、動き予測・補償部12からの参照画像情報が、画面並び替えバッファ2からのインター符号化が行われる画像の画像情報との差分信号に変換される。
インター符号化が行われる画像を処理する場合、直交変換部4では、差分信号に対して直交変換が施され、得られる変換係数が量子化部5に供給される。量子化部5では、レート制御部8からの制御に従い、直交変換部4から供給された変換係数に対して量子化処理を施される。
可逆符号化部6では、量子化部5によって量子化された変換係数および量子化スケール、並びに動き予測・補償部12から供給された動きベクトル情報等に基づいて符号化モードが決定され、決定された符号化モードに対して可逆符号化が施され、画像符号化単位のヘッダ部に挿入される情報が生成される。符号化された符号化モードは蓄積バッファ7に蓄積される。蓄積バッファ7に蓄積された符号化された符号化モードは、画像圧縮情報として出力される。
また、可逆符号化部6では、動き予測・補償部12からの動きベクトル情報に対して可逆符号化処理が施され、画像符号化単位のヘッダ部に挿入される情報が生成される。
なお、インター符号化が行われる画像を処理する場合における逆量子化部9以降の処理については、イントラ符号化を施される画像を処理する場合と同様であるので、その説明を省略する。
次に、図1に示した従来の画像情報符号化装置が出力する画像圧縮情報を入力とし、画像信号を復元する従来の画像情報復号装置について、図2を参照して説明する。図2は、従来の画像情報復号装置の構成の一例を示している。
当該画像情報復号装置において、入力された画像圧縮情報は、蓄積バッファ21に一時的に格納された後、可逆復号化部22に転送される。可逆復号化部22は、予め定められている画像圧縮情報のフォーマットに基づき、画像圧縮情報に対して可逆復号(可変長復号、または算術復号等)を施し、ヘッダ部に格納された符号化モード情報を取得して逆量子化部23に供給する。また同様に、可逆復号化部22は、量子化されている変換係数を取得して逆量子化部23に供給する。さらに、可逆復号化部22は、復号するフレームがインター符号化されたものである場合には、画像圧縮情報のヘッダ部に格納された動きベクトル情報についても復号し、その情報を動き予測・補償部28に供給する。
逆量子化部23は、可逆復号化部22から供給された量子化されている変換係数を逆量子化し、得られる変換係数を逆直交変換部24に供給する。逆直交変換部24は、予め定められている画像圧縮情報のフォーマットに基づき、変換係数に対して逆直交変換(逆離散コサイン変換、または逆カルーネン・レーベ変換等)を施す。
ここで、対象となるフレームがイントラ符号化されたものである場合には、逆直交変換が施された画像情報は、加算器25を介して画面並べ替えバッファ26に格納され、D/A変換部27によってアナログ信号に変換されて後段に出力される。逆直交変換が施された画像情報は、フレームメモリ29にも格納される。
また、対象となるフレームがインター符号化されたものである場合には、動き予測・補償部28では、可逆復号化部22からの動きベクトル情報とフレームメモリ29に格納された画像情報とに基づいて参照画像が生成され、加算器25に供給される。加算器25では、動き予測・補償部28からの参照画像と逆直交変換部25の出力とが合成されて画像情報が生成される。なお、その他の処理については、イントラ符号化されたフレームと同様であるため、説明を省略する。
ところで、H.26Lにおいては、可逆符号化方式として、可変長符号化の一種であるUVLC(Universal Variable Length Code)と、算術符号化の一種であるCABAC(Context-based adaptive binary arithmetic coding)の2種類が定義されており、ユーザは可逆符号化方式にUVLCまたはCABACの一方を選択して適用することが可能である。可逆符号化方式がUVLCであるかCABACであるかを示す情報は、画像圧縮情報中において、RTPレイヤのRTP Parameter Set Packetに含まれる、Entropy Codingと称されるフィールドにおいて指定される。
ここで、CABACが属する算術符号化について説明する。算術符号化においては、任意のメッセージ(複数のアルファベット記号から構成される)は半開区間0.0≦x<1.0上の1点として表され、この点の座標から符号が生成される。
まず、アルファベットを構成する記号の出現確率を元に、半開区間0.0≦x<1.0を、各記号に対応するサブ区間に分割する。
図3は、記号s1乃至s7の発生確率と、サブ区間の分割の一例を示している。算術符号化においては、図3に示すように、各記号の累積出現確率を元にサブ区間の上限と下限が決定される。記号si(i=1,2,・・・,7)に対するサブ区間の下限は、記号si-1のサブ区間の上限であり、記号siに対応するサブ区間の上限は、そのサブ区間の下限に記号siの出現確率を加えた値である。
いま、メッセージとして、(s2s1s3s6s7)が入力されたものとする。ただし、記号s7は、メッセージの終了を表す終端記号であり、終端記号が現れた時点でメッセージが終了するものとする。算術符号化法は、メッセージ(s2s1s3s6s7)に対し、図4に示すように、メッセージを構成する各記号に対応するサブ区間の計算を実行する。すなわち、図3に割り当てられた区間を、次の記号の累積出現確率に応じて分割する。最終的に得られるサブ区間が、そのメッセージを表す値の含まれる区間となる。したがって、この区間内の値であれば一意にメッセージの復元を行うことができる。ただし、符号化の効率を考慮して、その半開区間内で2のべき乗表現が可能な数によってメッセージを表すようにする。
すなわち、この例では、次式(1)を考慮すると、次式(2)が半開区間0.21164≦x<0.2117に含まれるメッセージを表す値となる。
2-1
=0.5
2-2
=0.25
2-3
=0.125
2-4
=0.0625
2-5
=0.03125
2-6
=0.015625
2-7
=0.0078125
2-8
=0.00390625
2-9
=0.001953125
2-10=0.0009765625
2-11=0.00048828125
2-12=0.000244140625
・
・
・
・・・(1)
2-3+2-4+2-6+2-7+2-11+2-12=0.211669921875
・・・(2)
したがって、メッセージ(s2s1s3s6s7)に対応する符号の符号長は、2-1乃至2-12までを表現できるように12ビットであればよく、メッセージ(s2s1s3s6s7)は、(001101100011)に符号化される。
次に、H.26Lで定義されているCABACについて説明する。なお、CABACの詳細については、非特許文献1に開示されている。CABACは、同じくH.26Lで定義されているUVLCと比較して、以下の3つの特徴を有している。
第1の特徴は、符号化されるそれぞれの記号に対して適切なコンテキストモデルを用い、それぞれ独立した確率モデルに基づいた算術符号化を行うことで、シンボル間の冗長性を排除できることである。
第2の特徴は、算術符号化において、それぞれの記号に対して非整数値の符号量(ビット)を割り当てることが可能であり、エントロピに近い符号化効率を得ることが可能であることである。
第3の特徴は、例えば動きベクトルの統計データは、ビットレートやシーケンスのみならず、空間、時間的に異なるものであって一定ではないが、適応型符号化を行うことにより、これらの変化に追従した符号化が可能となることである。
図5は、CABACを適用したCABAC符号化器の一般的な構成を示している。当該CABAC符号化器において、コンテキストモデル化部31は、画像圧縮情報における任意のシンタクス要素に関して、まず、過去の履歴に応じて、シンタクス要素のシンボル(記号)を適切なコンテキストモデルに変換する。このようなモデル化をコンテキストモデル化と称する。画像圧縮情報中のそれぞれのシンタクス要素に対するコンテキストモデルについては後述する。
2値化部32は、2値化されていないシンボルを2値化する。適応2値算術符号化部33では、2値化されたシンボルに対して、確率推定部34によって確率推定がなされ、符号化エンジン35によって確率推定に基づく適応算術符号化が施される。適応算術符号化処理が行われた後、関連するモデルの更新が行われるため、それぞれのモデルは実際の画像圧縮情報の統計に応じた符号化処理を行うことが可能となる。
ここで、画像圧縮情報中のシンタクス要素であるマクロブロックタイプMB_type(MB_type)、動きベクトル情報(MVD)、および参照フレームパラメータ(Ref_frame)を算術符号化するコンテキストモデルについて説明する。
MB_typeのコンテキストモデル生成について、イントラフレームとインターフレームに分けて説明する。
イントラフレームにおいて、図6に示すようにマクロブロックA,B,Cが配置されている場合、マクロブロックCのMB_typeに対応するコンテキストモデルctx_mb_type_intra(C)は、次式(3)によって定義される。なお、イントラフレームにおいて、マクロブロックのモードは、Intra4×4、またはIntra16×16である。
ctx_mb_type_intra(C)=A+B
・・・(3)
ただし、式(3)において、Aは、マクロブロックAがIntra4×4である場合には0であり、Intra16×16である場合には1である。同様に、Bは、マクロブロックBがIntra4×4である場合には0であり、Intra16×16である場合には1である。したがって、コンテキストモデルctx_mb_type_intra(C)は、0,1,2のいずれかの値をとる。
インターフレームにおいて、図6に示すようにマクロブロックA,B,Cが配置されている場合、マクロブロックCのMB_typeに対応するコンテキストモデルctx_mb_type_inter(C)は、当該インターフレームがPピクチャである場合、次式(4)によって定義される。また、当該インターフレームがBピクチャである場合、次式(5)によって定義される。
ctx_mb_type_inter(C)=((A==Skip)?0:1)+((B==Skip)?0:1)
・・・(4)
ctx_mb_type_inter(C)=((A==Direct)?0:1)+((B==Direct)?0:1)・・・(5)
ただし、式(4)において、演算子((A==Skip)?0:1)は、マクロブロックAがSkipモードである場合には0を示し、マクロブロックAがSkipモードではない場合には1を示すものとする。同様に、演算子((B==Skip)?0:1)は、マクロブロックBがSkipモードである場合には0を示し、マクロブロックBがSkipモードではない場合には1を示すものとする。
また、式(5)において、演算子((A==Direct)?0:1)は、マクロブロックAがDirectモードである場合には0を示し、マクロブロックAがDirectモードではない場合には1を示すものとする。演算子((B==Direct)?0:1)は、マクロブロックBがDirectモードである場合には0を示し、マクロブロックBがDirectモードではない場合には1を示すものとする。
したがって、インターフレーム(Pピクチャ)におけるマクロブロックCのMB_typeに対応するコンテキストモデルctx_mb_type_inter(C)は、Pピクチャである場合とBピクチャである場合に対して、それぞれ3種類の値を取ることになる。
次に、動きベクトル情報(MVD)のコンテキストモデル生成について説明する。
画像圧縮情報に含まれる、注目するマクロブロックに対応する動きベクトル情報は、隣接するマクロブロックに対応する動きベクトルとの予測誤差として符号化されている。いま、図7に示すように配置されているマクロブロックA,B,Cのうち、注目するマクロブロックCに対する評価関数ek(C)を次式(6)によって定義する。ここで、k=0は水平成分、k=1は垂直成分を示す。
ek(C)=|mvdk(A)|+|mvdk(B)|
・・・(6)
ただし、式(6)において、mvdk(A),mvdk(B)は、それぞれ、マクロブロックCに隣接するマクロブロックA,Bに対する動きベクトル予測誤差である。
なお、式(6)に関し、マクロブロックCが画枠の左端に存在しており、マクロブロックA,Bの一方が存在しないような場合、動きベクトル予測誤差mvdk(A)またはmvdk(B)に関する情報を得ることができないので、式(6)の右辺における対応する項は無視する。このように定義されたek(C)に対応するコンテキストモデルctx_mvd(C,k)は、次式(7−1)乃至(7−3)のように定義される。
ctx_mvd(C,k)=0
ek(C)<3
・・・(7−1)
ctx_mvd(C,k)=1
32<ek(C)
・・・(7−2)
ctx_mvd(C,k)=2
3≦ek(C)≦32
・・・(7−3)
動きベクトル情報(MVD)のコンテキストモデル生成は、図8に示すように行われる。すなわち、マクロブロックCに対する動きベクトル予測誤差mvdk(C)は、絶対値|mvdk(C)|と符号に分離される。絶対値|mvdk(C)|は2値化される。2値化された絶対値|mvdk(C)|の第1のbin(最左端の値)は、上述したコンテキストモデルctx_mvd(C,k)を用いて符号化する。第2のbin(左端から2番目の値)はコンテキストモデル3を用いて符号化する。同様に、第3,4のbinは、それぞれコンテキストモデル4,5を用いて符号化する。第5以降のbinは、コンテキストモデル6を用いて符号化する。mvdk(C)の符号は、コンテキストモデル7を用いて符号化する。このように、運動ベクトル情報(MVD)は、8種類のコンテキストモデルを用いて符号化される。
次に、参照フレームパラメータ(Ref_frame)を符号化するコンテキストモデルについて説明する。
インターフレームに対して、2枚以上の参照フレームが用いられる場合、インターフレームの各マクロブロックに対して参照フレームに関する情報が設定される。図6に示すように配置されたマクロブロックA,B,Cにおいて、マクロブロックA,Bそれぞれに対する参照フレームパラメータをA,Bとした場合、マクロブロックCに対するコンテキストモデルctx_ref_frame(C)は、次式(8)によって定義される。
ctx_ref_frame(C)=((A==0)?0:1)+2((B==0)?0:1)
・・・(8)
ただし、式(8)において、演算子((A==0)?0:1)は、マクロブロックAの参照フレームパラメータ0である場合には0を示し、マクロブロックAの参照フレームパラメータが0ではない場合には1を示すものとする。同様に、演算子((B==0)?0:1)は、マクロブロックBの参照フレームパラメータ0である場合には0を示し、マクロブロックBの参照フレームパラメータが0ではない場合には1を示すものとする。
参照フレームパラメータ(Ref_frame)を符号化するコンテキストモデルは、式(8)によって4種類が定義される。さらに、第2のbinに対するコンテキストモデル、および第3以降のbinに対するコンテキストモデルが定義される。
次に、H.26Lの画像圧縮情報中に含まれるテキスチャ情報に関するシンタクス要素であるコードブロックパターン(CBR)、イントラ予測モード(IPRED)、および(RUN,LEVEL)情報を算出符号化するコンテキストモデルについて説明する。
始めに、コードブロックパターンに関するコンテキストモデルについて説明する。Intra16×16マクロブロック以外のコードブロックパターンに関する取り扱いは以下のように定義されている。
すなわち、輝度信号に関しては、Intra16×16マクロブロックに含まれる、4つの8×8ブロックそれぞれに対して1ビットずつ、合計4ビットのCBPビットが含まれている。図6に示すようにマクロブロックA,B,Cが配置されている場合、マクロブロックCの輝度信号に対応するコンテキストモデルctx_cbp_luma(C)は、次式(9)によって定義される。
ctx_cbp_luma(C)=A+2B
・・・(9)
ただし、式(9)において、Aは、マクロブロックAの輝度信号のCBPビットであり、Bは、マクロブロックBの輝度信号のCBPビットである。
CBPフィールドの残り2ビットは色差信号に関するものである。マクロブロックCの色差信号に対応するコンテキストモデルctx_cbp_chroma_sig(C)は、次式(10)によって定義される。
ctx_cbp_chroma_sig(C)=A+2B
・・・(10)
ただし、式(10)において、Aは、マクロブロックAの色差信号のCBPビットであり、Bは、マクロブロックBの色差信号のCBPビットである。
ここで、マクロブロックCの色差信号に対応するコンテキストモデルctx_cbp_chroma_sig(C)が0ではない場合、すなわち、色差信号のAC成分が存在する場合、次式(11)によって定義されるマクロブロックCの色差信号のAC成分に対応するコンテキストモデルctx_cbp_chroma_ac(C)が符号化される必要がある。
ctx_cbp_chroma_ac(C)=A+2B
・・・(11)ただし、式(11)において、Aは、マクロブロックAに対応するcbp_chroma_ac decisionであり、Bは、マクロブロックBに対応するcbp_chroma_ac decisionである。
式(9)乃至(11)によって定義されるコンテキストモデルは、イントラマクロブロックとインターマクロブロックのそれぞれに対して別個に定義されるので、24(=2×3×4)種類のコンテキストモデルが定義されることになる。
さらに、Intra6×16マクロブロックに対しては、2値化されたAC decisionに対して1種類のコンテキストモデルが定義され、色差信号の各成分それぞれに対して1種のコンテキストモデルが定義されている。
次に、イントラ予測モード(IPRED)に関するコンテキストモデルについて説明する。ここで、H.26Lにおいて定義されている6種類(ラベル0乃至5)のイントラ予測モードについて、図9および図10を参照して説明する。図9は、マクロブロックを分割した4×4ブロックに存在する画素a乃至pと、隣接する各4×4ブロック内に存在する画素A乃至Iを示している。図10のラベル1乃至5は、それぞれラベル1乃至5のイントラ予測モードの方向を示している。ラベル0のイントラ予測モードは、DC予測モード(DC Prediction)である。
ラベル0のイントラ予測モードにおいては、画素a乃至pが次式(12)に従って予測される。
画素a乃至p=(A+B+C+D+E+F+G+H)//8
・・・(12)ただし、式(12)乃至次式(15)において、A乃至Iは、それぞれ画素A乃至Iを示しており、記号”//”は、除算した結果を丸め込む演算を意味している。
なお、ラベル0のイントラ予測モードにおいて、8画素A乃至Hのうち、4画素(例えば、画素A乃至D)が画枠内に存在しない場合、式(12)は用いられず、残りの4画素(いまの場合、画素E乃至H)の平均値が、画素a乃至pの予測値とされる。また、8画素A乃至Hの全てが画枠内に存在しない場合も、式(12)は用いられず、所定の値(例えば、128)が画素a乃至pの予測値とされる。
ラベル1のイントラ予測モードは、Vertical/Diagonal Predictionと称される。ラベル1のイントラ予測モードは、4画素A乃至Dが画枠内に存在する場合にだけ用いられる。この場合、画素a乃至pのそれぞれが、次式(13−1)乃至(13−6)に従って予測される。
画素a
=(A+B)//2
・・・(13−1)
画素e
=B
・・・(13−2)
画素b,i=(B+C)//2
・・・(13−3)
画素f,m=C
・・・(13−4)
画素c,j=(C+D)//2
・・・(13−5)
画素d,g,h,k,l,n,o,p
=D
・・・(13−6)
ラベル2のイントラ予測モードは、Vertical Predictionと称される。ラベル2のイントラ予測モードは、4画素A乃至Dが画枠内に存在する場合にだけ用いられる。この場合、例えば、画素a,e,i,mの予測値として画素Aが用いられ、画素b,f,j,nの予測値として画素Bが用いられる。
ラベル3のイントラ予測モードは、Diagonal Predictionと称される。ラベル1のイントラ予測モードは、9画素A乃至Iが画枠内に存在する場合にだけ用いられる。この場合、画素a乃至pのそれぞれが、次式(14−1)乃至(13−7)に従って予測される。
画素m
=(H+2G+F)//4
・・・(14−1)
画素i,n
=(G+2F+E)//4
・・・(14−2)
画素e,j,o
=(F+2E+I)//4
・・・(14−3)
画素a,f,k,p=(E+2I+A)//4
・・・(14−4)
画素b,g,l
=(I+2A+B)//4
・・・(14−5)
画素c,h
=(A+2B+C)//4
・・・(14−6)
画素d
=(B+2C+D)//4
・・・(14−7)
ラベル4のイントラ予測モードは、Horizontal Predictionと称される。ラベル4のイントラ予測モードは、4画素E乃至Hが画枠内に存在する場合にだけ用いられる。この場合、例えば、画素a,b,c,dの予測値として画素Eが用いられ、画素e,f,g,hの予測値として画素Fが用いられる。
ラベル5のイントラ予測モードは、Horizontal/Diagonal Predictionと称される。ラベル5のイントラ予測モードは、4画素E乃至Hが画枠内に存在する場合にだけ用いられる。この場合、画素a乃至pのそれぞれが、次式(15−1)乃至(15−6)に従って予測される。
画素a
=(E+F)//2
・・・(15−1)
画素b
=F
・・・(15−2)
画素c,e=(F+G)//2
・・・(15−3)
画素f,d=G
・・・(15−4)
画素i,g=(G+H)//2
・・・(15−5)
画素h,j,k,l,m,n,o,p
=H
・・・(15−6)
ラベル0乃至5のイントラ予測モードに対しては、それぞれ2つのコンテキストモデルが定義されている。すなわち、1つは、それぞれのモードに対する第1のbinであり、もう1つは、それぞれのモードに対する第2のbinである。これらに加え、Intra16×16モードの2ビットに対して1つずつコンテキストモデルが定義されている。したがって、イントラ予測モードに対しては、合計14のコンテキストモデルが定義されている。
次に、(RUN,LEVEL)に関するコンテキストモデルについて説明する。
H.26Lにおいては、2次元離散コサイン変換係数を1次元に並べ替えるスキャン方式として、図11A,Bに示す2種類の方法が定義されている。図11Aに示すシングルスキャン方式は、イントラマクロブロックに対する輝度信号であって、かつ、量子化パラメータQPが24よりも小さい場合以外に用いられる方式である。図11Bに示すダブルスキャン方式は、シングルスキャン方式が用いられない場合に用いられる。
インターマクロブロックおよび量子化パラメータQPが24以上であるイントラマクロブロックでは、平均して4×4マクロブロックに対する非零係数は1つであり、1ビットのEOB(End Of Block)信号で十分であるが、量子化パラメータQPが24よりも小さいイントラマクロブロックの輝度信号に関しては、2つ以上の非零係数が存在するため、1ビットのEOB信号では不十分である。このため、図11Bに示すダブルスキャン方式が用いられる。
(RUN,LEVEL)に対するコンテキストモデルは、図12に示すように、上述したスキャン方式の区別、DC/ACブロックタイプの区別、輝度信号/色差信号の区別、イントラマクロブロック/インターマクロブロックの区別に応じて9種類が定義されている。
LEVEL情報は符号と絶対値に分離される。図12に示した対応するCtx_run_levelに応じて、4つのコンテキストモデルが定義される。すなわち、第1のコンテキストモデルは符号に対してのものであり、第2のコンテキストモデルは第1のbinに対してのものであり、第2のコンテキストモデルは第2のbinに対してのものであり、第4のコンテキストモデルはそれ以降のbinに対して定義されたものである。
LEVELが0ではない場合(EOBでない場合)には、以下に述べるRUNが符号化される。RUNに対してであるが、図12に示された、それぞれのCtx_run_levelに対して、第1のbinと第2以降のbinについて、それぞれ2つずつのコンテキストモデルが定義されている。
H.26Lの画像圧縮情報において、マクロブロックレベルで設定され得る、量子化に関するパラメータDquantに対するコンテキストモデルについて説明する。
パラメータDquantは、マクロブロックに対するコードブロックパターンが、非零の直交変換係数を含む場合、またはマクロブロックが16×16Intra Codedである場合に設定される。パラメータDquantは、−16乃至16の値を取り得る。マクロブロックに対する量子化パラメータQUANTnewは、画像圧縮情報中のパラメータDquantを用いた次式(16)によって算出される。
QUANTnew=modulo32(QUANTold+Dquant+32)
・・・(16)ただし、式(16)において、QUANToldは、直前の符号化または復号に用いられた量子化パラメータである。
図6に示すように配置されたマクロブロックCのパラメータDquantに対する第1のコンテキストモデルctx_dquant(C)は、次式(17)のように定義される。
ctx_dquant(C)=(A!=0)
・・・(17)ただし、式(17)において、Aは、マクロブロックAのパラメータDquantの値を示している。第1のbinに対しては第2のコンテキストモデルが、第2以降のbinに対しては第2のコンテキストモデルが定義されている。
以上説明した様々なコンテキストモデルに対し、入力となるシンボルが2値化されていない場合には、そのシンボルを入力前に2値化する必要がある。MB_type以外のシンタクス要素は、図13に示す対応関係によって2値化される。
Pピクチャに対して10種類定義されているMB_typeは、図14Aに示す対応関係によって2値化される。また、Bピクチャに対して17種類定義されているMB_typeは、図14Bに示す対応関係によって2値化される。
以上説明した様々なコンテキストモデルに対応するレジスタは、事前に計算された値によって予め初期化されており、各シンボルを符号化する際、一連のコンテキストモデルに対するbinの発生頻度が逐次更新され、次のシンボルの符号化を行う際の判定に用いられる。
しかしながら、与えられたコンテキストモデルに対する発生頻度が予め定められた値を超えた場合には、頻度カウンタは縮小処理が行われる。このように周期的にスケーリング処理を行うことで、動的なシンボルの発生に対応することを容易なものとしている。
H.26Lにおいて、2値化されたシンボルの算術符号化方式については、現在のところ、非特許文献2に開示されている方法が適用されている。
ところで、MPEG2においては、入力となる画像信号が飛び越し走査フォーマットであった場合、マクロブロックレベルでフィールド/フレーム適応型符号化処理が可能とされている。
現在、H.26Lにはそのような仕様は定義されていないが、非特許文献3には、H.26Lの仕様を、マクロブロックレベルでフィールド/フレーム適応型符号化処理を可能とするように拡張することが提案されている。
非特許文献3に提案されている、マクロブロックレベルでフィールド/フレーム適応型符号化処理について説明する。
現在のH.26Lにおいては、マクロブロックにおける動き予測・補償の単位として、図15に示すような7種類のモード(mode1乃至7)が定義されている。
非特許文献3においては、画像圧縮情報のマクロブロックに対応するシンタクスとして、図16に示すように、RunとMB_typeの間にFrame/Field Flagを持つことが提案されている。Frame/Field Flagの値が0である場合、当該マクロブロックはフレームベースの符号化が施されることを示し、Frame/Field Flagの値が1である場合、フィールドベースの符号化が施されることを示している。
Frame/Field Flagの値が1である場合(すなわち、フィールドベースの符号化が施される場合)、マクロブロック内の画素は、図17に示すように行単位で画素の並べ替えが行われる。
Frame/Field Flagの値が1である場合、マクロブロックにおける動き予測・補償の単位として、図15のmode3乃至7に相当する、図18に示す5種類のモード(mode1a乃至5a)が定義されている。
例えば、図18のmode2aにおいて、マクロブロックを4分割した8×8ブロック0乃至3のうち、ブロック0,1は同一のフィールドパリティに属し、また、ブロック2,3は同一のフィールドパリティに属する。また例えば、図18のmode3aにおいて、マクロブロックを8分割した4×8ブロック0乃至8のうち、ブロック0乃至3は同一のフィールドパリティに属し、また、ブロック4乃至7は同一のフィールドパリティに属する。
Frame/Field Flagの値が1である場合のイントラ予測モードについて説明する。例えば、図9に示した4×4ブロックに位置する画素a乃至pは、Frame/Field Flagの値が1である場合においても、隣接する4×4ブロックに位置する画素A乃至Iを用いてイントラ予測が行われるが、画素a乃至p、および画素A乃至Iが全て同一フィールドパリティに属していることが特徴である。
画素A乃至Iが、画素a乃至pと同一のマクロブロックに属している場合について、図19を参照して説明する。マクロブロックを16分割した4×4ブロック7に存在する画素a乃至pは、隣接するブロック2,3,6の端に存在する画素A乃至Iを用いてイントラ予測が行われる。
画素A乃至Iが、画素a乃至pとは異なるマクロブロックに属する場合について、図20を参照して説明する。
図20Aは、処理対象としているマクロブロックの左側のマクロブロックと、上側のマクロブロックに対するFrame/Field Flagの値がそれぞれ1である場合を示している。この場合、処理対象としているマクロブロックを16分割した4×4ブロックCに存在する画素のイントラ予測は、左側のマクロブロックを16分割したブ4×4ブロックAに存在する画素と、上側のマクロブロックを16分割した4×4ブロックBに存在する画素を用いて行われる。4×4ブロックC'に存在する画素のイントラ予測は、4×4ブロックA'に存在する画素と、4×4ブロックB'に存在する画素を用いて行われる。
図20Bは、処理対象としているマクロブロックに対するFrame/Field Flagの値が1であり、その左側および上側のマクロブロックに対するFrame/Field Flagの値がそれぞれ0である場合を示している。この場合、処理対象としているマクロブロックを16分割した4×4ブロックCに存在する画素のイントラ予測は、左側のマクロブロックを16分割した4×4ブロックAに存在する画素と、上側のマクロブロックを16分割した4×4ブロックBに存在する画素を用いて行われる。4×4ブロックC'に存在する画素のイントラ予測は、4×4ブロックA'に存在する画素と、4×4ブロックBに存在する画素を用いて行われる。
次に、色差信号のイントラ予測について、図21を参照して説明する。Frame/Field Flagの値が1である場合、色差信号のイントラ予測モードは1種類だけが定義されている。
図21において、A乃至Dは、それぞれ色差信号の4×4ブロックを示す。ブロックA,Bは、第1フィールドに属し、ブロックC,Dは、第2フィールドに属する。s0乃至s2は、ブロックA乃至Dに隣接するブロックのうち、第1フィールドパリティに属するブロックに存在する色差信号の合計値である。s3至s5は、ブロックA乃至Dに隣接するブロックのうち、第2フィールドパリティに属するブロックに存在する色差信号の合計値である。
ブロックA乃至Dにそれぞれ対応する予測値A乃至Dは、s0乃至s5が全て画枠内に存在する場合、次式(18)に従って予測される。
A=(s0+s2+4)/8
B=(s1+2)/4
C=(s3+s5+4)/8
D=(s4+2)/4
・・・(18)
ただし、s0乃至s5のうち、s0,s1,s3,s4だけが画枠内に存在する場合、ブロックA乃至Dにそれぞれ対応する予測値A乃至Dは、次式(19)に従って予測される。
A=(s0+2)/4
B=(s1+2)/4
C=(s3+2)/4
D=(s4+2)/4
・・・(19)
さらに、s0乃至s5のうち、s2s5だけが画枠内に存在する場合、ブロックA乃至Dにそれぞれ対応する予測値は、次式(20)に従って予測される。
A=(s2+2)/4
B=(s2+2)/4
C=(s5+2)/4
D=(s5+2)/4
・・・(20)
図22は、上述したようにイントラ予測された後の色差信号の残差成分を符号化する方法を示している。すなわち、それぞれの4×4ブロックに対して直交変換処理を施した後、第1フィールドおよび第2フィールドの直流成分を用いて図示するような2×2ブロックが生成され、再び直交変換処理が施される。
次に、Frame/Field Flagの値が1である場合の動き予測・補償処理について説明する。Frame/Field Flagの値が1である場合、動き予測補償モードとしては、インター16×16モード、インター8×16モード、インター8×8モード、インター4×8モード、インター4×4モードの6種類のモードが存在する。
例えば、インター16×16モードは、インター8×16モードにおける第1フィールドに対する動きベクトル情報、第2フィールドに対する動きベクトル情報、および参照フレームが同等であるモードである。
これら6種類の動き予測補償モードに対して、それぞれCode_Number0乃至5が割り当てられている。
現在のH.26Lにおいては、図23に示すような、複数の参照フレームを設けることができるマルチプルフレーム予測が規定されている。現在のフレームベースのH.26Lの規格において、参照フレームに関する情報は、マクロブロックレベルで定義されており、直前に符号化されたフレームに対し、Code_Number0が割り当てられており、その1乃至5回前に符号化されたフレームに対し、それぞれCode_Number1乃至5が割り当てられている。
これに対して、フィールドベース符号化を行う場合、直前に符号化されたフレームの第1フィールドに対してCode_Number0が割り当てられ、当該フレームの第2フィールドに対してCode_Number1が割り当てられる。その1回前に符号化されたフレームの第1フィールドに対してCode_Number2が割り当てられ、当該フレームの第2フィールドに対してCode_Number3が割り当てられる。さらに1回前に符号化されたフレームの第1フィールドに対してCode_Number4が割り当てられ、第2フィールドに対してCode_Number5が割り当てられる。
また、フィールドベース符号化が行われるマクロブロックに対しては、第1フィールドに対する参照フィールドと、第2フィールドに対する参照フィールドが別個に規定される。
次に、Frame/Field Flagの値が1である場合の動きベクトル情報予測方式について説明するが、その前に、現在のH.26Lにおいて規定されているメディアン予測について、図24を参照して説明する。図24に示す16×16マクロブロックEに対応する16×16、8×8、または4×4動きベクトル情報は、隣接するマクロブロックA乃至Cの動きベクトル情報のメディアンを用いて予測される。
ただし、マクロブロックA乃至Cのうち、画枠内に存在しないものについては、対応する動きベクトル情報の値は0であるとしてメディアンを算出する。例えば、マクロブロックD,B,Cが画枠内に存在しない場合、予測値としてマクロブロックAに対応する動きベクトル情報を用いる。また、マクロブロックCが画枠内に存在しない場合、その代わりにマクロブロックDの動きベクトル情報を用いてメディアンを算出する。
なお、マクロブロックA乃至Dの参照フレームは必ずしも同一でなくてもよい。
次に、マクロブロックのブロックサイズが、8×16、16×8、8×4、または4×8である場合について、図25を参照して説明する。なお、注目するマクロブロックEとこれに隣接するマクロブロックA乃至Dは、図24に示すように配置されているとする。
図25Aは、マクロブロックE1,E2のブロックサイズが8×16である場合を示している。左側のマクロブロックE1に関しては、左に隣接するマクロブロックAがマクロブロックE1と同じフレームを参照している場合、マクロブロックAの動きベクトル情報が予測値として用いられる。左に隣接するマクロブロックAがマクロブロックE1と異なるフレームを参照している場合、上述したメディアン予測が適用される。
右側のマクロブロックE2に関しては、右上に隣接するマクロブロックCがマクロブロックE2と同じフレームを参照している場合、マクロブロックCの動きベクトル情報が予測値として用いられる。右上に隣接するマクロブロックCがマクロブロックE2と異なるフレームを参照している場合、上述したメディアン予測が適用される。
図25Bは、マクロブロックE1,E2のブロックサイズが16×8である場合を示している。上側のマクロブロックE1に関しては、上に隣接するマクロブロックBがマクロブロックE1と同じフレームを参照している場合、マクロブロックBの動きベクトル情報が予測値として用いられる。上に隣接するマクロブロックBがマクロブロックE1と異なるフレームを参照している場合、上述したメディアン予測が適用される。
下側のマクロブロックE2に関しては、左に隣接するマクロブロックAがマクロブロックE2と同じフレームを参照している場合、マクロブロックAの動きベクトル情報が予測値として用いられる。左に隣接するマクロブロックAがマクロブロックE2と異なるフレームを参照している場合、上述したメディアン予測が適用される。
図25Cは、マクロブロックE1乃至E8のブロックサイズが8×4である場合を示している。左側のマクロブロックE1乃至E4に対しては、上述したメディアン予測が適用され、右側のマクロブロックE5乃至E8に対しては、左側のマクロブロックE1乃至E4の動きベクトル情報が予測値として用いられる。
図25Dは、マクロブロックE1乃至E8のブロックサイズが4×8である場合を示している。上側のマクロブロックE1乃至E4に対しては、上述したメディアン予測が適用され、下側のマクロブロックE5乃至E8に対しては、上側のマクロブロックE1乃至E4の動きベクトル情報が予測値として用いられる。
Frame/Field Flagの値が1である場合においても、動きベクトル情報の水平方向成分の予測に関しては、上述の方式に準ずる。しかしながら、垂直方向成分に関しては、フィールドベースのブロックとフレームベースのブロックが混在するため、以下のような処理を行う。なお、注目するマクロブロックEとこれに隣接するマクロブロックA乃至Dは、図24に示すように配置されているとする。
マクロブロックEをフレームベース符号化する場合であって、隣接するマクロブロックA乃至Dのいずれかがフィールドベース符号化されている場合、第1フィールドに対する動きベクトル情報の垂直方向成分と、第2フィールドに対する動きベクトル情報の垂直方向成分の平均値の2倍を算出し、これをフレームベースの動きベクトル情報に相当するものとして予測処理を行う。
マクロブロックEをフィールドベース符号化する場合であって、隣接するブロックA乃至Dのいずれかがフレームベース符号化されている場合、動きベクトル情報の垂直方向成分の値を2で割った商を、フィールドベースの動きベクトルに相当するものとして予測処理を行う。
以下、本発明を適用した画像情報符号化装置について、図26を参照して説明する。当該画像情報符号化装置は、入力となる画像情報が飛び越し走査フォーマットであった場合にも、CABAC方式を用いて符号化処理を施すことができるものである。
当該画像情報符号化装置において、A/D変換部51は、アナログ信号である入力画像信号をディジタル信号に変換して、画面並べ替えバッファ52に出力する。画面並べ替えバッファ52は、A/D変換部51からの入力画像情報を、当該画像情報符号化装置の出力となる画像圧縮情報のGOP構造に応じて並び替えて、加算器54に出力する。
フィールド/フレーム判定部53は、処理対象の画像のマクロブロックを、フィールドベースで符号化する場合と、フレームベースで符号化する場合との符号化効率が高い方を判定し、対応するFrame/Field Flagを生成して、フィールド/フレーム変換部55および算術符号化部58に出力する。
加算器54は、処理対象のマクロブロックがインター符号化される場合、フィールド/フレーム判定部53を介する入力画像と、動き予測・補償部64からの参照画像との差分画像を生成して、フィールド/フレーム変換部55および直交変換部56に出力する。また、加算器54は、処理対象のマクロブロックがイントラ符号化される場合、フィールド/フレーム判定部53を介する入力画像をそのまま、フィールド/フレーム変換部55および直交変換部56に出力する。
フィールド/フレーム変換部55は、処理対象のマクロブロックがフィールドベースで符号化される場合、加算器54からの入力画像をフィールド構造に変換して直交変換部56に出力する。直交変換部56は、入力される画像情報に対して直交変換(離散コサイン変換、またはカルーネン・レーベ変換等)を施し、得られる変換係数を量子化部57に供給する。量子化部57は、レート制御部65らの制御に従い、直交変換部56から供給された変換係数に対して量子化処理を施す。
算術符号化部58は、量子化部57および動き予測・補償部64から入力される各シンタクス要素、並びにフィールド/フレーム判定部53からのFrame/Field FlagをCABAC方式に基づいて算術符号化し、蓄積バッファ59に供給して蓄積させる。蓄積バッファ59は、蓄積した画像圧縮情報を後段に出力する。
逆量子化部60は、量子化された直交変換係数を逆量子化して、逆直交変換部61に出力する。逆直交変換部61は、逆量子化された変換係数に対して逆直交変換処理を施して復号画像情報を生成し、フレームメモリ62に供給して蓄積させる。フィールド/フレーム変換部63は、処理対象とするマクロブロックをフィールドベースで符号化する場合、フレームメモリ62に蓄積された復号画像情報をフィールド構造に変換して、動き予測・補償部64に出力する。
動き予測・補償部64は、動き予測処理により、最適な予測モード情報および動きベクトル情報を生成して算術符号化部58部に出力するとともに、予測画像を生成して加算器54に出力する。レート制御部65は、蓄積バッファ59に蓄積されたデータ量に基づき、量子化部57の動作のフィードバック制御を行う。制御部66は、記録媒体67に記録されている制御用プログラムに従い、当該画像情報符号化装置の各部を制御する。
次に、算術符号化部58の動作原理について、図27を参照して説明する。図27は、算術符号化部58の構成例を示している。算術符号化部58においては、入力される画像圧縮情報のシンタクス要素のうち、まず、図16に示したframe/field flagが、フレーム/フィールドフラグコンテクストモデル91によって符号化される。
そして、処理対象となるマクロブロックがフレームベース符号化される場合、現在H.26Lの標準で定められているフレームベースのコンテキストモデル92が適用される。なお、2値化されていない値を持つシンタクス要素に関しては、2値化部93によって2値化が施された後、算術符号化が行われる。
一方、処理対象となるマクロブロックがフィールド符号化される場合、以下のシンタクス要素に関しては、フィールドベースのコンテキストモデル94が適用される。なお、2値化されていない値を持つシンタクス要素に関しては、2値化部95によって2値化が施された後、算術符号化が行われる。すなわち、第1のシンタクス要素は、Iピクチャに対するMB_typeであり、第2のシンタクス要素はP/Bピクチャに対するMB_typeであり、第3のシンタクス要素は動きベクトル情報であり、第4のシンタクス要素は参照フィールドパラメータであり、第5のシンタクスはイントラ予測モードである。
以下、図6に示すようにマクロブロックA,B,Cが配置されているとする。frame/field flagに関するコンテキストモデルについて説明する。マクロブロックCのframe/field flagに関するコンテキストモデルctx_fifr_flag(C)は、次式(21)によって定義される。
ctx_fifr_flag(C)=a+2b
・・・(21)ただし、式(21)において、a,bは、それぞれマクロブロックA,Bのframe/field flagの値である。
次に、Iピクチャに対するMB_typeに関するコンテキストモデルについて説明する。frame/field flagが1である場合、Iピクチャに含まれるマクロブロックCのMB_typeに対応するコンテキストモデルctx_mb_type_intra_field(C)は、式(3)と同様に次式(22)によって定義される。
ctx_mb_type_intra_field(C)=A+B
・・・(22)ただし、式(22)におけるA,Bは、式(3)におけるものと同様である。なお、隣接するマクロブロックA,Bは、フィールドベース符号化されていても、フレームベース符号化されていてもかまわない。
次に、P/Bピクチャに対するMB_typeに関するコンテキストモデルについて説明する。マクロブロックCがPピクチャに含まれる場合、マクロブロックCのMB_typeに対応するコンテキストモデルctx_mb_type_inter_field(C)は、次式(23)によって定義される。また、Bピクチャに含まれる場合、次式(24)によって定義される。
ctx_mb_type_inter_field(C)=((A==skip)?0:1)+2((B==skip)?0:1)
・・・(23)
ctx_mb_type_inter_field(C)=((A==Direct)?0:1)+2((B==Direct)?0:1)
・・・(24)
ただし、式(23)における演算子((A==skip)?0:1),((A==skip)?0:1)は、式(4)におけるものと同様であり、式(24)における演算子((A==Direct)?0:1),((B==Direct)?0:1)は、式(5)におけるものと同様である。隣接するマクロブロックA,Bは、フィールドベース符号化されていても、フレームベース符号化されていてもかまわない。
なお、2値化されていないPピクチャのMB_typeは、図28Aに示すテーブルによって2値化される。また、2値化されていないBピクチャのMB_typeは、図28Bに示すテーブルによって2値化される。
適応2値算術符号化部96では、2値化されたシンボルに対して、確率推定部97によって確率推定がなされ、符号化エンジン98によって確率推定に基づく適応算術符号化が施される。適応算術符号化処理が行われた後、関連するモデルの更新が行われるため、それぞれのモデルは実際の画像圧縮情報の統計に応じた符号化処理を行うことが可能となる。
フレームベース符号化されるマクロブロックに対しては、Pピクチャに属する場合、10種類のMB_typeが定義されている。一方、フィールドベース符号化されるマクロブロックに対しては、Pピクチャに属する場合、前記16種類のうち、16×16モード、および8×16モードが定義されていない。すなわち、フィールドベース符号化されるマクロブロックに対しては、Pピクチャに関して8種類のMB_typeが定義されている。
フレームベース符号化されるマクロブロックに対しては、Bピクチャに関して18種類のMB_typeが定義されている。一方、フィールドベース符号化されるマクロブロックに対しては、Bピクチャに属する場合、前記18種類のうち、前方向16×16モード、後方向16×16モード、前方向8×16モード、および後方向8×16モードが定義されていない。すなわち、フィールドベース符号化されるマクロブロックに対しては、Bピクチャに関して14種類のMB_typeが定義されている。
次に、動きベクトル情報のコンテキストモデルについて説明する。frame/field flagの値が1である場合、マクロブロックCの動きベクトル情報に対応する第1乃至3のコンテキストモデルctx_mvd_field(C,k)は、次式(25−1)乃至(25−3)によって定義される。
ctx_mvd_field (C,k)=0
ek(C)<3
・・・(25−1)
ctx_mvd_field (C,k)=1
32<ek(C)
・・・(25−2)
ctx_mvd_field (C,k)=2
3≦ek(C)≦32
・・・(25−3)ただし、式(25−1)乃至(25−3)における評価関数ekは次式(26)のように定義されている。マクロブロックA,Bは同じパリティフィールドにある。
ek(C)=|mvdk(A)|+|mvdk(B)|
・・・(26)
ここで、マクロブロックAがフレームベース符号化されたものである場合、垂直方向成分の動きベクトル情報mvd1(A)に関しては、次式(27)を用いて算出したmvd1_field(A)を式(26)に適用する。また、マクロブロックBがフレームベース符号化されたものである場合においても同様である。
mvd1_field(A)=mvd1_frame(A)/2
・・・(27)
反対に、マクロブロックCをフレームベース符号化する場合であって、隣接ブロックAがフィールドベース符号化されたものである場合、mvdk(A)の水平方向成分、垂直方向成分は、それぞれ次式(28−1),(28−2)を用いて算出したmvdk_frame(A)を式(26)に適用する。
mvd0_frame(A)
=(mvd0_top(A)+mvd0_bottom(A))/2・・・(28−1)
mvd1_frame(A)
=mvd1_top(A)+mvd1_bottom(A)
・・・(28−2)
次に、参照フィールドパラメータに関するコンテキストモデルについて説明する。frame/field flagの値が1である場合、第1フィールドに対応する第1のコンテキストモデルctx_ref_field_top(C)は、次式(29−1)によって定義される。また、第2フィールドに対応する第1のコンテキストモデルctx_ref_field_bot(C)は、次式(29−2)によって定義される。
ctx_ref_field_top(C)=at+2bt
・・・(29−1)
ctx_ref_field_bot(C)=ab+2bb
・・・(29−2)
ただし、式(29−1),(29−2)において、パラメータatは、隣接するマクロブロックAの第1フィールドに関するものであり、パラメータabは、隣接するマクロブロックAの第2フィールドに関するものであり、パラメータbtは、隣接するマクロブロックBの第1フィールドに関するものであり、パラメータbbは、隣接するマクロブロックBの第2フィールドに関するものであり、次式(30−1),(30−2)のように定義されている。
at,ab,bt,bb
=0
参照フィールドが最も直前に符号化されたものである場合
・・・(30−1)
at,ab,bt,bb
=1
上記以外の場合
・・・(30−2)
第2以降のbinに対応するコンテキストモデルに関しては、それぞれ、式(8)に示したコンテキストモデルctx_ref_frame(C)と同様に定義される。ただし、符号化されるCode_numberは、フレームに対するものではなく、フィールドに対して割り当てられたものである。
次に、イントラ予測モードに関するコンテキストモデルについて説明する。frame/field flagの値が1である場合、マクロブロックCに対応するイントラ予測モードに関するコンテキストモデルctx_intra_pred_field(C)は、フレームモードのマクロブロックに対するコンテキストモデルctx_intra_pred(C)と同様に定義される。なお、隣接するマクロブロックA,Bは、フィールドベース符号化されていても、フレームベース符号化されていてもかまわない。
以上説明したように、新たなコンテキストモデルを導入し、既存のコンテキストモデルを変更することにより、CABAC方式を用いたフィールド/フレーム符号化を行うことが可能となる。
次に、図29は、図26の画像情報符号化装置に対応する画像情報復号装置の構成例を示している。
当該画像情報復号装置において、蓄積バッファ101は、入力される画像圧縮情報を蓄積し、適宜、算術復号化部102に出力する。算術復号化部102は、CABAC方式に基づいて符号化されている画像圧縮情報に算術復号化処理を施し、復号したframe/field flagをフィールド/フレーム変換部105,110に出力し、量子化されている直交変換係数を逆量子化部103に出力し、予測モード情報および動きベクトル情報を動き予測・補償部111に出力する。
逆量子化部103は、算術復号化部102によって復号された、量子化されている直交変換係数を逆量子化する。逆直交変換部104は、逆量子化された直交変換係数を逆直交変換する。フィールド/フレーム変換部105は、処理対象のマクロブロックがフィールドベースで符号化されている場合、逆直交変換の結果得られた出力画像または差分画像をフレーム構造に変換する。
加算器106は、処理対象のマクロブロックがインターマクロブロックであった場合、逆直交変換部104からの差分画像と、動き予測・補償部111からの参照画像を合成して出力画像を生成する。画面並べ替えバッファ107は、入力された画像圧縮情報のGOP構造に応じて、出力画像を並べ替えてD/A変換部108に出力する。D/A変換部108は、ディジタル信号である出力画像をアナログ信号に変換して後段に出力する。
フレームメモリ109は、加算器106が生成した、参照画像の元となる画像情報を格納する。フィールド/フレーム変換部110は、処理対象のマクロブロックがフィールドベースで符号化されている場合、フレームメモリ111に格納されている画像情報をフィールド構造に変換する。動き予測・補償部111は、画像圧縮情報に含まれる、マクロブロックごとの予測モード情報および動きベクトル情報に基づき、フレームメモリに格納された画像情報を元にいて参照画像を生成し、加算部106に出力する。
以上説明したように構成される画像情報復号装置によれば、図26の画像情報符号化装置が出力する画像圧縮情報を復号し、元の画像情報を得ることができる。
上述した一連の処理は、ハードウェアにより実行させることもできるが、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、例えば図26の記録媒体67からインストールされる。
この記録媒体67は、コンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disc-Read Only Memory)、DVD(Digital Versatile Disc)を含む)、光磁気ディスク(MD(Mini Disc)を含む)、もしくは半導体メモリなどよりなるパッケージメディアにより構成されるだけでなく、コンピュータに予め組み込まれた状態でユーザに提供される、プログラムが記録されているROMやハードディスクなどで構成される。
なお、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に従って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。