(57)【特許請求の範囲】
【請求項１】
画像データを符号化する画像符号化装置であって、
画像間において、入力画像に対して画素毎の差分の絶対値の和が最小となる参照画像を選択し、前記参照画像に対する前記入力画像の動きベクトルを検出する動き予測手段と、
画像内において、入力画像に対する画素毎の差分の絶対値の和が最小となる予測画像を選択し、前記予測画像を生成するための予測モードを特定する面内予測手段と、
前記入力画像と前記参照画像との差を示す動き残差と前記動きベクトルを符号化した値とを加算することにより得られる動き合計と、前記入力画像と前記予測画像との差を示す面内残差と前記予測モードを符号化した値とを加算することにより得られる面内合計とを比較し、前記動き合計と前記面内合計とのうちで小さい方を選択する入力選択手段と、
前記入力選択手段によって選択された合計に対応する前記参照画像又は前記予測画像に対する、前記入力画像の画素毎の差分により形成される差分画像を直交変換する直交変換手段と、
前記直交変換手段によって得られる値を量子化する量子化手段と、
前記量子化手段によって得られる値を２値化する２値化手段と、
前記２値化手段によって得られる２値データを算術符号化する算術符号化手段と、
前記入力画像に対応するＩ＿ＰＣＭデータを保持するバッファと、
前記動き合計と前記面内合計とのうちの小さい方であるコストと第１閾値とを比較する比較手段と、
前記コストが前記第１閾値以下である場合、前記画像符号化装置の外部に出力するデータとして前記算術符号化手段によって得られる符号化データを選択し、前記コストが前記第１閾値より大きい場合、前記画像符号化装置の外部に出力するデータとして前記バッファにより保持される前記Ｉ＿ＰＣＭデータを選択する出力選択手段と、
前記出力選択手段による選択に従って、前記符号化データ又は前記Ｉ＿ＰＣＭデータを前記画像符号化装置の外部に出力する出力手段と
を備える画像符号化装置。
【請求項２】
更に、前記コストと前記第１閾値より小さい第２閾値とを比較し、前記コストが前記第２閾値より大きく前記第１閾値以下である場合、前記量子化手段が用いる量子化幅を大きくさせる量子化幅変更手段とを備え、
前記量子化手段は、前記量子化幅変更手段の制御に基づく量子化幅を用いて、前記直交変換手段によって得られる値を量子化する
請求項１に記載の画像符号化装置。
【請求項３】
更に、
前記２値化手段によって得られる２値データの量と第３閾値とを比較し、前記２値データの量と前記第３閾値との大小関係の程度に応じて、前記量子化手段が用いる量子化幅を決定する量子化幅決定手段と、
前記量子化幅決定手段によって決定された量子化幅に応じて前記第１閾値を決定する閾値決定手段とを備え、
前記比較手段は、前記コストと前記閾値決定手段によって決定された前記第１閾値とを比較し、
前記量子化手段は、前記量子化幅決定手段によって決定された量子化幅を用いて、前記直交変換手段によって得られる値を量子化する
請求項１に記載の画像符号化装置。
【請求項４】
更に、前記入力画像の輝度分散値と、前記入力画像の色差分散値との少なくとも一方を算出する分散算出手段を備え、
前記閾値決定手段は、前記分散算出手段によって得られる値を利用して前記第１閾値を決定する
請求項３に記載の画像符号化装置。
【請求項５】
画像間において、入力画像に対して画素毎の差分の絶対値の和が最小となる参照画像を選択し、前記参照画像に対する前記入力画像の動きベクトルを検出する動き予測ステップと、
画像内において、入力画像に対する画素毎の差分の絶対値の和が最小となる予測画像を選択し、前記予測画像を生成するための予測モードを特定する面内予測ステップと、
前記入力画像と前記参照画像との差を示す動き残差と前記動きベクトルを符号化した値とを加算することにより得られる動き合計と、前記入力画像と前記予測画像との差を示す面内残差と前記予測モードを符号化した値とを加算することにより得られる面内合計とを比較し、前記動き合計と前記面内合計とのうちで小さい方を選択する入力選択ステップと、
前記入力選択ステップにおいて選択した合計に対応する前記参照画像又は前記予測画像に対する、前記入力画像の画素毎の差分により形成される差分画像を直交変換する直交変換ステップと、
前記直交変換ステップにおいて得る値を量子化する量子化ステップと、
前記量子化ステップにおいて得る値を２値化する２値化ステップと、
前記２値化ステップにおいて得る２値データを算術符号化する算術符号化ステップと、
前記動き合計と前記面内合計とのうちの小さい方であるコストと閾値とを比較する比較ステップと、
前記コストが前記閾値以下である場合、画像符号化装置の外部に出力するデータとして前記算術符号化ステップにおいて得る符号化データを選択し、前記コストが前記閾値より大きい場合、前記画像符号化装置の外部に出力するデータとして前記入力画像に対応するＩ＿ＰＣＭデータを選択する出力選択ステップと、
前記出力選択ステップにおける選択に従って、前記符号化データ又は前記Ｉ＿ＰＣＭデータを前記画像符号化装置の外部に出力する出力ステップと
を備える画像符号化方法。
【請求項６】
画像間において、入力画像に対して画素毎の差分の絶対値の和が最小となる参照画像を選択し、前記参照画像に対する前記入力画像の動きベクトルを検出する動き予測ステップと、
画像内において、入力画像に対する画素毎の差分の絶対値の和が最小となる予測画像を選択し、前記予測画像を生成するための予測モードを特定する面内予測ステップと、
前記入力画像と前記参照画像との差を示す動き残差と前記動きベクトルを符号化した値とを加算することにより得られる動き合計と、前記入力画像と前記予測画像との差を示す面内残差と前記予測モードを符号化した値とを加算することにより得られる面内合計とを比較し、前記動き合計と前記面内合計とのうちで小さい方を選択する入力選択ステップと、
前記入力選択ステップにおいて選択した合計に対応する前記参照画像又は前記予測画像に対する、前記入力画像の画素毎の差分により形成される差分画像を直交変換する直交変換ステップと、
前記直交変換ステップにおいて得る値を量子化する量子化ステップと、
前記量子化ステップにおいて得る値を２値化する２値化ステップと、
前記２値化ステップにおいて得る２値データを算術符号化する算術符号化ステップと、
前記動き合計と前記面内合計とのうちの小さい方であるコストと閾値とを比較する比較ステップと、
前記コストが前記閾値以下である場合、画像符号化装置の外部に出力するデータとして前記算術符号化ステップにおいて得る符号化データを選択し、前記コストが前記閾値より大きい場合、前記画像符号化装置の外部に出力するデータとして前記入力画像に対応するＩ＿ＰＣＭデータを選択する出力選択ステップと、
前記出力選択ステップにおける選択に従って、前記符号化データ又は前記Ｉ＿ＰＣＭデータを前記画像符号化装置の外部に出力する出力ステップと
をコンピュータに実行させるためのプログラム。
【請求項７】
画像間において、入力画像に対して画素毎の差分の絶対値の和が最小となる参照画像を選択し、前記参照画像に対する前記入力画像の動きベクトルを検出する動き予測手段と、
画像内において、入力画像に対する画素毎の差分の絶対値の和が最小となる予測画像を選択し、前記予測画像を生成するための予測モードを特定する面内予測手段と、
前記入力画像と前記参照画像との差を示す動き残差と前記動きベクトルを符号化した値とを加算することにより得られる動き合計と、前記入力画像と前記予測画像との差を示す面内残差と前記予測モードを符号化した値とを加算することにより得られる面内合計とを比較し、前記動き合計と前記面内合計とのうちで小さい方を選択する入力選択手段と、
前記入力選択手段によって選択された合計に対応する前記参照画像又は前記予測画像に対する、前記入力画像の画素毎の差分により形成される差分画像を直交変換する直交変換手段と、
前記直交変換手段によって得られる値を量子化する量子化手段と、
前記量子化手段によって得られる値を２値化する２値化手段と、
前記２値化手段によって得られる２値データを算術符号化する算術符号化手段と、
前記入力画像に対応するＩ＿ＰＣＭデータを保持するバッファと、
前記動き合計と前記面内合計とのうちの小さい方であるコストと閾値とを比較する比較手段と、
前記コストが前記閾値以下である場合、画像符号化装置の外部に出力するデータとして前記算術符号化手段によって得られる符号化データを選択し、前記コストが前記閾値より大きい場合、前記画像符号化装置の外部に出力するデータとして前記バッファにより保持される前記Ｉ＿ＰＣＭデータを選択する出力選択手段と、
前記出力選択手段による選択に従って、前記符号化データ又は前記Ｉ＿ＰＣＭデータを前記画像符号化装置の外部に出力する出力手段と
を備える集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、Ｈ．２６４／ＡＶＣ規格を遵守して動画像データを符号化する画像符号化装置に関する。
【背景技術】
【０００２】
Ｈ．２６４／ＡＶＣ規格で規定されているデータ圧縮技術にエントロピー符号化（可変長符号化）がある。エントロピー符号化の方式として、Ｃｏｎｔｅｘｔ−ｂａｓｅｄ  Ａｄａｐｔｉｖｅ  Ｖａｒｉａｂｌｅ  Ｌｅｎｇｔｈ  Ｃｏｄｉｎｇ（ＣＡＶＬＣ）と、Ｃｏｎｔｅｘｔ−ｂａｓｅｄ  Ａｄａｐｔｉｖｅ  Ｂｉｎａｒｙ  Ａｒｉｔｈｍｅｔｉｃ  Ｃｏｄｉｎｇ（ＣＡＢＡＣ）との２つの方式が用意されている。ＣＡＢＡＣは、時間とともに変化する符号化対象の出現頻度と、各シンボルの符号化時の発生確率とが一致するように調整することで、最良の圧縮状態であるエントロピー符号化を行なう方式である。
【０００３】
ＣＡＢＡＣでの符号化は主に２つの処理に分けられる。１つ目は、Ｓｙｎｔａｘと呼ばれる符号化すべき多値データを２値データに変換する２値化（ｂｉｎａｒｉｚａｔｉｏｎ）と呼ばれる処理であり、２つ目は、２値化によって得られる２値データに対してコンテキストを算出し算術符号化を行なう処理である。
【０００４】
算術符号化では、２値データのビット毎に“０”と“１”との出現確率を求めて符号化処理を行ない、同時に出現確率も更新する。このように、算術符号化はビット毎の処理であるので、算術符号化の処理スピードは、通常１ビット／１クロックである。また、出現確率は、ビット毎に適応的に切り替えられ、ビットの値によって更新されるため、算術符号化によって得られる符号量を算術符号化の前に正確に知ることは難しい。
【０００５】
また、Ｈ．２６４／ＡＶＣ規格では、４−２−０フォーマットが採用されて、かつ各画素の輝度及び色差が８ビットで表現される場合、１個のマクロブロックの最大符号量は３２００ビットである。１個のマクロブロックを符号化した結果、符号量が３２００ビットを超える場合、符号化の条件を変更してそのマクロブロックに対して再度符号化を行なわなければならない。符号量が３２００ビットを超える場合、ｍｂ＿ｔｙｐｅとしてＩ＿ＰＣＭを選択し、符号化データの代わりにＩ＿ＰＣＭデータを選択する方法もある。ＣＡＢＡＣにより得られる符号量を実際に符号化データが得られるまで正確に知ることが困難であるため、符号化対象のマクロブロックの最大符号量が制限値以下であるかどうかを判定することは、ＣＡＢＡＣ符号化後に行なわれる。
【０００６】
また、算術符号化部に入力されるデータの量を監視し、そのデータの量がある処理単位で閾値を超えた場合、画像符号化装置が出力するデータとして、その入力データが得られた際に用いられたパラメータと異なるパラメータが用いられて得られた入力データに対して算術符号化することにより得られる符号化データと、非圧縮データとのうちの一方を選択する技術が開示されている（例えば、特許文献１）。
【０００７】
図７は、従来の画像符号化装置５０の機能的な構成を示すブロック図である。
【０００８】
従来の画像符号化装置５０は、入力される画像データを符号化してビットストリームを出力する装置である。画像符号化装置５０の動作の概要を以下に説明する。ここで、画像データは、動画像を構成するマクロブロックのデータ等の実体的なデータ、マクロブロックタイプ（ｍｂ＿ｔｙｐｅ）等の制御情報、及びその他の属性情報等の、動画像に関するデータである。
【０００９】
符号化対象の動画像のデータは、動き予測部５１と、面内予測部５２と、Ｉ＿ＰＣＭデータバッファ５３とに入力される。動き予測部５１は、符号化対象のブロックを含むピクチャ以外のピクチャから符号化対象のブロックと似ているブロックを検出し、符号化対象のブロックと検出されたブロックとの間の差分画像を求め、差分画像と動きベクトルとを入力選択部５４に出力する。面内予測部５２は、画面内の符号化対象のブロックの画像をそれに隣接するブロックの画像を用いて予測し、符号化対象のブロックの画像と予測された画像との間の差分画像を求め、差分画像と予測モードとを入力選択部５４に出力する。Ｉ＿ＰＣＭデータバッファ５３は、入力された動画像の原画データであるＩ＿ＰＣＭデータを保持する。
【００１０】
入力選択部５４は、動き予測部５１からのデータと面内予測部５２からのデータとのうちの量が少ない方を選択する。直交変換部５５は、入力選択部５４によって選択されたデータに対して、直交変換の一種である離散コサイン変換（ＤＣＴ）を行ない。量子化部５６は、直交変換部５５によって得られたＤＣＴ係数を量子化する。２値化部５７は量子化されたＤＣＴ係数を２値化し、ＣＡＢＡＣ符号化部５９は２値化によって得られた２値データを算術符号化し、出力バッファ６０は算術符号化されたデータ（符号化データ）を保持する。
【００１１】
Ｉ＿ＰＣＭ判定部５８は、２値化部５７から出力される２値データの量が第１の閾値以下であるか否かを判定するとともに、ＣＡＢＡＣ符号化部５９から出力される符号化データの量が第２の閾値（例えば３２００ビット）以下であるか否かを判定する。Ｉ＿ＰＣＭ判定部５８は、２値データの量が第１の閾値以下であって、かつ符号化データの量が第２の閾値以下である場合、画像符号化装置５０が出力するビットストリームとしてＣＡＢＡＣ符号化部５９によって得られる符号化データを選択することを決定する。それに対して、２値データの量が第１の閾値より大きい場合、又は、符号化データの量が第２の閾値より大きい場合、Ｉ＿ＰＣＭ判定部５８は、画像符号化装置５０が出力するビットストリームとしてＩ＿ＰＣＭデータバッファ５３によって保持されているＩ＿ＰＣＭデータを選択することを決定する。出力選択部６１は、Ｉ＿ＰＣＭ判定部５８による決定に従って、符号化データ又はＩ＿ＰＣＭデータを画像符号化装置５０外部に出力する。
【特許文献１】特開２００４−１３５２５１号公報
【発明の開示】
【発明が解決しようとする課題】
【００１２】
ところで、Ｈ．２６４／ＡＶＣ規格では、処理対象のマクロブロックの動き予測及び面内予測を行なう場合、処理対象のマクロブロックより前のマクロブロックの情報を用いる。従って従来のように、処理対象のマクロブロックの最大符号量が制限値以下であるかどうかを判定することをＣＡＢＡＣ後に行なうと、処理対象のマクロブロックのＣＡＢＡＣ符号化が終了するまで、処理対象のマクロブロックの次のマクロブロックの動き予測及び面内予測を行なうことができない。つまり、従来の画像符号化装置は、画像データを高速に（リアルタイムに）処理することができない。
【００１３】
本発明は、上記課題を考慮し、エントロピー符号化を行なうことができ、かつ、画像データを高速に処理する画像符号化装置を提供することを目的とする。
【課題を解決するための手段】
【００１４】
上記課題を解決し上記目的を達成するために、本発明の画像符号化装置は、画像データを符号化する画像符号化装置であって、画像間において、入力画像に対して画素毎の差分の絶対値の和が最小となる参照画像を選択し、前記参照画像に対する前記入力画像の動きベクトルを検出する動き予測手段と、画像内において、入力画像に対する画素毎の差分の絶対値の和が最小となる予測画像を選択し、前記予測画像を生成するための予測モードを特定する面内予測手段と、前記入力画像と前記参照画像との差を示す動き残差と前記動きベクトルを符号化した値とを加算することにより得られる動き合計と、前記入力画像と前記予測画像との差を示す面内残差と前記予測モードを符号化した値とを加算することにより得られる面内合計とを比較し、前記動き合計と前記面内合計とのうちで小さい方を選択する入力選択手段と、前記入力選択手段によって選択された合計に対応する前記参照画像又は前記予測画像に対する、前記入力画像の画素毎の差分により形成される差分画像を直交変換する直交変換手段と、前記直交変換手段によって得られる値を量子化する量子化手段と、前記量子化手段によって得られる値を２値化する２値化手段と、前記２値化手段によって得られる２値データを算術符号化する算術符号化手段と、前記入力画像に対応するＩ＿ＰＣＭデータを保持するバッファと、前記動き合計と前記面内合計とのうちの小さい方であるコストと第１閾値とを比較する比較手段と、前記コストが前記第１閾値以下である場合、前記画像符号化装置の外部に出力するデータとして前記算術符号化手段によって得られる符号化データを選択し、前記コストが前記第１閾値より大きい場合、前記画像符号化装置の外部に出力するデータとして前記バッファにより保持される前記Ｉ＿ＰＣＭデータを選択する出力選択手段と、前記出力選択手段による選択に従って、前記符号化データ又は前記Ｉ＿ＰＣＭデータを前記画像符号化装置の外部に出力する出力手段とを備える。
【００１５】
本発明の画像符号化装置は、更に、前記コストと前記第１閾値より小さい第２閾値とを比較し、前記コストが前記第２閾値より大きく前記第１閾値以下である場合、前記量子化手段が用いる量子化幅を大きくさせる量子化幅変更手段を備え、前記量子化手段は、前記量子化幅変更手段の制御に基づく量子化幅を用いて、前記直交変換手段によって得られる値を量子化してもよい。
【００１６】
本発明の画像符号化装置は、更に、前記２値化手段によって得られる２値データの量と第３閾値とを比較し、前記２値データの量と前記第３閾値との大小関係の程度に応じて、前記量子化手段が用いる量子化幅を決定する量子化幅決定手段と、前記量子化幅決定手段によって決定された量子化幅に応じて前記第１閾値を決定する閾値決定手段とを備え、前記比較手段は、前記コストと前記閾値決定手段によって決定された前記第１閾値とを比較し、前記量子化手段は、前記量子化幅決定手段によって決定された量子化幅を用いて、前記直交変換手段によって得られる値を量子化してもよい。
【００１７】
本発明の画像符号化装置は、更に、前記入力画像の輝度分散値と、前記入力画像の色差分散値との少なくとも一方を算出する分散算出手段を備え、前記閾値決定手段は、前記分散算出手段によって得られる値を利用して前記第１閾値を決定してもよい。
【００１８】
また、本発明の画像符号化装置の特徴的な構成手段をステップとするコンテンツ送信方法を実現したり、それらのステップをコンピュータに実行させるプログラムを実現したり、上記特徴的な構成手段を含む集積回路を実現することもできる。上記プログラムは、ＣＤ−ＲＯＭ等の記録媒体や通信ネットワーク等の伝送媒体を介して流通させることができる。
【発明の効果】
【００１９】
本発明は、エントロピー符号化を行なうことができ、かつ、画像データを高速に処理する画像符号化装置を提供することができる。
【００２０】
本発明の画像符号化装置は、動き合計と面内合計とのうちで小さい方であるコストと第１閾値との大小比較結果に応じて、画像符号化装置の外部に出力するデータとして符号化データとＩ＿ＰＣＭデータとの何れかを選択する。そのため、動き予測手段及び面内予測手段、入力選択手段、直交変換手段、並びに、量子化手段は、パイプライン処理することができる。
【発明を実施するための最良の形態】
【００２１】
以下に、本発明を実施するための最良の形態を、図面を参照して説明する。
【００２２】
先ず、実施の形態の画像符号化装置１０の構成を、図１を用いて説明する。
【００２３】
図１は実施の形態の画像符号化装置１０の構成図である。実施の形態の画像符号化装置１０は、入力される動画像データを符号化してビットストリームを出力する装置であって、画像符号化部１００と、Ｉ＿ＰＣＭバッファ１０３と、Ｉ＿ＰＣＭ判定部１２０と、出力選択部１０７と、エントロピー符号化部１４０と、出力部１０８とを備える。
【００２４】
画像符号化部１００は、入力される画像データを符号化する構成部であって、動き予測部１０１と、面内予測部１０２と、入力選択部１０４と、直交変換部１０５と、量子化部１０６とを有する。
【００２５】
動き予測部１０１は、画像間において、入力される画像データから構成される符号化対象マクロブロックそれぞれについて、符号化対象マクロブロックに対して画素毎の差分の絶対値の和が最小となる参照マクロブロックを選択し、参照マクロブロックに対する符号化対象マクロブロックの動きベクトルを検出する。また、動き予測部１０１は、参照マクロブロックに対する符号化対象マクロブロックの画素毎の差分値を検出する。以下では説明の簡単化のため、その画素毎の差分値により形成される画像を、「動き差分画像」という。また、符号化対象マクロブロックと参照マクロブロックとの間の画素毎の差分の絶対値の和を「動き絶対値和」という。また、符号化対象マクロブロックは、本発明の画像符号化装置の動き予測手段による処理対象である入力画像の一例であり、参照マクロブロックは、本発明の画像符号化装置の動き予測手段による処理対象である参照画像の一例である。
【００２６】
面内予測部１０２は、画像内において、入力される画像データから構成される符号化対象マクロブロックそれぞれについて、複数の予測候補マクロブロックから、符号化対象マクロブロックに対する画素毎の差分の絶対値の和が最も小さい予測マクロブロックを選択し、予測マクロブロックを生成するための予測モードを特定する。また、面内予測部１０２は、予測マクロブロックに対する符号化対象マクロブロックの画素毎の差分値を検出する。以下では説明の簡単化のため、その画素毎の差分値により形成される画像を、「面内差分画像」という。また、符号化対象マクロブロックと予測マクロブロックとの間の画素毎の差分の絶対値の和を「面内絶対値和」という。また、符号化対象マクロブロックは、本発明の画像符号化装置の面内予測手段による処理対象である入力画像の一例であり、予測マクロブロックは、本発明の画像符号化装置の面内予測手段による処理対象である予測画像の一例である。
【００２７】
入力選択部１０４は、動きベクトルを符号化した値と動き絶対値和とを加算することにより得られる動き合計と、予測モードを符号化した値と面内絶対値和とを加算することにより得られる面内合計とを比較し、動き合計と面内合計とのうちで小さい方を選択する。また、入力選択部１０４は、動き合計を選択する場合、動き差分画像を直交変換部１０５に出力するとともに、動き合計をコストとしてＩ＿ＰＣＭ判定部１２０に出力し、面内合計を選択する場合、面内差分画像を直交変換部１０５に出力するとともに、面内合計をコストとしてＩ＿ＰＣＭ判定部１２０に出力する。
【００２８】
直交変換部１０５は、入力選択部１０４からの差分画像（動き差分画像又は面内差分画像）を直交変換する。例えば、直交変換部１０５は、入力選択部１０４からの差分画像に対して、離散コサイン変換（ＤＣＴ）を行なう。量子化部１０６は、直交変換部１０５によって得られた値（例えばＤＣＴ係数）を量子化する。
【００２９】
Ｉ＿ＰＣＭバッファ１０３は、入力画像に対応するＩ＿ＰＣＭデータを保持する。
【００３０】
Ｉ＿ＰＣＭ判定部１２０は、１個のマクロブロックの符号量が例えば３２００ビット等の所定量を超えるか否かを判定するための第１閾値を保持しており、入力選択部１０４からのコストと第１閾値との大小を比較する。そして、Ｉ＿ＰＣＭ判定部１２０は、（Ａ）入力選択部１０４からのコストが第１閾値以下である場合、量子化部１０６によって得られるデータを選択することを出力選択部１０７に指示し、（Ｂ）入力選択部１０４からのコストが第１閾値より大きい場合、Ｉ＿ＰＣＭバッファ１０３に保持されたＩ＿ＰＣＭデータを選択することを出力選択部１０７に指示する。
【００３１】
出力選択部１０７は、Ｉ＿ＰＣＭ判定部１２０からの指示に従って、量子化部１０６によって得られたデータと、Ｉ＿ＰＣＭバッファ１０３に保持されたＩ＿ＰＣＭデータとの一方を選択し、選択したデータをエントロピー符号化部１４０に出力する。
【００３２】
エントロピー符号化部１４０は、出力選択部１０７からのデータに対して算術符号化する構成部であって、２値化部１４１と、ＣＡＢＡＣ符号化部１４２とを有する。２値化部１４１は出力選択部１０７からのデータを２値化し、ＣＡＢＡＣ符号化部１４２は、２値化部１４１によって得られた２値データを算術符号化する。
【００３３】
出力部１０８は、エントロピー符号化部１４０からの算術符号化されたデータ（符号化データ）と、出力選択部１０７からのＩ＿ＰＣＭデータとの一方を、画像符号化装置１０外部に出力する。
【００３４】
なお、動き予測部１０１は本発明の画像符号化装置の動き予測手段の一例であり、面内予測部１０２は本発明の画像符号化装置の面内予測手段の一例であり、入力選択部１０４は本発明の画像符号化装置の入力選択手段の一例である。直交変換部１０５は本発明の画像符号化装置の直交変換手段の一例であり、量子化部１０６は本発明の画像符号化装置の量子化手段の一例であり、２値化部１４１は本発明の画像符号化装置の２値化手段の一例である。ＣＡＢＡＣ符号化部１４２は本発明の画像符号化装置の算術符号化手段の一例であり、Ｉ＿ＰＣＭバッファ１０３は本発明の画像符号化装置のバッファの一例であり、Ｉ＿ＰＣＭ判定部１２０は本発明の画像符号化装置の比較手段の一例である。出力選択部１０７は本発明の画像符号化装置の出力選択手段の一例であり、出力部１０８は本発明の画像符号化装置の出力手段の一例である。
【００３５】
次に、実施の形態の画像符号化装置１０の動作を、図２をも用いて説明する。
【００３６】
図２は、各符号化対象マクロブロック（ＭＢ１、ＭＢ２、及び、ＭＢ３）に対して、画像符号化部１００を構成する動き予測部１０１、面内予測部１０２、入力選択部１０４、直交変換部１０５、及び、量子化部１０６それぞれが動作する時刻を示す図である。以下では、最初に符号化対象マクロブロックＭＢ１が処理され、次に符号化対象マクロブロックＭＢ２が処理され、その次に符号化対象マクロブロックＭＢ３が処理されることを想定する。
【００３７】
先ず、時刻ｔ１において、動き予測部１０１は、符号化対象マクロブロックＭＢ１に対して画素毎の差分の絶対値の和が最小となる参照マクロブロックを選択し、参照マクロブロックに対する符号化対象マクロブロックＭＢ１の動きベクトルを検出する。また、動き予測部１０１は、参照マクロブロックに対する符号化対象マクロブロックＭＢ１の画素毎の差分値を検出する。また、動き予測部１０１は、符号化対象マクロブロックＭＢ１と参照マクロブロックとの間の画素毎の差分の絶対値の和である動き絶対値和を算出するとともに、検出した動きベクトルを符号化した値と動き絶対値和とを加算することにより得られる動き合計を算出する。そして、動き予測部１０１は、参照マクロブロックに対する符号化対象マクロブロックＭＢ１の画素毎の差分値により形成される画像（動き差分画像）と、符号化対象マクロブロックＭＢ１の動きベクトルと、符号化対象マクロブロックＭＢ１の動き合計とを入力選択部１０４に出力する。
【００３８】
また、時刻ｔ１において、面内予測部１０２は、複数の予測候補マクロブロックから、符号化対象マクロブロックＭＢ１に対する画素毎の差分の絶対値の和が最も小さいマクロブロックを予測マクロブロックとして選択し、予測マクロブロックを生成するための予測モードを特定する。また、面内予測部１０２は、予測マクロブロックに対する符号化対象マクロブロックＭＢ１の画素毎の差分値を検出する。また、面内予測部１０２は、符号化対象マクロブロックＭＢ１と予測マクロブロックとの間の画素毎の差分の絶対値の和である面内絶対値和を算出するとともに、特定した予測モードを符号化した値と面内絶対値和とを加算することにより得られる面内合計を算出する。そして、面内予測部１０２は、予測マクロブロックに対する符号化対象マクロブロックＭＢ１の画素毎の差分値により形成される画像（面内差分画像）と、符号化対象マクロブロックＭＢ１の予測モードと、符号化対象マクロブロックＭＢ１の面内合計とを入力選択部１０４に出力する。
【００３９】
また、時刻ｔ１において、Ｉ＿ＰＣＭバッファ１０３は、符号化対象マクロブロックＭＢ１のＩ＿ＰＣＭデータを保持する。
【００４０】
次に、時刻ｔ２の前半において、入力選択部１０４は、動き予測部１０１からの符号化対象マクロブロックＭＢ１の動き合計と、面内予測部１０２からの符号化対象マクロブロックＭＢ１の面内合計とを比較し、動き合計と面内合計とのうちで小さい方を選択する。入力選択部１０４は、動き合計を選択する場合、符号化対象マクロブロックＭＢ１の動き合計をコストとしてＩ＿ＰＣＭ判定部１２０に出力するとともに、符号化対象マクロブロックＭＢ１の動き差分画像を直交変換部１０５に出力する。入力選択部１０４は、面内合計を選択する場合、符号化対象マクロブロックＭＢ１の面内合計をコストとしてＩ＿ＰＣＭ判定部１２０に出力するとともに、符号化対象マクロブロックＭＢ１の面内差分画像を直交変換部１０５に出力する。
【００４１】
また、時刻ｔ２の前半において、Ｉ＿ＰＣＭ判定部１２０は、入力選択部１０４からのコストと第１閾値との大小を比較し、コストが第１閾値以下である場合、量子化部１０６によって得られる符号化対象マクロブロックＭＢ１の量子化データを選択することを出力選択部１０７に指示し、コストが第１閾値より大きい場合、Ｉ＿ＰＣＭバッファ１０３に保持された符号化対象マクロブロックＭＢ１のＩ＿ＰＣＭデータを選択することを出力選択部１０７に指示する。また、Ｉ＿ＰＣＭ判定部１２０は、比較結果を動き予測部１０１及び面内予測部１０２に出力する。これにより、入力選択部１０４が符号化対象マクロブロックＭＢ１の面内合計を選択した場合、時刻ｔ２の前半において、符号化対象マクロブロックＭＢ１に対する予測マクロブロックのマクロブロックタイプ（ｍｂ＿ｔｙｐｅ）が決定されるので、面内予測部１０２は、時刻ｔ１において符号化対象マクロブロックＭＢ１について行なった処理（面内予測処理）と同様の処理を、時刻ｔ２の後半において、符号化対象マクロブロックＭＢ２について行なうことができる。
【００４２】
時刻ｔ２において、動き予測部１０１は、時刻ｔ１において符号化対象マクロブロックＭＢ１について行なった処理（動き予測処理）と同様の処理を、符号化対象マクロブロックＭＢ２について行なう。
【００４３】
時刻ｔ２の後半において、面内予測部１０２は、符号化対象マクロブロックＭＢ２について面内予測処理を行なう。
【００４４】
また、時刻ｔ２において、Ｉ＿ＰＣＭバッファ１０３は、符号化対象マクロブロックＭＢ２のＩ＿ＰＣＭデータを保持する。
【００４５】
次に、時刻ｔ３の前半において、入力選択部１０４及びＩ＿ＰＣＭ判定部１２０は、時刻ｔ２の前半において、それらが符号化対象マクロブロックＭＢ１について行なった処理（選択処理及び比較処理）を、符号化対象マクロブロックＭＢ２について行なう。
【００４６】
時刻ｔ３において、動き予測部１０１は、符号化対象マクロブロックＭＢ３について動き予測処理を行ない、時刻ｔ３の後半において、面内予測部１０２は、符号化対象マクロブロックＭＢ３について面内予測処理を行なう。
【００４７】
また、時刻ｔ３において、直交変換部１０５は、入力選択部１０４からの符号化対象マクロブロックＭＢ１の差分画像（動き差分画像又は面内差分画像）を直交変換する。
【００４８】
また、時刻ｔ３において、Ｉ＿ＰＣＭバッファ１０３は、符号化対象マクロブロックＭＢ３のＩ＿ＰＣＭデータを保持する。
【００４９】
次に、時刻ｔ４において、動き予測部１０１は符号化対象マクロブロックＭＢ４について動き予測処理を行なう。時刻ｔ４の前半において、入力選択部１０４及びＩ＿ＰＣＭ判定部１２０は、符号化対象マクロブロックＭＢ３について選択処理及び比較処理を行なう。時刻ｔ４の後半において、面内予測部１０２は符号化対象マクロブロックＭＢ４について面内予測処理を行なう。時刻ｔ４において、直交変換部１０５は入力選択部１０４からの符号化対象マクロブロックＭＢ１の差分画像（動き差分画像又は面内差分画像）を直交変換し、量子化部１０６は、符号化対象マクロブロックＭＢ１についての直交変換部１０５によって得られた値（例えばＤＣＴ係数）を量子化する。Ｉ＿ＰＣＭバッファ１０３は、符号化対象マクロブロックＭＢ４のＩ＿ＰＣＭデータを保持する。
【００５０】
以降も上記の場合と同様に、画像符号化部１００を構成する動き予測部１０１、面内予測部１０２、入力選択部１０４、直交変換部１０５、及び量子化部１０６それぞれは、時刻毎に、符号化対象マクロブロックＭＢを順番にパイプライン処理する。
【００５１】
例えば、時刻ｔ５において、動き予測部１０１は符号化対象マクロブロックＭＢ５について動き予測処理を行ない、面内予測部１０２は符号化対象マクロブロックＭＢ５について面内予測処理を行なう。また、入力選択部１０４及びＩ＿ＰＣＭ判定部１２０は、符号化対象マクロブロックＭＢ４について選択処理及び比較処理を行なう。また、直交変換部１０５は入力選択部１０４からの符号化対象マクロブロックＭＢ３の差分画像（動き差分画像又は面内差分画像）を直交変換し、量子化部１０６は符号化対象マクロブロックＭＢ２についての直交変換部１０５によって得られた値を量子化する。Ｉ＿ＰＣＭバッファ１０３は、符号化対象マクロブロックＭＢ５のＩ＿ＰＣＭデータを保持する。
【００５２】
出力選択部１０７は、各符号化対象マクロブロックについて、量子化部１０６がその符号化対象マクロブロックの量子化処理を行なった後に、Ｉ＿ＰＣＭ判定部１２０からの指示に従って、量子化部１０６によって得られたデータと、Ｉ＿ＰＣＭバッファ１０３に保持されたＩ＿ＰＣＭデータとの一方を選択する。出力選択部１０７は、量子化部１０６によって得られたデータを選択する場合、そのデータをエントロピー符号化部１４０に出力する。また、出力選択部１０７は、選択結果を出力部１０８に出力する。
【００５３】
エントロピー符号化部１４０において、２値化部１４１は出力選択部１０７からのデータを２値化し、ＣＡＢＡＣ符号化部１４２は２値化部１４１によって得られた２値データを算術符号化する。
【００５４】
出力部１０８は、出力選択部１０７からの選択結果に従って、エントロピー符号化部１４０からの算術符号化されたデータ（符号化データ）と、出力選択部１０７からのＩ＿ＰＣＭデータとの一方を、画像符号化装置１０外部に出力する。
【００５５】
上述したように、各時刻の前半において、Ｉ＿ＰＣＭ判定部１２０は、入力選択部１０４からのコストと第１閾値との大小を比較し、コストが第１閾値以下である場合、量子化部１０６によって得られる符号化対象マクロブロックＭＢ１の量子化データを選択することを出力選択部１０７に指示し、コストが第１閾値より大きい場合、Ｉ＿ＰＣＭバッファ１０３に保持された符号化対象マクロブロックＭＢ１のＩ＿ＰＣＭデータを選択することを出力選択部１０７に指示する。すなわち、Ｉ＿ＰＣＭ判定部１２０は、コストが第１閾値以下である場合、画像符号化装置１０の外部に出力するデータとして符号化データを選択することを出力選択部１０７に指示し、コストが第１閾値より大きい場合、画像符号化装置１０の外部に出力するデータとしてＩ＿ＰＣＭデータを選択する。そのため、画像符号化部１００を構成する動き予測部１０１、面内予測部１０２、入力選択部１０４、直交変換部１０５、及び量子化部１０６それぞれは、時刻毎に、符号化対象マクロブロックＭＢを順番にパイプライン処理することができる。その結果、エントロピー符号化を行なう画像符号化装置１０は、画像データを高速に処理することができる。
【００５６】
なお、上述した実施の形態では、符号化対象マクロブロックと参照マクロブロックとの差を示す動き残差の例として、符号化対象マクロブロックと参照マクロブロックとの間の画素毎の差分の絶対値の和である動き絶対値和を用いた。しかしながら、動き残差は、動き差分画像を空間周波数変換することにより得られる値であってもよい。同様に、符号化対象マクロブロックと予測マクロブロックとの差を示す面内残差の例として、符号化対象マクロブロックと予測マクロブロックとの間の画素毎の差分の絶対値の和である面内絶対値和を用いた。しかしながら、動き残差は、面内差分画像を空間周波数変換することにより得られる値であってもよい。また、動き残差及び面内残差の双方又は一方は、入力選択部１０４によって得られてもよい。
【００５７】
また、図３に示すように、画像符号化装置１０は、画像符号化装置２０に置き換えられてもよい。画像符号化装置２０は、画像符号化装置１０が備える構成部に加えて、量子化幅変更部２２０を備える。量子化幅変更部２２０は、Ｉ＿ＰＣＭ判定部１２０が保持する第１閾値より小さい第２閾値を保持し、入力選択部１０４からのコストと第２閾値とを比較し、コストが第２閾値より大きく第１閾値以下である場合、量子化部１０６が用いる量子化幅を大きくさせる。量子化部１０６は、量子化幅変更部２２０の制御に基づく量子化幅で量子化処理を行なう。これにより、量子化部１０６によって得られる量子化データの量を小さくすることができる。
【００５８】
また、図４に示すように、画像符号化装置１０は、画像符号化装置３０に置き換えられてもよい。画像符号化装置３０は、画像符号化装置１０が備える構成部に加えて、量子化幅変更部２２０と、量子化幅決定部３１０と、閾値決定部３２０とを備える。量子化幅決定部３１０は、第３閾値（目標符号量）を保持しており、２値化部１４１によって得られる２値データの量を監視し、２値データの量と第３閾値とを比較し、２値データの量と第３閾値との大小関係の程度に応じて、量子化部１０６が用いる量子化幅を決定する。例えば、２値データの量が第３閾値より大きい場合、量子化幅決定部３１０は、量子化部１０６が用いる量子化幅を大きくさせ、得られる２値データの量を小さくさせる。閾値決定部３２０は、図５に示すテーブルを保持しており、そのテーブルを参照して、量子化幅決定部３１０によって決定された量子化幅に対応する第１閾値を選択する。量子化幅変更部２２０は、量子化部１０６に対して、量子化幅決定部３１０によって決定された量子化幅を用いさせる。Ｉ＿ＰＣＭ判定部１２０は、コストと、閾値決定部３２０によって決定された第１閾値とを比較し、量子化部１０６は、量子化幅変更部２２０の制御に基づく量子化幅で量子化処理を行なう。このように、Ｉ＿ＰＣＭ判定部１２０は、画像符号化装置１０の外部に出力するデータとして符号化データとＩ＿ＰＣＭデータとの何れかを選択する際、コストのみならず量子化幅をも考慮してその選択を行なう。これにより、実際に得られる符号量を用いた場合の上記選択により近づく。
【００５９】
また、図６に示すように、画像符号化装置３０は、画像符号化装置４０に置き換えられてもよい。画像符号化装置４０は、画像符号化装置３０が備える構成部に加えて、分散算出部４２０を備える。分散算出部４２０は、入力される画像データから構成される符号化対象マクロブロックの輝度の分散値を算出する。閾値決定部３２０は、分散算出部４２０によって得られる輝度の分散値にも従って、第１閾値を決定する。これにより、輝度のみなら色差をも考慮した適正な第１閾値を決定することができる。分散算出部４２０は符号化対象マクロブロックの色差の分散値を算出し、閾値決定部３２０は分散算出部４２０によって得られる色差の分散値にも従って第１閾値を決定してもよい。
【産業上の利用可能性】
【００６０】
本発明の画像符号化装置は、画像データを符号化する装置として有用である。
【図面の簡単な説明】
【００６１】
【図１】実施の形態の画像符号化装置１０の構成図
【図２】実施の形態におけるパイプライン処理を説明するための図
【図３】実施の形態の画像符号化装置２０の構成図
【図４】実施の形態の画像符号化装置３０の構成図
【図５】実施の形態におけるＩ＿ＰＣＭ判定部１２０が用いる第１閾値を決定するためのデータを示す図
【図６】実施の形態の画像符号化装置４０の構成図
【図７】従来の画像符号化装置５０の構成図
【符号の説明】
【００６２】
１０  画像符号化装置
２０  画像符号化装置
３０  画像符号化装置
４０  画像符号化装置
１００  画像符号化部
１０１  動き予測部
１０２  面内予測部
１０３  Ｉ＿ＰＣＭバッファ
１０４  入力選択部
１０５  直交変換部
１０６  量子化部
１０７  出力選択部
１０８  出力部
１２０  Ｉ＿ＰＣＭ判定部
１４０  エントロピー符号化部
１４１  ２値化部
１４２  ＣＡＢＡＣ符号化部
２２０  量子化幅変更部
３１０  量子化幅決定部
３２０  閾値決定部
４２０  分散算出部
【図１】
0004555257.tif 000002
【図２】
0004555257.tif 000003
【図３】
0004555257.tif 000004
【図４】
0004555257.tif 000005
【図５】
0004555257.tif 000006
【図６】
0004555257.tif 000007
【図７】
0004555257.tif 000008