(57)【要約】【課題】所定の期間内に符号化処理を完了することができる画像符号化装置を提供する。【解決手段】入力画像をブロック毎に符号化する画像符号化装置１００であって、予測処理及び変換処理を行うことで変換データを生成する予測・変換処理部１０２と、変換データを復号することで再構成画像を生成するローカルデコード部１０３と、ローカルデコードバッファ１０４と、変換データを符号化することで符号化データを生成するエントロピー符号化部１０５と、符号化データと再構成画像とのいずれか一方を選択する切り替え部１０８と、符号化データの符号量が閾値より大きいかを判定する判定部１０６と、符号量が閾値より大きい場合、符号化データに対応するブロックと符号化されていないブロックの内１つ以上のブロックとをＩ＿ＰＣＭに変更する制御部１０７とを備え、切り替え部１０８は、符号化タイプがＩ＿ＰＣＭである場合、再構成画像を出力する。【選択図】図１
2010178319.tif 000002
【特許請求の範囲】
【請求項１】
入力画像をブロック毎に符号化する画像符号化装置であって、
ブロック毎の符号化条件を決定する符号化条件決定手段と、
前記符号化条件決定手段によって決定された符号化条件に基づいて予測画像を生成し、生成した予測画像と前記入力画像との差分を直交変換することで、変換データを生成する予測・変換手段と、
前記予測・変換手段によって生成された変換データを逆変換し、逆変換したデータと前記予測画像とを加算することで、再構成画像を生成するローカルデコード手段と、
前記ローカルデコード手段によって生成された再構成画像を蓄積する蓄積手段と、
前記予測・変換手段によって生成された変換データを符号化することで、符号化データを生成する符号化手段と、
前記符号化手段によって生成された符号化データと、当該符号化データに対応する非圧縮の画像とのいずれか一方を選択して出力する切り替え手段と、
前記符号化手段によって生成される符号化データの符号量が予め定められた閾値より大きいか否かを判定する判定手段と、
前記判定手段によって前記符号化データの符号量が前記閾値より大きいと判定された場合、当該符号化データに対応する第１ブロックの符号化タイプと、まだ符号化されていないブロックのうち少なくとも１つの第２ブロックの符号化タイプとを予め定められた特定符号化タイプに変更する制御手段とを備え、
前記切り替え手段は、前記符号化データの符号化タイプが前記特定符号化タイプである場合、当該符号化データに対応する非圧縮の画像を出力する
画像符号化装置。
【請求項２】
前記予測・変換手段と前記符号化手段とは、ｎ段（ｎは２以上の整数）のパイプライン処理で実行される
請求項１記載の画像符号化装置。
【請求項３】
前記切り替え手段は、前記符号化データの符号化タイプが前記特定符号化タイプである場合、当該符号化データに対応する前記蓄積手段に蓄積された再構成画像を出力する
請求項２記載の画像符号化装置。
【請求項４】
前記制御手段は、さらに、前記特定符号化タイプに変更した第１ブロック及び第２ブロックに対応する前記蓄積手段に蓄積された再構成画像の画素値を非０値に変更する
請求項２又は３記載の画像符号化装置。
【請求項５】
前記制御手段は、前記判定手段によって前記符号化データの符号量が前記閾値より大きいと判定された場合、当該符号化データに対応する第１ブロックの符号化タイプと、前記符号化手段による符号化処理がまだ行われておらず、かつ、前記予測・変換処理手段による予測処理が少なくとも終了した第２ブロックの符号化タイプとを前記特定符号化タイプに変更する
請求項２〜４のいずれか１項に記載の画像符号化装置。
【請求項６】
前記画像符号化装置は、さらに、
前記入力画像をブロック毎に蓄積する画像蓄積手段を備え、
前記切り替え手段は、前記符号化データの符号化タイプが前記特定符号化タイプである場合、当該符号化データに対応する前記画像蓄積手段に蓄積された入力画像を出力する
請求項２記載の画像符号化装置。
【請求項７】
前記画像蓄積手段は、前記制御手段によって前記特定符号化タイプに変更された符号化データに対応する入力画像の画素値に、当該符号化データに対応する前記蓄積手段に蓄積された再構成画像の画素値を置き換える
請求項６記載の画像符号化装置。
【請求項８】
前記制御手段は、前記判定手段によって前記符号化データの符号量が前記閾値より大きいと判定された場合、前記第２ブロックの符号化タイプがイントラの場合は、当該第２ブロックの符号化タイプを前記特定符号化タイプに変更し、前記第２ブロックの符号化タイプがインター、スキップ又はダイレクトである場合は、当該第２ブロックの予測情報を生成すると共に、当該第２ブロックの符号化タイプをインター、スキップ又はダイレクトに変更する
請求項２〜７のいずれか１項に記載の画像符号化装置。
【請求項９】
前記制御手段は、前記判定手段によって前記符号化データの符号量が前記閾値より大きいと判定された場合、まだ符号化されていないブロックのうち、符号化タイプがスキップ、ダイレクト、インターのいずれかであるブロックが出現するまでの第２ブロックのみの符号化タイプをＩ＿ＰＣＭに変更する
請求項２〜８のいずれか１項に記載の画像符号化装置。
【請求項１０】
前記判定手段は、前記予測・変換処理手段によって生成された変換データから前記符号化手段によって生成される符号化データの符号量を推定し、推定した推定符号量が前記閾値より大きいか否かを判定する
請求項１〜９のいずれか１項に記載の画像符号化装置。
【請求項１１】
前記符号化手段は、
前記変換データを２値化することで２値データを生成する２値化処理部と、
前記２値データを算術符号化して前記符号化データを出力する算術符号化部とを有する
請求項１〜１０のいずれか１項に記載の画像符号化装置。
【請求項１２】
前記判定手段は、前記２値化処理部によって生成された２値データから前記符号化データの符号量を推定し、推定した推定符号量が前記閾値より大きいか否かを判定する
請求項１１記載の画像符号化装置。
【請求項１３】
入力画像をブロック毎に符号化する画像符号化方法であって、
ブロック毎の符号化条件を決定する符号化条件決定ステップと、
前記符号化条件決定ステップで決定された符号化条件に基づいて予測画像を生成し、生成した予測画像と前記入力画像との差分を直交変換することで、変換データを生成する予測・変換ステップと、
前記予測・変換ステップで生成された変換データを逆変換し、逆変換したデータと前記予測画像とを加算することで、再構成画像を生成するローカルデコードステップと、
前記ローカルデコードステップで生成された再構成画像をメモリに蓄積する蓄積ステップと、
前記予測・変換ステップによって生成された変換データを符号化することで、符号化データを生成する符号化ステップと、
前記符号化ステップで生成された符号化データと、当該符号化データに対応する非圧縮の画像とのいずれか一方を選択して出力する切り替えステップと、
前記符号化ステップによって生成される符号化データの符号量が予め定められた閾値より大きいか否かを判定する判定ステップと、
前記判定ステップで前記符号化データの符号量が前記閾値より大きいと判定された場合、当該符号化データに対応する第１ブロックの符号化タイプと、まだ符号化されていないブロックのうち少なくとも１つの第２ブロックの符号化タイプとを予め定められた特定符号化タイプに変更する制御ステップとを含み、
前記切り替えステップでは、前記符号化データの符号化タイプが前記特定符号化タイプである場合、当該符号化データに対応する非圧縮の画像を出力する
画像符号化方法。
【請求項１４】
入力画像をブロック毎に符号化する集積回路であって、
ブロック毎の符号化条件を決定する符号化条件決定手段と、
前記符号化条件決定手段によって決定された符号化条件に基づいて予測画像を生成し、生成した予測画像と前記入力画像との差分を直交変換することで、変換データを生成する予測・変換手段と、
前記予測・変換手段によって生成された変換データを逆変換し、逆変換したデータと前記予測画像とを加算することで、再構成画像を生成するローカルデコード手段と、
前記ローカルデコード手段によって生成された再構成画像を蓄積する蓄積手段と、
前記予測・変換手段によって生成された変換データを符号化することで、符号化データを生成する符号化手段と、
前記符号化手段によって生成された符号化データと、当該符号化データに対応する非圧縮の画像とのいずれか一方を選択して出力する切り替え手段と、
前記符号化手段によって生成される符号化データの符号量が予め定められた閾値より大きいか否かを判定する判定手段と、
前記判定手段によって前記符号化データの符号量が前記閾値より大きいと判定された場合、当該符号化データに対応する第１ブロックの符号化タイプと、まだ符号化されていないブロックのうち少なくとも１つの第２ブロックの符号化タイプとを予め定められた特定符号化タイプに変更する制御手段とを備え、
前記切り替え手段は、前記符号化データの符号化タイプが前記特定符号化タイプである場合、当該符号化データに対応する非圧縮の画像を出力する
集積回路。
【請求項１５】
入力画像をブロック毎に符号化する画像符号化方法をコンピュータに実行させるプログラムであって、
ブロック毎の符号化条件を決定する符号化条件決定ステップと、
前記符号化条件決定ステップで決定された符号化条件に基づいて予測画像を生成し、生成した予測画像と前記入力画像との差分を直交変換することで、変換データを生成する予測・変換ステップと、
前記予測・変換ステップで生成された変換データを逆変換し、逆変換したデータと前記予測画像とを加算することで、再構成画像を生成するローカルデコードステップと、
前記ローカルデコードステップで生成された再構成画像をメモリに蓄積する蓄積ステップと、
前記予測・変換ステップによって生成された変換データを符号化することで、符号化データを生成する符号化ステップと、
前記符号化ステップで生成された符号化データと、当該符号化データに対応する非圧縮の画像とのいずれか一方を選択して出力する切り替えステップと、
前記符号化ステップによって生成される符号化データの符号量が予め定められた閾値より大きいか否かを判定する判定ステップと、
前記判定ステップで前記符号化データの符号量が前記閾値より大きいと判定された場合、当該符号化データに対応する第１ブロックの符号化タイプと、まだ符号化されていないブロックのうち少なくとも１つの第２ブロックの符号化タイプとを予め定められた特定符号化タイプに変更する制御ステップとを含み、
前記切り替えステップでは、前記符号化データの符号化タイプが前記特定符号化タイプである場合、当該符号化データに対応する非圧縮の画像を出力する
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動画像をＨ．２６４規格に従って符号化する画像符号化装置及び画像符号化方法に関するものである。
【背景技術】
【０００２】
近年、ＢＤ（Ｂｌｕ−ｒａｙ  Ｄｉｓｃ）レコーダ又はＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）レコーダなどの録画機器やカムコーダなどの撮像機器でハイビジョン動画像を記録する際、従来のＭＰＥＧ−２（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）よりも符号化効率が高いＨ．２６４規格を用いた記録方式が主流となりつつある。
【０００３】
Ｈ．２６４規格では、非特許文献１に記載されているように、符号化単位であるマクロブロックあたりの最大符号量を制限している。具体的には、８ビット４：２：０フォーマットの場合に、最大符号量は３２００ビットと規定されている。
【０００４】
マクロブロックを符号化した結果、符号量が３２００ビットを超えた場合、特許文献１に記載されているように、符号化の条件を変更して当該マクロブロックの再度符号化を行う必要がある。或いは、符号量が３２００ビットを超えたマクロブロックの再符号化を行わず、当該マクロブロックのマクロブロックタイプをＩ＿ＰＣＭ（Ｉｎｔｒａ  ｍａｃｒｏｂｌｏｃｋ＿Ｐｕｌｓｅ  Ｃｏｄｅ  Ｍｏｄｕｌａｔｉｏｎ）として、符号化データの代わりに非圧縮画像データを出力する方法がある。
【非特許文献１】ＩＳＯ／ＩＥＣ  １４４９６−１０：２００５
【特許文献１】特開２００４−１３５２５１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記従来技術では、所定の期間内に符号化処理を完了することができなくなるという課題がある。具体的には、以下の通りである。
【０００６】
Ｈ．２６４規格に基づいてリアルタイムで符号化を行うとき、従来方式のようにマクロブロックを再符号化すると、１ピクチャ期間内に処理するマクロブロック数が増加することになり、１ピクチャ期間内に処理を完了させることができなくなる。
【０００７】
また、Ｈ．２６４規格では、画面内予測や動き予測などの処理で、既に符号化が終了した周辺マクロブロックの情報を利用する。そのため、例えば、パイプライン構成のハードウェアで符号化するとき、符号量が３２００ビットを超えたマクロブロックを再符号化するためには、ハードウェア処理を一旦止めて、対象のマクロブロック以降の複数のマクロブロックを再符号化する必要がある。その結果、１ピクチャ期間内に処理を完了させることができなくなる。
【０００８】
そこで、本発明は上記の事情に鑑みてなされたものであり、所定の期間内に符号化処理を完了することができる画像符号化装置及び画像符号化方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記の課題を解決するために、本発明の画像符号化装置は、入力画像をブロック毎に符号化する画像符号化装置であって、ブロック毎の符号化条件を決定する符号化条件決定手段と、前記符号化条件決定手段によって決定された符号化条件に基づいて予測画像を生成し、生成した予測画像と前記入力画像との差分を直交変換することで、変換データを生成する予測・変換手段と、前記予測・変換手段によって生成された変換データを逆変換し、逆変換したデータと前記予測画像とを加算することで、再構成画像を生成するローカルデコード手段と、前記ローカルデコード手段によって生成された再構成画像を蓄積する蓄積手段と、前記予測・変換手段によって生成された変換データを符号化することで、符号化データを生成する符号化手段と、前記符号化手段によって生成された符号化データと、当該符号化データに対応する非圧縮の画像とのいずれか一方を選択して出力する切り替え手段と、前記符号化手段によって生成される符号化データの符号量が予め定められた閾値より大きいか否かを判定する判定手段と、前記判定手段によって前記符号化データの符号量が前記閾値より大きいと判定された場合、当該符号化データに対応する第１ブロックの符号化タイプと、まだ符号化されていないブロックのうち少なくとも１つの第２ブロックの符号化タイプとを予め定められた特定符号化タイプに変更する制御手段とを備え、前記切り替え手段は、前記符号化データの符号化タイプが前記特定符号化タイプである場合、当該符号化データに対応する非圧縮の画像を出力する。
【００１０】
これにより、所定の期間内に符号化処理を完了することが可能となる。なぜなら、符号量が閾値を超えるブロックの符号化タイプを変更することで、予測情報を変更しなければならなくなるが、この予測情報の変更処理に必要な時間を確保するために、本発明では、他のブロックの符号化タイプも変更するためである。
【００１１】
また、前記予測・変換手段と前記符号化手段とは、ｎ段（ｎは２以上の整数）のパイプライン処理で実行されてもよい。
【００１２】
これにより、パイプライン構成で実現することで、より高速に符号化処理を実行することができる。パイプライン構成で処理を実現する場合には、特に定められた期間内に処理を完了させることが必要となる。これは、パイプライン化された処理の１つでも定められた期間内に終了しない場合には、全処理を一旦停止させなければならなくなるためである。
【００１３】
また、前記切り替え手段は、前記符号化データの符号化タイプが前記特定符号化タイプである場合、当該符号化データに対応する前記蓄積手段に蓄積された再構成画像を出力してもよい。
【００１４】
これにより、特定符号化タイプに変更されたブロックの符号化データとして、予測を用いた符号化処理時に生成される再構成画像（ローカルデコード画像）を利用することができ、本画像符号化装置の構成を簡略化することができる。
【００１５】
また、前記制御手段は、さらに、前記特定符号化タイプに変更した第１ブロック及び第２ブロックに対応する前記蓄積手段に蓄積された再構成画像の画素値を非０値に変更してもよい。
【００１６】
これにより、例えば、Ｈ．２６４規格では、従来でも示したように、特定符号化タイプ（Ｉ＿ＰＣＭ）のブロックの値が０であることは禁止されている。したがって、出力ストリームとして出力する再構成画像の画素値を非０化することで、規格に準拠した出力ストリームを出力することができる。
【００１７】
また、前記制御手段は、前記判定手段によって前記符号化データの符号量が前記閾値より大きいと判定された場合、当該符号化データに対応する第１ブロックの符号化タイプと、前記符号化手段による符号化処理がまだ行われておらず、かつ、前記予測・変換処理手段による予測処理が少なくとも終了した第２ブロックの符号化タイプとを前記特定符号化タイプに変更してもよい。
【００１８】
これにより、再構成画像の画素値が変更された場合に、予測画像の生成時に当該再構成画像を利用したブロックの符号化タイプを特定符号化タイプに変更することで、デコーダ側でのミスマッチを解消することができる。すなわち、画素値が変更される前の再構成画像を用いて予測画像を生成し、生成した予測画像を用いて符号化したブロックを、デコーダ側で正確に復号するためには、符号化時に用いた再構成画像と同じ画像が必要である。ところが、デコーダ側には画素値を変更後の再構成画像が出力ストリームとして入力されるので、正確に画像を復号することができなくなる。したがって、画素値が変更された再構成画像を利用するブロックの符号化タイプも特定符号化タイプに変更し、再構成画像を出力ストリームとして出力することで、正確に画像を復号することができる。
【００１９】
また、前記画像符号化装置は、さらに、前記入力画像をブロック毎に蓄積する画像蓄積手段を備え、前記切り替え手段は、前記符号化データの符号化タイプが前記特定符号化タイプである場合、当該符号化データに対応する前記画像蓄積手段に蓄積された入力画像を出力してもよい。
【００２０】
これにより、特定符号化タイプに変更されたブロックの符号化データとして、入力画像を利用することができるので、デコーダ側で、より入力画像に近い復号画像を生成することができる。
【００２１】
また、前記画像蓄積手段は、前記制御手段によって前記特定符号化タイプに変更された符号化データに対応する入力画像の画素値に、当該符号化データに対応する前記蓄積手段に蓄積された再構成画像の画素値を置き換えてもよい。
【００２２】
これにより、出力ストリームとして出力した入力画像（ブロック画像）に再構成画像を置き換えるので、符号化対象ブロック以降に符号化されるブロックは、入力画像（ブロック画像）を参照して符号化することができる。したがって、デコーダ側でのミスマッチを解消することができる。
【００２３】
また、前記制御手段は、前記判定手段によって前記符号化データの符号量が前記閾値より大きいと判定された場合、前記第２ブロックの符号化タイプがイントラの場合は、当該第２ブロックの符号化タイプを前記特定符号化タイプに変更し、前記第２ブロックの符号化タイプがインター、スキップ又はダイレクトである場合は、当該第２ブロックの予測情報を生成すると共に、当該第２ブロックの符号化タイプをインター、スキップ又はダイレクトに変更してもよい。
【００２４】
これにより、必要以上に多くのブロックを特定符号化タイプに変更することを防ぐことができる。これは、符号化タイプがインター、スキップ又はダイレクトである符号化対象ブロックを符号化する際に、特定符号化タイプに変更されたブロックに対応する再構成画像を参照することはないためである。例えば、符号化タイプがインターである符号化対象ブロックを符号化する際には、当該符号化対象ブロックを含まない既に符号化されたピクチャを参照して予測画像を生成する。
【００２５】
また、前記制御手段は、前記判定手段によって前記符号化データの符号量が前記閾値より大きいと判定された場合、まだ符号化されていないブロックのうち、符号化タイプがスキップ、ダイレクト、インターのいずれかであるブロックが出現するまでの第２ブロックのみの符号化タイプをＩ＿ＰＣＭに変更してもよい。
【００２６】
また、前記判定手段は、前記予測・変換処理手段によって生成された変換データから前記符号化手段によって生成される符号化データの符号量を推定し、推定した推定符号量が前記閾値より大きいか否かを判定してもよい。
【００２７】
これにより、ブロック全てを符号化しなくても発生する符号量が閾値を超えるか否かを判定することができる。
【００２８】
また、前記符号化手段は、前記変換データを２値化することで２値データを生成する２値化処理部と、前記２値データを算術符号化して前記符号化データを出力する算術符号化部とを有してもよい。
【００２９】
また、前記判定手段は、前記２値化処理部によって生成された２値データから前記符号化データの符号量を推定し、推定した推定符号量が前記閾値より大きいか否かを判定してもよい。
【００３０】
なお、本発明は、画像符号化装置として実現できるだけではなく、当該画像符号化装置を構成する処理手段をステップとする方法として実現することもできる。また、これらステップをコンピュータに実行させるプログラムとして実現してもよい。さらに、当該プログラムを記録したコンピュータ読み取り可能なＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ−Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）などの記録媒体、並びに、当該プログラムを示す情報、データ又は信号として実現してもよい。そして、それらプログラム、情報、データ及び信号は、インターネットなどの通信ネットワークを介して配信してもよい。
【００３１】
また、上記の各画像符号化装置を構成する構成要素の一部又は全部は、１個のシステムＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ：大規模集積回路）から構成されていてもよい。システムＬＳＩは、複数の構成部を１個のチップ上に集積して製造された超多機能ＬＳＩであり、具体的には、マイクロプロセッサ、ＲＯＭ及びＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などを含んで構成されるコンピュータシステムである。
【発明の効果】
【００３２】
本発明によれば、所定の期間内に符号化処理を完了することができる。
【発明を実施するための最良の形態】
【００３３】
以下、本発明の実施形態について、図面を用いて説明する。なお、本発明について、以下の実施の形態及び添付の図面を用いて説明を行うが、これは例示を目的としており、本発明がこれらに限定されることを意図しない。
【００３４】
（実施の形態１）
図１は、実施の形態１の画像符号化装置１００の構成を示すブロック図である。図１に示すように、画像符号化装置１００は、符号化条件決定部１０１と、予測・変換処理部１０２と、ローカルデコード部１０３と、ローカルデコードバッファ１０４と、エントロピー符号化部１０５と、判定部１０６と、制御部１０７と、切り替え部１０８とを備える。
【００３５】
なお、本実施の形態の画像符号化装置１００は、Ｈ．２６４規格に基づいてマクロブロック（以下「ＭＢ」と記載）単位で入力画像データを符号化することを前提とする。また、ＭＢ単位の符号化処理は、パイプライン構成のハードウェアに基づいて実行されることを前提とする。なお、ＭＢは、例えば、１６×１６の画素で構成される。
【００３６】
符号化条件決定部１０１は、マクロブロック毎の符号化条件を決定する。すなわち、符号化対象ＭＢの符号化条件を決定する。入力画像データとローカルデコード画像とを用いて、ＭＢタイプ（符号化タイプ）と、イントラ予測のサイズ及び方向と、動き補償のサイズ、参照する画像、動きベクトル、及び、予測ベクトルなどの動き補償に関する情報と、量子化パラメータと、直交変換サイズとなどのＭＢ符号化条件を決定する。
【００３７】
予測・変換処理部１０２は、符号化条件決定部１０１によって決定されたＭＢ符号化条件に基づいてＭＢ単位で、入力画像データに対して予測処理及び変換処理を行う。具体的には、図２に示すように、予測・変換処理部１０２は、予測画像生成部１２１と、差分画像生成部１２２と、直交変換部１２３と、量子化部１２４とを備える。
【００３８】
予測画像生成部１２１は、符号化対象ＭＢのＭＢタイプがイントラの場合はイントラ予測に基づいて予測画像（予測ブロック）をローカルデコード画像から生成する。符号化対象ＭＢのＭＢタイプがインターの場合は動き補償により予測画像（予測ブロック）をローカルデコード画像から生成する。
【００３９】
差分画像生成部１２２は、予測画像生成部１２１によって生成された予測画像と入力画像データの符号化対象ＭＢとの差分を画素ごとに算出することで、差分画像（差分ブロック）を生成する。
【００４０】
直交変換部１２３は、ＭＢ符号化条件の直交変換サイズに基づき、差分画像を８×８又は４×４のブロックサイズ単位で直交変換することで、直交変換データを生成する。
【００４１】
量子化部１２４は、ＭＢ符号化条件の量子化値、量子化パラメータ、量子化マトリクスなどに基づき、直交変換データを量子化することで、変換データを生成する。
【００４２】
図１に戻ると、ローカルデコード部１０３は、予測・変換処理部１０２によって生成された変換データを逆変換し、逆変換したデータと予測画像とを加算することで、ローカルデコード画像（ローカルデコードブロック）を生成する。
【００４３】
ローカルデコードバッファ１０４は、ローカルデコード部１０３によってＭＢ単位で生成されたローカルデコード画像を蓄積するメモリである。
【００４４】
エントロピー符号化部１０５は、予測・変換処理部１０２によって生成された変換データとＭＢ符号化条件とをエントロピー符号化することで、符号化データを生成する。具体的には、エントロピー符号化部１０５は、ＭＢ符号化条件に含まれるシンタックス要素となる情報を、ゴロム符号を用いて符号化する。そして、予測・変換処理部１０２によって生成された変換データを、コンテキスト適応型可変長符号化方式（ＣＡＶＬＣ：Ｃｏｎｔｅｘｔ−Ａｄａｐｔｉｖｅ  Ｖａｒｉａｂｌｅ  Ｌｅｎｇｔｈ  Ｃｏｄｉｎｇ）で符号化する。
【００４５】
判定部１０６は、エントロピー符号化部１０５によって生成された符号化データの符号量と所定の閾値とを比較して、符号量が閾値を越えたか否かを判定する。閾値は、例えば、符号化規格で定められた１つのマクロブロックを符号化した際の最大符号量である。Ｈ．２６４規格では、判定部１０６は、符号化対象ＭＢの符号量が３２００ビットを超えたか否かを判定する。
【００４６】
制御部１０７は、判定部１０６の判定結果に基づき、符号化対象ＭＢのＭＢタイプを再設定する。具体的には、符号化データの符号量が閾値を超えていると判定された場合、制御部１０７は、符号化対象ＭＢのＭＢタイプを特定符号化タイプ、すなわち、Ｉ＿ＰＣＭに変更する。さらに、符号化が終了していないＭＢのうち少なくとも１つのＭＢのＭＢタイプもＩ＿ＰＣＭに変更する。つまり、第１マクロブロックのＭＢタイプをＩ＿ＰＣＭ変更すると共に、第２マクロブロックのＭＢタイプもＩ＿ＰＣＭに変更する。第２マクロブロックは、第１ＭＢと符号化順が連続するマクロブロックであり、例えば、第１マクロブロックの右隣のＭＢである。
【００４７】
なお、特定符号化タイプであるＩ＿ＰＣＭのマクロブロックは、当該マクロブロックを符号化することで生成される符号化データではなく、当該マクロブロックに対応する非圧縮の画像データを出力ストリームとして出力する。本実施の形態では、非圧縮の画像として、ローカルデコード画像を出力する。
【００４８】
切り替え部１０８は、エントロピー符号化部１０５によって生成された符号化データと当該符号化データに対応する非圧縮の画像とのいずれか一方を選択して出力する。ここでは、符号化データと、ローカルデコードバッファ１０４に蓄積されたローカルデコード画像とのいずれか一方を選択して出力する。
【００４９】
具体的には、切り替え部１０８は、符号化対象ＭＢのＭＢタイプがＩ＿ＰＣＭであれば、ローカルデコードバッファ１０４から符号化対象ＭＢに対応するローカルデコード画像を出力ストリームとして出力する。また、ＭＢタイプがＩ＿ＰＣＭ以外のタイプであれば、エントロピー符号化部１０５によって生成された符号化データを出力ストリームとして出力する。
【００５０】
続いて、本実施の形態の画像符号化装置１００の動作について説明する。本実施の形態では、入力画像をＭＢごとに符号化するので、以下では、１つのＭＢに実行される処理の順序について説明する。
【００５１】
図３は、実施の形態１の画像符号化装置１００の動作を示すフローチャートである。
【００５２】
まず、符号化条件決定部１０１は、符号化対象ＭＢの符号化条件を決定する（Ｓ１０１）。次に、予測画像生成部１２１は、符号化対象ＭＢのＭＢタイプに応じて、ローカルデコード画像を用いてイントラ予測又はインター予測を行うことで、予測画像（予測ブロック）を生成する（Ｓ１０２）。
【００５３】
続いて、差分画像生成部１２２は、符号化対象ＭＢと予測ブロックとの差分を画素ごとに算出することで、差分画像（差分ブロック）を生成する（Ｓ１０３）。さらに、直交変換部１２３は、差分ブロックを直交変換し、量子化部１２４は、直交変換データを量子化する（Ｓ１０４）。このとき、直交変換の直交変換サイズ、量子化値、及び、量子化パラメータなどは、符号化条件（Ｓ１０１で決定）によって定められる。
【００５４】
次に、エントロピー符号化部１０５は、量子化部１２４によって量子化された変換データをエントロピー符号化することで、符号化データを生成する（Ｓ１０５）。なお、符号化データは、符号化対象ＭＢに対応するデータである。このとき、ローカルデコード部１０３は、変換データを逆変換し、逆変換したデータと予測ブロックとを加算することでローカルデコード画像（ローカルデコードブロック）を生成する。
【００５５】
判定部１０６は、エントロピー符号化部１０５によって生成された符号化データの符号量が閾値（３２００ビット）を超えているか否かを判定する（Ｓ１０６）。符号量が３２００ビット以下の場合（Ｓ１０６でＮｏ）、切り替え部１０８は、符号化データを出力ストリームとして出力する（Ｓ１０７）。
【００５６】
符号化データの符号量が３２００ビットを超えている場合（Ｓ１０６でＹｅｓ）、制御部１０７は、当該符号化データに対応するＭＢのＭＢタイプと次のＭＢのＭＢタイプとをＩ＿ＰＣＭに変更する（Ｓ１０８）。なお、次のＭＢとは、符号化順が符号化対象ＭＢ（符号化データに対応するＭＢ）の次に符号化されるＭＢであり、かつ、符号化対象ＭＢに隣接するＭＢである。そして、切り替え部１０８は、符号化対象ＭＢに対応するローカルデコードブロックをローカルデコードバッファ１０４から読み出し、読み出したローカルデコードブロックを出力ストリームとして出力する（Ｓ１０９）。
【００５７】
１つのＭＢに着目すると、本実施の形態の画像符号化装置１００は、以上のようにしてＭＢごとに入力画像を符号化する。本実施の形態の画像符号化装置１００は、各処理がパイプライン構成で実現され、複数のＭＢが同時に処理される。
【００５８】
なお、以上のように、符号化対象ＭＢのＭＢタイプがＩ＿ＰＣＭに変更されることに伴い、次のＭＢの符号化タイプもＩ＿ＰＣＭに変更される（Ｓ１０８）。したがって、次のＭＢを符号化する際は、エントロピー符号化処理は行う必要はなく、ローカルデコード画像を生成し、生成したローカルデコード画像を出力ストリームとして出力してもよい。
【００５９】
図４は、符号化処理がパイプライン構成で実現されることを示す図である。ここでは、図４のように、予測画像生成処理と、差分画像生成処理と、直交変換・量子化処理と、エントロピー符号化処理とがパイプライン構成になっていることを一例として説明する。
【００６０】
図中のＭＢ（ｎ）は、画面左上のＭＢをＭＢ（０）として、左から右、上から下に向かってＭＢアドレスを付けたもので、ｎ番目のＭＢを示すものである。パイプライン構成の場合、上述の４つの処理が異なるＭＢに対して並列に処理を行うこととなる。例えば、ＭＢ（ｎ）のエントロピー符号化処理が終わる時刻ｔ（ｎ＋４）の時点で、ＭＢ（ｎ）の右隣ＭＢであるＭＢ（ｎ＋１）は、直交変換・量子化処理まで終了していることになる。
【００６１】
ここで、時刻ｔ（ｎ＋４）の時点でＭＢ（ｎ）のＭＢタイプをＩ＿ＰＣＭに変更することになった場合を説明する。すなわち、エントロピー符号化部１０５がＭＢ（ｎ）を符号化した際に、ＭＢ（ｎ）に対応する符号化データの符号量が３２００ビットを超えた場合について説明する。
【００６２】
Ｈ．２６４規格では、周辺ＭＢの情報を使った予測を行う。例えば、イントラＭＢであれば、図５に示すように周辺ＭＢのローカルデコード画像の画素値を用いて予測処理を行う。また、インターＭＢであれば、周辺ＭＢの動きベクトル情報から予測ベクトルを生成する。
【００６３】
エントロピー符号化処理の結果、符号化データの符号量が閾値を超えた場合、ＭＢ（ｎ）のＭＢタイプがＩ＿ＰＣＭに変わる。このため、その右隣ＭＢであるＭＢ（ｎ＋１）の予測ベクトルなどの予測情報を変更する必要がある。しかし、ＭＢ（ｎ＋１）のエントロピー符号化処理を行う直前に予測情報を変更する必要があるため、処理量が所定の時間をオーバーしてパイプライン構成が崩れる。
【００６４】
そこで、図６のように、ＭＢ（ｎ＋１）のＭＢタイプもＩ＿ＰＣＭに変更することで、ＭＢ（ｎ＋１）の予測情報を変更する必要がなくなる。そして、ＭＢ（ｎ＋２）の直交変換・量子化処理を行っている時間に並行してＭＢ（ｎ＋２）の予測情報を変更することで、予測情報変更の処理量の影響を隠蔽することが可能となる。
【００６５】
以上のように、本実施の形態の画像符号化装置１００は、第１マクロブロックの符号化データの符号量が閾値を超えた場合に、第１マクロブロックのＭＢタイプをＩ＿ＰＣＭに変更し、さらに、第１マクロブロックに連続する少なくとも１つの第２マクロブロックのＭＢタイプもＩ＿ＰＣＭに変更する。このとき、出力ストリームとして、Ｉ＿ＰＣＭに変更されたマクロブロックに対応するローカルデコード画像を出力する。
【００６６】
これにより、第２マクロブロックのエントロピー符号化を行っている期間に、第２マクロブロックに連続する第３マクロブロックの予測情報を生成することができるので、パイプライン構成を保つことができる。また、パイプライン構成で実現しない場合も、所定の期間内に符号化処理を終了させることができる。
【００６７】
（実施の形態２）
図７は、実施の形態２の画像符号化装置２００の構成を示すブロック図である。同図に示す画像符号化装置２００は、図１の画像符号化装置１００と比較して、制御部１０７の代わりに制御部２０７を備える点が異なっている。以下では、実施の形態１と同じ点は説明を省略し、異なる点を中心に説明する。
【００６８】
なお、本実施の形態の画像符号化装置２００は、Ｈ．２６４規格のＢａｓｅｌｉｎｅ  ｐｒｏｆｉｌｅ又はＭａｉｎ  ｐｒｏｆｉｌｅに基づいて入力画像を符号化することを前提とする。また、ＭＢ単位の符号化処理は、パイプライン構成のハードウェアに基づいて実行されることを前提とする。
【００６９】
Ｂａｓｅｌｉｎｅ  ｐｒｏｆｉｌｅとＭａｉｎ  ｐｒｏｆｉｌｅとには、ＭＢタイプがＩ＿ＰＣＭのＭＢの画素値は非０値でなければならないという制約がある。このため、０である画素値を非０値（例えば１）に変更する必要がある。
【００７０】
そこで、制御部２０７は、判定部１０６の判定結果に基づき、符号化対象ＭＢのＭＢタイプと符号化が終了していないＭＢのＭＢタイプとをＩ＿ＰＣＭに変更する。さらに、Ｉ＿ＰＣＭに変更されたＭＢに対応する、ローカルデコードバッファ１０４に蓄積されたローカルデコード画像の画素のうち画素値が０である画素を非０（例えば１）の値に変更する。
【００７１】
ローカルデコード画像の画素値を非０値に変更することで、画素値を変更した後のローカルデコード画像が出力ストリームとして出力される。これに対して、画素値を変更する前のローカルデコード画像を予測画像として符号化処理を既に開始しているマクロブロックがある場合、当該マクロブロックに対する符号化処理をそのまま完了することで生成される符号化データは、デコーダ側で、異なる予測画像（すなわち、画素値を変更した後のローカルデコード画像）を用いてデコードされるので正確に復号することができなくなる。
【００７２】
予測処理に従って符号化されたマクロブロックをデコーダ側で正確に復号するためには、符号化時に用いた予測画像と同じ画像がデコーダ側で必要となる。ところが、出力ストリームには、画素値が変更される前のローカルデコード画像を予測画像として符号化したマクロブロックと、画素値が変更された後のローカルデコード画像とが含まれている。このため、デコード側では、画素値が変更される前のローカルデコード画像を生成することができないので、正確に符号化マクロブロックを復号することができなくなる。
【００７３】
したがって、制御部２０７は、ＭＢタイプをＩ＿ＰＣＭに変更し、かつ、画素値を非０値に変更した際に、現在符号化処理中で、かつ、既に予測画像の生成処理が終了しているＭＢのＭＢタイプもＩ＿ＰＣＭに変更する。これにより、異なる予測画像を用いて符号化されるＭＢが生じることを防ぐことができるので、デコーダ側で正確にＭＢを復号することができる。
【００７４】
続いて、本実施の形態の画像符号化装置２００の動作について説明する。本実施の形態では、入力画像をＭＢごとに符号化するので、以下では、１つのＭＢに実行される処理の順序について説明する。
【００７５】
図８は、実施の形態２の画像符号化装置２００の動作を示すフローチャートである。図３と同じ処理には、同一の参照符号を付し、ここでは説明を省略する。なお、以下では、ＭＢ（ｎ）は、ＭＢ（ｎ−１）を予測画像の生成時に利用する場合（図５の予測モード１の場合）について説明する。
【００７６】
実施の形態１の画像符号化装置１００と同様に、画像符号化装置２００は、符号化対象ＭＢに対して、符号化条件決定処理（Ｓ１０１）から符号量の判定処理（Ｓ１０６）までを行う。
【００７７】
符号化データの符号量が３２００ビット以下の場合（Ｓ１０６でＮｏ）、切り替え部１０８は、符号化データを出力ストリームとして出力する（Ｓ１０７）。
【００７８】
符号化データの符号量が３２００ビットを超えている場合（Ｓ１０６でＹｅｓ）、制御部２０７は、当該符号化データに対応するＭＢ（符号化対象ＭＢ）のＭＢタイプと次のＭＢのＭＢタイプとをＩ＿ＰＣＭに変更する（Ｓ１０８）。さらに、制御部２０７は、ローカルデコードバッファ１０４に蓄積された、ＭＢタイプをＩ＿ＰＣＭに変更したＭＢに対応するローカルデコードブロックの画素のうち、画素値が０である画素が存在するか否かを判定する（Ｓ２０９）。
【００７９】
画素値が０となる画素が存在する場合（Ｓ２０９でＹｅｓ）、制御部２０７は、当該画素を非０値（例えば、１）に変更する（Ｓ２１０）。画素値が変更されたことに伴い、次のＭＢの予測画像が変更してしまうので、制御部２０７は、さらに、次のＭＢのＭＢタイプをＩ＿ＰＣＭに変更する（Ｓ２１１）。なお、ここでいう次のＭＢとは、画素値が変更されたローカルデコードブロックに対応するＭＢの次に符号化されるＭＢであり、かつ、画素値が変更されたローカルデコードブロックを予測画像として符号化処理を行うＭＢである。そして、画素が全て非０値であるローカルデコードブロックが現れるまで、ＭＢタイプの変更処理を繰り返す（Ｓ２０９〜Ｓ２１１）。
【００８０】
画素値が全て非０値である場合（Ｓ２０９でＹｅｓ）、切り替え部１０８は、符号化対象ＭＢに対応するローカルデコードブロックをローカルデコードバッファ１０４から読み出し、読み出したローカルデコードブロックを出力ストリームとして出力する（Ｓ１０９）。
【００８１】
１つのＭＢに着目すると、本実施の形態の画像符号化装置２００は、以上のようにしてＭＢごとに入力画像を符号化する。本実施の形態の画像符号化装置２００は、各処理がパイプライン構成で実現され、複数のＭＢが同時に処理される。
【００８２】
以下では、図９に示すようなパイプライン構成で処理を行っている間に、時刻ｔ（ｎ＋２）の時点でＭＢ（ｎ）のＭＢタイプをＩ＿ＰＣＭに変更することになった場合を説明する。すなわち、エントロピー符号化部１０５がＭＢ（ｎ）を符号化した際に、ＭＢ（ｎ）に対応する符号化データの符号量が３２００ビットを超えた場合について説明する。
【００８３】
なお、ここでは、全てのＭＢのＭＢタイプがイントラであるとする。また、このときの予測モードは、図５に示す予測モード１であり、各ＭＢの左に隣接する画素（すなわち、左隣接ＭＢの右端の画素）の画素値を用いて予測ブロックが生成されるとする。
【００８４】
ＭＢ（ｎ）の画素値のうち、ＭＢの右端に位置する画素の画素値が０であった場合、ローカルデコードブロックの画素値を０から１に変更する。ここではイントラ予測の予測モードが予測モード１であり、画素値を変更した画素がＭＢ（ｎ＋１）の予測ブロックを生成する際に用いられる画素であるので、予測画像が変わってしまう。このため、ＭＢ（ｎ＋１）のＭＢタイプもＩ＿ＰＣＭに変更する。
【００８５】
さらに、ＭＢ（ｎ＋１）以降のＭＢも同様の条件である場合、時刻ｔ（ｎ＋２）の時点で予測画像生成処理が既に終わったＭＢのＭＢタイプをＩ＿ＰＣＭに変更する必要がある（図９の例では、ＭＢ（ｎ＋１）のみ）。なお、画素値を０から１に変更する処理時間を考慮して、ＭＢ（ｎ＋２）までのＭＢのＭＢタイプをＩ＿ＰＣＭとすることも考えられる。
【００８６】
図９に示すように、エントロピー符号化部１０５が、ＭＢ（ｎ）を符号化することで生じた符号量が３２００ビットを超えた場合、制御部２０７は、ＭＢ（ｎ）のＭＢタイプとＭＢ（ｎ＋１）のＭＢタイプとをＩ＿ＰＣＭに変更する。ここで、ＭＢ（ｎ＋１）のＭＢタイプも変更するのは、実施の形態１で説明したように、ＭＢ（ｎ＋２）の予測情報を生成するのに要する時間を確保するためである。
【００８７】
ここで、ＭＢ（ｎ）とＭＢ（ｎ＋１）とのそれぞれに対応するローカルデコードブロックの右端の画素値が０である場合は、図９に示すように、制御部２０７は、当該画素を非０化する。ＭＢ（ｎ＋１）のローカルデコードブロックの画素値を変更した場合、ＭＢ（ｎ＋２）の予測画像が変わってしまうので、ＭＢ（ｎ＋２）のＭＢタイプもＩ＿ＰＣＭに変更する必要がある。
【００８８】
ＭＢ（ｎ＋２）に対応するローカルデコードブロックの右端の画素値が全て非０値である場合、予測画像が変わらないため、ＭＢ（ｎ＋３）のＭＢタイプはイントラのままでよい。また、ＭＢ（ｎ＋２）が、左隣接画素を使わない予測モード（例えば、予測モード０）のＭＢである場合も同様に、予測画像が変わらないため、ＭＢ（ｎ＋３）のＭＢタイプはイントラのままでよい。
【００８９】
なお、以上の説明において、非０化を行ったＭＢの次のＭＢのＭＢタイプを変更するとしたが、予測モードによってＭＢタイプを変更すべきＭＢは異なる。すなわち、予測画像を生成する時に、非０化を行ったＭＢを参照するＭＢのＭＢタイプを変更しなければならない。
【００９０】
以上のように、本実施の形態の画像符号化装置２００は、ＭＢタイプをＩ＿ＰＣＭに変更した際に、ＭＢタイプを変更したマクロブロックに対応するローカルデコード画像内に、画素値が０である画素が含まれる場合、当該画素を非０値に変更する。このとき、予測画像を生成する際に、画素値を変更したローカルデコード画像を参照するマクロブロックのＭＢタイプもＩ＿ＰＣＭに変更する。
【００９１】
これにより、画素値が変更されたことに伴って予測画像が変更してしまう場合であっても、デコーダ側で正確に復号できる出力ストリームを生成することができる。
【００９２】
（実施の形態３）
図１０は、実施の形態３の画像符号化装置３００の構成を示すブロック図である。同図に示す画像符号化装置３００は、図７の画像符号化装置２００と比較して、符号化条件決定部１０１の代わりに符号化条件決定部３０１を備え、制御部２０７の代わりに制御部３０７を備える点が異なっている。以下では、実施の形態２と同じ点は説明を省略し、異なる点を中心に説明する。
【００９３】
なお、本実施の形態の画像符号化装置３００は、Ｈ．２６４規格のＢａｓｅｌｉｎｅ  ｐｒｏｆｉｌｅ又はＭａｉｎ  ｐｒｏｆｉｌｅに基づいて入力画像を符号化することを前提とする。また、ＭＢ単位の符号化処理は、パイプライン構成のハードウェアに基づいて実行されることを前提とする。
【００９４】
符号化条件決定部３０１は、符号化条件決定部１０１と同様に、符号化対象ＭＢの符号化条件を決定する。決定したＭＢ符号化条件を予測・変換処理部１０２だけでなく、制御部３０７にも出力する。
【００９５】
制御部３０７は、判定部１０６の判定結果に基づき、符号化対象ＭＢのＭＢタイプと符号化が終了していないＭＢのＭＢタイプとをＩ＿ＰＣＭに変更する。ただし、このとき、符号化条件決定部３０１によって決定されたＭＢタイプに基づき、ＭＢタイプをＩ＿ＰＣＭに変更するか否かを決定する。さらに、制御部３０７は、制御部２０７と同様に、Ｉ＿ＰＣＭに変更されたＭＢに対応する、ローカルデコードバッファ１０４に蓄積されたローカルデコード画像の画素のうち画素値が０である画素を非０（例えば１）の値に変更する。
【００９６】
具体的には、制御部３０７は、画素値が変更されたことに伴って次のＭＢのＭＢタイプを変更する際に、当該ＭＢのＭＢタイプを判定する。当該ＭＢのＭＢタイプがイントラである場合は、実施の形態２と同様に、ＭＢタイプをＩ＿ＰＣＭに変更する。
【００９７】
当該ＭＢのＭＢタイプがインター、ダイレクト又はスキップのいずれか（以下では、インター系と記載）の場合、ＭＢタイプをインター系に再変更する。なぜなら、インター系ＭＢの場合、前のＭＢに対応するローカルデコード画像の画素値が変更されたとしても、予測画像は変わらないため、パイプライン構成で処理中の予測画像をそのまま利用することができる。ただしこのとき、前のＭＢのＭＢタイプが変更されているので、予測情報は変更しなければならない。
【００９８】
続いて、本実施の形態の画像符号化装置３００の動作について説明する。本実施の形態では、入力画像をＭＢごとに符号化するので、以下では、１つのＭＢに実行される処理の順序について説明する。
【００９９】
図１１は、実施の形態３の画像符号化装置３００の動作を示すフローチャートである。図８と同じ処理には、同一の参照符号を付し、ここでは説明を省略する。
【０１００】
実施の形態２と同様にして、画像符号化装置３００は、符号化対象ＭＢに対して、符号化条件決定処理（Ｓ１０１）から符号量の判定処理（Ｓ１０６）を行う。そして、符号化データの符号量が３２００ビットを超えた場合に（Ｓ１０６でＹｅｓ）、制御部３０７は、当該符号化データに対応するＭＢ（符号化対象ＭＢ）のＭＢタイプと次のＭＢのＭＢタイプとをＩ＿ＰＣＭに変更する（Ｓ１０８）。さらに、制御部３０７は、ローカルデコードバッファ１０４に蓄積された、ＭＢタイプをＩ＿ＰＣＭに変更したＭＢに対応するローカルデコードブロックの画素のうち、画素値が０である画素が存在するか否かを判定する（Ｓ２０９）。
【０１０１】
画素値が０となる画素が存在する場合（Ｓ２０９でＹｅｓ）、制御部３０７は、当該画素を非０値（例えば、１）に変更する（Ｓ２１０）。ここで、制御部３０７は、次のＭＢのＭＢタイプがイントラであるかインターであるかを判定する（Ｓ３１０）。なお、ここで、次のＭＢとは、画素値が変更されたローカルデコードブロックに対応するＭＢの次に符号化されるＭＢであり、かつ、ＭＢタイプがイントラの場合は、画素値が変更されたローカルデコードブロックを予測画像として符号化処理を行うＭＢである。
【０１０２】
次のＭＢのＭＢタイプがイントラである場合（Ｓ３１０でＹｅｓ）、画素値が変更されたことに伴い、次のＭＢの予測画像が変更してしまうので、制御部３０７は、さらに、次のＭＢのＭＢタイプをＩ＿ＰＣＭに変更する（Ｓ２１１）。そして、画素が全て非０値であるローカルデコードブロックが現れるまで、ＭＢタイプの変更処理を繰り返す（Ｓ２０９〜Ｓ２１１）。
【０１０３】
次のＭＢのＭＢタイプがインターである場合（Ｓ３１０でＮｏ）、及び、画素値が全て非０値である場合（Ｓ２０９でＹｅｓ）、切り替え部１０８は、符号化対象ＭＢに対応するローカルデコードブロックをローカルデコードバッファ１０４から読み出し、読み出したローカルデコードブロックを出力ストリームとして出力する（Ｓ１０９）。
【０１０４】
１つのＭＢに着目すると、本実施の形態の画像符号化装置３００は、以上のようにしてＭＢごとに入力画像を符号化する。本実施の形態の画像符号化装置３００は、各処理がパイプライン構成で実現され、複数のＭＢが同時に処理される。
【０１０５】
以下では、図１２に示すようなパイプライン構成で処理を行っている間に、時刻ｔ（ｎ＋２）の時点でＭＢ（ｎ）のＭＢタイプをＩ＿ＰＣＭに変更することになった場合を説明する。すなわち、エントロピー符号化部１０５がＭＢ（ｎ）を符号化した際に、ＭＢ（ｎ）に対応する符号化データの符号量が３２００ビットを超えた場合について説明する。
【０１０６】
なお、ここでは、ＭＢタイプがイントラの場合、その予測モードは、図５に示す予測モード１であり、ＭＢの左に隣接する画素（すなわち、左隣接ＭＢの右端の画素）の画素値を用いて予測ブロックが生成されるとする。
【０１０７】
図１２に示すように、エントロピー符号化部１０５が、ＭＢ（ｎ）を符号化することで生じた符号量が３２００ビットを超えた場合、制御部３０７は、ＭＢ（ｎ）のＭＢタイプとＭＢ（ｎ＋１）のＭＢタイプとをＩ＿ＰＣＭに変更する。ここで、ＭＢ（ｎ＋１）のＭＢタイプも変更するのは、実施の形態１で説明したように、ＭＢ（ｎ＋２）の予測情報を生成するのに要する時間を確保するためである。
【０１０８】
ここで、ＭＢ（ｎ）及びＭＢ（ｎ＋１）のＭＢタイプは、イントラであり、ＭＢ（ｎ＋２）のＭＢタイプは、インター系であるとする。また、ＭＢ（ｎ）及びＭＢ（ｎ＋１）のそれぞれに対応するローカルデコードブロックの右端の画素値が０であるとする。
【０１０９】
ＭＢ（ｎ＋１）のＭＢタイプをＩ＿ＰＣＭに変更した場合、ＭＢ（ｎ＋１）に対応するローカルデコードブロックの画素値を非０化するので、ＭＢ（ｎ＋２）のＭＢタイプがイントラの場合、予測画像が変わってしまう。しかしながら、図１２に示す例では、ＭＢ（ｎ＋２）のＭＢタイプはインター系であるため、予測情報のみを変更すればよい。例えば、ＭＢ（ｎ＋１）のＭＢタイプがＩ＿ＰＣＭに変わった場合、ＭＢ（ｎ＋２）の予測ベクトルは、左隣ＭＢの動きベクトルを０、参照インデックスを−１と設定することで再算出される。このとき、再算出した予測ベクトルと差分画像とからＭＢ（ｎ＋２）のＭＢタイプをＨ．２６４規格の条件に基づいてインター系の何れかに再設定する。
【０１１０】
また、インター系のＭＢは、画素値を変更する必要が無いため、イントラＭＢの左隣ＭＢがインター系ＭＢであれば、イントラ予測以降の処理をやり直す必要がなく、Ｉ＿ＰＣＭに変更する必要もない。つまり、Ｉ＿ＰＣＭに変更したＭＢ以降のＭＢで、インター系ＭＢが発生するまでのＭＢのみをＩ＿ＰＣＭに変更することも可能である。図１２に示す例では、ＭＢ（ｎ＋２）のＭＢタイプがインター系であるので、ＭＢ（ｎ＋３）のＭＢタイプと予測情報のいずれも変更する必要が無い。
【０１１１】
以上のように、本実施の形態の画像符号化装置３００は、ＭＢタイプをＩ＿ＰＣＭに変更し、かつ、画素値を非０化したマクロブロックに対応するローカルデコードブロックを参照するマクロブロックのＭＢタイプを判定し、ＭＢタイプがイントラの場合のみＭＢタイプをＩ＿ＰＣＭに変更する。ＭＢタイプがインター系の場合は、予測情報を再算出し、符号化タイプをインター系に再設定する。
【０１１２】
これにより、画素値が変更されたことに伴ってローカルデコード画像が変更してしまう場合であっても、ＭＢタイプを判定することで、Ｉ＿ＰＣＭに変更するマクロブロックを最小限にすることができる。ＭＢタイプがＩ＿ＰＣＭのマクロブロックの符号量は、イントラ又はインターのマクロブロックの符号量より多くなることが多いので、Ｉ＿ＰＣＭに変更するＭＢの数を減らすことで、符号量を削減することができる。
【０１１３】
（実施の形態４）
図１３は、実施の形態４の画像符号化装置４００の構成を示すブロック図である。同図に示す画像符号化装置４００は、図１の画像符号化装置１００と比較して、新たに、ブロック画像蓄積部４０９を備え、また、切り替え部１０８の代わりに切り替え部４０８を備える点が異なっている。以下では、実施の形態１と同じ点は説明を省略し、異なる点を中心に説明する。
【０１１４】
なお、本実施の形態の画像符号化装置４００は、Ｈ．２６４規格に基づいてＭＢ単位で入力画像データを符号化することを前提とする。また、ＭＢ単位の符号化処理は、パイプライン構成のハードウェアに基づいて実行されることを前提とする。
【０１１５】
ブロック画像蓄積部４０９は、符号化対象ＭＢに対応する入力画像データをブロック画像として蓄積するメモリなどを備える。ブロック画像蓄積部４０９は、ＭＢタイプがＩ＿ＰＣＭに変更されたＭＢに対応するブロック画像に、ローカルデコードバッファ１０４に蓄積されたローカルデコード画像を置き換える。これは、出力ストリームとしてブロック画像が出力されたため、デコーダ側で正確に出力ストリームを復号するために、以降のブロックを符号化する際にブロック画像を用いて予測画像を生成する必要があるためである。
【０１１６】
切り替え部４０８は、エントロピー符号化部１０５によって生成された符号化データとブロック画像蓄積部４０９に蓄積されたブロック画像データとのいずれか一方を選択して出力する。すなわち、実施の形態１との違いは、ＭＢタイプがＩ＿ＰＣＭに変更されたＭＢに対応する符号化データとして、ローカルデコード画像ではなくブロック画像を用いる点である。具体的には、切り替え部４０８は、エントロピー符号化部１０５から受け取る符号化対象ＭＢのＭＢタイプがＩ＿ＰＣＭであれば、ブロック画像蓄積部４０９から符号化対象ＭＢに対応するブロック画像を出力ストリームとして出力する。また、ＭＢタイプがＩ＿ＰＣＭ以外のタイプであれば、エントロピー符号化部１０５によって生成された符号化データを出力ストリームとして出力する。
【０１１７】
続いて、本実施の形態の画像符号化装置４００の動作について説明する。本実施の形態では、入力画像をＭＢごとに符号化するので、以下では、１つのＭＢに実行される処理の順序について説明する。
【０１１８】
図１４は、実施の形態４の画像符号化装置４００の動作を示すフローチャートである。図３と同じ処理には、同一の参照符号を付し、ここでは説明を省略する。
【０１１９】
実施の形態１の画像符号化装置１００と同様に、画像符号化装置４００は、符号化対象ＭＢに対して、符号化条件決定処理（Ｓ１０１）から符号量の判定処理（Ｓ１０６）までを行う。
【０１２０】
符号化データの符号量が３２００ビット以下の場合（Ｓ１０６でＮｏ）、切り替え部４０８は、符号化データを出力ストリームとして出力する（Ｓ１０７）。
【０１２１】
符号化データの符号量が３２００ビットを超えている場合（Ｓ１０６でＹｅｓ）、制御部１０７は、当該符号化データに対応するＭＢ（符号化対象ＭＢ）のＭＢタイプと、次のＭＢのＭＢタイプをＩ＿ＰＣＭに変更する（Ｓ１０８）。
【０１２２】
そして、切り替え部４０８は、符号化対象ＭＢに対応する入力画像（ブロック画像）をブロック画像蓄積部４０９から読み出し、読み出したブロック画像を出力ストリームとして出力する（Ｓ４０９）。また、ブロック画像蓄積部４０９は、読み出されたブロック画像に、符号化対象ＭＢに対応するローカルデコードバッファ１０４に蓄積されたローカルデコード画像（ローカルデコードブロック）を置き換える（Ｓ４１０）。
【０１２３】
１つのＭＢに着目すると、本実施の形態の画像符号化装置４００は、以上のようにしてＭＢごとに入力画像を符号化する。本実施の形態の画像符号化装置４００は、各処理がパイプライン構成で実現され、複数のＭＢが同時に処理される。
【０１２４】
以下では、図４に示すようなパイプライン構成で処理を行っている間に、時刻ｔ（ｎ＋４）の時点で、ＭＢ（ｎ）のＭＢタイプをＩ＿ＰＣＭに変更することになった場合を説明する。すなわち、エントロピー符号化部１０５がＭＢ（ｎ）を符号化し、ＭＢ（ｎ）に対応する符号化データの符号量が３２００ビットを超えた場合について説明する。
【０１２５】
ＭＢ（ｎ）のＭＢタイプがＩ＿ＰＣＭに変更されることで、右隣のＭＢであるＭＢ（ｎ＋１）の予測情報を変更しなくてはならない。この予測情報の変更処理は、ＭＢ（ｎ＋１）のエントロピー符号化処理が開始されるまでに実行されなければならないので、ＭＢ（ｎ＋１）の予測情報を変更しようとすると、パイプライン構成が崩れてしまう。
【０１２６】
そこで、図６に示すように、ＭＢ（ｎ＋１）のＭＢタイプもＩ＿ＰＣＭに変更することで、ＭＢ（ｎ＋１）のエントロピー符号化処理を行っている期間を利用して、ＭＢ（ｎ＋２）の予測情報を生成する。これにより、予測情報変更の処理量の影響を隠蔽することができる。
【０１２７】
なお、このとき、ＭＢ（ｎ）のＭＢタイプをＩ＿ＰＣＭに変更すると共に、ＭＢ（ｎ）に対応するブロック画像の画素値で、ＭＢ（ｎ）に対応するローカルデコードバッファ１０４に蓄積されたローカルデコード画像の画素値を置き換える。
【０１２８】
以上のように、本実施の形態の画像符号化装置４００は、第１マクロブロックの符号化データの符号量が閾値を超えた場合に、第１マクロブロックのＭＢタイプをＩ＿ＰＣＭに変更し、さらに、第１マクロブロックに連続する少なくとも１つの第２マクロブロックのＭＢタイプもＩ＿ＰＣＭに変更する。このとき、出力ストリームとして、Ｉ＿ＰＣＭに変更されたマクロブロックに対応する入力画像（ブロック画像）を出力する。
【０１２９】
これにより、第２マクロブロックのエントロピー符号化を行っている期間に、第２マクロブロックに連続する第３マクロブロックの予測情報を生成することができるので、パイプライン構成を保つことができる。また、出力ストリームとして入力画像を出力するので、デコーダ側ではより入力画像と類似する復号画像を復元することができる。
【０１３０】
（実施の形態５）
図１５は、実施の形態５の画像符号化装置５００の構成を示すブロック図である。同図に示す画像符号化装置５００は、図１３の画像符号化装置４００と比較して、制御部１０７の代わりに制御部２０７を備える点が異なっている。また、同図の画像符号化装置５００は、図７の画像符号化装置２００と比較して、新たにブロック画像蓄積部４０９を備え、さらに、切り替え部１０８の代わりに切り替え部４０８を備える点が異なっている。以下では、実施の形態２及び４と同じ点は説明を省略し、異なる点を中心に説明する。
【０１３１】
なお、本実施の形態の画像符号化装置５００は、Ｈ．２６４規格のＢａｓｅｌｉｎｅ  ｐｒｏｆｉｌｅ又はＭａｉｎ  ｐｒｏｆｉｌｅに基づいて入力画像を符号化することを前提とする。また、ＭＢ単位の符号化処理は、パイプライン構成のハードウェアに基づいて実行されることを前提とする。
【０１３２】
実施の形態２でも述べた通り、制御部２０７は、判定部１０６の判定結果に基づき、符号化対象ＭＢのＭＢタイプと符号化が終了していないＭＢのＭＢタイプとをＩ＿ＰＣＭに変更する。さらに、Ｉ＿ＰＣＭに変更されたＭＢに対応する、ブロック画像蓄積部４０９に蓄積されたブロック画像の画素のうち画素値が０である画素を非０（例えば１）の値に変更する。
【０１３３】
ブロック画像蓄積部４０９は、符号化対象ＭＢに対応する入力画像データをブロック画像として蓄積するメモリを備える。さらに、ブロック画像蓄積部４０９は、ＭＢタイプがＩ＿ＰＣＭに変更されたＭＢに対応するブロック画像で、ローカルデコードバッファ１０４に蓄積されたローカルデコード画像を置き換える。このとき、制御部２０７により画素値を非０化しなければならない場合は、画素値を非０化した後のブロック画像で、ローカルデコード画像を置き換える。
【０１３４】
続いて、本実施の形態の画像符号化装置５００の動作について説明する。本実施の形態では、入力画像をＭＢごとに符号化するので、以下では、１つのＭＢに実行される処理の順序について説明する。
【０１３５】
図１６は、実施の形態５の画像符号化装置５００の動作を示すフローチャートである。図８と同じ処理には、同一の参照符号を付し、ここでは説明を省略する。
【０１３６】
実施の形態２又は４の画像符号化装置１００又は４００と同様に、画像符号化装置５００は、符号化対象ＭＢに対して、符号化条件決定処理（Ｓ１０１）から符号量の判定処理（Ｓ１０６）までを行う。
【０１３７】
符号化データの符号量が３２００ビット以下の場合（Ｓ１０６でＮｏ）、切り替え部４０８は、符号化データを出力ストリームとして出力する（Ｓ１０７）。
【０１３８】
符号化データの符号量が３２００ビットを超えている場合（Ｓ１０６でＹｅｓ）、制御部２０７は、当該符号化データに対応するＭＢ（符号化対象ＭＢ）のＭＢタイプと次のＭＢのＭＢタイプとをＩ＿ＰＣＭに変更する（Ｓ１０８）。さらに、制御部２０７は、ブロック画像蓄積部４０９に蓄積された、ＭＢタイプをＩ＿ＰＣＭに変更したＭＢに対応する入力画像（ブロック画像）の画素のうち、画素値が０である画素が存在するか否かを判定する（Ｓ２０９）。
【０１３９】
画素値が０となる画素が存在する場合（Ｓ２０９でＹｅｓ）、制御部２０７は、当該画素を非０値（例えば、１）に変更する（Ｓ２１０）。
【０１４０】
ローカルデコード画像はブロック画像で置き換えられるので、ブロック画像の画素値が変更されたことに伴い、次のＭＢの予測画像が変更してしまう。このため、制御部２０７は、さらに、次のＭＢのＭＢタイプをＩ＿ＰＣＭに変更する（Ｓ２１１）。なお、ここでいう次のＭＢとは、画素値が変更されたブロック画像に対応するＭＢの次に符号化されるＭＢであり、かつ、画素値が変更されたブロック画像に置き換えられたローカルデコード画像を予測画像として符号化処理を行うＭＢである。そして、画素が全て非０値であるブロック画像が現れるまで、ＭＢタイプの変更処理を繰り返す（Ｓ２０９〜Ｓ２１１）。
【０１４１】
画素値が全て非０値である場合（Ｓ２０９でＹｅｓ）、切り替え部４０８は、符号化対象ＭＢに対応する入力画像（ブロック画像）をブロック画像蓄積部４０９から読み出し、読み出したブロック画像を出力ストリームとして出力する（Ｓ４０９）。また、ブロック画像蓄積部４０９は、読み出されたブロック画像で、符号化対象ＭＢに対応するローカルデコードバッファ１０４に蓄積されたローカルデコード画像（ローカルデコードブロック）を置き換える（Ｓ４１０）。
【０１４２】
１つのＭＢに着目すると、本実施の形態の画像符号化装置５００は、以上のようにしてＭＢごとに入力画像を符号化する。本実施の形態の画像符号化装置５００は、各処理がパイプライン構成で実現され、複数のＭＢが同時に処理される。
【０１４３】
以下では、図９に示すようなパイプライン構成で処理を行っている間に、時刻ｔ（ｎ＋２）の時点でＭＢ（ｎ）のＭＢタイプをＩ＿ＰＣＭに変更することになった場合を説明する。すなわち、エントロピー符号化部１０５がＭＢ（ｎ）を符号化した際に、ＭＢ（ｎ）に対応する符号化データの符号量が３２００ビットを超えた場合について説明する。
【０１４４】
なお、ここでは、全てのＭＢのＭＢタイプがイントラであるとする。また、このときの予測モードは、図５に示す予測モード１であり、各ＭＢの左に隣接する画素（すなわち、左隣接ＭＢの右端の画素）の画素値を用いて予測ブロックが生成されるとする。
【０１４５】
ＭＢ（ｎ）の画素値のうち、ＭＢの右端に位置する画素の画素値が０であった場合、ブロック画像（入力画像）の画素値を０から１に変更する。そして、ローカルデコードバッファ１０４に蓄積されたローカルデコード画像を、画素値が変更されたブロック画像に置き換える。
【０１４６】
これにより、ここではイントラ予測の予測モードが予測モード１であり、ブロック画像に置き換えられたローカルデコード画像がＭＢ（ｎ＋１）の予測ブロックを生成する際に用いられるので、予測画像が変わってしまう。このため、ＭＢ（ｎ＋１）のＭＢタイプもＩ＿ＰＣＭに変更する。
【０１４７】
さらに、ＭＢ（ｎ＋１）以降のＭＢも同様の条件である場合、時刻ｔ（ｎ＋２）の時点で予測画像生成処理が既に終わったＭＢのＭＢタイプをＩ＿ＰＣＭに変更する必要がある（図９の例では、ＭＢ（ｎ＋１）のみ）。このとき、画素値を０から１に変更する処理時間を考慮して、ＭＢ（ｎ＋２）までのＭＢのＭＢタイプをＩ＿ＰＣＭとすることも考えられる。
【０１４８】
図９に示すように、エントロピー符号化部１０５が、ＭＢ（ｎ）を符号化することで生じた符号量が３２００ビットを超えた場合、制御部２０７は、ＭＢ（ｎ）のＭＢタイプとＭＢ（ｎ＋１）のＭＢタイプとをＩ＿ＰＣＭに変更する。ここで、ＭＢ（ｎ＋１）のＭＢタイプも変更するのは、実施の形態１で説明したように、ＭＢ（ｎ＋２）の予測情報を生成するのに要する時間を確保するためである。
【０１４９】
ここで、ＭＢ（ｎ）とＭＢ（ｎ＋１）とのそれぞれに対応するブロック画像の右端の画素値が０である場合は、図９に示すように、制御部２０７は、当該画素を非０化する。ブロック画像蓄積部４０９は、画素値が非０化された後、Ｉ＿ＰＣＭに変更されたＭＢに対応するブロック画像に、ローカルデコードバッファ１０４に蓄積されたローカルデコードブロックを置き換える。したがって、ＭＢ（ｎ＋１）のブロック画像の画素値を変更し、ＭＢ（ｎ＋１）のローカルデコードブロックが置き換えられた場合、ＭＢ（ｎ＋２）の予測画像が変わってしまうので、ＭＢ（ｎ＋２）のＭＢタイプもＩ＿ＰＣＭに変更する必要がある。
【０１５０】
ＭＢ（ｎ＋２）に対応する入力画像の右端の画素値が全て非０値である場合、予測画像が変わらないため、ＭＢ（ｎ＋３）のＭＢタイプはイントラのままでよい。また、ＭＢ（ｎ＋２）が、左隣接画素を使わない予測モード（例えば、予測モード０）のＭＢである場合も同様に、予測画像が変わらないため、ＭＢ（ｎ＋３）のＭＢタイプはイントラのままでよい。
【０１５１】
以上のように、本実施の形態の画像符号化装置５００は、ＭＢタイプをＩ＿ＰＣＭに変更した際に、ＭＢタイプを変更したマクロブロックに対応する入力画像内に、画素値が０である画素が含まれる場合、当該画素を非０値に変更する。そして、出力ストリームとして、非０化された入力画像（ブロック画像）を出力する。
【０１５２】
また、非０値に変更された入力画像にローカルデコード画像を置き換える。このとき、予測画像を生成する際に、入力画像に置き換えられたローカルデコード画像を参照するマクロブロックのＭＢタイプもＩ＿ＰＣＭに変更する。
【０１５３】
これにより、画素値が変更されたことに伴って予測画像が変更してしまう場合であっても、デコーダ側で正確に復号できる出力ストリームを生成することができる。
【０１５４】
（実施の形態６）
図１７は、実施の形態６の画像符号化装置６００の構成を示すブロック図である。同図に示す画像符号化装置６００は、図１５の画像符号化装置５００と比較して、制御部２０７の代わりに制御部３０７を備え、符号化条件決定部１０１の代わりに符号化条件決定部３０１を備える点が異なっている。また、同図の画像符号化装置６００は、図１０の画像符号化装置３００と比較して、新たにブロック画像蓄積部４０９を備え、さらに、切り替え部１０８の代わりに切り替え部４０８を備える点が異なっている。以下では、実施の形態３及び５と同じ点は説明を省略し、異なる点を中心に説明する。
【０１５５】
なお、本実施の形態の画像符号化装置６００は、Ｈ．２６４規格のＢａｓｅｌｉｎｅ  ｐｒｏｆｉｌｅ又はＭａｉｎ  ｐｒｏｆｉｌｅに基づいて入力画像を符号化することを前提とする。また、ＭＢ単位の符号化処理は、パイプライン構成のハードウェアに基づいて実行されることを前提とする。
【０１５６】
実施の形態３と同様に、制御部３０７は、判定部１０６の判定結果に基づき、符号化対象ＭＢのＭＢタイプと符号化が終了していないＭＢのＭＢタイプとをＩ＿ＰＣＭに変更する。ただし、このとき、符号化条件決定部３０１によって決定されたＭＢタイプに基づき、ＭＢタイプをＩ＿ＰＣＭに変更するか否かを決定する。さらに、制御部３０７は、Ｉ＿ＰＣＭに変更されたＭＢに対応するブロック画像蓄積部４０９に蓄積されたブロック画像の画素で画素値が０である画素を非０（例えば１）の値に変更する。
【０１５７】
続いて、本実施の形態の画像符号化装置６００の動作について説明する。本実施の形態では、入力画像をＭＢごとに符号化するので、以下では、１つのＭＢに実行される処理の順序について説明する。
【０１５８】
図１８は、実施の形態６の画像符号化装置６００の動作を示すフローチャートである。図１６と同じ処理には、同一の参照符号を付し、ここでは説明を省略する。
【０１５９】
実施の形態５と同様にして、制御部３０７は、ブロック画像蓄積部４０９に蓄積された、ＭＢタイプをＩ＿ＰＣＭに変更したＭＢに対応する入力画像（ブロック画像）の画素のうち、画素値が０である画素が存在するか否かを判定する（Ｓ２０９）。
【０１６０】
画素値が０となる画素が存在する場合（Ｓ２０９でＹｅｓ）、制御部３０７は、当該画素を非０値（例えば、１）に変更する（Ｓ２１０）。ここで、制御部３０７は、次のＭＢのＭＢタイプがイントラであるかインターであるかを判定する（Ｓ３１０）なお、ここでいう次のＭＢとは、画素値が変更されたブロック画像に対応するＭＢの次に符号化されるＭＢであり、かつ、画素値が変更されたブロック画像に置き換えられたローカルデコード画像を予測画像として符号化処理を行うＭＢである。
【０１６１】
次のＭＢのＭＢタイプがイントラである場合（Ｓ３１０でＹｅｓ）、ローカルデコード画像はブロック画像で置き換えられることにより、ブロック画像の画素値が変更されたことに伴い、次のＭＢの予測画像が変更してしまうので、制御部３０７は、さらに、次のＭＢのＭＢタイプをＩ＿ＰＣＭに変更する（Ｓ２１１）。そして、画素が全て非０値であるブロック画像が現れるまで、ＭＢタイプの変更処理を繰り返す（Ｓ２０９〜Ｓ２１１）。
【０１６２】
次のＭＢのＭＢタイプがインターである場合（Ｓ３１０）、及び、画素値が全て非０値である場合（Ｓ２０９でＹｅｓ）、切り替え部４０８は、符号化対象ＭＢに対応する入力画像（ブロック画像）をブロック画像蓄積部４０９から読み出し、読み出したブロック画像を出力ストリームとして出力する（Ｓ４０９）。
【０１６３】
また、ブロック画像蓄積部４０９は、読み出されたブロック画像で、符号化対象ＭＢに対応するローカルデコードバッファ１０４に蓄積されたローカルデコード画像（ローカルデコードブロック）を置き換える（Ｓ４１０）。
【０１６４】
１つのＭＢに着目すると、本実施の形態の画像符号化装置３００は、以上のようにしてＭＢごとに入力画像を符号化する。本実施の形態の画像符号化装置３００は、各処理がパイプライン構成で実現され、複数のＭＢが同時に処理される。
【０１６５】
以下では、図１２に示すようなパイプライン構成で処理を行っている間に、時刻ｔ（ｎ＋２）の時点でＭＢ（ｎ）のＭＢタイプをＩ＿ＰＣＭに変更することになった場合を説明する。すなわち、エントロピー符号化部１０５がＭＢ（ｎ）を符号化し、ＭＢ（ｎ）に対応する符号化データの符号量が３２００ビットを超えた場合について説明する。
【０１６６】
なお、ここでは、ＭＢタイプがイントラの場合、その予測モードは、図５に示す予測モード１であり、ＭＢの左に隣接する画素（すなわち、左隣接ＭＢの右端の画素）の画素値を用いて予測ブロックが生成されるとする。
【０１６７】
図１２に示すように、エントロピー符号化部１０５が、ＭＢ（ｎ）を符号化することで生じた符号量が３２００ビットを超えた場合、制御部３０７は、ＭＢ（ｎ）のＭＢタイプとＭＢ（ｎ＋１）のＭＢタイプとをＩ＿ＰＣＭに変更する。ここで、ＭＢ（ｎ＋１）のＭＢタイプも変更するのは、実施の形態１で説明したように、ＭＢ（ｎ＋２）の予測情報を生成するのに要する時間を確保するためである。
【０１６８】
ここで、ＭＢ（ｎ）及びＭＢ（ｎ＋１）のＭＢタイプは、イントラであり、ＭＢ（ｎ＋２）のＭＢタイプは、インター系であるとする。また、ＭＢ（ｎ）及びＭＢ（ｎ＋１）のそれぞれに対応する入力画像（ブロック画像）の右端の画素値が０であるとする。そして、ローカルデコードバッファ１０４に蓄積されたローカルデコード画像を、画素値が変更されたブロック画像に置き換える。
【０１６９】
ＭＢ（ｎ＋１）のＭＢタイプをＩ＿ＰＣＭに変更した場合、ＭＢ（ｎ＋１）に対応するブロック画像の画素値を非０化し、ブロック画像でローカルデコード画像を置き換えるので、ＭＢ（ｎ＋２）のＭＢタイプがイントラの場合、予測画像が変わってしまう。しかしながら、図１２に示す例では、ＭＢ（ｎ＋２）のＭＢタイプはインター系であるため、予測情報のみを変更すればよい。例えば、ＭＢ（ｎ＋１）のＭＢタイプがＩ＿ＰＣＭに変わった場合、ＭＢ（ｎ＋２）の予測ベクトルは、左隣ＭＢの動きベクトルを０、参照インデックスを−１と設定することで再算出される。このとき、再算出した予測ベクトルと差分画像とからＭＢ（ｎ＋２）のＭＢタイプをＨ．２６４規格の条件に基づいてインター系の何れかに再設定する。
【０１７０】
また、インター系のＭＢは、画素値を変更する必要が無いため、イントラＭＢの左隣ＭＢがインター系ＭＢであれば、イントラ予測以降の処理をやり直す必要がなく、Ｉ＿ＰＣＭに変更する必要もない。つまり、Ｉ＿ＰＣＭに変更したＭＢ以降のＭＢで、インター系ＭＢが発生するまでのＭＢのみをＩ＿ＰＣＭに変更することも可能である。図１２に示す例では、ＭＢ（ｎ＋２）のＭＢタイプがインター系であるので、ＭＢ（ｎ＋３）のＭＢタイプは変更する必要が無い。
【０１７１】
以上のように、本実施の形態の画像符号化装置６００は、ＭＢタイプをＩ＿ＰＣＭに変更し、かつ、画素値を非０化したブロック画像でローカルデコードブロックを置き換える。そして、置き換えられたローカルデコードブロックを参照するマクロブロックのＭＢタイプもＩ＿ＰＣＭに変更する。
【０１７２】
これにより、画素値が変更されたことに伴って予測画像が変更してしまう場合であっても、デコーダ側で正確に復号できる出力ストリームを生成することができる。
【０１７３】
以上、本発明の画像符号化装置及び画像符号化方法について、実施の形態に基づいて説明したが、本発明は、これらの実施の形態に限定されるものではない。本発明の趣旨を逸脱しない限り、当業者が思いつく各種変形を当該実施の形態に施したものや、異なる実施の形態における構成要素を組み合わせて構築される形態も、本発明の範囲内に含まれる。
【０１７４】
例えば、判定部１０６は、予測・変換処理部１０２によって生成された変換データからエントロピー符号化部１０５によって生成される符号化データの符号量を推定し、推定した推定符号量が閾値より大きいか否かを判定してもよい。例えば、変換データの一部をエントロピー符号化部１０５によって符号化し、発生した符号量から変換データ全てを符号化した際に発生する符号量を推定する。例えば、変換データのｎ分の１の量を符号化したときに発生した符号量をｎ倍したものを推定符号量とする。
【０１７５】
あるいは、判定部１０６は、過去にエントロピー符号化したときに発生した符号量と変換データのサイズなどとを対応付けたテーブルを記憶し、当該テーブルを参照することで推定符号量を推定してもよい。
【０１７６】
また、エントロピー符号化部１０５は、コンテキスト適応型２値算術符号化方式（ＣＡＢＡＣ：Ｃｏｎｔｅｘｔ−Ａｄａｐｔｉｖｅ  Ｂｉｎａｒｙ  Ａｒｉｔｈｍｅｔｉｃ  Ｃｏｄｉｎｇ）で変換データを符号化してもよい。このとき、エントロピー符号化部１０５は、図１９に示すように、２値化処理部１５１と、算術符号化部１５２とを備える。
【０１７７】
２値化処理部１５１は、予測・変換処理部１０２によって生成された変換データを２値データに変換する。
【０１７８】
算術符号化部１５２は、２値化処理部１５１によって変換された２値データを算術符号化する。
【０１７９】
なお、このとき、判定部１０６は、２値化処理部１５１によって生成された２値データから符号化データの符号量を推定してもよい。例えば、判定部１０６は、過去に算術符号化することで発生した符号量と２値データのサイズと対応付けたテーブルを記憶し、当該テーブルを参照することで推定符号量を推定してもよい。
【０１８０】
また、本発明の画像符号化装置の各処理をパイプライン構成で実現したが、どのようにパイプライン化してもよく、あるいは、パイプライン構成で実現しなくてもよい。
【０１８１】
なお、本発明は、上述したように、画像符号化装置及び画像符号化方法として実現できるだけではなく、本実施の形態の画像符号化方法をコンピュータに実行させるためのプログラムとして実現してもよい。また、当該プログラムを記録するコンピュータ読み取り可能なＣＤ−ＲＯＭなどの記録媒体として実現してもよい。さらに、当該プログラムを示す情報、データ又は信号として実現してもよい。そして、これらプログラム、情報、データ及び信号は、インターネットなどの通信ネットワークを介して配信されてもよい。
【０１８２】
また、本発明は、画像符号化装置を構成する構成要素の一部又は全部を、１個のシステムＬＳＩから構成してもよい。システムＬＳＩは、複数の構成部を１個のチップ上に集積して製造された超多機能ＬＳＩであり、具体的には、マイクロプロセッサ、ＲＯＭ及びＲＡＭなどを含んで構成されるコンピュータシステムである。
【産業上の利用可能性】
【０１８３】
本発明の画像符号化装置及び画像符号化方法は、Ｈ．２６４規格で符号化し、放送又は録画を行うデジタルテレビ又はレコーダなどとして有用である。
【図面の簡単な説明】
【０１８４】
【図１】実施の形態１の画像符号化装置の構成を示すブロック図である。
【図２】予測・変換処理部の詳細な構成を示すブロック図である。
【図３】実施の形態１の画像符号化装置の動作を示すフローチャートである。
【図４】符号化処理をパイプライン構成で行う一例を示す図である。
【図５】イントラ予測の予測方向を示す図である。
【図６】実施の形態１の符号化処理をパイプライン構成で行う場合の一例を示す図である。
【図７】実施の形態２の画像符号化装置の構成を示すブロック図である。
【図８】実施の形態２の画像符号化装置の動作を示すフローチャートである。
【図９】実施の形態２の符号化処理をパイプライン構成で行う場合の一例を示す図である。
【図１０】実施の形態３の画像符号化装置の構成を示すブロック図である。
【図１１】実施の形態３の画像符号化装置の動作を示すフローチャートである。
【図１２】実施の形態３の符号化処理をパイプライン構成で行う場合の一例を示す図である。
【図１３】実施の形態４の画像符号化装置の構成を示すブロック図である。
【図１４】実施の形態４の画像符号化装置の動作を示すフローチャートである。
【図１５】実施の形態５の画像符号化装置の構成を示すブロック図である。
【図１６】実施の形態５の画像符号化装置の動作を示すフローチャートである。
【図１７】実施の形態６の画像符号化装置の構成を示すブロック図である。
【図１８】実施の形態６の画像符号化装置の動作を示すフローチャートである。
【図１９】エントロピー符号化部の詳細な構成を示すブロック図である。
【符号の説明】
【０１８５】
１００、２００、３００、４００、５００、６００  画像符号化装置
１０１、３０１  符号化条件決定部
１０２  予測・変換処理部
１０３  ローカルデコード部
１０４  ローカルデコードバッファ
１０５  エントロピー符号化部
１０６  判定部
１０７、２０７、３０７  制御部
１０８、４０８  切り替え部
１２１  予測画像生成部
１２２  差分画像生成部
１２３  直交変換部
１２４  量子化部
１５１  ２値化処理部
１５２  算術符号化部
４０９  ブロック画像蓄積部
【図１】
2010178319.tif 000003
【図２】
2010178319.tif 000004
【図３】
2010178319.tif 000005
【図４】
2010178319.tif 000006
【図５】
2010178319.tif 000007
【図６】
2010178319.tif 000008
【図７】
2010178319.tif 000009
【図８】
2010178319.tif 000010
【図９】
2010178319.tif 000011
【図１０】
2010178319.tif 000012
【図１１】
2010178319.tif 000013
【図１２】
2010178319.tif 000014
【図１３】
2010178319.tif 000015
【図１４】
2010178319.tif 000016
【図１５】
2010178319.tif 000017
【図１６】
2010178319.tif 000018
【図１７】
2010178319.tif 000019
【図１８】
2010178319.tif 000020
【図１９】
2010178319.tif 000021