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