(57)【要約】ビデオピクチャデータのシーケンス中の繰り返しピクチャを検出する方法であり、前記ビデオピクチャデータの各ピクチャが複数のマクロブロックを含む方法が提供される。この方法は、各マクロブロックの最適動きベクトル、各マクロブロックの最適動きベクトルの差分絶対値和の値及び各マクロブロックのゼロ動きベクトルの差分絶対値の和の値を提供するために、複数のレベルを含み、各マクロブロックの前記最適動きベクトル、前記最適動きベクトルの差分絶対値和の値及び前記ゼロ動きベクトルの差分絶対値和の値が少なくとも最上位レベルに提供される階層的動き推定をビデオピクチャデータに対して実行することと、階層的動き推定の最上位レベルからゼロ動きベクトルの差分絶対値の和の値に基づいてノイズ閾値を提供することと、ピクチャに対して歪み値を提供するためにノイズ閾値より大きい最適動きベクトルの差分絶対値の和の値を有するマクロブロックに対する最適動きベクトルの差分絶対値の和の値を累積することと、歪み値に依存して繰り返しフラグを設定することとを含む。この方法を実行するように構成された装置、並びにコンピュータによる実行時にそのコンピュータにこの方法を実行させる命令を保持するコンピュータ可読媒体が更に提供される。
2011525761.tif 000002
【特許請求の範囲】
【請求項１】
夫々のピクチャが複数のマクロブロックを含むビデオピクチャデータのシーケンスにおいて繰り返しピクチャを検出する方法であって、前記方法は
各マクロブロックの最適動きベクトルと、各マクロブロックの最適動きベクトルの差分絶対値の和の値と、各マクロブロックのゼロ動きベクトルの差分絶対値和の値とを提供するために、複数のレベルを含み、各マクロブロックの前記最適動きベクトル、前記最適動きベクトルの差分絶対値の和の値と前記ゼロ動きベクトルの差分絶対値の和の値が少なくとも最上位レベルに対して提供される階層的動き推定を前記ビデオピクチャデータに対して実行する工程と、
前記階層的動き推定の最上位レベルから前記ゼロ動きベクトルの差分絶対値の和の値に基づいてノイズ閾値を提供する工程と、
前記ピクチャに対して歪み値を提供するために、前記ノイズ閾値より大きい最適動きベクトルの差分絶対値の和の値を有するマクロブロックに対する前記最適動きベクトルの差分絶対値和の値を累積する工程と、
前記歪み値に依存して、繰り返しフラグを設定する工程とを有することを特徴とする方法。
【請求項２】
各レベルにおいて、前記階層的動き推定は試験中の現在のピクチャ及び前記現在のピクチャと比較するための先行ピクチャに対して実行され、
前記階層的動き推定は、
前記現在のピクチャ及び前記先行ピクチャをローパスフィルタリングする工程と、
前記現在のピクチャ及び前記先行ピクチャの双方を第１の所定の値だけ間引く工程と、
前記各マクロブロックに関する最適動きベクトルと、前記各マクロブロックに関する最適動きベクトルの差分絶対値の和の値と、前記各マクロブロックのゼロ動きベクトルの差分絶対値の和の値とを提供するために、前記フィルタリングされ前記間引かれた現在のピクチャと前記フィルタリングされ前記間引かれた先行ピクチャとに対して、フルサーチ動き推定を実行する工程とを含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記フルサーチ動き推定を実行する工程は、検索ウィンドウにおいて前記フルサーチ動き推定を実行することを含むことを特徴とする請求項２に記載の方法。
【請求項４】
前記検索ウィンドウのサイズは（±１６，±１２）であることを特徴とする請求項３に記載の方法。
【請求項５】
前記フルサーチ動き推定は、前記最上位レベルに対して（０，０）の周囲で実行され、より低い各レベルに対しては、上位レベルからの前記最適動きベクトルの周囲で実行されることを特徴とする請求項２乃至４のいずれか１項に記載の方法。
【請求項６】
前記階層的動き推定は、３つのレベルに対して実行されることを特徴とする請求項１乃至５のいずれか１項に記載の方法。
【請求項７】
前記ノイズ閾値を提供する工程はさらに、
ノイズ推定閾値を提供するために前記階層的動き推定の最上位レベルからの前記ゼロ動きベクトルの差分絶対値の和の値を合計する工程と、
前記ノイズ推定閾値を第２の所定の値で除算する工程と、
オフセット値を加算する工程とを含むことを特徴とする請求項１乃至６のいずれか１項に記載の方法。
【請求項８】
前記ノイズ閾値を提供する工程は、
前記ノイズ閾値を第３の所定の値に制限する工程を更に含むことを特徴とする請求項１乃至７のいずれか１項に記載の方法。
【請求項９】
繰り返しフラグの出力シーケンスから、一般的な３：２プルダウン繰り返しシーケンスを表示する繰り返しピクチャと非繰り返しピクチャのシーケンスを検出する工程を更に有することを特徴とする請求項１乃至８のいずれか１項に記載の方法。
【請求項１０】
前記累積する工程はさらに、
第４の所定の値を下回る累積された最適動きベクトルの差分絶対値の和の値を無視する工程を含むことを特徴とする請求項９に記載の方法。
【請求項１１】
前記ピクチャは上位フィールド及び下位フィールドを含み、
前記累積する工程は、
疑似コード：
Field_Distortion ＝ 0;
全てのマクロブロックに関し、
if (Best_MV_SAD ＞ Field_Noise_Threshold)
Field_Distortion ＋＝ Best_MV_SAD;
if (Field_Distortion ＞ fourth predetermined value)
Field_Distortion ＝ Field_Distortion - fourth predetermined value 
else
Field_Distortion ＝ 0;
if (Field_Distortion ＜ fifth predetermined value)
Field_Distortion ＝ fifth predetermined value/(1＋Field_Distortion);
else
Field_Distortion ＝ 1;
を前記上位フィールド又は前記下位フィールドに対して別個に実行することを含むことを特徴とする請求項１０に記載の方法。
【請求項１２】
前記繰り返しフィールドと非繰り返しフィールドのシーケンスを検出する工程は、
疑似コード：
if ((Field_Distortion * sixth predetermined value/(Field_Sum ＋ Field_Distortion)) ＞ seventh predetermined value AND Field_Distortion ＞ eighth predetermined value AND Previous Field_Repetitive_Flag is at least 4 Fields away)
Set Field_Repetitive_Flag to 1;
Otherwise set Field_Repetitive_Flag to 0;
を前記上位フィールド及び前記下位フィールドに対して別個に実行することを含むことを特徴とする請求項１１に記載の方法。
【請求項１３】
前記ピクチャはフレームを含み、
前記累積する工程は、
疑似コード：
Frame_Distortion ＝ 0;
フレームにおける全てのマクロブロックに関し、
if (Best_MV_SAD ＞ Frame_Noise_Threshold)
Frame_Distortion ＋＝ Best_MV_SAD;
if (Frame_Distortion ＞ fourth predetermined value)
Frame_Distortion ＝ Frame_Distortion - fourth predetermined value
else
Frame_Distortion ＝ 0
を実行することを含むことを特徴とする請求項１０に記載の方法。
【請求項１４】
前記繰り返しフレームと非繰り返しフレームのシーケンスを検出する工程は、
疑似コード：
if (Frame_Distortion)) ＜ ninth predetermined value;
Set Frame_Repetitive_Flag to 1
を実行することを含むことを特徴とする請求項１３に記載の方法。
【請求項１５】
前記階層的動き推定は前記ノイズ閾値を提供するために使用され、あらゆる形態の動き推定が、後続する前記累積する工程において前記最適動きベクトルの差分値の和を提供するために使用されることを特徴とする請求項１乃至１４のいずれか１項に記載の方法。
【請求項１６】
実質的に請求項１乃至１５のいずれか１項に記載の方法であって、かつ、図４乃至図１０に図示されていることを特徴とする方法。
【請求項１７】
繰り返しピクチャを検出するためにビデオピクチャデータのシーケンスを前処理するビデオプリプロセッサ装置であって、
請求項１乃至１６のいずれか１項に記載の方法を実行するように構成された装置を備えたことを特徴とする装置。
【請求項１８】
繰り返しピクチャを検出するためにビデオピクチャデータのシーケンスを前処理するビデオプリプロセッサ装置であって、
階層的動き推定回路と、
ノイズ推定回路と、
１ピクチャ遅延回路と、
繰り返しピクチャが前記階層的動き推定回路の出力を使用して前記ノイズ推定回路により導出されたノイズ閾値を使用して検出される時に繰り返しフラグを設定するように構成された決定論理部とを有することを特徴とする装置。
【請求項１９】
実行時にコンピュータ論理回路に請求項１乃至１６のいずれか１項に記載の方法を実行させる命令を保持するコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般にビデオ符号化に関し、特に、繰り返されるピクチャを検出するためのビデオの前処理に関するものである。
【背景技術】
【０００２】
数十年もの間、映画産業は、動画材料を撮像するために２４画像／秒（即ち、２４Ｈｚ）のピクチャ又はフレームレートを使用していた。テレビ技術が１９３０年代に登場した時、この初期のフィルム規格が存在したにも関わらず異なるフレームレートが選択された。実際には、２４Ｈｚのフィルム規格が実質上の世界標準であったが、テレビのピクチャレートは、配電システムの周波数に基づいて２つの標準に二極化された。
【０００３】
欧州及び世界の他の多くの地域では、電力周波数は５０Ｈｚであるため、これらの地域において、テレビのフレームレートは一般に２５Ｈｚである。これは、テレビが主にインタレースディスプレイ形式、即ち、動画を生成するために交互に入れ替わるフィールド（上位（ＴＯＰ）及び下位（ＢＯＴＴＯＭ））を表示する形式であるためである。これを図１に更に明示的に示す。従って、テレビの場合、インタレースフィールドディスプレイレートが電力システムの周波数、即ち、５０Ｈｚである場合、結果として得られるフレームレートは半分、即ち、２５Ｈｚである。
【０００４】
２つのフレーム周波数（２４Ｈｚ対２５Ｈｚ）の間の差は小さいため、映画は通常よりわずかに速く（約４．１６％速く）フィルムを回すことにより２５Ｈｚで欧州のテレビで容易に提示される。この場合、音の高さがほぼ半音高いが、視聴者はそれを許容できる。従って、５０Ｈｚのテレビ環境で映画を提示することに関連する大きな問題はない。
【０００５】
しかしながら、米国及び米国の電力周波数が採用されている他のいくつかの地域では電力周波数が６０Ｈｚであるため、それらの地域のテレビのフィールドレートは６０Ｈｚであり且つフレームレートは３０Ｈｚである。後者のフレーム周波数は、１９５０年代にカラーテレビ（ＮＴＳＣテレビジョン方式（National Television System Committee）と呼ばれる方式）が採用された時に２９．９７Ｈｚになるように変更され、このフレーム周波数がそれ以降使用されている。
【０００６】
元の２４Ｈｚのフィルムレートと現在の２９．９７ＨｚのＮＴＳＣフレームレートとの間の差異は約２５％であり、このフレームレートの差異が大きいため、ＮＴＳＣテレビ（又は他の６０Ｈｚのテレビ方式）での映画の提示は容易ではなく、単に映画の再生速度を加速することでは行えない。
【０００７】
上記で簡単に説明したように、全ての現在の標準解像度テレビジョンシステムは完全なテレビフレームの各々がフィールドと呼ばれる２つの部分で送信されるインタレースのシステムを使用する。図１は、ビデオフレーム１０が奇数ラインを含む上位フィールド２０及び偶数ラインを含む下位フィールド３０の２つのフィールドから形成される方法を示す。
【０００８】
送信される第１のフィールドはラスタ走査の奇数ラインを含み、送信される第２のフィールドはラスタ走査の偶数ラインを含む。
【０００９】
図２は、８つのフィールドを有するフィルムシーケンスの４つのフレーム、即ち、ビデオの代表的な４フレームの長さの部分における通常のフィールドのシーケンスを示す。
【００１０】
フィルム生成中に取り込まれる２４フレーム／秒をＮＴＳＣテレビジョン方式の２９．９７フレーム／秒にマッピングする方法は「３：２プルダウン」と呼ばれる。これは、２４個のフィルムフレームが対応する３０個のテレビフレームと同一の時間を占有すること、即ち、５個のテレビフレームの各集合に対して４つのフィルムフレームが占有することを保証するパターンのいくつかのテレビフレームのいくつかのフィールドの完全な繰り返しを含む。２９．９７Ｈｚと３０Ｈｚとの間の小さな差分はこの処理に対しては重要ではない。
【００１１】
３：２プルダウン処理において、２４個のフィルムフレーム（／秒）は、６０個の別個のテレビ又はビデオフィールドとして配置された３０個のビデオフレーム（／秒）に分配される。各３：２シーケンスの開始時、フィルムの所定のフレームは走査され且つビデオ出力の３つのフィールド上に配置される。ここで、第３のフィールドは第１のフィールドの繰り返しであり、新しいテレビフレームの第１のフィールドを含む。その後、次のフィルムフレームが走査され且つ次の２つのテレビフィールド上に配置されるが、順番は逆である。即ち、第２のテレビフレームを完成するために下位フィールドが最初になり、第３のテレビフレームの第１のフィールドを形成するために上位フィールドは最後になる。第３のフィルムフレームは走査され且つ別の繰り返しフィールドを含む次の３つのフィールド上に配置され（即ち、マッピングされ）、第４のフィルムフレームは２つのテレビフレーム上になるが順番は逆である。その結果、４つのフィルムフレーム毎に、図３に示すようなテレビフィールド分布のパターンで５つのテレビフレーム（又はＮＴＳＣインタレースビデオの１０個のフィールド）に変換される。
【００１２】
そのようなテレビフィールドのシーケンスにビデオ圧縮を適用することにより、特有の問題が生じる。例えば、３：２プルダウン処理が適用されたシーケンスにおいて、フレームを使用した符号化が使用される場合、全てのテレビフレームのうちの１／４は種々のソースフィルムフレームのうちの２つのフィールドから構成され、低品質の圧縮及び望ましくない目に見える人為的な不自然な結果を招く。その一方で、フィールドを使用した符号化が使用される場合、フィールドの繰り返しにより起こる２つの冗長フィールドは１０個のフィールド毎に無駄に再符号化され、結果として非効率的な圧縮を招く。
【００１３】
その結果、ＭＰＥＧ２デジタルビデオのシンタックス（syntax）は、そのようなシーケンスが２４フレーム／秒で符号化され且つフィールドの繰り返しが復号器で実行されるようにフラグを使用してこの効率の悪さを回避しようとしている。これらのフラグは、ＲＦＦ（Pepeat First Field）及びＴＦＦ（Top Field First）である。同様に、付加拡張情報（ＳＥＩ）メッセージは、繰り返しフィールドを示すためにＨ．２６４において使用される。従って、達成される圧縮を向上させ、且つ知覚されるビデオ品質を向上させるためにビデオシーケンスにおいて繰り返しフィールドを確実に検出できることが非常に望ましい。
【００１４】
入力ビデオの形式の事前の指示を必要とするいくつかの３：２検出方式が存在し、それらの方式は全てのビデオが一貫して同一の形式及び品質であることを仮定している。従って、特に３：２シーケンスを検出する既知の実際的なハードウェアにおいて、入力が既にその形式であることは事実上既知である。
【００１５】
しかし、この入力ビデオの種類の事前の指示はビデオ圧縮符号器の前処理環境でそれ程使用されず、ソースのビデオ信号形式は本質的に任意に組み合わされてもよい。即ち、共に編集されたいくつかの種々のソースからの挿入を含んでもよい。ある材料はフィルムストックから導出され且つフィルムからの３：２変換であり、他の部分は必然的にインタレースされるテレビビデオ固有の部分であり、更に他の部分は元々はプログレッシブである。従って、プリプロセッサは、ピクチャ品質を低下させることなく信号形式又は挙動の事前の知識なしで全てのこれらの形式の特性に対処できるべきである。
【００１６】
ノイズのないシーケンスの場合、繰り返しフィールドは隣接するフレームにおいて同一のパリティ、即ち、上位又は下位フィールドを有するフィールド間の時間的差分を計算することによりインタレースビデオにおいて容易に検出される。例えば、図４に示すように、繰り返しフィールドの比較によりゼロの時間的差分（４０ａ）が生成され、非繰り返しフィールドの比較により非ゼロの時間的差分（４０ｂ）が生成される。これにより、１０フィールド期間にわたり時間的差分値の最終的な繰り返しパターンを識別するという機会が提供され、３：２プルダウンシーケンスが識別可能である。
【００１７】
しかしながら、ノイズ及びフィルムの揺れ等のビデオシーケンスに対する他の損傷がある場合、繰り返しフィールド間の時間的差分はゼロではない。差分値は、ノイズにより左右される累積された損傷の変化に依存する。
【００１８】
スローモーション動作及びノイズを含むシーケンスの場合、単に時間的差分の値を観察することは間違ったトリガを引き起こすか又は繰り返しフィールドのトリガを逃すことになる。これは、非繰り返しフィールドがそのようなスローモーションシーケンスに対しても小さな時間的差分値を生成するためである。繰り返しフィールド間の差分を解析することにより時間領域で動作する既存の解決策はノイズにより劣化するため、あらゆる新しい繰り返しフィールド検出方法がスローモーションシーケンスに対するノイズに対して高い耐性を有する向上した性能を提供することが非常に望ましい。
【００１９】
３：２プルダウンシーケンスを検出する方法が存在するが、ソースビデオシーケンスに一般に存在する強いノイズレベルがある状態で繰り返しフィールドを効率的に検出する方法は存在しない。
【００２０】
例えば、特許文献１では、３：２プルダウンパターンを識別するために隣接するフィールドの各ブロックの動きベクトル間の相関及び大きさの組合せを使用する。
【００２１】
特許文献２では、現在の上位及び下位フィールド、並びに以前の上位及び下位フィールドが各差分絶対値の和（ＳＡＤ）回路に入力され、且つその出力が差分信号を生成するために減算される回路を使用する。差分信号はスパイク検出器に入力され、スパイク検出器は、シーンの変更により起こるスパイクを検出し且つ除去し、最後の５つのフレームにわたり差分信号の最大値及び最小値を検出する。更にこれらの最大値及び最小値は、３：２プルダウン素材を示すフラグ信号を生成するために相関がとられ、そして処理される。
【００２２】
特許文献３では、動き推定器により判定されたフィールド動きベクトルを使用し、繰り返しフィールドが存在するかを判定するためにフィールド動きベクトルを閾値と比較する。
【００２３】
特許文献４では、３：２プルダウンシーケンスを検出するためにファジー理論を使用するが、フィールド又はフレーム差分及びＳＡＤを用いた方法を使用する。ファジー理論は、体系的に関係する５つのフレームにわたる３：２プルダウンシーケンスの予測されたフィールドのパターンを見る。
【先行技術文献】
【特許文献】
【００２４】
【特許文献１】米国特許第６，０５８，１４０号明細書
【特許文献２】米国特許第５，８５２，４７３号明細書
【特許文献３】米国特許第７，２０３，２３８号明細書
【特許文献４】米国特許第７，１８０，５７０号明細書
【発明の概要】
【発明が解決しようとする課題】
【００２５】
上述の方法の全てが入力ビデオシーケンスに存在するノイズレベルを適切に考慮に入れるわけではないため、ノイズがある状態で間違った結果を生成する可能性がある。例えば、それらの方法は、輝度成分の平均値を計算することによりテレビ信号のノイズ成分の大きさを計算してもよい。この手法は、より暗いシーンが撮影される時にビデオ信号がより大きいノイズ成分を有する（即ち、明るいシーンと比較して暗いシーンに対しての方がノイズレベルが高い）と仮定する。従って、この方法において、閾値は、輝度平均値が高い場合に小さい値に設定され、輝度平均値が低い場合に大きい値に設定される。
【００２６】
従って、本発明の目的は、そのような問題に対処し、ＭＰＥＧ２符号化の実際的な性能を向上させることである。
【課題を解決するための手段】
【００２７】
本発明を第１の側面から見れば、ビデオピクチャデータのシーケンス中の繰り返しピクチャを検出する方法であり、前記ビデオピクチャデータの各ピクチャが複数のマクロブロックを含む方法であって、前記方法は、各マクロブロックの最適動きベクトルと、各マクロブロックの最適動きベクトルの差分絶対値和の値と、各マクロブロックのゼロ動きベクトルの差分絶対値の和の値を提供するために、複数のレベルを含み、前記各マクロブロックの前記最適動きベクトルと、前記最適動きベクトルの差分絶対値の和の値と、前記ゼロ動きベクトルの差分絶対値の和のと値が少なくとも最上位レベルに対して提供される階層的動き推定をビデオピクチャデータに対して実行する工程と、前記階層的動き推定の最上位レベルからゼロ動きベクトルの差分絶対値の和の値に基づいてノイズ閾値を提供する工程と、ピクチャに対して歪み値を提供するために、前記ノイズ閾値より大きい最適動きベクトルの差分絶対値の和の値を有するマクロブロックに対する最適動きベクトルの差分絶対値の和の値を累積する工程と、歪み値に依存して繰り返しフラグを設定する工程とを有することを特徴とする方法を備える。
【００２８】
このようにして、より高い耐性を有し、ノイズに対して耐性のある繰り返しピクチャ検出方法が提供される。この方法は、一般にビデオ前処理又は符号化ハードウェアに既に含まれた特定の回路を再利用する。
【００２９】
オプションとして、各レベルにおいて、階層的動き推定は試験中の現在のピクチャ及び現在のピクチャと比較するための先行ピクチャに対して実行され、階層的動き推定は、現在のピクチャと先行ピクチャとをローパスフィルタリングする工程と、現在のピクチャ及び先行ピクチャの双方を第１の所定の値だけ間引く工程と、前記各マクロブロックの最適動きベクトルと、前記各マクロブロックの最適動きベクトルの差分絶対値の和の値と、前記マクロブロックのゼロ動きベクトルの差分絶対値の和の値とを提供するために、前記フィルタリングされ間引かれた現在のピクチャと前記フィルタリングされ間引かれた先行ピクチャに対してフルサーチ動き推定を実行する工程とを含む。
【００３０】
オプションとして、前記フルサーチ動き推定を実行する工程は、検索ウィンドウにおいてフルサーチ動き推定を実行することを含む。
【００３１】
オプションとして、その検索ウィンドウのサイズは（±１６，±１２）である。
【００３２】
オプションとして、フルサーチ動き推定は、最上位レベルに対して（０，０）の周囲で実行され、各下位レベルに対しては、上位レベルからの最適動きベクトルの周囲で実行される。オプションとして、階層的動き推定は、ノイズ閾値を導出するために最上位レベル（即ち、間引きの最大レベル）でのみ使用されてもよく、この方法全体の後続する部分では他の形態の動き推定が使用される。
【００３３】
オプションとして、階層的動き推定は３つのレベルに対して実行される。
【００３４】
オプションとして、ノイズ閾値を提供する工程は、ノイズ推定閾値を提供するために階層的動き推定の最上位レベルからのゼロ動きベクトルの差分絶対値和の値を合計することと、ノイズ推定閾値を第２の所定の値で除算することと、オフセット値を加算することとを更に含む。
【００３５】
オプションとして、ノイズ閾値を提供する工程は、ノイズ閾値を第３の所定の値に制限することを更に含む。
【００３６】
オプションとして、この方法は、繰り返しフラグの出力シーケンスから、一般的な３：２プルダウン繰り返しシーケンスを表示する繰り返しピクチャと非繰り返しピクチャのシーケンスを検出する工程を更に含む。
【００３７】
オプションとして、前記累積する工程は、第４の所定の値を下回る累積された最適動きベクトルの差分絶対値の和の値を無視することを更に含む。
【００３８】
オプションとして、ピクチャは上位フィールド及び下位フィールドを含み、
前記累積する工程は、
疑似コード、即ち、
Field_Distortion ＝ 0;
フィールドにおける全てのマクロブロックに関して、
if (Best_MV_SAD ＞ Field_Noise_Threshold)
Field_Distortion ＋＝ Best_MV_SAD;
if (Field_Distortion ＞ fourth predetermined value)
Field_Distortion ＝ Field_Distortion − fourth predetermined value
else
Field_Distortion ＝ 0;
if (Field_Distortion ＜ fifth predetermined value)
Field_Distortion ＝ fifth predetermined value/(1＋Field_Distortion);
else
Field_Distortion ＝ 1;
を上位フィールド又は下位フィールドに対して別個に実行することを含む。
【００３９】
オプションとして、繰り返しフィールドと非繰り返しフィールドのシーケンスを検出する工程は、
疑似コード、即ち、
if ((Field_Distortion * sixth predetermined value/(Field_Sum ＋ Field_Distortion)) ＞ seventh predetermined value AND Field_Distortion ＞ eighth predetermined value AND Previous Field_Repetitive_Flag is at least 4 Fields away)
Set Field_Repetitive_Flag to 1;
Otherwise set Field_Repetitive_Flag to 0;
を上位フィールド及び下位フィールドに対して別個に実行することを含む。
【００４０】
オプションとして、ピクチャはフレームを含み、
前記累積する工程は、
疑似コード、即ち、
Frame_Distortion ＝ 0;
フレームの全てのマクロブロックに関して、
if (Best_MV_SAD ＞ Frame_Noise_Threshold)
Frame_Distortion ＋＝ Best_MV_SAD;
if (Frame_Distortion ＞ fourth predetermined value)
Frame_Distortion ＝ Frame_Distortion − fourth predetermined value
else
Frame_Distortion ＝ 0
を実行することを含む。
【００４１】
オプションとして、繰り返しフレームと非繰り返しフレームのシーケンスを検出する工程は、
次の疑似コード、即ち、
if (Frame_Distortion)) ＜ ninth predetermined value;
Set Frame_Repetitive_Flag to 1
を実行することを含む。
【００４２】
オプションとして、前記階層的動き推定はノイズ閾値を提供するために使用され、あらゆる形態の動き推定が後続する前記累積する工程において最適動きベクトルの差分絶対値の和の値を提供するために使用される。
【００４３】
本発明を第２の側面から見れば、繰り返しピクチャを検出するためにビデオピクチャデータのシーケンスを前処理するビデオプリプロセッサ装置であって、上述の方法のいずれかを実行するように構成された装置を備えた装置が備えられる。
【００４４】
本発明を第３の側面から見れば、繰り返しピクチャを検出するためにビデオピクチャデータのシーケンスを前処理するビデオプリプロセッサ装置であって、階層的動き推定回路と、ノイズ推定回路と、１ピクチャ遅延回路と、繰り返しピクチャが階層的動き推定回路の出力を使用してノイズ推定回路により導出されたノイズ閾値を使用して検出される時に繰り返しフラグを設定するように構成された決定論理部とを備えた装置が備えられる。
【００４５】
本発明を第４の側面から見れば、実行時にコンピュータ論理回路に上述の方法のいずれかを実行させる命令を保持するコンピュータ可読媒体が備えられる。
【００４６】
標準解像度ビデオと共に使用するように設計された本発明の特定の一実施例において、所定の値が以下のように設定される。第１の所定の値は“２”であり、第２の所定の値は“１６”であり、第３の所定の値は“３０７２”であり、第４の所定の値は“１０２４”であり、第５の所定の値は“６５５８６”であり、第６の所定の値は“３８４”であり、第７の所定の値は“１７６”であり、第８の所定の値は“３２７６８”であり、第９の所定の値は“４０９２”であり、オフセット値は“１２８０”である。
【００４７】
次に、添付図面を参照して、一例としてビデオデータを前処理する方法について説明する。
【図面の簡単な説明】
【００４８】
【図１】ビデオのフレームが２つのインタレースフィールドで物理的に形成される方法を示す図である。
【図２】フレーム及びフィールドに関してフィルムの４つのフレームの標準的なレイアウトを示す図である。
【図３】図２のフィルムの４つのフレームが３：２プルダウン処理を使用して５つのフレームに変換される方法を示す図である。
【図４】３：２プルダウンシーケンスを検出するために現在のピクチャ及び次のピクチャの同一のパリティフィールドの間で使用される時間的差分計算を示す図である。
【図５】本発明の実施例に従う繰り返しフレーム又はフィールドを検出する回路を示すブロック図である。
【図６】提案されたプルダウン検出方法の階層的動き推定部分の代表的な実施例を示すブロック図である。
【図７】本発明の実施例に従う方法の上位フィールド歪み計算部分を示すフローチャートである。
【図８】本発明の実施例に従う方法の下位フィールド歪み計算部分を示すフローチャートである。
【図９】本発明の実施例に従う方法のフレーム歪み計算部分を示すフローチャートである。
【発明を実施するための形態】
【００４９】
次に、添付図面を参照して本発明の実施例について説明する。図中、同一又は同様の部分又はステップには同一又は同様の図中符号が与えられる。
【００５０】
テレビのフィールド又はフレームの繰り返しシーケンスの高信頼検出を向上する１つの方法は、フィールド／フレーム比較処理のノイズ回復を改善することである。これは、検出処理の一部として階層的動き推定を使用することにより可能である。本質的には、階層的動き推定は、平均される合計の集合を処理し且つ相関フィルタとして効果的に動作するためノイズからの回復力がある。ＭＰＥＧ２及びＭＰＥＧ４等の現在の業界標準の圧縮アルゴリズムは、ピクチャをいわゆるマクロブロックに区分する。マクロブロックは、一般に１６×１６画素のサイズの正方形のアセンブリから成る。これらのマクロブロックの各々は、動き推定が圧縮処理の成功に大きく寄与することを可能にする画素グループ化の基本単位である。この技術を使用することにより、ノイズが存在する状態で画像挙動の解析が局所的に詳細になされ、信頼できるため、３：２検出の問題は非常に軽減にされる。
【００５１】
図４に示すように、繰り返しフィールドは、ソースビデオの同一のパリティフィールド（上位又は下位）の間で動き推定を実行することにより検出される。繰り返しフィールドの間の動き推定は、非繰り返しフィールドの間の動き推定と比較して相対的に低い歪み又はゼロの歪みを結果として与える。歪みは、当該フィールドの全てのマクロブロックに対する差分絶対値の和（ＳＡＤ）の合計として規定される。
【００５２】
差分絶対値の和は、元のマクロブロックの各画素と比較に使用されているマクロブロックの対応する画素との間の差分の絶対値として規定される。これらの絶対画素差分は合計され、ブロック類似性の計測値を提供する。
【００５３】
ノイズがない場合、繰り返しフィールドは、全てのマクロブロックに対してゼロのＳＡＤ値を結果として与えるため、歪みはゼロである。しかし、ノイズがある場合、繰り返しフィールドのＳＡＤ値は、試験中のフィールドのノイズの変動に依存するため、歪みはノイズの強度に基づく。ノイズレベルが推定できる場合、このノイズレベルに基づく閾値が判定され、閾値未満のＳＡＤ値を破棄することを支援するために使用される。測定された歪みは、非繰り返しフィールドと比較して繰り返しフィールドに対しての方が低い。この処理により、非常に大きなノイズが存在する場合でも繰り返しフィールドの検出が可能になる。
【００５４】
要約すると、以下に詳細に示すように、ノイズ閾値は階層的動き推定の最上位レベルから導出される。ノイズ推定値が生成されると、その後はどんな形態の動き推定が使用されてもよい。しかし、階層的動き推定がノイズ閾値を導出するために使用され且つ計算効率の良い動き推定の方法であるため、好適な実施例は一貫して階層的動き推定を使用する。
【００５５】
繰り返しフィールド／フレーム検出に対する提案された方法を実行するハードウェアの実施例の概略ブロック図を図５に示し、以下の節において更に詳細に説明する。以下のハードウェアは通常、前処理段階として符号器の前に適切に備えられる。即ち、プリプロセッサの出力は、符号器が符号化ビデオの各フィールド又はフレームを処理する方法を誘導する。
【００５６】
図５に示すように、繰り返しピクチャ検出ハードウェア５００はビデオデータ入力５１０を含み、解析されるビデオデータを階層的動き推定回路５３０に直接又は１ピクチャ遅延回路５２０を介して提供する。階層的動き推定回路５３０の出力は決定論理回路５６０を通過し、以下に更に詳細に説明するように、決定論理回路５６０は、階層的動き推定回路５３０の出力に依存して符号化ラインを更に下げるビデオ符号器（不図示）により使用される繰り返しフィールド／フレームフラグ５７０をアサートするかを決定する。
【００５７】
階層的動き推定回路５３０は、動き推定歪み計算回路５４０及びノイズ推定回路５５０を含む。ノイズ推定回路５５０はビデオデータ５１０（即ち、現在のピクチャ）及び１ピクチャ分遅延したビデオデータ５５０（即ち、先行ピクチャ）を入力として利用し、推定されたノイズ閾値５４５を出力として提供し、動き推定歪み計算回路５４０に供給される。その一方で、動き推定歪み計算回路５４０は、ビデオデータ５１０（即ち、現在のピクチャデータ）及び推定されたノイズ閾値５４５と共に１ピクチャ分遅延したビデオデータ５２５（先行ピクチャ）を使用して、決定論理が繰り返しフィールド／フレームの正確な判定を行うように誘導する。
【００５８】
図５は、階層的動き推定が一貫して使用される好適な実施例を示す。ノイズ閾値が階層的動き推定処理の最上位レベルから判定された後に別の動き推定方法が使用される場合、ビデオデータ５１０、遅延ビデオデータ５２５及びノイズ閾値５４５は選択された動き推定方法を実行するように構成された回路に供給される。これは、一般に階層的動き推定回路５３０と決定論理回路５６０との間に配置される。
【００５９】
更に詳細には、動き推定は、ピクチャを１６×１６のマクロブロックに分割することにより先行ピクチャに関して現在のピクチャに対して実行される。マクロブロック毎の最適動きベクトルのＳＡＤ値が計算され、その値がノイズ推定回路５５０により提供されたノイズ閾値５４５より大きい場合にそれは歪みの一部として考えられる。
【００６０】
最適動きベクトルのＳＡＤ値は、先行ピクチャのマクロブロックが移動した場所に最も適合すると考えられる現在のピクチャ（即ち、最も最近のピクチャ）の位置に試験中のマクロブロックが配置される場合のそのマクロブロックの差分絶対値の和の値である。
【００６１】
繰り返しフィールド／フレームの場合、動き推定歪みは非繰り返しフィールド／フレームと比較して非常に小さい。ノイズ閾値が階層的動き推定の最上位レベルから判定されると、更なる処理ステップにおいて、何らかの適切な動き推定方法が使用可能である。しかしながら、好適な実施例では、階層的動き推定処理が他の形態の動き推定と比較してハードウェアで実現するのに相対的に安価であり、そして、ノイズレベルを推定する際に既に使用されているため、階層的モデル動き推定は現在のピクチャ及び先行ピクチャの同一のパリティフィールド／フレームの間で動き推定を実行するために使用される。一般にノイズレベル測定回路、即ち、ノイズ推定回路５５０は、計算の複雑さを軽減するために動き推定回路に組み込まれる。
【００６２】
階層的動き推定処理の実施例を図６に示す。
【００６３】
階層的動き推定６００において、画像のピラミッド構造は、元のフィールド／フレームのシーケンスをローパスフィルタリングし、レベル毎に水平方向及び垂直方向の双方に２ずつ間引く（６４０、６７０）ことにより構成される。従って、３つのレベルを有する説明した実施例において、元のピクチャ６１０は、レベル１に対して２だけ間引かれ（６４０）、更にレベル２に対して２だけ間引かれる（６７０）。
【００６４】
階層的動き推定は、間引き（decimation）の前にローパスフィルタリングステップを常に含む。これを含まない場合は、間引き処理は、エイリアシングのために間引かれた信号に望ましくない高周波数成分を生成するだろう。
【００６５】
フルサーチ（ＦＳ）動き推定６６０／６９０は、上位レベル（即ち、レベル１及び２）でフィルタリングと間引き後の画像６５０／６８０に対して実行される。最下位レベル（レベル０）において、フルサーチ動き推定６２０は画像全体６１０に対して実行される。
【００６６】
上位レベルは、下位レベルに対してシード動きベクトルを提供し、検索はシード動きベクトルの周囲で実行される。好適な実施例において、全てのレベルにおいて、フルサーチ動き推定が（±１６，±１２）の検索ウィンドウで実行される。しかし、他の検索ウィンドウサイズが特定の実施形の要件（特に、利用可能な処理電力の大きさ）に応じて使用されてもよい。
【００６７】
説明した実施例において、階層的動き推定は３つのレベルで実行され、各レベルについては以下に詳細に説明する。しかし、当業者には理解されるように、より多くのレベル又はより少ないレベルが特定の実施形の具体的な要件に応じてその実施形の階層的動き推定において使用されてもよい。
【００６８】
繰り返しフィールド／フレーム検出方法の厳密な形式は、ソースビデオ材料がインタレースされるか（即ち、フィールドに基づくか）又はプログレッシブであるか（即ち、フレームに基づくか）に依存する。従って、以下の説明は、インタレース部分とプログレッシブ部分とに区別される。ハードウェアは、形式の変更があった場合に再設定される。
【００６９】
階層的動き推定は、最上位レベル、この場合は第３のレベル（即ち、レベル０から開始すると、レベル２）から開始する。
【００７０】
レベル２の動き推定
１．現在の参照ピクチャ及び先行参照ピクチャ（即ち、２つのピクチャは繰り返しピクチャであるかを判定するために比較される）は、ローパスフィルタリングされ、適切なフィルタを使用して水平方向及び垂直方向の双方に４だけ間引かれる。例えば、係数｛17, 26, 35, 44, 51, 55, 56, 55, 51, 44, 35, 26, 17｝を有する１３タップフィルタがローパスフィルタとして使用される。更に正確なデシメータを提供するために、より大きい値のタップフィルタが使用されてもよい。しかし、より大きい値のタップフィルタは、計算的に／ハードウェア的に複雑になる。
【００７１】
２．（±１６，±１２）の検索ウィンドウにおけるフルサーチ動き推定は、原点（０，０）の周囲で実行される。最適動きベクトル及びそれらの対応するＳＡＤ値は、ゼロ動きベクトルのＳＡＤ値と共にマクロブロック毎に記録される。
【００７２】
ゼロ動きベクトルのＳＡＤ値は、試験中のマクロブロックが先行ピクチャと現在のピクチャとの間で全く移動しない場合、即ち、動きベクトルがゼロであった場合にそのマクロブロックに対する差分絶対値の和の値である。
【００７３】
インタレースコンテンツ
Top_Field_Noise_Estimateは、上位フィールドに対するレベル２におけるゼロ動きベクトルのＳＡＤの合計として規定され、Bot_Field_Noise_Estimateは、下位フィールドに対するレベル２におけるゼロ動きベクトルのＳＡＤの合計として規定される。
【００７４】
プログレッシブコンテンツ
Frame_Noise_Estimateは、フレーム全体に対するレベル２におけるゼロ動きベクトルのＳＡＤの合計として規定される。
【００７５】
レベル２において、ピクチャが１３タップフィルタによりローパスフィルタリングされ且つ４だけ間引かれるため、ゼロ動きベクトルのＳＡＤ値は、繰り返しフィールド又はフレームを潜在的に含む試験中のビデオシーケンスに存在するノイズレベルの推定値を与える。ゼロ動きベクトルのＳＡＤは、それらの計算の平均化特性により、このノイズ推定値を提供する。
【００７６】
ノイズ閾値は、ノイズを含む繰り返しフィールド／フレームと非繰り返しフィールドとを区別することに制限される。
【００７７】
インタレースコンテンツ
Top_Field_Noise_Estimate値とBot_Field_Noise_Estimate値から、フィールドノイズ閾値が以下のように導出される。即ち、
Top_Field_Noise_Threshold ＝ 1280 ＋（Top_Field_Noise_Estimate/16）
Bot_Field_Noise_Threshold ＝ 1280 ＋（Bot_Field_Noise_Estimate/16）
である。
【００７８】
上記閾値計算は、オフセット値“１２８０”を含む。しかし、“５１２”と“２４００”との間のオフセット値が使用されてもよい。オフセット値“１２８０”は、実用試験で起こる一般的なピクチャノイズレベルに対して間違いが最小の検出を行うために見つけられたものである。
【００７９】
ノイズ推定器の除数の選択は任意である。しかし、上記で使用された値“１６”は、標準解像度入力ビデオピクチャデータを使用して方法の実用試験において特に満足のいく結果を与えるために見つけられた。除数のサイズは、入力ビデオピクチャデータの解像度に関連付けられるため、解像度に従って変倍されるべきである。例えば、入力ビデオデータが高解像度ビデオ（例えば、標準解像度ビデオの解像度の約４倍）であった場合、除数は“６４”に大きくされる。
【００８０】
上述したように、ノイズ閾値はノイズを含む繰り返しフィールド／フレームと非繰り返しフィールドとを区別することに制限されるため、制限されたフィールド閾値は以下のように計算される。即ち、
if (Top_Field_Noise_Threshold ＞ 3072)
{
Top_Field_Noise_Threshold ＝ 3072
}
if (Bot_Field_Noise_Threshold ＞ 3072)
{
Bot_Field_Noise_Threshold ＝ 3072
}
である。
【００８１】
上述したように、ノイズ閾値は“３０７２”に制限される。この閾値は、実世界のビデオデータに対する試験から導出され、正確度に関する適切な妥協点となるように実験により見つけられる。使用された制限された閾値の選択は任意であるが、大きすぎないようにすべきである。これは、繰り返しフレーム／フィールドの最大ＳＡＤ値より小さいべきである。これが小さくないと、繰り返しフィールド／フレームは動き推定歪みの累積後にゼロの時間的歪みを生成する。
【００８２】
プログレッシブコンテンツ
フレームノイズ閾値は、フレームピクチャノイズ推定値から以下のように導出される。即ち、
Frame_Noise_Threshold ＝ 1280 ＋（Frame_Noise_Estimate/32）
である。
【００８３】
ここでも、オフセットが使用され、フィールド閾値の計算に関して上述したように閾値サイズの同一の原理は同様に適用される（即ち、“５１２”と“２４００”との間になる）。
【００８４】
プログレッシブ形式の入力ビデオに対する除数の選択は、インタレースビデオと同様に制限される（即ち、選択は任意であるが、ビデオの解像度に従って変倍する）。しかし、プログレッシブビデオが２つのフィールドに対応するフレーム全体に対して動作するため、その値はインタレースビデオに対して使用される値の２倍である。従って、実用試験において、値“３２”は最も満足のいく結果を生成したことが理解される。
【００８５】
最終的な制限されたフレーム閾値は、フレームノイズ閾値から以下のように設定される。即ち、
if (Frame_Noise_Threshold ＞ 3072)
{
Frame_Noise_Threshold ＝ 3072
}
である。
【００８６】
ここでも、この方法のインタレースのバージョンに関して先に検討したように、制限された閾値は実用試験から判定され、同様の規則がその選択に対して適用される。
【００８７】
レベル２の動き推定は、レベル１の動き推定に対するシード動きベクトルを提供する。
【００８８】
レベル１の動き推定
１）ソースピクチャ及び参照ピクチャは、ローパスフィルタリングされ且つ先に使用されたのと同一の１３タップフィルタを使用して水平方向及び垂直方向の双方に２ずつ間引かれる。異なるフィルタが使用されてもよい。
【００８９】
２）（±１６，±１２）の検索ウィンドウにおけるフルサーチ動き推定は、レベル２の最適動きベクトルの周囲で実行され、対応するレベル１の最適動きベクトル及びＳＡＤ値はマクロブロック毎に記録される。
【００９０】
レベル１の動き推定は、レベル０の動き推定に対するシード動きベクトルを提供する。
【００９１】
レベル０の動き推定
（±１６，±１２）の検索ウィンドウにおけるフルサーチ動き推定は、レベル１の最適動きベクトルの周囲で実行され、対応するレベル０の最適動きベクトル及びＳＡＤ値はマクロブロック毎に記録される。
【００９２】
インタレースコンテンツ
上位フィールド及び下位フィールドに対する時間的歪みは、レベル０の動き推定の最適動きベクトルのＳＡＤから計算される。
【００９３】
この方法の上位フィールド部分に対する代表的な疑似コードを以下に示す。即ち、
Top_Field_Distortion ＝ 0;
トップフィールドにおける全てのマクロブロックに関して、
if (Best_MV_SAD ＞ Top_Field_Noise_Threshold)
Top_Field_Distortion ＋＝ Best_MV_SAD;
であり、上記の式中、＋＝は累積演算である。
【００９４】
上記の第１の（主）部分はノイズ閾値を上回るマイクロブロックに対する最適動きベクトルのＳＡＤ値を累積し、Top_Field_Distortion値を生成する。即ち、
if (Top_Field_Distortion ＞ 1024)
Top_Field_Distortion ＝ Top_Field_Distortion − 1024
else
Top_Field_Distortion ＝ 0;
である。
【００９５】
第２の部分は、より小さい歪みの値（図示する例においては１０２４未満―この値はサンプルの標準解像度入力ビデオデータに対する実用試験から導出された）を除去する。これは、より小さい値が無視されること（より小さい値がスプリアスであってもよいこと）を実質的に意味する。従って、この部分の出力歪み値は“０”に設定されるか、あるいは閾値の制限１０２４未満の元の累積歪みに設定される。即ち、
if (Top_Field_Distortion ＜ 65536)
Top_Field_Distortion ＝ 65536/(1 ＋ Top_Field_Distortion);
else
Top_Field_Distortion ＝ 1;
である。
【００９６】
この第３の部分は、小さい歪み値を大きい歪み値に変更し、大きい歪み値を小さい歪み値に変更して、繰り返しフィールド／フレームのより信頼できる検出を保証する。この方法のこの部分は、探索の対象を効果的に反転する。即ち、大きな歪みを有するフィールドは、実際にはこの部分の後に小さな歪みを有するように設定される。従って、大きな歪みを有するフィールドを見つけるために、この方法は疑似コードのこの第３の部分の後に小さな歪みを有するフィールドを探すことを含む。
【００９７】
上記の疑似コードの第２の部分及び第３の部分は、厳密に要求されるわけではない。しかしながら、これらは、最終結果に影響を及ぼすスプリアスな中間結果を除去することを助けることにより、この方法の正確度を向上させる。
【００９８】
図７は、現在のピクチャに適用されるように、本発明の実施例の上述した上位フィールド歪み計算部分を示すフローチャートである。特に、図７は、現在のピクチャの上位フィールドの全てのマクロブロックに対して（７１０）、先行ピクチャの上位フィールドと比較して動き推定が実行される（７２０）ことを示す。各マクロブロックの最適動きベクトルのＳＡＤは、制限された上位フィールド閾値より大きいかを検出するために試験される（７３０）。大きい場合、最適動きベクトルのＳＡＤは累積された最適動きベクトルのＳＡＤのこれまでの合計に加算される（７５０）。最適動きベクトルのＳＡＤが制限された上位フィールド閾値より小さい場合（７４０）、それは累積において無視され、この方法は次のマクロブロックに進む。
【００９９】
この方法の下位フィールド部分に対する代表的な疑似コードは以下の通りである。即ち、
Bot_Field_Distortion ＝ 0;
フレームにおける全てのマクロブロックに関して、
if (Best_MV_SAD ＞ Bot_Field_Noise_Threshold)
Bot_Field_Distortion ＋＝ Best_MV_SAD;
if (Bot_Field_Distortion ＞ 1024)
Bot_Field_Distortion ＝ Bot_Field_Distortion − 1024
else
Bot_Field_Distortion ＝ 0;
if (Bot_Field_Distortion ＜ 65536)
Bot_Field_Distortion ＝ 65536/(1 ＋ Bot_Field_Distortion);
else
Bot_Field_Distortion ＝ 1;
である。
【０１００】
上位フィールド歪み計算の疑似コードに関して上述したように、同一の原理がこの下位フィールド歪み計算の疑似コードに適用される。
【０１０１】
図８は、本発明の実施例の上述した下位フィールド歪み計算部分を示すフローチャートである。特に、図８は、現在のピクチャの下位フィールドの全てのマクロブロックに対して（８１０）、動き推定が先行ピクチャの下位フィールドと比較して実行される（８２０）ことを示す。各マクロブロックの最適動きベクトルのＳＡＤは、制限された下位フィールド閾値より大きいかを検出するために試験される（８３０）。大きい場合、最適動きベクトルのＳＡＤは累積された最適動きベクトルのＳＡＤのこれまでの合計に加算される（８５０）。最適動きベクトルのＳＡＤが制限された下位フィールド閾値より小さい場合（８４０）、それは累積において無視され、処理は次のマクロブロックに進む。
【０１０２】
上位フィールド動き推定歪み及び下位フィールド動き推定歪みに対応する上記で計算されたTop_Field_Distortion値とBot_Field_Distortion値とを使用して、繰り返しフィールドは歪みの最終的なパターンを観察することにより検出される。例えば、３：２プルダウンの場合、先行する４つのピクチャの上位フィールド歪みと下位フィールド歪みとは、現在のピクチャの上位フィールド歪みと下位フィールド歪みと共に使用され、繰り返しフィールドを検出する。即ち、５つのフレームの各々に対する繰り返しフレームフラグの出力「…00001…」は３：２プルダウンシーケンスの検出を示す。
【０１０３】
しかしながら、フィールド又はフレームの何らかの繰り返しは、このように検出されてもよく、単に３：２プルダウン処理からの結果ではない。従って、ここで開示した方法は、フィールド／フレームの何らかの繰り返しを検出してそれらのフラグを立てるために使用されてもよいため、符号化処理はその繰り返しを考慮に入れ且つその結果として符号化効率を向上できる。
【０１０４】
Top_Sum及びBot_Sumは、４つの先行するTop_Field_Distortion及びBot_Field_Distortionの合計としてそれぞれ規定される。３：２プルダウンシーケンスを見つける方法は以下の通りである。即ち、
疑似コード：
上位フィールド：
if ((Top_Field_Distortion * 384/(Top_Sum ＋ Top_Field_Distortion)) ＞ 176 AND Top_Field_Distortion ＞ 32768 AND Previous TOP_Field_Repetitive_Flag is at least 4 Fields away)
Set TOP_Field_Repetitive_Flag to 1
Otherwise TOP_Field_Repetitive_Flag is set to 0.
であり、
下位フィールド：
if ((Bot_Field_Distortion ＊ 384/(Bot_Sum ＋ Bot_Field_Distortion)) ＞ 176 AND Bot_Field_Distortion ＞ 32768 AND Previous BOTTOM_Field_Repetitive_Flag is at least 4 Fields away)
Set Bot_Field_Repetitive_Flag to 1
Otherwise BOTTOM_Field_Repetitive_Flag is set to 0.
である。
【０１０５】
上記の疑似コードの部分の双方により、静的フィールドが存在するために３：２プルダウンシーケンスの間違った検出が起こらないように、繰り返しフィールド／フレームを検出する方法は入力ビデオピクチャデータにおいて静的フィールドを有することを考慮できる。
【０１０６】
上述の値“３２７６８”は“８１９２”〜“３２７６８”の範囲の値をとってもよい。値“３８４”及び“１７６”が関連付けられる。例えば、閾値１が“３８４”に設定される場合、閾値２の値の大よその範囲は（0.8 ＊ 閾値１）〜（0.4 ＊ 閾値１）の間であり、この例においては“１７６”に設定された。
【０１０７】
上記の疑似コードで使用された定数（３８４、１７６、及び３２７６８）は、方法の実用試験から導出される。
【０１０８】
プログレッシブコンテンツ
各フレームの時間的歪みは、以下のようにレベル０の動き推定の最適動きベクトルのＳＡＤから計算される。
Frame_Distortion ＝ 0;
フレームにおける全てのマクロブロックに関して、
if (Best_MV_SAD ＞ Frame_Noise_Threshold)
Frame_Distortion ＋＝ Best_MV_SAD;
if (Frame_Distortion ＞ 1024)
Frame_Distortion ＝ Frame_Distortion − 1024
else
Frame_Distortion ＝ 0;
であり、上記式中、＋＝は累積関数である。
【０１０９】
図９は、本発明に従う方法の実施例の上述のフレーム歪み計算部分を示すフローチャートである。特に、図９は、現在のピクチャのフレームの全てのマクロブロックに対して（９１０）、先行フレームと比較して動き推定が実行される（９２０）ことを示す。各マクロブロックの最適動きベクトルのＳＡＤは、制限されたフレーム閾値より大きいかを検出するために試験される（９３０）。大きい場合、最適動きベクトルのＳＡＤは累積された最適動きベクトルのＳＡＤのこれまでの合計に加算される（９５０）。最適動きベクトルのＳＡＤが制限されたフレーム閾値より小さい場合（９４０）、それは累積において無視され、処理は次のマクロブロックに進む。
【０１１０】
繰り返しフレームは、Frame_Distortion値を使用して、繰り返しフレームに対する非常に小さなフレーム歪みを観察することにより検出される。例えば、３：２プルダウンの場合、繰り返しフレームは非常に小さな Frame_Distortion値を与える。
【０１１１】
疑似コード：
if (Frame_Distortion)) ＜ 4096
Set Frame_Repetitive_Flag to 1
である。
【０１１２】
ここで、閾値“４０９６”は、実世界の例の標準解像度ビデオシーケンスによる実験により選択された。しかしながら、本発明の特定の実施形の要件に応じて他の値が選択されてもよい。例えば、“閾値”４０９６は入力ビデオピクチャの解像度に従って変倍される必要がある。
【０１１３】
上述した方法は、従来技術の圧縮符号器の前処理部分において全てのプルダウンシーケンスに対して開発され且つ試験され、２８ｄＢの信号対雑音値を有するスローモーションシーケンスに対する３：２プルダウンパターンを確実に検出できた。これは、以前の方法及び技術に対する大きな改善点である。
【０１１４】
３：２プルダウンシーケンスを検出するこの新しい方法により提供された改善された前処理画像解析は、以前のより単純な方法と比較して非常に良い性能を提供し、符号器の圧縮性能を向上する。以前の方法は、強いノイズレベルが存在する状態で繰り返しフィールドを検出することに関わる問題に対処していない。フレーム間ノイズレベル推定回路から成る提案された方法は、ノイズレベルを効率的に且つ正確に推定し、繰り返しフィールドを検出するために閾値を適応させる。この方法は、シーケンス中のノイズレベルを推定することに関わる余分な計算の負担を低減するために、一般に動き推定段階自体に含まれるノイズレベル測定回路と組み合わせて階層的動き推定回路を使用する。
【０１１５】
上述の方法は通常、符号化段階の前にビデオプリプロセッサ段階において適切に実行される。しかし、これは符号器自体の一部として形成されてもよい。この方法がビデオプリプロセッサにより実行される場合、符号器がビデオピクチャデータに関する詳細に関して前もって警告を受け、従って出力符号化ビデオを最適化できるように、プリプロセッサはビデオピクチャデータを符号化するために解析し、繰り返しフラグを含む情報をビデオ符号器に提供する。特定の例においては、繰り返しフラグは通常繰り返しフレームを送出する必要性を回避するために使用されるため、符号化ビデオの効率性は向上する。
【０１１６】
上述の方法は、適切に適応されたあらゆるハードウェアによって実行されてもよく、従って、この方法はコンピュータ可読媒体に格納された命令のセットに具体化されてもよい。この命令のセットは、コンピュータ、デジタル信号プロセッサ（ＤＳＰ）又は同様の機器にロードされた時、コンピュータに上述の方法を実行させる。
【０１１７】
同様に、この方法は、特別にプログラムされたか又はハードウェア設計された集積回路にロードされた画像データに対してこの方法を実行するように動作する前記集積回路として具体化されてもよい。その集積回路は、ＰＣ等の汎用演算装置の一部として形成されてもよく、あるいはゲームコンソール、移動体電話、ポータブル演算装置又はハードウェアビデオ符号器等のより専用のデバイスの一部として形成されてもよい。
【０１１８】
１つの代表的なハードウェアの実施例は、説明した方法を実行するようにプログラムされ、例えば、テレビスタジオ又は現場のニュースチームをサポートするロケーションビデオアップリンク車で使用するラックマウントされたビデオ符号器のドーターボードに配置されたフィールドプログラマブルゲートアレイ（ＦＰＧＡ）である。
【０１１９】
本発明の別の代表的なハードウェアの実施例は、特定用途向け集積回路（ＡＳＩＣ）から構成されたビデオプリプロセッサである。
【０１２０】
本明細書で説明した方法で実行されたステップの厳密な順序及び内容は、検出速度及び検出の正確度等の実行パラメータの特定のセットの要求に応じて変更されてもよいことが当業者には明らかとなるだろう。従って、請求項の番号付けは、請求項の間で工程を移動することに対する厳密な制限として解釈されず、従属請求項のそのような部分は自由に利用されてもよい。
【図１】
2011525761.tif 000003
【図２】
2011525761.tif 000004
【図３】
2011525761.tif 000005
【図４】
2011525761.tif 000006
【図５】
2011525761.tif 000007
【図６】
2011525761.tif 000008
【図７】
2011525761.tif 000009
【図８】
2011525761.tif 000010
【図９】
2011525761.tif 000011
【国際調査報告】
2011525761.tif 000012
2011525761.tif 000013
2011525761.tif 000014