(57)【要約】【課題】  システムの状態に応じて可能な限りの高品質な符号化データを得る、フレーム間動き補償による符号化処理技術を提供すること。【解決手段】  処理時間計数部２１３は、符号化対象フレームの符号化を開始してからの経過時間を計時する。処理ＭＢ計数部２１２は、符号化対象フレームについて符号化したマクロブロックの個数をカウントする。閾値生成部２１４、２１５は、処理ＭＢ計数部２１２がカウントする個数が、予め定められた複数の基準個数の何れかを越える毎に、処理時間計数部２１３から経過時間を取得する。そして、探索回数決定部２１８は、経過時間と、第１の閾値、第２の閾値との比較結果に応じて、動き探索方法を決定する。【選択図】  図２
2009060536.tif 000002
【特許請求の範囲】
【請求項１】
フレーム間動き補償を用いて、符号化対象の画像をブロック毎に符号化する符号化手段を有する画像符号化装置であって、
前記符号化手段が符号化対象の画像の符号化を開始してからの経過時間を計時する計時手段と、
前記符号化手段が前記符号化対象の画像の符号化したブロックの個数をカウントするカウント手段と、
前記カウント手段がカウントする個数が、予め定められた複数の基準個数の何れかを越える毎に、前記計時手段から経過時間を取得する取得手段と、
前記取得手段が取得した経過時間と、予め定められた第１の閾値、第２の閾値との比較結果に応じて、前記符号化手段における動き探索方法を制御する制御手段と
を備えることを特徴とする画像符号化装置。
【請求項２】
前記第２の閾値は前記第１の閾値よりも小さな値を有し、
前記制御手段は、
前記取得手段が取得した経過時間が第１の閾値よりも大きい場合には、前記符号化手段による動き探索回数を減少させる第１の制御手段と、
前記取得手段が取得した経過時間が第２の閾値よりも小さい場合には、前記符号化手段による動き探索回数を増加させる第２の制御手段と
を備えることを特徴とする請求項１に記載の画像符号化装置。
【請求項３】
前記第１の制御手段は、前記取得手段が取得した経過時間と前記第１の閾値との差分に応じて、前記符号化手段による動き探索回数を減少させることを特徴とする請求項２に記載の画像符号化装置。
【請求項４】
前記第２の制御手段は、前記取得手段が取得した経過時間と前記第２の閾値との差分に応じて、前記符号化手段による動き探索回数を増加させることを特徴とする請求項２に記載の画像符号化装置。
【請求項５】
前記第１の閾値、前記第２の閾値は、前記符号化対象の画像において既に前記符号化手段が符号化したブロックの個数と、前記符号化対象の画像の画像サイズと、フレームレートと、に基づいて決まることを特徴とする請求項１に記載の画像符号化装置。
【請求項６】
フレーム間動き補償を用いて、符号化対象の画像をブロック毎に符号化する符号化手段を有する画像符号化装置が行う画像符号化方法であって、
前記符号化手段が符号化対象の画像の符号化を開始してからの経過時間を計時する計時工程と、
前記符号化手段が前記符号化対象の画像について符号化したブロックの個数をカウントするカウント工程と、
前記カウント工程でカウントする個数が、予め定められた複数の基準個数の何れかを越える毎に、前記計時工程から経過時間を取得する取得工程と、
前記取得工程で取得した経過時間と、予め定められた第１の閾値、第２の閾値との比較結果に応じて、前記符号化手段における動き探索方法を制御する制御工程と
を備えることを特徴とする画像符号化方法。
【請求項７】
コンピュータに請求項６に記載の画像符号化方法を実行させるためのプログラム。
【請求項８】
請求項７に記載のプログラムを格納したことを特徴とする、コンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フレーム間動き補償を用いた符号化技術に関するものである。
【背景技術】
【０００２】
従来、ＣＤ−ＲＯＭやハードディスク等の蓄積媒体に静止画像を保存したり、表示装置の画面に表示するための符号化方式としてＩＳＯ（国際標準化機構）により標準化されたＪＰＥＧ方式が広く用いられている。また、動画像と音声を同様の蓄積媒体に保存したり、表示装置の画面に表示したり、通信路を介して放送、または双方向通信したりするための符号化方式としてＩＳＯにより標準化されたＭＰＥＧ方式が広く用いられている。
【０００３】
動画像と音声の符号化方式であるＭＰＥＧ方式は、符号化効率の向上を目的として年々その符号化方式が改良されている。１９９２年にＭＰＥＧ−１、１９９４年にＭＰＥＧ−２、１９９９年にはＭＰＥＧ−４、２００３年にはＭＰＥＧ−４ＡＶＣ／Ｈ．２６４がそれぞれ国際標準として規定されている。
【０００４】
ＭＰＥＧ−４においては、符号化効率の向上はもちろんのこと、符号誤り訂正機能の強化や、符号化対象毎に最適な符号化を施すオブジェクト符号化の導入なども実現されている。さらには、ＭＥＰＧ−４シンタックス上のビジュアル層とオーディオ層を包含するファイル形式などを規定するシステム層においては、利用者が要求する任意の時刻の動画像または音声データに対して、容易にアクセスできる仕組みを提供している。
【０００５】
また、ＭＰＥＧ−４ＡＶＣ／Ｈ．２６４では、ＭＰＥＧ−４に対して更なる符号化効率向上を目指してフレーム間予測、フレーム内予測、エントロピー符号化などにおいて多種多様な新規符号化ツールが採用されている。
【０００６】
上述した動画符号化方式すべてにおいて動き補償フレーム間予測が行われており、処理対象マクロブロックの参照フレームに対する動き量を高精度に予測する方法が高能率符号化を行う上で重要な技術となっている。一方、主に目標符号量と過去の発生符号量に応じて量子化処理を更新する符号量制御の方法も、高画質な動画符号化を行う上で重要な技術である。
【０００７】
図３は、デジタルカメラやビデオカメラに代表される撮像システムの一般的なハードウェア構成図である。同図において、１はシステム全体を制御するＣＰＵ部、２はＣＰＵが使用するプログラムを格納したり処理された画像データを蓄積したりする主記憶部、３はメモリコントローラ部である。４は光学系から入力されるアナログ信号をデジタル信号に変換する撮像部、５は撮像部４が出力するデジタル信号に所望の画像処理を行う画像処理部、６は画像処理部５が自律的に主記憶部２にアクセスするためのＤＭＡコントローラ部である。７は画像処理が施された画像データを圧縮したり伸張したりする画像圧縮伸張部、８は画像圧縮伸張部７が自律的に主記憶部２にアクセスするためのＤＭＡコントローラ部、９は圧縮された画像データを蓄積するためのメモリカードである。１０はメモリカード制御部、１１は表示部、１２は表示コントローラ部、１３は上述した各機能ブロックが接続されるシステムバスである。
【０００８】
図１１は、図３に示される一般的な撮像システムにおける処理済みマクロブロック数と、処理開始から経過した処理時間との関係を示す図である。図１１では、マクロブロック数Ｎ６が１フレームを構成するマクロブロックの総数であり、処理時間Ｔ＿ＭＡＸがフレームレートから導出される、１フレームを処理し終えなければならない上限値である。画像圧縮伸張部７は、Ｎ６とＴ＿ＭＡＸの交点と原点とを結ぶ点線を超えないために十分な１マクロブロックあたりの処理性能を有する必要がある。原点を始点として単調増加する実線が実際の処理時間の推移を表しており、処理上限時間Ｔ＿ＭＡＸに対して十分に余裕を持って１フレームの処理が完了している。
【０００９】
図１２は、図３に示される一般的な撮像システムにおける処理済みマクロブロック数と、発生符号量との関係を示す図である。図１２では、マクロブロック数Ｎ６が１フレームを構成するマクロブロックの総数であり、発生符号量Ｒ＿ＴＡＲＧＥＴが撮像システムが達成すべき目標符号量である。画像圧縮伸張部７は、Ｎ６とＲ＿ＴＡＲＧＥＴとの交点と原点を結ぶ点線から極力乖離しないように自らの発生符号量をマクロブロック単位に制御することにより一定ビットレートによる圧縮符号化処理を実現する。原点を始点として単調増加する実線が実際の発生符号量の推移を表しており、１フレームの処理を通してほぼ一定のビットレートで圧縮符号化処理が行われている。
【特許文献１】特登録２６４４８１１号
【発明の開示】
【発明が解決しようとする課題】
【００１０】
図３に示される一般的な撮像システムにおいては、すべての機能ブロックが共有されたシステムバス１３を介して主記憶部２へアクセスしたり、お互いにデータを交換したりする。係る構成において、同時に多くのアクセス要求がシステムバス１３へ発行された場合、アクセス許可が遅延する機能ブロックが存在し得る。このようなシステムバス１３へのアクセス要求発生パターンは、撮影対象やユーザ操作によって変化するので、前もって予測することが非常に困難である。
【００１１】
図１３は、図３に示される一般的な撮像システムにおいて、システムバス１３へ同時に多くのアクセス要求が発行された場合の処理済みマクロブロック数と、処理開始から経過した処理時間との関係を示す図である。処理済マクロブロック数Ｎ１を過ぎた時点からシステムバス１３へ同時に多くのアクセス要求が発行されたている。このため、画像圧縮伸張部７による主記憶部２中のフレームバッファから動き補償フレーム間予測を行うための参照マクロブロックデータ読み出しの遅延が増加し、結果的に要した処理時間も増加している。Ｎ２の時点では、Ｎ６とＴ＿ＭＡＸとの交点と原点を結ぶ点線を上回ってしまい、その後はＮ６に至るまでシステムバス１３が再び混雑することはなかったが、処理上限時間Ｔ＿ＭＡＸを超過して処理を完了している。
【００１２】
ＣＰＵ部１は、画像圧縮伸張部７が処理上限時間Ｔ＿ＭＡＸまでに処理を完了していないことを検出し、該当するフレームの処理を中断させてコマ落ちさせるなどの例外処理を行うことになるが、これにより動画としての画質が劣化してしまう。
【００１３】
本発明は以上の問題に鑑みてなされたものであり、システムの状態に応じて可能な限りの高品質な符号化データを得る、フレーム間動き補償による符号化処理技術を提供することを目的とする。
【課題を解決するための手段】
【００１４】
本発明の目的を達成するために、例えば、本発明の画像符号化装置は以下の構成を備える。
【００１５】
即ち、フレーム間動き補償を用いて、符号化対象の画像をブロック毎に符号化する符号化手段を有する画像符号化装置であって、
前記符号化手段が符号化対象の画像の符号化を開始してからの経過時間を計時する計時手段と、
前記符号化手段が前記符号化対象の画像の符号化したブロックの個数をカウントするカウント手段と、
前記カウント手段がカウントする個数が、予め定められた複数の基準個数の何れかを越える毎に、前記計時手段から経過時間を取得する取得手段と、
前記取得手段が取得した経過時間と、予め定められた第１の閾値、第２の閾値との比較結果に応じて、前記符号化手段における動き探索方法を制御する制御手段と
を備えることを特徴とする。
【００１６】
本発明の目的を達成するために、例えば、本発明の画像符号化方法は以下の構成を備える。
【００１７】
即ち、フレーム間動き補償を用いて、符号化対象の画像をブロック毎に符号化する符号化手段を有する画像符号化装置が行う画像符号化方法であって、
前記符号化手段が符号化対象の画像の符号化を開始してからの経過時間を計時する計時工程と、
前記符号化手段が前記符号化対象の画像について符号化したブロックの個数をカウントするカウント工程と、
前記カウント工程でカウントする個数が、予め定められた複数の基準個数の何れかを越える毎に、前記計時工程から経過時間を取得する取得工程と、
前記取得工程で取得した経過時間と、予め定められた第１の閾値、第２の閾値との比較結果に応じて、前記符号化手段における動き探索方法を制御する制御工程と
を備えることを特徴とする。
【発明の効果】
【００１８】
本発明の構成により、システムの状態に応じて可能な限りの高品質な符号化データを得る、フレーム間動き補償による符号化処理を行うことができる。
【発明を実施するための最良の形態】
【００１９】
以下添付図面を参照して、本発明をその好適な実施形態にしたがって詳細に説明する。
【００２０】
［第１の実施形態］
本実施形態では、フレーム間動き補償による符号化処理技術として、ＭＰＥＧ−４ＡＶＣ／Ｈ．２６４符号化方式を用いて説明する。
【００２１】
図２は、本実施形態に係る画像符号化装置の機能構成を示すブロック図である。同図において、１０１はフレーム内予測部、１０２は予測方式選択部、１０３は直交変換部、１０４は量子化部、１０５はエントロピー符号化部、１０６はエントロピー復号化部、１０７は逆量子化部、１０８は逆直交変換部、１０９は符号量計数部である。１１０はループフィルタ部、１１１は動き補償部、１１２はフレーム間動き予測部、１１３はフレーム間動き予測において使用される参照フレームを記憶する参照フレーム記憶部である。１１４はフレーム内予測において使用される参照画素を記憶する参照画素記憶部、１１５はフレーム間動き予測部１１２を制御するフレーム間動き予測制御部、１１６は符号化歪み量算出部、１１７は符号量制御部である。
【００２２】
係る構成は、フレーム間動き補償による符号化処理を行うための一般的な構成であるが、本実施形態は、フレーム間動き予測制御部１１５、符号量制御部１１７の構成、及び動作に特徴を有する。図１は、フレーム間動き予測制御部１１５の機能構成を示すブロック図である。
【００２３】
同図において２１１は計数制御部で、後段の処理ＭＢ（マクロブロック）計数部２１２と処理時間計数部２１３の動作制御を行う。
【００２４】
２１２は処理ＭＢ計数部で、１フレームを構成する各ＭＢのうち符号化処理が施されたＭＢの個数を計数する。
【００２５】
２１３は処理時間計数部で、１フレームに対する符号化処理を開始してからの経過時間を、例えばクロックサイクル数でもって計時する。
【００２６】
２１４は閾値生成部である。閾値生成部２１４は先ず、処理ＭＢ計数部２１２から送出される「符号化処理済みＭＢの個数」と、画像サイズ記憶部２１９に格納されている「１フレームの画像サイズ」と、フレームレート記憶部２２０に格納されているフレームレートとを取得する。そして閾値生成部２１４は取得したこれらを用いて、符号化処理済みのＭＢを符号化した際に、本来使用可能であった処理時間の上限を閾値１（第１の閾値）として求める。例えば、符号化処理済みＭＢの個数をＮ、１フレームの水平画像サイズをＨ、垂直画像サイズをＶ、１秒当りのフレームレートをＦとした場合、閾値１は、（１÷Ｆ）×（Ｎ÷（Ｈ×Ｖ÷（１６×１６）））、で求められる。
【００２７】
２１５は閾値生成部である。閾値生成部２１５は先ず、処理ＭＢ計数部２１２から送出される「符号化処理済みＭＢの個数」と、画像サイズ記憶部２１９に格納されている「１フレームの画像サイズ」と、フレームレート記憶部２２０に格納されているフレームレートとを取得する。そして閾値生成部２１４は取得したこれらを用いて、符号化処理済みのＭＢを符号化した際に、本来使用可能であった処理時間の下限を閾値２（第２の閾値）として求める。例えば、符号化処理済みＭＢの個数をＮ、１フレームの水平画像サイズをＨ、垂直画像サイズをＶ、１秒当りのフレームレートをＦ、処理時間の上限である閾値１との時間間隔をＴとする。この場合、閾値２は、（１÷Ｆ）×（Ｎ÷（Ｈ×Ｖ÷（１６×１６））÷Ｎ）−Ｔ、で求められる。
【００２８】
２１６は比較部で、処理時間計数部２１３が計数した経過時間と、閾値生成部２１４が求めた上限処理時間との大小比較を行う。
【００２９】
２１７は比較部で、処理時間計数部２１３が計数した経過時間と、閾値生成部２１５が求めた下限処理時間との大小比較を行う。
【００３０】
２１８はブロックマッチングによる動き探索回数決定部で、比較部２１６，２１７による比較結果に基づいて、以降の動き探索回数を決定し、フレーム間動き予測部１１２に対してセットする。フレーム間動き予測部１１２は、予め設定された動き探索回数、若しくは探索回数決定部２１８によってセットされた動き探索回数を用いて、未だ符号化していないＭＢに対するフレーム間動き補償による符号化処理を行う。
【００３１】
２１９は画像サイズ記憶部で、符号化対象のフレームの画像サイズを記憶する。ここでの画像サイズとは、垂直方向における画素数と、水平方向における画素数とで表される。  ２２０はフレームレート記憶部で、動画像のフレームレートを記憶する。
【００３２】
以降では、１フレームに対する動き補償による符号化処理を行う際に、動き予測制御部１１５が、動き探索回数を動的に決定する為の処理について、同処理のフローチャートを示す図４を用いて以下説明する。
【００３３】
先ずステップＳ１０１では、１フレームに対する符号化処理を開始する前に、処理ＭＢ計数部２１２による計数カウント値を０に初期化すると共に、処理時間計数部２１３による計数カウント値を０に初期化する。
【００３４】
そして１フレームの画像データがフレーム内予測部１０１に入力されると、ステップＳ１０２では、処理ＭＢ計数部２１２、処理時間計数部２１３が、それぞれの動作を開始する。即ち、処理ＭＢ計数部２１２は、符号化処理済みのＭＢの個数のカウント処理を開始するし、処理時間計数部２１３は計時処理を開始する。
【００３５】
次に、ステップＳ１０３、Ｓ１０５，Ｓ１０７の処理と、ステップＳ１０４、Ｓ１０６、Ｓ１０８の処理は並行して行う。
【００３６】
先ず、ステップＳ１０３、Ｓ１０５，Ｓ１０７の処理について説明する。
【００３７】
ステップＳ１０３では閾値生成部２１４が対応する。閾値生成部２１４は、処理ＭＢ計数部２１２が計数した個数が予め定められた複数の基準個数の何れかを越える毎に、画像サイズ記憶部２１９に格納されている画像サイズ、フレームレート記憶部２２０に格納されているフレームレートを取得する。
【００３８】
以下の説明では、１フレームを構成するＭＢの個数はＮ６とし、基準個数はＮ１、Ｎ２、Ｎ３、Ｎ４、Ｎ５、Ｎ６とする。したがってステップＳ１０３では、処理ＭＢ計数部２１２が計数する個数がＮ１〜Ｎ６の何れかに達する毎に、画像サイズ記憶部２１９に格納されている画像サイズ、フレームレート記憶部２２０に格納されているフレームレートを取得する。
【００３９】
そしてステップＳ１０３では更に、閾値生成部２１４は、現在達した基準個数、取得した画像サイズ、フレームレートを用いて、「現在達した基準個数のＭＢの符号化処理を行うための処理時間の上限値」を閾値１として求める。
【００４０】
次にステップＳ１０５では、比較部２１６は、処理ＭＢ計数部２１２が計数する個数がＮ１〜Ｎ６の何れかに達する毎に、処理時間計数部２１３から経過時間（処理時間）を取得する。そしてこの取得した経過時間と、上記閾値１との大小比較を行う。
【００４１】
ここで、処理ＭＢ計数部２１２が計数する個数がＮ１となった時に処理時間計数部２１３が計時している経過時間をＴ１とする。同様に、処理ＭＢ計数部２１２が計数する個数がＮ２となった時に処理時間計数部２１３が計時している経過時間をＴ２とする。同様に、処理ＭＢ計数部２１２が計数する個数がＮ３となった時に処理時間計数部２１３が計時している経過時間をＴ３とする。同様に、処理ＭＢ計数部２１２が計数する個数がＮ４となった時に処理時間計数部２１３が計時している経過時間をＴ４とする。同様に、処理ＭＢ計数部２１２が計数する個数がＮ５となった時に処理時間計数部２１３が計時している経過時間をＴ５とする。同様に、処理ＭＢ計数部２１２が計数する個数がＮ６となった時に処理時間計数部２１３が計時している経過時間をＴ６とする。
【００４２】
したがって、ステップＳ１０５では、比較部２１６は、処理ＭＢ計数部２１２が計数する個数がＮｊに達する毎に、処理時間計数部２１３から経過時間Ｔｊを取得する。そしてこの取得した経過時間と、上記閾値１との大小比較を行う。
【００４３】
係る大小比較の結果は、探索回数決定部２１８に通知される。探索回数決定部２１８は、処理時間≦閾値１である場合、何も処理しないので、処理はステップＳ１０５からステップＳ１１０に進む。
【００４４】
一方、処理時間＞閾値１である場合には処理はステップＳ１０７に進み、探索回数決定部２１８は、動き探索回数を減少させる（第１の制御）。例えば、動き探索回数を１回減少させることで減少する処理時間をΔｔ、（経過時間−閾値１）＝Ｄとすると、Ｄ／Δｔを整数化（小数点以下を任意に切り上げたり切り捨てたりする）した結果を、現在の動き探索回数から減じる。
【００４５】
次に、ステップＳ１０４、Ｓ１０６、Ｓ１０８の処理について説明する。
【００４６】
ステップＳ１０４では、閾値生成部２１５は閾値生成部２１４と同様に動作する。閾値生成部２１５は、処理ＭＢ計数部２１２が計数した個数が予め定められた複数の基準個数の何れかを越える毎に、画像サイズ記憶部２１９に格納されている画像サイズ、フレームレート記憶部２２０に格納されているフレームレートを取得する。
【００４７】
そしてステップＳ１０４では更に、閾値生成部２１５は閾値生成部２１４と同様に、現在達した基準個数、取得した画像サイズ、フレームレートを用いて、「現在達した基準個数のＭＢの符号化処理を行うための処理時間の下限値」を閾値２として求める。
【００４８】
次にステップＳ１０６では、比較部２１７は比較部２１６と同様に、処理ＭＢ計数部２１２が計数する個数がＮ１〜Ｎ６の何れかに達する毎に、処理時間計数部２１３から経過時間（処理時間）を取得する。そしてこの取得した経過時間と、上記閾値２との大小比較を行う。
【００４９】
したがって、ステップＳ１０６では、比較部２１７は、処理ＭＢ計数部２１２が計数する個数がＮｊに達する毎に、処理時間計数部２１３から経過時間Ｔｊを取得する。そしてこの取得した経過時間と、上記閾値２との大小比較を行う。
【００５０】
係る大小比較の結果は、探索回数決定部２１８に通知される。探索回数決定部２１８は、処理時間≧閾値２である場合、何も処理しないので、処理はステップＳ１０６からステップＳ１１０に進む。
【００５１】
一方、処理時間＜閾値２である場合には処理はステップＳ１０８に進み、探索回数決定部２１８は、動き探索回数を増加させる（第２の制御）。例えば、動き探索回数を１回増加させることで増加する処理時間をΔｐ、（閾値２−経過時間）＝Ｆとすると、Ｆ／Δｐを整数化（小数点以下を任意に切り上げたり切り捨てたりする）した結果を、現在の動き探索回数に加算する。
【００５２】
ステップＳ１０９では、探索回数決定部２１８は、動き探索回数を変更した場合には、変更した動き探索回数をフレーム間動き予測部１１２に対してセットする。これにより、以降のＭＢについては、この変更した動き探索回数が適用されることになる。
【００５３】
次に、１フレーム分のＭＢ、即ち、Ｎ６個分のＭＢに対する（ブロック毎の）符号化処理が完了した場合には処理はステップＳ１１０からステップＳ１１１に進み、完了していない場合には処理をステップＳ１１０からステップＳ１０３，Ｓ１０４の前に戻す。
【００５４】
ステップＳ１１１において、動画像を構成する全てのフレームについて符号化処理が完了した場合には本処理を終了し、未処理のフレームが未だある場合には、処理をステップＳ１０１に戻し、未処理のフレームについて以降の処理を行う。
【００５５】
次に図４のフローチャートにしたがって、図６を用いた、より具体的な例における処理について説明する。図６は、符号化処理済みＭＢの個数と、経過時間との関係を示す図である。
【００５６】
先ず、処理ＭＢ計数部２１２が計数するＭＢの個数がＮ１に達したとする。この場合、ステップＳ１０３では、閾値生成部２１４は、個数Ｎ１のＭＢを符号化処理するために許容可能な処理時間の上限値を閾値１として求める。係る処理には、画像サイズ、フレームレート、個数Ｎ１を用いる。一方、ステップＳ１０４では、閾値生成部２１５は、個数Ｎ１のＭＢを符号化処理するために許容可能な処理時間の下限値を閾値２として求める。係る処理には、画像サイズ、フレームレート、個数Ｎ１を用いる。
【００５７】
次に、ステップＳ１０５では、比較部２１６は、処理ＭＢ計数部２１２が計数する個数がＮ１に達したときに処理時間計数部２１３が計時している経過時間Ｔ１を取得し、取得した経過時間Ｔ１と、上記閾値１との大小比較を行う。一方、ステップＳ１０６では、比較部２１７は、処理ＭＢ計数部２１２が計数する個数がＮ１に達したときに処理時間計数部２１３が計時している経過時間Ｔ１を取得し、取得した経過時間Ｔ１と、上記閾値２との大小比較を行う。
【００５８】
ここで、図６では、経過時間Ｔ１は、上限閾値と下限閾値との間におさまっているので、ステップＳ１０５，Ｓ１０６の何れからも処理をステップＳ１１０に進めることになる。即ち、探索回数決定部２１８は、動き探索回数の更新は行わないし、フレーム間動き予測部１１２は現在設定されている動き探索回数を用いて、以降のＭＢに対するフレーム間動き補償による符号化処理を行う。
【００５９】
そしてステップＳ１１０では、符号化処理済みのＭＢの個数が未だＮ１であり、１フレームを構成する全てのＭＢについて符号化処理は行っていないので、処理をステップＳ１０３，Ｓ１０４に戻す。
【００６０】
次に、処理ＭＢ計数部２１２が計数するＭＢの個数がＮ２に達したとする。この場合、ステップＳ１０３では、閾値生成部２１４は、個数Ｎ２のＭＢを符号化処理するために許容可能な処理時間の上限値を閾値１として求める。係る処理には、画像サイズ、フレームレート、個数Ｎ２を用いる。一方、ステップＳ１０４では、閾値生成部２１５は、個数Ｎ２のＭＢを符号化処理するために許容可能な処理時間の下限値を閾値２として求める。係る処理には、画像サイズ、フレームレート、個数Ｎ２を用いる。
【００６１】
次に、ステップＳ１０５では、比較部２１６は、処理ＭＢ計数部２１２が計数する個数がＮ２に達したときに処理時間計数部２１３が計時している経過時間Ｔ２を取得し、取得した経過時間Ｔ２と、上記閾値１との大小比較を行う。一方、ステップＳ１０６では、比較部２１７は、処理ＭＢ計数部２１２が計数する個数がＮ２に達したときに処理時間計数部２１３が計時している経過時間Ｔ２を取得し、取得した経過時間Ｔ２と、上記閾値２との大小比較を行う。
【００６２】
ここで、図６では、経過時間Ｔ２は、上限閾値を越えているので、ステップＳ１０６からはステップＳ１１０に進むものの、ステップＳ１０５からはステップＳ１０７に処理が進む。ステップＳ１０７では、探索回数決定部２１８は、経過時間Ｔ２と上限閾値との差分に応じて、現時点で設定されている動き探索回数を減少させる。これにより、フレーム間動き予測部１１２は、この決定された動き探索回数を用いて、以降のＭＢに対するフレーム間動き補償による符号化処理を行う。
【００６３】
動き探索回数を減少させたことにより、１マクロブロックの符号化処理に要する時間が短縮されるので、結果として図６に示す如く、Ｎ２以降では処理時間の実曲線は上限閾値直線に接近しており、Ｎ３とＮ４の区間において上限閾値を下回っている。
【００６４】
更に符号化処理を進め、処理ＭＢ計数部２１２が計数するＭＢの個数がＮ４に達したとする。この場合、ステップＳ１０３では、閾値生成部２１４は、個数Ｎ４のＭＢを符号化処理するために許容可能な処理時間の上限値を閾値１として求める。係る処理には、画像サイズ、フレームレート、個数Ｎ４を用いる。一方、ステップＳ１０４では、閾値生成部２１５は、個数Ｎ４のＭＢを符号化処理するために許容可能な処理時間の下限値を閾値２として求める。係る処理には、画像サイズ、フレームレート、個数Ｎ４を用いる。
【００６５】
次に、ステップＳ１０５では、比較部２１６は、処理ＭＢ計数部２１２が計数する個数がＮ４に達したときに処理時間計数部２１３が計時している経過時間Ｔ４を取得し、取得した経過時間Ｔ４と、上記閾値１との大小比較を行う。一方、ステップＳ１０６では、比較部２１７は、処理ＭＢ計数部２１２が計数する個数がＮ４に達したときに処理時間計数部２１３が計時している経過時間Ｔ４を取得し、取得した経過時間Ｔ４と、上記閾値２との大小比較を行う。
【００６６】
ここで、図６では、経過時間Ｔ４は、下限閾値を下回っているので、ステップＳ１０５からはステップＳ１１０に進むものの、ステップＳ１０６からはステップＳ１０８に処理が進む。ステップＳ１０８では、探索回数決定部２１８は、経過時間Ｔ４と下限閾値との差分に応じて、現時点で設定されている動き探索回数を増加させる。これにより、フレーム間動き予測部１１２は、この決定された動き探索回数を用いて、以降のＭＢに対するフレーム間動き補償による符号化処理を行う。
【００６７】
動き探索回数を増加させたことにより、１マクロブロックの符号化処理に要する時間も増加するので、結果としてＮ４以降では処理時間の実曲線が下限閾値直線に接近しており、Ｎ５とＮ６の区間において下限閾値を上回っている。
【００６８】
以上説明したように、フレーム間動き予測制御部１１５は、図６に点線で示される上限閾値と下限閾値との間に所定数のマクロブロックを処理するのに要した処理時間が納まっている場合は、動き探索回数の更新は行わない。また、この処理時間が上限閾値を越える、若しくは下限閾値を下回る場合には、以降の処理時間が上限閾値と下限閾値との間に収まるように、適切に動き探索回数を更新する。この制御により、１フレームの符号化処理に要する時間が処理上限時間Ｔ＿ＭＡＸを超えないことを保証する。
【００６９】
次に、フレーム間動き予測制御部１１５による一連の動作制御が発生符号量と画質に与える影響について、図７、図８を用いて説明する。
【００７０】
既に図１２を用いて説明したように、符号量制御部１１７は、１フレームに対する目標符号量Ｒ＿ＴＡＲＧＥＴと１フレームの総マクロブロック数Ｎ６との交点と原点とを結ぶ点線から極力乖離しないように制御する。即ち、符号量計数部１０９により計数される自らの発生符号量をマクロブロック単位に制御する。そしてこれにより、一定ビットレートによる圧縮符号化処理を実現している。
【００７１】
図７は、符号化処理済みＭＢの個数と、発生符号量との関係を示す図である。
【００７２】
図７では、Ｎ２からＮ３の期間において、フレーム間動き予測制御部１１５による一連の動作制御により動き探索回数が減少されたために、予測残差が増加して結果として発生符号量も増加している。しかし、符号量制御部１１７による通常の符号量制御により遅延はあるもののやはり発生符号量は一定ビットレートを表す点曲線に近接してくる。
【００７３】
図８は、符号化処理済みＭＢの個数と、符号化歪み量との関係を示す図である。より詳しくは、図８は、符号量制御部１１７により上述した符号量制御が行われた場合に生成される符号化データが有する符号化歪みを示している。Ｎ３以降から動き探索回数の減少に起因した予測残差の増加を量子化ステップを大きくすることにより発生符号量の増加を低減させたために符号化歪みの度合いが大きくなっている。これにより、このフレームの後半領域において画質劣化が顕著となる可能性がある。
【００７４】
上述した発生しうる画質劣化を防ぎながら所定の処理時間内に１フレームの符号化処理を完了させるためには、フレーム間動き予測制御部１１５よる制御と符号量制御部１１７による制御を連携して動作させる必要がある。以下では両者の連携動作に関して説明する。
【００７５】
図５は、符号量制御部１１７が行う目標符号量の更新決定処理のフローチャートである。以下では、符号量制御部１１７が行う処理について同図のフローチャートを用いて説明するが、係る処理過程で生じる発生符号量、符号化歪み量はそれぞれ図９，１０に示したような推移を示すものとして説明する。なお、図５のフローチャートは、係る推移に限定した処理を示すものではない。図９は、符号化処理済みＭＢの個数と、発生符号量との関係を示す図である。図１０は、符号化処理済みＭＢの個数と、符号化歪み量との関係を示す図である。
【００７６】
先ずステップＳ２０１では、符号量制御部１１７は通常の符号量制御を行うと共に、現在の符号化対象フレームに対してフレーム間動き予測制御部１１５が上述の動き探索回数の更新を行ったか否かをチェックする。係るチェックの結果、未だ１度も行っていない場合には処理をステップＳ２０１に戻すのであるが、１度でも行った場合には処理をステップＳ２０２に進める。図９に示す如く、処理ＭＢ計数部２１２が計数する個数がＮ２に達した際に、動き探索回数が更新されている。したがって、Ｎ２以降のマクロブロックについては、ステップＳ２０２以降の処理を行うことになる。
【００７７】
ステップＳ２０２では、現在の符号化歪み量と、予め設けられた閾値Ｄ＿ＭＡＸとの大小比較を行う。係る比較の結果、現在の符号化歪み量＞閾値Ｄ＿ＭＡＸであれば処理をステップＳ２０３に進め、符号化歪み量≦閾値Ｄ＿ＭＡＸであれば処理をステップＳ２０４に進める。
【００７８】
ステップＳ２０３では、符号量制御部１１７は現在符号化対象としている１フレームの目標符号量を増加させる修正処理を行う。図１０では、符号化歪み量は、Ｎ３において閾値Ｄ＿ＭＡＸを超えているので、符号量制御部１１７はＮ３以降のマクロブロックに対する符号化処理における目標符号量を増加させる。増加符号量は、例えば、予め符号化歪み量と増加符号量との関係をテーブルで作成しておき、得られた現在の符号化歪み量によってそのテーブルを参照することで決定する。
【００７９】
次に、１フレーム分のＭＢ、即ち、Ｎ６個分のＭＢに対する符号化処理が完了した場合には処理はステップＳ２０４からステップＳ２０５に進み、完了していない場合には処理をステップＳ２０４からステップＳ２０１に戻す。
【００８０】
ステップＳ２０５において、動画像を構成する全てのフレームについて符号化処理が完了した場合には本処理を終了し、未処理のフレームが未だある場合には、処理をステップＳ２０１に戻し、未処理のフレームについて以降の処理を行う。
【００８１】
以上説明したフレーム間動き予測制御部１１５と符号量制御部１１７との連携動作により、以下のような効果が得られる。即ち、図１０において図８でも見られたように、Ｎ２からＮ３の期間では、動き探索回数の減少に起因して量子化ステップを増加させたことにより、符号化歪みの度合いが大きくなっている。しかし、Ｎ４以降では符号量制御部１１７によって１フレームあたりの目標符号量が修正されたために、発生符号量が増加することが許容され、結果的に符号化歪みが小さく抑えられている。
【００８２】
以上の説明により、本実施形態によれば、システムバスの状態に応じた適切な動き探索による動き補償フレーム間予測符号化処理を行うことができる。係る技術によれば、所定時間内での符号化処理の完了を保証しつつ、歪みの少ない高画質な符号化データを生成することができる。
【００８３】
なお、本実施形態では、フレーム間動き予測制御部１１５が１マクロブロックあたりの符号化処理時間を減少または増加させるために行う動き探索方法の変更方法として、ブロックマッチングによる動き探索回数を増減させた。しかし、これ以外の方法を用いて同様の目的を達成しても良い。例えば、複数存在する探索ポイントの中心点を決定する方法や、その周囲へ探索ポイントを配置する方法、さらには動き探索の階層化方法などの動き探索アルゴリズムそのものを変更するフレーム間動き予測制御においても同様に適用することができる。また、マクロブロック毎のイントラ予測／インター予測の選択を強制的にイントラ予測に決定することで、動き探索を全く行わない符号化制御においても同様に適用することができる。また、上記説明ではマクロブロックで説明したが、この限りでは無く、予め定められた単位であれば良くブロックでも良い。
【００８４】
また、本実施形態では、動画符号化方式としてＭＰＥＧ−４ＡＶＣ／Ｈ．２６４符号化方式を用いた。しかし本実施形態はこれに限定するものではなく、Ｈ．２６１、ＭＰＥＧ−１、ＭＰＥＧ−２、ＭＰＥＧ−４など他の国際標準動画符号化方式や、国際標準以外の動画符号化方式においても同様に適用可能である。
【００８５】
また、図２に示したハードウェアは、デジタルカメラやデジタルビデオカメラなど、与えられた動画像の各フレームに対してフレーム間動き補償による符号化処理を行う装置に搭載することが好ましい。
【００８６】
［第２の実施形態］
図２に示した各部の一部若しくは全部をソフトウェアでもって実現し、残りをハードウェアでもって実現しても良い。この場合、例えば、このハードウェアをパーソナルコンピュータに挿入可能な機能拡張カードとして実現し、この機能拡張カードをパーソナルコンピュータに挿入する。また、このソフトウェアは、このパーソナルコンピュータが有するメモリ上に格納する。係る構成によれば、パーソナルコンピュータが有するＣＰＵがこのソフトウェアを実行すると共に、この機能拡張カードの動作制御をも行うことにより、第１の実施形態で説明した処理（図４，５のフローチャートに従った処理）と同様の処理を行うことができる。
【００８７】
図１４は、このコンピュータのハードウェア構成を示すブロック図である。
【００８８】
１４０１はＣＰＵで、ＲＡＭ１４０２やＲＯＭ１４０３に格納されているプログラムやデータを用いて本コンピュータ全体の制御を行う。
【００８９】
１４０２はＲＡＭで、外部記憶装置１４０６からロードされたプログラムやデータ、Ｉ／Ｆ（インターフェース）１４０７を介して外部から受信したプログラムやデータを一時的に記憶するためのエリアを有する。更には、ＣＰＵ１４０１が各種の処理を実行する際に用いるワークエリアも有する。即ち、ＲＡＭ１４０２は各種のエリアを適宜提供することができる。
【００９０】
１４０３はＲＯＭで、本コンピュータの設定データやブートプログラムなどを格納する。
【００９１】
１４０４は操作部で、キーボードやマウスなどにより構成されており、本コンピュータの操作者が操作することで、各種の指示をＣＰＵ１４０１に対して入力することができる。
【００９２】
１４０５は表示部で、ＣＲＴや液晶画面などにより構成されており、ＣＰＵ１４０１による処理結果を画像や文字などでもって表示することができる。
【００９３】
１４０６は外部記憶装置で、ハードディスクなどに代表される大容量情報記憶装置であって、ここにはＯＳ（オペレーティングシステム）や、本コンピュータが行う各種の処理をＣＰＵ１４０１に実行させるためのプログラムやデータ等が保存される。このプログラムやデータには、上記ソフトウェアや、機能拡張カード１４０８の動作制御プログラムなども含まれる。また、外部記憶装置１４０６には、符号化対象の１以上の動画像ファイルや、Ｉ／Ｆ１４０７を介して外部から受信したプログラムやデータも保存される。
【００９４】
外部記憶装置１４０６に保存されている各種の情報はＣＰＵ１４０１による制御にしたがって適宜ＲＡＭ１４０２にロードされる。そしてＣＰＵ１４０１がこのロードされたプログラムやデータを用いて処理を実行することにより、本コンピュータは第１の実施形態で説明したフレーム間動き補償による符号化処理を実行することができる。
【００９５】
１４０７はＩ／Ｆで、本コンピュータをＬＡＮやインターネット等のネットワークに接続するためのものである。例えば、このネットワークに、動画像ファイルを保持する装置が接続されている場合には、本コンピュータはこのＩ／Ｆ１４０７を介してこの装置から動画像ファイルを取得することができる。
【００９６】
１４０８は機能拡張カードで、例えば、取得した動画像ファイルに対してフレーム間動き補償による符号化処理の一部若しくは全部を行う処理ボードである。
【００９７】
１４０９は上述の各部を繋ぐバスである。
【００９８】
［その他の実施形態］
また、本発明の目的は、以下のようにすることによって達成されることはいうまでもない。即ち、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体（または記憶媒体）を、システムあるいは装置に供給する。そして、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムコードを読み出し実行する。この場合、記録媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記録した記録媒体（コンピュータ読み取り可能な記憶媒体）は本発明を構成することになる。
【００９９】
また、コンピュータが読み出したプログラムコードを実行することにより、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行う。その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１００】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれたとする。その後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１０１】
本発明を上記記録媒体に適用する場合、その記録媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。
【図面の簡単な説明】
【０１０２】
【図１】フレーム間動き予測制御部１１５の機能構成を示すブロック図である。
【図２】本発明の第１の実施形態に係る画像符号化装置の機能構成を示すブロック図である。
【図３】デジタルカメラやビデオカメラに代表される撮像システムの一般的なハードウェア構成図である。
【図４】１フレームに対する動き補償による符号化処理を行う際に、動き予測制御部１１５が、動き探索回数を動的に決定する為の処理のフローチャートである。
【図５】符号量制御部１１７が行う目標符号量の更新決定処理のフローチャートである。
【図６】符号化処理済みＭＢの個数と、経過時間との関係を示す図である。
【図７】符号化処理済みＭＢの個数と、発生符号量との関係を示す図である。
【図８】符号化処理済みＭＢの個数と、符号化歪み量との関係を示す図である。
【図９】符号化処理済みＭＢの個数と、発生符号量との関係を示す図である。
【図１０】符号化処理済みＭＢの個数と、符号化歪み量との関係を示す図である。
【図１１】図３に示される一般的な撮像システムにおける処理済みマクロブロック数と、処理開始から経過した処理時間との関係を示す図である。
【図１２】図３に示される一般的な撮像システムにおける処理済みマクロブロック数と、発生符号量との関係を示す図である。
【図１３】図３に示される一般的な撮像システムにおいて、システムバス１３へ同時に多くのアクセス要求が発行された場合の処理済みマクロブロック数と、処理開始から経過した処理時間との関係を示す図である。
【図１４】コンピュータのハードウェア構成を示すブロック図である。
【図１】
2009060536.tif 000003
【図２】
2009060536.tif 000004
【図３】
2009060536.tif 000005
【図４】
2009060536.tif 000006
【図５】
2009060536.tif 000007
【図６】
2009060536.tif 000008
【図７】
2009060536.tif 000009
【図８】
2009060536.tif 000010
【図９】
2009060536.tif 000011
【図１０】
2009060536.tif 000012
【図１１】
2009060536.tif 000013
【図１２】
2009060536.tif 000014
【図１３】
2009060536.tif 000015
【図１４】
2009060536.tif 000016