(57)【要約】本発明は、従来技術と比較して低消費電力化を図ることができる動画像符号化又は復号化処理システム及び動画像符号化又は復号化処理方法を提案することを目的とする。一のフレームの符号化又は復号化に必要な必要演算量Ｋｐを計算し、当該一のフレームの符号化又は復号化処理に予め割り当てられている時間Ｔｅ内に当該必要演算量Ｋｐを符号化又は復号化処理可能な動作周波数Ｆを決定し、当該動作周波数Ｆ、及び、当該動作周波数Ｆに適する動作電圧Ｖで当該プロセッサを動作させながら当該一のフレームの符号化又は復号化処理を行い、さらに、必要演算量Ｋｐが実際に必要な演算量よりも小さい場合に起きる破綻現象を回避する破綻回避手段を一つ以上備える。
2004093458.tif 000002
【特許請求の範囲】
【請求項１】
複数のフレームから構成される動画像をフレーム単位で符号化又は復号化するプロセッサを備え、一のフレームの符号化又は復号化に必要な必要演算量Ｋｐを計算し、当該一のフレームの符号化又は復号化処理に予め割り当てられている時間Ｔｅ内に当該必要演算量Ｋｐを符号化又は復号化処理可能な動作周波数Ｆを決定し、当該動作周波数Ｆ、及び、当該動作周波数Ｆに適する動作電圧Ｖで当該プロセッサを動作させながら当該一のフレームの符号化又は復号化処理を行い、必要演算量Ｋｐが実際に必要な演算量よりも小さい場合に起きる破綻現象を回避する破綻回避手段を一つ以上備えることを特徴とする動画像符号化又は復号化処理システム。
【請求項２】
連続する複数のフレームのうち前記一のフレームより前に符号化処理されるフレームを前フレームとすると、動画像符号化処理を行う場合において、前記一のフレームと前フレームとの動き量、前記一のフレームのアクティビティの量、前フレームのアクティビティの量、前フレームの量子化ステップサイズの平均値、前フレームの量子化ステップサイズの平均値とその一つ前のフレームの量子化ステップサイズの平均値の差、前フレームのマクロブロックマッチング回数、前フレームの有効ブロック数、前フレームの有効係数の数、前フレームの符号化に実際に要した演算量、前フレームの発生ビット数、前記一のフレームの符号化ビットレート、前記一のフレームについてフレーム内符号化又はフレーム間符号化のいずれであるかの種類、前フレームの必要演算量のうち、一つ以上の要素を使用して必要演算量Ｋｐを計算することを特徴とする請求の範囲１に記載の動画像符号化又は復号化処理システム。
【請求項３】
連続する複数のフレームのうち前記一のフレームより前に復号化処理されるフレームを前フレームとすると、動画像復号化処理を行う場合において、前記一のフレームの符号化データのビット数、前記一のフレームがフレーム内符号化されたものであるか又はフレーム間符号化されたものであるかの種類、前記一のフレーム若しくは前フレームの動きベクトルの大きさの平均値、前記一のフレーム若しくは前フレームの動きベクトルの大きさの分散、前記一のフレーム若しくは前フレームの有効ブロック数、前記一のフレーム若しくは前フレームの有効係数の数、前記一のフレーム若しくは前フレームのビットレート、前記一のフレーム若しくは前フレームの符号量、前記一のフレーム若しくは前フレームの量子化ステップサイズの平均値、量子化ステップサイズの平均値の差（前記一のフレームと１つ前のフレームの量子化ステップサイズの差，もしくは１つ前のフレームの量子化ステップサイズと２つ前のフレームの量子化ステップサイズの差）、前フレームの復号化に実際に要した演算量、前フレームの必要演算量のうち、一つ以上の要素を使用して必要演算量Ｋｐを計算することを特徴とする請求の範囲１に記載の動画像符号化又は復号化処理システム。
【請求項４】
前記破綻回避手段として、必要演算量Ｋｐを増加させる第１の破綻回避手段を備えることを特徴とする請求の範囲１乃至請求の範囲３のいずれか１つに記載の動画像符号化又は復号化処理システム。
【請求項５】
前記第１の破綻回避手段は、必要演算量Ｋｐをｍ倍（ｍは１以上の実数）又は必要演算量Ｋｐに０より大きい実数ｎを加算することを特徴とする請求の範囲４記載の動画像符号化又は復号化処理システム。
【請求項６】
前記破綻回避手段として、前記一のフレームの符号化又は復号化処理に予め割り当てられている時間Ｔｅ内に当該一のフレームの符号化処理が完了しない場合には破綻現象を回避する処理を行う第２の破綻回避手段を備えることを特徴とする請求の範囲１乃至請求の範囲５のいずれか１つに記載の動画像符号化又は復号化処理システム。
【請求項７】
前記第２の破綻回避手段は、所定のタイミングで符号化処理に割り込みを行い、符号化がなされていないマクロブロックがある場合は、当該マクロブロックに対して無効ブロック化処理を行うことを特徴とする請求の範囲６記載の動画像符号化又は復号化処理システム。
【請求項８】
前記第２の破綻回避手段は、所定のタイミングで符号化又は復号化処理に割り込みを行い、その割り込み時点において、必要演算量Ｋｐの残量が、符号化又は復号化処理に実際に必要な演算量の残量よりも小さい場合は、プロセッサの動作周波数及び動作電圧を上げることを特徴とする請求の範囲６記載の動画像符号化又は復号化システム。
【請求項９】
前記プロセッサは、動作可能な可能動作周波数がｒ段階（ｒは２以上の整数）に用意されており、前記時間Ｔｅ内に必要演算量Ｋｐを処理するに必要な動作周波数ＦｅをＦｅ＝Ｋｐ／Ｔｅで計算し、前記プロセッサが動作可能な可能動作周波数から前記必要な動作周波数Ｆｅ以上であり且つその動作周波数Ｆｅに最も近い動作周波数Ｆを決定することを特徴とする請求の範囲１乃至請求の範囲８のいずれか１つに記載の動画像符号化又は復号化処理システム。
【請求項１０】
複数のフレームから構成される動画像をフレーム単位で符号化又は復号化するプロセッサを使用して、一のフレームの符号化に必要な必要演算量Ｋｐを計算し、当該一のフレームの符号化又は復号化処理に予め割り当てられている時間Ｔｅ内に当該必要演算量Ｋｐを符号化又は復号化処理可能な動作周波数Ｆを決定し、当該動作周波数Ｆ、及び、当該動作周波数Ｆに適する動作電圧Ｖで当該プロセッサを動作させながら当該一のフレームの符号化又は復号化処理を行い、
必要演算量Ｋｐが実際に必要な演算量よりも小さい場合に起きる破綻現象を回避する破綻回避ステップを一つ以上備えることを特徴とする動画像符号化又は復号化処理方法。
【請求項１１】
連続する複数のフレームのうち前記一のフレームより前に符号化処理されるフレームを前フレームとすると、動画像符号化処理を行う場合において、前記一のフレームと前フレームとの動き量、前記一のフレームのアクティビティの量、前フレームのアクティビティの量、前フレームの量子化ステップサイズの平均値、前フレームの量子化ステップサイズの平均値とその一つ前のフレームの量子化ステップサイズの平均値の差、前フレームのマクロブロックマッチング回数、前フレームの有効ブロック数、前フレームの有効係数の数、前フレームの符号化に実際に要した演算量、前フレームの発生ビット数、前記一のフレームの符号化ビットレート、前記一のフレームについてフレーム内符号化又はフレーム間符号化のいずれであるかの種類、前フレームの必要演算量のうち、一つ以上の要素を使用して必要演算量Ｋｐを計算することを特徴とする請求の範囲１０記載の動画像符号化又は復号化処理方法。
【請求項１２】
連続する複数のフレームのうち前記一のフレームより前に復号化処理されるフレームを前フレームとすると、動画像復号化処理を行う場合において、前記一のフレームの符号化データのビット数、前記一のフレームがフレーム内符号化されたものであるか又はフレーム間符号化されたものであるかの種類、前記一のフレーム若しくは前フレームの動きベクトルの大きさの平均値、前記一のフレーム若しくは前フレームの動きベクトルの大きさの分散、前記一のフレーム若しくは前フレームの有効ブロック数、前記一のフレーム若しくは前フレームの有効係数の数、前記一のフレーム若しくは前フレームのビットレート、前記一のフレーム若しくは前フレームの符号量、前記一のフレーム若しくは前フレームの量子化ステップサイズの平均値、量子化ステップサイズの平均値の差（前記一のフレームと１つ前のフレームの量子化ステップサイズの差，もしくは１つ前のフレームの量子化ステップサイズと２つ前のフレームの量子化ステップサイズの差）、前フレームの復号化に実際に要した演算量、前フレームの必要演算量のうち、一つ以上の要素を使用して必要演算量Ｋｐを計算することを特徴とする請求の範囲１０記載の動画像符号化又は復号化処理方法。
【請求項１３】
前記破綻回避ステップとして、必要演算量Ｋｐを増加させる第１の破綻回避ステップを備えることを特徴とする請求の範囲１０乃至請求の範囲１２のいずれか１つに記載の動画像符号化又は復号化処理方法。
【請求項１４】
前記第１の破綻回避ステップは、前記第１の破綻回避手段は、必要演算量Ｋｐをｍ倍（ｍは１以上の実数）又は必要演算量Ｋｐに０より大きい実数ｎを加算することを特徴とする請求の範囲１３記載の動画像符号化又は復号化処理方法。
【請求項１５】
前記破綻回避ステップとして、前記一のフレームの符号化又は復号化処理に予め割り当てられている時間Ｔｅ内に当該一のフレームの符号化処理が完了しない場合には破綻現象を回避する処理を行う第２の破綻回避ステップを備えることを特徴とする請求の範囲１０乃至請求の範囲１４のいずれか１つに記載の動画像符号化又は復号化処理方法。
【請求項１６】
前記第２の破綻回避ステップは、所定のタイミングで符号化処理に割り込みを行い、符号化がなされていないマクロブロックがある場合は、当該マクロブロックに対して無効ブロック化処理を行うことを特徴とする請求の範囲１５記載の動画像符号化又は復号化処理方法。
【請求項１７】
前記第２の破綻回避ステップは、所定のタイミングで符号化又は復号化処理に割り込みを行い、その割り込み時点において、必要演算量Ｋｐの残量が、符号化又は復号化処理に実際に必要な演算量の残量よりも小さい場合は、プロセッサの動作周波数及び動作電圧を上げることを特徴とする請求の範囲１５又は請求の範囲１６記載の動画像符号化又は復号化処理方法。
【請求項１８】
前記プロセッサは、動作可能な可能動作周波数がｒ段階（ｒは２以上の整数）に用意されており、前記時間Ｔｅ内に必要演算量Ｋｐを処理するに必要な動作周波数ＦｅをＦｅ＝Ｋｐ／Ｔｅで計算し、前記プロセッサが動作可能な可能動作周波数から前記必要な動作周波数Ｆｅ以上であり且つその動作周波数Ｆｅに最も近い動作周波数Ｆを決定することを特徴とする請求の範囲１０乃至請求の範囲１７のいずれか１つに記載の動画像符号化又は復号化処理方法。
【発明の詳細な説明】
【技術分野】  本発明は、動作周波数及び動作電圧が変更可能なプロセッサを使用して、動画像の符号化又は復号化を行う動画像符号化又は復号化処理システム及び動画像符号化又は復号化処理方法に関する。
【背景技術】  近年、伝送路を通じて動画像の送受信を行うことや、動画像を蓄積メディアに蓄積することが可能となっている。一般に、動画像は情報量が大きいため、伝送ビットレートの限られた伝送路を用い動画像を伝送する場合、あるいは蓄積容量の限られた蓄積メディアに動画像を蓄積する場合には、動画像を符号化・復号化する技術が必要不可欠である。動画像の符号化・復号化方式として、ＩＳＯ／ＩＥＣが標準化を進めているＭＰＥＧ（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）やＨ．２６Ｘがある。これらは動画像を構成する経時的に連続した複数のフレームの符号化又は復号化を行うものであり、動画像の時間的相関、空間的相関を利用した冗長性の削減を行うことにより動画像の情報量を減らして符号化し、符号化された動画像を再度元の動画像に復号化する技術である。
かかる符号化・復号化技術はパーソナルコンピュータやマイクロコンピュータを内蔵する携帯電話等の情報端末機器等に適用されており、符号化・復号化の手段を記述したプログラムに基づいてコンピュータのプロセッサ等を動作させることにより、動画像を送信等する場合は動画像符号化処理システムとして、動画像を受信等する場合は動画像復号化処理システムとして機能させている。しかしながら、かかる動画像符号化又は復号化処理は比較的に演算量が多いため消費電力が大きくなる傾向にあり、ハードウエアよりも汎用性の高いソフトウエアを使用して、符号化・復号化処理における低消費電力化を図ることが大きな課題となっている。
以下に、ソフトウエアを使用した動画像符号化又は復号化処理システムにおける従来の低消費電力化の手段を説明する。従来の低消費電力化の手段としては、例えば下記の非特許文献１に開示されている。
【非特許文献１】ＩＥＥＥ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｓｙｍｐｏｓｉｕｍ  ｏｎ  Ｃｉｒｃｕｉｔｓ  ａｎｄ  Ｓｙｓｔｅｍ  ２００１（Ｍａｙ，２００１）の予稿集ｐｐ９１８−９２１“Ａｎ  ＬＳＩ  ｆｏｒ  ＶＤＤ−Ｈｏｐｐｉｎｇ  ａｎｄ  ＭＰＥＧ４  Ｓｙｓｔｅｍ  Ｂａｓｅｄ  ｏｎ  ｔｈｅ  Ｃｈｉｐ”（Ｈ．Ｋａｗａｇｕｃｈｉ，Ｇ．Ｚｈａｎｇ，Ｓ．Ｌｅｅ，ａｎｄ  Ｔ．Ｓａｋｕｒａｉ）
Ｆｉｇ１０は、非特許文献１で示された、動画像（動画像）符号化処理システムについて従来の低消費電力化を行う手法を示した図である。なお、低消費電力化の手段は、動画像復号化処理システムにおいても同様である。
本従来例では、動的に動作電圧及び動作周波数を変更可能なプロセッサ上で、動画像符号化（特にＭＰＥＧ）を処理する場合の低消費電力化を行うための動作電圧及び動作周波数の制御方法を示している。すなわち本従来例は、Ｆｉｇ１１に示すように、動画像符号化を行う場合に、動画像内の動きの激しさなどによりフレーム単位に動画像符号化又は復号化の演算量が異なることに注目し、プロセッサの動作周波数及び動作電圧を制御して低消費電力化を図るものである。
符号化処理は、１フレームの処理時間が符号化方式（ＭＰＥＧなど）の規定などにより時間Ｔｆに制約されており、その処理時間Ｔｆ内に１フレームの符号化処理が完了することが必要とされる。１フレームの処理時間Ｔｆ（秒）に対して、それを一定間隔にＮ個に分割し、一つ一つの間隔（時間）をタイムスロットＴｓｌｏｔ（Ｔｓｌｏｔ＝Ｔｆ／Ｎ）と定義し、また、タイムスロットＴｓｌｏｔ１からタイムスロットＴｓｌｏｔｉが終了した時点の残時間ＴＲｉをＴＲｉ＝Ｔｆ−Ｔｓｌｏｔ×ｉと定義する。一つのタイムスロットＴｓｌｏｔで処理する動画像のブロック数（動画像の符号化はブロック単位に処理が行われる）をＲ（すなわちＲ×Ｎが１フレームのブロック数となる）とし、（Ｒ×ｉ）ブロック処理にかかった時間（すなわちタイムスロットＴｓｌｏｔ１からタイムスロットＴｓｌｏｔｉまでに処理すべきブロック群に対して実際に処理にかかった時間）をＴａｃｃ（ｉ＋１）とする。電圧変更した場合に動作電圧及び動作周波数が安定するまでの時間をＴｒｄとする。なお、実タイムスロットＲＴｓｌｏｔｉはタイムスロットＴｓｌｏｔｉ内に完了されるべき処理に対して実際に要した処理時間を示す。Ｆｉｇ１０では、まずタイムスロットＴｓｌｏｔ１及びタイムスロットＴｓｌｏｔ２に割り当てられたブロック群の処理に対しては、負荷が最大の場合でもそのタイムスロットＴｓｌｏｔ１，Ｔｓｌｏｔ２内に十分に処理が完了可能なクロック周波数ｆｍａｘで動作させる。その処理にかかった時間Ｔａｃｃ３がＴａｃｃ３＜（Ｔｆ−ＴＲ２）である場合、すなわち、割り当てられたブロック群がタイムスロットＴｓｌｏｔ１，Ｔｓｌｏｔ２内で処理が完了した場合、次のタイムスロットＴｓｌｏｔ３に割り当てられたブロック群の処理に使用可能な処理時間Ｔｔａｒ３はＴｔａｒ３＝Ｔｆ−Ｔａｃｃ３−ＴＲ３−Ｔｒｄであり、この処理時間Ｔｔａｒ３内にＴｓｌｏｔ３に割り当てられたブロック群の処理が完結すればよいので、このブロック群に対しては動作周波数を下げて動作させる。Ｆｉｇ１０の処理時間Ｔｆ１，Ｔｆ２，Ｔｆ３は、タイムスロットＴｓｌｏｔ３において負荷が最大の場合に、各動作周波数ｆ１，ｆ２，ｆ３で動作させたときの処理時間を示す。動作周波数としては、Ｆｉｇ１０においてｆ２＝ｆｍａｘ／２の動作周波数を選択すれば、負荷が最大の場合でもタイムスロットＴｓｌｏｔ１からタイムスロットＴｓｌｏｔ３までに完了されるべき処理時間が（Ｔｆ−ＴＲ３）以内である、次のタイムスロットＴｓｌｏｔ４に処理が入り込むことはない。一方、動作周波数ｆ３＝ｆｍａｘ／３を選択した場合は、処理時間Ｔｆ３が処理時間Ｔｔａｒ３を超えてしまう。したがって、このタイムスロットＴｓｌｏｔ３で処理すべきブロック群に対してはｆ２＝ｆｍａｘ／２の動作周波数及びその動作周波数に適する動作電圧で動作させる。同様にして、タイムスロットＴｓｌｏｔ毎にこの処理を行う。
これにより、動的に動作クロック周波数及び動作電圧を変更するに際し、所定時間内に所定数のブロック群を処理可能な動作周波数のうち最小の動作周波数を選択することにより、総合的に動作周波数及び動作電圧を下げて動作させ、必要処理に応じて電圧を制御することにより、低消費電力化が図られている。
ところで、ある一定の処理時間（例えば、ここでは１フレームの処理時間Ｔｆ）に完了すべき処理（例えば、ここでは１フレームの処理）に対しては、１フレームの処理時間を通してプロセッサを一定の動作電圧及び動作周波数で動作させて処理することが好ましい。すなわち、１フレームの処理時間をＴｆ（秒）とし、演算量Ｋｆ（サイクル）とし、動作周波数Ｆｆとすると、動作周波数Ｆｆ＝Ｋｆ／Ｔｆ（サイクル／秒）に設定し、１フレームの処理時間Ｔｆを通してプロセッサを一定の動作周波数Ｆｆで動作させることにより、その処理時間Ｔｆ内で動作周波数Ｆｆを何回も変動させる場合と比較して、より低消費電力化が可能となる。この証明は後述する第１の実施の形態で行う。
しかしながら、本従来例では、処理時間Ｔｆの同期する単位が１フレームであるにもかかわらず、１フレーム内で最大Ｎ回の動作電圧及び動作周波数の変更が行われており、低消費電力が十分に図られていなかった。すなわち、本従来例のように多段階に動作電圧及び動作周波数を制御可能なプロセッサでの動画像符号化又は復号化処理の低消費電力化は、１フレームの処理中に何回も動作電圧及び動作周波数を変更する必要があった。一方、上述のように、処理時間の制約の単位がフレームであるため、１フレームの処理中は処理を可能にする最低限の一定の周波数で制御するのが好ましい。そのため、１フレームの処理中に最大Ｎ回動作電圧及び動作周波数が変更される本従来例では十分な低消費電力化ができていなかった。
そこで本発明は、前記のような課題を解決するためのものであり、前記従来技術と比較して大幅に低消費電力化を図ることができる動画像符号化又は復号化処理システム及び動画像符号化又は復号化処理プログラムを提案することにある。
【発明の開示】
すなわち、本発明の動画像符号化又は復号化処理システムは、複数のフレームから構成される動画像をフレーム単位で符号化又は復号化するプロセッサを備え、一のフレームの符号化又は復号化に必要な必要演算量Ｋｐを計算し、当該一のフレームの符号化又は復号化処理に予め割り当てられている時間Ｔｅ内に当該必要演算量Ｋｐを符号化又は復号化処理可能な動作周波数Ｆを決定し、当該動作周波数Ｆ、及び、当該動作周波数Ｆに適する動作電圧Ｖで当該プロセッサを動作させながら当該一のフレームの符号化又は復号化処理を行い、さらに、必要演算量Ｋｐが実際に必要な演算量よりも小さい場合に起きる破綻現象を回避する破綻回避手段を一つ以上備えることを特徴とする。また、本発明の動画像符号化又は復号化処理方法は、複数のフレームから構成される動画像をフレーム単位で符号化又は復号化するプロセッサを使用して、一のフレームの符号化に必要な必要演算量Ｋｐを計算し、当該一のフレームの符号化又は復号化処理に予め割り当てられている時間Ｔｅ内に当該必要演算量Ｋｐを符号化又は復号化処理可能な動作周波数Ｆを決定し、当該動作周波数Ｆ、及び、当該動作周波数Ｆに適する動作電圧Ｖで当該プロセッサを動作させながら当該一のフレームの符号化又は復号化処理を行い、さらに、必要演算量Ｋｐが実際に必要な演算量よりも小さい場合に起きる破綻現象を回避する破綻回避ステップを一つ以上備えることを特徴とする。
符号化・復号化方式（ＭＰＥＧ等）の規定においては、現フレームに対して予め処理時間が割り当てられている。本発明によれば、一のフレームの符号化又は復号化に必要な必要演算量Ｋｐが計算され、当該一のフレームの符号化処理又は復号化処理に予め割り当てられている時間Ｔｅ内に前記必要演算量Ｋｐを符号化処理又は復号化処理可能な動作周波数Ｆが決定され、当該動作周波数Ｆ及びそれに適する動作電圧Ｖでプロセッサを一定に動作させながら符号化又は復号化処理が行われる。したがって、フレームごとに符号化又は復号化に必要な最低限の動作電圧及び動作周波数でプロセッサを一定に動作させながら、符号化又は復号化処理が行われることとなり、フレームを分割して成る所定数のブロックごとに動作周波数及び動作電圧が決定されることで一のフレームの符号化・復号化処理中に何度も動作電圧及び動作周波数が変更される従来技術と比較して、低消費電力化を図ることができる。さらに、必要演算量Ｋｐが実際に必要な演算量よりも小さい値である場合には、予め定められた時間内に現フレームの符号化又は復号化処理が完了せず、画像が劣悪になる破綻現象が起こるが、本発明は破綻現象を回避する一つ以上の破綻回避手段を備えるため破綻現象の発生が回避される。
本発明の動画像符号化又は復号化処理システム／方法は、連続する複数のフレームのうち前記一のフレームより前に符号化処理されるフレームを前フレームとすると、動画像符号化処理を行う場合において、前記一のフレームと前フレームとの動き量、前記一のフレームのアクティビティの量、前フレームのアクティビティの量、前フレームの量子化ステップサイズの平均値、前フレームの量子化ステップサイズの平均値とその一つ前のフレームの量子化ステップサイズの平均値の差、前フレームのマクロブロックマッチング回数、前フレームの有効ブロック数、前フレームの有効係数の数、前フレームの符号化に実際に要した演算量、前フレームの発生ビット数、前記一のフレームの符号化ビットレート、前記一のフレームについてフレーム内符号化又はフレーム間符号化のいずれであるかの種類、前フレームの必要演算量のうち、一つ以上の要素を使用して必要演算量Ｋｐを計算することを特徴とする。
本発明の動画像符号化又は復号化処理システム／方法は、連続する複数のフレームのうち前記一のフレームより前に復号化処理されるフレームを前フレームとすると、動画像復号化処理を行う場合において、前記一のフレームの符号化データのビット数、前記一のフレームがフレーム内符号化されたものであるか又はフレーム間符号化されたものであるかの種類、前記一のフレーム若しくは前フレームの動きベクトルの大きさの平均値、前記一のフレーム若しくは前フレームの動きベクトルの大きさの分散、前記一のフレーム若しくは前フレームの有効ブロック数、前記一のフレーム若しくは前フレームの有効係数の数、前記一のフレーム若しくは前フレームのビットレート、前記一のフレーム若しくは前フレームの符号量、前記一のフレーム若しくは前フレームの量子化ステップサイズの平均値、量子化ステップサイズの平均値の差（前記一のフレームと１つ前のフレームの量子化ステップサイズの差，もしくは１つ前のフレームの量子化ステップサイズと２つ前のフレームの量子化ステップサイズの差）、前フレームの復号化に実際に要した演算量、前フレームの必要演算量のうち、一つ以上の要素を使用して必要演算量Ｋｐを計算することを特徴とする。
前記複数の要素はそれぞれ符号化又は復号化処理の演算量に影響を与える要素である。本発明によれば、前記要素のうち一つ以上が使用されて必要演算量Ｋｐが計算されるため、算出された必要演算量Ｋｐが現実に符号化又は復号化処理を行ったときの演算量により近い値となる。したがって、必要演算量Ｋｐが現実の演算量よりも小さくて符号化又は復号化処理が時間内に完了しないという破綻現象の発生率を低くすることができる。また、算出された必要演算量Ｋｐが現実の演算量よりも大き過ぎて低消費電力化が阻害される可能性が少なくなる。
本発明の動画像符号化又は復号化処理システム／方法は、前記破綻回避手段／ステップとして、必要演算量Ｋｐを増加させる第１の破綻回避手段／ステップを備えることを特徴とする。
本発明によれば、破綻回避手段が必要演算量を所定値だけ増加させるため、算出された必要演算量Ｋｐが現実の演算量を満たす可能性が高くなり、破綻現象を回避することができる。
前記第１の破綻回避手段／ステップは、必要演算量Ｋｐをｍ倍（ｍは１以上の実数）又は必要演算量Ｋｐに０より大きい実数ｎを加算することを特徴とする。
本発明によれば、第１の破綻回避手段／ステップによって、必要演算量Ｋｐをｍ倍又は必要演算量Ｋｐにｎを加算するため、ｍやｎの値を調節することで、算出された必要演算量Ｋｐを、現実の演算量よりも大きく且つ現実の演算量に近似した値とすることができ、破綻現象を回避することができる。
本発明の動画像符号化又は復号化処理システム／方法は、前記破綻回避手段／ステップとして、前記一のフレームの符号化又は復号化処理に予め割り当てられている時間内に当該一のフレームの符号化処理が終了しない場合には破綻現象を回避する処理を行う破綻現象を回避する処理を行う第２の破綻回避手段／ステップを少なくとも一つ備えることを特徴とする。
上記第１の破綻回避手段／ステップにおいては、破綻現象の発生の有無に関わらず、必要演算量Ｋｐを増加させることにより破綻現象を回避する処理が行われる。本発明によれば、第２の破綻回避手段／ステップにより、前記一のフレームの符号化又は復号化処理に予め割り当てられている時間内に当該一のフレームの符号化処理が終了しない場合には破綻現象を回避する処理が行われるため、破綻現象が起こる場合にのみ破綻現象を回避する処理が行われ、効率的に破綻現象を回避することができる。
前記第２の破綻回避手段／ステップは、所定のタイミングで符号化処理に割り込みを行い、符号化がなされていないマクロブロックがある場合は、当該マクロブロックに対して無効ブロック化処理を行うことを特徴とする。なお、復号化処理においては、無効ブロック化処理を行わない。
たとえば、一のフレームの符号化処理に予め割り当てられた時間Ｔｅのうち、総てのマクロブロックを無効ブロック化する処理時間を残した所定のタイミングにおいて、符号化されていないマクロブロックがある場合は、前記算出された必要演算量Ｋｐが実際に必要な演算量よりも小さいために破綻現象が生じる可能性が高い。本発明によれば、第２の破綻回避手段／ステップにより、例えば上記タイミングで動画像符号化又は復号化処理に割り込みを行い、符号化がなされていないマクロブロックがある場合は、時間Ｔｅ内に当該一のフレームの符号化処理が完了せずに破綻現象が発生すると判断し、当該マクロブロックに対して無効ブロック化処理を行うため、破綻現象を回避することができる。
前記第２の破綻回避手段／ステップは、所定のタイミングで符号化又は復号化処理に割り込みを行い、その割り込み時点において、必要演算量Ｋｐの残量が、符号化又は復号化処理に実際に必要な演算量の残量よりも小さい場合は、プロセッサの動作周波数及び動作電圧を上げる演算残量判断手段を少なくとも備えることを特徴とする。
符号化又は復号化処理の途中において、算出された必要演算量Ｋｐの残量が、符号化又は復号化処理において実際に必要な演算量の残量よりも小さい場合は、前記算出された必要演算量Ｋｐが符号化又は復号化処理に実際に必要な演算量よりも小さいために破綻現象が生じる可能性が高い。そこで、第２の破綻回避手段／ステップにより、所定のタイミングで動画像符号化又は復号化処理に割り込みを行い、上記残量を比較する。そして、実際に必要な演算量の残量と比較して必要演算量Ｋｐの残量が小である場合は、時間Ｔｅ内に符号化又は復号化処理が完了せずに破綻現象が生じると判断し、プロセッサの動作周波数及び動作電圧を上げる。これにより、プロセッサの計算速度が高くなるため処理可能な処理量が増加し、破綻現象を回避可能となる。割り込みの回数を複数回とすると、処理状態に合わせて動作周波数及び動作電圧を段階的に上げることができ、破綻現象を回避できる可能性がさらに高められる。
前記プロセッサは、動作可能な可能動作周波数がｒ段階（ｒは２以上の整数）に用意されており、前記時間Ｔｅ内に必要演算量Ｋｐを処理するに必要な動作周波数ＦｅをＦｅ＝Ｋｐ／Ｔｅで計算し、前記プロセッサが動作可能な可能動作周波数から前記必要な動作周波数Ｆｅ以上であり且つその動作周波数Ｆｅに最も近い動作周波数Ｆを決定することを特徴とする。
本発明によれば、時間Ｔｅで必要演算量Ｋｐを処理するに必要な動作周波数ＦｅがＦｅ＝Ｋｐ／Ｔｅで計算された後に、前記プロセッサが動作可能な可能動作周波数から前記必要な動作周波数Ｆｅ以上であり且つその動作周波数Ｆｅに最も近い動作周波数Ｆを決定するとともに、決定された動作周波数Ｆに適する動作電圧Ｖが決定され、プロセッサがその動作周波数Ｆ及び動作電圧Ｖで動作しながら符号化又は復号化を行う。すなわち、プロセッサが動作可能な可能動作周波数及び動作電圧のうち、時間Ｔｅ内に必要演算量Ｋｐを処理可能な最小の動作周波数Ｆ及び動作電圧Ｖにより、プロセッサを動作させながら、そのプロセッサ上で上記一のフレームの符号化又は復号化処理が行われるため、可能動作周波数が段階的に用意されたプロセッサが使用されても、低消費電力化が効率的に行われる。
【図面の簡単な説明】  Ｆｉｇ１は、本発明の第１の実施の形態の動画像符号化処理システムの動作を示した概略ブロック図である。Ｆｉｇ２は、上記実施の形態の動画像符号化処理システムの実装例を示す図である。Ｆｉｇ３は、上記実施の形態の動画像符号化処理システムとしてコンピュータを機能させる動画像符号化処理プログラムと、それにより実現される動画像符号化処理方法の概略フローチャートを示す図である。Ｆｉｇ４は、上記実施の形態の動画像符号化処理システムにおける符号化処理時間と演算残量の関係を示す図である。Ｆｉｇ５は、上記実施の形態の動画像符号化処理システムに使用されるプロセッサの動作電圧・動作周波数を示す概念図である。Ｆｉｇ６は、本発明の有効性を説明する図である。Ｆｉｇ７は、本発明の第２の実施の形態の動画像符号化処理システムの動作を示した概略ブロック図である。Ｆｉｇ８は、上記実施の形態の動画像符号化処理システムとしてコンピュータを機能させる動画像符号化処理プログラムの概略フローチャートを示す図である。Ｆｉｇ９は、本発明の第３の実施の形態の動画像復号化処理システムの動作を示した概略ブロック図である。Ｆｉｇ１０は、動画像符号化処理システムについて従来の低消費電力化を行う手法を示した図である。Ｆｉｇ１１は、フレーム単位に動画像符号化又は復号化の演算量が異なる状態を示す概念図である。
【発明を実施するための最良の形態】  以下、本発明の動画像符号化又は復号化処理システム及び処理方法について符号化処理と復号化処理に分けて詳述する。
（第１の実施の形態）
本発明の第１の実施の形態の動画像符号化処理システムは、例えばマイクロコンピュータが内蔵された携帯電話やパーソナルコンピュータ等の情報端末機器であるコンピュータにより実現され、特に、そのコンピュータ内においてマルチメディア信号処理部などの一部として機能するシステムであり、連続する所定数のフレームから構成される動画像をフレーム単位で順次符号化を行うシステムである。
Ｆｉｇ１は、本実施の形態の動画像符号化処理システムＳ１の動作を示した概略ブロック図である。動画像符号化処理システムＳ１は、動作電圧及び動作周波数がｒ段階（ｒは２以上の整数）に用意され（すなわち、ｒ段階の動作電圧及び動作周波数で動作可能であり）且つプログラムにより動作電圧及び動作周波数を変更可能なプロセッサ１と、ＤＣ−ＤＣコンバータやＰＬＬなどを備えて前記プロセッサ１の動作電源電圧及び動作周波数を制御する動作電圧・動作周波数制御手段４と、所定のデータを記憶する記憶領域である局部復号フレームメモリ６と入力フレームメモリ７と要素メモリ８と処理済みマクロブロック数レジスタ１０とを少なくとも備えるコンピュータ（特にコンピュータ内のマルチメディア信号処理部）である。ただし、局部復号メモリ６および入力フレームメモリ７等についても動作電圧・動作周波数制御手段４により、プロセッサ１と同様に動作電圧・動作周波数が制御されてもよい。本実施の形態では、点線で示される制御領域ＣＡに含まれる要素（プロセッサ１、局部復号フレームメモリ６、要素メモリ８、処理済みマクロブロック数レジスタ１０、入力フレームメモリ７ａ，７ｂ、等）について、動作周波数と動作電圧が制御されるようになっている。
プロセッサ１は、プロセッサ１上で動作する手段として、必要演算量計算手段２と、動作電圧・動作周波数計算手段３と、動画像符号化手段５と、二つの破綻回避手段９、１１を備える。二つの破綻回避手段９，１１は、必要演算量計算手段２で算出された必要演算量が、符号化手段５による符号化処理に実際に必要な演算量よりも小さい値を算出した場合に起きる破綻現象を回避するための手段であり、必要演算量計算手段２の一部として機能する第１の破綻回避手段１１と第２の破綻回避手段としての処理完了判断手段９である。なお、符号１０１は入力画像データ、符号１０２は動作電圧及び動作周波数指示、符号１０３は前フレームの局部復号データ、符号１０５は動作電圧・動作周波数供給、符号１０６はフレームの符号化データ、符号１０７は前フレームの量子化ステップサイズの平均値の情報、符号１０８は各フレームについてフレーム内符号化であるかフレーム間符号化であるかの種類、符号１０９は動画像の符号化ビットレートの情報、符号１１０は前フレームのアクティビティ量、符号１１１は前フレームのマクロブロックマッチング回数、符号１１２は前フレームの有効ブロック数、符号１１３は前フレームの有効係数の数、符号１１４は前フレームの量子化ステップサイズの平均値とその一つ前のフレームの量子化ステップサイズの平均値の差、符号１１５は前フレームの符合化に実際に要した処理量、符号１１６は必要演算量計算手段２により算出された前フレームの必要演算量、符号１１７は符号化処理が完了したマクロブロックの数である処理マクロブロック数である。要素メモリ８は、後述する必要演算量計算手段２において使用される複数の要素のうち一部の要素（フレーム内符号化であるかフレーム間符号化であるかの種類１０８や、符号化ビットレート１０９や、フレームのアクティビティの量１１０や、必要演算量計算手段２により算出された必要演算量１１６）が記憶される記憶領域である。処理済マクロブロック数レジスタ１０は、符号化処理済みのマクロブロック数１１７の情報を一時的に蓄積するレジスタである。動画像符号化手段５には符号化方式としてＭＰＥＧ−４が使用されるが、Ｈ．２６ＸやＭＰＥＧ−１、ＭＰＥＧ−２などの他の符号化方式が使用されていても良い。
Ｆｉｇ２に動画像符号化処理システムＳ１の実装例を示す。システムＳ１は、主にプロセッサ１と、周辺装置として各種メモリＭＲ，７ａ，７ｂや各種インタフェースＣＩ，ＤＩ，ＢＩと、動作電圧・動作周波数制御回路４ａ等を備えたハードウェアにより実現される。上記各構成要素は、バスＢ１，Ｂ２等を介して互いに通信可能となっている。
プロセッサ１は、プロセッサコア１ａと、命令キャッシュメモリ１ｂと、データキャッシュメモリ１ｃとを備える。必要演算量計算手段２，動作電圧・動作周波数決定手段３，動画像符号化手段５，破綻回避手段９，１１は、メモリＭＲに格納されたプログラムが必要に応じてプロセッサコア１ａ上で実行されることにより実現される。命令キャッシュメモリ１ｂおよびデータキャッシュメモリ１ｃは、プロセッサコア１ａ上で実行されるプログラムの処理の高速化を図るために設けられたキャッシュメモリである。
局部復号フレームメモリ６，要素メモリ８，処理済みマクロブロック数レジスタ１０は、Ｆｉｇ２のメモリＭＲに集約されるとともに、前フレームの量子化ステップサイズの平均値１０７，各フレームについてフレーム内符号化であるかフレーム間符号化であるかの種類１０８，動画像符号化のビットレート１０９，前フレーム（過去のフレーム）のアクティビティの量１１０，前フレームのマクロブロックマッチング回数１１１，前フレームの有効ブロック数１１２，前フレームの有効係数の数１１３，前フレームの量子化ステップサイズの平均値とその一つ前のフレームの量子化ステップサイズの平均値の差１１４，前フレームの符号化に実際に要した処理量１１５，必要演算量計算手段により算出された前フレームの必要演算量１１６，処理済みマクロブロック数１１７はメモリ１ｆにデータとして格納される。局部復号データ１０３は、バスコントローラＢＣを介してメモリＭＲとプロセッサコア１ａ間で信号１００ｊ，１００ｋ，１００ｌとして送受信される。
二つの入力フレームメモリ７ａ，７ｂは、Ｆｉｇ１のフレームメモリ７に相当する。カメラインタフェースＣＩから入力されたビデオデータ（入力画像データ１０１）は、バスＢ２を介して入力フレームメモリ７ａ（又は入力フレームメモリ７ｂ）に入力される。入力フレームメモリ（＃０）７ａと入力フレームメモリ（＃１）７ｂは１フレームの処理が終わるごとに用途が入れ替わる。すなわち、ｉ番目のフレームの処理で、信号１００ｈにより入力フレームメモリ（＃１）７ｂに入力画像データが書き込まれ、動画像符号化処理手段による符号化処理のために信号１００ｏにより入力フレームメモリ（＃０）７ａから入力画像データが読み出されたとき、（ｉ＋１）番目のフレームの処理では、信号１００ｉにより入力フレームメモリ（＃０）７ａに入力画像データが書き込まれ、動画像符号化処理手段による符号化処理のために、信号１００ｐにより入力フレームメモリ（＃１）７ｂから入力画像データが読み出される。したがって、信号１００ｈにより入力フレームメモリ（＃１）７ｂに入力画像データが書き込まれているときは信号１００ｐが発生せず、逆に信号１００ｐにより画像が読み出されているときは信号１００ｈが発生しない。同様に、信号１００ｉにより入力フレームメモリ（＃０）７ａに入力画像データが書き込まれているときは信号１００ｏが発生せず、信号１００ｏにより入力フレームメモリ（＃０）７ａから入力画像データが読み出されているときは信号１００ｉが発生しない。このとき、ｉ番目のフレームの処理においては入力フレームメモリ（＃０）７ａが、（ｉ＋１）番目のフレームの処理においては入力フレームメモリ（＃１）７ｂが動作周波数，動作電圧の制御対象となる。上記説明のように、入力フレームメモリを２フレーム分用意し、それぞれの動作周波数を独立に設定できるようにすることで、常に一定の動作周波数であるカメラインタフェースＣＩからの入力画像データの書き込み動作と、必要演算量の算出値に基づいて動作周波数が変動する入力画像データの読み出し動作を、互いに妨げることなく実行することができる。
動作電圧・動作周波数制御回路４ａは、ＰＬＬ４ｂ，ＤＣ−ＤＣコンバータ４ｃと互いに信号を送受信可能となっており、これらは動作電圧・動作周波数制御手段４として機能している。動作電圧・動作周波数制御回路４ａは、プロセッサコア１ａからの信号１００ｅにより動作電圧・動作周波数指示１０２を受け、その指示１０２に基づいてＰＬＬ４ｂに対して信号１００ｕを発信し、ＤＣ−ＤＣコンバータ４ｃに対して信号１００ｖを発信する。ＰＬＬ４ｂは信号１００ｕに基づいて動作周波数信号１００ａを発信し、ＤＣ−ＤＣコンバータ４ｃは信号１００ｖに基づいて動作電圧１００ｂを供給する。これにより、Ｆｉｇ２において点線で示される制御領域ＣＡに含まれる要素（プロセッサ１、メモリＭＲ、入力フレームメモリ７ａ，７ｂ、バスコントローラＢＣ等）について、動作周波数と動作電圧が制御される。信号１００ｅ，１００ｊ，１００ｋ，１００ｌ，１００ｍ，１００ｏ，１００ｐ，１００ｑ，１００ｒ，１００ｓは、ＰＬＬ４ｂが出力する動作周波数信号１００ａ，ＤＣ−ＤＣコンバータ４ｃが出力する電源電圧供給１００ｂの値に応じて周波数と信号レベルが変化する。
プロセッサ１上で動作する動画像符号化手段５による符号化後の符号化データ１０６は、バスＢ１を介してビットストリームインタフェースＢＩに信号１００ｍとして送信されて信号１００ｎとして出力されるとともに、局部復号フレームメモリ６として機能するメモリＭＲに送信される。また、画像のデータなどは、バスＢ１を介してメモリから信号１００ｑとして読み出され、ディスプレイインタフェースＤＩに送信される。ディスプレイインタフェースＤＩに受信された信号１００ｑは、信号１００ｔによるビデオデータとして出力される。ビデオデータは、ディスプレイインタフェースＤＩと接続されるモニタを介して、動画像として出力・表示される。
動作電圧・動作周波数制御回路４ａ，ディスプレイインタフェースＤＩ，ビットストリームインタフェースＢＩは常に一定の動作電圧で動作するが、これらの間で送受信される信号１００ｅ，１００ｑ，１００ｍは制御領域ＣＡに含まれる要素（プロセッサ１やメモリＭＲや入力フレームメモリ７ａ，７ｂ等）の動作電圧の変更に応じて信号レベルが変動する。この影響を吸収するために、動作電圧・動作周波数制御回路４ａ，ディスプレイインタフェースＤＩ，ビットストリームインタフェースＢＩは、受信した信号１００ｅ，１００ｑ，１００ｍの信号レベルを補正するレベルコンバータを備えることが望ましい。
次に、Ｆｉｇ１に従って本実施の形態の動画像符号化処理システムＳ１の動作を説明する。動画像符号化処理システムＳ１は、動画像符号化処理プログラムＰｒｇ１によりコンピュータ（特にコンピュータ内のマルチメディア信号処理部）を下記の所定の手段として機能させることにより実現される。以下、順次符号化されるフレームのうちこれから符号化される任意の一のフレームを現フレーム（すなわち、あるフレームが符号化された時点を基準とすると次に符号化されるフレームであり、換言すると、その時点において未だに符号化処理されておらず未来に符号化処理が行われる予定であるフレーム）、現フレームより前に符号化された一のフレーム（過去に符号化されたフレーム）を前フレームとし、現フレームを符号化する処理について説明するが、いずれのフレームについても同様の処理が行われる。
Ｆｉｇ３はその動画像符号化処理プログラムＰｒｇ１の概略フローチャートを示す図である。動画像符号化処理プログラムＰｒｇ１は、後述するステップ１からステップ５においてコンピュータを下記の各手段として機能させる。（ステップ１）現フレームの画像情報を入力フレームメモリ７に入力する。（ステップ２）現フレームの必要演算量Ｋｐを計算させる必要演算量計算手段２として機能させる。（ステップ３）算出された必要演算量Ｋｐに応じてプロセッサの動作周波数Ｆ及び動作電圧Ｖを計算させる動作電圧・動作周波数計算手段３として機能させる。（ステップ４）算出された動作周波数Ｆ及び動作電圧Ｖでプロセッサ１を動作させる制御を行わせる動作電圧・動作周波数制御手段４として機能させる。（ステップ５）現フレームの画像情報を符号化させる動画像符号化手段５として機能させる。以上、ステップ１からステップ５の処理を入力フレームメモリ７に入力されるフレームの順番（すなわち、符号化される順番）に、すべてのフレームに対して行うことで、動画像の符号化を行う。以下、詳細に説明する。
（ステップ１）入力された入力画像データは、フレームの同期をとるため、フレームを一時的に記憶する記憶領域である入力フレームメモリ７に一旦格納される。
（ステップ２）必要演算量計算手段２は、入力フレームメモリ７にアクセスして現フレームの入力画像データ１０１を取得し、現フレームの符号化処理に必要な必要演算量Ｋｐを計算する。必要演算量Ｋｐの計算方法は様々な方法が考えられるが、たとえば、現フレームの符号化処理の演算量に影響を与える要素を一つ以上使用して計算することが望ましい。要素としては、例えば、動画像符号化処理において、処理内容が動き補償である場合は、動きの激しい映像では演算量が多く、一方、動きの少ない映像では演算量が少ないことに注目して、現フレームと前フレームとの動き量として差分絶対値和で計算される歪み値や、また、各々のフレームのアクティビティ量として隣接画素差分絶対値和で計算される値や、マクロブロックマッチング回数や、有効ブロック数や、有効係数の数や、符号化ビットレートや、発生ビット数や、前フレームの符号化に実際に要した演算量や、必要演算量計算手段２により算出された前フレームの必要演算量が挙げられる。ここで、各要素それぞれについて、一つの要素の値のみ変化し、他の要素の値が変化しないと仮定したときに、その一つの要素の値が大きい場合は小さい場合に比較して必要演算量が相対的に大きくなるようにし、その一つの要素の値が小さい場合は大きい場合と比較して必要演算量が相対的に小さくなるようにする。また、現フレームがフレーム内符号化である場合はフレーム間符号化である場合と比較して必要演算量Ｋｐが相対的に小さく、フレーム間符号化である場合はフレーム内フレームである場合と比較して必要演算量Ｋｐが相対的に大きくなるようにする。すなわち、これらの複数の要素は現フレームの符号化処理のために必要な必要演算量に影響を与える要素であるため、必要演算量計算手段２が、これらの要素に応じて必要演算量Ｋｐ（サイクル）を増減するように計算を行うことにより、必要演算量計算手段２により計算される必要演算量Ｋｐが現実に符号化処理を行ったときの演算量により近い値となる。
たとえば、本実施の形態では、関数Ｇを使用して計算し、入力フレームメモリ７に記憶されている現フレームの入力画像データ１０１と、局部復号フレームメモリ６に蓄積されている復号化された前フレームの局部復号データ１０３とを比較して、入力画像の動きの大きさの予測（計算）を行う。この前フレームの局部復号データ１０３は、現フレームよりも前に符号化が行われる前フレームの符号化処理において、前フレームを符号化して形成した前フレームの符号化データ１０６を、ローカルデコーダで復号化することにより形成され、局部復号フレームメモリ６に記憶されている。動きの大きさの予測（計算）の一例として、例えば差分絶対値和を用いる。以下に、差分絶対値和Σと必要演算量Ｋｐの求め方を説明する。なお、前フレームの画像データとしては、符号化後にローカルデコーダにより復号化された局部復号データ１０６を使用しても良いが、入力された前フレームの入力画像データをそのまま使用しても良い。
入力フレームメモリ７に蓄積された現フレームの入力画像データ１０１をＸ（ｉ，ｊ）（ｉは画像の水平方向の座標、ｊは垂直方向の座標）、後述する局部復号フレームメモリ６に蓄積された前フレームの局部復号データ１０３をＹ（ｉ，ｊ）（ｉは画像の水平方向の座標、ｊは垂直方向の座標）とすると、現フレームと前フレームとの動き量は、差分絶対値和Ｚ＝Σ｜Ｘ（ｉ，ｊ）−Ｙ（ｉ，ｊ）｜をすべての（またはサンプルした）画素に対して計算する。この差分絶対値和の値をＺとする。一方、フレームのアクティビティ量においては、Ｘ（ｉ，ｊ）において隣接画素差分絶対値和Ｗ、つまり、水平方向Ｗｈ＝Σ｜Ｘ（ｉ，ｊ）−Ｘ（ｉ−１，ｊ）｜、垂直方向Ｗｖ＝Σ｜Ｘ（ｉ，ｊ）−Ｘ（ｉ，ｊ−１）｜を計算することにより求められ、全ての（又はサンプルした）入力画像に対して計算する。この隣接画素差分絶対値和の値（すなわち各フレームのアクティビティ量）をＷとする。
差分絶対値和をＺ、現フレームのアクティビティ量をＷａ、前フレーム（過去のフレーム）のアクティビティ量をＷｂ、前フレームの平均量子化ステップサイズ（量子化ステップサイズの平均値）をＱｐｒｅｖ、前フレームのマクロブロックマッチング回数をＭ、前フレームの有効ブロック数をＢ、前フレームの有効係数の数をＣ、前フレームの符号化に実際に要した処理量をＳ、現フレームの符号化ビットレートをＢＲ、前フレームの量子化ステップサイズの平均値とその一つ前のフレームの量子化ステップサイズの平均値の差をΔＱｐｒｅｖ、前フレームの実際の発生ビット数をＤ、算出された前フレームの必要演算量をＫｐ’とおくと、これらの要素のうち一つ以上の要素を使用して、必要演算量Ｋｐは、
2004093458.tif 000003
で計算される。ただし、ＧはＺ，Ｗａ，Ｗｂ，Ｑｐｒｅｖ，Ｍ，Ｂ，Ｃ，Ｓ，ＢＲ，ΔＱｐｒｅｖ，Ｄ，Ｋｐ’のうち、一以上の要素から導き出される関数である。その一例としては、
2004093458.tif 000004
が挙げられるが、これに限られるわけではない。また、必要演算量Ｋｐの計算に使用される要素として、現フレームがフレーム内符号化であるかフレーム間符号化であるかの種類Ｉが使用される。現フレームがフレーム内符号化である場合の必要演算量Ｋｐは小さい値と、フレーム間符号化である場合の必要演算量Ｋｐは大きい値となる。すなわち、必要演算量計算手段２は、差分絶対値和Ｚを使用するときは差分絶対値和Ｚ＝Σ｜Ｘｉｊ−Ｙｉｊ｜を計算した後に、必要演算量Ｋｐ＝Ｇ（Ｚ，Ｗａ，Ｗｂ，Ｑｐｒｅｖ，Ｍ，Ｂ，Ｃ，Ｓ，ＢＲ，ΔＱｐｒｅｖ，Ｄ，Ｋｐ’）を計算する。
以下、上記関数Ｇについて説明する。前フレームと現フレームの間で画像の変化が大きい（小さい）場合、すなわち差分絶対値和Ｚが大きい（小さい）場合、現フレームで実行されるマクロブロックマッチングの回数は大きく（小さく）なり、現フレームの動き検出処理に必要な演算量（実行されるマクロブロックマッチング回数に依存する）が大きく（小さく）なる。また、現フレームのアクティビティ量Ｗａが大きい（小さい）場合、現フレームは画像の高周波成分を多く（少なく）含むことを意味し、この場合、現フレームの符号化処理で発生する有効ブロックの数、有効係数の数は大きく（小さく）なり、現フレームのＩＤＣＴ処理に必要な演算量（発生する有効ブロックの数に依存する）、ＩＱ処理に必要な演算量（発生する有効係数の数に依存する）、ＶＬＣ処理に必要な演算量（発生する有効係数の数に依存する）は大きく（小さく）なる。したがって、上記関数ＧはＺ，Ｗａなどのパラメータが大きい（小さい）場合、Ｈｐを大きく（小さく）設定するように構成する。
動画像は連続するフレーム間での相関が大きいため、符号化処理で実行されるマクロブロックマッチング回数、符号化処理で発生する有効ブロック数、有効係数の数、符号化処理で必要となる演算量、アクティビティ量は、時間的に連続するフレーム間で非常に近い値となる。したがって、Ｍ，Ｂ，Ｃ，Ｓ，Ｗｂが大きい（小さい）場合、現フレームにおいてもマクロブロックマッチング回数、有効ブロック数、有効係数の数、符号化処理に必要となる演算量、アクティビティ量が大きく（小さく）なる確率が高い。さらに、必要演算量計算手段で算出される予測演算量が実際の符号化処理に要した演算量に近い値となる場合、Ｓ≒Ｈｐ’となる。したがって、上記関数ＧはＭ，Ｂ，Ｃ，Ｓ，Ｗｂ，Ｈｐ’などのパラメータが大きい（小さい）場合、Ｈｐを大きく（小さく）設定するように構成する。
ターゲットビットレートが大きい（小さい）場合、量子化ステップサイズの値は小さく（大きく）設定され、その結果、符号化処理で発生する有効ブロックの数、有効係数の数は大きく（小さく）なる。また、前フレームの発生ビット数がターゲットビットレートと比較して大きい（小さい）場合、現フレームの量子化ステップサイズの値は小さく（大きく）設定され、符号化処理で発生する有効ブロックの数，有効係数の数は小さく（大きく）なる。したがって、上記関数Ｇは現フレームの符号化ビットレートＢＲが大きい（小さい）場合、Ｈｐを大きく（小さく）設定するように、前フレームの実際の発生ビット数ＤがＢＲと比較して大きい（小さい）場合、Ｈｐを小さく（大きく）設定するように構成する。さらに、前フレームの平均量子化ステップサイズＱｐｒｅｖや前フレームの量子化ステップサイズの平均値とその一つ前のフレームの量子化ステップサイズの平均値の差ΔＱｐｒｅｖを考慮することで、上記関数Ｇが算出するＨｐが実際に現フレームを符号化するために必要となる演算量に近い値とすることができる。
（第１の破綻回避ステップ）また、さらに破綻現象を生じにくくするため、必要演算量計算手段２に含まれる第１の破綻回避手段１１が必要演算量Ｋｐを所定値だけ増加させ、算出された必要演算量Ｋｐに余裕を持たせる処理を行う。具体的には、必要演算量Ｋｐをｍ倍（ｍは１以上の実数）する。たとえばｍ＝１．１とすると、算出した必要演算量Ｋｐに対し、１０％の余裕を持たせることができる。また、必要演算量Ｋｐに実数ｎ（ｎは０以上の実数）を加算しても良く、算出された必要演算量の値に関わらず一定の値で余裕を持たせることができる。上述の例を用いると、最終的に算出される必要演算量Ｋｐは、
2004093458.tif 000005
により求められる。２式を組み合わせて、
2004093458.tif 000006
としてもよい。それでも算出された必要演算量Ｋｐが現実の現フレームの必要演算量Ｋｍより小さければ、後述する第２の破綻回避手段である処理完了判断手段９において処理を行うことにより破綻現象を回避する。
なお、動画像の符号化ビットレート１０９や、現フレーム及び前フレームについてフレーム内符号化であるかフレーム間符号化であるかの種類１０８や、前フレームのアクティビティの量１１０や、必要演算量計算手段により算出された前フレームの必要演算量１１６は要素が記憶される記憶領域である要素メモリ８に予め記憶されており、必要演算量Ｋｐの計算時に必要演算量計算手段２に読み込まれて使用される。前フレームの量子化ステップサイズの平均値１０７、前フレームのマクロブロックマッチング回数１１１、前フレームの有効ブロック数１１２、前フレームの有効係数の数１１３、前フレームの量子化ステップサイズの平均値とその一つ前のフレームの量子化ステップサイズの平均値との差１１４、及び前フレームの符号化に実際に要した処理量１１５は前フレームの符号化処理が行われたときに動画像符号化手段５から必要演算量計算手段２にフィードバックされる。必要演算量計算手段２においては、これらの要素のうち一つの要素のみを使用しても良いし、複数の要素を組み合わせて使用しても良い。
（ステップ３）動作電圧・動作周波数計算手段３は、必要演算量Ｋｐの値をもとに、現フレームの処理に対する動作周波数Ｆｅ（サイクル／秒）を予測する計算を行う。すなわち、符号化方式により処理時間が規定されている最小単位は１フレームであり、現フレームの符号化処理に割り当てられた時間をＴｅ（秒）とすると、現フレームに必要とされる動作周波数Ｆｅ（サイクル／秒）、すなわち時間Ｔｅ（秒）内に前記必要演算量Ｋｐを符号化処理可能な動作周波数Ｆｅ（サイクル／秒）はＦｅ＝Ｋｐ／Ｔｅで表されることから、動作電圧・動作周波数計算手段３は動作周波数Ｆｅ＝Ｋｐ／Ｔｅを計算する。ただし、所定フレームの符号化処理に割り当てられた時間Ｔｅは、１フレームの処理の制限時間Ｔｆから、所定フレームに対する演算量を予測する時間Ｔｐ及びプロセッサの動作周波数・動作電圧・基板バイアス電圧を変更する時間Ｔｓを引いた時間である。Ｆｉｇ５に示すように、プロセッサ１および（又は）局部復号メモリ６等を含めた周辺装置がサポートする動作電圧・動作周波数がｒ段階（ｒは２以上の整数）で変更可能な場合、動作電圧・動作周波数計算手段３は、Ｆ（ｒ）＞Ｆｅであり、且つＦ（ｒ−１）＜Ｆｅとなる動作周波数Ｆ（ｒ）を現フレームの符号化処理を行う動作周波数として選択する計算を行い、その動作周波数Ｆ（ｒ）に適する動作電圧Ｖ（ｒ）を選択する計算を行い、プロセッサ１および（又は）局部復号メモリ６等を含めた周辺装置をその動作周波数Ｆ（ｒ）と動作電圧Ｖ（ｒ）で動作させるように、動作電圧・動作周波数を動作電圧・動作周波数制御手段４に指示する（符号１０２）。
（ステップ４）動作電圧・動作周波数制御手段４は、動作電圧・動作周波数計算手段３から指示を受けた動作電圧Ｖ（ｒ）及び動作周波数Ｆ（ｒ）の値をプロセッサ１および（又は）局部復号メモリ６等を含めた周辺装置に供給し（符号１０５）、その動作電圧Ｖ（ｒ）及び動作周波数Ｆ（ｒ）でプロセッサ１を一定に動作させる制御を行う。これにより、プロセッサ１および（又は）局部復号メモリ６等を含めた周辺装置は、一定の動作電圧Ｖ（ｒ）及び動作周波数Ｆ（ｒ）で動作することになる。
（ステップ５）動画像符号化手段５は、動画像符号化処理プログラムＰｒｇ１によりコンピュータのプロセッサ１上で実現される手段であり、プロセッサ１を使用して入力フレームメモリ７に格納された入力画像データを動画像符号化を行う単位でアクセスし、符号化処理を行う手段である。すなわち、動画像符号化手段５は、入力フレームメモリ７から現フレームの入力画像データ１０１を取得し、符号化して符号化データ１０６を生成する。ステップ４において、プロセッサ１および（又は）局部復号メモリ６等を含めた周辺装置は動作電圧・動作周波数制御手段４から供給された一定の動作電圧Ｖ（ｒ）及び動作周波数Ｆ（ｒ）で動作している状態となっているため、ステップ５では、動作電圧・動作周波数制御手段４がその動作周波数Ｆ（ｒ）及び動作電圧Ｖ（ｒ）でプロセッサ１および（又は）局部復号メモリ６等を含めた周辺装置を一定に動作させながら、そのプロセッサ１を使用して符号化を行う動画像符号化手段５が現フレームの符号化を行うこととなる。たとえば動きの激しい画像（現フレームの入力画像データ１０１）に対してはプロセッサ１および（又は）局部復号メモリ６等を含めた周辺装置を高い周波数で一定に動作させ、動きの少ない画像に対しては低い周波数で一定に動作させることにより低消費電力化を図ることが可能になる。さらに、動画像符号化手段５は、符号化データ１０６を復号する機能を有するローカルデコーダを備えており、現フレームの符号化データ１０６はローカルデコーダにより復号されて局部復号フレームメモリ６に局部復号データ１０３として蓄積される。この現フレームの局部復号データ１０３は現フレームの次に符号化されるフレームについて必要演算量Ｋｐを計算する際に使用される。現フレームの符号化データ１０６は伝送路を通じて送信されたり、蓄積メディアに蓄積される。
（第２の破綻回避ステップ）さらに、上記必要演算量計算手段２で算出された必要演算量Ｋｐが現実の現フレームの必要演算量よりも小さい場合、現フレームの処理に割り当てられた時間Ｔｅ内に処理が完了せず、破綻現象が生じる。そこで、本システムＳ１は、前記一のフレームの符号化又は復号化処理に予め割り当てられている時間Ｔｅ内に当該一のフレームの符号化処理が完了しない場合には破綻現象を回避する処理を行う第２の破綻回避手段を備える。本実施の形態では、第２の破綻回避手段として処理完了判断手段９を備える。処理完了判断手段９は、ステップ５において動画像符号化手段５が現フレームの入力画像データ１０１の符号化処理ルーチンを実行している際に、所定のタイミングで符号化処理ルーチンに割り込みを行い、処理時間内で一時中断し、現フレームの符号化処理が終了しているか終了していないかを判定する。符号化がなされていないマクロブロックがある場合は、前記必要演算量計算手段で算出された必要演算量が実際に必要な演算量よりも小さく、時間Ｔｅ内に処理が完了せずに破綻現象が生じる可能性が高いと判断できるため、当該マクロブロックに対して無効ブロック化処理を行う。ここでは、処理完了判断手段９により、少なくとも破綻現象が起きない時点で割り込みを行った際に符号化処理が完了していなければ、残りの処理を大幅に削減できる処理に変更するなどの無効ブロック化処理を行うことにより、時間内に符号化処理が完了できないという破綻現象を回避できるようにしている。
以下に、処理完了判断手段９について具体的に説明する。Ｆｉｇ４は割り込みを行う際の時間と演算残量の関係を示している。動作周波数Ｆで動作する現フレームの処理に割り当てられた時間Ｔｅ内で、１フレームのマクロブロック数をＭＢとし、１つのマクロブロックを無効マクロブロックとして処理する際に必要な演算量をＫｓとする。ただし、無効マクロブロックとして処理する際に必要な演算量Ｋｓは、１マクロブロックの通常の処理に要する演算量に比べはるかに小さい値であり、どのフレームのマクロブロックに対しても同様の処理を行う。処理完了判断手段９は、割り込みを行う時間ＴｉをＴｉ＝Ｔｅ−Ｋｓ×ＭＢ／Ｆで算出する。割り込みを行う時間は、前記動作電圧・動作周波数計算手段３が計算しても良い。次に、処理完了判断手段９は、時間Ｔｉのタイミングで符号化処理ルーチンに割り込みを行い、処理済マクロブロック数レジスタ１０から符号化処理が終了したマクロブロックの数ＭＢｉ（符号１１７）の読み出しを行って、ＭＢｉ＝ＭＢであるか、ＭＢｉ＜ＭＢであるかを判断し、符号化処理完了の有無を判定する。ＭＢｉ＝ＭＢであれば、現フレームの符号化処理が完了しているので、そのまま割り込みルーチンを終了して符号化処理ルーチンに戻る。ＭＢｉ＜ＭＢであれば、現フレームの符号化処理が終了していないので、必要演算量計算手段２で算出された必要演算量が実際に必要な演算量よりも小さいと判断し、符号化未処理のマクロブロック総てを無効ブロックとして処理を行い、符号化処理ルーチンに戻る。時間Ｔｉのタイミングで割り込みを行う時点で、少なくとも全てのマクロブロックを無効ブロックとして処理する演算量は確保されているため、必ず破綻現象を回避することができる。
なお、無効ブロック化処理に換えて、後述するようにプロセッサ１の動作周波数及び動作電圧を上げることにより、破綻現象を回避しても良い。この場合は、現フレームの符号化処理に予め割り当てられている時間内に、符号化未処理のマクロブロック総てを符号化できる程度の時間を残したタイミングで割り込みを行う。
（証明）
以下に、プロセッサの動作電圧及び動作周波数を複数回変更しながら一のフレームを符号化する従来技術と比較して、本願発明がより低消費電力化を図ることができることを証明する。たとえば、ある特定の時間Ｔｔにある特定の演算量Ｋｔを行う場合、その特定の時間の間は、同一周波数で制御を行い、周波数Ｆｔを
2004093458.tif 000007
に設定すると低消費電力を実現できる。たとえば、プロセッサ１の動作電圧及び動作周波数はＦｉｇ５に示すようにＰ段階に可変とし、任意の一のフレームの必要演算量をＫｔとし、そのフレームの処理に割り当てられる時間をＴｔとする。Ｆｉｇ６（ａ）に示すように、動作周波数をＦｔと設定し、プロセッサ１を動作周波数Ｆｔで動作させるときの動作電圧をＶＤＤとし、時間Ｔｔで必要演算量Ｋｔの処理が終了する場合（すなわち、動作周波数が一定の場合）をＣａｓｅ１とし、Ｆｉｇ６（ｂ）に示すように、初期値の動作周波数をｈ＊Ｆｔと設定し、プロセッサを動作周波数ｈ＊Ｆｔで動作させるときの動作電圧をＶ１とし、時間Ｔ１が経過した時点でプロセッサの動作周波数をｈ＊Ｆｔ／２に変更し、プロセッサ１を動作周波数ｈ＊Ｆｔ／２で動作させるときの動作電圧をＶ２とし、時間Ｔ１＋Ｔ２で必要演算量Ｋｔの処理が終了する場合（すなわち、動作周波数の切り替えが１回行われる場合）をＣａｓｅ２とし、各Ｃａｓｅ１，Ｃａｓｅ２について前記任意の一のフレームを符号化する場合を考えてみる。どちらも同一の演算量、すなわちＫｔ（サイクル）となる。一方、消費電力は、
2004093458.tif 000008
α：係数、Ｃ：プロセッサのトランジスタ数
ｆ：動作周波数、ＶＤＤ：動作電圧、ｔ：動作時間
で表される。これを用いてＣａｓｅ１の消費電力ＰａとＣａｓｅ２の消費電力Ｐｂを計算すると、
2004093458.tif 000009
となり、
2004093458.tif 000010
となる。ここでたとえばｈ＝１．５、Ｔ１＝１／３×Ｔｔ、Ｔｂ＝２／３×Ｔｔ、Ｖ＝１，Ｖ１＝１．５，Ｖ２＝０．７５とすると、
2004093458.tif 000011
となり、Ｐａ＜Ｐｂとなる。すなわち、決められた演算量を一定時間で処理する場合、同一演算量Ｋｔにもかかわらず、Ｃａｓｅ１の場合のように、その時間内で処理が終了可能な最小の動作周波数により、その処理時間を通してプロセッサを一定に動作させるほうが、従来のように処理時間中に動作周波数を変更するＣａｓｅ２場合よりも低消費電力であることがわかる。したがって、一定の動作電圧及び動作周波数でプロセッサ１を動作させながら一のフレームの符号化処理を行う本発明によれば、ブロックごとに動作電圧及び動作周波数が決定されるため一のフレームの符号化中に何度も動作電圧及び動作周波数が変更される従来技術と比較して、低消費電力化が図られることがわかる。
（第２の実施の形態）
Ｆｉｇ７は、第２の実施の形態の動画像符号化処理システムＳ２の動作を示した概略ブロック図である。本実施の形態の動画像符号化処理システムＳ２は、前記第１の実施の形態の動画像符号化処理システムＳ１において、第２の破綻回避手段として、処理完了判断手段９と処理済マクロブロック数レジスタ１０に替えて演算残量判断手段２９を少なくとも備える。Ｆｉｇ８はその動画像符号化処理プログラムＰｒｇ２と、それにより実現される動画像符号化処理方法の概略フローチャートを示す図である。プログラムＰｒｇ２は、コンピュータを各手段を備える動画像符号化処理システムＳ２として機能させるプログラムであり、符号化処理（ステップ５）に割り込んで実行される第２の破綻回避ステップを備える。動画像符号化処理システムＳ２は、前記動画像符号化処理システムＳ１とは異なり、プロセッサ１および（又は）局部復号メモリ６等を含めた周辺装置を動作させている動作周波数及び動作電圧を変更する動的動作電圧・動作周波数制御を行うことで、上述の問題を解決するというものである。以下、動的動作電圧・動作周波数制御について詳述する。
現フレームの処理に対する動作周波数及び動作電圧は必要演算量計算手段２により算出された値をもとに動作電圧・動作周波数計算手段３により算出される。しかし、算出された必要演算量Ｋｐの値が現実に現フレームの処理に必要な必要演算量Ｋｍよりも小さい場合、必要演算量Ｋｐの値をもとに算出された動作周波数及び動作電圧もまた、現実に現フレームの処理に適した動作周波数及び動作電圧より小さい値となる。
（第２の破綻回避ステップ）動画像符号化処理システムＳ２では、前記動画像符号化処理システムＳ１と同様に動画像符号化手段５にＮ回の割り込み処理を等間隔に設けて符号化処理を一時中断し、その割り込みの時点において、演算残量判断手段２９が、必要演算量計算手段２で算出された現フレームの必要演算量の残量である演算残量Ｋｉと、動画像符号化手段５による所定のフレームの符号化処理において実際に必要な演算量の残りの演算量とを比較する。すなわち、ｉ回目の割り込み処理では、演算残量判断手段２９は、現フレームの処理に割り当てられている残りの時間Ｔｉとプロセッサ１の動作周波数Ｆを測定し、演算残量Ｋｉを数式Ｋｉ＝Ｔｉ×Ｆで計算する。また、演算残量判断手段２９は、１回目から（ｉ−１）回目までの割り込み処理時刻Ｔ１，Ｔ２，・・・，Ｔ（ｉ−１）、および、各割り込み時刻でのプロセッサの動作周波数Ｆ１，Ｆ２，・・・，Ｆ（ｉ−１）を保持し、これらの値をもとに現フレームの処理開始時刻からｉ回目の割り込み処理発生時刻までに、現フレームの処理に費やされた演算量Ｋｐｍを数式Ｋｐｍ＝ΣＦｊ×（Ｔ（ｊ＋１）−Ｔｊ）を用いて計算する。ただし、Ｆ０は現フレームの処理開始時に設定されていたプロセッサの動作周波数、ｊ＝０，１，・・・，（ｉ−１）である。つぎに、演算残量判断手段２９は、Ｋｉ≧Ｋｐｍ×（ＭＢ−ＭＢｉ）／ＭＢｉであるかＫｉ＜Ｋｐｍ×（ＭＢ−ＭＢｉ）／ＭＢｉであるかを判断する。計算された演算残量Ｋｉおよび現フレームの処理に費やされた演算量Ｋｐｍが数式Ｋｉ≧Ｋｐｍ×（ＭＢ−ＭＢｉ）／ＭＢｉを満たすとき、割り込み処理を終了し、符号化処理ルーチンに戻る。動画像符号化手段５は、（ｉ＋１）回目の割り込み処理発生時刻まで、現フレームの処理を継続する。演算残量判断手段２９は、計算された演算残量Ｋｉおよび現フレームの処理に費やされた演算量Ｋｐｍが数式Ｋｉ＜Ｋｐｍ×（ＭＢ−ＭＢｉ）／ＭＢｉを満たすとき、必要演算量計算手段２で算出された必要演算量が実際に必要な演算量よりも小さいと判断し、動作電圧・動作周波数制御手段４に対し動作電圧および動作周波数を一段階上げる指示をする（符号１０４）。ここで、動作電圧及び動作周波数を二段階以上上げるように指示しても良い。なお、ＭＢは現フレームに含まれるマクロブロックの総数、ＭＢｉはｉ回目の割り込み処理発生時刻における現フレームの符号化処理済みマクロブロック数を表す。以上の処理を設けることにより、現フレームの処理の途中でプロセッサの動作周波数を上げることができるため、現フレームの処理開始時にプロセッサに設定された動作周波数が、現フレームの処理に必要な演算量を実現するために必要な動作周波数より小さく設定されたとしても、破綻現象を生ずることなく現フレームの処理を終了することができるようになる。なお、動画像符号化手段５への割り込み時刻は等間隔のＮ回に限らず、任意の間隔のＮ回で行ってもよい。また、数式Ｋｉ≧Ｋｐｍ×（ＭＢ−ＭＢｉ）／ＭＢｉおよび数式Ｋｉ＜Ｋｐｍ×（ＭＢ−ＭＢｉ）／ＭＢｉのかわりに、Ｋｉ≧Ｋｐｍ×（ＢＬ−ＢＬｉ）／ＢＬｉおよびＫｉ≧Ｋｐｍ×（ＢＬ−ＢＬｉ）／ＢＬｉを用いてもよい。ここでＢＬは現フレームに含まれるブロックの総数��ＢＬｉはｉ回目の割り込み処理発生時刻における現フレームの処理済みブロック数を表す。
なお、本システムＳ２についても第１の破綻回避手段１１を備えても良い。
（第３の実施の形態）
本発明の第３の実施の形態の動画像復号化処理システムＳ３は、符号化された動画像を復号化するシステムである。Ｆｉｇ９は動画像復号化処理システムＳ３の動作を示した概略ブロック図である。本実施の形態の動画像復号化処理システムＳ３は、動作電圧及び動作周波数がｒ段階（ｒは２以上の整数）に用意され且つプログラムにより動作電圧及び動作周波数を変更可能なプロセッサ１と、前記プロセッサ１の動作電圧及び動作周波数を制御する動作電圧・動作周波数制御手段４と、前フレームの復号化データを記憶する局部復号フレームメモリ３６と、プロセッサ１上で動作する演算残量判断手段３９とを備える。ただし，局部復号メモリ３６は動作電圧・動作周波数制御手段４により，プロセッサ１と同様に動作電圧・動作周波数が制御されてもよい。プロセッサ１は、プロセッサ１上で動作する必要演算量計算手段３２と、プロセッサ１上で動作する動作電圧・動作周波数計算手段３と、プロセッサ１上で動作する動画像復号化手段３５とを備える。符号３０１は入力符号化データ、符号１０２は動作電圧・動作周波数指示、符号１０５は動作電圧・動作周波数供給、符号３０６は復号化データであり、第１の実施の形態と同一符号は同一機能又はそれ相当の機能を有する部分である。符号化ではなく復号化を行う点及び下記以外の点は第２の実施の形態と同様である。
Ｆｉｇ９に従って、動画像復号化処理システムＳ３の動作を説明する。以下、順次復号化されるフレームのうちこれから復号化される任意の一のフレーム（すなわち、あるフレームが復号化された時点を基準とすると次に復号化されるフレームであり、換言すると、その時点において未だに復号化処理されておらず未来に復号化処理が行われる予定であるフレーム）を現フレーム、現フレームより前に復号化された一のフレーム（過去に復号化されたフレーム）を前フレームとし、現フレームを復号化する処理について説明するが、いずれのフレームについても同様の処理が行われる。コンピュータを動画像復号化処理システムＳ３として機能させる動画像復号化処理プログラムＰｒｇ３は、前記動画像符号化処理プログラムＰｒｇ１とほぼ同様であるが、ステップ５において、現フレームの符号化データを復号化させる動画像復号化手段３５としてコンピュータ（詳しくはコンピュータに内蔵されるプロセッサ１）を機能させる。動画像復号化処理システムＳ３に入力されてきた入力符号化データ３０１は、必要演算量計算手段３２に入力される。必要演算量計算手段３２は符号化データ３０１の一フレーム分（すなわち、現フレームの符号化データ３０１）の発生情報量（ビット数）ＦＢを計算し、必要計算量Ｋｐを予測する計算を行う。必要演算量Ｋｐは、
2004093458.tif 000012
で表される。ここで、ＦＢは現フレームもしくは前フレームの符号化データのビット数、ＭＶａは現フレームもしくは前フレームの動きベクトルの大きさの平均値、ＭＶｖは現フレームもしくは前フレームの動きベクトルの大きさの分散、Ｂは現フレームもしくは前フレームの有効ブロック数、Ｃは現フレームもしくは前フレームの有効係数の数、ＢＲは現フレームもしくは前フレームのビットレート、Ｑは現フレームもしくは前フレームの量子化ステップサイズの平均値、ΔＱは現フレームと前フレームの量子化ステップサイズの平均値の差もしくは前フレームと前々フレームの量子化ステップサイズの平均値の差、Ｉは現フレームがＩピクチャであるかＰピクチャであるかＢピクチャであるかの種類、Ｅは前フレームの復号化に実際に要した演算量、Ｐは必要演算量計算手段により算出された前フレームの必要演算量を表す。
現フレームの復号化に必要な演算量は、現フレームの復号化で実行されるＩＤＣＴ処理、ＩＱ処理、ＶＬＤ処理の実行回数に依存する。また、ＩＤＣＴ処理の実行回数は現フレームに含まれる有効ブロックの数に、ＩＱ処理およびＶＬＤ処理の実行回数は現フレームに含まれる有効係数の数に依存する。すなわち、現フレームに含まれる有効ブロックの数や有効係数の数が大きい（小さい）場合は、復号化処理に必要な演算量は大きく（小さく）なる。したがって、上記関数Ｇは、Ｂ，Ｃが大きい（小さい）場合、Ｈｐを大きく（小さく）設定するように構成する。
前フレームと現フレームの間で画像の変化が大きい（小さい）場合、動きベクトルの大きさの平均値ＭＶａや動きベクトルの大きさの分散ＭＶｖが大きく（小さく）なるが、このとき現フレームの有効ブロックの数や有効係数の数は大きく（小さく）なり、符号化処理に必要な演算量は大きく（小さく）なる。したがって、上記関数Ｇは、ＭＶａやＭＶｖが大きい（小さく）場合、Ｈｐを大きく（小さく）設定するように構成する。
現フレームがＩピクチャの場合、復号化データを生成するときに予測画像と差分画像の加算を行わなくてよいので、復号化処理に必要な演算量は小さくなる。したがって、上記関数Ｇは、現フレームがＩピクチャの場合、Ｈｐを小さく設定するように構成する。
符号化データのビット数ＦＢやフレームレートＢＲが大きい（小さい）場合、有効ブロックの数や有効係数の数は大きく（小さく）なる。したがって、上記関数Ｇは、ＦＢやＢＲが大きい（小さい）場合、Ｈｐを大きく（小さく）設定するように構成する。また、量子化ステップサイズはビットレートの制御に際して値が変更されるため、例えばＱやΔＱが大きい（小さい）場合、Ｈｐを小さく（大きく）設定するなどのように、量子化ステップサイズの平均値Ｑや量子化ステップサイズの平均値の差ΔＱを考慮することで、上記関数Ｇが算出するＨｐが実際に現フレームを復号化するために必要な演算量に近い値とすることができる。
動画像は連続するフレーム間での相関が大きいため、ＭＶａ，ＭＶｖ，Ｂ，Ｃ，ＢＲ，ＦＢ，Ｑは現フレームと前フレームとで近い値となる。したがって、これらのパラメータを上記関数Ｇで使用する場合は、現フレームでの値を用いても良いし、前フレームでの値を用いても良い。現フレームでの値を用いる場合は、入力符号化データを受信した後、このデータの一部を復号化し、値を取り出して用いる。このとき、現フレームでの値を用いることで予測演算量Ｈｐを実際の復号化処理に必要な演算量により近い値にすることができるメリットがある。前フレームでの値を用いる場合、現フレームの入力符号化データを受信する前に予測演算量Ｈｐを算出することができるため、入力符号化データを受信しながら、受信済みのデータ分について復号化処理を同時に行うことができるメリットがある。
また、動画像は連続するフレーム間での相関が大きいため、現フレームの復号化処理に必要な演算量は前フレームの復号化処理で実際に必要であった演算量Ｅと近い値となる。さらに、必要演算量計算手段で算出される予測演算量が実際の復号化処理に要した演算量に近い値となる場合、Ｐ≒Ｅとなる。したがって、現フレームの必要演算量をＥやＰをＦＢ，ＭＶａ，ＭＶｖ，Ｂ，Ｃ，ＢＲ，Ｑ，ΔＱなどのパラメータの大小に応じて増減させた値とする等のように、ＥやＰを考慮することで、上記関数Ｇが算出するＨｐが実際に現フレームを復号化するために必要な演算量に近い値とすることができる。
必要演算量計算手段３２においては、これらの要素のうち一つの要素のみを使用しても良いし、複数組み合わせて使用しても良い。すなわち、これらの複数の要素は現フレームの復号化処理のために必要な必要演算量に影響を与える要素であるため、必要演算量計算手段３２が、これらの要素に応じて必要演算量Ｋｐ（サイクル）を増減させるように計算を行うことにより、必要演算量計算手段３２により計算される必要演算量Ｋｐが現実に復号化処理を行ったときの演算量により近い値となる。
動作電圧・動作周波数計算手段３及び動作電圧・動作周波数制御手段４は、前記第１の実施の形態と同様である。動画像復号化手段３５は、現フレームの入力符号化データ３０１を復号化して復号化データ３０６を生成する。動画像復号化手段３５による復号化処理に際しては、動作電圧・動作周波数制御手段４により一定の動作電圧及び動作周波数でプロセッサ１を動作させながら復号化処理が行われる。フレームごとに、そのフレームの復号化処理の前に必要な必要演算量が算出され、その必要演算量に応じた一定の動作周波数及び動作電圧でプロセッサを動作させながらそのフレームの復号化が行われるため、フレームを分割して成る所定数のブロックごとに動作周波数及び動作電圧を変更する従来技術と比較して、低消費電力化を図ることができる。復号化データ３０６は、携帯電話やパソコンの画像表示部に動画像として表示されたり、ハードディスク等の記憶媒体に記憶される。
動画像復号化処理システムＳ３においても、第２の破綻回避手段として演算残量判断手段３９を備える。演算残量判断手段３９は、上記第２の実施の形態とほぼ同様であるが、符号化処理の演算量ではなく復号化処理の演算量について判断する点で異なる。演算残量判断手段３９により、破綻現象を回避することができる。なお、上記第１の実施の形態のように、第１の破綻回避手段として処理完了判断手段を備えるようにすることも可能である。なお、復号化処理において処理完了手段は備えず、無効ブロック化処理は行わない。
本発明の動画像符号化処理システムは、第１の破綻回避手段１１と、第２の破綻回避手段としての処理完了判断手段９と、第２の破綻回避手段としての演算残量判断手段２９，３９を、それぞれ単独で備えても良く、また、各手段を適宜組み合わせて備えても良い。たとえば、第１と各第２の破綻回避手段を総て備えるようにし、第１の破綻回避手段１１により必要演算量を増加させても破綻を回避できない場合は、第２の破綻回避手段としての演算残量判断手段２９，３９により動作電圧及び動作周波数を上げ、さらに、それでも破綻現象を回避不可能な場合は、第２の破綻回避手段としての処理完了判断手段９により符号化処理を簡易に行うなどの破綻回避処理を行うようにしても良い。また、上記動画像符号化処理プログラムは、プログラムと同様の機能を備えるハードウェアで実現されても良い。
【実施例１】  第１の実施の形態の動画像符号化システムＳ１についての実施例１を説明する。符号化の対象として７５枚のフレームから成る動画像データを使用し、符号化されるフレームとして３２番目のフレームを例に説明する。各フレームは１４４行１７６列の画素配列で構成されている。符号化処理としては、ＭＰＥＧ−４を使用する。動画像符号化システムＳ１のプロセッサ１は、動作周波数１８９ＭＨｚ〜４０５ＭＨｚ、動作電圧１．０６Ｖ〜１．８０Ｖであり、動作周波数２７ＭＨｚ及び動作電圧０．０９２５Ｖごとに等間隔で９段階に可変となっている。
まず、動画像符号化システムＳ１は、入力フレームメモリ７にアクセスして、３２番目のフレームを取得し、必要演算量計算手段２により、そのフレームの必要演算量Ｋｐを計算する。必要演算量Ｋｐは、具体的には、まず、前フレームとして３１番目のフレームを使用し下記の数式により差分絶対値和Ｚを算出する。
Ｚ＝Σ｜Ｘｉｊ−Ｙｉｊ｜＝２０２７５２
次に、現フレームである３２番目のフレームのアクティビティ量Ｗを下記の数式により算出する。
水平方向Ｗｈ＝Σ｜Ｘ（ｉ，ｊ）−Ｘ（ｉ−１，ｊ）｜＝７６０３２
垂直方向Ｗｖ＝Σ｜Ｘ（ｉ，ｊ）−Ｘ（ｉ，ｊ−１）｜＝１２６７２０
さらに、前フレームのマクロブロックマッチング回数Ｍ＝１５８０、前フレームの平均量子化ステップサイズ（量子化ステップサイズの平均値）Ｑｐｒｅｖ＝４、前フレームの有効ブロック数Ｂ＝３９９、前フレームの有効係数の数Ｃ＝６０１１、前フレームの符号化に実際に要した処理量Ｓ＝１５４４７１０５、現フレームの符号化ビットレートＢＲ＝６５５３６を得る。また、前フレームの量子化ステップサイズの平均値とその一つ前の３０番目のフレームの量子化ステップサイズの平均値の差ΔＱｐｒｅｖ＝−１を算出する。また、前フレームの実際の発生ビット数Ｄ＝５６７９７を得る。つぎに、各要素を使用して下記の数式により必要演算量Ｋｐを算出する。
Ｋｐ＝ｊ＋αＭ＋βＢ＋γＣ＋δＺ＋ε△Ｑｐｒｅｖ
以上より、本実施例１では必要演算量Ｋｐ＝１４４８１０５６が得られる。
さらに、各要素から算出された上記必要演算量Ｋｐ＝１４４８１０５６から下記の式で必要演算量Ｋｐを増加させる計算を行う。なお、ここでは上記数式３を例に説明する。
Ｋｐｆ＝１４４８１０５６×１．１＝１５９２９１６２
つぎに、下記の数式により動作周波数を計算する。
Ｆｅ＝Ｋｐｆ／Ｔｅ＝１５９２９１６２／（１／１５）＝２３９ＭＨｚ
Ｆ（ｒ）＞Ｆｅであり且つＦ（ｒ−１）＜ＦｅとなるＦ（ｒ）を計算し、プロセッサ１の９段階に可変な動作周波数のうち、この動作周波数を満たす動作周波数として、動作周波数２４３ＭＨｚ及び動作電圧１．２５Ｖを選択する。少なくともプロセッサ１を動作周波数Ｆ（ｒ）＝２４３ＭＨｚ及びこれに対応する動作電圧Ｖ（ｒ）＝１．２５Ｖで動作させるように、動作電圧・動作周波数制御手段４に指示する。動作電圧・動作周波数制御手段４は、少なくともプロセッサ１を動作電圧２４３ＭＨｚ及び動作周波数１．２５Ｖで一定に動作させる制御を行う。動画像符号化手段５は、入力フレームメモリ７からフレームＦを取得し、上記動作周波数２４３ＭＨｚ及び動作電圧１．２５Ｖで一定に動作させられた状態のプロセッサ１を使用して、符号化処理を行い符号化データを生成する。
さらに、符号化処理ルーチンを実行している際に、処理完了判断手段９は、下記の数式により割り込み時間を算出し、割り込みを行う。
Ｔｉ＝Ｔｅ−Ｋｓ×ＭＢ／Ｆ
＝０．０６６６６−３７×９９／（２４３００００００）
≒０．０６６６５
さらに処理完了判断手段９は、この割り込みのタイミングにおいてＭｂｉ＜ＭＢであるか否かを判断する。本実施例１では、Ｔｉ＝０．０６６６５のタイミングではＭＢｉ＜ＭＢであり、現フレームの符号化処理が終了していなかったので、残りのマクロブロック全てを無効ブロックとして処理を行い、符号化処理ルーチンに戻る。
【実施例２】  第２の実施の形態の動画像符号化システムＳ２についての実施例２を説明する。本実施例２では、符号化処理において４回の割り込みを行うように設定されている。演算残量判断手段２９は、第１回目と第２回目の割り込み時において、Ｋｉ＝Ｔｉ×Ｆ及びＫｐｍ＝ΣＦｊ×（Ｔ（ｊ＋１）−Ｔｊ）を計算し、さらに実際に必要な演算量の残量としてＫｐｍ×（ＭＢ−ＭＢｉ）を計算し、Ｋｉ≧Ｋｐｍ×（ＭＢ−ＭＢｉ）／ＭＢｉであるかＫｉ＜Ｋｐｍ×（ＭＢ−ＭＢｉ）／ＭＢｉであるかを判断する。本実施例２ではＫｉ≧Ｋｐｍ×（ＭＢ−ＭＢｉ）／ＭＢｉであったため、割り込みを終了し、第３回目の割り込みまで動画像符号化手段５が符号化処理を続行する。つぎの割り込みである第３回目の割り込み時においても同様に計算及び判断を行う。本実施例２ではＫｉ＜Ｋｐｍ×（ＭＢ−ＭＢｉ）／ＭＢｉであったため、動作周波数及び動作電圧を一段階上げた周波数Ｆｐ＋１＝２７０ＭＨｚ及び電圧Ｖｐ＋１＝１．３４を動作周波数及び動作電圧として、動作電圧・動作周波数制御手段４に指示する。
【産業上の利用可能性】  以上説明したように、本発明の動画像符号化又は復号化処理システムと動画像符号化又は復号化処理方法によれば、これから符号化又は復号化する現フレーム（未来に符号化又は復号化するフレーム）に対して、符号化又は復号化に要する必要演算量を予測する計算を行い、その現フレームの処理に割り当てられた時間内は最小限の動作周波数でほぼ一定に制御することにより、フレーム単位に動作電圧・動作周波数がダイナミックに制御されるため、低消費電力を実現することができる。
また、破綻回避手段を備えるため、算出された必要演算量が実際に必要な演算量よりも小さい場合に起きる破綻現象を回避することができ、符号化又は復号化処理された動画像が劣悪になるのを防止することができる。
【図１】
2004093458.tif 000013
【図２】
2004093458.tif 000014
【図３】
2004093458.tif 000015
【図４】
2004093458.tif 000016
【図５】
2004093458.tif 000017
【図６】
2004093458.tif 000018
【図７】
2004093458.tif 000019
【図８】
2004093458.tif 000020
【図９】
2004093458.tif 000021
【図１０】
2004093458.tif 000022
【図１１】
2004093458.tif 000023
【国際調査報告】
2004093458.tif 000024
2004093458.tif 000025
2004093458.tif 000026
2004093458.tif 000027
2004093458.tif 000028
2004093458.tif 000029