(57)【特許請求の範囲】
【請求項１】
動きベクトルを推定する動映像符号化方法において、
（ａ）以前フレームのマクロブロック当り探索点の数に基づいて設定されたしきい値と各候補動きベクトルのＳＡＤとを比較する過程と、
（ｂ）前記（ａ）過程で各候補動きベクトルのＳＡＤがしきい値より少なければ、そのＳＡＤを最小ＳＡＤに決定し、マクロブロックの動きベクトル探索を終了して最小ＳＡＤを有する候補動きベクトルを動きベクトルに決定する過程と、
（ｃ）前記（ｂ）過程で動きベクトルに対する探索が終了すれば、現在フレームのマクロブロック当り探索点の数によって次のフレームの（ａ）過程で適用される前記しきい値を更新する過程とを含み、
前記（ａ）過程で各候補動きベクトルのＳＡＤがしきい値より大きければ前記ＳＡＤと最小ＳＡＤとを比較する過程と、
前記過程で前記ＳＡＤが最小ＳＡＤより少なければそのＳＡＤを最小ＳＡＤに決定するとともに、次の候補動きベクトルのＳＡＤを計算し、前記ＳＡＤが最小ＳＡＤより大きければ次の候補動きベクトルのＳＡＤを計算する過程と、
前記過程で次の候補動きベクトルが存在しなければ、現在マクロブロックの動きベクトルに対する探索を終了して最小ＳＡＤを有する候補動きベクトルを動きベクトルに決定する過程と、
前記候補動きベクトルに対する探索が終了すれば、現在フレームのマクロブロック当り探索点の数によって次のフレームに適用される前記しきい値を更新する過程とをさらに含み、
前記しきい値は（ＴＨｎ×Ｓｎ）／Ｓｔによって更新され、ここでＴＨｎは以前しきい値であり、Ｓｎは以前フレームでマクロブロック当り平均探索点の数であり、Ｓｔは目標とするマクロブロック当り探索点の数であることを特徴とする動映像符号化方法。
【請求項２】
前記しきい値更新過程は、次のマクロブロックが存在しない場合にフレームのマクロブロック当り探索点の数によって決定されることを特徴とする請求項１に記載の動映像符号化方法。
【請求項３】
動映像符号化方法において、
（ａ）以前フレームのマクロブロック当り探索点の数によって設定されるしきい値と動きベクトルのＳＡＤとを比較して前記ＳＡＤがしきい値より少なければマクロブロックの動きベクトルに対する探索の終了を決定し、最小ＳＡＤを有する候補動きベクトルを現在マクロブロックの動きベクトルとして推定する過程と、
（ｂ）前記過程のマクロブロック当り平均探索点の数を演算複雑度として計算し、動き推定演算複雑度と以前フレームの動き推定ＭＥ演算複雑度との差を、目標とする動き推定演算複雑度に対する変化分として推定する過程と、
（ｃ）前記（ｂ）過程で推定された前記動き推定演算複雑度に対する変化分に基づいて目標とするマクロブロック当り総ＤＣＴの遂行ブロック数をＤＣＴ複雑度として更新し、その更新された目標とする前記ＤＣＴ複雑度によって映像データのＤＣＴスキッピングのためのしきい値を設定する過程と、
（ｄ）前記（ｃ）過程で設定されたしきい値とブロック当りＳＡＤ及び量子化パラメータを比較して、しきい値がＳＡＤ/量子化パラメータより大きければ現在フレームの映像データに対するＤＣＴスキップを行うように調節する過程とを含み、
前記（ｄ）過程で現在フレームのしきい値は、
【数１】
0003854933.tif 000014
に決定され、ここで、Ｔｏｎは以前フレームのしきい値、Ｑｎは以前フレームの量子化係数、Ｑｎ＋１は現在フレームの量子化係数、Ｃｎは以前フレームのＤＣＴ演算複雑度、ｋは定数、Ｃｔ’は更新された目標とするＤＣＴ演算複雑度であることを特徴とする動映像符号化方法。
【請求項４】
前記動き推定演算複雑度は、マクロブロック当り探索点の数を計算することを特徴とする請求項３に記載の動映像符号化方法。
【請求項５】
前記（ｃ）過程で目標とするＤＣＴ複雑度の更新過程は目標とするＤＣＴ複雑度に前記動き推定演算複雑度の変化分を加算することを特徴とする請求項３に記載の動映像符号化方法。
【請求項６】
入力される映像データからブロック別に離散コサイン変換する離散コサイン変換部と、
前記離散コサイン変換部で離散コサイン変換された映像データを量子化する量子化部と、
以前フレームのマクロブロック当り平均探索点の数によってしきい値ＴＨを更新した後、そのしきい値とマクロブロック当りＳＡＤとを比較し、ＳＡＤがしきい値より少なければマクロブロックの動きベクトルの探索の終了を決定し、最小ＳＡＤを有する候補動きベクトルを現在マクロブロックの動きベクトルとして推定する動き推定部と、
前記動き推定部で更新されたフレーム別しきい値によるマクロブロック別探索点の数に基づいてマクロブロック当り平均探索点の数を演算複雑度として計算し、動き推定演算複雑度と以前フレームの動き推定ＭＥ演算複雑度との差を、目標とする動き推定演算複雑度との変化分として推定し、その推定された前記動き推定演算複雑度の変化分に基づいて目標とする離散コサイン変換の演算複雑度を更新するＤＣＴ演算量計算部と、
前記ＤＣＴ演算量計算部の更新された目標離散コサイン変換の演算複雑度に基づいて離散コサイン変換スキッピングのためのしきい値を設定して、動き推定部で発生するブロック当りＳＡＤ及び量子化部で発生する量子化パラメータを前記しきい値と比較して、しきい値がＳＡＤ/量子化パラメータより少なければ前記離散コサイン変換部のＤＣＴ演算を行い、しきい値がＳＡＤ／量子化パラメータより大きければ、ＤＣＴ演算を行わないことを決定するＤＣＴスキッピング部とを含み、
前記しきい値は、
【数２】
0003854933.tif 000015
に決定され、ここで、Ｔｏｎは以前フレームのしきい値、Ｑｎは以前フレームの量子化係数、Ｑｎ＋１は現在フレームの量子化係数、Ｃｎは以前フレームのＤＣＴ演算複雑度、ｋは定数、Ｃｔ’は更新された目標とするＤＣＴ演算複雑度であることを特徴とする動映像符号化装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、動映像符号化システムに係り、特に映像の特性に関係なく一定な演算量を維持する動映像符号化方法及びその装置に関する。
【０００２】
【従来の技術】
パソコンのＣＰＵ性能が向上して高性能のメディアプロセッサが開発されるにつれて既存のハードウェアで具現されてきた動映像符号化技術が段々とソフトウェアで具現されてきている。これにより、動映像をリアルタイムで圧縮して復元するためには計算量を効果的に減らしうる符号化技法が要求される。例えば、Ｈ．２６３動映像エンコーダでｎ−ステップ探索を適用して動きを推定するとすれば、ＤＣＴ／ＩＤＣＴモジュールがエンコーダ全体で占める比重は平均３０％程度と多い。この演算複雑度を減らすために、従来の動映像エンコーダはＤＣＴスキッピング技術を利用する。
【０００３】
図１は、従来の動映像符号化システムを示すブロック図である。
まず、入力される映像データはＧＯＰ（Ｇｒｏｕｐ ｏｆ Ｐｉｃｔｕｒｅ）単位で構成される。ＤＣＴ部１２０は映像データの空間冗長性を得るために８×８ブロック単位でＤＣＴ（Ｄｉｓｃｒｅｔｅ Ｃｏｓｉｎｅ Ｔｒａｎｓｆｏｒｍ）を行う。量子化部（Ｑｕａｎｔｉｚｅｒ、Ｑ）１３０はＤＣＴ部１２０でＤＣＴされた映像データを量子化する。逆量子化部１５０は、量子化部１３０で量子化された映像データを逆量子化する。ＩＤＣＴ（Ｉｎｖｅｒｓｅ ＤＣＴ）部１６０は逆量子化部１５０で逆量子化された映像データを逆ＤＣＴする。フレームメモリ部（Ｆｒａｍｅ Ｍｅｍｏｒｙ、ＦＭ）１７０は、ＩＤＣＴ部１６０で逆ＤＣＴされた映像データをフレーム単位で貯蔵する。動き推定部（Ｍｏｔｉｏｎ Ｅｓｔｉｍａｔｉｏｎ、ＭＥ）１８０は、入力される現在フレームの映像データ及びフレームメモリ部１７０に貯蔵された以前フレームの映像データを利用してマクロブロック当り動きベクトル（Ｍｏｔｉｏｎ Ｖｅｃｔｏｒ、ＭＶ）及びＳＡＤ（Ｓｕｍ ｏｆ Ａｂｓｏｌｕｔｅ Ｄｉｆｆｅｒｅｎｃｅ）を推定する。ＶＬＣ（Ｖａｒｉａｂｌｅ Ｌｅｎｇｔｈ Ｃｏｄｉｎｇ）部１４０は、動き推定部１８０で推定された動きベクトルＭＶによって量子化された映像データの統計的冗長性を除去する。
【０００４】
ＤＣＴスキッピング部１１０は、動き推定部ＭＥ１８０で推定されたブロック当りＳＡＤ及び量子化部Ｑ１３０で発生する量子化パラメータ（Ｑｕａｎｔｉｚａｔｉｏｎ Ｐａｒａｍｅｔｅｒ、ＱＰ）をしきい値Ｔと比較して、ＤＣＴ部１２０に８×８ブロック単位ＤＣＴスキッピング情報を提供する。すなわち、ＤＣＴスキッピング部１１０は、ＳＡＤ／ＱＰがしきい値Ｔより少なければＥＯＢ（Ｅｎｄ Ｏｆ Ｂｌｏｃｋ）が０に近い可能性が大きいため、強制に非コード化し、ＳＡＤ／ＱＰがしきい値Ｔより大きければＤＣＴを行わせる。しかし、しきい値Ｔが映像シーケンス内で一定値に固定される場合にマクロブロックまたはフレーム別にＤＣＴ演算複雑度が変わる。特にパソコンやメディアプロセッサで具現されたソフトウェア動映像エンコーダにおいて、ＤＣＴ演算複雑度がマクロブロックまたはフレーム別に変わる場合にプロセッサの限定された演算複雑度によってリアルタイムエンコーディングが不可能な問題点がある。
【０００５】
【発明が解決しようとする課題】
本発明が解決しようとする技術的課題は、ＤＣＴスキッピングのためのしきい値を適応的に調節することによって動映像エンコーダの演算複雑度を一定に維持する動映像符号化方法を提供するところにある。
本発明が解決しようとする他の技術的課題は、動き推定演算複雑度とＤＣＴ演算複雑度とを共に調節することによって映像の特性に関係なく動映像エンコーダの演算複雑度を一定に維持する動映像符号化方法及びその装置を提供するところにある。
【０００６】
【課題を解決するための手段】
前記の技術的課題を解決するために、本発明の動きベクトルを推定する動映像符号化方法は、（ａ）以前フレームのマクロブロック当り探索点の数に基づいて設定されたしきい値と各候補動きベクトルのＳＡＤとを比較する過程と、（ｂ）前記（ａ）過程で各候補動きベクトルのＳＡＤがしきい値より少なければ、マクロブロックの動きベクトル探索を終了して最小ＳＡＤを有する候補動きベクトルを動きベクトルに決定する過程と、（ｃ）前記（ｂ）過程で動きベクトルに対する探索が終了すれば、現在フレームのマクロブロック当り探索点の数によって次のフレームの（ａ）過程で適用される前記しきい値を更新する過程とを含むことを特徴とする。
【０００７】
前記の他の技術的課題を解決するために、本発明の動映像符号化方法は、（ａ）以前フレームのマクロブロック当り探索点の数によって設定されるしきい値と動きベクトルのＳＡＤとを比較してマクロブロックの探索を終了するかどうかを決定し、その決定によって動きを推定する過程と、（ｂ）前記過程の動き推定に対する演算複雑度を計算して目標とする動き推定演算複雑度に対する変化分を推定する過程と、（ｃ）前記（ｂ）過程で推定された動き推定演算複雑度に対する変化分に基づいて目標とするＤＣＴ複雑度を更新し、その更新された目標とするＤＣＴ複雑度によって映像データのＤＣＴスキッピングのためのしきい値を設定する過程と、（ｄ）前記（ｃ）過程で設定されたしきい値によって現在フレームの映像データに対するＤＣＴスキップを調節する過程とを含むことを特徴とする。
【０００８】
前記のさらに他の技術的課題を解決するために、本発明の動映像符号化装置は、入力される映像データからブロック別に離散コサイン変換する離散コサイン変換部と、前記離散コサイン変換部で離散コサイン変換された映像データを量子化する量子化部と、以前フレームのマクロブロック当り平均探索点の数によってしきい値（Ｔｈｒｅｓｈｏｌｄ ｖａｌｕｅ、ＴＨ）を更新した後、そのしきい値とマクロブロック当りＳＡＤとを比較して現在フレームの動きベクトルを推定する動き推定部と、前記動き推定部で更新されたフレーム別しきい値によるマクロブロック別探索点の数に基づいて演算複雑度を計算し、その動き推定演算複雑度と目標とする動き推定演算複雑度との変化分を推定し、その推定された動き推定演算複雑度の変化分に基づいて目標とする離散コサイン変換の演算複雑度を更新するＤＣＴ演算量計算部と、前記ＤＣＴ演算量計算部の更新された目標離散コサイン変換の演算複雑度に基づいて離散コサイン変換スキッピングのためのしきい値を設定して、動き推定部で発生するブロック当りＳＡＤ及び量子化部で発生する量子化パラメータを前記しきい値と比較して前記離散コサイン変換部のＤＣＴ演算を行うかどうかを決定するＤＣＴスキッピング部とを含むことを特徴とする。
【０００９】
【発明の実施の形態】
以下、添付された図面を参照して本発明の望ましい実施例を説明する。
図２は、本発明による動映像符号化装置の全体ブロック図である。
図２を参照すれば、入力映像データは８×８ブロック単位のフレームで構成される。
【００１０】
ＤＣＴ部２２０は、入力される映像データをＤＣＴスキッピング部２９０で発生するＤＣＴスキッピング制御信号によって８×８ブロック単位で離散コサイン変換するか、非コード化処理する。量子化部Ｑ２３０は、ＤＣＴ部２２０でＤＣＴされた映像データを量子化する。ＶＬＣ部２４０は量子化された映像データで統計的な冗長性を除去する。逆量子化部２５０は、量子化部２３０で量子化された映像データを逆量子化する。ＩＤＣＴ部２６０は、逆量子化部２５０で逆量子化された映像データを逆ＤＣＴする。フレームメモリ部ＦＭ２７０は、ＩＤＣＴ部２６０で逆ＤＣＴされた映像データをフレーム単位で貯蔵する。動き推定部ＭＥ２８０は、入力される現在フレームの映像データ及びフレームメモリ部２７０に貯蔵された以前フレームの映像データを利用してマクロブロック当り動きベクトルＭＶ及びＳＡＤを推定する。この時、動き推定部ＭＥ２８０は、以前フレームのマクロブロック当り平均探索点の数によって、しきい値ＴＨを更新し、現在フレームでその更新されたしきい値ＴＨとＳＡＤとを比較して動きベクトルに対する探索を終了するかどうかを制御する。
【００１１】
ＤＣＴ演算量計算部２８４は、動き推定部ＭＥ２８０で動き推定のための全体演算複雑度を計算して目標とする動き推定演算複雑度に対する変化分を推定し、その推定された動き推定演算量変化分に基づいて目標とするＤＣＴ演算複雑度を更新する。
ＤＣＴスキッピング部２９０は、更新された目標とするＤＣＴ演算複雑度を参照して、現在フレームのＤＣＴスキッピングを行うためのしきい値Ｔｏｎ＋１を設定し、動き推定部ＭＥ２８０で推定されたブロック当りＳＡＤ及び量子化部Ｑ２３０で推定された量子化パラメータＱＰをしきい値Ｔｏｎ＋１と比較してＤＣＴ部２２０にＤＣＴスキッピング情報を提供する。
【００１２】
図３は、本発明による動き推定部２８０の動き推定方法を示すフローチャートである。
まず、任意の高速動き推定技法によって現在処理中のマクロブロックの第１の候補動きベクトルに該当するＳＡＤを計算して最小ＳＡＤ ＳＡＤｍｉｎに設定する（３１０過程）。
次いで、計算されたＳＡＤと、以前フレームのマクロブロック当り探索点の数に既に設定されたしきい値ＴＨとを比較する（３２０過程）。ここで、ＳＡＤがしきい値ＴＨより少なければ（３２０過程で「はい」）、そのＳＡＤが最小ＳＡＤ ＳＡＤｍｉｎに決定される（３２２過程）。これと同時に、現在マクロブロックの動きベクトルに対する探索を終了した後、最小ＳＡＤ ＳＡＤｍｉｎを有する候補動きベクトルが現在マクロブロックの最終の動きベクトルに選択される（３２４過程）。
【００１３】
次いで、現在フレーム内に処理するマクロブロックが残っていれば（３３０過程）次のマクロブロックの動きを推定し（３１０過程）、そうでなければ、現在フレームのマクロブロック当り探索点の数によってしきい値ＴＨを更新した後、そのしきい値で次のフレームの動きを推定する（３４０過程）。この時、しきい値ＴＨは（ＴＨｎ×Ｓｎ）／Ｓｔによって更新される。ここでＴＨｎは以前しきい値であり、Ｓｎは以前フレームのマクロブロック当り平均探索点の数であり、Ｓｔは目標とするマクロブロック当り探索点の数である。しきい値ＴＨを計算するために次のような誘導過程が必要である。しきい値ＴＨは、ＭＥ演算複雑度（マクロブロック当り探索点の数）と比例する特性を利用する。すなわち、ｎ＋１番目フレームのしきい値ＴＨは数式２のように定義する。
【００１４】
【数２】
0003854933.tif 000002
【００１５】
ここでＭはフレーム当りマクロブロックの数であり、ＳＡＤｎｍｉｎ［ｉ］はｎ番目フレームのｉ番目マクロブロックの最小ＳＡＤを意味し、ｗは定数である。通常的に数式３のようにしきい値が増加するにつれて平均探索点の数が反比例して少なくなる。
【００１６】
【数３】
0003854933.tif 000003
【００１７】
ここでＳｎはｎ番目フレームの動き推定演算複雑度である。本発明では一実施例としてＬ．−Ｋ．Ｌｉｕ ａｎｄ Ｅ．Ｆｅｉｇ，“Ａ ｂｌｏｃｋ−ｂａｓｅｄ ｇｒａｄｉｅｎｔ ｄｅｓｃｅｎｔ ｓｅａｒｃｈ ａｌｇｏｒｉｔｈｍ ｆｏｒ ｂｌｏｃｋ ｍｏｔｉｏｎ ｅｓｔｉｍａｔｉｏｎ ｉｎ ｖｉｄｅｏ ｃｏｄｉｎｇ，”ＩＥＥＥ Ｔｒａｎｓ．Ｃｉｒｃ．Ｓｙｓｔ．ｆｏｒ Ｖｉｄｅｏ Ｔｅｃｈｎｏｌ．，ｖｏｌ．６，ｎｏ．４，ｐｐ．４１９〜４２２，Ａｕｇ．１９９６．に記載されているＢＢＧＤＳ（ｂｌｏｃｋ−ｂａｓｅｄ ｇｒａｄｉｅｎｔ ｄｅｓｃｅｎｔ ｓｅａｒｃｈ）アルゴリズムを使用し、ＢＢＧＤＳの場合にマクロブロック当り探索点の数がＳに該当する。結局、数式３は数式４及び数式５のように示すことができる。
【００１８】
【数４】
0003854933.tif 000004
【００１９】
【数５】
0003854933.tif 000005
【００２０】
したがって数式４及び数式５に基づいて数式６が成立する。
【数６】
0003854933.tif 000006
【００２１】
次いで、ＳＡＤがしきい値ＴＨより大きければそのＳＡＤを最小ＳＡＤ ＳＡＤｍｉｎと比較する。この時、ＳＡＤが最小ＳＡＤ ＳＡＤｍｉｎより少なければ（３２６過程で「はい」）、そのＳＡＤが最小ＳＡＤ ＳＡＤｍｉｎに決定される（３２８過程）。次いで、次の候補動きベクトルがなければ（３５０過程で「はい」）、現在マクロブロックの動きベクトル探索を終了し（３２４過程）、次の候補動きベクトルがあれば（３５０過程で「はい」）、その候補動きベクトルに対応するＳＡＤを計算した後、再びＳＡＤとしきい値とを比較する（３２０過程）。
【００２２】
したがって、本発明では任意の高速動き推定技法を適用して探索領域内の各候補動きベクトルを探索する。この時、ある候補動きベクトルに対応するＳＡＤが以前フレームのマクロブロック当り平均探索点の数及び以前フレームのしきい値に基づいた現在フレームのしきい値より少ない場合、残りの候補動きベクトルをもう探索せずに該当動きベクトルを最終の動きベクトルに決める。
【００２３】
図４は、本発明による動映像符号化方法を示すフローチャートである。
まず、全体エンコーダ演算複雑度に対する目標とする動き推定演算複雑度Ｓｔ及び目標とするＤＣＴ演算複雑度Ｃｔを設定する。
次いで、映像データが入力されれば、図３のフローチャートで説明されたように、毎フレーム別にマクロブロック当り探索点の数によってしきい値を更新し、そのしきい値とＳＡＤとの比較によって、該当マクロブロックに対する探索を制御しながら動き推定を行う（４０５過程）。
【００２４】
次いで、動き推定されたｎ番目のフレームでマクロブロック当り探索点の数を平均して、動き推定の演算複雑度Ｓ（ｎ）を計算する（４１０過程）。この時、通常的な高速動き推定技法はマクロブロック別の探索によって演算複雑度が変わる。例えば、高速動き推定技法は、ＢＢＧＤＳのように探索領域内探索点の数が変わる方式と、速いフルサーチ（ｆａｓｔ ｆｕｌｌ ｓｅａｒｃｈ）のようにブロック整合当り必要な計算を効果的に減らす方式とに分類できる。いずれの方式でも毎フレーム別に動き推定が占める演算複雑度を計算できる。
【００２５】
次いで、目標とする動き推定演算複雑度Ｓｔ−以前フレームの動き推定ＭＥ演算複雑度Ｓ（ｎ）を計算して動き推定の演算複雑度変化分を抽出する（４２０過程）。すなわち、以前フレームで動き推定の相対的な演算複雑度が目標とする演算複雑度Ｓｔより増えたか減ったかをチェックする。これは連続するフレーム（例えば、以前フレームと現在フレーム）でのＭＥ演算量の比重はほとんど同じであるという特性に起因する。
【００２６】
次いで、動き推定演算複雑度変化分（Ｓｔ−Ｓ（ｎ））を元の目標とするＤＣＴ演算複雑度Ｃｔに加算して更新された目標とするＤＣＴ演算複雑度Ｃｔ‘を修正する（４３０過程）。この時、目標とする動き推定演算複雑度Ｓｔや以前フレームの動き推定ＭＥ演算複雑度Ｓ（ｎ）はマクロブロック当り平均探索点の数であり、目標とするＤＣＴ演算複雑度Ｃｔはマクロブロック当り総ＤＣＴの遂行ブロック数である。そして、一探索点の処理にかかる演算複雑度と８×８ＤＣＴ演算複雑度とが同一であるという仮定下に、動き推定演算複雑度変化分（Ｓｔ−Ｓ（ｎ））を元の目標とするＤＣＴ演算複雑度Ｃｔに単純に加算する。また、一探索点の処理にかかる演算複雑度と８×８ＤＣＴ演算複雑度とが異なる場合、Ｃｔ＋ｗ｛Ｓｔ−Ｓ（ｎ）｝のように動き推定演算複雑度変化分（Ｓｔ−Ｓ（ｎ））に適当なウェートｗを乗算する。
【００２７】
次いで、更新された目標ＤＣＴ演算複雑度Ｃｔ’に基づいて現在フレームのＤＣＴスキッピングのための現在フレームのしきい値Ｔｏｎ＋１を設定する（４４０過程）。
現在フレームのしきい値Ｔｏｎ＋１を計算するために次のような誘導過程が必要である。
ＤＣＴ複雑度は、ＴＱの逆数に比例するという特性を利用して数式７のように示すことができる。この時、ＤＣＴ複雑度はＤＣＴを行う確率またはＤＣＴ演算複雑度であって、ＤＣＴ遂行ブロックの数で計算される。
【００２８】
【数７】
0003854933.tif 000007
【００２９】
ここでＴｏはしきい値であり、Ｑは量子化係数である。ｎフレームにおいて、数式８のようになる。
【００３０】
【数８】
0003854933.tif 000008
【００３１】
また、数式７から得たｎ＋１番目フレームの望ましいしきい値は、数式９のように示すことができる。
【００３２】
【数９】
0003854933.tif 000009
【００３３】
ここで、Ｃｔは目標ＤＣＴ複雑度である。
したがって、数式９は数式１０のように示すことができる。
【００３４】
【数１０】
0003854933.tif 000010
【００３５】
数式１０を再び整理すれば数式１１のように示すことができる。
【数１１】
0003854933.tif 000011
【００３６】
数式１１は数式１２のように示すことができる。
【００３７】
【数１２】
0003854933.tif 000012
【００３８】
ｋによって収斂速度が変わる。数式１０によれば、現在フレームのしきい値Ｔｏｎ＋１は以前フレームでのしきい値Ｔｏｎ、量子化係数Ｑｎ、Ｑｎ＋１、そして以前フレームのＤＣＴ複雑度Ｃｎに基づいて求められる。
したがって、本発明に適用される現在フレームのしきい値Ｔｏｎ＋１は、数式５の目標とするＤＣＴ複雑度ＣｔをＣｔ＋Ｓｔ−Ｓｎに取り替えた更新された目標とするＤＣＴ演算複雑度Ｃｔ‘を適用して数式１３のように示す。
【００３９】
【数１３】
0003854933.tif 000013
【００４０】
ここで、Ｔｏｎは以前フレームのしきい値、Ｑｎは以前フレームの量子化係数、Ｑｎ＋１は現在フレームの量子化係数、Ｃｎは以前フレームのＤＣＴ演算複雑度、ｋは定数、Ｃｔ’は更新された目標とするＤＣＴ演算複雑度である。
【００４１】
次いで、動き推定及び量子化過程で発生するブロック当りＳＡＤ及び量子化パラメータＱｎ＋１を現在フレームのしきい値Ｔｏｎ＋１と比較する（４５０過程）。
次いで、ＳＡＤ／量子化パラメータＱｎ＋１がしきい値Ｔｏｎ＋１より少なければ該ブロックのＤＣＴを行わずに強制に非コード化し（４６０過程）、ＳＡＤ／量子化パラメータＱｎ＋１がしきい値Ｔｏｎ＋１より大きければＤＣＴを行う（４７０過程）。
【００４２】
次いで、入力される動映像のエンコーディングが終了するまで前記過程を反復して行う（４８０過程）。
結局、本発明は、任意の高速動き推定技法が導入されても動き推定部２８０で毎フレームにしきい値ＴＨを調節して動き推定演算量を一定に維持し、同時に動き推定部２８０の演算複雑度変化分をＤＣＴスキッピングモジュールに適用することによって、エンコーダの全体的な計算量を目標とする演算複雑度Ｃｔ＋Ｓｔに近接に維持できる。
【００４３】
図５は、図３のような動き推定方法で数式６によってしきい値ＴＨを調節した場合に、フレーム別探索点の数を示すグラフである。点線は本発明を適用した場合の探索点の数であり、実線は本発明を適用しなかった場合の探索点の数である。図５を参照すれば、本発明を適用することによって突然の動きの増加による探索点の数の急増を性能低下なしに効果的に減らすことができる。
【００４４】
本発明は前述した実施例に限定されず、本発明の思想内で当業者による変形が可能である。
本発明は、また、コンピュータが読み取りできる記録媒体にコンピュータが読み取りできるコードとして具現することが可能である。コンピュータが読み取りできる記録媒体は、コンピュータシステムによって読み取りできるデータが貯蔵されるあらゆる記録装置を含む。コンピュータが読み取りできる記録媒体の例には、ＲＯＭ、ＲＡＭ、ＣＤ−ＲＯＭ、磁気テープ、ハードディスク、フロッピー（登録商標）ディスク、フラッシュメモリ、光データ貯蔵装置などがあり、またキャリヤウェーブ（例えば、インターネットを通した伝送）の形に具現されるものも含む。またコンピュータが読み取りできる記録媒体はネットワークで連結されたコンピュータシステムに分散されて、分散方式でコンピュータが読み取りできるコードとして貯蔵されて実行される。
【００４５】
【発明の効果】
前述したように本発明によれば、毎フレームに適応的にしきい値を更新してフレーム当り探索点の数を調節することによって映像の特性に関係なく動映像エンコーダの演算複雑度を一定に維持でき、また、毎フレームにしきい値を調節できる動き推定の上に動き推定計算複雑度を考慮したＤＣＴスキッピング方法を連係することによって、任意の高速動き推定技法が使われても全体エンコーディング演算複雑度を一定に維持できる。すなわち、図２に示されたように、本発明の動映像符号化装置は、動きが多いか、あるいは複雑なフレームで一次的に動き推定演算複雑度の変化分を減らし、その減らした動き推定演算複雑度変化分に基づいて目標とするＤＣＴ演算複雑度を更新するために、動き推定部の演算複雑度を調節せずに目標とするＤＣＴ演算複雑度を更新する場合より非常に効果的である。
【図面の簡単な説明】
【図１】  従来の動映像符号化システムを示すブロック図である。
【図２】  本発明による動映像符号化装置の全体ブロック図である。
【図３】  本発明による動き推定部の動き推定方法を示すフローチャートである。
【図４】  本発明による動映像符号化方法を示すフローチャートである。
【図５】  図３のような動き推定方法でしきい値を調節した場合にフレーム別探索点の数を示すグラフである。
【符号の説明】
２２０    ＤＣＴ部
２３０    量子化部
２４０    ＶＬＣ部
２５０    逆量子化部
２６０    ＩＤＣＴ部
２７０    フレームメモリ部
２８０    動き推定部
２９０    ＤＣＴスキッピング部
【図１】
0003854933.tif 000016
【図２】
0003854933.tif 000017
【図３】
0003854933.tif 000018
【図４】
0003854933.tif 000019
【図５】
0003854933.tif 000020