(57)【要約】【課題】１フレーム当たりの符号量のばらつきを抑制するとともに、画質の劣化の少ない動画像符号化処理を実現する。【解決手段】動画像符号化装置１０００は、残ピクチャ数取得部１と、アクティビティ算出部２と、イントラＭＢ決定部３と、符号化部５と、を備える。残ピクチャ数取得部１は、現フレーム画像の時系列上の位置を検出し、マクロブロックライン（ＭＢＬ）ごとに、イントラリフレッシュ処理のリセットタイミングがずれるように、イントラリフレッシュ処理のリセットタイミングを決定する。アクティビティ算出部２は、マクロブロック（ＭＢ）ごとに、アクティビティ値を算出する。イントラＭＢ決定部３は、アクティビティ算出部２により算出されたアクティビティ値に基づき、イントラＭＢに設定するＭＢを決定する。符号化部５は、イントラＭＢに設定されたＭＢをイントラ符号化処理により符号化する。【選択図】図１
2014060666.tif 000002
【特許請求の範囲】
【請求項１】
動画像信号を符号化する動画像符号化装置であって、
前記動画像信号から、処理対象のフレーム画像である現フレーム画像の時系列上の位置を検出し、前記現フレーム画像上の１列のマクロブロックからなるマクロブロックラインごとに、イントラリフレッシュ処理をリセットするタイミングを決定するリセットタイミング決定部と、
前記動画像信号から、前記現フレーム画像のマクロブロックごとに、画像の複雑度を示すアクティビティ値を算出するアクティビティ算出部と、
前記アクティビティ算出部により算出された前記アクティビティ値に基づいて、イントラマクロブロックに設定するマクロブロックを決定するイントラＭＢ決定部と、
前記イントラＭＢ決定部によりイントラマクロブロックに設定されたマクロブロックをイントラ符号化処理により符号化する符号化部と、
を備え、
前記リセットタイミング決定部は、前記マクロブロックラインごとに、前記イントラリフレッシュ処理がリセットされるタイミングがずれるように、イントラリフレッシュ処理のリセットタイミングを決定する、
動画像符号化装置。
【請求項２】
前記リセットタイミング決定部は、所定の周期により、前記イントラリフレッシュ処理が繰り返し実行されるように、前記イントラリフレッシュ処理を実行するタイミングを決定する、
請求項１に記載の動画像符号化装置。
【請求項３】
前記リセットタイミング決定部は、前記マクロブロックラインごとに、同一の周期により、前記イントラリフレッシュ処理が繰り返し実行されるように、前記イントラリフレッシュ処理を実行するタイミングを決定する、
請求項２に記載の動画像符号化装置。
【請求項４】
前記アクティビティ算出部は、前記アクティビティ値を、アダマール変換を用いて算出する、
請求項１から３のいずれかに記載の動画像符号化装置。
【請求項５】
前記イントラＭＢ決定部は、処理対象の前記マクロブロックラインにおいて、小さいアクティビティ値を有するマクロブロックから順番に、イントラマクロブロックに設定する、
請求項１から４のいずれかに記載の動画像符号化装置。
【請求項６】
前記現フレーム画像と、前記符号化部により現フレーム画像より前のフレーム画像を動き補償して取得される動き補償フレーム画像とに基づいて、前記現フレーム画像において、前記イントラＭＢ決定部によりイントラマクロブロックに設定されていないマクロブロックについて、イントラマクロブロックに設定するか否かを判定するインター／イントラ判定部をさらに備え、
前記符号化部は、前記イントラＭＢ決定部および前記インター／イントラ判定部により、イントラマクロブロックに設定されたマクロブロックについて、イントラ符号化処理を行う、
請求項１から５のいずれかに記載の動画像符号化装置。
【請求項７】
イントラＭＢ決定部は、
前記現フレーム画像において、イントラマクロブロックに設定されたマクロブロックについて、次のフレーム以降の処理において、イントラマクロブロックに設定されないように当該マクロブロックについて、イントラマクロブロック設定済みフラグを設定し、前記インター／イントラ判定部によりイントラマクロブロックに設定されたマクロブロックについてもイントラマクロブロック設定済みフラグを設定し、
前記現フレーム画像において、前記イントラマクロブロック設定済みフラグが設定されていないマクロブロックから、小さいアクティビティ値を有するマクロブロックから順番に、イントラマクロブロックに設定する、
請求項６に記載の動画像符号化装置。
【請求項８】
前記リセットタイミング決定部は、
マクロブロックラインのライン番号をｈとし、Ｎ個のマクロブロックラインを１組のグループに設定し、イントラリフレッシュ処理の周期のフレーム数をＩｎｔｒａＲｅｆｒｅｓｈＣｙｃｌｅとしたとき、マクロブロックライン番号がｈのマクロブロックラインのイントラリフレッシュ処理がリセットされるまでの残りのフレーム数を、
ｒｅｍａｉｎＰｉｃ［ｍｏｄ（ｈ，Ｎ）］
＝ＩＮＴ（ＩｎｔｒａＲｅｆｒｅｓｈＣｙｃｌｅ／Ｎ）×ｍｏｄ（ｈ，Ｎ）
ｍｏｄ（ｈ，ｘ）：法ｘによる剰余を取得する関数
ＩｎｔｒａＲｅｆｒｅｓｈＣｙｃｌｅ：イントラリフレッシュ処理の周期（フレーム数）
Ｎ：１グループ内のＭＢＬ数
ｈ：ＭＢＬのライン番号
ＩＮＴ（ｘ）：ｘを超えない最大の整数を取得する関数
により算出し、フレームごとの処理が終了する度に、前記変数ｒｅｍａｉｎＰｉｃ［ｍｏｄ（ｈ，Ｎ）］を１だけデクリメントし、デクリメントした前記変数ｒｅｍａｉｎＰｉｃ［ｍｏｄ（ｈ，Ｎ）］を保持し、
前記イントラＭＢ決定部は、前記変数ｒｅｍａｉｎＰｉｃ［ｍｏｄ（ｈ，Ｎ）］が「０」になったときを、マクロブロックライン番号がｈのマクロブロックラインについてのイントラリフレッシュ処理のリセットタイミングとする、
請求項１から７のいずれかに記載の動画像符号化装置。
【請求項９】
前記イントラＭＢ決定部は、
マクロブロックラインのライン番号をｈとし、Ｎ個のマクロブロックラインを１組のグループに設定し、マクロブロックラインにおいて、イントラリフレッシュ処理の１周期内において、未だイントラマクロブロックに設定されていないマクロブロックの数をｒｅｍａｉｎＭＢとし、マクロブロックラインにおいて、１回のイントラリフレッシュ処理が終了するまでの残りのフレーム数をｒｅｍａｉｎＰｉｃとしたとき、
ｋ＝ＩＮＴ（（ｒｅｍａｉｎＭＢ＋ｒｅｍａｉｎＰｉｃ−１）／ｒｅｍａｉｎＰｉｃ）
Ｎ：１グループ内のＭＢＬ数
ｈ：ＭＢＬのライン番号
ＩＮＴ（ｘ）：ｘを超えない最大の整数を取得する関数
により算出された数ｋにより、マクロブロックラインにおいて、アクティビティ値が小さい方からｋ個のマクロブロックをイントラマクロブロックに設定する、
請求項１から８のいずれかに記載の動画像符号化装置。
【請求項１０】
動画像信号を符号化する動画像符号化方法であって、
前記動画像信号から、処理対象のフレーム画像である現フレーム画像の時系列上の位置を検出し、前記現フレーム画像上の１列のマクロブロックからなるマクロブロックラインごとに、イントラリフレッシュ処理をリセットするタイミングを決定するイントラリフレッシュ処理開始タイミング決定ステップと、
前記動画像信号から、前記現フレーム画像のマクロブロックごとに、画像の複雑度を示すアクティビティ値を算出するアクティビティ算出ステップと、
前記アクティビティ算出ステップにより算出された前記アクティビティ値に基づいて、イントラマクロブロックに設定するマクロブロックを決定するイントラＭＢ決定ステップと、
前記イントラＭＢ決定部によりイントラマクロブロックに設定されたマクロブロックをイントラ符号化処理により符号化する符号化ステップと、
を備え、
前記イントラリフレッシュ処理開始タイミング決定ステップは、前記マクロブロックラインごとに、前記イントラリフレッシュ処理がリセットされるタイミングがずれるように、イントラリフレッシュ処理のリセットタイミングを決定する、
動画像符号化方法。
【請求項１１】
動画像信号を符号化する動画像符号化方法をコンピュータに実行させるためのプログラムであって、
前記動画像信号から、処理対象のフレーム画像である現フレーム画像の時系列上の位置を検出し、前記現フレーム画像上の１列のマクロブロックからなるマクロブロックラインごとに、イントラリフレッシュ処理をリセットするタイミングを決定するイントラリフレッシュ処理開始タイミング決定ステップと、
前記動画像信号から、前記現フレーム画像のマクロブロックごとに、画像の複雑度を示すアクティビティ値を算出するアクティビティ算出ステップと、
前記アクティビティ算出部により算出された前記アクティビティ値に基づいて、イントラマクロブロックに設定するマクロブロックを決定するイントラＭＢ決定ステップと、
前記イントラＭＢ決定部によりイントラマクロブロックに設定されたマクロブロックをイントラ符号化処理により符号化する符号化ステップと、
を備え、
前記イントラリフレッシュ処理開始タイミング決定ステップは、前記マクロブロックラインごとに、前記イントラリフレッシュ処理がリセットされるタイミングがずれるように、イントラリフレッシュ処理のリセットタイミングを決定する、
動画像符号化方法をコンピュータに実行させるためのプログラム。
【請求項１２】
動画像信号を符号化する集積回路であって、
前記動画像信号から、処理対象のフレーム画像である現フレーム画像の時系列上の位置を検出し、前記現フレーム画像上の１列のマクロブロックからなるマクロブロックラインごとに、イントラリフレッシュ処理をリセットするタイミングを決定するリセットタイミング決定部と、
前記動画像信号から、前記現フレーム画像のマクロブロックごとに、画像の複雑度を示すアクティビティ値を算出するアクティビティ算出部と、
前記アクティビティ算出部により算出された前記アクティビティ値に基づいて、イントラマクロブロックに設定するマクロブロックを決定するイントラＭＢ決定部と、
前記イントラＭＢ決定部によりイントラマクロブロックに設定されたマクロブロックをイントラ符号化処理により符号化する符号化部と、
を備え、
前記リセットタイミング決定部は、前記マクロブロックラインごとに、前記イントラリフレッシュ処理がリセットされるタイミングがずれるように、イントラリフレッシュ処理のリセットタイミングを決定する、
集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動画像（映像）を符号化し、動画像（映像）圧縮処理を行う技術に関する。特に、イントラ符号化処理とインター符号化処理とを用いて動画像（映像）を符号化する技術に関する。
【背景技術】
【０００２】
ＭＰＥＧ２やＨ．２６４などの動画像符号化技術においては、イントラ符号化処理とインター符号化処理とが用いられる。イントラ符号化処理は、参照フレームを利用せずに、符号化対象のフレーム内で符号化処理が完結する。インター符号化処理は、参照フレームを利用することで符号化対象のフレームに対する符号化が行われる。
【０００３】
Ｉピクチャに含まれる全てのマクロブロックは、イントラ符号化処理により符号化される。ＰピクチャおよびＢピクチャに含まれるマクロブロックは、インター符号化処理により符号化される。Ｉピクチャの発生符号量は、全てのマクロブロックがイントラ符号化されるため、ＰピクチャあるいはＢピクチャの発生符号量よりも大きい。Ｈ．２６４においては、イントラ予測技術が利用されるが、やはり、ＰピクチャあるいはＢピクチャと比較すると発生符号量が大きい。
【０００４】
低遅延の再生あるいは伝送が求められるシステムにおいては、Ｉピクチャにおける発生符号量の上昇が問題となる。また、Ｉピクチャの出現周期で発生符号量が振動するという問題がある。発生符号量が振動すると、一時的にバッファのサイズが多く必要となり、非効率である。
【０００５】
また、処理対象のデータに、フレーム内の全てのマクロブロックがイントラ符号化処理されるＩピクチャが存在する場合、Ｉピクチャの処理で遅延が発生する可能性がある。このため、Ｉピクチャを含むデータを処理するシステムにより、低遅延なシステムを実現することは困難である。そこで、非特許文献１に示すような、「イントラリフレッシュ」（イントラスライスでの画像のリフレッシュ方法）と呼ばれる符号化方法が提案されている。
【０００６】
非特許文献１に開示されているイントラリフレッシュ符号化処理では、フレーム内の全てのマクロブロックがイントラ符号化されるＩピクチャは利用されない。非特許文献１のイントラリフレッシュ符号化処理では、イントラマクロブロックがスライス単位で配置される。フレーム内のあるスライス内の全てのマクロブロックを、予測を用いずに直接ＤＣＴを行うイントラマクロブロックとして符号化する。このようなスライスを「イントラスライス」と呼ぶ。イントラリフレッシュ符号化処理では、イントラスライスを適用する場所をフレームごとに順次ずらし、一定周期でイントラスライスの位置が画面全体を巡回するように処理を行う。つまり、イントラリフレッシュ符号化処理では、一定周期でイントラスライスの位置が画面全体を巡回する（画面がリフレッシュされる）。Ｉピクチャに比べ、イントラスライスに要する発生符号量は少ないため、イントラリフレッシュ処理を採用したシステムでは、バッファサイズを減少させ、遅延を減らすことができる。
【０００７】
非特許文献１で示すように、イントラリフレッシュ処理を用いることで、イントラブロックをＧＯＰ内に分散させることができる。
【０００８】
しかし、上記イントラリフレッシュ処理では、スライス内の全てのマクロブロックをイントラ符号化処理し、かつ、フレームごとにイントラスライスの位置を１列ずつずらしていく処理が実行されるので、復号画像（映像）の画質が劣化することがある。具体的には、画像を連続再生したとき、復号画像（映像）において、イントラスライス部分が走査線のように（横帯状に）見えてしまうという問題がある。
【０００９】
この問題を解決するために、例えば、特許文献１に開示されている技術では、イントラマクロブロックをマクロブロック単位で分散させるようにしている。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２００４−２１５２５２号公報
【非特許文献１】特許庁、資料室、平成２４年８月１３日検索、インターネット＜ＵＲＬ：http://www.jpo.go.jp/shiryou/s_sonota/hyoujun_gijutsu/nle/nle-7-1.html＞
【発明の概要】
【発明が解決しようとする課題】
【００１１】
しかしながら、特許文献１の技術では、イントラマクロブロックが複雑な画像である場合、イントラマクロブロックの符号量が増加する傾向にある。イントラマクロブロックの符号量を抑制するためには、イントラマクロブロックを粗く量子化することが考えられるが、イントラマクロブロックを粗く量子化した場合、イントラマクロブロックの画質と、イントラマクロブロックの周囲に位置するインターマクロブロックの画質とに差が生じる。その結果、特許文献１の技術を採用した場合、復号画像（映像）上において、イントラマクロブロックの位置が目立つという問題、すなわち、復号画像（映像）の画質が劣化するという問題がある。
【００１２】
そこで、本発明は、上記課題に鑑み、１フレーム当たりのイントラマクロブロックの符号量のばらつきを抑制するとともに、復号画像（映像）の画質の劣化の少ない動画像符号化処理を行う動画像符号化装置、動画像符号化方法およびプログラムを実現することを目的とする。
【課題を解決するための手段】
【００１３】
上記課題を解決するために、第１の発明は、動画像信号を符号化する動画像符号化装置であって、リセットタイミング決定部と、アクティビティ算出部と、イントラＭＢ決定部と、符号化部と、を備える。
【００１４】
リセットタイミング決定部は、動画像信号から、処理対象のフレーム画像である現フレーム画像の時系列上の位置を検出し、現フレーム画像上の１列のマクロブロックからなるマクロブロックラインごとに、イントラリフレッシュ処理をリセット（開始）するタイミングを決定する。
【００１５】
アクティビティ算出部は、動画像信号から、現フレーム画像のマクロブロックごとに、画像の複雑度を示すアクティビティ値を算出する。
【００１６】
イントラＭＢ決定部は、アクティビティ算出部により算出されたアクティビティ値に基づいて、イントラマクロブロックに設定するマクロブロックを決定する。
【００１７】
符号化部は、イントラＭＢ決定部によりイントラマクロブロックに設定されたマクロブロックをイントラ符号化処理により符号化する。
【００１８】
そして、リセットタイミング決定部は、マクロブロックラインごとに、イントラリフレッシュ処理がリセット（開始）されるタイミングがずれるように、イントラリフレッシュ処理のリセットタイミングを決定する。
【００１９】
この動画像符号化装置では、マクロブロックラインごとに、イントラリフレッシュ処理がリセット（開始）されるタイミングがずれるように、イントラリフレッシュ処理のリセット（開始）タイミングが決定されるので、１フレームにおいて、符号化量の多いイントラマクロブロックが数多く設定されることがなく、１フレームあたりの符号化量が極端に大きくなることを適切に抑制することができる。その結果、この動画像符号化装置では、１フレームにおいて、荒く量子化する必要が生じるマクロブロックが発生しにくい。つまり、この動画像符号化装置では、１フレーム当たりのイントラマクロブロックの符号量のばらつきを抑制するとともに、復号画像（映像）の画質の劣化の少ない動画像符号化処理を行うことができる。
【００２０】
なお、マクロブロックラインごとに、「イントラリフレッシュ処理がリセットされる」ことで、当該マクロブロックラインに含まれる全てのマクロブロックがイントラマクロブロックの候補に設定される。
【００２１】
第２の発明は、第１の発明であって、リセットタイミング決定部は、マクロブロックラインごとに、所定の周期により、イントラリフレッシュ処理が繰り返し実行されるように、イントラリフレッシュ処理を実行するタイミングを決定する。
【００２２】
この動画像符号化装置では、マクロブロックラインごとに所定の周期によりイントラリフレッシュ処理が繰り返されるので、特定のフレームの符号化量が多くなることを適切に抑制することができる。
【００２３】
第３の発明は、第２の発明であって、リセットタイミング決定部は、マクロブロックラインごとに、同一の周期により、イントラリフレッシュ処理が繰り返し実行されるように、イントラリフレッシュ処理を実行するタイミングを決定する。
【００２４】
この動画像符号化装置では、マクロブロックラインごとに同一の周期によりイントラリフレッシュ処理が繰り返されるので、ブロックライン間において、最初に生じた遅延時間（位相差）を保ったまま、イントラリフレッシュ処理が実行される。したがって、この動画像符号化装置では、特定のフレームの符号化量が多くなることをより適切に抑制することができる。
【００２５】
第４の発明は、第１から第３のいずれかの発明であって、アクティビティ算出部は、アクティビティ値を、アダマール変換を用いて算出する。
【００２６】
この動画像符号化装置では、アダマール変換を用いて、アクティビティ値を算出するので、整数演算のみでアクティビティ値を算出することができるとともに、アダマール変換後の周波数成分を取得することで、複雑度（アクティビティ値）を精度良く取得することができる。
【００２７】
第５の発明は、第１から第４のいずれかの発明であって、イントラＭＢ決定部は、処理対象のマクロブロックラインにおいて、小さいアクティビティ値を有するマクロブロックから順番に、イントラマクロブロックに設定する。
【００２８】
この動画像符号化装置では、小さいアクティビティ値を有するマクロブロックから順番に、イントラマクロブロックに設定されるので、効率良く符号化することができる。アクティビティ値の小さいマクロブロックの符号化量は少ないため、上記処理を行うことで、１フレームにおける符号量の増大を適切に抑制することができる。その結果、この動画像符号化装置では、特定のフレームの符号化量が多くなることを適切に抑制することができる。
【００２９】
第６の発明は、第１から第５のいずれかの発明であって、インター／イントラ判定部をさらに備える。
【００３０】
インター／イントラ判定部は、現フレーム画像と、符号化部により現フレーム画像より前のフレーム画像を動き補償して取得される動き補償フレーム画像とに基づいて、現フレーム画像において、イントラＭＢ決定部によりイントラマクロブロックに設定されていないマクロブロックについて、イントラマクロブロックに設定するか否かを判定する。
【００３１】
符号化部は、イントラＭＢ決定部およびインター／イントラ判定部により、イントラマクロブロックに設定されたマクロブロックについて、イントラ符号化処理を行う。
【００３２】
これにより、イントラＭＢ決定部によりイントラマクロブロックに設定されていないマクロブロックについて、Ｈ．２６４等で採用されている符号化コストを算出し、算出された符号化コストに基づいて、当該マクロブロックについて、画質、符号量の両面から最適な符号化モードが選択されインター符号化処理またはイントラ符号化処理が実行される。したがって、この動画像符号化装置では、イントラＭＢ決定部によりイントラマクロブロックに設定されていないマクロブロックについても、高画質を確保しつつ符号化量の増大を抑制した符号化処理を行うことができる。
【００３３】
第７の発明は、第６の発明であって、イントラＭＢ決定部は、現フレーム画像において、イントラマクロブロックに設定されたマクロブロックについて、次のフレーム以降の処理において、イントラマクロブロックに設定されないように当該マクロブロックについて、イントラマクロブロック設定済みフラグを設定し、インター／イントラ判定部によりイントラマクロブロックに設定されたマクロブロックについてもイントラマクロブロック設定済みフラグを設定する。また、イントラＭＢ決定部は、現フレーム画像において、イントラマクロブロック設定済みフラグが設定されていないマクロブロックから、小さいアクティビティ値を有するマクロブロックから順番に、イントラマクロブロックに設定する。
【００３４】
これにより、この動画像符号化装置では、１周期内のイントラリフレッシュ処理において、一度イントラマクロブロックに設定されたマクロブロックについては、イントラマクロブロックに設定されることがない。したがって、特定のマクロブロックが何度もイントラマクロブロックに設定されることで、発生する復号画像上の画質の劣化が生じにくい。
【００３５】
第８の発明は、第１から第７のいずれかの発明であって、リセットタイミング決定部は、マクロブロックラインのライン番号をｈとし、Ｎ個のマクロブロックラインを１組のグループに設定し、イントラリフレッシュ処理の周期のフレーム数をＩｎｔｒａＲｅｆｒｅｓｈＣｙｃｌｅとしたとき、マクロブロックライン番号がｈのマクロブロックラインのイントラリフレッシュ処理を開始（リセット）するまでの残りのフレーム数を、
【００３６】
ｒｅｍａｉｎＰｉｃ［ｍｏｄ（ｈ，Ｎ）］
＝ＩＮＴ（ＩｎｔｒａＲｅｆｒｅｓｈＣｙｃｌｅ／Ｎ）×ｍｏｄ（ｈ，Ｎ）
ｍｏｄ（ｈ，ｘ）：法ｘによる剰余を取得する関数
ＩｎｔｒａＲｅｆｒｅｓｈＣｙｃｌｅ：イントラリフレッシュ処理の周期（フレーム数）
Ｎ：１グループ内のＭＢＬ数
ｈ：ＭＢＬのライン番号
【００３７】
ＩＮＴ（ｘ）：ｘを超えない最大の整数を取得する関数
により算出し、フレームごとの処理が終了する度に、変数ｒｅｍａｉｎＰｉｃ［ｍｏｄ（ｈ，Ｎ）］を１だけデクリメントし、デクリメントした変数ｒｅｍａｉｎＰｉｃ［ｍｏｄ（ｈ，Ｎ）］を保持する。
イントラＭＢ決定部は、変数ｒｅｍａｉｎＰｉｃ［ｍｏｄ（ｈ，Ｎ）］が「０」になったときを、マクロブロックライン番号がｈのマクロブロックラインについて、イントラリフレッシュ処理のリセットタイミング（開始タイミング）とする。
【００３８】
これにより、この動画像符号化装置では、１つのグループにおけるマクロブロックラインごとのイントラリフレッシュ処理がリセット（開始）されるまでの遅延時間（位相差）が略均等となるため、イントラマクロブロックに設定されるマクロブロックを適切に分散させることができる。その結果、この動画像符号化装置では、１フレーム当たりのイントラマクロブロックの符号量のばらつきを抑制するとともに、復号画像（映像）の画質の劣化の少ない動画像符号化処理を行うことができる。
第９の発明は、第１から第８のいずれかの発明であって、イントラＭＢ決定部は、マクロブロックラインのライン番号をｈとし、Ｎ個のマクロブロックラインを１組のグループに設定し、マクロブロックラインにおいて、イントラリフレッシュ処理の１周期内において、未だイントラマクロブロックに設定されていないマクロブロックの数をｒｅｍａｉｎＭＢとし、マクロブロックラインにおいて、１回のイントラリフレッシュ処理が終了するまでの残りのフレーム数をｒｅｍａｉｎＰｉｃとしたとき、
【００３９】
ｋ＝ＩＮＴ（（ｒｅｍａｉｎＭＢ＋ｒｅｍａｉｎＰｉｃ−１）／ｒｅｍａｉｎＰｉｃ）
Ｎ：１グループ内のＭＢＬ数
ｈ：ＭＢＬのライン番号
【００４０】
ＩＮＴ（ｘ）：ｘを超えない最大の整数を取得する関数
により算出された数ｋにより、マクロブロックラインにおいて、アクティビティ値が小さい方からｋ個のマクロブロックをイントラマクロブロックに設定する。
これにより、この動画像符号化装置では、残りのフレーム数において、設定されるイントラマクロブロック数をバランスよく配分することができるとともに、イントラリフレッシュ処理の１周期内に全てのマクロブロックがイントラマクロブロックに設定されることが保証される。したがって、この動画像符号化装置では、１フレーム当たりのイントラマクロブロックの符号量のばらつきを抑制するとともに、復号画像（映像）の画質の劣化の少ない動画像符号化処理を行うことができる。
【００４１】
第１０の発明は、動画像信号を符号化する動画像符号化方法であって、イントラリフレッシュ処理開始タイミング決定ステップと、アクティビティ算出ステップと、イントラＭＢ決定ステップと、符号化ステップと、を備える。
【００４２】
イントラリフレッシュ処理開始タイミング決定ステップは、動画像信号から、処理対象のフレーム画像である現フレーム画像の時系列上の位置を検出し、現フレーム画像上の１列のマクロブロックからなるマクロブロックラインごとに、イントラリフレッシュ処理をリセット（開始）するタイミングを決定する。
【００４３】
アクティビティ算出ステップは、動画像信号から、現フレーム画像のマクロブロックごとに、画像の複雑度を示すアクティビティ値を算出する。
【００４４】
イントラＭＢ決定ステップは、アクティビティ算出ステップにより算出されたアクティビティ値に基づいて、イントラマクロブロックに設定するマクロブロックを決定する。
【００４５】
符号化ステップは、イントラＭＢ決定部によりイントラマクロブロックに設定されたマクロブロックをイントラ符号化処理により符号化する。
【００４６】
そして、イントラリフレッシュ処理開始タイミング決定ステップは、マクロブロックラインごとに、イントラリフレッシュ処理がリセット（開始）されるタイミングがずれるように、イントラリフレッシュ処理をリセット（開始）するタイミングを決定する。
【００４７】
これにより、第１の発明と同様の効果を奏する動画像符号化方法を実現することができる。
【００４８】
第１１の発明は、動画像信号を符号化する動画像符号化方法をコンピュータに実行させるためのプログラムである。動画像符号化方法は、イントラリフレッシュ処理開始タイミング決定ステップと、アクティビティ算出ステップと、イントラＭＢ決定ステップと、符号化ステップと、を備える。
【００４９】
イントラリフレッシュ処理開始タイミング決定ステップは、動画像信号から、処理対象のフレーム画像である現フレーム画像の時系列上の位置を検出し、現フレーム画像上の１列のマクロブロックからなるマクロブロックラインごとに、イントラリフレッシュ処理を開始するタイミングを決定する。
【００５０】
アクティビティ算出ステップは、動画像信号から、現フレーム画像のマクロブロックごとに、画像の複雑度を示すアクティビティ値を算出する。
【００５１】
イントラＭＢ決定ステップは、アクティビティ算出ステップにより算出されたアクティビティ値に基づいて、イントラマクロブロックに設定するマクロブロックを決定する。
【００５２】
符号化ステップは、イントラＭＢ決定部によりイントラマクロブロックに設定されたマクロブロックをイントラ符号化処理により符号化する。
【００５３】
そして、イントラリフレッシュ処理開始タイミング決定ステップは、マクロブロックラインごとに、イントラリフレッシュ処理がリセット（開始）されるタイミングがずれるように、イントラリフレッシュ処理をリセット（開始）するタイミングを決定する。
【００５４】
これにより、第１の発明と同様の効果を奏する動画像符号化方法をコンピュータに実行させるプログラムを実現することができる。
【００５５】
第１２の発明は、動画像信号を符号化する集積回路であって、リセットタイミング決定部と、アクティビティ算出部と、イントラＭＢ決定部と、符号化部と、を備える。
【００５６】
リセットタイミング決定部は、動画像信号から、処理対象のフレーム画像である現フレーム画像の時系列上の位置を検出し、現フレーム画像上の１列のマクロブロックからなるマクロブロックラインごとに、イントラリフレッシュ処理をリセット（開始）するタイミングを決定する。
【００５７】
アクティビティ算出部は、動画像信号から、現フレーム画像のマクロブロックごとに、画像の複雑度を示すアクティビティ値を算出する。
【００５８】
イントラＭＢ決定部は、アクティビティ算出部により算出されたアクティビティ値に基づいて、イントラマクロブロックに設定するマクロブロックを決定する。
【００５９】
符号化部は、イントラＭＢ決定部によりイントラマクロブロックに設定されたマクロブロックをイントラ符号化処理により符号化する。
【００６０】
そして、リセットタイミング決定部は、マクロブロックラインごとに、イントラリフレッシュ処理がリセット（開始）されるタイミングがずれるように、イントラリフレッシュ処理がリセット（開始）されるタイミングを決定する。
【００６１】
これにより、第１の発明と同様の効果を奏する集積回路を実現することができる。
【発明の効果】
【００６２】
本発明によれば、１フレーム当たりのイントラマクロブロックの符号量のばらつきを抑制するとともに、復号画像（映像）の画質の劣化の少ない動画像符号化処理を行う動画像符号化装置、動画像符号化方法およびプログラムを実現することができる。
【図面の簡単な説明】
【００６３】
【図１】第１実施形態に係る動画像符号化装置１０００の概略構成図。
【図２】動画像符号化装置１０００に入力される動画像信号Ｄｉｎの一例を示す図。
【図３】１つグループが４つのＭＢＬからなる場合のＭＢＬごとのイントラリフレッシュ処理についてのタイミングチャート図。
【図４】ｈ＝０〜３のときのイントラリフレッシュ処理と、残ピクチャ数ｒｅｍａｉｎＰｉｃとの関係を模式的に示すタイミングチャート図。
【図５Ａ】１ＭＢＬが１６個のマクロブロックからなり、イントラリフレッシュ処理の周期が４フレームの場合について、イントラリフレッシュ処理を説明するための図。
【図５Ｂ】１ＭＢＬが１６個のマクロブロックからなり、イントラリフレッシュ処理の周期が４フレームの場合について、イントラリフレッシュ処理を説明するための図。
【図５Ｃ】１ＭＢＬが１６個のマクロブロックからなり、イントラリフレッシュ処理の周期が４フレームの場合について、イントラリフレッシュ処理を説明するための図。
【図５Ｄ】１ＭＢＬが１６個のマクロブロックからなり、イントラリフレッシュ処理の周期が４フレームの場合について、イントラリフレッシュ処理を説明するための図。
【図６】イントラリフレッシュ方法のフローチャート。
【図７】動画像符号化装置１０００により符号化したデータ（動画像符号化信号）のビットレートと、ＭＢＬごとにイントラリフレッシュ処理の開始時刻をずらさずに（遅延させずに）イントラリフレッシュ処理を実行して取得した符号化データ（動画像符号化信号）のビットレートとの比較結果を示す図。
【発明を実施するための形態】
【００６４】
［第１実施形態］
第１実施形態について、図面を参照しながら、以下、説明する。
【００６５】
＜１．１：動画像符号化装置の構成＞
図１は、第１実施形態に係る動画像符号化装置１０００の概略構成図である。
【００６６】
動画像符号化装置１０００は、図１に示すように、入力動画像信号Ｄｉｎから処理対象の画像（ピクチャ）の時間軸上の位置を検出する残ピクチャ数取得部１（リセットタイミング決定部）と、入力動画像信号Ｄｉｎを入力とし、処理対象の画像（ピクチャ）においてマクロブロックごとにアクティビティ値を算出するアクティビティ算出部２と、を備える。
【００６７】
また、動画像符号化装置１０００は、処理対象の画像（ピクチャ）において、どのマクロブロックをイントラマクロブロックとするかを決定するイントラＭＢ決定部３と、処理対象の画像（ピクチャ）において、マクロブロックごとに、インター符号化すべきか、それとも、イントラ符号化すべきかを決定するインター／イントラ判定部４と、を備える。
【００６８】
さらに、動画像符号化装置１０００は、イントラＭＢ決定部３およびインター／イントラ判定部の処理結果に基づいて、入力動画像信号Ｄｉｎを符号化する符号化部５を備える。
【００６９】
残ピクチャ数取得部１は、複数のフレーム画像（ピクチャ）を形成することができる動画像信号Ｄｉｎと、イントラリフレッシュ周期に関する情報とを入力とする。残ピクチャ数取得部１は、動画像信号Ｄｉｎから、処理対象のフレーム（ピクチャ）の時間軸上の位置を特定し、マクロブロックラインごとに設定される残ピクチャ数を、イントラリフレッシュ周期に基づいて、取得する（詳細については後述。）。なお、イントラリフレッシュ周期に関する情報は、設定部（不図示）から入力される情報であり、例えば、フレーム数（ピクチャ数）を用いて設定される。例えば、イントラリフレッシュ周期が「３０」（３０フレーム）とは、イントラリフレッシュ処理が実行される周期が、３０フレームに相当する時間であることを意味する。
【００７０】
残ピクチャ数取得部１は、取得した残ピクチャ数（ｒｅｍａｉｎＰｉｃ）に関する情報をイントラＭＢ決定部３に出力する。
【００７１】
アクティビティ算出部２は、動画像信号Ｄｉｎを入力とし、処理対象のフレーム画像（ピクチャ）の各マクロブロックのアクティビティ値ＡＣＴを算出する（詳細については、後述。）。そして、アクティビティ算出部２は、マクロブロックごとに算出したアクティビティ値ＡＣＴに関する情報をイントラＭＢ決定部３に出力する。
【００７２】
イントラＭＢ決定部３は、残ピクチャ数取得部１から出力される残ピクチャ数ｒｅｍａｉｎＰｉｃに関する情報と、アクティビティ算出部２により算出された各マクロブロックのアクティビティ値ＡＣＴに関する情報と、を入力とする。さらに、イントラＭＢ決定部３は、インター／イントラ判定部４から出力されるマクロブロックごとのインター／イントラ判定結果に関する情報（詳細については後述。）を入力とする。そして、イントラＭＢ決定部３は、残ピクチャ数ｒｅｍａｉｎＰｉｃに関する情報に基づいて、マクロブロックごとに、当該マクロブロックをイントラマクロブロックに設定するか否かについて、決定する。イントラＭＢ決定部３は、マクロブロックごとに決定した、イントラマクロブロックに設定するか否かの情報（ＤＥＴ＿ＩｎｔｒａＭＢ）をインター／イントラ判定部４および符号化部５に出力する。
【００７３】
インター／イントラ判定部４は、動画像信号Ｄｉｎと、イントラＭＢ決定部３から出力されるマクロブロックごとに決定されたイントラマクロブロックの設定情報（ＤＥＴ＿ＩｎｔｒａＭＢ）と、符号化部５から出力される動き補償後の動画像信号ＭＥ＿ｏｕｔ（処理対象ピクチャ（現フレーム画像）の１フレーム前のフレーム画像を動きベクトルにより動き補償して生成される動画像信号）と、を入力とする。インター／イントラ判定部４は、イントラマクロブロックの設定情報（ＤＥＴ＿ＩｎｔｒａＭＢ）から、イントラマクロブロックに設定されていないマクロブロックを検出する。インター／イントラ判定部４は、当該マクロブロック（イントラＭＢ決定部３によりイントラマクロブロックに設定されなかったマクロブロック）を、動き補償後の動画像信号ＭＥ＿ｏｕｔに基づいて符号化コストを算出し、算出した符号化コストに基づいて、当該マクロブロックを、イントラマクロブロックに設定するか否かを決定する。インター／イントラ判定部４は、マクロブロックごとに決定した、イントラマクロブロックに設定するか否かの情報（ＤＥＴ２＿ＩｎｔｒａＭＢ）をイントラＭＢ決定部３および符号化部５に出力する。
【００７４】
符号化部５は、動画像信号Ｄｉｎと、イントラＭＢ決定部３から出力されるマクロブロックごとに決定されたイントラマクロブロックの設定情報（ＤＥＴ＿ＩｎｔｒａＭＢ）と、インター／イントラ判定部４から出力されるマクロブロックごとに決定されたイントラマクロブロックの設定情報（ＤＥＴ２＿ＩｎｔｒａＭＢ）と、を入力とする。符号化部５は、イントラＭＢ決定部３によるイントラマクロブロックの設定情報（ＤＥＴ＿ＩｎｔｒａＭＢ）およびインター／イントラ判定部４によるイントラマクロブロックの設定情報（ＤＥＴ２＿ＩｎｔｒａＭＢ）に基づいて、動画像信号Ｄｉｎにより形成される各フレーム画像（各ピクチャ）の各マクロブロックに対して、イントラ符号化処理またはインター符号化処理を行う。そして、符号化処理後の信号を、動画像符号化信号Ｄｏｕｔとして出力する。また、符号化部５は、現フレームの動画像信号と（現在処理対象となっているフレームの）１フレーム前のフレームの動画像信号とから導出した動きベクトルにより動き補償して取得した現フレーム処理用の動画像信号ＭＥ＿ｏｕｔをインター／イントラ判定部４に出力する。
【００７５】
＜１．２：動画像符号化装置の動作＞
以上のように構成された動画像符号化装置１０００は動作について、以下、説明する。
【００７６】
図２は、動画像符号化装置１０００に入力される動画像信号Ｄｉｎの一例を示す図である。図２に示す動画像信号Ｄｉｎは、３０ｆｐｓの信号であり、例えば、固定ビットレート（ＣＢＲ（Ｃｏｎｓｔａｎｔ  Ｂｉｔ  Ｒａｔｅ））制御を行うために、Ｂピクチャを用いない動画像信号であるものとする。具体的には、動画像信号Ｄｉｎは、最初のフレーム（ピクチャ）のみＩピクチャであり、それ以降のフレーム（ピクチャ）は、全てＰピクチャから構成されている。つまり、動画像信号Ｄｉｎは、最初の３０フレームのみ、図２（ａ）に示すピクチャ構成となっており、それ以降は、３０フレームごとに、図２（ｂ）に示すピクチャ構成となっている。ピクチャ番号を単位時間（図２の場合、単位時間は１秒であり、単位時間あたりのフレーム（ピクチャ）数は、「３０」である。）において、時系列に順番に振るものとすると、最初の３０フレームにおいて、ピクチャ番号０のピクチャのみがＩピクチャであり、ピクチャ番号１〜２９のピクチャはＰピクチャである。さらに、それ以降については、３０フレームごとに、ピクチャ番号０〜２９のピクチャ（全てのピクチャ）はＰピクチャである。
【００７７】
なお、以下では、動画像信号Ｄｉｎは、フレームレートが３０ｆｐｓであり、最初のフレームのみがＩピクチャであり、それ以降のフレームは全てＰピクチャであるものとして、説明する。また、以下では、イントラリフレッシュ処理の周期を３０フレーム（３０フレームに相当する時間）として説明する。
【００７８】
動画像信号Ｄｉｎは、残ピクチャ数取得部１、アクティビティ算出部２、インター／イントラ判定部４、および、符号化部５に入力される。
【００７９】
残ピクチャ数取得部１では、入力された動画像信号Ｄｉｎから、処理対象フレーム（ピクチャ）の単位時間内における時間軸方向の位置が検出される。そして、残ピクチャ数取得部１では、イントラリフレッシュ周期（本実施形態では３０フレーム）に基づいて、イントラリフレッシュ処理がリセットされるまでの時間に相当する残ピクチャ数が算出される。
【００８０】
動画像符号化装置１０００では、Ｎ個（Ｎは２以上の自然数）のマクロブロックライン（以下、「ＭＢＬ」という。）を１つのグループとし、同一グループ内において、ＭＢＬごとに、イントラリフレッシュ処理がリセットされるまでの時間（遅延させる時間）が異なる。これについて、図３を用いて説明する。
【００８１】
図３は、Ｎ＝４の場合、つまり、１つのグループが４つのＭＢＬからなる場合のＭＢＬごとのイントラリフレッシュ処理がリセットされるまでの遅延時間を模式的に示すタイミングチャート図である。図３において、横軸は時間軸であり、ｈはマクロブロックラインの行の位置を示している。図３（ａ）〜（ｈ）は、時間軸を一致させて描いている。なお、図３は、Ｎ＝４の場合を示しているが、Ｎは他の自然数であってもよい。以下では、説明便宜のため、Ｎ＝４の場合について、説明する。
【００８２】
図３に示すように、同一グループ内において、各ＭＢＬのイントラリフレッシュ処理の開始時刻(リセット時刻)はお互いに異なっている。具体的には、図３に示すように、以下のように遅延時間（次のイントラリフレッシュ処理のリセットまでの時間）が設定される。なお、遅延時間（次のイントラリフレッシュ処理のリセットまでの時間）は、フレーム数で設定されるものとする。なお、以下では、説明便宜のために、ｈ＝０〜７（８ライン分）を例に説明する。
（１）ｈ＝０，４のＭＢＬのイントラリフレッシュ処理では、遅延時間（次のイントラリフレッシュ処理のリセットまでの時間）が「０」フレームに設定される。
ｈ＝０，４のＭＢＬのイントラリフレッシュ処理は、図３の時刻ｔ０、ｔ１、ｔ２、ｔ３およびｔ４において、リセットされる。つまり、時刻ｔ０、ｔ１、ｔ２、ｔ３およびｔ４において、ｈ＝０，４のＭＢＬに含まれるすべてのマクロブロックがイントラマクロブロックの候補となる。そして、例えば、期間ｔ１〜ｔ２において、ｈ＝０，４のＭＢＬに対して、１周期分のイントラリフレッシュ処理（図３の「ＩｎｔｒａＲｅｆｒｅｓｈ１」で示した部分に相当する処理）が実行される。
【００８３】
上記と同様に、時刻ｔ２において、ｈ＝０，４のＭＢＬのイントラリフレッシュ処理は、リセットされ、期間ｔ２〜ｔ３において、ｈ＝０，４のＭＢＬに対して、１周期分のイントラリフレッシュ処理（図３の「ＩｎｔｒａＲｅｆｒｅｓｈ２」で示した部分に相当する処理）が実行される。
【００８４】
さらに、時刻ｔ３において、ｈ＝０，４のＭＢＬのイントラリフレッシュ処理は、リセットされ、期間ｔ３〜ｔ４において、ｈ＝０，４のＭＢＬに対して、１周期分のイントラリフレッシュ処理（図３の「ＩｎｔｒａＲｅｆｒｅｓｈ３」で示した部分に相当する処理）が実行される。以降、上記同様の処理が繰り返される。
【００８５】
なお、図３は、図２で示した動画像信号を入力とする場合について図示しており、開始時刻ｔ０において、最初のフレームが入力される。最初のフレームは、Ｉピクチャであるので、開始時刻ｔ０において、１フレームの全マクロブロックがイントラマクロブロックとして符号化される。その後、時刻ｔ０に処理対象となったフレームの次のフレームが処理対象となる時刻から時刻ｔ１まで、ｈ＝０、４のＭＢＬのイントラリフレッシュ処理は実行されないことになる。
（２）ｈ＝１，５のＭＢＬのイントラリフレッシュ処理では、遅延時間（次のイントラリフレッシュ処理のリセットまでの時間）が、図３に示す時間ｄ１に相当するフレーム数に設定される。
ｈ＝１、５のＭＢＬのイントラリフレッシュ処理は、ｈ＝０、４のＭＢＬのイントラリフレッシュ処理の開始時刻（リセット時刻）ｔ０〜ｔ４から、それぞれ、期間ｄ１だけ遅れた時刻において、リセットされる。つまり、時刻ｔ０〜ｔ４から、それぞれ、期間ｄ１だけ遅れた時刻において、ｈ＝１、５のＭＢＬに含まれるすべてのマクロブロックがイントラマクロブロックの候補となる。そして、時刻ｔ０から期間ｄ１だけ遅れた時刻（ｔ０＋ｄ１）から時刻ｔ１から期間ｄ１だけ遅れた時刻（ｔ１＋ｄ１）までの期間において、ｈ＝１、５のＭＢＬに対して、１周期分のイントラリフレッシュ処理（図３の「ＩｎｔｒａＲｅｆｒｅｓｈ１」で示した部分に相当する処理）が実行される。
【００８６】
上記と同様に、時刻ｔ１から期間ｄ１だけ遅れた時刻において、ｈ＝１，５のＭＢＬのイントラリフレッシュ処理は、リセットされ、時刻（ｔ１＋ｄ１）から時刻（ｔ２＋ｄ１）までの期間において、ｈ＝１，５のＭＢＬに対して、１周期分のイントラリフレッシュ処理（図３の「ＩｎｔｒａＲｅｆｒｅｓｈ２」で示した部分に相当する処理）が実行される。
【００８７】
さらに、時刻ｔ２から期間ｄ１だけ遅れた時刻において、ｈ＝１，５のＭＢＬのイントラリフレッシュ処理は、リセットされ、時刻（ｔ２＋ｄ１）から時刻（ｔ３＋ｄ１）までの期間において、ｈ＝１，５のＭＢＬに対して、１周期分のイントラリフレッシュ処理（図３の「ＩｎｔｒａＲｅｆｒｅｓｈ３」で示した部分に相当する処理）が実行される。そして、上記同様の処理が繰り返される。
【００８８】
なお、開始時刻ｔ０において、Ｉフレームが入力されるので、開始時刻ｔ０において、１フレームの全マクロブロックがイントラマクロブロックとして符号化される。その後、時刻ｔ０＋ｄ１（時刻ｔ０から期間ｄ１が経過した時刻）まで、ｈ＝１、５のＭＢＬのイントラリフレッシュ処理は実行されないことになる。
（３）ｈ＝２，６のＭＢＬのイントラリフレッシュ処理では、遅延時間（次のイントラリフレッシュ処理のリセットまでの時間）が、図３に示す時間ｄ２に相当するフレーム数に設定される。
ｈ＝２、６のＭＢＬのイントラリフレッシュ処理は、ｈ＝０、４のＭＢＬのイントラリフレッシュ処理の開始時刻（リセット時刻）ｔ０〜ｔ４から、それぞれ、期間ｄ２だけ遅れた時刻において、リセットされる。つまり、時刻ｔ０〜ｔ４から、それぞれ、期間ｄ２だけ遅れた時刻において、ｈ＝２、６のＭＢＬに含まれるすべてのマクロブロックがイントラマクロブロックの候補となる。そして、時刻ｔ０から期間ｄ２だけ遅れた時刻（ｔ０＋ｄ２）から時刻ｔ１から期間ｄ２だけ遅れた時刻（ｔ１＋ｄ２）までの期間において、ｈ＝２、６のＭＢＬに対して、１周期分のイントラリフレッシュ処理（図３の「ＩｎｔｒａＲｅｆｒｅｓｈ１」で示した部分に相当する処理）が実行される。
【００８９】
上記と同様に、時刻ｔ１から期間ｄ２だけ遅れた時刻において、ｈ＝２，６のＭＢＬのイントラリフレッシュ処理は、リセットされ、時刻（ｔ１＋ｄ２）から時刻（ｔ２＋ｄ２）までの期間において、ｈ＝２，６のＭＢＬに対して、１周期分のイントラリフレッシュ処理（図３の「ＩｎｔｒａＲｅｆｒｅｓｈ２」で示した部分に相当する処理）が実行される。
【００９０】
さらに、時刻ｔ２から期間ｄ２だけ遅れた時刻において、ｈ＝２，６のＭＢＬのイントラリフレッシュ処理は、リセットされ、時刻（ｔ２＋ｄ２）から時刻（ｔ３＋ｄ２）までの期間において、ｈ＝２，６のＭＢＬに対して、１周期分のイントラリフレッシュ処理（図３の「ＩｎｔｒａＲｅｆｒｅｓｈ３」で示した部分に相当する処理）が実行される。そして、上記同様の処理が繰り返される。
【００９１】
なお、開始時刻ｔ０において、Ｉフレームが入力されるので、開始時刻ｔ０において、１フレームの全マクロブロックがイントラマクロブロックとして符号化される。その後、時刻ｔ０＋ｄ２（時刻ｔ０から期間ｄ２が経過した時刻）まで、ｈ＝２、６のＭＢＬのイントラリフレッシュ処理は実行されないことになる。
（４）ｈ＝３，７のＭＢＬのイントラリフレッシュ処理では、遅延時間（次のイントラリフレッシュ処理のリセットまでの時間）が、図３に示す時間ｄ３に相当するフレーム数に設定される。
ｈ＝３、７のＭＢＬのイントラリフレッシュ処理は、ｈ＝０、４のＭＢＬのイントラリフレッシュ処理の開始時刻（リセット時刻）ｔ０〜ｔ４から、それぞれ、期間ｄ３だけ遅れた時刻において、リセットされる。つまり、時刻ｔ０〜ｔ４から、それぞれ、期間ｄ３だけ遅れた時刻において、ｈ＝３、７のＭＢＬに含まれるすべてのマクロブロックがイントラマクロブロックの候補となる。そして、時刻ｔ０から期間ｄ３だけ遅れた時刻（ｔ０＋ｄ３）から時刻ｔ１から期間ｄ３だけ遅れた時刻（ｔ１＋ｄ３）までの期間において、ｈ＝３、７のＭＢＬに対して、１周期分のイントラリフレッシュ処理（図３の「ＩｎｔｒａＲｅｆｒｅｓｈ１」で示した部分に相当する処理）が実行される。
【００９２】
上記と同様に、時刻ｔ１から期間ｄ３だけ遅れた時刻において、ｈ＝３，７のＭＢＬのイントラリフレッシュ処理は、リセットされ、時刻（ｔ１＋ｄ３）から時刻（ｔ２＋ｄ３）までの期間において、ｈ＝３，７のＭＢＬに対して、１周期分のイントラリフレッシュ処理（図３の「ＩｎｔｒａＲｅｆｒｅｓｈ２」で示した部分に相当する処理）が実行される。
【００９３】
さらに、時刻ｔ２から期間ｄ３だけ遅れた時刻において、ｈ＝３，７のＭＢＬのイントラリフレッシュ処理は、リセットされ、時刻（ｔ２＋ｄ３）から時刻（ｔ３＋ｄ３）までの期間において、ｈ＝３，７のＭＢＬに対して、１周期分のイントラリフレッシュ処理（図３の「ＩｎｔｒａＲｅｆｒｅｓｈ３」で示した部分に相当する処理）が実行される。そして、上記同様の処理が繰り返される。
【００９４】
なお、開始時刻ｔ０において、Ｉフレームが入力されるので、開始時刻ｔ０において、１フレームの全マクロブロックがイントラマクロブロックとして符号化される。その後、時刻ｔ０＋ｄ３（時刻ｔ０から期間ｄ３が経過した時刻）まで、ｈ＝３、７のＭＢＬのイントラリフレッシュ処理は実行されないことになる。
なお、遅延時間ｄ１、ｄ２、ｄ３は、例えば、
ｄ２＝２×ｄ１
ｄ３＝３×ｄ１
となるように設定する。なお、遅延時間ｄ１、ｄ２、ｄ３の関係は、上記に限定されない。
また、動画像符号化装置１０００では、イントラリフレッシュ処理の周期Ｔ１（本実施形態では、Ｔ１は３０フレームに相当する期間。）において、すべてのマクロブロックがイントラマクロブロックとなるように制御を行う（詳細については、後述。）。
【００９５】
残ピクチャ数取得部１では、イントラリフレッシュ処理のリセット時刻（ＭＢＬのすべてのマクロブロックをイントラマクロブロック候補に設定（リセット）する時刻）までの遅延時間を残ピクチャ数として取得される。具体的には、残ピクチャ数取得部１は、下記数式により、ＭＢＬごとのイントラリフレッシュ処理のリセット時刻（次の１周期分のイントラリフレッシュ処理が開始される時刻）までの遅延時間を残ピクチャ数として取得する。
【００９６】
ｒｅｍａｉｎＰｉｃ［ｍｏｄ（ｈ，Ｎ）］
＝ＩｎｔｒａＲｅｆｒｅｓｈＣｙｃｌｅ／Ｎ×ｍｏｄ（ｈ，Ｎ）
ｍｏｄ（ｈ，ｘ）：法ｘによる剰余を取得する関数。
【００９７】
ＩｎｔｒａＲｅｆｒｅｓｈＣｙｃｌｅ：イントラリフレッシュ処理の周期（フレーム数）
Ｎ：１グループ内のＭＢＬ数
なお、本実施形態では、Ｎ＝４、ＩｎｔｒａＲｅｆｒｅｓｈＣｙｃｌｅ＝３０であるので、
【００９８】
ｒｅｍａｉｎＰｉｃ［ｍｏｄ（ｈ，４）］
＝３０／４×ｍｏｄ（ｈ，４）
となる。
なお、整数演算を行うため、アクティビティ算出部２では、切り捨て処理を行い、
【００９９】
ｒｅｍａｉｎＰｉｃ［ｍｏｄ（ｈ，４）］＝７×ｍｏｄ（ｈ，４）
により、各ＭＢＬのイントラリフレッシュ処理のリセット時刻(次のイントラリフレッシュ処理の開始時刻)までの遅延時間を示す残ピクチャ数ｒｅｍａｉｎＰｉｃ［ｍｏｄ（ｈ，４）］を取得する。
つまり、上記数式に相当する処理により、アクティビティ算出部２では、例えば、ｈ＝０〜３のときのイントラリフレッシュ処理のリセット時刻(次のイントラリフレッシュ処理の開始時刻)までの遅延時間を示す残ピクチャ数ｒｅｍａｉｎＰｉｃが、以下の通り、取得される。
【０１００】
（ａ）ｈ＝０のとき、
ｒｅｍａｉｎＰｉｃ［ｍｏｄ（０，４）］＝ｒｅｍａｉｎＰｉｃ［０］＝０
つまり、上記は、ｈ＝０のＭＢＬについて、０フレーム後（現フレーム）から、イントラリフレッシュ処理が開始されることを示している。つまり、この場合、ｈ＝０のＭＢＬについて、０フレーム後（現フレーム）において、リセットされ、ｈ＝０のＭＢＬに含まれる全てのマクロブロックがイントラマクロブロックの候補に設定される。
【０１０１】
（ｂ）ｈ＝１のとき、
ｒｅｍａｉｎＰｉｃ［ｍｏｄ（１，４）］＝ｒｅｍａｉｎＰｉｃ［１］＝７
つまり、上記は、ｈ＝１のＭＢＬについて、７フレーム後から、イントラリフレッシュ処理が開始されることを示している。つまり、この場合、ｈ＝１のＭＢＬについて、７フレーム後において、リセットされ、ｈ＝１のＭＢＬに含まれる全てのマクロブロックがイントラマクロブロックの候補に設定される。
【０１０２】
（ｃ）ｈ＝２のとき、
ｒｅｍａｉｎＰｉｃ［ｍｏｄ（２，４）］＝ｒｅｍａｉｎＰｉｃ［２］＝１４
つまり、上記は、ｈ＝２のＭＢＬについて、１４フレーム後から、イントラリフレッシュ処理が開始されることを示している。つまり、この場合、ｈ＝２のＭＢＬについて、１４フレーム後において、リセットされ、ｈ＝２のＭＢＬに含まれる全てのマクロブロックがイントラマクロブロックの候補に設定される。
【０１０３】
（ｄ）ｈ＝３のとき、
ｒｅｍａｉｎＰｉｃ［ｍｏｄ（３，４）］＝ｒｅｍａｉｎＰｉｃ［３］＝２１
つまり、上記は、ｈ＝３のＭＢＬについて、２１フレーム後から、イントラリフレッシュ処理が開始されることを示している。つまり、この場合、ｈ＝３のＭＢＬについて、２１フレーム後において、リセットされ、ｈ＝３のＭＢＬに含まれる全てのマクロブロックがイントラマクロブロックの候補に設定される。
【０１０４】
なお、残ピクチャ数取得部１では、その後、次のフレーム以降の処理に進むと、残ピクチャ数ｒｅｍａｉｎＰｉｃ［０］〜［３］は、それぞれ、１ずつデクリメントされていく。そして、残ピクチャ数取得部１では、残ピクチャ数ｒｅｍａｉｎＰｉｃ［０］〜［３］に関する情報が保持されるとともに、残ピクチャ数ｒｅｍａｉｎＰｉｃ［０］〜［３］に関する情報は、イントラＭＢ決定部３に出力される。
【０１０５】
図４は、ｈ＝０〜３のときのイントラリフレッシュ処理と、残ピクチャ数ｒｅｍａｉｎＰｉｃとの関係を模式的に示すタイミングチャート図である。図４の横軸は時間軸であり、図４（ａ）〜（ｄ）は、時間軸を一致させて描いている。また、図４は、図３と同様に、図２で示した動画像信号を入力とする場合についての図である。
【０１０６】
図４から分かるように、ｈ＝０のＭＢＬでは、０フレーム後（現フレーム）から、イントラリフレッシュ処理が開始されており、その後、周期３０フレームで、イントラリフレッシュ処理が繰り返される。なお、最初に、Ｐピクチャのフレームに対して、イントラリフレッシュ処理が開始されるのは、３０フレーム後である。
【０１０７】
ｈ＝１のＭＢＬでは、７フレーム後において、最初に、Ｐピクチャのフレームに対して、イントラリフレッシュ処理（イントラリフレッシュ処理ＩｎｔｒａＲｅｆｒｅｓｈ１）が開始されており、その後、周期３０フレームで、イントラリフレッシュ処理が繰り返される。
【０１０８】
ｈ＝２のＭＢＬでは、１４フレーム後において、最初に、Ｐピクチャのフレームに対して、イントラリフレッシュ処理（イントラリフレッシュ処理ＩｎｔｒａＲｅｆｒｅｓｈ１）が開始されており、その後、周期３０フレームで、イントラリフレッシュ処理が繰り返される。
【０１０９】
ｈ＝３のＭＢＬでは、２１フレーム後において、最初に、Ｐピクチャのフレームに対して、イントラリフレッシュ処理（イントラリフレッシュ処理ＩｎｔｒａＲｅｆｒｅｓｈ１）が開始されており、その後、周期３０フレームで、イントラリフレッシュ処理が繰り返される。
【０１１０】
アクティビティ算出部２では、動画像信号Ｄｉｎから、マクロブロックごとのアクティビティ値を算出する。アクティビティ値は、マクロブロック内の画像の複雑さを示す数値である。アクティビティ算出部２では、マクロブロック内の各画素の画素値に対して、例えば、アダマール変換を行い、周波数成分を抽出し、抽出した周波数成分により、マクロブロック内の画像の複雑さであるアクティビティ値を取得する。具体的には、アクティビティ算出部２は、マクロブロックが８画素×８画素からなる場合、マクロブロック内の各行（８つの行）に対して、１×８アダマール変換行列［１  −１  １  −１  １  −１  １  −１］を適用することで、周波数成分を抽出し、各行について、抽出した周波数成分を加算することで（各行について抽出した成分の絶対値をとった後、加算することで）、アクティビティ値を算出する。つまり、８画素×８画素のマクロブロックの各画素の画素値をＡｉｊ（ｉ：整数、１≦ｉ≦８、ｊ：整数、１≦ｊ≦８）とすると、アクティビティ値ＡＣＴは、下記（数式１）により算出される。なお、Ａｉｊは、ｉ行ｊ列目の画素値を表すものとする。
【０１１１】
【数１】
2014060666.tif 000003
【０１１２】
上記（数式１）による演算により、水平方向の高周波成分が整数演算処理のみで抽出することができるため、アクティビティ算出部２において、高速に、マクロブロックごとのアクティビティ値を算出することができる。
【０１１３】
なお、Ｍ画素×Ｎ画素のマクロブロックの場合は、マクロブロックの各画素の画素値をＡｉｊ（ｉ：整数、１≦ｉ≦Ｍ、ｊ：整数、１≦ｊ≦Ｎ）とすると、アクティビティ値ＡＣＴを、下記（数式２）により算出すればよい。また、アクティビティ値ＡＣＴが所定の範囲となるように、所定の係数による調整処理や、正規化処理を行うようにしてもよい。
【０１１４】
【数２】
2014060666.tif 000004
【０１１５】
なお、アクティビティ値を算出する方法は、マクロブロック内の画像の複雑さを抽出することができる方法であれば、上記以外の方法であってもよい。また、画素値として、マクロブロック内の画素の輝度値や、各色成分の画素値を用いることができる。
【０１１６】
アクティビティ算出部２により算出されたアクティビティ値に関する情報（ＡＣＴ）は、イントラＭＢ決定部３に出力される。
【０１１７】
イントラＭＢ決定部３は、残ピクチャ数取得部１から出力される残ピクチャ数ｒｅｍａｉｎＰｉｃ［０］〜［３］に基づいて、ＭＢＬごとに、以下の（１）〜（３）の処理により、イントラマクロブロックに設定するマクロブロックを決定する。
（１）イントラＭＢ決定部３は、アクティビティ値が小さい順に、ｋ個のマクロブロックをイントラマクロブロックに設定する。なお、ｋは、以下の数式により算出される。
【０１１８】
ｋ＝（ｒｅｍａｉｎＭＢ＋ｒｅｍａｉｎＰｉｃ［ｍｏｄ（ｈ，４）］−１）／ｒｅｍａｉｎＰｉｃ［ｍｏｄ（ｈ，４）］
なお、イントラＭＢ決定部３は、ｒｅｍａｉｎＰｉｃ［ｍｏｄ（ｈ，４）］が「０」である場合、ｒｅｍａｉｎＰｉｃ［ｍｏｄ（ｈ，４）］の値を「３０」（イントラリフレッシュ処理の周期（フレーム数））に設定する。
【０１１９】
また、ｒｅｍａｉｎＭＢは、ＭＢＬにおいて、未だイントラマクロブロックに設定されていないマクロブロックの数である。したがって、ｒｅｍａｉｎＭＢの初期値（イントラリフレッシュ処理が開始されたときの値）は、ＭＢＬに含まれるマクロブロック数であり、１回目のイントラリフレッシュ処理が終了し、２回目のイントラリフレッシュ処理が開始されるときに、ｒｅｍａｉｎＭＢの値は、再度、ＭＢＬに含まれるマクロブロック数に設定される。
（２）イントラＭＢ決定部３は、イントラマクロブロックに設定されたマクロブロックについて、イントラリフレッシュ処理済みフラグを立て、次フレーム以降の処理で、イントラマクロブロックに設定されないようにする。また、イントラＭＢ決定部３は、インター／イントラ判定部により、イントラマクロブロックに設定されたマクロブロックについてもイントラリフレッシュ処理済みフラグを立て、次フレーム以降の処理で、イントラマクロブロックに設定されないようにする。
（３）イントラＭＢ決定部３は、イントラマクロブロックに設定されたマクロブロック数を、残マクロブロック数を示す変数ｒｅｍａｉｎＭＢから減算し、減算した結果をｒｅｍａｉｎＭＢとして保持する。
イントラＭＢ決定部３は、イントラリフレッシュ処理が開始されているＭＢＬについて、上記（１）〜（３）の処理を繰り返すことで、１つのイントラリフレッシュ処理中に、すべてのマクロブロックをイントラマクロブロックに設定する。
【０１２０】
ここで、図５Ａ、図５Ｂ、図５Ｃおよび図５Ｄを用いて、イントラＭＢ決定部３の処理について説明する。
【０１２１】
図５Ａ〜図５Ｄは、１ＭＢＬが１６個のマクロブロックからなり、イントラリフレッシュ処理の周期が４フレームの場合について、イントラリフレッシュ処理を説明するための図である。
【０１２２】
図５Ａは１フレーム目（第１フレーム）の処理の状況を、図５Ｂは２フレーム目（第２フレーム）の処理の状況を、図５Ｃは３フレーム目（第３フレーム）の処理の状況を、図５Ｄは４フレーム目の処理の状況を、それぞれ、模式的に示している。具体的には、図５Ａ〜図５Ｄは、図３の時刻ｔ１から時刻ｔ２までの処理に対応する処理についての状況を模式的に示している。
【０１２３】
また、ｈ＝０のＭＢＬのイントラリフレッシュ処理がリセットされるまでの時間（次のイントラリフレッシュ処理が開始されるまでの時間）を０フレーム、ｈ＝１のＭＢＬのイントラリフレッシュ処理がリセットされるまでの時間（次のイントラリフレッシュ処理が開始されるまでの時間）を１フレーム、ｈ＝２のＭＢＬのイントラリフレッシュ処理がリセットされるまでの時間（次のイントラリフレッシュ処理が開始されるまでの時間）を２フレーム、ｈ＝３のＭＢＬのイントラリフレッシュ処理がリセットされるまでの時間（次のイントラリフレッシュ処理が開始されるまでの時間）を３フレーム、とする。また、イントラリフレッシュ処理の周期は、４フレームに相当する時間であるものとする。
【０１２４】
≪１フレーム目の処理（図５Ａ）≫
図５Ａの１フレーム目の処理では、ｈ＝０のＭＢＬにおいて、ｒｅｍａｉｎＰｉｃ［ｍｏｄ（ｈ，４）］が「０」であるので、ｈ＝０のＭＢＬにおいて、イントラリフレッシュ処理がリセットされ、ｈ＝０のＭＢＬの全マクロブロック（１６個のマクロブロック）がイントラマクロブロックの候補となる。また、ｒｅｍａｉｎＰｉｃ［ｍｏｄ（ｈ，４）］＝４（イントラリフレッシュ処理の周期（フレーム数））は設定されている。そして、イントラＭＢ決定部３は、当該ＭＢＬにおいて、イントラマクロブロックに設定するマクロブロック数ｋを、下記の通り、算出する。なお、以下では、切り捨て処理により、ｋが整数となるように演算を行っている。
【０１２５】
ｋ＝（ｒｅｍａｉｎＭＢ＋ｒｅｍａｉｎＰｉｃ［ｍｏｄ（０，４）］−１）／ｒｅｍａｉｎＰｉｃ［ｍｏｄ（０，４）］
＝ＩＮＴ（（１６＋４−１）／４）＝４
つまり、イントラＭＢ決定部３は、アクティビティ値が小さい方から４個のマクロブロックをイントラマクロブロックに設定する。図５Ａでは、「１．１」と示したマクロブロックが最小のアクティビティ値を有しており、「１．２」と示したマクロブロックが２番目に小さいアクティビティ値を有しており、「１．３」と示したマクロブロックが３番目に小さいアクティビティ値を有しており、「１．４」と示したマクロブロックが４番目に小さいアクティビティ値を有しているものとする。したがって、グレー部分のマクロブロックがイントラマクロブロックに設定される。イントラＭＢ決定部３によりイントラマクロブロックに設定されたマクロブロックの情報は、ＤＥＴ＿ＩｎｔｒａＭＢとして、インター／イントラ判定部４および符号化部５に出力される。
【０１２６】
インター／イントラ判定部４では、イントラＭＢ決定部３から出力されるＤＥＴ＿ＩｎｔｒａＭＢに基づいて、イントラＭＢ決定部３によりイントラマクロブロックに設定されたマクロブロックを除外した残りのマクロブロックについて、それぞれ、符号化コストを算出し、イントラマクロブロックに設定するか否かの判定を行う。そして、インター／イントラ判定部４は、イントラマクロブロックに設定したマクロブロックについての情報をＤＥＴ２＿ＩｎｔｒａＭＢとして、イントラＭＢ決定部３および符号化部５に出力する。
【０１２７】
イントラＭＢ決定部３では、ＤＥＴ２＿ＩｎｔｒａＭＢに基づいて、イントラマクロブロックに設定されたマクロブロックについても、次のフレーム以降で、イントラマクロブロックに設定されないように、イントラリフレッシュ処理済みフラグを立てる。
【０１２８】
図５Ａでは、ｈ＝０のＭＢＬにおいて、ハッチングを付した２つのマクロブロックがインター／イントラ判定部４によりイントラマクロブロックに設定されたマクロブロックである。したがって、イントラＭＢ決定部３は、ｈ＝０のＭＢＬにおいて、１．１〜１．４の４個のマクロブロックと、インター／イントラ判定部によりイントラマクロブロックに設定されたハッチングを付した２個のマクロブロックとの合計６個のマクロブロックについて、イントラリフレッシュ処理済みフラグを立て、次のフレーム以降の処理で、イントラマクロブロックに設定されないようにする。図５Ａ〜図５Ｄでは、イントラリフレッシュ処理済みフラグを立てられたマクロブロックを黒で塗りつぶしている。
【０１２９】
ｈ＝１のＭＢＬにおいて、ｒｅｍａｉｎＰｉｃ［ｍｏｄ（ｈ，４）］が「１」であり、未だイントラマクロブロックに設定されていないマクロブロック数は、「４」（ｒｅｍａｉｎＭＢ＝４）である。イントラＭＢ決定部３は、当該ＭＢＬにおいて、イントラマクロブロックに設定するマクロブロック数ｋを、下記の通り、算出する。
【０１３０】
ｋ＝（ｒｅｍａｉｎＭＢ＋ｒｅｍａｉｎＰｉｃ［ｍｏｄ（１，４）］−１）／ｒｅｍａｉｎＰｉｃ［ｍｏｄ（１，４）］
＝ＩＮＴ（（４＋１−１）／１）＝４
つまり、イントラＭＢ決定部３は、アクティビティ値が小さい方から４個のマクロブロックをイントラマクロブロックに設定する。図５Ａでは、「４．１」と示したマクロブロックが最小のアクティビティ値を有しており、「４．２」と示したマクロブロックが２番目に小さいアクティビティ値を有しており、「４．３」と示したマクロブロックが３番目に小さいアクティビティ値を有しており、「４．４」と示したマクロブロックが４番目に小さいアクティビティ値を有しているものとする。したがって、グレー部分のマクロブロックがイントラマクロブロックに設定される。イントラＭＢ決定部３によりイントラマクロブロックに設定されたマクロブロックの情報は、ＤＥＴ＿ＩｎｔｒａＭＢとして、インター／イントラ判定部４および符号化部５に出力される。
【０１３１】
インター／イントラ判定部４では、イントラＭＢ決定部３から出力されるＤＥＴ＿ＩｎｔｒａＭＢに基づいて、イントラＭＢ決定部３によりイントラマクロブロックに設定されたマクロブロックを除外した残りのマクロブロックについて、それぞれ、符号化コストを算出し、イントラマクロブロックに設定するか否かの判定を行う。そして、インター／イントラ判定部４は、イントラマクロブロックに設定したマクロブロックについての情報をＤＥＴ２＿ＩｎｔｒａＭＢとして、イントラＭＢ決定部３および符号化部５に出力する。
【０１３２】
イントラＭＢ決定部３では、ＤＥＴ２＿ＩｎｔｒａＭＢに基づいて、イントラマクロブロックに設定されたマクロブロックについても、次のフレーム以降で、イントラマクロブロックに設定されないように、イントラリフレッシュ処理済みフラグを立てる。
【０１３３】
図５Ａでは、ｈ＝１のＭＢＬにおいて、イントラＭＢ決定部３は、４．１〜４．４の４個のマクロブロックについて、イントラリフレッシュ処理済みフラグを立てる。
【０１３４】
ｈ＝２のＭＢＬにおいて、ｒｅｍａｉｎＰｉｃ［ｍｏｄ（ｈ，４）］が「２」であり、未だイントラマクロブロックに設定されていないマクロブロック数は、「８」（ｒｅｍａｉｎＭＢ＝８）である。イントラＭＢ決定部３は、当該ＭＢＬにおいて、イントラマクロブロックに設定するマクロブロック数ｋを、下記の通り、算出する。
【０１３５】
ｋ＝（ｒｅｍａｉｎＭＢ＋ｒｅｍａｉｎＰｉｃ［ｍｏｄ（２，４）］−１）／ｒｅｍａｉｎＰｉｃ［ｍｏｄ（２，４）］
＝ＩＮＴ（（８＋２−１）／２）＝４
つまり、イントラＭＢ決定部３は、アクティビティ値が小さい方から４個のマクロブロックをイントラマクロブロックに設定する。図５Ａでは、「３．１」と示したマクロブロックが最小のアクティビティ値を有しており、「３．２」と示したマクロブロックが２番目に小さいアクティビティ値を有しており、「３．３」と示したマクロブロックが３番目に小さいアクティビティ値を有しており、「３．４」と示したマクロブロックが４番目に小さいアクティビティ値を有しているものとする。したがって、グレー部分のマクロブロックがイントラマクロブロックに設定される。イントラＭＢ決定部３によりイントラマクロブロックに設定されたマクロブロックの情報は、ＤＥＴ＿ＩｎｔｒａＭＢとして、インター／イントラ判定部４および符号化部５に出力される。
【０１３６】
インター／イントラ判定部４では、イントラＭＢ決定部３から出力されるＤＥＴ＿ＩｎｔｒａＭＢに基づいて、イントラＭＢ決定部３によりイントラマクロブロックに設定されたマクロブロックを除外した残りのマクロブロックについて、それぞれ、符号化コストを算出し、イントラマクロブロックに設定するか否かの判定を行う。そして、インター／イントラ判定部４は、イントラマクロブロックに設定したマクロブロックについての情報をＤＥＴ２＿ＩｎｔｒａＭＢとして、イントラＭＢ決定部３および符号化部５に出力する。
【０１３７】
イントラＭＢ決定部３では、ＤＥＴ２＿ＩｎｔｒａＭＢに基づいて、イントラマクロブロックに設定されたマクロブロックについても、次のフレーム以降で、イントラマクロブロックに設定されないように、イントラリフレッシュ処理済みフラグを立てる。
【０１３８】
図５Ａでは、ｈ＝２のＭＢＬにおいて、ハッチングを付した１つのマクロブロックがインター／イントラ判定部４によりイントラマクロブロックに設定されたマクロブロックである。したがって、イントラＭＢ決定部３は、ｈ＝２のＭＢＬにおいて、３．１〜３．４の４個のマクロブロックと、インター／イントラ判定部によりイントラマクロブロックに設定されたハッチングを付した１個のマクロブロックとの合計５個のマクロブロックについて、イントラリフレッシュ処理済みフラグを立て、次のフレーム以降の処理で、イントラマクロブロックに設定されないようにする。
【０１３９】
ｈ＝３のＭＢＬにおいて、ｒｅｍａｉｎＰｉｃ［ｍｏｄ（ｈ，４）］が「３」であり、未だイントラマクロブロックに設定されていないマクロブロック数は、「１２」（ｒｅｍａｉｎＭＢ＝１２）である。イントラＭＢ決定部３は、当該ＭＢＬにおいて、イントラマクロブロックに設定するマクロブロック数ｋを、下記の通り、算出する。
【０１４０】
ｋ＝（ｒｅｍａｉｎＭＢ＋ｒｅｍａｉｎＰｉｃ［ｍｏｄ（３，４）］−１）／ｒｅｍａｉｎＰｉｃ［ｍｏｄ（３，４）］
＝ＩＮＴ（（１２＋３−１）／３）＝４
つまり、イントラＭＢ決定部３は、アクティビティ値が小さい方から４個のマクロブロックをイントラマクロブロックに設定する。図５Ａでは、「２．１」と示したマクロブロックが最小のアクティビティ値を有しており、「２．２」と示したマクロブロックが２番目に小さいアクティビティ値を有しており、「２．３」と示したマクロブロックが３番目に小さいアクティビティ値を有しており、「２．４」と示したマクロブロックが４番目に小さいアクティビティ値を有しているものとする。したがって、グレー部分のマクロブロックがイントラマクロブロックに設定される。イントラＭＢ決定部３によりイントラマクロブロックに設定されたマクロブロックの情報は、ＤＥＴ＿ＩｎｔｒａＭＢとして、インター／イントラ判定部４および符号化部５に出力される。
【０１４１】
インター／イントラ判定部４では、イントラＭＢ決定部３から出力されるＤＥＴ＿ＩｎｔｒａＭＢに基づいて、イントラＭＢ決定部３によりイントラマクロブロックに設定されたマクロブロックを除外した残りのマクロブロックについて、それぞれ、符号化コストを算出し、イントラマクロブロックに設定するか否かの判定を行う。そして、インター／イントラ判定部４は、イントラマクロブロックに設定したマクロブロックについての情報をＤＥＴ２＿ＩｎｔｒａＭＢとして、イントラＭＢ決定部３および符号化部５に出力する。
【０１４２】
イントラＭＢ決定部３では、ＤＥＴ２＿ＩｎｔｒａＭＢに基づいて、イントラマクロブロックに設定されたマクロブロックについても、次のフレーム以降で、イントラマクロブロックに設定されないように、イントラリフレッシュ処理済みフラグを立てる。
【０１４３】
図５Ａでは、ｈ＝３のＭＢＬにおいて、ハッチングを付した２つのマクロブロックがインター／イントラ判定部４によりイントラマクロブロックに設定されたマクロブロックである。したがって、イントラＭＢ決定部３は、ｈ＝３のＭＢＬにおいて、２．１〜２．４の４個のマクロブロックと、インター／イントラ判定部によりイントラマクロブロックに設定されたハッチングを付した２個のマクロブロックとの合計６個のマクロブロックについて、イントラリフレッシュ処理済みフラグを立て、次のフレーム以降の処理で、イントラマクロブロックに設定されないようにする。
【０１４４】
≪２フレーム目の処理（図５Ｂ）≫
図５Ｂの２フレーム目の処理では、ｈ＝０のＭＢＬにおいて、
【０１４５】
ｒｅｍａｉｎＰｉｃ［ｍｏｄ（ｈ，４）］＝３
ｒｅｍａｉｎＭＢ＝１０
であるので、イントラＭＢ決定部は、当該ＭＢＬにおいて、イントラマクロブロックに設定するマクロブロック数ｋを、下記の通り、算出する。
【０１４６】
ｋ＝（ｒｅｍａｉｎＭＢ＋ｒｅｍａｉｎＰｉｃ［ｍｏｄ（０，４）］−１）／ｒｅｍａｉｎＰｉｃ［ｍｏｄ（０，４）］
＝ＩＮＴ（（１０＋３−１）／３）＝４
つまり、イントラＭＢ決定部３は、アクティビティ値が小さい方から４個のマクロブロックをイントラマクロブロックに設定する。図５Ｂでは、「２．１」と示したマクロブロックが最小のアクティビティ値を有しており、「２．２」と示したマクロブロックが２番目に小さいアクティビティ値を有しており、「２．３」と示したマクロブロックが３番目に小さいアクティビティ値を有しており、「２．４」と示したマクロブロックが４番目に小さいアクティビティ値を有しているものとする。したがって、イントラＭＢ決定部３は、グレー部分のマクロブロックをイントラマクロブロックに設定する。イントラＭＢ決定部３によりイントラマクロブロックに設定されたマクロブロックの情報は、ＤＥＴ＿ＩｎｔｒａＭＢとして、インター／イントラ判定部４および符号化部５に出力される。
【０１４７】
インター／イントラ判定部４では、イントラＭＢ決定部３から出力されるＤＥＴ＿ＩｎｔｒａＭＢに基づいて、イントラＭＢ決定部３によりイントラマクロブロックに設定されたマクロブロックを除外した残りのマクロブロックについて、それぞれ、符号化コストを算出し、イントラマクロブロックに設定するか否かの判定を行う。そして、インター／イントラ判定部４は、イントラマクロブロックに設定したマクロブロックについての情報をＤＥＴ２＿ＩｎｔｒａＭＢとして、イントラＭＢ決定部３および符号化部５に出力する。
【０１４８】
イントラＭＢ決定部３では、ＤＥＴ２＿ＩｎｔｒａＭＢに基づいて、イントラマクロブロックに設定されたマクロブロックについても、次のフレーム以降で、イントラマクロブロックに設定されないように、イントラリフレッシュ処理済みフラグを立てる。
図５Ｂでは、ｈ＝０のＭＢＬにおいて、ハッチングを付した１つのマクロブロックがインター／イントラ判定部４によりイントラマクロブロックに設定されたマクロブロックである。したがって、イントラＭＢ決定部３は、ｈ＝０のＭＢＬにおいて、２．１〜２．４の４個のマクロブロックと、インター／イントラ判定部によりイントラマクロブロックに設定されたハッチングを付した１個のマクロブロックとの合計５個のマクロブロックについて、イントラリフレッシュ処理済みフラグを立て、次のフレーム以降の処理で、イントラマクロブロックに設定されないようにする。これにより、ｈ＝０のＭＢＬについて、イントラマクロブロックに設定されていないマクロブロック数ｒｅｍａｉｎＭＢは、
ｒｅｍａｉｎＭＢ＝１０−５＝５
により、５個となる。
図５Ｂの２フレーム目の処理において、ｈ＝１のＭＢＬでは、
【０１４９】
ｒｅｍａｉｎＰｉｃ［ｍｏｄ（ｈ，４）］＝０
であるので、イントラリフレッシュ処理がリセットされ、
【０１５０】
ｒｅｍａｉｎＰｉｃ［ｍｏｄ（ｈ，４）］＝４
に設定される。
また、ｈ＝１のＭＢＬの全マクロブロックがイントラマクロブロックの候補に設定される。つまり、
ｒｅｍａｉｎＭＢ＝１６
に設定される。
イントラＭＢ決定部は、当該ＭＢＬにおいて、イントラマクロブロックに設定するマクロブロック数ｋを、下記の通り、算出する。
【０１５１】
ｋ＝（ｒｅｍａｉｎＭＢ＋ｒｅｍａｉｎＰｉｃ［ｍｏｄ（１，４）］−１）／ｒｅｍａｉｎＰｉｃ［ｍｏｄ（１，４）］
＝ＩＮＴ（（１６＋４−１）／４）＝４
つまり、イントラＭＢ決定部３は、アクティビティ値が小さい方から４個のマクロブロックをイントラマクロブロックに設定する。図５Ｂでは、「１．１」と示したマクロブロックが最小のアクティビティ値を有しており、「１．２」と示したマクロブロックが２番目に小さいアクティビティ値を有しており、「１．３」と示したマクロブロックが３番目に小さいアクティビティ値を有しており、「１．４」と示したマクロブロックが４番目に小さいアクティビティ値を有しているものとする。したがって、イントラＭＢ決定部３は、グレー部分のマクロブロックをイントラマクロブロックに設定する。イントラＭＢ決定部３によりイントラマクロブロックに設定されたマクロブロックの情報は、ＤＥＴ＿ＩｎｔｒａＭＢとして、インター／イントラ判定部４および符号化部５に出力される。
【０１５２】
インター／イントラ判定部４では、イントラＭＢ決定部３から出力されるＤＥＴ＿ＩｎｔｒａＭＢに基づいて、イントラＭＢ決定部３によりイントラマクロブロックに設定されたマクロブロックを除外した残りのマクロブロックについて、それぞれ、符号化コストを算出し、イントラマクロブロックに設定するか否かの判定を行う。そして、インター／イントラ判定部４は、イントラマクロブロックに設定したマクロブロックについての情報をＤＥＴ２＿ＩｎｔｒａＭＢとして、イントラＭＢ決定部３および符号化部５に出力する。
【０１５３】
イントラＭＢ決定部３では、ＤＥＴ２＿ＩｎｔｒａＭＢに基づいて、イントラマクロブロックに設定されたマクロブロックについても、次のフレーム以降で、イントラマクロブロックに設定されないように、イントラリフレッシュ処理済みフラグを立てる。
図５Ｂでは、ｈ＝１のＭＢＬにおいて、ハッチングを付した２つのマクロブロックがインター／イントラ判定部４によりイントラマクロブロックに設定されたマクロブロックである。したがって、イントラＭＢ決定部３は、ｈ＝１のＭＢＬにおいて、１．１〜１．４の４個のマクロブロックと、インター／イントラ判定部によりイントラマクロブロックに設定されたハッチングを付した２個のマクロブロックとの合計６個のマクロブロックについて、イントラリフレッシュ処理済みフラグを立て、次のフレーム以降の処理で、イントラマクロブロックに設定されないようにする。これにより、ｈ＝１のＭＢＬについて、イントラマクロブロックに設定されていないマクロブロック数ｒｅｍａｉｎＭＢは、
ｒｅｍａｉｎＭＢ＝１６−６＝６
により、６個となる。
図５Ｂの２フレーム目の処理では、ｈ＝３のＭＢＬにおいて、
【０１５４】
ｒｅｍａｉｎＰｉｃ［ｍｏｄ（ｈ，４）］＝２
ｒｅｍａｉｎＭＢ＝６
であるので、イントラＭＢ決定部は、当該ＭＢＬにおいて、イントラマクロブロックに設定するマクロブロック数ｋを、下記の通り、算出する。
【０１５５】
ｋ＝（ｒｅｍａｉｎＭＢ＋ｒｅｍａｉｎＰｉｃ［ｍｏｄ（３，４）］−１）／ｒｅｍａｉｎＰｉｃ［ｍｏｄ（３，４）］
＝ＩＮＴ（（６＋２−１）／２）＝３
つまり、イントラＭＢ決定部３は、アクティビティ値が小さい方から３個のマクロブロックをイントラマクロブロックに設定する。図５Ｂでは、「３．１」と示したマクロブロックが最小のアクティビティ値を有しており、「３．２」と示したマクロブロックが２番目に小さいアクティビティ値を有しており、「３．３」と示したマクロブロックが３番目に小さいアクティビティ値を有しているものとする。したがって、イントラＭＢ決定部３は、グレー部分のマクロブロックをイントラマクロブロックに設定する。イントラＭＢ決定部３によりイントラマクロブロックに設定されたマクロブロックの情報は、ＤＥＴ＿ＩｎｔｒａＭＢとして、インター／イントラ判定部４および符号化部５に出力される。
【０１５６】
インター／イントラ判定部４では、イントラＭＢ決定部３から出力されるＤＥＴ＿ＩｎｔｒａＭＢに基づいて、イントラＭＢ決定部３によりイントラマクロブロックに設定されたマクロブロックを除外した残りのマクロブロックについて、それぞれ、符号化コストを算出し、イントラマクロブロックに設定するか否かの判定を行う。そして、インター／イントラ判定部４は、イントラマクロブロックに設定したマクロブロックについての情報をＤＥＴ２＿ＩｎｔｒａＭＢとして、イントラＭＢ決定部３および符号化部５に出力する。
【０１５７】
イントラＭＢ決定部３では、ＤＥＴ２＿ＩｎｔｒａＭＢに基づいて、イントラマクロブロックに設定されたマクロブロックについても、次のフレーム以降で、イントラマクロブロックに設定されないように、イントラリフレッシュ処理済みフラグを立てる。
図５Ｂでは、ｈ＝３のＭＢＬにおいて、ハッチングを付した１つのマクロブロックがインター／イントラ判定部４によりイントラマクロブロックに設定されたマクロブロックである。したがって、イントラＭＢ決定部３は、ｈ＝３のＭＢＬにおいて、３．１〜３．３の３個のマクロブロックと、インター／イントラ判定部によりイントラマクロブロックに設定されたハッチングを付した１個のマクロブロックとの合計４個のマクロブロックについて、イントラリフレッシュ処理済みフラグを立て、次のフレーム以降の処理で、イントラマクロブロックに設定されないようにする。これにより、ｈ＝３のＭＢＬについて、イントラマクロブロックに設定されていないマクロブロック数ｒｅｍａｉｎＭＢは、
ｒｅｍａｉｎＭＢ＝６−４＝２
により、２個となる。
【０１５８】
≪３フレーム目の処理（図５Ｃ）≫
図５Ｃの３フレーム目の処理では、ｈ＝０のＭＢＬにおいて、
【０１５９】
ｒｅｍａｉｎＰｉｃ［ｍｏｄ（ｈ，４）］＝２
ｒｅｍａｉｎＭＢ＝５
であるので、イントラＭＢ決定部は、当該ＭＢＬにおいて、イントラマクロブロックに設定するマクロブロック数ｋを、下記の通り、算出する。
【０１６０】
ｋ＝（ｒｅｍａｉｎＭＢ＋ｒｅｍａｉｎＰｉｃ［ｍｏｄ（０，４）］−１）／ｒｅｍａｉｎＰｉｃ［ｍｏｄ（０，４）］
＝ＩＮＴ（（５＋２−１）／２）＝３
つまり、イントラＭＢ決定部３は、アクティビティ値が小さい方から３個のマクロブロックをイントラマクロブロックに設定する。図５Ｃでは、「３．１」と示したマクロブロックが最小のアクティビティ値を有しており、「３．２」と示したマクロブロックが２番目に小さいアクティビティ値を有しており、「３．３」と示したマクロブロックが３番目に小さいアクティビティ値を有しているものとする。したがって、イントラＭＢ決定部３は、グレー部分のマクロブロックをイントラマクロブロックに設定する。イントラＭＢ決定部３によりイントラマクロブロックに設定されたマクロブロックの情報は、ＤＥＴ＿ＩｎｔｒａＭＢとして、インター／イントラ判定部４および符号化部５に出力される。
【０１６１】
インター／イントラ判定部４では、イントラＭＢ決定部３から出力されるＤＥＴ＿ＩｎｔｒａＭＢに基づいて、イントラＭＢ決定部３によりイントラマクロブロックに設定されたマクロブロックを除外した残りのマクロブロックについて、それぞれ、符号化コストを算出し、イントラマクロブロックに設定するか否かの判定を行う。そして、インター／イントラ判定部４は、イントラマクロブロックに設定したマクロブロックについての情報をＤＥＴ２＿ＩｎｔｒａＭＢとして、イントラＭＢ決定部３および符号化部５に出力する。
【０１６２】
イントラＭＢ決定部３では、ＤＥＴ２＿ＩｎｔｒａＭＢに基づいて、イントラマクロブロックに設定されたマクロブロックについても、次のフレーム以降で、イントラマクロブロックに設定されないように、イントラリフレッシュ処理済みフラグを立てる。
図５Ｃでは、ハッチングを付した１つのマクロブロックがインター／イントラ判定部４によりイントラマクロブロックに設定されたマクロブロックである。したがって、イントラＭＢ決定部３は、３．１〜３．３の３個のマクロブロックと、インター／イントラ判定部によりイントラマクロブロックに設定されたハッチングを付した１個のマクロブロックとの合計４個のマクロブロックについて、イントラリフレッシュ処理済みフラグを立て、次のフレーム以降の処理で、イントラマクロブロックに設定されないようにする。これにより、ｈ＝０のＭＢＬについて、イントラマクロブロックに設定されていないマクロブロック数ｒｅｍａｉｎＭＢは、
ｒｅｍａｉｎＭＢ＝５−４＝１
により、１個となる。
図５Ｃの３フレーム目の処理において、ｈ＝１のＭＢＬでは、２フレーム目のｈ＝０についての処理と同様の処理が実行される。
【０１６３】
図５Ｃの３フレーム目の処理において、ｈ＝２のＭＢＬでは、１フレーム目のｈ＝０についての処理と同様の処理が実行される。
【０１６４】
図５Ｃの３フレーム目の処理において、ｈ＝３のＭＢＬでは、２フレーム目のｈ＝２の処理と同様の処理が実行される。
【０１６５】
≪４フレーム目の処理（図５Ｄ）≫
図５Ｄの４フレーム目の処理では、ｈ＝０のＭＢＬにおいて、
【０１６６】
ｒｅｍａｉｎＰｉｃ［ｍｏｄ（ｈ，４）］＝１
ｒｅｍａｉｎＭＢ＝１
であるので、イントラＭＢ決定部は、当該ＭＢＬにおいて、イントラマクロブロックに設定するマクロブロック数ｋを、下記の通り、算出する。
【０１６７】
ｋ＝（ｒｅｍａｉｎＭＢ＋ｒｅｍａｉｎＰｉｃ［ｍｏｄ（０，４）］−１）／ｒｅｍａｉｎＰｉｃ［ｍｏｄ（０，４）］
＝ＩＮＴ（（１＋１−１）／１）＝１
つまり、イントラＭＢ決定部３は、アクティビティ値が小さい方から１個のマクロブロックをイントラマクロブロックに設定する。図５（ｃ）では、「４．１」と示したマクロブロックがイントラマクロブロックに設定される。イントラＭＢ決定部３によりイントラマクロブロックに設定されたマクロブロックの情報は、ＤＥＴ＿ＩｎｔｒａＭＢとして、インター／イントラ判定部４および符号化部５に出力される。
【０１６８】
これにより、イントラリフレッシュ処理の周期である４フレームにおいて、ｈ＝０のＭＢＬのすべてのマクロブロックがイントラマクロブロックに設定されることになる。
【０１６９】
図５Ｄの４フレーム目の処理において、ｈ＝１のＭＢＬでは、３フレーム目のｈ＝０についての処理と同様の処理が実行される。
【０１７０】
図５Ｄの４フレーム目の処理において、ｈ＝２のＭＢＬでは、２フレーム目のｈ＝０についての処理と同様の処理が実行される。
【０１７１】
図５Ｄの４フレーム目の処理において、ｈ＝３のＭＢＬでは、１フレーム目のｈ＝０についての処理と同様の処理が実行される。
【０１７２】
上記の処理が繰り返されることにより、ｈ＝０のＭＢＬに対するイントラリフレッシュ処理と、ｈ＝１のＭＢＬに対するイントラリフレッシュ処理と、ｈ＝２のＭＢＬに対するイントラリフレッシュ処理と、ｈ＝３のＭＢＬに対するイントラリフレッシュ処理と、が所定の時間（上記では１フレーム）ずつ遅延して実行されることになる。これにより、特定のフレームで、イントラマクロブロックの数が多くなることを効果的に抑制することができる。
【０１７３】
以上のような処理が、イントラＭＢ決定部３で実行され、イントラＭＢ決定部３によりイントラマクロブロックに設定されたマクロブロックの情報ＤＥＴ＿ＩｎｔｒａＭＢが、インター／イントラ判定部４および符号化部５に出力される。
【０１７４】
インター／イントラ判定部４では、図５を用いて説明したように、イントラＭＢ決定部３によりイントラマクロブロックに設定されたマクロブロックの情報ＤＥＴ＿ＩｎｔｒａＭＢに基づいて、イントラＭＢ決定部３によりイントラマクロブロックに設定されなかったマクロブロックについて、判定処理が実行される。具体的には、インター／イントラ判定部４は、イントラＭＢ決定部３によりイントラマクロブロックに設定されなかったマクロブロックについて、符号化部５から出力される動き補償後の動画像信号ＭＥ＿ｏｕｔに基づいて符号化コストを算出し、算出した符号化コストに基づいて、当該マクロブロックを、イントラマクロブロックに設定するか否かを決定する。そして、インター／イントラ判定部４は、マクロブロックごとに決定した、イントラマクロブロックに設定するか否かの情報（ＤＥＴ２＿ＩｎｔｒａＭＢ）をイントラＭＢ決定部３および符号化部５に出力する。なお、符号化コストの算出については、例えば、Ｈ．２６４等で採用されている符号化コストの算出方法により実行すればよい。
【０１７５】
符号化部５では、イントラＭＢ決定部３によるイントラマクロブロックの設定情報（ＤＥＴ＿ＩｎｔｒａＭＢ）およびインター／イントラ判定部４によるイントラマクロブロックの設定情報（ＤＥＴ２＿ＩｎｔｒａＭＢ）に基づいて、動画像信号Ｄｉｎにより形成される各フレーム画像（各ピクチャ）の各マクロブロックに対して、イントラ符号化処理またはインター符号化処理が実行される。具体的には、符号化部５は、イントラマクロブロックの設定情報ＤＥＴ＿ＩｎｔｒａＭＢまたはＤＥＴ２＿ＩｎｔｒａＭＢによりイントラマクロブロックに設定されているマクロブロックについては、イントラ符号化処理を行い、それ以外のマクロブロックについては、インター符号化処理を行う。
【０１７６】
符号化部５により符号化処理が実行された後の信号は、動画像符号化信号Ｄｏｕｔとして符号化部５から出力される。
【０１７７】
以上のように、動画像符号化装置１０００では、複数のＭＢＬを１つのグループとし、そのグループ内のＭＢＬごとに、イントラリフレッシュ処理の開始タイミング（リセットタイミング）および処理タイミングがそれぞれ一致しないように遅延させながら、イントラリフレッシュ処理が実行される。また、動画像符号化装置１０００では、アクティビティ値が小さいマクロブロックから順番にイントラマクロブロックに設定されてイントラリフレッシュ処理が実行され、かつ、イントラリフレッシュ処理の１周期内に必ずすべてのマクロブロックがイントラマクロブロックに設定されるように制御される。したがって、動画像符号化装置１０００では、特定のフレームにイントラマクロブロックが集中し、符号量が増加することや、特定のフレームにおいて、アクティビティ値の大きいマクロブロックが数多く設定され、符号量が増加することを、効果的に抑制することができる。その結果、特定のフレームにおいて、イントラマクロブロックを粗く量子化する必要性も生じにくい。つまり、動画像符号化装置１０００では、１フレーム当たりのイントラマクロブロックの符号量のばらつきを抑制した動画像符号化処理を実行することができるので、動画像符号化装置１０００により符号化された動画像符号化信号を復号して取得される復号画像（映像）の画質は、良質なものとなる。
【０１７８】
図７は、（１）動画像符号化装置１０００により符号化したデータ（動画像符号化信号）のビットレート、つまり、ＭＢＬごとにイントラリフレッシュ処理の開始時刻（リセットタイミング）をずらして（遅延させて）イントラリフレッシュ処理を実行して取得したデータ（動画像符号化信号）のビットレート（白の菱形で示したデータ）と、（２）ＭＢＬごとにイントラリフレッシュ処理の開始時刻（リセットタイミング）をずらさずに（遅延させずに）イントラリフレッシュ処理を実行して取得した符号化データ（動画像符号化信号）のビットレート（黒の正方形で示したデータ）との比較結果を示す図である。図７において、横軸は時間軸であり、フレーム番号で時間を示している。また、図７において、縦軸は、ビットレートであり、単位はＭｂｐｓである。なお、入力動画像信号は、フレームサイズが１９２０画素×１０８０画素であり、フレームレートが３０ｆｐｓであり、イントラリフレッシュ処理の周期が３０フレームである。また、入力動画像信号により形成される映像は、全体的に複雑な映像であり、前半は動きが少なく、後半は画面がパンするため動きのある映像である。
【０１７９】
図７から分かるように、映像の後半においては、（１）動画像符号化装置１０００により符号化したデータ（動画像符号化信号）のビットレート（遅延ありのイントラリフレッシュ処理によるデータ）と、（２）ＭＢＬごとにイントラリフレッシュ処理の開始時刻をずらさずに（遅延させずに）イントラリフレッシュ処理を実行して取得した符号化データ（動画像符号化信号）のビットレート（遅延なしのイントラリフレッシュ処理によるデータ）との差異は、あまりない。
【０１８０】
一方、映像の前半、特に、４０フレーム目あたりから１６０フレームあたりにおいて、（１）動画像符号化装置１０００により符号化したデータ（動画像符号化信号）のビットレート（遅延ありのイントラリフレッシュ処理によるデータ）のばらつきは、小さく、（２）ＭＢＬごとにイントラリフレッシュ処理の開始時刻をずらさずに（遅延させずに）イントラリフレッシュ処理を実行して取得した符号化データ（動画像符号化信号）のビットレート（遅延なしのイントラリフレッシュ処理によるデータ）に比べて、効率良く符号化されていることが分かる。また、遅延なしのイントラリフレッシュ処理によるデータでは、イントラリフレッシュ処理の周期である３０フレームごとに、ビットレート値のピークが存在するが、動画像符号化装置１０００により符号化したデータ（動画像符号化信号）のビットレート（遅延ありのイントラリフレッシュ処理によるデータ）では、イントラリフレッシュ処理の周期である３０フレームごとに、ビットレート値のピークは存在せず、フレームごとのビットレートの変動が少ないことが分かる。
【０１８１】
このように、動画像符号化装置１０００では、イントラリフレッシュ処理をＭＢＬごとに遅延させて（タイミングをずらして）行うので、フレームごとのビットレートの変動を適切に抑制することができることが分かる。特に、動きの少ない複雑な映像において、その効果が高い。
【０１８２】
＜１．３：イントラリフレッシュ方法＞
次に、本実施形態のイントラリフレッシュ方法について、図６のフローチャートを用いて説明する。なお、下記処理は、動画像符号化装置１０００により実行されるものであってもよいし、ＣＰＵ、ＲＯＭ、ＲＡＭを用いて実行されるものであってもよい。
【０１８３】
（Ｓ１）：
ステップＳ１にて、ＭＢＬのライン番号ｈごとに（ＭＢＬごとに）、イントラリフレッシュ処理の開始ピクチャを決定する。具体的には、下記数式により、ＭＢＬごとのイントラリフレッシュ処理の開始時刻（イントラリフレッシュ処理がリセットされる時刻）までの遅延時間を残ピクチャ数として取得する。
【０１８４】
ｒｅｍａｉｎＰｉｃ［ｍｏｄ（ｈ，Ｎ）］
＝ＩｎｔｒａＲｅｆｒｅｓｈＣｙｃｌｅ／Ｎ×ｍｏｄ（ｈ，Ｎ）
ｍｏｄ（ｈ，ｘ）：法ｘによる剰余を取得する関数。
【０１８５】
ＩｎｔｒａＲｅｆｒｅｓｈＣｙｃｌｅ：イントラリフレッシュ処理の周期（フレーム数）
Ｎ：１グループ内のＭＢＬ数
ｈ：ＭＢＬのライン番号
【０１８６】
なお、整数演算を行うため、上記数式に相当する処理において、切り捨て処理または四捨五入処理を行うようにするのが好ましい。
【０１８７】
（Ｓ２）：
ステップＳ２にて、ＭＢＬのライン番号ｈごとに（ＭＢＬごとに）設定されたイントラリフレッシュ処理の開始時刻（リセットタイミング）までの遅延時間を示す残ピクチャ数を監視し、残ピクチャ数が「０」である場合は、処理をステップＳ３に進める。一方、残ピクチャ数が「０」でない場合は、処理をステップＳ４に進める。
【０１８８】
（Ｓ４）：
ステップＳ２において、残ピクチャ数が「０」である場合、ステップＳ４では、残ピクチャ数ｒｅｍａｉｎＰｉｃ［ｍｏｄ（ｈ，Ｎ）］をイントラリフレッシュ処理の周期に相当するフレーム数に設定する。
【０１８９】
（Ｓ４）：
ステップＳ４にて、イントラリフレッシュ処理が実行される。具体的には、上記で図３、図４、図５Ａ〜図５Ｄを用いて説明したのと同様に、ＭＢＬごとに、イントラリフレッシュ処理済みフラグの立っていないマクロブロックの中で、アクティビティ値の小さい方からｋ個のマクロブロックをイントラマクロブロックに設定する。なお、ｋは、以下の数式により算出される。
【０１９０】
ｋ＝（ｒｅｍａｉｎＭＢ＋ｒｅｍａｉｎＰｉｃ［ｍｏｄ（ｈ，Ｎ）］−１）／ｒｅｍａｉｎＰｉｃ［ｍｏｄ（ｈ，Ｎ）］
イントラマクロブロックに設定されたｋ個のマクロブロックについては、次フレーム以降でイントラマクロブロックに設定されないように、イントラリフレッシュ処理済みフラグを立てる。
【０１９１】
さらに、上記処理でイントラマクロブロックに設定されなかったマクロブロックについて、Ｈ．２６４等で採用されている符号化コスト計算を行い、イントラマクロブロックに設定されたマクロブロックについても、次フレーム以降でイントラマクロブロックに設定されないように、イントラリフレッシュ処理済みフラグを立てる。
【０１９２】
以上の処理を１フレームに対して行う。
【０１９３】
（Ｓ５）：
ステップＳ５にて、残ピクチャ数ｒｅｍａｉｎＰｉｃ［ｍｏｄ（ｈ，Ｎ）］を１だけデクリメントする。
【０１９４】
（Ｓ６）：
ステップＳ６にて、イントラリフレッシュ処理をすべきデータがあるか否かの判定を行う。イントラリフレッシュ処理をすべきデータがある場合、処理をステップＳ２に戻し、ステップＳ２以降の処理を続ける。一方、イントラリフレッシュ処理をすべきデータがない場合、処理を終了させる。
【０１９５】
以上のように、本実施形態のイントラリフレッシュ方法では、複数のＭＢＬを１つのグループとし、そのグループ内のＭＢＬごとに、イントラリフレッシュ処理の開始タイミング（リセットタイミング）および処理タイミングがそれぞれ一致しないように遅延させながら、イントラリフレッシュ処理が実行される。また、本実施形態のイントラリフレッシュ方法では、アクティビティ値が小さいマクロブロックから順番にイントラマクロブロックに設定されてイントラリフレッシュ処理が実行され、かつ、イントラリフレッシュ処理の１周期内に必ずすべてのマクロブロックがイントラマクロブロックに設定されるように制御される。したがって、本実施形態のイントラリフレッシュ方法では、特定のフレームにイントラマクロブロックが集中し、符号量が増加することや、特定のフレームにおいて、アクティビティ値の大きいマクロブロックが数多く設定され、符号量が増加することを、効果的に抑制することができる。その結果、本実施形態のイントラリフレッシュ方法を用いることで、１フレーム当たりのイントラマクロブロックの符号量のばらつきを抑制した動画像符号化処理を実行することができる。
【０１９６】
［他の実施形態］
上記実施形態では、イントラリフレッシュ処理の周期が３０フレームである場合について説明したが、これに限定されることはなく、イントラリフレッシュ処理の周期は他の値でもよい。また、動画像符号化装置において、イントラリフレッシュ処理の周期は、外部から設定（変更）できるようにしてもよい。
【０１９７】
また、上記実施形態では、残ピクチャ数により、各ＭＢＬのイントラリフレッシュ処理の開始タイミングを決定していたが、これに限定されることはなく、現フレーム（現ピクチャ）の時系列における位置についての情報から、各ＭＢＬのイントラリフレッシュ処理の開始タイミングを決定するようにしてもよい。例えば、残ピクチャ数の代わりにピクチャ番号（フレーム番号）により、各ＭＢＬのイントラリフレッシュ処理の開始タイミング（リセットタイミング）を決定するようにしてもよい。
【０１９８】
また、上記実施形態の動画像符号化装置の一部または全部は、集積回路（例えば、ＬＳＩ、システムＬＳＩ等）として実現されるものであってもよい。
【０１９９】
上記実施形態の各機能ブロックの処理の一部または全部は、プログラムにより実現されるものであってもよい。そして、上記実施形態の各機能ブロックの処理の一部または全部は、コンピュータにおいて、中央演算装置（ＣＰＵ）により行われる。また、それぞれの処理を行うためのプログラムは、ハードディスク、ＲＯＭなどの記憶装置に格納されており、ＲＯＭにおいて、あるいはＲＡＭに読み出されて実行される。
【０２００】
また、上記実施形態の各処理をハードウェアにより実現してもよいし、ソフトウェア（ＯＳ（オペレーティングシステム）、ミドルウェア、あるいは、所定のライブラリとともに実現される場合を含む。）により実現してもよい。さらに、ソフトウェアおよびハードウェアの混在処理により実現しても良い。なお、上記実施形態に係る動画像符号化装置をハードウェアにより実現する場合、各処理を行うためのタイミング調整を行う必要があるのは言うまでもない。上記実施形態においては、説明便宜のため、実際のハードウェア設計で生じる各種信号のタイミング調整の詳細については省略している。
【０２０１】
また、上記実施形態における処理方法の実行順序は、必ずしも、上記実施形態の記載に制限されるものではなく、発明の要旨を逸脱しない範囲で、実行順序を入れ替えることができるものである。
【０２０２】
前述した方法をコンピュータに実行させるコンピュータプログラム及びそのプログラムを記録したコンピュータ読み取り可能な記録媒体は、本発明の範囲に含まれる。ここで、コンピュータ読み取り可能な記録媒体としては、例えば、フレキシブルディスク、ハードディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＢＤ（Ｂｌｕ−ｒａｙ  Ｄｉｓｃ）、半導体メモリを挙げることができる。
【０２０３】
上記コンピュータプログラムは、上記記録媒体に記録されたものに限られず、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク等を経由して伝送されるものであってもよい。
【０２０４】
なお、本発明の具体的な構成は、前述の実施形態に限られるものではなく、発明の要旨を逸脱しない範囲で種々の変更および修正が可能である。
【符号の説明】
【０２０５】
１０００  動画像符号化装置
１  残ピクチャ数取得部（リセットタイミング決定部）
２  アクティビティ算出部
３  イントラＭＢ決定部
４  インター／イントラ判定部
５  符号化部
【図１】
2014060666.tif 000005
【図２】
2014060666.tif 000006
【図６】
2014060666.tif 000007
【図７】
2014060666.tif 000008
【図３】
2014060666.tif 000009
【図４】
2014060666.tif 000010
【図５Ａ】
2014060666.tif 000011
【図５Ｂ】
2014060666.tif 000012
【図５Ｃ】
2014060666.tif 000013
【図５Ｄ】
2014060666.tif 000014