(57)【特許請求の範囲】
【請求項１】
Ｎフレーム期間内に全てのマクロブロックが１回イントラ符号化されるように、符号化対象のマクロブロックをイントラ符号化するかインター符号化するかを判定する判定部と、
前記判定部の判定結果に基づき前記符号化対象のマクロブロックを符号化する符号化部と、
を備え、
前記判定部は、
前記符号化対象のマクロブロックが含まれる符号化対象フレームの前記Ｎフレーム期間内におけるフレーム番号を２進数により数値Ｊで表したとき、数値Ｊの下位Ｋビットを抽出して２Ｋの値を取り得る数値Ｌを生成し、前記数値Ｌを、２Ｋの値を取り得る数値Ｍに変換する第１変換部と、
前記符号化対象のマクロブロックの符号化対象フレームにおける第１の方向の座標を２進数により数値Ｐで表したとき、数値Ｐの下位Ｋビットを抽出して２Ｋの値を取り得る数値Ｑを生成し、前記数値Ｑを、２Ｋの値を取り得る数値Ｒに変換する第２変換部と、
数値Ｍおよび数値Ｒの組み合わせから一意に決定される数値Ｓを生成する生成部と、
前記符号化対象のマクロブロックの符号化対象フレームにおける前記第１の方向と直交する第２の方向の座標を２進数により数値Ｔで表したとき、数値Ｔの下位Ｋビットを抽出して２Ｋの値を取り得る数値Ｕを生成し、前記数値Ｓと前記数値Ｕとが一致するとき、前記符号化対象のマクロブロックをイントラマクロブロックとして決定する決定部と、
を含む画像符号化装置。
【請求項２】
請求項１に記載の画像符号化装置であって、
前記第１の方向は前記符号化対象フレームにおけるＸ軸方向あるいはＹ軸方向のいずれか一方の方向である画像符号化装置。
【請求項３】
請求項１または請求項２に記載の画像符号化装置であって、
前記第１変換部は、
前記数値ＬをＶビットシフト演算することにより数値Ｗを生成し、前記数値Ｌと前記数値Ｗとの排他的論理和を演算することによって前記数値Ｍを生成する画像符号化装置。
【請求項４】
請求項１ないし請求項３のいずれかに記載の画像符号化装置であって、
前記第２変換部は、
前記数値Ｑの上位ビットと下位ビットとを反転させることによって前記数値Ｒを生成する画像符号化装置。
【請求項５】
請求項１ないし請求項４のいずれかに記載の画像符号化装置であって、
前記生成部は、
前記数値Ｍと前記数値Ｒとの排他的論理和を演算することによって前記数値Ｓを生成する画像符号化装置。
【請求項６】
請求項１ないし請求項５のいずれかに記載の画像符号化装置であって、
前記Ｎは２のべき乗で表される画像符号化装置。
【請求項７】
Ｎフレーム期間内に全てのマクロブロックが１回イントラ符号化されるように、符号化対象のマクロブロックをイントラ符号化するかインター符号化するかを判定する判定部と、
符号化対象フレームを複数の領域に分割し、各領域の符号化対象のマクロブロックを前記判定部の判定結果に基づき符号化する符号化部と、
を備え、
前記判定部は、
前記符号化対象フレームの前記Ｎフレーム期間内におけるフレーム番号を２進数により数値Ｊで表したとき、数値Ｊの下位Ｋビットを抽出して２Ｋの値を取り得る数値Ｌを生成し、前記数値Ｌを、２Ｋの値を取り得る数値Ｍに変換する第１変換部と、
前記符号化対象のマクロブロックの各領域における第１の方向の座標を２進数により数値Ｐで表したとき、数値Ｐの下位Ｋビットを抽出して２Ｋの値を取り得る数値Ｑを生成し、前記数値Ｑを、２Ｋの値を取り得る数値Ｒに変換する第２変換部と、
数値Ｍおよび数値Ｒの組み合わせから一意に決定される数値Ｓを生成する生成部と、
前記符号化対象のマクロブロックの各領域における前記第１の方向と直交する第２の方向の座標を２進数により数値Ｔで表したとき、数値Ｔの下位Ｋビットを抽出して２Ｋの値を取り得る数値Ｕを生成し、前記数値Ｓと前記数値Ｕとが一致するとき、前記符号化対象のマクロブロックをイントラマクロブロックとして決定する決定部と、
を含む画像符号化装置。
【請求項８】
請求項７に記載の画像符号化装置であって、
前記符号化部は、前記符号化対象フレームの前記第２の方向のマクロブロック数Ｄを超えない２のべき乗数の中からある２のべき乗数Ｅを選択し、ＤをＥで除算した商をＧとした場合、複数の領域の一部あるいは全部として前記第２の方向のマクロブロック数がＥであるＧ個の領域を設定する画像符号化装置。
【請求項９】
請求項８に記載の画像符号化装置であって、
ＤをＥで除算した結果、余りが存在する場合には、前記符号化部は、複数の領域として、前記第２の方向のマクロブロック数がＥであるＧ個の領域と、第２の方向のマクロブロック数が（Ｄ−Ｅ＊Ｇ）である１個の領域とを設定する画像符号化装置。
【請求項１０】
請求項７ないし請求項９のいずれかに記載の画像符号化装置であって、
前記第１変換部は、複数の領域のうち、一部あるいは全部の領域については、フレーム番号として数値Ｊとは異なる数値を用いる画像符号化装置。
【請求項１１】
請求項７ないし請求項１０のいずれかに記載の画像符号化装置であって、
前記第１の方向は前記符号化対象フレームにおけるＸ軸方向あるいはＹ軸方向のいずれか一方の方向である画像符号化装置。
【請求項１２】
請求項７ないし請求項１１のいずれかに記載の画像符号化装置であって、
前記第１変換部は、
前記数値ＬをＶビットシフト演算することにより数値Ｗを生成し、前記数値Ｌと前記数値Ｗとの排他的論理和を演算することによって前記数値Ｍを生成する画像符号化装置。
【請求項１３】
請求項７ないし請求項１２のいずれかに記載の画像符号化装置であって、
前記第２変換部は、
前記数値Ｑの上位ビットと下位ビットとを反転させることによって前記数値Ｒを生成する画像符号化装置。
【請求項１４】
請求項７ないし請求項１３のいずれかに記載の画像符号化装置であって、
前記生成部は、
前記数値Ｍと前記数値Ｒとの排他的論理和を演算することによって前記数値Ｓを生成する画像符号化装置。
【請求項１５】
請求項７ないし請求項１４のいずれかに記載の画像符号化装置であって、
前記Ｎは２のべき乗で表される画像符号化装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像を符号化し、圧縮画像を生成する装置に関する。詳しくは、イントラ符号化処理とインター符号化処理とを用いて画像を符号化する装置に関する。
【背景技術】
【０００２】
ＭＰＥＧ２やＨ．２６４などの画像符号化技術においては、イントラ符号化処理とインター符号化処理とが用いられる。イントラ符号化処理は、参照フレームを利用せずに、符号化対象のフレーム内で符号化処理が完結する。インター符号化処理は、参照フレームを利用することで符号化対象のフレームに対する符号化が行われる。
【０００３】
Ｉピクチャに含まれる全てのマクロブロックは、イントラ符号化処理により符号化される。ＰピクチャおよびＢピクチャに含まれるマクロブロックは、インター符号化処理により符号化される。Ｉピクチャの発生符号量は、全てのマクロブロックがイントラ符号化されるため、ＰピクチャあるいはＢピクチャの発生符号量よりも大きい。Ｈ．２６４においては、イントラ予測技術が利用されるが、やはり、ＰピクチャあるいはＢピクチャと比較すると発生符号量が大きい。
【０００４】
低遅延の再生あるいは伝送が求められるシステムにおいては、Ｉピクチャにおける発生符号量の上昇が問題となる。また、Ｉピクチャの出現周期で発生符号量が振動するという問題がある。発生符号量が振動すると、一時的にバッファのサイズが多く必要となり、非効率である。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００４−２１５２５２号公報
【非特許文献】
【０００６】
【非特許文献１】パイオニア株式会社、技術解説（ＭＰＥＧ技術解説）、平成２１年１２月１０日検索、インターネット＜ＵＲＬ：http://pioneer.jp/crdl/tech/mpeg/3-2.html＞
【非特許文献２】特許庁、資料室、平成２１年１２月１０日検索、インターネット＜ＵＲＬ：http://www.jpo.go.jp/shiryou/s_sonota/hyoujun_gijutsu/nle/nle-7-1.html＞
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上述したように、フレーム内の全てのマクロブロックがイントラ符号化処理されるＩピクチャが存在する場合、Ｉピクチャの処理で遅延が発生する可能性があり、低遅延なシステムには向かない。そこで、非特許文献１に示すような、符号化方法が提案されている。
【０００８】
非特許文献１において、フレーム内の全てのマクロブロックがイントラ符号化されるＩピクチャは利用されない。非特許文献１では、イントラマクロブロックがスライス単位で配置される。フレーム内のあるスライス内の全てのマクロブロックを、予測を用いずに直接ＤＣＴを行うイントラマクロブロックとして符号化する。このようなスライスをイントラスライスと呼ぶ。イントラスライスを適用する場所をフレームごとにずらしていくと、一定周期で画面全体をイントラスライスが巡回していき、画面がリフレッシュされることになる。Ｉピクチャに比べ、イントラスライスに要する発生符号量は少ないため、バッファサイズを減少させ、遅延を減らすことができる。
【０００９】
非特許文献２においても、同様に、イントラスライスを利用する技術が開示されている。
【００１０】
非特許文献１および非特許文献２で示すように、イントラスライスを用いることで、イントラブロックをＧＯＰ内に分散させることができる。
【００１１】
しかし、スライス内の全てのマクロブロックをイントラ符号化処理し、かつ、フレームごとにイントラスライスの位置を１列ずつずらしていく方法であるので、画質劣化の原因となっていた。具体的には、画像を連続再生したときイントラスライスが走査線のように見えてしまうという問題があった。
【００１２】
上記特許文献１では、イントラマクロブロックをマクロブロック単位で分散させるようにしている。しかし、特許文献１の技術を利用した場合であっても、イントラマクロブロックが、一定の間隔で移動するため、イントラマクロブロックの位置が目立つという問題がある。
【００１３】
本発明の目的は、イントラマクロブロックが出現する時間および空間を分散させつつ、画質の劣化の少ない画像符号化技術を提供することである。
【課題を解決するための手段】
【００１４】
上記の課題を解決するため、本実施の形態の画像符号化装置は、Ｎフレーム期間内に全てのマクロブロックが１回イントラ符号化されるように、符号化対象のマクロブロックをイントラ符号化するかインター符号化するかを判定する判定部と、判定部の判定結果に基づき符号化対象のマクロブロックを符号化する符号化部とを備える。判定部は、符号化対象のマクロブロックが含まれる符号化対象フレームのＮフレーム期間内におけるフレーム番号を２進数により数値Ｊで表したとき、数値Ｊの下位Ｋビットを抽出して２Ｋの値を取り得る数値Ｌを生成し、数値Ｌを、２Ｋの値を取り得る数値Ｍに変換する第１変換部を含む。判定部は、符号化対象のマクロブロックの符号化対象フレームにおける第１の方向の座標を２進数により数値Ｐで表したとき、数値Ｐの下位Ｋビットを抽出して２Ｋの値を取り得る数値Ｑを生成し、数値Ｑを、２Ｋの値を取り得る数値Ｒに変換する第２変換部を含む。判定部は、数値Ｍおよび数値Ｒの組み合わせから一意に決定される数値Ｓを生成する生成部を含む。さらに、判定部は、符号化対象のマクロブロックの符号化対象フレームにおける第１の方向と直交する第２の方向の座標を２進数により数値Ｔで表したとき、数値Ｔの下位Ｋビットを抽出して２Ｋの値を取り得る数値Ｕを生成し、数値Ｓと数値Ｕとが一致するとき、符号化対象のマクロブロックをイントラマクロブロックとして決定する決定部とを含む。
【発明の効果】
【００１５】
本発明の画像符号化装置を用いることにより、イントラマクロブロックが時間方向に分散される。低遅延のシステムに対応することができる。また、バッファサイズを小さくすることができる。
【００１６】
本発明の画像符号化装置を用いることにより、イントラマクロブロックを空間方向にランダムに配置することができる。イントラマクロブロックの境界が目立たなくなり、画質の向上を図ることができる。
【図面の簡単な説明】
【００１７】
【図１】本実施の形態に係る画像符号化装置のブロック図である。
【図２】フレーム番号とリフレッシュ期間とを示す図である。
【図３】符号化対象マクロブロックの座標を示す図である。
【図４】判定部の処理内容を示す図である。
【図５】判定部により処理される数値の一例を示す図である。
【図６】第２の実施の形態において分割されたフレームの領域を示す図である。
【図７】第３の実施の形態において分割されたフレームの領域を示す図である。
【図８】第４の実施の形態において分割されたフレームの領域を示す図である。
【図９】第５の実施の形態において分割されたフレームの領域を示す図である。
【発明を実施するための形態】
【００１８】
以下、添付の図面を参照しつつ、本実施の形態の画像符号化装置について説明する。
【００１９】
｛第１の実施の形態｝
＜画像符号化装置の構成＞
図１は、第１の実施の形態に係る画像符号化装置１のブロック図である。画像符号化装置１は、符号化部１１および判定部１２を備えている。
【００２０】
符号化部１１は、非圧縮画像データ２１を入力する。符号化部１１は、入力した非圧縮画像データ２１に画像符号化処理を行い、圧縮画像データ２２を出力する。符号化部１１は、たとえば、ＭＰＥＧ２やＨ．２６４などの符号化方式で画像符号化処理を実行する。
【００２１】
判定部１２は、符号化対象のマクロブロックをイントラ符号化するのか、インター符号化するのかを判定する。本実施の形態の画像符号化装置１は、全てのマクロブロックがイントラ符号化されるＩピクチャを用いない。本実施の形態の画像符号化装置１は、イントラマクロブロックを時間方向に分散して配置する。判定部１２は、リフレッシュ期間内において、フレーム画像内の全てのマクロブロックが１回イントラ符号化されるように、イントラマクロブロックを配置する。１リフレッシュ期間内の画像の集合が１ＧＯＰ（Ｇｒｏｕｐ  Ｏｆ  Ｐｉｃｔｕｒｅｓ）に対応する。
【００２２】
図２は、リフレッシュ期間内のフレーム画像３、３・・・を示している。フレーム画像３には、０番から（Ｎ−１）番までのフレーム番号が付与されている。現在、符号化の対象となっている符号化対象フレームのフレーム番号は、Ｆｔである。フレーム番号Ｆｔは２進数で表されているものとする。
【００２３】
フレーム番号Ｆｔの下位６ビットを抽出して生成される６ビットの数値をＦｔｋとする。図２に示すように、数値Ｆｔｋは、２進数によってＦ０Ｆ１Ｆ２Ｆ３Ｆ４Ｆ５で表される。Ｆ０〜Ｆ５は、それぞれ０あるいは１の整数である。
【００２４】
図３は、符号化対象フレーム内に配置された符号化対象マクロブロックＭＢｔを示す図である。符号化対象フレームには、図に示すように、Ｘ軸とＹ軸が定義されている。符号化対象マクロブロックＭＢｔのＸ座標は、Ｘｔであり、Ｙ座標は、Ｙｔである。ＸｔおよびＹｔは２進数で表されているものとする。
【００２５】
Ｘ座標Ｘｔの下位６ビットを抽出して生成される６ビットの数値をＸｔｋとする。図３に示すように、数値Ｘｔｋは、２進数によってＸ０Ｘ１Ｘ２Ｘ３Ｘ４Ｘ５で表される。Ｘ０〜Ｘ５は、それぞれ０あるいは１の整数である。
【００２６】
Ｙ座標Ｙｔの下位６ビットを抽出して生成される６ビットの数値をＹｔｋとする。図３に示すように、数値Ｙｔｋは、２進数によってＹ０Ｙ１Ｙ２Ｙ３Ｙ４Ｙ５で表される。Ｙ０〜Ｙ５は、それぞれ０あるいは１の整数である。
【００２７】
図４は、判定部１２における判定処理を示す図である。判定部１２は、第１変換部１２１、第２変換部１２２、生成部１２３および決定部１２４を含んでいる。
【００２８】
第１変換部１２１は、フレーム番号Ｆｔの下位６ビットから６ビットの数値Ｆｔｋを生成する。第１変換部１２１は、数値Ｆｔｋを２ビット左にシフトし、６ビットの数値Ｆｓを生成する。数値Ｆｓは、２進数によってＦ２Ｆ３Ｆ４Ｆ５００で表される。左シフトによって空いた下位ビットには０が埋められる。第１変換部１２１は、次に、数値Ｆｔｋと数値Ｆｓとの排他的論理和を演算し、６ビットの数値Ａを生成する。数値Ａは、Ａ０Ａ１Ａ２Ａ３Ａ４Ａ５で表される。数値Ａは、６ビットの数値である。Ａ０〜Ａ５は０または１の整数である。数値Ｆｔｋは、０〜６３までの６４通りの数値を取り得る。したがって、数値Ｆｔｋと数値Ｆｓとの排他的論理和である数値Ａも０〜６３までの６４通りの数値を取り得る。
【００２９】
第１変換部１２１における処理内容を一般化して表現すると次のようになる。符号化対象のマクロブロックが含まれる符号化対象フレームのＮフレーム期間内におけるフレーム番号を２進数により数値Ｊ（上記の例ではＦｔ）で表す。第１変換部１２１は、数値Ｊの下位Ｋビット（上記の例では下位６ビット）を抽出して２Ｋの値を取り得る数値Ｌ（上記の例ではＦｔｋ）を生成する。第１変換部１２１は、数値Ｌを、２Ｋの値を取り得る数値Ｍ（上記の例ではＡ）に変換する。
【００３０】
この実施の形態においては、第１変換部１２１は、数値Ｌ（上記の例ではＦｔｋ）をＶビットシフト演算（上記の例では２ビットシフト演算）することにより数値Ｗ（上記の例ではＦｓ）を生成し、数値Ｌと数値Ｗとの排他的論理和を演算することによって数値Ｍ（上記の例ではＡ）を生成する。
【００３１】
第２変換部１２２は、符号化対象マクロブロックのＹ座標Ｙｔの下位６ビットから６ビットの数値Ｙｔｋを生成する。第２変換部１２２は、数値Ｙｔｋの上位ビットと下位ビットとを反転し、６ビットの数値Ｙｒを生成する。数値Ｙｒは、Ｙ５Ｙ４Ｙ３Ｙ２Ｙ１Ｙ０で表される。数値Ｙｔｋは、０〜６３までの６４通りの数値を取り得る。したがって、数値Ｙｔｋの上位ビットと下位ビットとを反転して生成された数値Ｙｒも０〜６３までの６４通りの数値を取り得る。
【００３２】
第２変換部１２２における処理内容を一般化して表現すると次のようになる。符号化対象のマクロブロックの符号化対象フレームにおける第１の方向の座標（上記の例ではＹ座標）を２進数により数値Ｐ（上記の例ではＹｔ）で表したとき、数値Ｐの下位Ｋビット（上記の例では下位６ビット）を抽出して２Ｋの値を取り得る数値Ｑ（上記の例ではＹｔｋ）を生成し、数値Ｑを、２Ｋの値を取り得る数値Ｒ（上記の例ではＹｒ）に変換する。
【００３３】
この実施の形態においては、第２変換部１２２は、数値Ｑ（上記の例ではＹｔｋ）の上位ビットと下位ビットとを反転させることによって数値Ｒ（上記の例ではＹｒ）を生成する。
【００３４】
生成部１２３は、数値Ｙｒと数値Ａとの排他的論理和を演算し、６ビットの数値Ｂを生成する。数値Ｂは、Ｂ０Ｂ１Ｂ２Ｂ３Ｂ４Ｂ５で表される。数値Ｂは、６ビットの数値である。Ｂ０〜Ｂ５は０または１の整数である。
【００３５】
生成部１２３における処理内容を一般化して表現すると次のようになる。生成部１２３は、数値Ｍ（上記の例ではＡ）および数値Ｒ（上記の例ではＹｒ）の組み合わせから一意に決定される数値Ｓ（上記の例ではＢ）を生成する。
【００３６】
この実施の形態においては、生成部１２３は、数値Ｍ（上記の例ではＡ）と数値Ｒ（上記の例ではＹｒ）との排他的論理和を演算することによって数値Ｓ（上記の例ではＢ）を生成する。
【００３７】
決定部１２４は、符号化対象マクロブロックのＸ座標Ｘｔの下位６ビットを抽出して６ビットの数値Ｘｔｋを生成する。決定部１２４は、数値Ｘｔｋと数値Ｂとを比較する。２進数の数値Ｘｔｋは、Ｘ０Ｘ１Ｘ２Ｘ３Ｘ４Ｘ５で表される。Ｘ０〜Ｘ５は０または１の整数である。決定部１２４は、数値Ｘｔｋと数値Ｂとが一致したときには、符号化対象のマクロブロックをイントラマクロブロックとして決定する。つまり、Ｆｔ番目のフレームの、Ｘ座標＝Ｘｔ、Ｙ座標＝Ｙｔのマクロブロックをイントラ符号化することを決定する。
【００３８】
決定部１２４の処理内容を一般化して表現すると次のようになる。符号化対象のマクロブロックの符号化対象フレームにおける第１の方向（上記の例ではＹ軸方向）と直交する第２の方向（上記の例ではＸ軸方向）の座標を２進数により数値Ｔ（上記の例ではＸｔ）で表したとき、数値Ｔの下位Ｋビット（上記の例では下位６ビット）を抽出して２Ｋの値を取り得る数値Ｕ（上記の例ではＸｔｋ）を生成し、数値Ｓ（上記の例ではＢ）と数値Ｕ（上記の例ではＸｔｋ）とが一致するとき、符号化対象のマクロブロックをイントラマクロブロックとして決定する。
【００３９】
本実施の形態の画像符号化装置は、以上のように構成したので、イントラマクロブロックがリフレッシュ期間内で分散される。本実施の形態の画像符号化装置１は、第１変換部１２１、第２変換部１２２および生成部１２３によって、フレーム番号ＦｔとＹ座標Ｙｔとをランダムに変換し、数値Ｂを生成する。そして、決定部１２４において、Ｘ座標の一部である数値Ｘｔｋと数値Ｂとを比較する。したがって、イントラマクロブロックのＸ座標に予測性がなくなり、イントラマクロブロックの配置をランダムに分散させることができる。
【００４０】
１フレーム内の各マクロブロックは、リフレッシュ期間（Ｎフレーム）内に１回、イントラ符号化される。ただし、Ｎは、２のべき乗数で表されることが条件となる。１フレームに含まれる画像のＸ軸方向のマクロブロック数が２のべき乗数でない場合がある。たとえば、１フレームに含まれる画像のＸ軸方向のマクロブロック数が６０であり、リフレッシュ期間が、２６＝６４であるとする。この場合、数値Ｂは、０〜６３の数値を取り得るが、Ｘｔｋは、０〜５９までの数値を取る。したがって、あるスライスラインに注目したとき、６４フレーム中、４フレームにはイントラマクロブロックが存在しないことになる。この場合であっても、リフレッシュ期間内でイントラマクロブロックが分散される。１フレームに含まれる画像のＸ軸方向のマクロブロック数が２のべき乗でない場合には、Ｘ軸方向のマクロブロック数よりも大きい最小の２のべき乗数をリフレッシュ期間Ｎとすればよい。リフレッシュ期間は、数値Ｆｔｋ、ＸｔｋあるいはＹｔｋのビット数で決まる。上記の例であれば、数値Ｆｔｋ、ＸｔｋあるいはＹｔｋは６ビットの数値であるから、リフレッシュ期間は、２６＝６４である。
【００４１】
図５は、本実施の形態の判定部１２による処理を実際の数値を用いて例示した図である。フレーム番号Ｆｔからは下位３ビットを抽出して数値Ｆｔｋが生成されている。数値Ｆｔｋを２進数で表した８つの数値（０００、００１、０１０・・・）が図に示されている。数値Ｆｔｋを１０進数で表したときの数値をかっこ内に示している。数値Ｆｔｋは、１０進数では０１２３４５６７というように０から７まで昇順で並んだ数値である。
【００４２】
数値Ｆｔｋを１ビット左にシフトした数値Ｆｓは、図のような数値（０００、０１０、１００・・・）になる。左シフトによって空いた下位ビットには０が埋められている。８つの数値Ｆｔｋおよび８つの数値Ｆｓを排他的論理和により演算した結果が数値Ａ（０００、０１１、１１０・・・）として図に示されている。数値Ａは、１０進数で表すと、０３６５４７２１となっている。つまり、フレーム番号の下位３ビットが、ランダムに入れ替わっている。また、数値Ａも０から７までの全ての数値をとることが分かる。
【００４３】
図に示すように、３つのＹ座標が例示されている。１つ目のＹ座標の下位３ビットであるＹｔ３は、０００である。Ｙｔ３の上位ビットと下位ビットとを反転した数値Ｙｒは０００となる。Ｙｓが０００である場合、数値Ａと数値Ｙｒとの排他的論理和によって算出された数値Ｂは図のようになる（０００、０１１、１１０・・・）。数値Ｂは１０進数で０３６５４７２１となっている。
【００４４】
２つ目のＹ座標の下位３ビットであるＹｔ３は、００１である。Ｙｔ３の上位ビットと下位ビットとを反転した数値Ｙｒは１００となる。Ｙｒが１００である場合、数値Ａと数値Ｙｒとの排他的論理和によって算出された数値Ｂは図のようになる（１００、１１１、０１０・・・）。数値Ｂは１０進数で４７２１０３６５となっている。
【００４５】
３つ目のＹ座標の下位３ビットであるＹｔ３は、０１０である。Ｙｔ３の上位ビットと下位ビットとを反転した数値Ｙｒは０１０となる。Ｙｒが０１０である場合、数値Ａと数値Ｙｒとの排他的論理和によって算出された数値Ｂは図のようになる（０１０、００１、１００・・・）。数値Ｂは１０進数で２１４７６５０３となっている。
【００４６】
このようにして算出された数値ＢとＸ座標の下位３ビットが一致するとき、符号化対象のマクロブロックがイントラ符号化される。図５に示す数値Ｂを参照すれば、イントラマクロブロックのＸ座標はランダムに配置されることが分かる。また、Ｙ座標が異なることにより、Ｘ座標もランダムに変化している。したがって、各フレームにイントラマクロブロックがランダムに配置され、画像の品質が向上する。
【００４７】
｛第２の実施の形態｝
第１の実施の形態において、リフレッシュ期間を示すＮは２のべき乗であることを説明した。１フレームのＸ軸方向のマクロブロック数が２のべき乗でない場合には、Ｘ軸方向のマクロブロック数を超える最小の２のべき乗の数をリフレッシュ期間Ｎとすればよいと説明した。
【００４８】
しかし、Ｘ軸方向のマクロブロック数と２のべき乗の数との差が非常に大きい場合には、必要以上にリフレッシュ期間が長くなり好ましくない。たとえば、Ｘ軸方向のマクロブロック数が１２９である場合、１２９を超える最小の２のべき乗数は、２８＝２５６である。つまり、リフレッシュ期間が２５６フレームとなる。リフレッシュ期間が２５６フレームであるが、あるスライスラインに注目すると、２５６フレーム中、イントラマクロブロックが発生するのは１２９フレームであり、残り１２７フレームはイントラマクロブロックが発生しない。リフレッシュ期間が長くなれば画質劣化の原因ともなる。
【００４９】
そこで、第２の実施の形態においては、１フレームの画像を複数の領域に分割し、各領域において平行してイントラマクロブロックの判定を行う。
【００５０】
図６は、Ｘ軸方向のマクロブロック数が１４０である場合の例を示している。もし、第１の実施の形態と同様に、１４０を超える最小の２のべき乗数をリフレッシュ期間とする場合、リフレッシュ期間が２５６となり非常に大きくなる。
【００５１】
符号化部１１は、図６に示すように、フレーム画像をＸ軸方向のマクロブロック数が７０である２つの領域５１、５２に分割する。符号化部１１は、２つの領域５１、５２それぞれについて符号化対象マクロブロックを特定する。
【００５２】
判定部１２は、符号化部１１から２つの符号化対象マクロブロックの情報を取得する。判定部１２は、第１の実施の形態と同様の判定を行い、それぞれの符号化対象マクロブロックをイントラ符号化すべきかインター符号化すべきかを判定する。ただし、符号化対象マクロブロックのＸ座標、Ｙ座標は、各領域５１、５２内におけるＸ座標、Ｙ座標である。言い換えると、Ｘ軸方向のマクロブロック数が７０のフレーム画像に対して第１の実施の形態と同様の処理を実行する。その処理が、２つの領域５１、５２に対して平行して行われる。
【００５３】
このように領域を分割することで、リフレッシュ期間を短くすることができる。図６の例では、Ｘ軸方向のマクロブロック数が７０を超える最小の２のべき乗数１２８がリフレッシュ期間となる。
【００５４】
｛第３の実施の形態｝
第２の実施の形態によれば、リフレッシュ期間を短くすることができた。しかし、第２の実施の形態においては、２つの領域でイントラマクロブロックが同じ動きをとることになる。
【００５５】
第３の実施の形態においては、図７に示すように、２つの領域５３、５４のうち、一方の領域５３は、Ｘ軸方向のマクロブロック数を２のべき乗数の１２８にする。もう一方の領域５４は、Ｘ軸方向のマクロブロック数を１４０−１２８＝１２とする。このような分割とすることで、２つの領域でイントラマクロブロックが同じ動きをとる頻度を低下させることができる。
【００５６】
Ｘ軸方向のマクロブロック数が２のべき乗数の１２８である領域５３については、リフレッシュ期間が１２８フレームである。あるスライスラインに注目すると、全１２８フレームにおいて必ず１箇所がイントラマクロブロックとして選択される。Ｘ軸方向のマクロブロック数が１２である領域５４についても、リフレッシュ期間は１２８フレームである。あるスライスラインに注目すると、リフレッシュ期間中、１２フレームにおいては１箇所がイントラマクロブロックとして選択される。しかし、リフレッシュ期間中、残りの１１６フレームではイントラマクロブロックは発生しない。
【００５７】
領域５４においてイントラマクロブロックが発生する１２フレームについては、２つの領域５３、５４でイントラマクロブロックが同じ動きをとる。しかし、残りの１１６フレームについては、イントラマクロブロックが発生するのは領域５３のみである。したがって、２つの領域５３、５４でイントラマクロブロックが同じ動きをする期間が非常に短くなり、画質の向上が図られる。
【００５８】
｛第４の実施の形態｝
第２の実施の形態あるいは第３の実施の形態においては、１フレームの画像を２つの領域に分割する例を説明した。これは１例であり、分割数は３以上であってもよい。
【００５９】
図８は、１フレームの画像を３つの領域に分割した例を示す図である。符号化部１１は、図８に示すように、フレーム画像をＸ軸方向のマクロブロック数が、それぞれ６４、６４、１２である３つの領域５５、５６、５７に分割する。符号化部１１は、３つの領域５５、５６、５７それぞれについて符号化対象マクロブロックを特定する。
【００６０】
判定部１２は、符号化部１１から３つの符号化対象マクロブロックの情報を取得する。判定部１２は、第１の実施の形態と同様の判定を行い、それぞれの符号化対象マクロブロックをイントラ符号化すべきかインター符号化すべきかを判定する。図８の例では、リフレッシュ期間は６４である。
【００６１】
フレーム画像を複数の領域に分割する方法は特に限定されないが、以下のような分割方法が有効である。符号化対象のフレーム画像のＸ軸方向のマクロブロック数をＤとする。Ｄを超えない２のべき乗数のうち、ある２のべき乗数Ｅを選択する。ＤをＥで除算した商をＧとした場合、Ｘ軸方向のマクロブロック数がＥであるＧ個の領域と、Ｘ軸方向のマクロブロック数が（Ｄ−Ｅ＊Ｇ）である１個の領域とを設定すればよい。ＤがＥで割り切れる場合には、複数の領域としてＸ軸方向のマクロブロック数がＥであるＧ個の領域を設定すればよい。
【００６２】
｛第５の実施の形態｝
第２、第３あるいは第４の実施の形態においては、分割された各領域において、イントラマクロブロックを決定するための演算内容が同じであった。したがって、時間方向で観察すれば、各領域でイントラマクロブロックが同じ動きをすることになる。
【００６３】
第５の実施の形態においては、各領域で異なる演算によりイントラマクロブロックが決定される。したがって、時間方向で観察すれば、各領域でイントラマクロブロックが異なる動きをする。
【００６４】
各領域で異なる演算を行うために、第１変換部１２１は、各領域でフレーム番号Ｆｔとして異なる値を利用する。図９は、１フレームの画像を、２つの領域５８、５９に分割した例を示している。図４で示した演算を行うとき、領域５８については、正しいフレーム番号Ｆｔを利用する。これに対して、領域５９では現在のフレーム番号Ｆｔとは異なる値を用いる。たとえば、Ｆｔに１を加算しても良い。Ｆｔのビットを入れ替えても良い。領域５８において数値Ｆｔｋが０からＮ−１までの値をとる間、領域５９の数値Ｆｔｋは、領域５８の数値Ｆｔｋとは異なる値をとりながら、やはり０からＮ−１までの値をとることが条件である。このようにすることで、同じフレーム、同じＹ軸座標についても領域５８と領域５９とでは異なる数値Ｂが演算される。領域５８と領域５９とでイントラマクロブロックが異なる動きをするため、イントラマクロブロックが、よりランダムに配置される。
【００６５】
１フレーム画像が第４の実施の形態のように、３つに分割されている場合には、３つの領域でそれぞれフレーム番号Ｆｔとして異なる値を用いればよい。たとえば、領域５５は、フレーム番号Ｆｔを用い、領域５６は、Ｆｔに１を加算し、領域５７は、Ｆｔに２を加算してもよい。複数の領域の全てについてＦｔを異ならせても良いし、一部の領域のみ異なるようにしてもよい。
【００６６】
上記の実施の形態においては、第１変換部１２１、第２変換部１２２および生成部１２３により、フレーム番号ＦｔとＹ座標Ｙｔからランダム化された数値Ｂを生成した。本実施の形態の第１変換部１２１、第２変換部１２２および生成部１２３における処理は一例である。たとえば、第１変換部１２１と第２変換部１２２における処理を入れ替えてもよい。また、上記の実施の形態においては、フレーム番号とＹ座標からランダム化された数値Ｂを生成し、数値ＢとＸ座標とを比較した。別の実施の形態として、フレーム番号とＸ座標からランダム化された数値Ｂを生成し、数値ＢとＹ座標とを比較してもよい。
【００６７】
本実施の形態においては、第１変換部１２１、第２変換部１２２、生成部１２３および決定部１２４は、ハードウェア回路によって構成されている。ただし、第１変換部１２１、第２変換部１２２、生成部１２３および決定部１２４が、ＣＰＵとＣＰＵ上で動作するプログラムによって構成されていてもよい。
【符号の説明】
【００６８】
１    画像符号化装置
１１    符号化部
１２    判定部
【図１】
0005570846.tif 000002
【図２】
0005570846.tif 000003
【図３】
0005570846.tif 000004
【図４】
0005570846.tif 000005
【図５】
0005570846.tif 000006
【図６】
0005570846.tif 000007
【図７】
0005570846.tif 000008
【図８】
0005570846.tif 000009
【図９】
0005570846.tif 000010