(57)【特許請求の範囲】
【請求項１】
入力された画像データを符号化する符号化装置において、
入力された前記画像データをDCT（Discrete Cosine Transform）変換して、DCT係数を出力するDCT変換手段と、
少なくとも量子化タイプと量子化行列に基づいて前記DCT係数を量子化して、量子化された前記DCT係数である第１の値を出力する量子化手段と、
前記第１の値を逆量子化して、逆量子化により得られたDCT係数である第２の値を出力する逆量子化手段と、
少なくとも前記量子化タイプに基づいて、IDCTミスマッチ制御の方法を設定し、その方法で前記第２の値にIDCT（Inverse DCT）ミスマッチ制御を施すミスマッチ制御手段と、
前記IDCTミスマッチ制御が施された前記第２の値をIDCT変換して、前記画像データを復元するIDCT変換手段と、
前記量子化タイプを表す情報、前記量子化行列を表す情報、前記IDCTミスマッチ制御の方法を表す情報、および前記第１の値を符号化する符号化手段と、
復元された前記画像データを基に、前記画像データの動き補償を行う動き補償手段と、
前記動き補償手段から出力された結果と、前記画像データの差分を計算する差分手段と
を備え、
前記ミスマッチ制御手段は、少なくとも前記量子化タイプに基づいて、前記第２の値のブロック毎の総和が偶数である場合、前記第２の値の（７，７）係数をトグル（toggle）する方法、または、前記DCT係数を奇数化する方法のいずれか一方を、前記IDCTミスマッチ制御の方法として設定する
ことを特徴とする符号化装置。
【請求項２】
入力された画像データを符号化する符号化方法において、
入力された前記画像データをDCT（Discrete Cosine Transform）変換して、DCT係数を出力し、
少なくとも量子化タイプと量子化行列に基づいて前記DCT係数を量子化して、量子化された前記DCT係数である第１の値を出力し、
前記第１の値を逆量子化して、逆量子化により得られたDCT係数である第２の値を出力し、
少なくとも前記量子化タイプに基づいて、IDCTミスマッチ制御の方法を設定し、その方法で前記第２の値にIDCT（Inverse DCT）ミスマッチ制御を施し、
前記IDCTミスマッチ制御が施された前記第２の値をIDCT変換して、前記画像データを復元し、
前記量子化タイプを表す情報、前記量子化行列を表す情報、前記IDCTミスマッチ制御の方法を表す情報、および前記第１の値を符号化し、
復元された前記画像データを基に、前記画像データの動き補償を行い、
前記動き補償の結果と、前記画像データの差分を計算し、
前記IDCTミスマッチ制御を施す際、少なくとも前記量子化タイプに基づいて、前記第２の値のブロック毎の総和が偶数である場合、前記第２の値の（７，７）係数をトグル（toggle）する方法、または、前記DCT係数を奇数化する方法のいずれか一方を、前記IDCTミスマッチ制御の方法として設定する
ことを特徴とする符号化方法。
【請求項３】
符号化装置により符号化されている、前記符号化装置で設定された、少なくとも量子化タイプを表す情報、量子化行列を表す情報、および前記量子化タイプに基づくIDCT（Inverse Discrete Cosine Transform）ミスマッチ制御の方法を表す情報を含む画像データを復号する復号装置において、
符号化されている前記画像データを復号して、復号により得られた量子化されているDCT（Discrete Cosine Transform）係数である所定の値、前記量子化タイプを表す情報、前記量子化行列を表す情報、および前記IDCTミスマッチ制御の方法を表す情報を出力する復号手段と、
少なくとも前記量子化タイプを表す情報と前記量子化行列を表す情報に基づき、前記値を逆量子化して、前記DCT係数を出力する逆量子化手段と、
少なくとも前記IDCTミスマッチ制御の方法を表す情報に基づき、前記DCT係数にIDCTミスマッチ制御を施すミスマッチ制御手段と、
前記IDCTミスマッチ制御が施された前記DCT係数をIDCT変換して、復号されたデータを生成するIDCT変換手段と
を備え、
前記ミスマッチ制御手段は、少なくとも前記IDCTミスマッチ制御の方法を表す情報に基づき、前記DCT係数のブロック毎の総和が偶数である場合、前記DCT係数の（７，７）係数をトグル（toggle）するか、または、前記DCT係数を奇数化する
ことを特徴とする復号装置。
【請求項４】
符号化装置により符号化されている、前記符号化装置で設定された、少なくとも量子化タイプを表す情報、量子化行列を表す情報、および前記量子化タイプに基づくIDCT（Inverse Discrete Cosine Transform）ミスマッチ制御の方法を表す情報を含む画像データを復号する復号方法において、
符号化されている前記画像データを復号して、復号により得られた量子化されているDCT（Discrete Cosine Transform）係数である所定の値、前記量子化タイプを表す情報、前記量子化行列を表す情報、および前記IDCTミスマッチ制御の方法を表す情報を出力し、
少なくとも前記量子化タイプを表す情報と前記量子化行列を表す情報に基づき、前記値を逆量子化して、前記DCT係数を出力し、
少なくとも前記IDCTミスマッチ制御の方法を表す情報に基づき、前記DCT係数にIDCTミスマッチ制御を施し、
前記IDCTミスマッチ制御が施された前記DCT係数をIDCT変換して、復号されたデータを生成し、
前記IDCTミスマッチ制御を施す際、少なくとも前記IDCTミスマッチ制御の方法を表す情報に基づき、前記DCT係数のブロック毎の総和が偶数である場合、前記DCT係数の（７，７）係数をトグル（toggle）するか、または、前記DCT係数を奇数化する
ことを特徴とする復号方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、符号化装置および方法、並びに復号装置および方法に関し、例えば、複数の量子化および逆量子化の方法、量子化行列の利用方法、ＩＤＣＴミスマッチの対策方法等を用意し、最適な方法を組み合わせることにより、高能率の符号化および復号を行うようにした符号化装置および方法、並びに復号装置および方法に関する。
【０００２】
【従来の技術】
例えば、テレビ会議システム、テレビ電話システムなどのように、動画像信号を遠隔地に伝送するシステムにおいては、伝送路を効率良く利用するため、映像信号のライン相関やフレーム間相関を利用して、画像信号を圧縮符号化するようになされている。
【０００３】
動画像の高能率符号化方法の代表的なものとして、ＭＰＥＧ（蓄積用動画像符号化）方式がある。これには、ISO/IEC JTC1/SC29/WG11にて議論され標準案として提案されたＭＰＥＧ１、ＭＰＥＧ２、現在議論されているＭＰＥＧ４等があり、主に動き補償予測符号化とＤＣＴ（Discrete Cosine Transform）符号化を組み合わせたハイブリッド方式が採用されている。
【０００４】
以下では、ＭＰＥＧ４のＶＭ６．０（ISO/IEC JTC1/SC29/WG11 MPEG96/N1582 Sevilla, February 1996）を例にし、説明を行なう。
【０００５】
図１３、図１４を用いて従来の動画像符号化方法、および復号方法について説明する。図１３は符号化器を、図１４は復号器の構成例を示している。動きベクトル検出器１０１は、フレームメモリ１０２に保存された入力画像から、動きベクトルｖを検出する。動きベクトルの検出法としては、通常、１６画素×１６画素のブロック単位でのブロックマッチングが行われる。また、より高い精度を実現するために、半画素単位のマッチングが行われる。
【０００６】
動き補償器１０３は図示せぬフレームメモリを備え、現在、符号化すべき画像の各位置の画素値を、すでに符号化／復号が終了し、このフレームメモリに保存されている画像から予測する。時刻ｔに入力された画像上の位置（ｉ，ｊ）における画素値Ｉ［ｉ，ｊ，ｔ］の予測値Ｉ2［ｉ，ｊ，ｔ］は、この位置に対応する動きベクトルをｖ＝（ｖｘ（ｉ，ｊ，ｔ），ｖｙ（ｉ，ｊ，ｔ））を用いて、次式のように決定される。
【０００７】
Ｉ2［ｉ，ｊ，ｔ］＝
（Ｉ［ｉ2，ｊ2，ｔ−Ｔ］＋Ｉ［ｉ2＋１，ｊ2，ｔ−Ｔ］＋Ｉ［ｉ2，ｊ2＋１，ｔ−Ｔ］＋Ｉ［ｉ2＋１，ｊ2＋１，ｔ−Ｔ］）／４
ｉ2＝ｉｎｔ（ｉ＋ｖｘ（ｉ，ｊ，ｔ）Ｔ）
ｊ2＝ｉｎｔ（ｊ＋ｖｙ（ｉ，ｊ，ｔ）Ｔ）
・・・（式１）
【０００８】
ここで、Ｔは、現在予測を行っている画像Iが入力された時刻と、フレームメモリ上にある画像が入力された時刻の差であり、式（１）の右辺のＩ［ｉ2，ｊ2，ｔ−Ｔ］，Ｉ［ｉ2＋１，ｊ2，ｔ−Ｔ］，Ｉ［ｉ2，ｊ2＋１，ｔ−Ｔ］，Ｉ［ｉ2＋１，ｊ2＋１，ｔ−Ｔ］は、図示せぬフレームメモリ上の画素値を表わす。また、ｉｎｔ（ｘ）はｘを越えない最大の整数値を表している。
【０００９】
加算器１０４は、現在符号化すべき画素の値と、動き補償器１０３によって算出された予測値との差分を計算する。ＤＣＴ（Descrete Cosine Transform）器１０５は、差分値で構成された８画素×８画素のブロックに対して２次元ＤＣＴを施す。
【００１０】
次に、ＤＣＴ器１０５によって得られたＤＣＴ係数ｃに対して、適当なステップサイズＱを用いて式（２）に象徴される量子化処理を行う。
【００１１】
Ｃ2＝ｉｎｔ（Ｃ／Ｑ）  ・・・（式２）
【００１２】
この量子化を行う処理方法は実際には二通り用意されており、フラグQ_modeと連動したスイッチＳＷ１，ＳＷ２によって切り替えられる。フラグQ_modeは、量子化等を行う際の処理方法の組み合わせを示しており、Ｈ．２６１あるいはＨ．２６３（以下、Ｈ．２６１／３と示す）のモード、ＭＰＥＧ１あるいはＭＰＥＧ２（以下、ＭＰＥＧ１／２と示す）のモードのいずれかが、何らかの方法によってあらかじめ設定されている。Ｈ．２６１／３モードにおいては量子化器１２１でＨ．２６１／３型の量子化が行われる。ＭＰＥＧ１／２モードにおいては、ＭＰＥＧ１／２型の量子化行列がＭＰＥＧ１／２型のＱ行列の設定器（以下では、適宜、設定器と略記する）１３２で設定された後、量子化器１２２でＭＰＥＧ１／２型の量子化が行われる。それぞれの量子化の処理方法および量子化行列の詳細については、後述する。
【００１３】
量子化の施されたＤＣＴ係数は、可変長符号化器１０９、および逆量子化器１２３または逆量子化器１２４に供給される。逆量子化器１２３，１２４でも、量子化器で用いられたのと同じステップサイズにより、次式（３）に象徴される逆量子化処理が行われる。
【００１４】
Ｃ3＝Ｃ2×Ｑ    ・・・（式３）
【００１５】
この逆量子化を行う処理方法も実際には二通り用意されており、フラグQ_modeと連動したスイッチＳＷ３，ＳＷ４によって切り替えられる。Ｈ．２６１／３モードにおいては、逆量子化器１２３でＨ．２６１／３型の逆量子化が行われ、ミスマッチ制御器１４１でＤＣＴ係数を奇数化するミスマッチ制御が行われた後、クリッピング器１４３によってＤＣＴ係数がクリッピングされる。ＭＰＥＧ１／２モードにおいては、１２４の逆量子化器でＭＰＥＧ１／２型の逆量子化が行われた後、クリッピング器１４３によってＤＣＴ係数がクリッピングされる。それぞれの逆量子化の処理方法およびミスマッチの制御方法の詳細については、後述する。
【００１６】
逆量子化されクリッピングが施されたデータは、ＩＤＣＴ（Inverse DCT）器１０６によって逆ＤＣＴが行われ、画素値の差分値が復元される。
【００１７】
この差分値は、加算器１１０によって動き補償器１０３から出力される予測値と加算されて画素値のデータとなり、動き補償器１０３に送られて動き補償器１０３が備える図示せぬフレームメモリに保存される。
【００１８】
可変長符号化器１０９は、量子化器１２１あるいは量子化器１２２によって得られた量子化されたＤＣＴ係数、動きベクトル検出器１０１によって得られた動きベクトルｖ、および何らかの方法によって設定されたフラグQ_modeに対して可変長符号化処理を施し、符号化ビット列を出力する。
【００１９】
一方、図１４に示した復号器においては、はじめに逆可変長符号化器２０９によって符号化器（図１３）における可変長符号化器１０９の逆処理が施され、符号化ビット列から、量子化が施されたＤＣＴ係数、動きベクトルｖ、およびフラグQ_modeを復元する。フラグQ_modeは連動したスイッチＳＷ１１，ＳＷ１２を作動させ、得られたＤＣＴ係数は逆量子化器２２３，または設定器２３２を介して逆量子化器２２４に、動きベクトルｖは動き補償器２０３にそれぞれ供給される。
【００２０】
逆量子化を行う処理方法も実際には二通り用意されており、フラグQ_modeと連動したスイッチＳＷ１１，ＳＷ１２によって切り替えられる。Ｈ．２６１／３モードにおいては量子化器２２３でＨ．２６１／３型の逆量子化が行われ、ミスマッチ制御器２４１でＤＣＴ係数を奇数化するミスマッチ制御が行われた後、クリッピング器２４３によってＤＣＴ係数がクリッピングされる。ＭＰＥＧ１／２モードにおいては、ＭＰＥＧ１／２型の量子化行列が設定器２３２で設定された後、逆量子化器２２４でＭＰＥＧ１／２型の逆量子化が行われ、クリッピング器２４４によってＤＣＴ係数がクリッピングされる。なお、双方のモードで用いられる処理器群は、図１３に示した符号化器のものと同一のものを用いることができる。
【００２１】
また、ＩＤＣＴ器２０６も図１３に示した符号化器のＩＤＣＴ器１０６と同一のものであり、ＩＤＣＴが施されて画素値の差分値が復元される。
【００２２】
この差分値は、加算器２１０によって、動き補償器２０３によってすでに生成されている予測値と加算されて画素値のデータとなり、図１３に示した符号化器への入力画像に対応する画像が再構成される。復号された画像の各画素値は、予測画像を生成するために、動き補償器２０３に備えられた図示せぬフレームメモリに保存される。
【００２３】
動き補償器２０３は、図１３に示した符号化器の動き補償器１０３と同一のものであり、逆可変長符号化器２０９によって得られた動きベクトルｖ、およびすでにこの動き補償器２０３が備える図示せぬフレームメモリに保存されている画像を用いて、現在復号すべき画像の各画素値の予測を行う。
【００２４】
通常は、上記予測値との差分を符号化する画像間符号化（INTER coding）を行なう。しかし、現在符号化すべき画素の値と動き補償器１０３によって算出された予測値との差分が大きい場合、符号化ビット量が多くなることを防ぐために、以下に示す画像内符号化（INTRA coding）を行なう場合もある。すなわち、ブロック内の各画素値について、差分をとらずにそのままＤＣＴ器１０５に送り、その画素値に対して符号化を行なう。
【００２５】
以下では、量子化器として用意されている二通りの量子化および逆量子化の処理方法について説明する。
【００２６】
Ｈ．２６１／３型の量子化は、例えば図１５に示したように、量子化後に０となる範囲が量子化幅に比べて広く設けられているような量子化である（dead zoneの有る量子化）。ＶＭ６．０では次式（４）のように行われ、ＣＯＦはＤＣＴ係数、ＬＥＶＥＬは量子化後のＤＣＴ係数の絶対値、ＱＰは量子化ステップサイズ、ＱＣＯＦは量子化後のＤＣＴ係数を表わす。
【００２７】
Ｆｏｒ  ＩＮＴＲＡ：ＬＥＶＥＬ＝｜ＣＯＦ｜／（２×ＱＰ）
Ｆｏｒ  ＩＮＴＥＲ：ＬＥＶＥＬ＝（｜ＣＯＦ｜−ＱＰ／２）／（２×ＱＰ）
ＱＣＯＦ＝ｓｉｇｎ（ＣＯＦ）×ＬＥＶＥＬ・・・（式４）
【００２８】
Ｈ．２６１／３型の逆量子化は、次式（５）のように行われる。ＣＯＦ2は逆量子化後のＤＣＴ係数を表わす。
【００２９】
ｉｆ  ＬＥＶＥＬ＝０：｜ＣＯＦ2｜＝０
ｉｆ  ＬＥＶＥＬ≠０：｜ＣＯＦ2｜＝２×ＱＰ×ＬＥＶＥＬ＋ＱＰ
ＣＯＦ2＝ｓｉｇｎ（ＣＯＦ）×｜ＣＯＦ2｜・・・（式５）
【００３０】
ＭＰＥＧ１／２型の量子化は、例えば図１６に示したように、量子化後に０となる範囲が量子化幅と同一であるような量子化である（dead zoneの無い量子化）。ＶＭ６．０では次式（６）のように行われ、定数ｑ，ｐは現時点でｐ＝３，ｑ＝４となっている。
【００３１】
Ｆｏｒ  ＩＮＴＲＡ：ＱＣＯＦ＝（ＣＯＦ＋ｓｉｇｎ（ＣＯＦ）×（（ｐ×ＱＰ）／／ｑ）／（２×ＱＰ）
Ｆｏｒ  ＩＮＴＥＲ：ＱＣＯＦ＝ＣＯＦ／（２×ＱＰ）・・・（式６）
【００３２】
ＭＰＥＧ１／２型の量子化は、次式（７）のように行われる。ＣＯＦ2は逆量子化後のＤＣＴ係数を表わす。
【００３３】
Ｆｏｒ  ＩＮＴＲＡ：ＣＯＦ2＝｜ＱＣＯＦ｜×２×ＱＰ
Ｆｏｒ  ＩＮＴＥＲ：ＣＯＦ2＝（｜ＱＣＯＦ｜×２＋ｓｉｇｎ（ＱＣＯＦ））×ＱＰ・・・（式７）
【００３４】
但し、Ｈ．２６１／３型の量子化におけるINTRAの直流成分と、ＭＰＥＧ１／２型の量子化における直流成分については、次式のように量子化される。dcは直流成分のＤＣＴ係数、ＱＤＣはその量子化後の値を示す。
【００３５】
ＱＤＣ＝ｄｃ／／８    ・・・（式８）
【００３６】
この逆量子化は次式のように行われ、ｄｃ2は逆量子化後の直流成分のＤＣＴ係数を表わす。
【００３７】
ｄｃ2＝ＱＤＣ×８    ・・・（式９）
【００３８】
ＤＣＴ係数の量子化を行う際、例えば低周波成分に比べると重要な情報を持たないと見られる高周波成分をより多く無為化するために、量子化行列を設定して各係数の重みを調整することができる。この量子化行列は、例えば図１７に示すような縦横８要素の行列であり、図１７（Ａ）に示した画像内符号化と図１７（Ｂ）に示した画像間符号化とでは異なる行列が設定されるのが普通である。量子化行列を用いる場合、ＶＭ６．０では次式（１０）のようにＤＣＴ係数が処理される。ＣＯＦ［ｉ］［ｊ］はＤＣＴ係数のｉ行ｊ列番目の成分、ｗ［ｉ］［ｊ］は量子化行列のｉ行ｊ列番目の重み係数、ＣＯＦ2［ｉ］［ｊ］は量子化行列による重み調整を行った後のｉ行ｊ列番目のＤＣＴ係数を表わす。
【００３９】
ＣＯＦ［ｉ］［ｊ］＝（１６×ＣＯＦ［ｉ］［ｊ］）／／ｗ［ｉ］［ｊ］
・・・（式１０）
【００４０】
量子化行列を用いた場合には、逆量子化後の係数を例えば次式（１１）のように再調整する必要がある。ＣＯＦ3［ｉ］［ｊ］は再調整後のｉ行ｊ列番目のＤＣＴ係数を表わす。
【００４１】
ＣＯＦ3［ｉ］［ｊ］＝ＣＯＦ2［ｉ］［ｊ］×ｗ［ｉ］［ｊ］／１６・・・（式１１）
【００４２】
エンコーダ側とデコーダ側とでＩＤＣＴ器の精度や丸めの方法が異なる場合、符号化を行うにつれて不整合（ミスマッチ）が生じ、次第にその誤差が視覚的に感知されるようになる。この問題を防ぐために、ＩＤＣＴを行う前にミスマッチ対策が行われ、その対策方法として以下に示す二通りの処理方法がよく用いられている。一方はＤＣＴ係数を奇数化することによるミスマッチ対策で、例えば次式（１２）のように行われる。ＣＯＦmはミスマッチ対策後のＤＣＴ係数を表わす。
【００４３】
ｉｆ  ＣＯＦ2  ｉｓ  ｏｄｄ：｜ＣＯＦm｜＝｜ＣＯＦ2｜
ｉｆ  ＣＯＦ2  ｉｓ  ｅｖｅｎ：｜ＣＯＦm｜＝｜ＣＯＦ2｜−１
ＣＯＦm＝ｓｉｇｎ（ＣＯＦ2）×｜ＣＯＦm｜  ・・・（式１２）
【００４４】
他方はＤＣＴ係数の最も高周波成分を操作するミスマッチ対策で、ＤＣＴ係数の奇数化によるミスマッチ対策よりも効率が良く、画質の劣化も少ない。縦横８要素のＤＣＴ係数のブロックについては、ＤＣＴ係数の７行７列番目の成分、つまり（７，７）要素を次式のようにtoggleする。ｓｕｍはＤＣＴ係数の和、ＣＯＦm［７］［７］はミスマッチ対策後のＤＣＴ係数の（７，７）要素を表わす。
【００４５】
【数１】
0004001969.tif 000002
【００４６】
なお、逆量子化された係数はＩＤＣＴの前でクリッピングされ、ＶＭ６．０ではその制限される範囲は［−２０４８：２０４７］である。
【００４７】
次に、従来例におけるシンタックスを説明する。以下ＭＰＥＧ４ ＶＭ（Verification Model）を例にし、説明する。
【００４８】
図１８に符号化ビット列の構成を示す。ＶＳ（Video Session Class）は一つ又は複数のＶＯ（Video Object Class）から構成される、符号化ビット列の集合である。ＶＳのシンタックスを図１９に示す。
【００４９】
図２０にＶＯ（Video Object Class）のシンタックスを示す。ＶＯは画像全体または画像中の一部の物体の符号化ビット列である。
【００５０】
ＶＯＬ（Video Object Layer Class）はスケーラビリティのためのクラスである。ＶＯＬのシンタックスを図２１、図２２に示す。ＶＯＬはvideo_object_layer_idに示される番号によって識別される。例えば、video_object_layer_id=0であるＶＯＬ０は下位レイヤであり、例えばvideo_object_layer_id=1である。ＶＯＬ１は上位レイヤである。スケーラブルのレイヤの数は任意で良い。
【００５１】
また、video_object_layer_quant_typeは、量子化等を行なう際に用いる処理方法の組合せのモードを示すフラグである。
【００５２】
図２３乃至図２６にＶＯＰ（Video Object Plane Class）のシンタックスを示す。VOP_widthおよびVOP_heightはそのＶＯＰの大きさを示すフラグである。
【００５３】
図２７はＩおよびＰピクチャ（ＶＯＰ）におけるマクロブロック（MacroblockLayer）のシンタックスを示している。ＣＯＤはこれ以後そのマクロブロックのデータが存在するかどうかを示すフラグである。ＣＯＤ＝１の場合、これ以後、そのマクロブロックのデータが存在しないことを示す（即ちスキップマクロブロック）。ＣＯＤ＝０の場合、さらにフラグが伝送される。ＭＣＢＰＣはそのマクロブロックのタイプを示すフラグで、これに従って所定のフラグおよびデータが伝送される。
【００５４】
図２８はＢピクチャ（ＶＯＰ）におけるマクロブロック（Macroblock Layer）のシンタックスを示している。もし、最も最近に復号されたＩまたはＰＶＯＰの対応するマクロブロックがスキップマクロブロックであった場合（ＣＯＤ＝１）、ＢＶＯＰにおけるそのマクロブロックもスキップマクロブロックとなる。ＭＯＤＢはＢＶＯＰにおいてマクロブロックのタイプを示すフラグである。ＭＯＤＢの可変長符号を図２９に示す。ＭＯＤＢ＝０の場合、それ以上マクロブロックのデータが存在しないことを示す。ＭＯＤＢ＝１０の場合、ＣＢＰＢは伝送されず、ＭＢＴＹＰＥが伝送される。ＭＯＤＢ＝１１の場合、ＣＢＰＢおよびＭＢＴＹＰＥが伝送される。
【００５５】
ＣＢＰＢは６ビットのフラグでマクロブロック中の各ブロックにＤＣＴ係数が存在するかどうかを示すフラグである。ＣＢＰＢが伝送されない場合、ＣＢＰＢは０であると解釈され、そのマクロブロックではＤＣＴ係数は伝送されない。ＭＢＴＹＰＥはＢピクチャにおける各マクロブロックの予測モードを示すフラグで、これに従って所定のフラグおよびデータが伝送される。
【００５６】
量子化等を中心として、従来例における処理の流れを詳しく説明するため、図３０、図３１に、従来例における処理の流れと符号化ビット列の生成法および解読法の一例を示す。図３０に示したフローチャートは、エンコーダの量子化およびミスマッチ制御部分を示し、図３１に示したフローチャートは、デコーダのミスマッチ制御および逆量子化部分を示している。
【００５７】
図３０のフローチャートを参照して、エンコーダの量子化およびミスマッチ制御部分における処理の流れと符号化ビット列の生成法を説明する。まず、ステップＳ１において、何らかの評価基準を用いて、Ｈ．２６１／３，ＭＰＥＧ１／２のどちらのモードで量子化等を行なうかを決める。あるいはエンコードする際に、あらかじめどのモードの量子化等を行なうかの指定がなされていても良い。次に、ＤＣＴ演算を行なって求めた縦横８要素のＤＣＴ係数の各ブロックに対して、各モードに応じて以下のように量子化行列の利用方法を設定し、量子化および逆量子化の方法を選択し、ＩＤＣＴミスマッチの対策方法を選択する。
【００５８】
Ｈ．２６１／３モードの場合は、ステップＳ２において、量子化器１２１により、縦横８要素のＤＣＴ係数の各ブロックに対してＨ．２６１／３型の量子化が行われ、逆量子化器１２３により、逆量子化が行われる。その後、ステップＳ３に進み、ミスマッチ制御器１４１により、ＤＣＴ係数を奇数化するミスマッチ制御が行われ、ステップＳ４において、クリッピング器１４３によりＤＣＴ係数のクリッピングが行われる。このモードの場合には、量子化行列は利用しないため、量子化行列は設定されずに量子化および逆量子化が行なわれる。このモードが選ばれた場合には、ステップＳ５において、Video Object Layer Classのvideo_object_layer_quant_typeのフラグは"0"に設定され、符号化される。
【００５９】
一方、ＭＰＥＧ１／２モードの場合は、ステップＳ６に進み、設定器１３２により、縦横８要素のＤＣＴ係数の各ブロックに対してまずＭＰＥＧ１／２型の量子化行列が設定される。ここで設定される量子化行列は、画像内符号化と画像間符号化とでは異なる。また、あらかじめ用意されている量子化行列以外の行列を新たに設定して用いても良いが、その場合には、Video Object Layer Classのload_intra_quant_mat、あるいはload_nonintra_quant_matのフラグをONにし、新たに設定した量子化行列の６４個の要素をintra_quant_mat[64]あるいはnonintra_quant_mat[64]として符号化する。
【００６０】
その後、ステップＳ７において、量子化器１２２により、ステップＳ６において設定器１３２により設定された量子化行列を用いてＭＰＥＧ１／２型の量子化が行われ、逆量子化器１２４により、逆量子化が行われる。次に、ステップＳ８に進み、クリッピング器１４４により、ＤＣＴ係数のクリッピングが行われる。ここでは、ミスマッチ制御は行なわれないことに注意されたい。このモードが選ばれた場合には、ステップＳ９において、Video Object Layer Classのvideo_object_layer_quant_typeのフラグは"1"に設定され、符号化される。
【００６１】
次に、図３１に示したフローチャートを参照して、デコーダのミスマッチ制御および逆量子化部分における処理の流れと符号化ビット列の解読法を説明する。最初に、ステップＳ１１において、図１３に示したエンコーダによって符号化された符号化ビット列のうち、Video Object Layer Classのvideo_object_layer_quant_typeのフラグを解読することによって、エンコーダ側で用いたモードを検出し、エンコーダ側のモードに対応するように逆量子化等の処理を行なう。例えば、video_object_layer_quant_type=="0"（"=="は、左辺と右辺の値が等しいことを意味する）の場合にはＨ．２６１／３モード、そうでない場合にはＭＰＥＧ１／２モードとみなして処理を行なう。
【００６２】
Ｈ．２６１／３モードの場合は、ステップＳ１２に進み、この場合、量子化行列は利用しないため、量子化行列は設定されずに逆量子化が行なわれる。即ち、復号された縦横８要素のＤＣＴ係数の各ブロックに対して、まず逆量子化器２２３により、Ｈ．２６１／３型の逆量子化が行われる。その後、ステップＳ１３において、ミスマッチ制御部２４１により、ＤＣＴ係数を奇数化するミスマッチ制御が行われる。次に、ステップＳ１４に進み、クリッピング器２４３により、ＤＣＴ係数のクリッピングが行われる。
【００６３】
一方、ＭＰＥＧ１／２モードの場合は、ステップＳ１５において、復号された縦横８要素のＤＣＴ係数の各ブロックに対して、まず設定器２３２によりＭＰＥＧ１／２型の量子化行列が設定される。ここで設定される量子化行列は、画像内符号化と画像間符号化とでは異なる。また、例えばVideo Object Layer Classのload_intra_quant_mat、あるいはload_nonintra_quant_matのフラグがONになっている場合には、あらかじめ用意されている量子化行列以外を設定するために、例えば、intra_quant_mat[64]あるいはnonintra_quant_mat[64]として符号化された量子化行列の６４個の要素を復号して用いる等の処理を行なわなければならない。その後、ステップＳ１６に進み、逆量子化器２２４により、ステップＳ１５において設定された量子化行列を用いてＭＰＥＧ１／２型の逆量子化が行われ、ステップＳ１７において、クリッピング器２４４によりＤＣＴ係数のクリッピングが行われる。エンコーダの場合と同様、ミスマッチ制御は行なわれないことに注意されたい。
【００６４】
以上、ＭＰＥＧ方式について説明したが、この他にも様々な動画像の高能率符号化方法が標準化されている。例えば、ＩＴＵ−Ｔでは主に通信用の符号化方式として、Ｈ．２６１やＨ．２６３という方式を規定している。このＨ．２６１やＨ．２６３も基本的にはＭＰＥＧ方式と同様に動き補償予測符号化とＤＣＴ変換符号化を組み合わせたものであり、ヘッダ情報などの詳細は異なるが、符号化装置や復号装置は同様の構成となる。
【００６５】
【発明が解決しようとする課題】
しかしながら、従来のＭＰＥＧ１、ＭＰＥＧ２、Ｈ．２６１、Ｈ．２６３等の動画像の高能率符号化方法では、量子化および逆量子化の方法、量子化行列の利用方法、ＩＤＣＴミスマッチの対策方法等としてそれぞれ異なる方法が指定されており、その他の方法を用いることは許されていなかった。
【００６６】
ＭＰＥＧ４においては、１９９７年３月７日の時点で、これらの既存の動画像の高能率符号化方法との互換性をどのようにするかについては特にまとめられていない。そのため、ＭＰＥＧ４のＶＭ（Verification Model）やＷＤ（Working Draft）の規定では、量子化および逆量子化の方法、量子化行列の利用方法、ＩＤＣＴミスマッチの対策方法等が、暫定的に複数用意されている。符号化および復号する場合には、これらの方法の中で決められた方法の組合せのモードを用いなければならず、規定されている組合せ自体も充分ではなかった。
【００６７】
ここで、ＭＰＥＧ４のＶＭ６．０（ISO/IEC JTC1/SC29/WG11 MPEG96/N1582 Sevilla,February 1996）や、ＷＤ１．０（ISO/IEC JTC1/SC29/WG11 MPEG96/N1470 Maceio,Nov.1996）で規定されている符号化および復号方法のうち、量子化およびミスマッチ制御の部分を簡単に説明する。Ｈ．２６１、あるいはＨ．２６３（以下、Ｈ．２６１／３と示す）のモードで符号化および復号する場合には、量子化および逆量子化の方法、量子化行列の利用方法、ＩＤＣＴミスマッチの対策方法が全て指定される。ＭＰＥＧ１あるいはＭＰＥＧ２（以下、ＭＰＥＧ１／２と示す）のモードで符号化および復号する場合には、量子化および逆量子化の方法、量子化行列の利用方法は指定されるが、ＩＤＣＴミスマッチの対策方法は指定されない。
【００６８】
このように、従来の動画像の高能率符号化方法では、既存の動画像の高能率符号化方法との互換性が充分に取られていない課題があった。
【００６９】
また、量子化および逆量子化の方法、量子化行列の利用方法、ＩＤＣＴミスマッチの対策方法等で、最適な方法の組合せを指定して、より高能率の符号化および復号を行なうこともできない課題があった。
【００７０】
本発明はこのような状況に鑑みてなされたものであり、既存の動画像の高能率符号化方法との互換性を取ることができるようにするものである。
【００７１】
【課題を解決するための手段】
請求項１に記載の符号化装置は、入力された画像データを符号化する符号化装置において、入力された画像データをDCT（Discrete Cosine Transform）変換して、DCT係数を出力するDCT変換手段と、少なくとも量子化タイプと量子化行列に基づいてDCT係数を量子化して、量子化されたDCT係数である第１の値を出力する量子化手段と、
第１の値を逆量子化して、逆量子化により得られたDCT係数である第２の値を出力する逆量子化手段と、少なくとも量子化タイプに基づいて、IDCTミスマッチ制御の方法を設定し、その方法で第２の値にIDCT（Inverse DCT）ミスマッチ制御を施すミスマッチ制御手段と、IDCTミスマッチ制御が施された第２の値をIDCT変換して、画像データを復元するIDCT変換手段と、量子化タイプを表す情報、量子化行列を表す情報、IDCTミスマッチ制御の方法を表す情報、および第１の値を符号化する符号化手段と、復元された画像データを基に、画像データの動き補償を行う動き補償手段と、動き補償手段から出力された結果と、画像データの差分を計算する差分手段とを備え、ミスマッチ制御手段は、少なくとも量子化タイプに基づいて、第２の値のブロック毎の総和が偶数である場合、第２の値の（７，７）係数をトグル（toggle）する方法、または、DCT係数を奇数化する方法のいずれか一方を、IDCTミスマッチ制御の方法として設定することを特徴とする。
【００７２】
請求項２に記載の符号化方法は、入力された画像データを符号化する符号化方法において、入力された画像データをDCT（Discrete Cosine Transform）変換して、DCT係数を出力し、少なくとも量子化タイプと量子化行列に基づいてDCT係数を量子化して、量子化されたDCT係数である第１の値を出力し、第１の値を逆量子化して、逆量子化により得られたDCT係数である第２の値を出力し、少なくとも量子化タイプに基づいて、IDCTミスマッチ制御の方法を設定し、その方法で第２の値にIDCT（Inverse DCT）ミスマッチ制御を施し、IDCTミスマッチ制御が施された第２の値をIDCT変換して、画像データを復元し、量子化タイプを表す情報、量子化行列を表す情報、IDCTミスマッチ制御の方法を表す情報、および第１の値を符号化し、復元された画像データを基に、画像データの動き補償を行い、動き補償の結果と、画像データの差分を計算し、IDCTミスマッチ制御を施す際、少なくとも量子化タイプに基づいて、第２の値のブロック毎の総和が偶数である場合、第２の値の（７，７）係数をトグル（toggle）する方法、または、DCT係数を奇数化する方法のいずれか一方を、IDCTミスマッチ制御の方法として設定することを特徴とする。
【００７３】
請求項３に記載の復号装置は、符号化装置により符号化されている、符号化装置で設定された、少なくとも量子化タイプを表す情報、量子化行列を表す情報、および量子化タイプに基づくIDCT（Inverse Discrete Cosine Transform）ミスマッチ制御の方法を表す情報を含む画像データを復号する復号装置において、符号化されている画像データを復号して、復号により得られた量子化されているDCT（Discrete Cosine Transform）係数である所定の値、量子化タイプを表す情報、量子化行列を表す情報、およびIDCTミスマッチ制御の方法を表す情報を出力する復号手段と、少なくとも量子化タイプを表す情報と量子化行列を表す情報に基づき、値を逆量子化して、DCT係数を出力する逆量子化手段と、少なくともIDCTミスマッチ制御の方法を表す情報に基づき、DCT係数にIDCTミスマッチ制御を施すミスマッチ制御手段と、IDCTミスマッチ制御が施されたDCT係数をIDCT変換して、復号されたデータを生成するIDCT変換手段とを備え、ミスマッチ制御手段は、少なくともIDCTミスマッチ制御の方法を表す情報に基づき、DCT係数のブロック毎の総和が偶数である場合、DCT係数の（７，７）係数をトグル（toggle）するか、または、DCT係数を奇数化することを特徴とする。
【００７４】
請求項４に記載の復号方法は、符号化装置により符号化されている、符号化装置で設定された、少なくとも量子化タイプを表す情報、量子化行列を表す情報、および量子化タイプに基づくIDCT（Inverse Discrete Cosine Transform）ミスマッチ制御の方法を表す情報を含む画像データを復号する復号方法において、符号化されている画像データを復号して、復号により得られた量子化されているDCT（Discrete Cosine Transform）係数である所定の値、量子化タイプを表す情報、量子化行列を表す情報、およびIDCTミスマッチ制御の方法を表す情報を出力し、少なくとも量子化タイプを表す情報と量子化行列を表す情報に基づき、値を逆量子化して、DCT係数を出力し、少なくともIDCTミスマッチ制御の方法を表す情報に基づき、DCT係数にIDCTミスマッチ制御を施し、IDCTミスマッチ制御が施されたDCT係数をIDCT変換して、復号されたデータを生成し、IDCTミスマッチ制御を施す際、少なくともIDCTミスマッチ制御の方法を表す情報に基づき、DCT係数のブロック毎の総和が偶数である場合、DCT係数の（７，７）係数をトグル（toggle）するか、または、DCT係数を奇数化することを特徴とする。
【００７７】
請求項１に記載の符号化装置においては、DCT変換手段が、入力された画像データをDCT（Discrete Cosine Transform）変換して、DCT係数を出力し、量子化手段が、少なくとも量子化タイプと量子化行列に基づいてDCT係数を量子化して、量子化されたDCT係数である第１の値を出力し、逆量子化手段が、第１の値を逆量子化して、逆量子化により得られたDCT係数である第２の値を出力し、ミスマッチ制御手段が、少なくとも量子化タイプに基づいて、IDCTミスマッチ制御の方法を設定し、その方法で第２の値にIDCT（Inverse DCT）ミスマッチ制御を施し、IDCT変換手段が、IDCTミスマッチ制御が施された第２の値をIDCT変換して、画像データを復元し、符号化手段が、量子化タイプを表す情報、量子化行列を表す情報、IDCTミスマッチ制御の方法を表す情報、および第１の値を符号化し、動き補償手段が、復元された画像データを基に、画像データの動き補償を行い、差分手段が、動き補償手段から出力された結果と、画像データの差分を計算する。なお、ミスマッチ制御手段は、少なくとも量子化タイプに基づいて、第２の値のブロック毎の総和が偶数である場合、第２の値の（７，７）係数をトグル（toggle）する方法、または、DCT係数を奇数化する方法のいずれか一方を、IDCTミスマッチ制御の方法として設定する。
【００７８】
請求項２に記載の符号化方法においては、入力された画像データをDCT（Discrete Cosine Transform）変換して、DCT係数を出力し、少なくとも量子化タイプと量子化行列に基づいてDCT係数を量子化して、量子化されたDCT係数である第１の値を出力し、第１の値を逆量子化して、逆量子化により得られたDCT係数である第２の値を出力し、少なくとも量子化タイプに基づいて、IDCTミスマッチ制御の方法を設定し、その方法で第２の値にIDCT（Inverse DCT）ミスマッチ制御を施し、IDCTミスマッチ制御が施された第２の値をIDCT変換して、画像データを復元し、量子化タイプを表す情報、量子化行列を表す情報、IDCTミスマッチ制御の方法を表す情報、および第１の値を符号化し、復元された画像データを基に、画像データの動き補償を行い、動き補償の結果と、画像データの差分を計算し、IDCTミスマッチ制御を施す際、少なくとも量子化タイプに基づいて、第２の値のブロック毎の総和が偶数である場合、第２の値の（７，７）係数をトグル（toggle）する方法、または、DCT係数を奇数化する方法のいずれか一方を、IDCTミスマッチ制御の方法として設定することを特徴とする。
【００７９】
請求項３に記載の復号装置においては、復号手段が、符号化されている画像データを復号して、復号により得られた量子化されているDCT（Discrete Cosine Transform）係数である所定の値、量子化タイプを表す情報、量子化行列を表す情報、およびIDCTミスマッチ制御の方法を表す情報を出力し、逆量子化手段が、少なくとも量子化タイプを表す情報と量子化行列を表す情報に基づき、値を逆量子化して、DCT係数を出力し、ミスマッチ制御手段が、少なくともIDCTミスマッチ制御の方法を表す情報に基づき、DCT係数にIDCTミスマッチ制御を施し、IDCT変換手段が、IDCTミスマッチ制御が施されたDCT係数をIDCT変換して、復号されたデータを生成する。なお、ミスマッチ制御手段は、少なくともIDCTミスマッチ制御の方法を表す情報に基づき、DCT係数のブロック毎の総和が偶数である場合、DCT係数の（７，７）係数をトグル（toggle）するか、または、DCT係数を奇数化する。
【００８０】
請求項４に記載の復号方法においては、符号化されている画像データを復号して、復号により得られた量子化されているDCT（Discrete Cosine Transform）係数である所定の値、量子化タイプを表す情報、量子化行列を表す情報、およびIDCTミスマッチ制御の方法を表す情報を出力し、少なくとも量子化タイプを表す情報と量子化行列を表す情報に基づき、値を逆量子化して、DCT係数を出力し、少なくともIDCTミスマッチ制御の方法を表す情報に基づき、DCT係数にIDCTミスマッチ制御を施し、IDCTミスマッチ制御が施されたDCT係数をIDCT変換して、復号されたデータを生成し、IDCTミスマッチ制御を施す際、少なくともIDCTミスマッチ制御の方法を表す情報に基づき、DCT係数のブロック毎の総和が偶数である場合、DCT係数の（７，７）係数をトグル（toggle）するか、または、DCT係数を奇数化する。
【００８３】
【発明の実施の形態】
以下に、本発明の実施の形態を説明するが、その前に、特許請求の範囲に記載の発明の各手段と以下の実施の形態との対応関係を明らかにするために、各手段の後の括弧内に、対応する実施の形態（但し、一例）を付加して、本発明の特徴を記述すると、次のようになる。
【００８４】
即ち、請求項１に記載の符号化装置は、入力された画像データを符号化する符号化装置において、入力された画像データをDCT（Discrete Cosine Transform）変換して、DCT係数を出力するDCT変換手段（例えば、図６のDCT器１０５）と、少なくとも量子化タイプと量子化行列に基づいてDCT係数を量子化して、量子化されたDCT係数である第１の値を出力する量子化手段（例えば、図６の量子化器１２２）と、第１の値を逆量子化して、逆量子化により得られたDCT係数である第２の値を出力する逆量子化手段（例えば、図６の逆量子化器１２４）と、少なくとも量子化タイプに基づいて、IDCTミスマッチ制御の方法を設定し、その方法で第２の値にIDCT（Inverse DCT）ミスマッチ制御を施すミスマッチ制御手段（例えば、図６のミスマッチ制御器１５４）と、IDCTミスマッチ制御が施された第２の値をIDCT変換して、画像データを復元するIDCT変換手段（例えば、図６のIDCT器１０６）と、量子化タイプを表す情報、量子化行列を表す情報、IDCTミスマッチ制御の方法を表す情報、および第１の値を符号化する符号化手段(例えば、図６の可変長符号化器１０９)と、復元された画像データを基に、画像データの動き補償を行う動き補償手段（例えば、図６の動き補償器１０３）と、動き補償手段から出力された結果と、画像データの差分を計算する差分手段（例えば、図６の加算器１０４）とを備え、ミスマッチ制御手段は、少なくとも量子化タイプに基づいて、第２の値のブロック毎の総和が偶数である場合、第２の値の（７，７）係数をトグル（toggle）する方法、または、DCT係数を奇数化する方法のいずれか一方を、IDCTミスマッチ制御の方法として設定することを特徴とする。
【００８５】
請求項３に記載の復号装置は、符号化装置により符号化されている、符号化装置で設定された、少なくとも量子化タイプを表す情報、量子化行列を表す情報、および量子化タイプに基づくIDCT（Inverse Discrete Cosine Transform）ミスマッチ制御の方法を表す情報を含む画像データを復号する復号装置において、符号化されている画像データを復号して、復号により得られた量子化されているDCT（Discrete Cosine Transform）係数である所定の値、量子化タイプを表す情報、量子化行列を表す情報、およびIDCTミスマッチ制御の方法を表す情報を出力する復号手段（例えば、図７の逆可変長符号化器２０９）と、少なくとも量子化タイプを表す情報と量子化行列を表す情報に基づき、値を逆量子化して、DCT係数を出力する逆量子化手段（例えば、図７の逆量子化器２２４）と、少なくともIDCTミスマッチ制御の方法を表す情報に基づき、DCT係数にIDCTミスマッチ制御を施すミスマッチ制御手段（例えば、図７のミスマッチ制御器２５３）と、IDCTミスマッチ制御が施されたDCT係数をIDCT変換して、復号されたデータを生成するIDCT変換手段（例えば、図７のIDCT器２０６）とを備え、ミスマッチ制御手段は、少なくともIDCTミスマッチ制御の方法を表す情報に基づき、DCT係数のブロック毎の総和が偶数である場合、DCT係数の（７，７）係数をトグル（toggle）するか、または、DCT係数を奇数化することを特徴とする。
【００８７】
なお、勿論この記載は、各手段を上記したものに限定することを意味するものではない。
【００８８】
図１に本発明の符号化装置を応用した符号化器（エンコーダ）の一実施の形態の構成例を示す。また、図２に、本発明の復号装置を応用した復号器（デコーダ）の一実施の形態の構成例を示す。図１はエンコーダ、図２はデコーダを示している。図１に示した符号化器の基本的な構成は図１３に示した従来例の場合とほぼ同様である。また、図２に示した復号器の基本的な構成は図１４に示した従来例の場合とほぼ同様である。
【００８９】
従来例と異なる点は、エンコーダについては図１３の符号化器において、スイッチＳＷ３，ＳＷ４で分岐される処理のモードが、図１の符号化器においては、スイッチＳＷ２１，ＳＷ２２においてそれぞれ三通り存在する点と、ＭＰＥＧ１あるいはＭＰＥＧ２モードの場合、逆量子化を行なった後にミスマッチ制御を行なう部分が存在する点である。デコーダについても、図２の復号器においては、スイッチＳＷ３１，ＳＷ３２で分岐される処理のモードが三通り存在する点と、ＭＰＥＧ１あるいはＭＰＥＧ２モードの場合、逆量子化を行なった後にミスマッチ制御を行なう部分が存在する点である。
【００９０】
図１の符号化器におけるスイッチＳＷ１，ＳＷ２，ＳＷ２１，ＳＷ２２、図２の復号器におけるスイッチＳＷ３１，ＳＷ３２は、図１３，図１４に示した従来例の場合と同様に、どのモードの量子化等を行なうかを示すフラグQ_mode2と連動しており、図の例ではＨ．２６１／３モードの場合を示した。但し、符号化器におけるスイッチＳＷ１，ＳＷ２について、ＭＰＥＧ１あるいはＭＰＥＧ２モードの場合の処理は共通である。フラグQ_mode2は、量子化等の処理方法の組み合わせを示しており、符号化器においては、あらかじめ何らかの評価基準を用い、Ｈ．２６１／３，ＭＰＥＧ１，ＭＰＥＧ２のうち、どのモードで量子化等を行なうかを決めておく。あるいはエンコードする際に、あらかじめどのモードの量子化等を行なうかの指定がなされていても良い。図２の復号器においては、逆可変長符号化器２０９によって復号される値による。
【００９１】
逆量子化後に行なうミスマッチ制御に関連して、ＤＣＴ係数のクリッピング器（図１の符号化器ではクリッピング器１４３，１５２，１５３、図２の復号器ではクリッピング器２４３，２４４，２５２）の位置がＭＰＥＧ１モードとＭＰＥＧ２モードとで前後していることに注意されたい。ＭＰＥＧ１モード（およびＨ．２６１／３モード）では、ＤＣＴ係数の奇数化によるミスマッチ制御器（図１の符号化器ではミスマッチ制御器１４１，１５１、図２の復号器ではミスマッチ制御器２４１，２５１）の後にＤＣＴ係数のクリッピング器が置かれる。
【００９２】
これに対して、ＭＰＥＧ２モードでは、ＤＣＴ係数のクリッピング器の後に、ＤＣＴ係数の（７，７）係数をtoggleするミスマッチ制御器（図１の符号化器ではミスマッチ制御器１５４、図２の復号器ではミスマッチ制御器２５３）が置かれる。
【００９３】
以下、図１、図２の実施の形態における、より詳しい処理の流れについて説明する。
【００９４】
図３および図４に、図１および図２に示した符号化器および復号器における処理の流れと符号化ビット列の生成法および解読法の一例を示す。図３はエンコーダの量子化およびミスマッチ制御部分を示し、図４はデコーダのミスマッチ制御および逆量子化部分を示した。
【００９５】
上記実施の形態における符号化シンタックスの基本的構成は、図３０、図３１に示した従来例の場合と基本的に同一であるが、量子化および逆量子化の方法等の組合せとして指定可能なモードとして、Ｈ．２６１／３モード以外にＭＰＥＧ１,ＭＰＥＧ２モードの三つが用意されている点が大きく異なる。またＭＰＥＧ１，ＭＰＥＧ２モードでは、ＩＤＣＴミスマッチの対策方法が指定されている点も異なる。
【００９６】
上記実施の形態におけるVideo Object Layer Classのシンタックスの一部を図５に示した。従来例とは、video_object_layer_quant_typeのフラグが2bitである点が異なる。
【００９７】
次に、図３のフローチャートを参照して、図１に示したエンコーダの量子化およびミスマッチ制御部分における処理の流れと符号化ビット列の生成法を説明する。まず、ステップＳ２１において、何らかの評価基準を用いて、Ｈ．２６１／３，ＭＰＥＧ１，ＭＰＥＧ２のうちどのモードで量子化等を行なうかを決める。あるいはエンコードする際に、あらかじめどのモードの量子化等を行なうかの指定がなされていても良い。ＤＣＴ演算を行なって求めた縦横８要素のＤＣＴ係数の各ブロックに対して、各モードに応じて以下のように量子化行列の利用方法を設定し、量子化および逆量子化の方法を選択し、ＩＤＣＴミスマッチの対策方法を選択する。
【００９８】
Ｈ．２６１／３モードの場合は、ステップＳ２２において、量子化器１２１により、縦横８要素のＤＣＴ係数の各ブロックに対して、Ｈ．２６１／３型の量子化が行われ、次に、逆量子化器１２３により逆量子化が行われる。その後、ステップＳ２３に進み、ミスマッチ制御器１４１により、ＤＣＴ係数を奇数化するミスマッチ制御が行われ、次に、ステップＳ２４において、クリッピング器１４３によりＤＣＴ係数のクリッピングが行われる。
【００９９】
このモードの場合には、量子化行列は利用しないため、量子化行列は設定されずに量子化および逆量子化が行なわれる。なお、このモードが選ばれた場合には、ステップＳ２５において、例えば、Video Object Layer Classのvideo_object_layer_quant_typeのフラグは"01"に設定され、符号化される。この例では、このフラグの名前は従来例の場合と同名になっているが、以下にも説明するように、その役割は従来例とは異なる。
【０１００】
一方、ＭＰＥＧ１モードの場合は、ステップＳ２６において、設定器１３２により、縦横８要素のＤＣＴ係数の各ブロックに対してまず、ＭＰＥＧ１／２型の量子化行列が設定される。ここで設定される量子化行列は、画像内符号化と画像間符号化とでは異なる。また、あらかじめ用意されている量子化行列以外のものを新たに設定して用いても良いが、その場合には、例えばVideo Object Layer Classのload_intra_quant_mat、あるいはload_nonintra_quant_matのフラグをONにし、新たに設定した量子化行列の６４個の要素をintra_quant_mat[64]あるいはnonintra_quant_mat[64]として符号化する等の処理を行なわなければならない。
【０１０１】
その後、ステップＳ２７において、量子化器１２２により、設定器１３２が設定した量子化行列を用いてＭＰＥＧ１／２型の量子化が行われ、次に、逆量子化器１２４により、逆量子化が行われる。次に、ステップＳ２８に進み、ミスマッチ制御器１５１により、ＤＣＴ係数を奇数化するミスマッチ制御が行われ、ステップＳ２９において、クリッピング器１５２により、ＤＣＴ係数のクリッピングが行われる。なお、このモードが選ばれた場合には、ステップＳ３０において、例えば、Video Object Layer Classのvideo_object_layer_quant_typeのフラグは"10"に設定され、符号化される。
【０１０２】
さらに、ＭＰＥＧ２モードの場合は、ステップＳ３１において、設定器１３２により、縦横８要素のＤＣＴ係数の各ブロックに対して、ＭＰＥＧ１モードの場合と同様に、まずＭＰＥＧ１／２型の量子化行列が設定される。ここで、新たに量子化行列を設定して用いる場合にも、ＭＰＥＧ１モードの場合と同様に量子化行列の６４個の要素を符号化する等の処理を行なわなければならない。
【０１０３】
その後、ステップＳ３２に進み、設定器１３２が設定した量子化行列を用いてＭＰＥＧ１／２型の量子化が行われ、逆量子化器１２５により、逆量子化が行われる。次に、ステップＳ３３において、クリッピング器１５３により、ＤＣＴ係数のクリッピングが行われてから、ステップＳ３４に進み、ミスマッチ制御器１５４により、ＤＣＴ係数の（７，７）要素をtoggleすることによるミスマッチ制御が行われる。なお、このモードが選ばれた場合には、ステップＳ３５において、例えば、Video Object Layer Classのvideo_object_layer_quant_typeのフラグは"11"に設定され、符号化される。ステップＳ２５またはステップＳ３０またはステップＳ３５の処理が終了すると、すべての処理を終了する。
【０１０４】
次に、図４のフローチャートを参照して、図２に示したデコーダのミスマッチ制御および逆量子化部分における処理の流れと符号化ビット列の解読法について説明する。ステップＳ３１においては、図１に示したエンコーダによって符号化された符号化ビット列のうち、例えば、Video Object Layer Classのvideo_object_layer_quant_typeのフラグを解読することによって、エンコーダ側で用いたモードに対応するように逆量子化等の処理を行なう。例えば、video_object_layer_quant_type=="01"の場合にはＨ．２６１／３モード、video_object_layer_quant_type=="10"の場合にはＭＰＥＧ１モード、video_object_layer_quant_type=="11"の場合にはＭＰＥＧ２モードとみなして処理を行なう。
【０１０５】
Ｈ．２６１／３モードの場合は、量子化行列は利用しないため、ステップＳ３２に進み、量子化行列は設定されずに逆量子化が行なわれる。即ち、復号された縦横８要素のＤＣＴ係数の各ブロックに対して、まず、逆量子化器２２３により、Ｈ．２６１／３型の逆量子化が行われる。その後、ステップＳ３３において、ミスマッチ制御器１４１により、ＤＣＴ係数を奇数化するミスマッチ制御が行われ、ステップＳ３４に進み、クリッピング器２４３により、ＤＣＴ係数のクリッピングが行われる。
【０１０６】
また、ＭＰＥＧ１モードの場合は、復号された縦横８要素のＤＣＴ係数の各ブロックに対して、まず、ステップＳ３５において、設定器２３２により、ＭＰＥＧ１／２型の量子化行列が設定される。ここで設定される量子化行列は、画像内符号化と画像間符号化とでは異なる。また、例えば、Video Object Layer Classのload_intra_quant_mat、あるいはload_nonintra_quant_matのフラグがONになっている場合には、あらかじめ用意されている量子化行列以外のものを設定するために、例えば、intra_quant_mat[64]あるいはnonintra_quant_mat[64]として符号化された量子化行列の６４個の要素を復号して用いる等の処理を行なわなければならない。次に、ステップＳ３６に進み、逆量子化器２２４により、設定器２３２が設定した量子化行列を用いてＭＰＥＧ１／２型の逆量子化が行われる。その後、ステップＳ３７において、ミスマッチ制御器２５１により、ＤＣＴ係数を奇数化するミスマッチ制御が行われ、次に、ステップＳ３８において、クリッピング器２４４により、ＤＣＴ係数のクリッピングが行われる。
【０１０７】
さらに、ＭＰＥＧ２モードの場合は、復号された縦横８要素のＤＣＴ係数の各ブロックに対して、まず、ステップＳ３９において、設定器２３３により、ＭＰＥＧ１／２型の量子化行列が設定される。ここで設定される量子化行列は、ＭＰＥＧ１モードの場合と同様であり、新たに量子化行列が設定されている場合には、符号化された量子化行列を復号して用いる等の処理を行なわなければならない。次に、ステップＳ４０に進み、逆量子化器２２５により、設定器２３３が設定した量子化行列を用いてＭＰＥＧ１／２型の逆量子化が行われる。その後、ステップＳ４１において、クリッピング器２５２により、ＤＣＴ係数のクリッピングが行われ、ステップＳ４２において、ミスマッチ制御器２５３により、ＤＣＴ係数の（７，７）要素をtoggleすることによるミスマッチ制御が行われる。
【０１０８】
上記処理以外でも、Ｈ．２６１／３、ＭＰＥＧ１、ＭＰＥＧ２の各モードにおいて個別に処理すべき他の処理を、例えば、Video Object Layer Classのvideo_object_layer_quant_typeのフラグと連動させることにしても良い。あるいは、新たなモードを設け、そのモードと対応するような新規あるいは従来の量子化および逆量子化等の各処理方法を連動させることにしても良い。あるいは、逆に用意するモードの数自体を減らしたり、フラグと連動させる処理の数を減らすなど、処理を簡潔にしても良い。あるいは、可能である限りこれらの処理の順番を入れ換えても良い。どのモードの処理方法を行なうかを示す例えば、video_object_layer_quant_typeのフラグで用いるシンボルは、上記の例とは異なったシンボルを用いても良い。
【０１０９】
また上記の例では、各モードを示すフラグとして、例えばVideo Object Layer Classのvideo_object_layer_quant_typeのフラグとして説明を行なったが、同様の役割を担う別名のフラグであっても良い。あるいは、例えば、Video Object Layer Classにおいてこのフラグを設定する代わりに、Video Object Plane Class又はMacroblock Layer等の他のLayerで設定することによって、設定したフラグに連動させる処理方法をオブジェクト単位からフレーム又はマクロブロック単位等の別の単位で切り替えることにしても良い。
【０１１０】
図６、図７に、本発明の符号化装置および復号装置を適用したエンコーダ（符号化器）およびデコーダ（復号器）の一実施の形態の構成例を示す。図５はエンコーダ、図６はデコーダを示している。図６、図７に示したエンコーダおよびデコーダの基本的な構成は、図１、図２に示した実施の形態の場合とほぼ同様である。
【０１１１】
図１および図２の実施の形態と異なる点は、エンコーダについては図６の符号化器において、スイッチＳＷ１，ＳＷ４１，ＳＷ４２，ＳＷ２，ＳＷ３，ＳＷ４３，ＳＷ４４，ＳＷ４５とフラグQ_matrix,Q_type,mismatchによって、量子化行列の利用方法、量子化および逆量子化の方法、ＩＤＣＴミスマッチの対策方法を個別に設定することが可能となっている点である。デコーダについても図７の復号器において、スイッチＳＷ１１，ＳＷ５１，ＳＷ５２，ＳＷ５３，ＳＷ５４，ＳＷ５５とフラグQ_matrix,Q_type,mismatchによって、量子化行列の利用方法、逆量子化の方法、ＩＤＣＴミスマッチの対策方法を個別に設定することが可能となっている点である。
【０１１２】
本実施の形態では、図１、図２に示した実施の形態におけるフラグQ_mode2に代って、Q_matrix,Q_type,mismatchと名付けられた３つのフラグが用意されている。フラグQ_matrixは、図６の符号化器においてはスイッチＳＷ１，ＳＷ４１、図７の復号器においてはスイッチＳＷ１１，ＳＷ５１と連動しており、量子化行列の利用方法に係わる。フラグQ_typeは、図６の符号化器においてはスイッチＳＷ４２，ＳＷ２，ＳＷ３，ＳＷ４３、図７の復号器においてはスイッチＳＷ５２，ＳＷ５３と連動しており、量子化および逆量子化の方法に係わる。
【０１１３】
フラグmismatchは、図６の符号化器においてはスイッチＳＷ４４，ＳＷ４５、図７の復号器においてはスイッチＳＷ５４，ＳＷ５５と連動しており、ＩＤＣＴミスマッチの対策方法に係わる。図の例では、Q_matrixについてはＭＰＥＧ１／２型の量子化行列を用いない場合、Q_typeについてはＨ．２６１／３型の量子化を行なう場合、mismatchについてはＤＣＴ係数の奇数化によるミスマッチ制御を行なう場合を示した。
【０１１４】
３つのフラグQ_matrix,Q_type,mismatchは、処理方法の組み合わせを示しており、図６の符号化器においてはあらかじめ何らかの評価基準を用い、それぞれどの処理方法を用いるかを決めておく。あるいはエンコードする際に、あらかじめどの処理方法を用いるかの指定がなされていても良い。図７の復号器においては、逆可変長符号化器２０９によって復号される値による。
【０１１５】
フラグmismatchによって切り替わるミスマッチ制御に関連して、ＤＣＴ係数のクリッピング器（図６の符号化器ではクリッピング器１４３，１５３、図７の復号器ではクリッピング器２４３，２５２）の位置が、図１、図２に示した実施の形態の場合と同様に前後していることに注意されたい。ＤＣＴ係数の奇数化によるミスマッチ制御を行なう場合には、ＤＣＴ係数の奇数化によるミスマッチ制御器（図６の符号化器ではミスマッチ制御器１４１、図７の復号器ではミスマッチ制御器２４１）の後にＤＣＴ係数のクリッピング器が置かれる。
【０１１６】
これ対してＤＣＴ係数の（７，７）係数をtoggleすることによるミスマッチ制御を行なう場合には、ＤＣＴ係数のクリッピング器の後に、ＤＣＴ係数の（７，７）係数をtoggleするミスマッチ制御器（図６の符号化器ではミスマッチ制御器１５４、図７の復号器ではミスマッチ制御器２５３）が置かれる。
【０１１７】
フラグQ_matrixによって切り替わる量子化行列の利用方法に関連して、仮の量子化行列の設定器（図６の符号化器では設定器１３１、図７の復号器では設定器２６１）について説明する。フラグQ_matrixによってＭＰＥＧ１／２型の量子化行列を用いないことが示された場合、本来量子化行列は設定されず、この仮の量子化行列の設定器の存在は、通常、符号化器、復号器で共に無視される。しかし、図６、図７の実施の形態においては、同じ量子化および逆量子化の処理方法に対して、量子化行列が設定されている場合と設定されていない場合のどちらもが起こりうるため、そのどちらの場合にも対処できるように、量子化および逆量子化の処理を複数用意しておくべき場合がある。
【０１１８】
しかしながら、量子化行列の設定の有無に係わらず、量子化および逆量子化の処理を一通りで行なえるように、演算あるいは回路を構成することも可能である。それは、量子化行列を設定する場合に合わせるように、量子化行列を設定しない場合には、全ての要素の値が（０以外でかつ正の値で）等しいなどの仮の量子化行列を設定しておき、量子化および逆量子化の処理を行なう際にはこの仮の量子化行列を用いることである。このように、仮の量子化行列を設定する場合、仮の量子化行列の設定器は、図６の符号化器では設定器１３１、図７の復号器では設定器２６１の位置に置かれ、存在することになる。
【０１１９】
図６および図７に示した実施の形態における、より詳しい処理の流れについて、以下に説明する。
【０１２０】
図８および図９のフローチャートは、図６および図７の実施の形態における処理の流れと符号化ビット列の生成法および解読法の一例を示している。図８はエンコーダの量子化およびミスマッチ制御部分を示し、図９はデコーダのミスマッチ制御および逆量子化部分を示している。
【０１２１】
図６および図７の実施の形態における符号化シンタックスの基本的構成は、図３、図４に示した実施の形態の場合と基本的に同様であるが、量子化行列の利用方法、量子化および逆量子化の方法、およびＩＤＣＴミスマッチの対策方法等を連動させて設定するのではなく、個別に設定することが可能となっている点が大きく異なる。
【０１２２】
図６および図７の実施の形態におけるVideo Object Layer Classのシンタックスの一部を図１０に示した。従来例とは、video_object_layer_quant_typeのフラグの代わりに、video_object_layer_quant_matrix,video_object_layer_quant_type,video_object_layer_mismatchの３つのフラグが設けられている点が異なる。
【０１２３】
図８のフローチャートを参照して、エンコーダの量子化およびミスマッチ制御部分における処理の流れと符号化ビット列の生成法について説明する。ステップＳ４１において、それぞれ複数の処理方法が用意されている、量子化行列の利用方法、量子化および逆量子化の方法、およびＩＤＣＴミスマッチの対策方法等について、どの処理方法を用いるかを、何らかの評価基準を用いて決める。あるいはエンコードする際に、あらかじめどの処理方法の量子化等を行なうかの指定がなされていても良い。ＤＣＴ演算を行なって求めた縦横８要素のＤＣＴ係数の各ブロックに対して、以下のように量子化行列の利用方法を設定し、量子化および逆量子化の方法を選択し、ＩＤＣＴミスマッチの対策方法を選択する。
【０１２４】
まず、決められた量子化行列の利用方法に従って、量子化行列を設定する。図８の例では、ＭＰＥＧ１／２型の量子化行列を用いない場合には、量子化行列を設定しない。あるいは、ステップＳ４２において、設定器１３１により、量子化行列を設定した場合と量子化の演算を共通に行なえるように、全ての要素の値が（０以外でかつ正の値で）等しいなどの仮の量子化行列が設定される。一方、ＭＰＥＧ１／２型の量子化行列を用いる場合には、ステップＳ４４において、設定器１３２により、ＭＰＥＧ１／２型の量子化行列が設定される。ここで設定される量子化行列は、図１および図２に示した実施の形態の場合と同様に、画像内符号化と画像間符号化とでは異なる。
【０１２５】
また、あらかじめ用意されている量子化行列以外のものを新たに設定して用いても良いが、その場合には、例えばVideo Object Layer Classのload_intra_quant_mat、あるいはload_nonintra_quant_matのフラグをONにし、新たに設定した量子化行列の６４個の要素をintra_quant_mat[64]あるいはnonintra_quant_mat[64]として符号化する等の処理を行なわなければならない。量子化行列の利用方法を示す例えばVideo Object Layer Classのvideo_object_layer_quant_matrixのフラグは、ＭＰＥＧ１／２型の量子化行列を用いない場合にはON、ＭＰＥＧ１／２型の量子化行列を用いる場合にはOFFに設定され、符号化される。
【０１２６】
次に、ステップＳ４６において、Ｈ．２６１／３型の量子化を行うか否かが決定され、決められた量子化の方法に従って、量子化および逆量子化が行なわれる。図８の例では、Ｈ．２６１／３型の量子化を行なう場合には、ステップＳ４７において、量子化器１２１により、Ｈ．２６１／３型の量子化が行われ、逆量子化器１２３により、逆量子化が行われる。
【０１２７】
Ｈ．２６１／３型の量子化を行なわない場合には、用いる量子化の方法はＭＰＥＧ１／２型であるとみなして、ステップＳ４９において、量子化器１２２により、量子化が行われ、次に、逆量子化器１２４により逆量子化が行われる。量子化および逆量子化の処理を行なう際には、量子化行列が設定されている場合にはそれを用い、量子化行列が設定されていない場合にはそれを用いない。あるいは、仮の量子化行列が設定されている場合には、それを用いる。
【０１２８】
量子化および逆量子化の方法を示す例えばVideo Object Layer Classのvideo_object_layer_quant_typeのフラグは、Ｈ．２６１／３型の量子化を行なう場合にはON、Ｈ．２６１／３型の量子化を行なわない場合にはOFFに設定され、符号化される。この例では、このフラグの名前は従来例および図１、図２に示した実施の形態の場合（図３、図４のフローチャートに示したフラグ）と同名になっているが、その役割は従来例、図１、図２の実施の形態のどちらとも異なる。
【０１２９】
その後、ステップＳ５１において、ＤＣＴ係数の奇数化によるミスマッチ制御を行うか否かが決定され、決められたＩＤＣＴミスマッチの対策方法に従って、ミスマッチ制御（およびＤＣＴ係数のクリッピング）が行われる。図８の例では、ＤＣＴ係数の奇数化によるミスマッチ制御を行なう場合には、ステップＳ５２において、ミスマッチ制御器１４１により、ＤＣＴ係数の奇数化によるミスマッチ制御が行われた後で、ステップＳ５３に進み、クリッピング器１４３により、ＤＣＴ係数のクリッピングが行われる。ＤＣＴ係数の奇数化によるミスマッチ制御を行なわない場合には、用いるミスマッチの対策方法はＤＣＴ係数の（７，７）係数をtoggleすることによるミスマッチ制御であるとみなし、ステップＳ５５に進み、クリッピング器１５３により、ＤＣＴ係数のクリッピングが行われた後で、ステップＳ５６において、ミスマッチ制御器１５４により、このミスマッチ制御が行われる。
【０１３０】
ＩＤＣＴミスマッチの対策方法を示す例えばVideo Object Layer Classのvideo_object_layer_mismatchのフラグは、ＤＣＴ係数の奇数化によるミスマッチ制御を行なう場合にはONに設定され（ステップＳ５４）、ＤＣＴ係数の奇数化によるミスマッチ制御を行なわない場合にはOFFに設定され（ステップＳ５７）、符号化される。ステップＳ５４またはステップＳ５７の処理が終了すると、すべての処理が終了する。
【０１３１】
次に、図９のフローチャートを参照して、デコーダのミスマッチ制御および逆量子化部分における処理の流れと符号化ビット列の解読法について説明する。
【０１３２】
復号された縦横８要素のＤＣＴ係数の各ブロックに対して、まずエンコーダ側で用いられた量子化行列の利用方法に従って、量子化行列を設定する。ステップＳ６１においては、エンコーダによって符号化された符号化ビット列のうち、例えばVideo Object Layer Classのvideo_object_layer_quant_matrixのフラグが解読される。そして、そのフラグがONである場合には、量子化行列を設定しない。あるいは、ステップＳ６２において、設定器２６１により、量子化行列を設定した場合と量子化の演算を共通に行なえるように、全ての要素の値が（０以外でかつ正の値で）等しいなどの仮の量子化行列が設定される。そのフラグがOFFである場合には、ステップＳ６３において、設定器２３２により、ＭＰＥＧ１／２型の量子化行列が設定される。ここで設定される量子化行列は、画像内符号化と画像間符号化とでは異なる。
【０１３３】
また、例えばVideo Object Layer Classのload_intra_quant_mat、あるいはload_nonintra_quant_matのフラグがONになっている場合には、あらかじめ用意されている量子化行列以外のものを設定するために、例えばintra_quant_mat[64]あるいはnonintra_quant_mat[64]として符号化された量子化行列の６４個の要素を復号して用いる等の処理を行なわなければならない。
【０１３４】
次に、エンコーダ側で用いられた量子化の方法に従って、逆量子化を行なう。ステップＳ６４においては、エンコーダによって符号化された符号化ビット列のうち、例えばVideo Object Layer Classのvideo_object_layer_quant_typeのフラグが解読される。そのフラグがONである場合には、ステップＳ６５に進み、逆量子化器２２３により、Ｈ．２６１／３型の逆量子化が行われる。一方、そのフラグがOFFである場合には、ステップＳ６６に進み、逆量子化器２２４によりＭＰＥＧ１／２型の逆量子化が行われる。逆量子化を行なう際には、量子化行列が設定されている場合にはそれを用い、量子化行列が設定されていない場合にはそれを用いない。あるいは、仮の量子化行列が設定されている場合には、それを用いる。
【０１３５】
その後、エンコーダ側で用いられたＩＤＣＴミスマッチの対策方法に従って、ミスマッチ制御（およびＤＣＴ係数のクリッピング）を行なう。ステップＳ６７において、エンコーダによって符号化された符号化ビット列のうち、例えばVideo Object Layer Classのvideo_object_layer_mismatchのフラグが解読される。そのフラグがONである場合には、ステップＳ６８に進み、ミスマッチ制御器２４１により、ＤＣＴ係数の奇数化によるミスマッチ制御が行われた後で、ステップＳ６９において、クリッピング器２４３により、ＤＣＴ係数のクリッピングが行われる。一方、そのフラグがOFFである場合には、ステップＳ７０に進み、クリッピング器２５２により、ＤＣＴ係数のクリッピングが行われた後で、ステップＳ７１において、ミスマッチ制御器２５３により、ＤＣＴ係数の（７，７）係数をtoggleすることによるミスマッチ制御が行われる。
【０１３６】
上記の例では、量子化行列の利用方法、量子化および逆量子化の方法、およびＩＤＣＴミスマッチの対策方法等について、どれも丁度二通りの処理方法だけある場合を示した。しかし、何らかの方法について三通り以上の処理方法が考えられる場合についても、フラグのON,OFFの二通りのシンボルを三種類以上の表現が可能なシンボルに変え、それらのシンボルに応じて処理方法を切り替えるようにしても良い。
【０１３７】
また、上記処理以外についても、いくつかの処理方法が用意又は想定される何らかの処理のために、例えばVideo Object Layer Classにおいて新たなフラグを設けておき、そのフラグとその処理とを連動させることにしても良い。あるいは、逆に用意又は想定される処理の数自体や、処理方法の数を減らす等の簡潔化を行なうことによって、フラグの数を減らす等のことを行なっても良い。あるいは、可能である限りこれらの処理の順番を入れ換えても良い。
【０１３８】
また上記の例では、各方法を示すフラグとして例えばVideo Object Layer Classのvideo_object_layer_quant_type等のフラグを用いて説明を行なったが、同様の役割を担う別名のフラグであっても良い。あるいは、例えば、Video Object Layer Classにおいてこのフラグを設定する代わりに、Video Object Plane Class又はMacroblock Layer等の他のLayerで設定することによって、設定したフラグに連動させる処理方法をオブジェクト単位からフレーム又はマクロブロック単位等の別の単位で切り替えることにしても良い。
【０１３９】
図１１は、本発明の復号装置を応用した復号器（デコーダ）のさらに他の実施の形態の構成例を示すブロック図である。この実施の形態（デコーダ）に対応するエンコーダは、図１に示したエンコーダ、あるいは図６に示したエンコーダの場合と全く同様の構成であり、デコーダの構成のみが異なる。図１１は、図６に示したエンコーダに対するデコーダを示している。なお、図１のエンコーダに対するデコーダは、その基本となる考え方および実現方法は以下に説明するように、図１１の場合と同様である。従って、その図示および説明は省略する。
【０１４０】
図１１に示したデコーダの基本的な構成は、図６に示したデコーダの場合とほぼ同様である。図６のデコーダと異なる点は、図１１の復号器の逆可変長符号化器２０９によって復号されるフラグmismatchを利用せずに無視し、ミスマッチ制御器２４１によって常にＤＣＴ係数の奇数化によるミスマッチ制御を行なう点である。ＤＣＴ係数のクリッピング器２４３は、このミスマッチ制御器２４１の後に置かれる。
【０１４１】
上記のように構成する理由は以下の通りである。エンコーダ側とデコーダ側とで用いるミスマッチの対策方法が異なる場合、当然ながらミスマッチは起こり、一般にエンコードされたフレーム数が多くなるほどそのミスマッチは視覚的に感知されやすくなる。しかし、エンコーダ側でＤＣＴ係数の（７，７）係数をtoggleするミスマッチ制御を行なって生成した符号化ビット列に対して、デコーダ側でＤＣＴ係数の奇数化によるミスマッチ制御を行なった場合、そのミスマッチの周波数成分はＤＣＴ係数の（７，７）係数の成分だけにほぼ限定される。この成分は非常に高周波であるため、視覚的には比較的感知されにくい。
【０１４２】
そのため、デコーダが行なうミスマッチの対策方法はＤＣＴ係数の奇数化によるミスマッチ制御のみと限定することによって、デコーダの演算あるいは回路を簡易化することにしても良い。なお、このような簡略化を行なった場合、ミスマッチとして視覚的に感知されるべきノイズ成分を軽減あるいは除去するために、ノイズ軽減フィルタあるいはノイズ除去フィルタを用いても良い。このフィルタは、ミスマッチ制御の処理を行なった後や、画像を表示する装置にデコードした画像を送る直前等のように、主にノイズ成分を軽減、あるいは除去による効果が視覚的に現れる位置に置かれる。
【０１４３】
図１１に示した実施の形態における、より詳しい処理の流れ等について、以下説明する。
【０１４４】
図１２に示したフローチャートは、図１１に示したデコーダにおける処理の流れと符号化ビット列の解読法の一例を示している。図１１の実施の形態に対応するエンコーダは、図１あるいは図６のエンコーダの場合と全く同様の構成であり、デコーダの構成のみが異なる。図１２のフローチャートは、図６のエンコーダに対する本実施の形態のデコーダのミスマッチ制御および逆量子化部分を示している。
【０１４５】
なお、図１のエンコーダに対する本実施の形態のデコーダのミスマッチ制御および逆量子化部分は示していないが、その基本となる考え方および実現方法は以下に説明することと同様である。
【０１４６】
復号された縦横８要素のＤＣＴ係数の各ブロックに対して、まずエンコーダ側で用いられた量子化行列の利用方法に従って、量子化行列を設定する。ステップＳ８１においては、エンコーダによって符号化された符号化ビット列のうち、例えばVideo Object Layer Classのvideo_object_layer_quant_matrixのフラグが解読される。そして、そのフラグがONである場合には、量子化行列を設定しない。あるいは、ステップＳ８２において、設定器２６１により、量子化行列を設定した場合と量子化の演算を共通に行なえるように、全ての要素の値が（０以外でかつ正の値で）等しいなどの仮の量子化行列が設定される。そのフラグがOFFである場合には、ステップＳ８３において、設定器２３２により、ＭＰＥＧ１／２型の量子化行列が設定される。ここで設定される量子化行列は、画像内符号化と画像間符号化とでは異なる。
【０１４７】
また、例えばVideo Object Layer Classのload_intra_quant_mat、あるいはload_nonintra_quant_matのフラグがONになっている場合には、あらかじめ用意されている量子化行列以外のものを設定するために、例えばintra_quant_mat[64]あるいはnonintra_quant_mat[64]として符号化された量子化行列の６４個の要素を復号して用いる等の処理を行なわなければならない。
【０１４８】
次に、エンコーダ側で用いられた量子化の方法に従って、逆量子化を行なう。ステップＳ８４においては、エンコーダによって符号化された符号化ビット列のうち、例えばVideo Object Layer Classのvideo_object_layer_quant_typeのフラグが解読される。そのフラグがONである場合には、ステップＳ８５に進み、逆量子化器２２３により、Ｈ．２６１／３型の逆量子化が行われる。一方、そのフラグがOFFである場合には、ステップＳ８６に進み、逆量子化器２２４によりＭＰＥＧ１／２型の逆量子化が行われる。逆量子化を行なう際には、量子化行列が設定されている場合にはそれを用い、量子化行列が設定されていない場合にはそれを用いない。あるいは、仮の量子化行列が設定されている場合には、それを用いる。
【０１４９】
その後、ステップＳ８７に進み、ミスマッチ制御器２４１により、ＤＣＴ係数の奇数化によるミスマッチ制御が行われた後で、ステップＳ８８において、クリッピング器２４３により、ＤＣＴ係数のクリッピングが行われる。
【０１５０】
図１２に示した実施の形態における符号化シンタックスの基本的構成は、図９に示した実施の形態の場合と基本的に同様であるが、ＩＤＣＴミスマッチの対策方法等が唯一つしかない点が大きく異なる。
【０１５１】
復号された縦横８要素のＤＣＴ係数の各ブロックに対して、図１１の実施の形態では、エンコーダ側で用いられたＩＤＣＴミスマッチの対策方法に依らず、常にＤＣＴ係数の奇数化によるミスマッチ制御を行なう。ＤＣＴ係数のクリッピングは、このミスマッチ制御が行なわれた後で行なう。そのため、エンコーダによって符号化された符号化ビット列のうち、例えばVideo Object Layer Classのvideo_object_layer_mismatchのフラグは利用されずに無視される。
【０１５２】
上記に記した処理以外でも、処理の簡略化による影響が大きくないものに対しては、逆可変長符号化器２０９によって復号されるフラグ等を利用せずに無視し、処理を簡略化しても良い。
【０１５３】
以上説明したように、本発明によれば、既存の動画像の高能率符号化方法
との互換性を取ることができる。また、量子化および逆量子化の方法、量子化行列の利用方法、ＩＤＣＴミスマッチの対策方法等で、最適な方法の組合せを指定し、より高能率の符号化および復号を行うことができるため、符号化効率を向上させることができる。
【０１５４】
なお、上記各フローチャートで示した処理を実行させるためのプログラムは、符号化装置および復号装置が備えるＲＯＭ（read only memory）等に予め記憶させておいたり、ＣＤ−ＲＯＭ（compact disc-read only memory）等に記録して使用者に供給するようにすることができる。
【０１５５】
また、本発明の符号化装置および復号装置は、例えば、光磁気ディスクや磁気テープなどの記録媒体に記録し、それを再生してディスプレイ等に表示したり、テレビ会議システム、テレビ電話システム、放送用機器、マルチメディアデータベース検索システム等のように、動画像信号を伝送路を介して送信側から受信側に伝送し、受信側において、これを受信し、表示する場合や、動画像信号を編集し、記録する場合等にも応用することができる。
【０１５６】
【発明の効果】
請求項１に記載の符号化装置、および請求項２に記載の符号化方法によれば、高能率の符号化が可能となる。
【０１５７】
請求項３に記載の復号装置、および請求項４に記載の復号方法においては、高能率の符号化が可能となる。
【図面の簡単な説明】
【図１】本発明の符号化装置を応用した符号化器の一実施の形態の構成例を示すブロック図である。
【図２】本発明の復号装置を応用した復号器の一実施の形態の構成例を示すブロック図である。
【図３】図１の符号化器の量子化およびミスマッチ制御部分における処理手順と符号化ビット列の生成法を説明するフローチャートである。
【図４】図２の復号器のミスマッチ制御および逆量子化部分における処理手順と符号化ビット列の解読法を説明するフローチャートである。
【図５】図３および図４のVideo Object Layer Classにおけるシンタックスを示す図である。
【図６】本発明の符号化装置を応用した符号化器の他の実施の形態の構成例を示すブロック図である。
【図７】本発明の復号装置を応用した復号器の他の実施の形態の構成例を示すブロック図である。
【図８】図６の符号化器の量子化およびミスマッチ制御部分における処理手順と符号化ビット列の生成法を説明するフローチャートである。
【図９】図７の復号器のミスマッチ制御および逆量子化部分における処理手順と符号化ビット列の解読法を説明するフローチャートである。
【図１０】図８および図９のVideo Object Layer Classにおけるシンタックスを示す図である。
【図１１】本発明の復号装置を応用した復号器のさらに他の実施の形態の構成例を示すブロック図である。
【図１２】図１１の復号器のミスマッチ制御および逆量子化部分における処理手順と符号化ビット列の解読法を説明するフローチャートである。
【図１３】従来の符号化器の一例の構成を示すブロック図である。
【図１４】従来の復号器の一例の構成を示すブロック図である。
【図１５】Ｈ．２６１／３型の量子化の概念図である。
【図１６】ＭＰＥＧ１／２型の量子化の概念図である。
【図１７】ＭＰＥＧ１／２型の量子化行列の一例を示す図である。
【図１８】符号化ビット列の構成例を示す図である。
【図１９】ＶＳのシンタックスを示す図である。
【図２０】ＶＯのシンタックスを示す図である。
【図２１】  Video Object Layer Classにおけるシンタックスを示す図である。
【図２２】  Video Object Layer Classにおけるシンタックスを示す図である。
【図２３】  Video Object Plane Classにおけるシンタックスを示す図である。
【図２４】  Video Object Plane Classにおけるシンタックスを示す図である。
【図２５】  Video Object Plane Classにおけるシンタックスを示す図である。
【図２６】  Video Object Plane Classにおけるシンタックスを示す図である。
【図２７】ＩおよびＰピクチャ（ＶＯＰ）におけるマクロブロックのシンタックスを示す図である。
【図２８】Ｂピクチャ（ＶＯＰ）でのマクロブロックのシンタックスを示す図である。
【図２９】ＭＯＤＢの可変長符号を示す図である。
【図３０】図１３の符号化器の量子化およびミスマッチ制御部分における処理手順と符号化ビット列の生成法を説明するフローチャートである。
【図３１】図１４の復号器のミスマッチ制御および逆量子化部分における処理手順と符号化ビット列の解読法を説明するフローチャートである。
【符号の説明】
１０１  動きベクトル検出器，  １０２  フレームメモリ，  １０３，２０３動き補償器，  １０４，１１０，２１０  加算器，  １０５  ＤＣＴ器，  １０６  ＩＤＣＴ器，  １０９  可変長符号化器，  １２１  Ｈ．２６１／３型の量子化器，  １２２  ＭＰＥＧ１／２型の量子化器，  １２３，２２３  Ｈ．２６１／３型の逆量子化器，  １２４，１２５，２２４，２２５  ＭＰＥＧ１／２型の逆量子化器，  １３１  仮の量子化行列の設定器，１３２，２３２，２３３ＭＰＥＧ１／２型の量子化行列の設定器，  １４１，１５１，２４１，２５１係数を奇数化するミスマッチ制御器，  １４３，１５２，１５３，２４３，２４４，２５２  ＤＣＴ係数のクリッピング器，  １５４，２５３  （７，７）係数をtoggleするミスマッチ制御器，  ２０９  逆可変長符号化器
【図１】
0004001969.tif 000003
【図２】
0004001969.tif 000004
【図３】
0004001969.tif 000005
【図４】
0004001969.tif 000006
【図５】
0004001969.tif 000007
【図６】
0004001969.tif 000008
【図７】
0004001969.tif 000009
【図８】
0004001969.tif 000010
【図９】
0004001969.tif 000011
【図１０】
0004001969.tif 000012
【図１１】
0004001969.tif 000013
【図１２】
0004001969.tif 000014
【図１３】
0004001969.tif 000015
【図１４】
0004001969.tif 000016
【図１５】
0004001969.tif 000017
【図１６】
0004001969.tif 000018
【図１７】
0004001969.tif 000019
【図１８】
0004001969.tif 000020
【図１９】
0004001969.tif 000021
【図２０】
0004001969.tif 000022
【図２１】
0004001969.tif 000023
【図２２】
0004001969.tif 000024
【図２３】
0004001969.tif 000025
【図２４】
0004001969.tif 000026
【図２５】
0004001969.tif 000027
【図２６】
0004001969.tif 000028
【図２７】
0004001969.tif 000029
【図２８】
0004001969.tif 000030
【図２９】
0004001969.tif 000031
【図３０】
0004001969.tif 000032
【図３１】
0004001969.tif 000033