(57)【要約】【課題】符号化効率をさらに向上させた画像符号化装置および画像復号装置を提供する。【解決手段】画面内予測部と、係数個数予測部と、ＶＬＣテーブル選択部と、可変長符号化部とを備える。係数個数予測部は、前記画面内予測部の予測モードに応じて符号化対象ブロックの非０の係数の個数を予測する。ＶＬＣテーブル選択部は、予測された符号化対象ブロックの非０の係数の個数に応じてＶＬＣテーブルを選択する。画面内予測の予測モードと、既に符号化済みの周囲のブロックの中で、どのブロックの非０の係数の個数を用いて符号化対象ブロックの非０の係数の個数を予測すれば良いかの間にある所定の関係を用いることによって、係数個数予測部で、高い精度で符号化対象ブロックの係数を予測することができるので、予測された非０の係数の個数の予測値を用いて、ＶＬＣテーブル選択部でＶＬＣテーブルを選択し、選択されたＶＬＣテーブルを用いて可変長符号化部で符号化を行うことによって、高い符号化効率で画像を符号化することができる。【選択図】図１
2008092456.tif 000002
【特許請求の範囲】
【請求項１】
画面内予測部と、
係数個数予測部と、
ＶＬＣテーブル選択部と、
可変長符号化部とを備え、
前記係数個数予測部は、前記画面内予測部の予測モードに応じて符号化対象ブロックの非０の係数の個数を予測し、
前記ＶＬＣテーブル選択部は、予測された符号化対象ブロックの非０の係数の個数に応じてＶＬＣテーブルを選択する、画像符号化装置。
【請求項２】
前記係数個数予測部は、既に符号化済みのブロックの非０の係数の個数の線形結合によって、符号化対象ブロックの非０の係数の個数を予測し、さらに、前記線形結合の重みを前記画面内予測部の予測モードに応じて変化させる、請求項１に記載の画像符号化装置。
【請求項３】
前記係数個数予測部は、前記画面内予測部における符号化対象ブロックの予測モードが左方向からの予測の場合には、線形結合における重みにおいて、符号化対象ブロックの左に隣接するブロックの非０の係数の個数に対する重みを他のブロックの非０の係数の個数に対する重みよりも大きくし、また、上方向からの予測の場合には、線形結合における重みにおいて、符号化対象ブロックの上に隣接するブロックの非０の係数の個数に対する重みを他のブロックの非０の係数の個数に対する重みよりも大きくする、請求項２に記載の画像符号化装置。
【請求項４】
前記係数個数予測部は、前記画面内予測部における符号化対象ブロックの予測モードと、符号化対象ブロックの左に隣接するブロックの予測モードと、符号化対象ブロックの上に隣接するブロックの予測モードとを比較することによって、線形結合における左に隣接するブロックの非０の係数の個数に対する重み、および、上に隣接するブロックの非０の係数の個数に対する重み、を変化させる、請求項２に記載の画像符号化装置。
【請求項５】
前記画面内予測部における符号化対象ブロックの予測モードと、符号化対象ブロックの左に隣接するブロックの予測モードと、符号化対象ブロックの上に隣接するブロックの予測モードとを比較し、符号化対象ブロックの予測モードに近い方のブロックの非０の係数の個数に対する重みを他のブロックの非０の係数の個数に対する重みよりも大きくする、請求項４に記載の画像符号化装置。
【請求項６】
画面内予測部と、
係数個数予測部と、
ＶＬＣテーブル選択部と、
可変長符号復号部とを備え、
前記係数個数予測部は、前記画面内予測部の予測モードに応じて非０の係数の個数を予測し、
前記ＶＬＣテーブル選択部は、予測された符号化対象ブロックの非０の係数の個数に応じてＶＬＣテーブルを選択する、画像復号装置。
【請求項７】
前記係数個数予測部は、既に復号済みのブロックの非０の係数の個数の線形結合によって、符号化対象ブロックの非０の係数の個数を予測し、さらに、前記線形結合の重みを前記画面内予測部の予測モードに応じて変化させる、請求項６に記載の画像復号装置。
【請求項８】
前記係数個数予測部は、前記画面内予測部における符号化対象ブロックの予測モードが左方向からの予測の場合には、線形結合における重みにおいて、符号化対象ブロックの左に隣接するブロックの非０の係数の個数に対する重みを他のブロックの非０の係数の個数に対する重みよりも大きくし、また、上方向からの予測の場合には、線形結合における重みにおいて、符号化対象ブロックの上に隣接するブロックの非０の係数の個数に対する重みを他のブロックの非０の係数の個数に対する重みよりも大きくする、請求項７に記載の画像復号装置。
【請求項９】
前記係数個数予測部は、前記画面内予測部における復号対象ブロックの予測モードと、復号対象ブロックの左に隣接するブロックの予測モードと、復号対象ブロックの上に隣接するブロックの予測モードを比較することによって、線形結合における左に隣接するブロックの非０の係数の個数に対する重み、および、上に隣接するブロックの非０の係数の個数に対する重み、を変化させる、請求項７に記載の画像復号装置。
【請求項１０】
前記係数個数予測部は、前記画面内予測部における復号対象ブロックの予測モードと、復号対象ブロックの左に隣接するブロックの予測モードと、復号対象ブロックの上に隣接するブロックの予測モードとを比較し、復号対象ブロックの予測モードに近い方のブロックの非０の係数の個数に対する重みを他のブロックの非０の係数の個数に対する重みよりも大きくする、請求項９に記載の画像復号装置。
【請求項１１】
画面内予測部と、
画面間予測部と、
予測方法記憶部と、
係数個数予測部と、
ＶＬＣテーブル選択部と、
可変長符号化部とを備え、
前記係数個数予測部は、前記予測方法記憶部で記憶されている予測方法に応じて符号化対象ブロックの非０の係数の個数を予測し、前記ＶＬＣテーブル選択部は、予測された符号化対象ブロックの非０の係数の個数に応じてＶＬＣテーブルを選択する、画像符号化装置。
【請求項１２】
前記係数個数予測部は、既に符号化済みのブロックの非０の係数の個数の線形結合によって、符号化対象ブロックの非０の係数の個数を予測し、さらに、前記線形結合の重みを前記予測方法記憶部に記憶された予測方法に応じて変化させる、請求項１１に記載の画像符号化装置。
【請求項１３】
前記係数個数予測部は、符号化対象ブロックが画面内予測で予測され、符号化対象ブロックの左に隣接するブロック及び上に隣接するブロックがともに画面間予測で予測されている場合において、符号化対象ブロックの左に隣接するブロックの非０の係数の個数と、符号化対象ブロックの上に隣接するブロックの非０の係数の個数の最大値を、符号化対象ブロックの非０の係数の個数の予測値とする、請求項１２に記載の画像符号化装置。
【請求項１４】
前記係数個数予測部は、符号化対象ブロックが画面内予測で予測され、符号化対象ブロックの左に隣接するブロック及び上に隣接するブロックがともに画面間予測で予測されている場合において、符号化対象ブロックの左に隣接するブロックの非０の係数の個数と、符号化対象ブロックの上に隣接するブロックの非０の係数の個数のうち、個数の大きい方の重みを大きくして線形結合を求めることにより符号化対象ブロックの非０の係数の個数の予測値を求める、請求項１２に記載の画像符号化装置。
【請求項１５】
前記係数個数予測部は、符号化対象ブロックが画面内予測で予測され、符号化対象ブロックの左に隣接するブロック及び上に隣接するブロックがともに画面間予測で予測されている場合において、符号化対象ブロックの左に隣接するブロックの非０の係数の個数と、符号化対象ブロックの上に隣接するブロックの非０の係数の個数の平均値に所定の値を加えることによって符号化対象ブロックの非０の係数の個数の予測値を求める、請求項１２に記載の画像符号化装置。
【請求項１６】
前記係数個数予測部は、符号化対象ブロックが画面間予測で予測され、符号化対象ブロックの左に隣接するブロック及び上に隣接するブロックがともに画面内予測で予測されている場合において、符号化対象ブロックの左に隣接するブロックの非０の係数の個数と、符号化対象ブロックの上に隣接するブロックの非０の係数の個数の最小値を、符号化対象ブロックの非０の係数の個数の予測値とする、請求項１２に記載の画像符号化装置。
【請求項１７】
前記係数個数予測部は、符号化対象ブロックが画面間予測で予測され、符号化対象ブロックの左に隣接するブロック及び上に隣接するブロックがともに画面内予測で予測されている場合において、符号化対象ブロックの左に隣接するブロックの非０の係数の個数と、符号化対象ブロックの上に隣接するブロックの非０の係数の個数のうち、個数の小さい方の重みを大きくして線形結合を求めることにより符号化対象ブロックの非０の係数の個数の予測値を求める、請求項１２に記載の画像符号化装置。
【請求項１８】
前記係数個数予測部は、符号化対象ブロックが画面内予測で予測され、符号化対象ブロックの左に隣接するブロック及び上に隣接するブロックがともに画面間予測で予測されている場合において、符号化対象ブロックの左に隣接するブロックの非０の係数の個数と、符号化対象ブロックの上に隣接するブロックの非０の係数の個数の平均値から所定の値を減じることによって符号化対象ブロックの非０の係数の個数の予測値を求める、請求項１２に記載の画像符号化装置。
【請求項１９】
前記係数個数予測部は、符号化対象ブロックが画面内予測で予測され、符号化対象ブロックの左に隣接するブロック及び上に隣接するブロックのどちらか一方が画面内予測で予測されている場合において、符号化対象ブロックの左に隣接するブロックの非０の係数の個数と、符号化対象ブロックの上に隣接するブロックの非０の係数の個数のうち、画面内予測で予測された方の重みを大きくして線形結合を求めることにより符号化対象ブロックの非０の係数の個数の予測値を求める、請求項１２に記載の画像符号化装置。
【請求項２０】
前記係数個数予測部は、符号化対象ブロックが画面間予測で予測され、符号化対象ブロックの左に隣接するブロック及び上に隣接するブロックのどちらか一方が画面間予測で予測されている場合において、符号化対象ブロックの左に隣接するブロックの非０の係数の個数と、符号化対象ブロックの上に隣接するブロックの非０の係数の個数のうち、画面間予測で予測された方の重みを大きくして線形結合を求めることにより符号化対象ブロックの非０の係数の個数の予測値を求める、請求項１２に記載の画像符号化装置。
【請求項２１】
画面内予測部と、
画面間予測部と、
予測方法記憶部と、
係数個数予測部と、
ＶＬＣテーブル選択部と、
可変長符号化部とを備え、
前記係数個数予測部は、前記予測方法記憶部で記憶されている予測方法に応じて符号化対象ブロックの非０の係数の個数を予測し、
前記ＶＬＣテーブル選択部は、予測された復号対象ブロックの非０の係数の個数に応じてＶＬＣテーブルを選択する、画像復号装置。
【請求項２２】
前記係数個数予測部は、既に復号済みのブロックの非０の係数の個数の線形結合によって、復号対象ブロックの非０の係数の個数を予測し、さらに、前記線形結合の重みを前記予測方法記憶部に記憶された予測方法に応じて変化させる、請求項２１に記載の画像復号装置。
【請求項２３】
前記係数個数予測部は、復号対象ブロックが画面内予測で予測され、復号対象ブロックの左に隣接するブロック及び上に隣接するブロックがともに画面間予測で予測されている場合において、復号対象ブロックの左に隣接するブロックの非０の係数の個数と、復号対象ブロックの上に隣接するブロックの非０の係数の個数の最大値を、復号対象ブロックの非０の係数の個数の予測値とする、請求項２２に記載の画像復号装置。
【請求項２４】
前記係数個数予測部は、復号対象ブロックが画面内予測で予測され、復号対象ブロックの左に隣接するブロック及び上に隣接するブロックがともに画面間予測で予測されている場合において、復号対象ブロックの左に隣接するブロックの非０の係数の個数と、復号対象ブロックの上に隣接するブロックの非０の係数の個数のうち、個数の大きい方の重みを大きくして線形結合を求めることにより復号対象ブロックの非０の係数の個数の予測値を求める、請求項２２に記載の画像復号装置。
【請求項２５】
前記係数個数予測部は、復号対象ブロックが画面内予測で予測され、復号対象ブロックの左に隣接するブロック及び上に隣接するブロックがともに画面間予測で予測されている場合において、復号対象ブロックの左に隣接するブロックの非０の係数の個数と、復号対象ブロックの上に隣接するブロックの非０の係数の個数の平均値に所定の値を加えることによって復号対象ブロックの非０の係数の個数の予測値を求める、請求項２２に記載の画像復号装置。
【請求項２６】
前記係数個数予測部は、復号対象ブロックが画面間予測で予測され、復号対象ブロックの左に隣接するブロック及び上に隣接するブロックがともに画面内予測で予測されている場合において、復号対象ブロックの左に隣接するブロックの非０の係数の個数と、復号対象ブロックの上に隣接するブロックの非０の係数の個数の最小値を、復号対象ブロックの非０の係数の個数の予測値とする、請求項２２に記載の画像復号装置。
【請求項２７】
前記係数個数予測部は、復号対象ブロックが画面間予測で予測され、復号対象ブロックの左に隣接するブロック及び上に隣接するブロックがともに画面内予測で予測されている場合において、復号対象ブロックの左に隣接するブロックの非０の係数の個数と、復号対象ブロックの上に隣接するブロックの非０の係数の個数のうち、個数の小さい方の重みを大きくして線形結合を求めることにより復号対象ブロックの非０の係数の個数の予測値を求める、請求項２２に記載の画像復号装置。
【請求項２８】
前記係数個数予測部は、復号対象ブロックが画面内予測で予測され、復号対象ブロックの左に隣接するブロック及び上に隣接するブロックがともに画面間予測で予測されている場合において、復号対象ブロックの左に隣接するブロックの非０の係数の個数と、復号対象ブロックの上に隣接するブロックの非０の係数の個数の平均値から所定の値を減じることによって復号対象ブロックの非０の係数の個数の予測値を求める、請求項２２に記載の画像復号装置。
【請求項２９】
前記係数個数予測部は、復号対象ブロックが画面内予測で予測され、復号対象ブロックの左に隣接するブロック及び上に隣接するブロックのどちらか一方が画面内予測で予測されている場合において、復号対象ブロックの左に隣接するブロックの非０の係数の個数と、復号対象ブロックの上に隣接するブロックの非０の係数の個数のうち、画面内復号で予測された方の重みを大きくして線形結合を求めることにより復号対象ブロックの非０の係数の個数の予測値を求める、請求項２２に記載の画像復号装置。
【請求項３０】
前記係数個数予測部は、復号対象ブロックが画面間予測で予測され、復号対象ブロックの左に隣接するブロック及び上に隣接するブロックのどちらか一方が画面間予測で予測されている場合において、復号対象ブロックの左に隣接するブロックの非０の係数の個数と、復号対象ブロックの上に隣接するブロックの非０の係数の個数のうち、画面間復号で予測された方の重みを大きくして線形結合を求めることにより復号対象ブロックの非０の係数の個数の予測値を求める、請求項２２に記載の画像復号装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像の符号化を行う画像符号化装置及び、符号化された画像データの復号を行う画像復号装置に関する。
【背景技術】
【０００２】
図１４は、従来の画像符号化装置の構成を示すブロック図である。
従来の画像符号化装置は、変換部１４０１、量子化部１４０２、逆量子化部１４０３、逆変換部１４０４、画面内予測部１４０５、画面間予測部１４０６、フレームメモリ１４０７、可変長符号化部１４０８、スイッチ１４０９、減算部１４１０、加算部１４１１から構成される。
【０００３】
画像符号化装置に画像が入力されると、まず、画面を様々なサイズのブロック（例えば１６×１６、８×８、４×４）に分割し、分割したブロック毎に画面内予測部１４０５もしくは画面間予測部１４０６において入力画像の予測を行い予測画像を生成する（画面内予測を用いるか画面間予測を用いるかの選択はスイッチ１４０９で行われる）。なお、スイッチ１４０９は、符号化制御部（図示せず）により制御されるものとする。符号化制御部（図示せず）は、入力画像に基づいて画面内予測もしくは画面間予測のうち、符号化効率が高い方を選択して、スイッチ１４０９を切り替えるものとする。また、以下に説明する画面内予測において画面内予測モードが複数ある場合の切り替えも符号化制御部が実行するものとする。
【０００４】
次に、減算部１４１０により、入力画像から予測画像を減算して予測誤差を計算し、さらに、減算で得られた予測誤差に対して、変換部１４０１において離散コサイン変換やアダマール変換などの変換を施す。続いて変換で得られた変換係数は、量子化部１４０２において量子化される。
【０００５】
量子化部１４０２で量子化された変換係数（以後、単に係数と呼ぶ）は、１次元に並べ替えられ、ラン・レベルの組み合わせで表現され、可変長符号化部１４０８において可変長符号化が行われる。ここでランとは連続するゼロ係数の個数、レベルとはゼロ係数に続くゼロ以外の係数の値である。
【０００６】
量子化部１４０２で量子化された係数は、逆量子化部１４０３で逆量子化され、逆変換部１４０４において逆変換され、加算部１４１１において、先ほど生成した予測画像と加算される。得られた画像は、元の入力画像を再生した再構成画像である。
【０００７】
再構成画像は、フレームメモリ１４０７において記憶される。フレームメモリ１４０７に記憶された再構成画像は、画面内予測および画面間予測において参照される画像（参照画像）として用いられる。
【０００８】
次に、画面内予測部１４０５の詳細について、非特許文献１の方法に基づいて説明する。
【０００９】
非特許文献１では、輝度の画面内予測として、４×４画素のブロック単位で予測を行う４×４画面内予測と、８×８画素のブロック単位で予測を行う８×８画面内予測と、１６×１６画素のブロック単位で予測を行う１６×１６画面内予測とが示されている。
【００１０】
４×４画面内予測も、８×８画面内予測あるいは１６×１６画面内予測も両方とも、ブロック単位で予測方法（予測モード）を選択し、用いた予測モード毎に、符号化済みブロックの画素値を利用して符号化対象ブロックの画素値の予測を行う。なお、復号側でも予測モードが識別できるように、予測モードに関する情報は符号化される。
【００１１】
図１５は、４×４画面内予測の予測モードを示す図である。
図１５に示されるように、４×４画面内予測には９種類の予測モードがある。
【００１２】
例えば、「予測モード０」（以下、単に「モード０」とも称する）は、垂直予測と呼ばれ、符号化対象ブロックの上に隣接するブロックの画素値から符号化対象ブロックの画素値を予測する。
【００１３】
また、「予測モード１」（以下、単に「モード１」とも称する）は、水平予測と呼ばれ、符号化対象ブロックの左に隣接するブロックの画素値から符号化対象ブロックの画素値を予測する。以上説明したように、予測モードに応じて符号化済みブロックのどの画素を用いて予測するかが異なる。
【００１４】
図１６は、符号化対象ブロックの画素（ａ〜ｐ）と参照する符号化済みブロックの画素（Ａ〜Ｍ）の位置関係を示す図である。
【００１５】
図１５で示した４×４画面内予測は、具体的には、以下のように、モードに応じて画素Ａ〜Ｍの画素値を用いて画素a〜ｐの画素値を予測する。
【００１６】
「モード０」：垂直予測
ａ，ｅ，ｉ，ｍ：Ａ
ｂ，ｆ，ｊ，ｎ：Ｂ
ｃ，ｇ，ｋ，ｏ：Ｃ
ｄ，ｈ，ｌ，ｐ：Ｄ
「モード１」：水平予測
ａ，ｂ，ｃ，ｄ：Ｉ
ｅ，ｆ，ｇ，ｈ：Ｊ
ｉ，ｊ，ｋ，ｌ：Ｋ
ｍ，ｎ，ｏ，ｐ：Ｌ
「モード２」：ＤＣ予測
（Ａ＋Ｂ＋Ｃ＋Ｄ＋Ｉ＋Ｊ＋Ｋ＋Ｌ＋４）＞＞３
「モード３」：左下方向予測
ａ：（Ａ＋２Ｂ＋Ｃ＋２）＞＞２
ｂ，ｅ：（Ｂ＋２Ｃ＋Ｄ＋２）＞＞２
ｃ，ｆ，ｉ：（Ｃ＋２Ｄ＋Ｅ＋２）＞＞２
ｄ，ｇ，ｊ，ｍ：（Ｄ＋２Ｅ＋Ｆ＋２）＞＞２
ｈ，ｋ，ｎ：（Ｅ＋２Ｆ＋Ｇ＋２）＞＞２
ｌ，ｏ：（Ｆ＋２Ｇ＋Ｈ＋２）＞＞２
ｐ：（Ｇ＋３Ｈ＋２）＞＞２
「モード４」：右下方向予測
ｍ：（Ｊ＋２Ｋ＋Ｌ＋２）＞＞２
ｉ，ｎ：（Ｉ＋２Ｊ＋Ｋ＋２）＞＞２
ｅ，ｊ，ｏ：（Ｍ＋２Ｉ＋Ｊ＋２）＞＞２
ａ，ｆ，ｋ，ｐ：（Ａ＋２Ｍ＋Ｉ＋２）＞＞２
ｂ，ｇ，ｌ：（Ｍ＋２Ａ＋Ｂ＋２）＞＞２
ｃ，ｈ：（Ａ＋２Ｂ＋Ｃ＋２）＞＞２
ｄ：（Ｂ＋２Ｃ＋Ｄ＋２）＞＞２
「モード５」：垂直右方向予測
ａ，ｊ：（Ｍ＋Ａ＋１）＞＞１
ｂ，ｋ：（Ａ＋Ｂ＋１）＞＞１
ｃ，ｌ：（Ｂ＋Ｃ＋１）＞＞１
ｄ：（Ｃ＋Ｄ＋１）＞＞１
ｅ，ｎ：（Ｉ＋２Ｍ＋Ａ＋２）＞＞２
ｆ，ｏ：（Ｍ＋２Ａ＋Ｂ＋２）＞＞２
ｇ，ｐ：（Ａ＋２Ｂ＋Ｃ＋２）＞＞２
ｈ：（Ｂ＋２Ｃ＋Ｄ＋２）＞＞２
ｉ：（Ｍ＋２Ｉ＋Ｊ＋２）＞＞２
ｍ：（Ｉ＋２Ｊ＋Ｋ＋２）＞＞２
「モード６」：水平下方向予測
ａ，ｇ：（Ｍ＋Ｉ＋１）＞＞１
ｂ，ｈ：（Ｉ＋２Ｍ＋Ａ＋２）＞＞２
ｃ：（Ｍ＋２Ａ＋Ｂ＋２）＞＞２
ｄ：（Ａ＋２Ｂ＋Ｃ＋２）＞＞２
ｅ，ｋ：（Ｉ＋Ｊ＋１）＞＞１
ｆ，ｌ：（Ｍ＋２Ｉ＋Ｊ＋２）＞＞２
ｉ，ｏ：（Ｊ＋Ｋ＋１）＞＞１
ｊ，ｐ：（Ｉ＋２Ｊ＋Ｋ＋２）＞＞２
ｍ：（Ｋ＋Ｌ＋１）＞＞１
ｎ：（Ｊ＋２Ｋ＋Ｌ＋２）＞＞２
「モード７」：垂直左方向予測
ａ：（Ａ＋Ｂ＋１）＞＞１
ｂ，ｉ：（Ｂ＋Ｃ＋１）＞＞１
ｃ，ｊ：（Ｃ＋Ｄ＋１）＞＞１
ｄ，ｋ：（Ｄ＋Ｅ＋１）＞＞１
ｌ：（Ｅ＋Ｆ＋１）＞＞１
ｅ：（Ａ＋２Ｂ＋Ｃ＋２）＞＞２
ｆ，ｍ：（Ｂ＋２Ｃ＋Ｄ＋２）＞＞２
ｇ，ｎ：（Ｃ＋２Ｄ＋Ｅ＋２）＞＞２
ｈ，ｏ：（Ｄ＋２Ｅ＋Ｆ＋２）＞＞２
ｐ：（Ｅ＋２Ｆ＋Ｇ＋２）＞＞２
「モード８」：水平上方向予測
ａ：（Ｉ＋Ｊ＋１）＞＞１
ｂ：（Ｉ＋２Ｊ＋Ｋ＋２）＞＞２
ｃ，ｅ：（Ｊ＋Ｋ＋１）＞＞１
ｄ，ｆ：（Ｊ＋２Ｋ＋Ｌ＋２）＞＞２
ｇ，ｉ：（Ｋ＋Ｌ＋１）＞＞１
ｈ，ｊ：（Ｋ＋３Ｌ＋２）＞＞２
ｋ，ｌ，ｍ，ｎ，ｏ，ｐ：Ｌ
なお、記号＞＞はシフト演算を表し、Ｘ＞＞Ｙの場合、値ＸをＹビット右にシフトすることを意味する。
【００１７】
例えば、符号化対象ブロックの予測に、「モード８」を用いる場合、符号化対象ブロック中の画素値ａの予測値は、画素値Ｉ、画素値Ｊを用いて（Ｉ＋Ｊ＋１）＞＞１で求められる。同様に画素値ｂの予測値は、画素値Ｉ、画素値Ｊ、画素値Ｋを用いて（Ｉ＋２Ｊ＋Ｋ＋２）＞＞２で求められる。
【００１８】
８×８画面内予測については図示しないが、４×４画面内予測と同様、「モード０」（垂直予測）、「モード１」（水平予測）、「モード２」（ＤＣ予測）、「モード３」（左下方向予測）、「モード４」（右下方向予測）、「モード５」（垂直右方向予測）、「モード６」（水平下方向予測）、「モード７」（垂直左方向予測）、「モード８」（水平上方向予測）の９つの予測モードがある。
【００１９】
１６×１６画面内予測については図示しないが、「モード０」（垂直予測）、「モード１」（水平予測）、「モード２」（ＤＣ予測）、「モード３」（ＰＬＡＮＥ予測）の４つの予測モードがある。
【００２０】
色差の画面内予測は、８×８画素のブロック単位で行われる。色差の画面内予測の予測モードには、図示しないが、「モード０」（ＤＣ予測）、「モード１」（水平予測）、「モード２」（垂直予測）、「モード３」（ＰＬＡＮＥ予測）の４つの予測モードがある。
【００２１】
１６×１６予測、８×８予測、色差の８×８予測は全て、輝度の４×４予測と同じく既に符号化済みブロックの画素値を用いて符号化対象ブロックの画素値を予測する。
【００２２】
次に、可変長符号化部１４０８について説明する。
変換係数を量子化した後の係数は０となることが多いため、従来から、係数の可変長符号化にはラン・レベル符号化が用いられる。ラン・レベル符号化においては、係数の値（レベル）および０の係数が連続する個数（ラン）に対して、可変長の符号を割り当て符号化する。このような割り当てを行うためのテーブルをＶＬＣテーブルと呼ぶ。
【００２３】
例えば非特許文献２では、ＶＬＣテーブルとして１種類のＶＬＣテーブルだけを用いていたが、非特許文献１および特許文献１では、複数のＶＬＣテーブルを用意し、符号化対象ブロックの周囲の状況に応じてＶＬＣテーブルを切り替えることで、高い符号化効率を達成している。
【００２４】
非特許文献１には、ＣＡＶＬＣ（Ｃｏｎｔｅｘｔ  Ａｄａｐｔｉｖｅ  Ｖａｒｉａｂｌｅ  Ｌｅｎｇｔｈ  Ｃｏｄｉｎｇ）とＣＡＢＡＣ（Ｃｏｎｔｅｘｔ  Ａｄａｐｔｉｖｅ  Ｂｉｎａｒｙ  Ａｒｉｔｈｍｅｔｉｃ  Ｃｏｄｉｎｇ）と呼ばれる２つの可変長符号化の方式がある。
【００２５】
ここでは、ＣＡＶＬＣの方式を説明する。
ＣＡＶＬＣでは、ランとレベル以外の情報である、非０の係数の個数（ＴｏｔａｌＣｏｅｆｆ）と最後に連続する絶対値１の係数の個数（ＴｒａｉｌｉｎｇＯｎｅｓ）の符号化を行い、続いて、ランとレベルそれぞれＶＬＣテーブルを用いてスキャンの逆順方向から別々に符号化する。
【００２６】
ＴｏｔａｌＣｏｅｆｆと、ＴｒａｉｌｉｎｇＯｎｅｓの符号化は、符号化対象ブロックの周辺に位置する符号化済みブロックの状態に応じて、複数のＶＬＣテーブルのうちの一つを適応的に選択することで行われる。
【００２７】
図１７は、符号化対象ブロックと参照する符号化済みブロックとの位置関係を示す図である。
【００２８】
図１７に示されるように符号化対象ブロックがＸであり、符号化済みの周囲のブロックが、ブロックＡ、ブロックＢ、ブロックＤ、ブロックＥである。また、これら符号化済みブロックの非０の係数の個数（以降、単に「係数の個数」と記述した場合も、「非０の係数の個数」を意味するものとする）は、各々、ｎＡ，ｎＢ，ｎＤ，ｎＥとする。
【００２９】
このとき、ＣＡＶＬＣでは、左隣りのブロック（ブロックＡ）の係数の個数ｎＡと、上隣りのブロック（ブロックＢ）の係数の個数ｎＢの平均値を求め、求めた値によってＶＬＣテーブルの選択を行う。
【００３０】
図１８は、ＴｏｔａｌＣｏｅｆｆ（非０係数の個数）と、ＴｒａｉｌｉｎｇＯｎｅｓ（絶対値１の係数の個数）の符号化に用いられるＶＬＣテーブル（抜粋）である。
【００３１】
図１８に示されるように符号化対象ブロックの係数の個数の予測値ｎＸに応じて、０個以上２個未満、２個以上４個未満、４個以上８個未満、８個以上の４つあるテーブルのうちから１つのテーブルが選択される。
【００３２】
例えば、ｎＡが３個、ｎＢが１個の場合、平均は２個であるから、図１８における２個以上４個未満（２≦ｎＣ＜４）のＶＬＣテーブルが選択される。
【００３３】
例えば、符号化対象ブロックＸのＴｒａｉｌｉｎｇＯｎｅｓが２個、ＴｏｔａｌＣｏｅｆｆが２個の場合には、「０１１」と符号化される。
【００３４】
以上のように、非特許文献１のＣＡＶＬＣにおいては、符号化係数済みブロックの係数の個数から、ｎＡとｎＢの平均を求める演算により符号化対象ブロックの係数の個数を予測し、求めた予測値に応じてＶＬＣテーブルを選択する。
【００３５】
これにより１つのＶＬＣテーブルを固定的に用いる場合よりも符号化効率を高めることができる。
【００３６】
特許文献１も非特許文献１と同様に複数のＶＬＣテーブルを選択的に用いる。ここでは、特許文献１の可変長符号化方法について説明する。
【００３７】
特許文献１では、コードテーブルとＶＬＣテーブルという２つのテーブルを用いて係数の個数を符号化し、続いて、係数を符号化する。
【００３８】
表１がコードテーブル、表２がＶＬＣテーブルの例である。コードテーブルとは、係数の個数をあるコード番号に変換するテーブルであり、ＶＬＣテーブルとは、コードテーブルによって得られたコード番号を可変長符号に変換するテーブルである。
【００３９】
【表１】
2008092456.tif 000003
【００４０】
【表２】
2008092456.tif 000004
【００４１】
表１のコードテーブルを用いて、係数の個数をあるコード番号に変換し、表２のＶＬＣテーブルを用いてコード番号を符号列に変換する。
【００４２】
表２の例を参照して、ＶＬＣテーブル１とＶＬＣテーブル４を比較するとコード番号の大きい領域ではＶＬＣテーブル１の方がビット量が多くなる傾向があるが、コード番号の小さい領域ではＶＬＣテーブル１の方がビット量が小さくなるように設計されている。
【００４３】
従って、小さいコード番号の出現確率が高い場合にはＶＬＣテーブル１の方が、値の大きいコード番号の出現確率が高い場合にはＶＬＣテーブル４の方が、効率よく可変長符号化を行うことが可能である。
【００４４】
符号化対象ブロックの係数の個数を符号化する方法を説明する。
まず、符号化済みブロックの係数の個数から、符号化対象ブロックの係数の個数を予測する。特許文献１に示されている一つの方法では、左隣りの係数の個数と、上隣りの係数の個数の平均値を用いて予測する。
【００４５】
予測値が得られたら、次に、表３を用いて、コードテーブルを選択する。例えば、予測値が２以下の場合にはコードテーブル１を参照し、３以上５以下の場合にはコードテーブル２を参照する。
【００４６】
【表３】
2008092456.tif 000005
【００４７】
続いて、表４を用いてＶＬＣテーブルを選択する。
例えば、予測値が１以下の場合にはＶＬＣテーブル１を参照し、２以上３以下の場合にはＶＬＣテーブル２を参照する。
【００４８】
【表４】
2008092456.tif 000006
【００４９】
選択されたコードテーブル及びＶＬＣテーブルを用いることで符号化対象ブロックの係数の個数を符号化する。
【００５０】
以上、説明したように、特許文献１の一つの方法では、非特許文献１と同様に符号化済みの周囲のブロックの係数の個数を応じて、コードテーブルおよびＶＬＣテーブルを切り替えることによって、効率的に符号化対象ブロックの係数の個数を符号化できる。
【００５１】
また、特許文献１では、符号化済みの周囲のブロックの係数の個数の代わりに、画面内予測の予測モードに応じて、コードテーブルおよびＶＬＣテーブルを適応的に切り替えて参照する方法も示されている。このときは、表５および表６のような表を用いて、画面内予測モードから使用するコードテーブルおよびＶＬＣテーブルを選択する。
【００５２】
【表５】
2008092456.tif 000007
【００５３】
【表６】
2008092456.tif 000008
【００５４】
例えば、画面予測モードが平面予測の場合には、コードテーブル１とＶＬＣテーブル１を用いて係数の個数を符号化することになる。上記技術によれば、係数の出現頻度が一様ではないピクチャに対しても効率よく符号化することが可能となる。
【非特許文献１】"Information technology -Coding of audio-visual objects- Part10: Advanced Video Coding", ISO Standards, ISO/IEC14496-10:2005, 2005/12/12
【非特許文献２】"Information technology -Coding of audio-visual objects- Part2: Visual", ISO Standards, ISO/IEC14496-2:2004, 2004/5/24
【特許文献１】特開２００４−７５０６公報
【発明の開示】
【発明が解決しようとする課題】
【００５５】
可変長符号化に用いるＶＬＣテーブルを、符号化対象の係数の個数の予測値に応じて切り替える場合（係数の個数の予測は、既に符号化済みの周囲のブロックの係数の個数を用いて行われる）、入力画像の予測に用いた画面内予測の予測モードと、既に符号化済みの周囲のブロックの中で、どのブロックの係数の個数を用いて符号化対象の係数の個数を予測すれば良いかの間には所定の関係がある。
【００５６】
しかしながら、非特許文献１や特許文献１の技術においては、画面内予測の予測モードに応じて決まる上記関係を活かしていなかったため、本来の符号化効率を達成できていないという問題がある。
【００５７】
特許文献１では、画面内予測モードを用いてＶＬＣテーブルを切り替える方法が示されている。
【００５８】
しかしながら、変換係数とは直接関係ない画面内予測モードをそのまま用いてＶＬＣテーブルを選択するものであったために、符号化済みブロックの係数の個数を用いてＶＬＣテーブルを選択する方法に比べて符号化効率が上がらないという問題があった。
【００５９】
本発明は、上記のような問題を解決するためになされたものであって、符号化効率をさらに向上させた画像符号化装置および画像復号装置を提供することを目的とする。
【課題を解決するための手段】
【００６０】
本発明の画像符号化装置は、画面内予測部と、係数個数予測部と、ＶＬＣテーブル選択部と、可変長符号化部とを備える。係数個数予測部は、画面内予測部の予測モードに応じて符号化対象ブロックの非０の係数の個数を予測し、ＶＬＣテーブル選択部は、予測された符号化対象ブロックの非０の係数の個数に応じてＶＬＣテーブルを選択する。
【００６１】
これにより、画面内予測の予測モードと、既に符号化済みの周囲のブロックの中で、どのブロックの非０の係数の個数を用いて符号化対象ブロックの非０の係数の個数を予測すれば良いかの間にある所定の関係を用いることによって、係数個数予測部で、高い精度で符号化対象ブロックの係数を予測することができるので、予測された非０の係数の個数の予測値を用いて、ＶＬＣテーブル選択部でＶＬＣテーブルを選択し、選択されたＶＬＣテーブルを用いて可変長符号化部で符号化を行うことによって、高い符号化効率で画像を符号化することができる。
【００６２】
好ましくは、係数個数予測部は、既に符号化済みのブロックの非０の係数の個数の線形結合によって、符号化対象ブロックの非０の係数の個数を予測し、さらに、線形結合の重みを画面内予測部の予測モードに応じて変化させる。
【００６３】
特に、係数個数予測部は、画面内予測部における符号化対象ブロックの予測モードが左方向からの予測の場合には、線形結合における重みにおいて、符号化対象ブロックの左に隣接するブロックの非０の係数の個数に対する重みを他のブロックの非０の係数の個数に対する重みよりも大きくし、また、上方向からの予測の場合には、線形結合における重みにおいて、符号化対象ブロックの上に隣接するブロックの非０の係数の個数に対する重みを他のブロックの非０の係数の個数に対する重みよりも大きくする。
【００６４】
特に、係数個数予測部は、画面内予測部における符号化対象ブロックの予測モードと、符号化対象ブロックの左に隣接するブロックの予測モードと、符号化対象ブロックの上に隣接するブロックの予測モードを比較することによって、線形結合における左に隣接するブロックの非０の係数の個数に対する重み、および、上に隣接するブロックの非０の係数の個数に対する重み、を変化させる。
【００６５】
特に、係数個数予測部は、画面内予測部における符号化対象ブロックの予測モードと、符号化対象ブロックの左に隣接するブロックの予測モードおよび符号化対象ブロックの上に隣接するブロックの予測モードを比較し、符号化対象ブロックの予測モードに近い方のブロックの非０の係数の個数に対する重みを他のブロックの非０の係数の個数に対する重みよりも大きくする。
【００６６】
本発明の画像復号装置は、画面内予測部と、係数個数予測部と、ＶＬＣテーブル選択部と、可変長符号復号部とを備える。係数個数予測部は、画面内予測部の予測モードに応じて非０の係数の個数を予測し、ＶＬＣテーブル選択部は、予測された符号化対象ブロックの非０の係数の個数に応じてＶＬＣテーブルを選択する。
【００６７】
これにより、画面内予測の予測モードと、既に復号済みの周囲のブロックの中で、どのブロックの非０の係数の個数を用いて復号対象ブロックの非０の係数の個数を予測すれば良いかの間にある所定の関係を用いることによって、係数個数予測部で、高い精度で復号対象ブロックの係数を予測することができるので、予測された非０の係数の個数の予測値を用いてＶＬＣテーブル選択部で、ＶＬＣテーブルを選択し、選択されたＶＬＣテーブルを用いて可変長符号復号部で復号を行うことによって、高い符号化効率で符号化された画像データを復号することができる。
【００６８】
好ましくは、係数個数予測部は、既に復号済みのブロックの非０の係数の個数の線形結合によって、符号化対象ブロックの非０の係数の個数を予測し、さらに、線形結合の重みを画面内予測部の予測モードに応じて変化させることを特徴とする。
【００６９】
特に、係数個数予測部は、画面内予測部における符号化対象ブロックの予測モードが左方向からの予測の場合には、線形結合における重みにおいて、符号化対象ブロックの左に隣接するブロックの非０の係数の個数に対する重みを他のブロックの非０の係数の個数に対する重みよりも大きくし、また、上方向からの予測の場合には、線形結合における重みにおいて、符号化対象ブロックの上に隣接するブロックの非０の係数の個数に対する重みを他のブロックの非０の係数の個数に対する重みよりも大きくする。
【００７０】
特に、係数個数予測部は、画面内予測部における復号対象ブロックの予測モードと、復号対象ブロックの左に隣接するブロックの予測モードと、復号対象ブロックの上に隣接するブロックの予測モードとを比較することによって、線形結合における左に隣接するブロックの非０の係数の個数に対する重み、および、上に隣接するブロックの非０の係数の個数に対する重み、を変化させることを特徴とする。
【００７１】
特に、係数個数予測部は、画面内予測部における復号対象ブロックの予測モードと、復号対象ブロックの左に隣接するブロックの予測モードおよび復号対象ブロックの上に隣接するブロックの予測モードを比較し、復号対象ブロックの予測モードに近い方のブロックの非０の係数の個数に対する重みを他のブロックの非０の係数の個数に対する重みよりも大きくする。
【００７２】
本発明の画像符号化装置は、画面内予測部と、画面間予測部と、予測方法記憶部と、係数個数予測部と、ＶＬＣテーブル選択部と、可変長符号化部とを備える。係数個数予測部は、予測方法記憶部で記憶されている予測方法に応じて符号化対象ブロックの非０の係数の個数を予測し、ＶＬＣテーブル選択部は、予測された符号化対象ブロックの非０の係数の個数に応じてＶＬＣテーブルを選択する。
【００７３】
これにより、予測方法記憶部に記憶された予測方法を読み出し、係数個数予測部で、既に符号化済みのブロックの予測方法と、符号化対象ブロックの予測方法と、既に符号化済みのブロックの非０の係数の個数を用いることによって、１フレームの中に画面内予測されたブロックと、画面間予測されたブロックが混在する場合においても、符号化対象ブロックの非０の係数の個数を高い精度で予測することができ、これによって、予測された非０の係数の個数の予測値を用いて、ＶＬＣテーブル選択部でＶＬＣテーブルを選択し、選択されたＶＬＣテーブルを用いて可変長符号化部で符号化を行うことによって、高い符号化効率で画像を符号化することができる。
【００７４】
好ましくは、係数個数予測部は、既に符号化済みのブロックの非０の係数の個数の線形結合によって、符号化対象ブロックの非０の係数の個数を予測し、さらに、線形結合の重みを予測方法記憶部に記憶された予測方法に応じて変化させる。
【００７５】
特に、係数個数予測部は、符号化対象ブロックが画面内予測で予測され、符号化対象ブロックの左に隣接するブロック及び上に隣接するブロックがともに画面間予測で予測されている場合において、符号化対象ブロックの左に隣接するブロックの非０の係数の個数と、符号化対象ブロックの上に隣接するブロックの非０の係数の個数の最大値を、符号化対象ブロックの非０の係数の個数の予測値とする。
【００７６】
特に、係数個数予測部は、符号化対象ブロックが画面内予測で予測され、符号化対象ブロックの左に隣接するブロック及び上に隣接するブロックがともに画面間予測で予測されている場合において、符号化対象ブロックの左に隣接するブロックの非０の係数の個数と、符号化対象ブロックの上に隣接するブロックの非０の係数の個数のうち、個数の大きい方の重みを大きくして線形結合を求めることにより符号化対象ブロックの非０の係数の個数の予測値を求める。
【００７７】
特に、係数個数予測部は、符号化対象ブロックが画面内予測で予測され、符号化対象ブロックの左に隣接するブロック及び上に隣接するブロックがともに画面間予測で予測されている場合において、符号化対象ブロックの左に隣接するブロックの非０の係数の個数と、符号化対象ブロックの上に隣接するブロックの非０の係数の個数の平均値に所定の値を加えることによって符号化対象ブロックの非０の係数の個数の予測値を求める。
【００７８】
特に、係数個数予測部は、符号化対象ブロックが画面間予測で予測され、符号化対象ブロックの左に隣接するブロック及び上に隣接するブロックがともに画面内予測で予測されている場合において、符号化対象ブロックの左に隣接するブロックの非０の係数の個数と、符号化対象ブロックの上に隣接するブロックの非０の係数の個数の最小値を、符号化対象ブロックの非０の係数の個数の予測値とする。
【００７９】
特に、係数個数予測部は、符号化対象ブロックが画面間予測で予測され、符号化対象ブロックの左に隣接するブロック及び上に隣接するブロックがともに画面内予測で予測されている場合において、符号化対象ブロックの左に隣接するブロックの非０の係数の個数と、符号化対象ブロックの上に隣接するブロックの非０の係数の個数のうち、個数の小さい方の重みを大きくして線形結合を求めることにより符号化対象ブロックの非０の係数の個数の予測値を求める。
【００８０】
特に、係数個数予測部は、符号化対象ブロックが画面内予測で予測され、符号化対象ブロックの左に隣接するブロック及び上に隣接するブロックがともに画面間予測で予測されている場合において、符号化対象ブロックの左に隣接するブロックの非０の係数の個数と、符号化対象ブロックの上に隣接するブロックの非０の係数の個数の平均値から所定の値を減じることによって符号化対象ブロックの非０の係数の個数の予測値を求める。
【００８１】
特に、係数個数予測部は、符号化対象ブロックが画面内予測で予測され、符号化対象ブロックの左に隣接するブロック及び上に隣接するブロックのどちらか一方が画面内予測で予測されている場合において、符号化対象ブロックの左に隣接するブロックの非０の係数の個数と、符号化対象ブロックの上に隣接するブロックの非０の係数の個数のうち、画面内予測で予測された方の重みを大きくして線形結合を求めることにより符号化対象ブロックの非０の係数の個数の予測値を求める。
【００８２】
特に、係数個数予測部は、符号化対象ブロックが画面間予測で予測され、符号化対象ブロックの左に隣接するブロック及び上に隣接するブロックのどちらか一方が画面間予測で予測されている場合において、符号化対象ブロックの左に隣接するブロックの非０の係数の個数と、符号化対象ブロックの上に隣接するブロックの非０の係数の個数のうち、画面間予測で予測された方の重みを大きくして線形結合を求めることにより符号化対象ブロックの非０の係数の個数の予測値を求める。
【００８３】
本発明の画像復号装置は、画面内予測部と、画面間予測部と、予測方法記憶部と、係数個数予測部と、ＶＬＣテーブル選択部と、可変長符号化部とを備える。係数個数予測部は、予測方法記憶部で記憶されている予測方法に応じて符号化対象ブロックの非０の係数の個数を予測し、ＶＬＣテーブル選択部は、予測された復号対象ブロックの非０の係数の個数に応じてＶＬＣテーブルを選択する。
【００８４】
これにより、予測方法記憶部に記憶された予測方法を読み出し、係数個数予測部で、既に復号済みのブロックの予測方法と、復号対象ブロックの予測方法と、既に復号済みのブロックの非０の係数の個数を用いることによって、１フレームの中に画面内予測されたブロックと、画面間予測されたブロックが混在する場合においても、復号対象ブロックの非０の係数の個数を高い精度で予測することができ、これによって、予測された非０の係数の個数の予測値を用いて、ＶＬＣテーブル選択部でＶＬＣテーブルを選択し、選択されたＶＬＣテーブルを用いて可変長符号復号部で復号を行うことによって、高い符号化効率で符号化された画像データを復号することができる。
【００８５】
好ましくは、係数個数予測部は、既に復号済みのブロックの非０の係数の個数の線形結合によって、復号対象ブロックの非０の係数の個数を予測し、さらに、線形結合の重みを予測方法記憶部に記憶された予測方法に応じて変化させることを特徴とする。
【００８６】
特に、係数個数予測部は、復号対象ブロックが画面内予測で予測され、復号対象ブロックの左に隣接するブロック及び上に隣接するブロックがともに画面間予測で予測されている場合において、復号対象ブロックの左に隣接するブロックの非０の係数の個数と、復号対象ブロックの上に隣接するブロックの非０の係数の個数の最大値を、復号対象ブロックの非０の係数の個数の予測値とする。
【００８７】
特に、係数個数予測部は、復号対象ブロックが画面内予測で予測され、復号対象ブロックの左に隣接するブロック及び上に隣接するブロックがともに画面間予測で予測されている場合において、復号対象ブロックの左に隣接するブロックの非０の係数の個数と、復号対象ブロックの上に隣接するブロックの非０の係数の個数のうち、個数の大きい方の重みを大きくして線形結合を求めることにより復号対象ブロックの非０の係数の個数の予測値を求める。
【００８８】
特に、係数個数予測部は、復号対象ブロックが画面内予測で予測され、復号対象ブロックの左に隣接するブロック及び上に隣接するブロックがともに画面間予測で予測されている場合において、復号対象ブロックの左に隣接するブロックの非０の係数の個数と、復号対象ブロックの上に隣接するブロックの非０の係数の個数の平均値に所定の値を加えることによって復号対象ブロックの非０の係数の個数の予測値を求める。
【００８９】
特に、係数個数予測部は、復号対象ブロックが画面間予測で予測され、復号対象ブロックの左に隣接するブロック及び上に隣接するブロックがともに画面内予測で予測されている場合において、復号対象ブロックの左に隣接するブロックの非０の係数の個数と、復号対象ブロックの上に隣接するブロックの非０の係数の個数の最小値を、復号対象ブロックの非０の係数の個数の予測値とする。
【００９０】
特に、係数個数予測部は、復号対象ブロックが画面間予測で予測され、復号対象ブロックの左に隣接するブロック及び上に隣接するブロックがともに画面内予測で予測されている場合において、復号対象ブロックの左に隣接するブロックの非０の係数の個数と、復号対象ブロックの上に隣接するブロックの非０の係数の個数のうち、個数の小さい方の重みを大きくして線形結合を求めることにより復号対象ブロックの非０の係数の個数の予測値を求める。
【００９１】
特に、係数個数予測部は、復号対象ブロックが画面内予測で予測され、復号対象ブロックの左に隣接するブロック及び上に隣接するブロックがともに画面間予測で予測されている場合において、復号対象ブロックの左に隣接するブロックの非０の係数の個数と、復号対象ブロックの上に隣接するブロックの非０の係数の個数の平均値から所定の値を減じることによって復号対象ブロックの非０の係数の個数の予測値を求める。
【００９２】
特に、係数個数予測部は、復号対象ブロックが画面内予測で予測され、復号対象ブロックの左に隣接するブロック及び上に隣接するブロックのどちらか一方が画面内予測で予測されている場合において、復号対象ブロックの左に隣接するブロックの非０の係数の個数と、復号対象ブロックの上に隣接するブロックの非０の係数の個数のうち、画面内復号で予測された方の重みを大きくして線形結合を求めることにより復号対象ブロックの非０の係数の個数の予測値を求める。
【００９３】
特に、係数個数予測部は、復号対象ブロックが画面間予測で予測され、復号対象ブロックの左に隣接するブロック及び上に隣接するブロックのどちらか一方が画面間予測で予測されている場合において、復号対象ブロックの左に隣接するブロックの非０の係数の個数と、復号対象ブロックの上に隣接するブロックの非０の係数の個数のうち、画面間復号で予測された方の重みを大きくして線形結合を求めることにより復号対象ブロックの非０の係数の個数の予測値を求める。
【発明の効果】
【００９４】
本発明の画像符号化装置によれば、画面内予測における予測モードを利用して、既に符号化済みの周囲のブロックの係数の個数から、符号化対象ブロックの係数の個数を予測し、予測された係数の個数に基づいてＶＬＣテーブルを選択し、選択されたＶＬＣテーブルを用いて係数の可変長符号化を行うことによって、画像符号化における符号化効率を高めることができる。
【００９５】
本発明の画像復号装置によれば、画面内予測における予測モードを利用して、既に復号したブロックの係数の個数から、復号対象ブロックの係数の個数を予測し、予測された係数の個数に基づいてＶＬＣテーブルを選択し、選択されたＶＬＣテーブルを用いて可変長符号化された係数の復号を行うことによって、高い符号化効率で符号化された画像データを復号することができる。
【００９６】
本発明の画像符号化装置によれば、符号化対象ブロックの予測方法と、既に符号化済みの周囲のブロックの予測方法を参照することによって、符号化対象ブロックの係数を予測し、求めた予測値に応じて、符号化に用いるＶＬＣテーブルを選択することによって、１フレームの中に、画面内予測されたブロックと画面間予測されたブロックが混在する場合においても、高い符号化効率で符号化することができる。
【００９７】
本発明の画像復号装置によれば、復号対象ブロックの予測方法と、既に復号済みの周囲のブロックの予測方法を参照することによって、復号対象ブロックの係数を予測し、求めた予測値に応じて、復号に用いるＶＬＣテーブルを選択することによって、１フレームの中に、画面内予測されたブロックと画面間予測されたブロックが混在する場合においても、高い符号化効率で符号化された画データを復号することができる。
【発明を実施するための最良の形態】
【００９８】
以下、図面を参照しながら本発明の実施形態を説明する。尚、本発明は以下の実施形態に限定されるものではない。
【００９９】
（実施の形態１）
図１は、本発明の実施の形態１に従う画像符号化装置の構成を示すブロック図である。
【０１００】
図１を参照して、本発明の実施の形態１に従う画像符号化装置は、変換部１０１、量子化部１０２、逆量子化部１０３、逆変換部１０４、画面内予測部１０５、画面間予測部１０６、フレームメモリ１０７、可変長符号化部１０８、スイッチ１０９、減算部１１０、加算部１１１から構成される。
【０１０１】
画像符号化装置に画像が入力されると、まず、画面内予測部１０５もしくは画面間予測部１０６において入力画像の予測を行い予測画像を生成する（画面内予測を用いるか画面間予測を用いるかの選択はスイッチ１０９で行われる）。なお、スイッチ１０９は、符号化制御部（図示せず）により制御されるものとする。符号化制御部（図示せず）は、画面内予測もしくは画面間予測のうち、符号化効率が高い方を選択して、スイッチ１０９を切り替えるものとする。また、以下に説明する画面内予測において画面内予測モードが複数ある場合の切り替えも符号化制御部が実行するものとする。他の実施の形態についても同様である。
【０１０２】
減算部１１０により、入力画像から予測画像を減算して予測誤差を得る。予測誤差は変換部１０１により離散コサイン変換などの変換がなされ、続いて量子化部１０２で量子化される。
【０１０３】
量子化された係数は、逆量子化部１０３で逆量子化され、逆変換部１０４において逆変換され、加算部１１１により先ほど生成した予測画像と加算される。得られた画像は、元の入力画像を再生した再構成画像である。
【０１０４】
また、再構成画像は、フレームメモリ１０７において記憶され、画面内予測および画面間予測における参照画像として用いられる。変換部１０１、量子化部１０２で得られた量子化後の係数は、可変長符号化部１０８によって符号化される。
【０１０５】
符号化対象となる動画像の各ピクチャの符号化は、マクロブロックと呼ばれる１６×１６画素の単位に分割され、このマクロブロック単位でこれ以降の処理が行われる。
【０１０６】
図２は、符号化対象マクロブロックを符号化するために参照するマクロブロックを示す図である。
【０１０７】
図２では、マクロブロックＭＢ１３が符号化対象マクロブロックである場合を示している。矢印で示すように、マクロブロックＭＢ１３を符号化する場合には、マクロブロックＭＢ３，ＭＢ４，ＭＢ５，ＭＢ１２を参照する。
【０１０８】
対象とするマクロブロックを画面間予測によって符号化する場合は、まず入力画像のうちの、現在符号化対象となっているマクロブロックに属する部分が、画面間予測部１０６に入力される。
【０１０９】
画面間予測部１０６は、フレームメモリ１０７に蓄積されている符号化済みの再構成画像を参照画像として用いて、マクロブロックをさらに分割したブロック（例えば４×４画素のブロック）ごとに動きベクトル検出を行う。画面間予測部１０６は、検出した動きベクトルを用いて生成した予測画像を出力する。
【０１１０】
対象とするマクロブロックを画面内予測によって符号化する場合は、まず入力画像のうちの、現在符号化対象となっているマクロブロックに属する部分が、画面内予測部１０５に入力される。
【０１１１】
画面内予測部１０５は、マクロブロックをさらに４×４画素のブロックに分割した単位で既に符号化済みの画素値を参照して、入力画像に対する予測画像を生成する。このときの予測方法は、背景技術において図１５を用いて説明したのと同じであり、「モード０」〜「モード８」までの９つの予測モードに従って画素値を予測するものとする。なお、本実施形態では、４×４画素のブロック単位で画面内予測を行っているが、８×８画素のブロックや１６×１６画素のブロック単位、また４×８画素のブロック単位などで画面内予測をしても良い。
【０１１２】
本実施の形態１に従う変換部１０１も、マクロブロックをさらに４×４画素あるいは８×８画素のブロックに分割し、この単位で離散コサイン変換を施す。なお、本実施の形態では、離散コサイン変換を用いているが、アダマール変換やＫＬＴ変換など別の変換方法を用いても良い。
【０１１３】
図３は、本発明の実施の形態1に従う特徴的な部分である可変長符号化部１０８の内部の構成を示す図である。
【０１１４】
図３を参照して、可変長符号化部１０８は、係数個数検出部３０１、係数個数記憶部３０２、係数個数予測部３０３、ＶＬＣテーブル選択部３０４、係数符号化部３０５から構成される。
【０１１５】
係数個数検出部３０１は、ブロック毎に非０の値を持つ係数の個数を検出する。ここで検出された係数の個数は係数個数記憶部３０２に保存される。
【０１１６】
係数個数予測部３０３は、既に符号化済みのブロックの係数の個数を係数個数記憶部３０２から読み込むことによりその値を参照して、符号化対象ブロックの係数の個数を予測する。
【０１１７】
ＶＬＣテーブル選択部３０４では、係数個数予測部３０３で予測された係数の個数をもとに、符号化に用いるＶＬＣテーブルを選択する。
【０１１８】
係数符号化部３０５は、ＶＬＣテーブル選択部３０４で選択されたＶＬＣテーブルを用いて符号化対象ブロックの係数の符号化を行う。
【０１１９】
係数個数記憶部３０２が行う係数の個数の記憶処理について、詳細を説明する。
図４は、符号化対象ブロックに対する参照ブロックを示す図である。
【０１２０】
ここで、Ｂ１〜Ｂ１６の符号を付した４×４画素のブロックを含む太枠が符号化対象のマクロブロックを示し、縦線および斜線、横線のブロックが符号化対象マクロブロックが参照する参照ブロックを示している（図４（ａ）、（ｂ）とも）。またブロックに付した数字は、マクロブロック内での符号化順を示している。
【０１２１】
係数個数記憶部３０２は、例えば、符号化対象のマクロブロックの処理を開始する時点（Ｂ１のブロックを符号化する時点）において、係数個数検出部３０１によって検出された係数の個数を、図４（ａ）の縦線および斜線、横線で示したブロックについて記憶している。
【０１２２】
符号化対象のマクロブロックは、図２のマクロブロックＭＢ１３であるとして、図２を参照して係数を記憶しておくブロックの位置関係を説明する。
【０１２３】
符号化対象マクロブロックの左上のブロック（図４（ａ）の縦線のブロック）は、図２のマクロブロックＭＢ３の右下ブロックに対応し、符号化対象マクロブロックの上の４つのブロック（図４（ａ）の右上から左下方向の斜線のブロック）はマクロブロックＭＢ４の下端ブロックに対応し、符号化対象マクロブロックの右上のブロック（図４（ａ）の横線のブロック）はマクロブロックＭＢ５の左下ブロックに対応し、符号化対象マクロブロックの左の４つのブロック（図４（ａ）の左上から右下方向の斜線のブロック）はマクロブロックＭＢ１２の右端ブロックに対応する。
【０１２４】
以上説明したように、マクロブロックの処理を開始する時点において、既に符号化済みのブロックの内、符号化対象のマクロブロックに対して少なくとも必要となる以上のブロックについて係数の個数を記憶しておく。
【０１２５】
係数個数記憶部３０２は、また、順次処理される符号化対象のマクロブロックのブロック（Ｂ１，Ｂ２，・・・，Ｂ１６）に対して検出された係数の個数を記憶する。
【０１２６】
例えば、符号化対象ブロックがＢ６である場合、係数個数記憶部３０２は、図４（ａ）に示す参照ブロックに加えて、図４（ｂ）に示すようにブロックＢ１，Ｂ２，Ｂ３，Ｂ４，Ｂ５の各係数の個数を記憶している。
【０１２７】
そして、係数個数記憶部３０２は、係数個数検出部３０１によりブロックＢ６の係数の個数が検出されると、ブロックＢ６の係数の個数を記憶する。このように、係数個数記憶部３０２は、順次処理される符号化対象のマクロブロックのブロック（Ｂ１，Ｂ２，・・・，Ｂ１６）に対して検出された係数の個数を記憶する。
【０１２８】
上記説明したように符号化対象ブロックの周囲のブロックの係数の個数を記憶しておくために、係数個数記憶部３０２は、各マクロブロックの符号化が終了する度に、次のような処理を行う。
【０１２９】
図５は、係数個数記憶部３０２が係数の個数を記憶するマクロブロック内のブロックを示す図である。
【０１３０】
図２で示されるマクロブロックＭＢ１２の処理が終了し、次のマクロブロックＭＢ１３へ処理が移る際には、図５（ａ）に示すように、マクロブロック（ＭＢ１２）の下列と右列のブロック（斜線のブロック）の係数の個数を少なくとも記憶しておく。
【０１３１】
また、図２で示されるマクロブロックＭＢ９のように画面右端のマクロブロックの処理が終了した際には、図５（ｂ）に示すように、マクロブロック（ＭＢ９）の下列のブロック（斜線のブロック）の係数の個数を少なくとも記憶しておく。
【０１３２】
また、図２で示されるマクロブロックＭＢｍのように画面下端のマクロブロックの処理が終了した際には、図５（ｃ）に示すように、マクロブロック（ＭＢｍ）の左列のブロック（斜線のブロック）の係数の個数を少なくとも記憶しておく。
【０１３３】
記憶しておいた係数の個数は、不要になった時点で、記憶から削除しても良いし、記憶されている値を上書きしても良い。
【０１３４】
例えば、マクロブロックＭＢ１３の符号化が終了した時点では、記憶しておいたＭＢ１２の右列の係数の個数は不要なので削除しても良いし、マクロブロックＭＢ１３の右列の係数の個数で置き換えても良い。
【０１３５】
逆に、不要になった時点で削除や置き換えを行うのではなく、不要になったブロックを含めて全てのブロックについて係数の個数を記憶しておいても良い。
【０１３６】
次に、本発明の特徴的な部分である係数個数予測部３０３の動作を説明する。
係数個数予測部３０３は、符号化対象ブロックの係数の個数の予測を行う。
【０１３７】
係数個数予測部３０３は、画面内予測部１０５から画面内予測に用いられた予測モードを読み出す。
【０１３８】
係数個数予測部３０３は読み出した画面内予測モードに従って、例えば次の予測方法１のように符号化済みブロックの係数の個数（ｎＡ，ｎＢ，ｎＤ，ｎＥ）から、符号化対象ブロックの係数の個数（ｎＸ）を予測する。ここで、ｎＡ，ｎＢ，ｎＤ，ｎＥは、図１７で示される位置関係における既に符号化済みのブロックＡ、ブロックＢ、ブロックＤ、ブロックＥにおける係数の個数である。
【０１３９】
＜予測方法１＞
「モード０」：垂直予測
ｎＸ＝ｎＢ
「モード１」：水平予測
ｎＸ＝ｎＡ
「モード２」：ＤＣ予測
ｎＸ＝（ｎＡ＋ｎＢ）／２
「モード３」：左下方向予測
ｎＸ＝ｎＤ
「モード４」：右下方向予測
ｎＸ＝ｎＥ
「モード５」：垂直右方向予測
ｎＸ＝ｎＢ
「モード６」：水平下方向予測
ｎＸ＝ｎＡ
「モード７」：垂直左方向予測
ｎＸ＝ｎＢ
「モード８」：水平上方向予測
ｎＸ＝ｎＡ
上記、予測方式は、符号化対象ブロックの係数の個数が、既に符号化済みのどのブロックの係数の個数に近いかということが、画面内予測モードの方向によって異なるという特性を考慮して行われたものである。
【０１４０】
予測方法１によれば、例えば、画面内予測モードが「モード０」（垂直予測）の場合には、ｎＸ＝ｎＢと表現されているように、符号化対象ブロックの上に隣接するブロックの係数の個数（ｎＢ）が、符号化対象ブロックの係数の個数の予測値となる。
【０１４１】
それに対して、画面内予測モードが「モード１」（水平予測）の場合には、符号化対象ブロックの左に隣接するブロックの係数の個数（ｎＡ）が、符号化対象ブロックの係数の個数の予測値となる。
【０１４２】
なお、上記、予測方式は、一般的に言えば、符号化済みブロックの係数の個数（ｎＡ，ｎＢ，ｎＤ，ｎＥ）の線形結合によって以下のように符号化対象ブロックの係数の個数の予測値ｎＸを求めるものである。
【０１４３】
ｎＸ＝Ｋａ×ｎＡ＋Ｋｂ×ｎＢ＋Ｋｄ×ｎＤ＋Ｋｅ×ｎＥ＋Ｋｏｆｆｓｅｔ
Ｋａ，Ｋｂ，Ｋｄ，Ｋｅは各個数に対する重みであり、Ｋｏｆｆｓｅｔは所定の定数である。
【０１４４】
本実施形態では、線形結合の重みを符号化対象ブロックの画面内予測における予測モードに応じて変化させることを特徴としている。
【０１４５】
上記の予測方法１では、「モード０」のときの重みは、Ｋａ＝０，Ｋｂ＝１，Ｋｄ＝０，Ｋｅ＝０，Ｋｏｆｆｓｅｔ＝０である。予測方法１では、「モード２」を除くと画面内予測の予測モードに応じて特定の係数（重み）を１、他の係数を０としている。「モード２」では、Ｋａ＝０．５、Ｋｂ＝０．５のように２つの個数の平均値を予測値としている。
【０１４６】
また、次に示す予測方法２のような予測方法も好適である。
＜予測方法２＞
「モード０」、「モード５」、「モード７」：
ｎＸ＝（ｎＡ＋３×ｎＢ）／４
「モード１」、「モード６」、「モード８」：
ｎＸ＝（３×ｎＡ＋ｎＢ）／４
「モード２」、「モード３」、「モード４」：
ｎＸ＝（ｎＡ＋ｎＢ）／２
予測方法２では、例えば、画面内予測モードが「モード０」（垂直予測）の場合には、符号化対象ブロックの左に隣接するブロックの係数の個数（ｎＡ）よりも上に隣接するブロックの係数の個数（ｎＢ）の重みを大きくして、例えば、（ｎＡ＋３×ｎＢ）／４の式により重み付き平均を計算することによって符号化対象ブロックの係数の個数を予測する。
【０１４７】
それに対して、画面内予測モードが「モード１」（水平予測）の場合には、符号化対象ブロックの上に隣接するブロックの係数の個数（ｎＢ）よりも左に隣接するブロックの係数の個数（ｎＡ）の重みを大きくして、例えば、（３×ｎＡ＋ｎＢ）／４の式により重み付き平均を計算することによって符号化対象ブロックの係数の個数を予測する。
【０１４８】
なお、予測方法２によれば、符号化済みブロックの係数の個数（ｎＡ，ｎＢ）の重み付き平均を符号化対象ブロックの係数の個数の予測値としている。
【０１４９】
予測方法１では、「モード２」を除いて線形結合の特定の係数を１、他の係数を０としているが、予測方法２では、複数のブロックの係数の個数を用いて重み付き平均を求めている（線形結合の係数で言えば、Ｋａ＝０．５，Ｋｂ＝０．５，Ｋｄ＝０，Ｋｅ＝０，Ｋｏｆｆｓｅｔ＝０）。
【０１５０】
以上のように平均を求めることによって、特定のブロックの個数だけを使う場合に比べて、予測値のばらつきを押させることができるため、予測値が実際の係数の個数から大きく外れることを防ぐことができる。
【０１５１】
＜予測方法３＞
予測方法３では、次のようにして符号化対象ブロックの係数の個数を予測する。符号化対象ブロックの画面内予測モードと、左に隣接するブロックの画面内予測モード、上に隣接するブロックの画面内予測モードを比較する。
【０１５２】
そして、左に隣接するブロックの画面内予測モードの方が上に隣接するブロックの画面内予測モードよりも符号化対象ブロックの画面内予測モードに近い場合（画面内予測モードの近さについては後述）には、左に隣接するブロックの係数の個数（ｎＡ）に対する重みを、上に隣接するブロックの係数の個数（ｎＢ）の重みよりも大きくして、例えば、（３×ｎＡ＋ｎＢ）／４の式により重み付き平均を計算することで符号化対象ブロックの係数の個数を予測する。
【０１５３】
逆に、上に隣接するブロックの画面内予測モードの方が左に隣接するブロックの画面内予測モードよりも符号化対象ブロックの画面内予測モードに近い場合には、上に隣接するブロックの係数の個数（ｎＢ）に対する重みを、左に隣接するブロックの係数の個数（ｎＡ）の重みよりも大きくして、例えば、（ｎＡ＋３×ｎＢ）／４の式により符号化対象ブロックの係数の個数を予測する。
【０１５４】
左に隣接するブロックの画面内予測モードの方と、上に隣接するブロックの画面内予測モードの近さが同じ場合には、例えば、（ｎＡ＋ｎＢ）／２の式により符号化対象ブロックの係数の個数を予測する。
【０１５５】
符号化対象ブロックの画面内予測モードが「モード２」（ＤＣ予測）の場合には、左に隣接するブロックおよび上に隣接するブロックの画面内予測モードによらず、例えば、（ｎＡ＋ｎＢ）／２の式により符号化対象ブロックの係数の個数を予測する。
【０１５６】
ここで、画面内予測モード間の近さについて説明する。
画面内予測モードは、背景技術において図１５を用いて説明したのと同じであり、「モード０」〜「モード８」までの９つがある。
【０１５７】
予測モードが「モード２」（ＤＣ予測）以外の場合には、予測モードを表３により方向値という値に変換する。左に隣接するブロックの方向値と、符号化対象ブロックの方向値の差分絶対値を計算する。
【０１５８】
また同様に上に隣接するブロックの方向値と、符号化対象ブロックの方向値の差分絶対値を計算する。２つの差分絶対値を比較したときに、差分絶対値が小さい方を画面内予測モードが近いとする。なお、左に隣接するブロックの予測モードおよび上に隣接するブロックの予測モードが「モード２」（ＤＣ予測）の場合には、各々、差分絶対値（近さ）を所定の値（ここでは「２」）とする。
【０１５９】
【表７】
2008092456.tif 000009
【０１６０】
図６は、予測方法３を説明するための図である。
まず、図６（ａ）の場合を説明する。
【０１６１】
図中、斜線部分が符号化対象ブロックである。
符号化対象ブロックの画面内予測モードは、「モード１」（水平予測）であり、左隣りのブロックは、「モード１」（水平予測）、上隣りのブロックは「モード０」（垂直予測）である。
【０１６２】
表７によって各ブロックの方向値を求めると、符号化対象ブロック、左隣りのブロック、上隣りのブロックの各方向値は、「６，６，２」となる。符号化対象ブロックと左隣りのブロックの方向値の差分絶対値は「０」（＝｜６−６｜）、符号化対象ブロックと上隣りのブロックの差分絶対値は「４」（＝｜６−２｜）であるから、左隣りのブロックの画面内予測モードの方が近い。よって、符号化対象ブロックの係数の個数の予測値は、（３×ｎＡ＋ｎＢ）／４となる。
【０１６３】
また、図６（ｂ）の場合には、符号化対象ブロックの画面内予測モードは、「モード4」（右下方向予測）であり、左隣りのブロックは、「モード１」（水平予測）、上隣りのブロックは「モード４」（右下方向予測）である。
【０１６４】
表７によって各ブロックの方向値を求めると、符号化対象ブロック、左隣りのブロック、上隣りのブロックの各方向値は、「４，６，４」となる。符号化対象ブロックと左隣りのブロックの方向値の差分絶対値は「２」（＝｜６−４｜）、符号化対象ブロックと上隣りのブロックの差分絶対値は「０」（＝｜４−４｜）であるから、上隣りのブロックの画面内予測モードの方が近い。よって、符号化対象ブロックの係数の個数の予測値は、（ｎＡ＋３×ｎＢ）／４となる。
【０１６５】
以上説明したように、予測方法３では、符号化対象ブロックの画面内予測モードと、符号化済みの周囲のブロックの画面予測モードを比較することによって画面内予測モードの近さを求め、符号化済みブロックの係数の個数（ｎＡ，ｎＢ，ｎＤ，ｎＥ）の線形結合によって符号化対象ブロックの係数の個数を求める場合の線形結合の係数の重みを、求めた画面内予測モードの近さに応じて変化させる。
【０１６６】
上記の例では、左隣りのブロックおよび上隣りのブロックの画面内予測モードと符号化対象ブロックとの画面内予測モードの近さを比較しているが、左上に隣接するブロックおよび右上に隣接するブロックの画面内予測モードとの近さを比較しても良い。
【０１６７】
左隣りのブロック、左上に隣接するブロック、上隣りのブロック、右上に隣接するブロックのうち、左上に隣接するブロックの画面内予測モードが最も符号化対象ブロックの画面内予測モードに近い場合には、左上ブロックの係数の個数（ｎＥ）を用いて、例えば、ｎＸ＝（ｎＡ＋ｎＥ＋ｎＢ）／３のように計算する方法がある。
【０１６８】
また、同様に左隣りのブロック、左上に隣接するブロック、上隣りのブロック、右上に隣接するブロックのうち、右上ブロックの画面内予測モードが最も符号化対象ブロックの画面内予測モードに近い場合には、右上ブロックの係数の個数（ｎＤ）を用いて、例えば、ｎＸ＝（ｎＡ＋ｎＤ＋ｎＢ）／３のように計算する方法がある。
【０１６９】
なお、予測方法３を用いる場合には、画面内予測部１０５は内部に、図示しない画面内予測モード記憶部を持つものとする。
【０１７０】
画面内予測モード記憶部は、係数個数記憶部３０２がブロック毎に係数の個数を記憶していたのと同様にして、符号化対象ブロックの既に符号化済みの周囲のブロックにおける画面内予測モードを参照できるように、ブロック毎に画面内予測モードを記憶しておくものとする。
【０１７１】
係数個数予測部３０３で符号化対象ブロックの係数の個数が予測されると、ＶＬＣテーブル選択部３０４は、係数個数予測部３０３で予測された係数の個数に基づいてＶＬＣテーブルを選択する。
【０１７２】
本実施の形態では図１８に示した通り、非特許文献１で用いられる方法でＶＬＣテーブルを選択するものとする。例えば、予測された係数の個数が４個である場合には、４≦ｎＣ＜８で示されるＶＬＣテーブルが選択される。
【０１７３】
ここでは、ＴｏｔａｌＣｏｅｆｆ（非０係数の個数）と、ＴｒａｉｌｉｎｇＯｎｅｓ（絶対値１の係数の個数）を符号化するためのＶＬＣテーブルを選択しているが、ＴｏｔａｌＣｏｅｆｆだけを符号化するＶＬＣ表を用いることも可能である。
【０１７４】
また、ランとレベルの組、もしくはランとレベル、ラスト（可変長符号化する単位となるブロックの最後の係数であるかどうかを示すフラグ）の組を符号化するためのＶＬＣテーブルを選択することも可能である。
【０１７５】
係数符号化部３０５では、選択されたＶＬＣテーブルを用いてＴｏｔａｌＣｏｅｆｆ，ＴｒａｉｌｉｎｇＯｎｅｓ、ラン、レベルを可変長符号化する。
【０１７６】
図１８で示されるＶＬＣテーブルが選択された後は、まず、符号化対象のブロックのＴｏｔａｌＣｏｅｆｆと、ＴｒａｉｌｉｎｇＯｎｅｓを求める。
【０１７７】
次に、選択されたＶＬＣテーブルを用いてＴｏｔａｌＣｏｅｆｆとＴｒａｉｌｉｎｇＯｎｅｓの組を符号化する。
【０１７８】
例えば、４≦ｎＣ＜８で示されるＶＬＣテーブルが選択され、ＴｏｔａｌＣｏｅｆｆが「３」、ＴｒａｉｌｉｎｇＯｎｅｓが「２」の場合には、符号列として「０１１１０」が符号化される。
【０１７９】
ＴｏｔａｌＣｏｅｆｆとＴｒａｉｌｉｎｇＯｎｅｓが符号化された後は、ランとレベルをそれぞれＶＬＣテーブルを用いてスキャンの逆順方向から別々に符号化する。
【０１８０】
以上、説明したように、本実施形態の画像符号化装置は、既に符号化済みのブロックの係数の個数の線形結合によって、符号化対象ブロックの係数の個数を予測し、さらに、線形結合の重みを画面内予測モードに応じて変化させる。
【０１８１】
そして、予測された係数の個数に応じて、符号化に用いるＶＬＣテーブルを選択することによって、高い符号化効率で符号化することができる。
【０１８２】
（実施形態２）
図７は、本発明の実施の形態２に従う画像復号装置の構成を示すブロック図である。
【０１８３】
図７を参照して、本発明の実施の形態２に従う画像復号装置は、実施の形態１の画像符号化装置で符号化された画像データを復号するのに用いられる。
【０１８４】
本実施の形態２に従う画像復号装置は、可変長符号復号部６０１、逆量子化部６０２、逆変換部６０３、画面内予測部６０４、画面間予測部６０５、フレームメモリ６０６、スイッチ６０７、加算部６０８から構成される。
【０１８５】
入力された符号化データを復号する場合には、まず、符号化データから、復号対象のブロックが画面内予測であるか、画面間予測であるかを示すフラグを復号する。当該フラグの復号は、符号化データに基づいて図示しないが復号制御部で実行されるものとする。そして、復号制御部による復号に基づいてスイッチ６０７の切り替えが実行されるものとする。なお、可変長符号復号部６０１においてフラグを復号して、スイッチ６０７の切り替えを制御するようにすることも可能である。
【０１８６】
復号対象ブロックが画面内予測である場合には、画面内予測部６０４により予測画像を生成する。
【０１８７】
復号対象ブロックが画面間予測である場合には、画面間予測部６０５により予測画像を生成する。画面内予測と画面間予測の切り替えはスイッチ６０７により行われる。
【０１８８】
続いて、可変長符号復号部６０１により変換係数を復号し、逆量子化部６０２で逆量子化を行い、逆変換部６０３で逆変換を行う。こうして得られた予測誤差画像を、先ほど生成した予測画像と加算部６０８において加算することで、復号画像を得る。
【０１８９】
得られた復号画像はフレームメモリ６０６に記憶される。フレームメモリに記憶された復号画像は、画面内予測部６０４、画面間予測部６０５で用いるための参照画像となる。
【０１９０】
本実施形態の画面内予測部６０４は、１６×１６画素のブロックであるマクロブロックをさらに４×４画素のブロックに分割した単位で、既に復号済みの画素値を参照して予測画像を生成する。
【０１９１】
このときの予測方法は、背景技術において図１５を用いて説明したのと同じであり、「モード０」〜「モード８」までの９つの予測モードに従って画素値を予測するものとする。なお、本実施形態では、４×４画素のブロック単位で画面内予測を行っているが、８×８画素のブロックや１６×１６画素のブロック単位、また４×８画素のブロック単位などで画面内予測をしても良い。
【０１９２】
本発明の特徴部分である可変長符号復号部６０１について詳細を説明する。
図８は、本実施の形態２に従う可変長符号復号部６０１の構成を示す図である。
【０１９３】
図８を参照して、本実施の形態２に従う可変長符号復号部６０１は、係数個数検出部７０１、係数個数記憶部７０２、係数個数予測部７０３、ＶＬＣテーブル選択部７０４、係数復号部７０５から構成される。
【０１９４】
係数個数検出部７０１は、実施の形態１の係数個数検出部３０１と同様に、ブロック毎に非０の値を持つ係数の個数を検出する。
【０１９５】
検出する対象は、実施の形態１では、これから符号化する係数の個数であったが、本実施形態では、復号して得られた係数の個数である。
【０１９６】
検出された係数の個数は、係数個数記憶部７０２に保存される。
係数個数予測部７０２は、既に復号済みのブロックの係数の個数を係数個数記憶部７０３から読み込むことによりその値を参照して、復号対象ブロックの係数の個数を予測する。
【０１９７】
ＶＬＣテーブル選択部７０４では、係数個数予測部７０３で予測された係数の個数をもとに、復号に用いるＶＬＣテーブルを選択する。
【０１９８】
係数復号部７０５は、ＶＬＣテーブル選択部７０４で選択されたＶＬＣテーブルを用いて復号対象ブロックの係数の復号を行う。
【０１９９】
係数個数記憶部７０２が行う係数の個数の記憶処理については、実施の形態１での係数個数記憶部３０２の記憶処理と同様である。
【０２００】
ただし、実施の形態１での符号化対象のブロックが、実施の形態２では復号対象のブロックに変わり、また、実施の形態１での既に符号化済みのブロックが、実施の形態２では、既に復号済みのブロックに変わる。基本的には、対象となるブロックを復号する場合において、既に復号済みの周囲のブロックの係数の個数が記憶されているようにする。
【０２０１】
係数個数予測部７０３は、係数個数記憶部７０２に保存された既に復号済みのブロックの係数の個数を参照して、復号対象ブロックの係数の個数を予測する。
【０２０２】
ここで予測する方法は、実施の形態１で説明したとおり、画面内予測部６０４から復号対象ブロックの予測画像を生成する場合に用いた画面内予測モードに応じて、係数の個数を参照するブロックの位置と、係数の個数に対する重みを変えて、線形結合を計算することによって実行する。
【０２０３】
実施の形態１で示した予測方法１、予測方法２、予測方法３などが考えられるが、例えば、予測方法１を再度例示すると、以下のようになる。
【０２０４】
ここでｎＸは、復号対象ブロックの係数の個数の予測値であり、ｎＡ，ｎＢ，ｎＤ，ｎＥは、図１７で示される位置関係における既に復号済みのブロックＡ、ブロックＢ、ブロックＤ、ブロックＥにおける係数の個数である。
【０２０５】
＜予測方法１＞
「モード０」：垂直予測
ｎＸ＝ｎＢ
「モード１」：水平予測
ｎＸ＝ｎＡ
「モード２」：ＤＣ予測
ｎＸ＝（ｎＡ＋ｎＢ）／２
「モード３」：左下方向予測
ｎＸ＝ｎＤ
「モード４」：右下方向予測
ｎＸ＝ｎＥ
「モード５」：垂直右方向予測
ｎＸ＝ｎＢ
「モード６」：水平下方向予測
ｎＸ＝ｎＡ
「モード７」：垂直左方向予測
ｎＸ＝ｎＢ
「モード８」：水平上方向予測
ｎＸ＝ｎＡ
この予測方法においては、復号対象ブロックがどの画面内予測モードであるかによって、復号対象ブロックからみてどの方向のブロックの係数の個数を用いて、復号対象ブロックの係数の個数を予測するかが決まる。
【０２０６】
例えば復号対象ブロックが「モード２」（ＤＣ予測）の場合には、ブロックＡ、ブロックＢの係数の個数に対する重みを０．５ずつとして、（ｎＡ＋ｎＢ）／２により復号対象ブロックの係数の個数を予測する。
【０２０７】
また、実施の形態１の予測方法３で説明した方法で、復号対象ブロックの係数の個数を予測することもできる。
【０２０８】
予測方法３を用いる場合には、復号対象ブロックの画面内予測モードと、周囲の復号済みブロックの画面予測モードを比較することによって、画面内予測モードの近さを求める。
【０２０９】
既に復号済みのブロックの係数の個数（ｎＡ，ｎＢ，ｎＤ，ｎＥ）の線形結合によって復号対象ブロックの係数の個数を求める場合、求めた画面内予測モードの近さに応じて、線形結合の係数の重みを変化させる。
【０２１０】
以上の方法により、係数個数予測部７０３は復号対象ブロックの係数の個数を予測する。
【０２１１】
ＶＬＣテーブル選択部７０４では、係数個数予測部７０３で予測された係数の個数に基づいて、復号に用いるＶＬＣテーブルを選択する。
【０２１２】
本実施の形態では図１８に示した通り、非特許文献１で用いられる方法でＶＬＣテーブルを選択するものとする。例えば、予測された係数の個数が４個である場合には、４≦ｎＣ＜８で示されるＶＬＣテーブルが選択される。
【０２１３】
ここでは、ＴｏｔａｌＣｏｅｆｆ（非０係数の個数）と、ＴｒａｉｌｉｎｇＯｎｅｓ（絶対値１の係数の個数）を復号するためのＶＬＣテーブルを選択しているが、ＴｏｔａｌＣｏｅｆｆだけを符号化するＶＬＣ表を用いることも可能である。
【０２１４】
また、ランとレベルの組、もしくはランとレベル、ラストの組を復号するためのＶＬＣテーブルを選択することも可能である。。
【０２１５】
図１８の４≦ｎＣ＜８で示されるＶＬＣテーブルを参照すると、復号する符号列が「０１１１０」であった場合には、ＴｏｔａｌＣｏｅｆｆが「３」、ＴｒａｉｌｉｎｇＯｎｅｓが「２」と復号される。ＴｏｔａｌＣｏｅｆｆとＴｒａｉｌｉｎｇＯｎｅｓが復号された後は、ランとレベルそれぞれＶＬＣテーブルを用いてスキャンの逆順方向から別々に復号する。
【０２１６】
以上、説明したように、本実施の形態２に従う画像復号装置は、既に復号済みのブロックの係数の個数の線形結合によって、符号化対象ブロックの係数の個数を予測し、さらに、線形結合の重みを画面内予測モードに応じて変化させる。そして、予測された係数の個数に応じて、復号に用いるＶＬＣテーブルを選択することによって、高い符号化効率で符号化された画像データを復号することができる。
【０２１７】
（実施の形態３）
図９は、本発明の実施の形態３に従う画像符号化装置の構成を示すブロック図である。
【０２１８】
図９を参照して、本発明の実施の形態３に従う画像符号化装置は、変換部９０１、量子化部９０２、逆量子化部９０３、逆変換部９０４、画面内予測部９０５、画面間予測部９０６、フレームメモリ９０７、可変長符号化部９０８、スイッチ９０９、減算部９１０、加算部９１１、予測方法記憶部９１２から構成される。
【０２１９】
画像符号化装置に画像が入力されると、まず、画面内予測部９０５もしくは画面間予測部９０６において入力画像の予測を行い予測画像を生成する（画面内予測を用いるか画面間予測を用いるかの選択はスイッチ９０９で行われる）。なお、スイッチ９０９は、符号化制御部（図示せず）により制御されるものとする。符号化制御部（図示せず）は、画面内予測もしくは画面間予測のうち、符号化効率が高い方を選択して、スイッチ９０９を切り替えるものとする。
【０２２０】
減算部９１０により、入力画像から予測画像を減算して予測誤差を得る。予測誤差は変換部９０１により離散コサイン変換などの変換がなされ、続いて量子化部９０２で量子化される。
【０２２１】
量子化された係数は、逆量子化部９０３で逆量子化され、逆変換部９０４において逆変換され、加算部９１１により先ほど生成した予測画像と加算される。得られた画像は、元の入力画像を再生した再構成画像であり、画面内予測部９０５において画面内予測に用いられる。
【０２２２】
また、再構成画像は、画面間予測における参照画像として用いられる。変換部９０１、量子化部９０２で得られた量子化後の係数は、可変長符号化部９０８によって符号化される。
【０２２３】
本実施の形態３に従う画像符号化装置は、マクロブロック単位で、画面内予測と画面間予測とを切り替えることができるとする。
【０２２４】
予測方法記憶部９１２は、マクロブロック単位で、各マクロブロックが画面内予測されたものか、画面間予測されたものかを記憶するものとする。具体的には、スイッチ９０９の切り替えにおいて、画面内予測および画面間予測のうちいずれの画素値がスイッチ９０９の切り替えにより出力されたかを示す情報が記憶される。
【０２２５】
予測方法記憶部９１２に記憶された予測方法に関する情報は、可変長符号化部９０８から読み出される。
【０２２６】
図１０は、本発明の実施の形態３に従う特徴的な部分である可変長符号化部９０８の内部の構成を示す図である。
【０２２７】
図１０を参照して、可変長符号化部９０８は、係数個数検出部１００１、係数個数記憶部１００２、係数個数予測部１００３、ＶＬＣテーブル選択部１００４、係数符号化部１００５から構成される。
【０２２８】
係数個数検出部１００１は、ブロック毎に非０の値を持つ係数の個数を検出する。ここで検出された係数の個数は係数個数記憶部１００２に保存される。
【０２２９】
係数個数予測部１００３は、符号化済みブロックの係数の個数を係数個数記憶部１００２から読み込むことによりその値を参照して、符号化対象ブロックの係数の個数を予測する。
【０２３０】
ＶＬＣテーブル選択部１００４では、係数個数予測部１００３で予測された係数の個数をもとに、符号化に用いるＶＬＣテーブルを選択する。
【０２３１】
係数符号化部１００５は、ＶＬＣテーブル選択部１００４で選択されたＶＬＣテーブルを用いて符号化対象ブロックの係数の符号化を行う。
【０２３２】
係数個数予測部１００３を除く装置、つまり、係数個数検出部１００１、係数個数記憶部１００２、ＶＬＣテーブル選択部１００４、係数符号化部１００５は、第１の実施の形態において図３を参照して説明した係数個数検出部３０１、係数個数記憶部３０２、ＶＬＣテーブル選択部３０４、係数符号化部３０５と同じ動作であるので、説明を省略する。
【０２３３】
次に、係数個数予測部１００３の動作を説明する。
図１１は、係数個数予測部１００３の動作を説明するための図であり、図中斜線で示したブロックが符号化対象ブロックである。
【０２３４】
係数個数予測部１００３は、予測方法記憶部９１２から、符号化対象ブロックの左隣りのブロックおよび上隣りのブロックの予測方法（画面内予測もしくは画面間予測）を読み込む。
【０２３５】
図１１（ａ）のように符号化対象ブロックが画面内予測されたものであり、かつ、左隣りのブロックと上隣りのブロックが両方とも画面間予測されたブロックである場合には、左隣りのブロックの係数の個数と、上隣りのブロックの係数の個数の最大値を、符号化対象ブロックの係数の個数の予測値とする。
【０２３６】
もしくは、左隣りのブロックの係数の個数と、上隣りのブロックの係数の個数のうち、大きい方の係数の個数に対する重みを大きくして、左隣りのブロックの係数の個数と、上隣りのブロックの係数の個数の線形結合から符号化対象ブロックの係数の個数の予測値を求めることも好適である。
【０２３７】
もしくは、左隣りのブロックの係数の個数と、上隣りのブロックの係数の個数の平均値に所定の値を加えることによって、符号化対象ブロックの係数の個数の予測値を求めることも好適である。
【０２３８】
図１１（ａ）のように、周囲のブロックが画面間予測されたブロックであり、符号化対象ブロックが画面内予測されたブロックになる場合には、周囲の画面間予測されたブロックよりも画面内予測されたブロックである符号化対象ブロックの方が係数の個数が大きくなることが多いため、最大値を用いる方法や、大きい方の係数の個数に対する重みを大きくする方法、平均値に対して所定の値を加える方法が好適である。
【０２３９】
図１１（ｂ）のように符号化対象ブロックが画面内予測されたものであり、かつ、左隣りのブロックと上隣りのブロックのどちらか一方だけが画面内予測されたブロックである場合には、画面内予測された方のブロック（図１１（ｂ）では上隣りのブロック）の重みを大きくして、左隣りのブロックの係数の個数ｎＡと、上隣りのブロックの係数の個数ｎＢの線形結合から符号化対象ブロックの係数の個数の予測値を求める。
【０２４０】
図１１（ｂ）では、（ｎＡ＋３×ｎＢ）／４を係数の個数の予測値とする。なお、ｎＡに対する重みを０、ｎＢに対する重みを１とし、上隣りのブロックの係数の個数ｎＢだけを用いる構成としても良い。
【０２４１】
図１１（ｃ）のように符号化対象ブロックが画面間予測されたものであり、かつ、左隣りのブロックと上隣りのブロックが両方とも画面内予測されたブロックである場合には、左隣りのブロックの係数の個数と、上隣りのブロックの係数の個数の最小値を、符号化対象ブロックの係数の個数の予測値とする。
【０２４２】
もしくは、左隣りのブロックの係数の個数と、上隣りのブロックの係数の個数のうち、小さい方の係数の個数に対する重みを大きくして、左隣りのブロックの係数の個数と、上隣りのブロックの係数の個数の線形結合から符号化対象ブロックの係数の個数の予測値を求めることも好適である。
【０２４３】
もしくは、左隣りのブロックの係数の個数と、上隣りのブロックの係数の個数の平均値に所定の値を減算することによって、符号化対象ブロックの係数の個数の予測値を求めることも好適である。
【０２４４】
図１１（ｃ）のように、周囲のブロックが画面内予測されたブロックであり、符号化対象ブロックが画面間予測されたブロックになる場合には、周囲の画面内予測されたブロックよりも画面間予測されたブロックである符号化対象ブロックの方が係数の個数が小さくなることが多いため、最小値を用いる方法や、小さい方の係数の個数に対する重みを大きくする方法、平均値に対して所定の値を減じる方法が好適である。
【０２４５】
図１１（ｄ）のように符号化対象ブロックが画面間予測されたものであり、かつ、左隣りのブロックと上隣りのブロックのどちらか一方だけが画面間予測されたブロックである場合には、画面間予測された方のブロック（図１１（ｄ）では上隣りのブロック）の重みを大きくして、左隣りのブロックの係数の個数ｎＡと、上隣りのブロックの係数の個数ｎＢの線形結合から符号化対象ブロックの係数の個数の予測値を求める。
【０２４６】
図１１（ｄ）では、（ｎＡ＋３×ｎＢ）／４を係数の個数の予測値とする。なお、ｎＡに対する重みを「０」、ｎＢに対する重みを「１」とし、上隣りのブロックの係数の個数ｎＢだけを用いる構成としても良い。
【０２４７】
図１１（ｂ），（ｄ）のように、周囲のブロックのうち、符号化対象ブロックと同じ予測方法となるブロックが、左隣りのブロックおよび上隣りのブロックのいずれかだけの場合は、符号化対象ブロックの係数の個数は、同じ予測方法となるブロックの係数の個数との相関が高くなる。
【０２４８】
そのため、予測方法が同じとなるブロックの重みを大きくして線形結合により予測値を求める方法が好適である。
【０２４９】
上記以外、例えば図１１（ｅ）や（ｆ）の場合には、左隣りのブロックの係数の個数ｎＡと、上隣りのブロックの係数の個数ｎＢの平均値を、符号化対象ブロックの係数の個数の予測値とする。
【０２５０】
以上説明したように、予測方法記憶部９１２によって予測方法を記憶しておき、符号化対象ブロックの予測方法と、周囲の既に符号化済みのブロックの予測方法を参照することによって、符号化対象ブロックの係数を予測し、予測された係数の個数に応じて、符号化に用いるＶＬＣテーブルを選択することによって、１フレームの中に、画面内予測されたブロックと画面間予測されたブロックが混在する場合においても、高い符号化効率で符号化することができる。
【０２５１】
（実施の形態４）
図１２は、本発明の実施の形態４に従う画像復号装置の構成を示すブロック図である。
【０２５２】
図１２を参照して、本実施の形態４に従う画像復号装置は、実施の形態３に従う画像符号化装置で符号化された画像データを復号するのに用いられる。
【０２５３】
本実施の形態４に従う画像復号装置は、可変長符号復号部１２０１、逆量子化部１２０２、逆変換部１２０３、画面内予測部１２０４、画面間予測部１２０５、フレームメモリ１２０６、スイッチ１２０７、加算部１２０８、予測方法記憶部１２０９から構成される。
【０２５４】
入力された符号化データを復号する場合には、まず、符号化データから、復号対象のブロックが画面内予測であるか、画面間予測であるかを示すフラグを復号する。当該フラグの復号は、符号化データに基づいて図示しないが復号制御部で実行されるものとする。そして、復号制御部による復号に基づいてスイッチ１２０７の切り替えが実行されるものとする。なお、可変長符号復号部１２０１においてフラグを復号して、スイッチ１２０７の切り替えを制御するようにすることも可能である。
【０２５５】
復号対象ブロックが画面内予測である場合には、画面内予測部１２０４により予測画像を生成する。復号対象ブロックが画面間予測である場合には、画面間予測部１２０５により予測画像を生成する。
【０２５６】
画面内予測と画面間予測との切り替えはスイッチ１２０７により行われる。続いて、可変長符号復号部１２０１により変換係数を復号し、逆量子化部１２０２で逆量子化を行い逆変換部１２０３で逆変換を行う。
【０２５７】
こうして得られた予測誤差画像を、先ほど生成した予測画像と加算部１２０８において加算することで、復号画像を得る。得られた復号画像はフレームメモリ１２０６に記憶される。フレームメモリ１２０６に記憶された復号画像は、画面内予測部１２０４、画面間予測部１２０５で用いるための参照画像となる。
【０２５８】
本実施の形態４に従う画像復号装置では、マクロブロック単位で、画面内予測と画面間予測とを切り替えるような符号化データを復号するものとする。
【０２５９】
予測方法記憶部１２０９は、マクロブロック単位で、各マクロブロックが画面内予測されたものか、画面間予測されたものかを記憶するものとする。予測方法記憶部１２０９の情報は、可変長符号復号部１２０１に伝送される。
【０２６０】
本発明の特徴部分である可変長符号復号部１２０１について詳細を説明する。
図１３は、本実施の形態４に従う可変長符号復号部１２０１の構成を示す図である。
【０２６１】
図１３を参照して、本実施の形態４に従う可変長符号復号部１２０１は、係数個数検出部１３０１、係数個数記憶部１３０２、係数個数予測部１３０３、ＶＬＣテーブル選択部１３０４、係数復号部１３０５から構成される。
【０２６２】
係数個数検出部１３０１は、実施の形態３に従う係数個数検出部１００１と同様に、ブロック毎に非０の値を持つ係数の個数を検出する。
【０２６３】
検出する対象は、実施の形態３では、これから符号化する係数の個数であったが、本実施の形態では、復号して得られた係数の個数である。ここで検出された係数の個数は、係数個数記憶部１３０２に保存される。
【０２６４】
係数個数予測部１３０３は、復号済みブロックの係数の個数を係数個数記憶部１３０２から読み込むことにより、その値を参照して復号対象ブロックの係数の個数を予測する。
【０２６５】
ＶＬＣテーブル選択部１３０４では、係数個数予測部１３０３で予測された係数の個数をもとに、復号に用いるＶＬＣテーブルを選択する。
【０２６６】
係数復号部１３０５は、ＶＬＣテーブル選択部１３０４で選択されたＶＬＣテーブルを用いて復号対象ブロックの係数の復号を行う。
【０２６７】
係数個数予測部１３０３を除く装置、つまり、係数個数検出部１３０１、係数個数記憶部１３０２、ＶＬＣテーブル選択部１３０４、係数符号化部１３０５は、図８を参照して説明した係数個数検出部７０１、係数個数記憶部７０２、ＶＬＣテーブル選択部７０４、係数復号部７０５と同じ動作であるので、説明を省略する。
【０２６８】
次に、係数個数予測部１３０３の動作を説明する。
図１１を用いて係数個数予測部１３０３の動作を説明する。図中斜線で示したブロックが復号対象ブロックである。
【０２６９】
係数個数予測部１３０３は、予測方法記憶部１２０９から、復号対象ブロックの左隣りのブロックおよび上隣りのブロックの予測方法（画面内予測もしくは画面間予測）を読み込む。
【０２７０】
図１１（ａ）のように復号対象ブロックが画面内予測されたものであり、かつ、左隣りのブロックと上隣りのブロックが両方とも画面間予測されたブロックである場合には、左隣りのブロックの係数の個数と、上隣りのブロックの係数の個数の最大値を、復号対象ブロックの係数の個数の予測値とする。
【０２７１】
もしくは、左隣りのブロックの係数の個数と、上隣りのブロックの係数の個数のうち、大きい方の係数の個数に対する重みを大きくして、左隣りのブロックの係数の個数と、上隣りのブロックの係数の個数の線形結合から復号対象ブロックの係数の個数の予測値を求めることも好適である。
【０２７２】
もしくは、左隣りのブロックの係数の個数と、上隣りのブロックの係数の個数の平均値に所定の値を加えることによって、復号対象ブロックの係数の個数の予測値を求めることも好適である。
【０２７３】
図１１（ｂ）のように復号対象ブロックが画面内予測されたものであり、かつ、左隣りのブロックと上隣りのブロックのどちらか一方だけが画面内予測されたブロックである場合には、画面内予測された方のブロック（図１１（ｂ）では上隣りのブロック）の重みを大きくして、左隣りのブロックの係数の個数ｎＡと、上隣りのブロックの係数の個数ｎＢの線形結合から復号対象ブロックの係数の個数の予測値を求める。
【０２７４】
図１１（ｂ）では、（ｎＡ＋３×ｎＢ）／４を係数の個数の予測値とする。なお、上隣りのブロックの係数の個数ｎＢをそのまま係数の個数の予測値としても良い。
【０２７５】
図１１（ｃ）のように復号対象ブロックが画面間予測されたものであり、かつ、左隣りのブロックと上隣りのブロックが両方とも画面内予測されたブロックである場合には、左隣りのブロックの係数の個数と、上隣りのブロックの係数の個数の最小値を、復号対象ブロックの係数の個数の予測値とする。
【０２７６】
もしくは、左隣りのブロックの係数の個数と、上隣りのブロックの係数の個数のうち、小さい方の係数の個数に対する重みを大きくして、左隣りのブロックの係数の個数と、上隣りのブロックの係数の個数の線形結合から復号対象ブロックの係数の個数の予測値を求めることも好適である。
【０２７７】
もしくは、左隣りのブロックの係数の個数と、上隣りのブロックの係数の個数の平均値に所定の値を減算することによって、復号対象ブロックの係数の個数の予測値を求めることも好適である。
【０２７８】
図１１（ｄ）のように復号対象ブロックが画面間予測されたものであり、かつ、左隣りのブロックと上隣りのブロックのどちらか一方だけが画面間予測されたブロックである場合には、画面間予測された方のブロック（図１１（ｄ）では上隣りのブロック）の重みを大きくして、左隣りのブロックの係数の個数ｎＡと、上隣りのブロックの係数の個数ｎＢの線形結合から復号対象ブロックの係数の個数の予測値を求める。
【０２７９】
図１１（ｄ）では、（ｎＡ＋３×ｎＢ）／４を係数の個数の予測値とする。なお、上隣りのブロックの係数の個数ｎＢをそのまま係数の個数の予測値としても良い。
【０２８０】
上記以外、例えば図１１（ｅ）や（ｆ）の場合には、左隣りのブロックの係数の個数ｎＡと、上隣りのブロックの係数の個数ｎＢの平均値を、復号対象ブロックの係数の個数の予測値とする。
【０２８１】
以上説明したように、予測方法記憶部１２０９によって予測方法を記憶しておき、復号対象ブロックの予測方法と、周囲の既に復号済みのブロックの予測方法を参照することによって、復号対象ブロックの係数を予測し、予測された係数の個数に応じて、復号に用いるＶＬＣテーブルを選択することによって、１フレームの中に、画面内予測されたブロックと画面間予測されたブロックが混在する場合においても、高い符号化効率で符号化された画像データを復号することができる。
【０２８２】
今回開示された実施の形態はすべての点で例示であって制限的なものではない。本発明の範囲は上記した実施の形態ではなくて特許請求の範囲によって示され、特許請求の範囲と均等な意味および範囲内でのすべての変更点が含まれることが意図される。
【産業上の利用可能性】
【０２８３】
本発明は、画像符号化装置および画像復号装置として利用することができる。
【図面の簡単な説明】
【０２８４】
【図１】本発明の実施の形態１に従う画像符号化装置の構成を示すブロック図である。
【図２】符号化対象マクロブロックと符号化対象マクロブロックを符号化するために参照するマクロブロックの位置関係を示す図である。
【図３】本発明の実施の形態1に従う特徴的な部分である可変長符号化部１０８の内部の構成を示す図である。
【図４】符号化対象ブロックに対する参照ブロックを示す図である。
【図５】係数個数記憶部３０２が係数の個数を記憶するマクロブロック内のブロックを示す図である。
【図６】予測方法３を説明するための図である。
【図７】本発明の実施の形態２に従う画像復号装置の構成を示すブロック図である。
【図８】本実施の形態２に従う可変長符号復号部６０１の構成を示す図である。
【図９】本発明の実施の形態３に従う画像符号化装置の構成を示すブロック図である。
【図１０】本発明の実施の形態３に従う特徴的な部分である可変長符号化部９０８の内部の構成を示す図である。
【図１１】係数個数予測部の動作を説明するための図である。
【図１２】本発明の実施の形態４に従う画像復号装置の構成を示すブロック図である。
【図１３】本実施の形態４に従う可変長符号復号部１２０１の構成を示す図である。
【図１４】従来の画像符号化装置の構成を示すブロック図である。
【図１５】４×４画面内予測の予測モードを示す図である。
【図１６】符号化対象ブロックの画素と参照する符号化済みブロックの画素の位置関係を示す図である。
【図１７】符号化対象ブロックと参照する符号化済みブロックとの位置関係を示す図である。
【図１８】ＴｏｔａｌＣｏｅｆｆと、ＴｒａｉｌｉｎｇＯｎｅｓの符号化に用いられるＶＬＣテーブルを説明する図である。
【符号の説明】
【０２８５】
１０１，９０１，１４０１  変換部、１０２，９０２，１４０２  量子化部、１０３，６０２，９０３，１２０２，１４０３  逆量子化部、１０４，６０３，９０４，１２０３，１４０４  逆変換部、１０５，６０４，９０５，１２０４，１４０５  画面内予測部、１０６，６０５，９０６，１２０５，１４０６  画面間予測部、１０７，６０６，９０７，１２０６，１４０７  フレームメモリ、１０８，９０８，１４０８  可変長符号化部、１０９，６０７，９０９，１２０７，１４０９  スイッチ、１１０，９１０，１４１０  減算部、１１１，６０８，９１１，１２０８，１４１１  加算部、３０１，７０１，１００１，１３０１  係数個数検出部、３０２，７０２，１００２，１３０２  係数個数記憶部、３０３，７０３，１００３，１３０３  係数個数予測部、３０４，７０４，１００４，１３０４  ＶＬＣテーブル選択部、３０５，９０８，１００５  係数符号化部、６０１，１２０１  可変長符号復号部、７０５，１３０５  係数復号部、９１２，１２０９  予測方法記憶部。
【図１】
2008092456.tif 000010
【図２】
2008092456.tif 000011
【図３】
2008092456.tif 000012
【図４】
2008092456.tif 000013
【図５】
2008092456.tif 000014
【図６】
2008092456.tif 000015
【図７】
2008092456.tif 000016
【図８】
2008092456.tif 000017
【図９】
2008092456.tif 000018
【図１０】
2008092456.tif 000019
【図１１】
2008092456.tif 000020
【図１２】
2008092456.tif 000021
【図１３】
2008092456.tif 000022
【図１４】
2008092456.tif 000023
【図１５】
2008092456.tif 000024
【図１６】
2008092456.tif 000025
【図１７】
2008092456.tif 000026
【図１８】
2008092456.tif 000027