(57)【要約】【課題】副搬送波信号で変調され、輝度成分および色成分を有するコンポジットビデオ信号を受け取るよう構成されたビデオデコーダを備える装置を提供する。【解決手段】このビデオデコーダは、複数の周波数領域においてそれぞれ前記輝度成分および前記色成分に対して動き検出操作を実行するよう構成された、ビデオデコーダを備える装置である。このビデオデコーダは、前記ビデオデコーダに結合され、前記複数の周波数領域のそれぞれについて前記ビデオデコーダにユニークなスレッショルド値を提供するよう構成された可変スレッショルドロジックを含む。この装置は、前記可変スレッショルドロジックに結合され、前記副搬送波検出ロジックの空間および時間特性の両方をチェックすることによって前記副搬送波信号を検出するよう構成された副搬送波検出ロジックも含む。【選択図】図１
2006115503.tif 000002
【特許請求の範囲】
【請求項１】
副搬送波信号で変調され、輝度成分および色成分を有するコンポジットビデオ信号を受け取るよう構成されたビデオデコーダであって、前記ビデオデコーダは、複数の周波数領域においてそれぞれ前記輝度成分および前記色成分に対して動き検出操作を実行するよう構成され、
前記ビデオデコーダに結合され、前記複数の周波数領域のそれぞれについて前記ビデオデコーダにユニークなスレッショルド値を提供するよう構成された可変スレッショルドロジック、および
前記可変スレッショルドロジックに結合され、前記副搬送波検出ロジックの空間および時間特性の両方をチェックすることによって前記副搬送波信号を検出するよう構成された副搬送波検出ロジック
を備える装置。
【請求項２】
請求項１に記載の装置であって、前記副搬送波検出ロジックは、第１フレーム、第２フレームおよび第３フレームを受け取るよう構成され、前記第１フレームは現在のフレームであり、前記第２フレームは前記現在のフレームに対して前のフレームであり、前記第３フレームは前記前のフレームに対して前である装置。
【請求項３】
請求項１に記載の装置であって、前記副搬送波ロジックは、前記色振幅を前記副搬送波信号の第１フレームおよび第２フレームにわたって、かつそれから前記副搬送波信号の単一のフレームにわたって分析することによって前記副搬送波信号の前記時間色成分をチェックするよう構成される装置。
【請求項４】
請求項１に記載の装置であって、前記副搬送波検出ロジックは、前記副搬送波信号の前記時間極性を分析することによって、前記副搬送波信号の前記時間色成分をチェックするよう構成される装置。
【請求項５】
請求項２に記載の装置であって、前記副搬送波検出ロジックはさらに
前記第１フレーム、前記第２フレームおよび前記第３フレームをそれぞれ受け取るよう構成された第１バンドパスフィルタ、第２バンドパスフィルタ、および第３バンドパスフィルタ、および
前記第１バンドパスフィルタ、第２バンドパスフィルタ、および第３バンドパスフィルタからの出力をそれぞれ受け取るよう構成され、前記第１フレーム、前記第２フレームおよび前記第３フレームそれぞれの４つの隣接するサンプリング値を記憶するよう構成された第１ディレイ要素、第２ディレイ要素および第３ディレイ要素
を含む装置。
【請求項６】
請求項１に記載の装置であって、前記副搬送波検出ロジックはさらに
前記コンポジットビデオ信号を受け取るよう構成されたバンドパスフィルタ、
前記バンドパスフィルタに結合され、前記バンドパスフィルタからの４つのサンプリング値をそれぞれ記憶するよう構成された４つのディレイ要素、
前記第１および前記第３ディレイ要素中の前記記憶されたサンプリング値を加算するよう構成された第１加算装置、
前記第２および前記第４ディレイ要素中の前記記憶されたサンプリング値を加算するよう構成された第２加算装置、
前記第１および第２加算装置の前記出力を検波しスレッショルド電圧と比較するよう構成された検波器要素、
もし前記２つの加算装置の前記出力が前記スレッショルド電圧より小さいなら、第１ロジック状態の第１信号を発生するよう構成された第１ロジック回路、
もし前記４つのディレイ要素からの交互のサンプリング値が反対のロジック状態であるなら、前記第１ロジック状態の第２信号を発生するよう構成された第２ロジック回路、および
もし前記第１信号および前記第２信号が前記第１ロジック状態であるなら、色状態信号を発生するよう構成された第３ロジック回路
を備える装置。
【請求項７】
請求項１に記載の装置であって、前記副搬送波検出ロジックは、前記コンポジットビデオ信号のライン色特性を検出するようさらに構成され、前記副搬送波検出ロジックは、さらに
前記コンポジットビデオ信号の第１ライン、第２ラインおよび第３ラインを受け取るよう構成された第１バンドパスフィルタ、第２バンドパスフィルタおよび第３バンドパスフィルタ、
それぞれ前記第１バンドパスフィルタ、前記第２バンドパスフィルタおよび前記第３バンドパスフィルタに結合された第１ディレイ要素、第２ディレイ要素および第３ディレイ要素であって、前記第１ディレイ要素、前記第２ディレイ要素および前記第３ディレイ要素は、４つのラインサンプリング値をそれぞれ記憶するよう構成され、および
前記第１ディレイ要素、前記第２ディレイ要素および前記第３ディレイ要素中の前記記憶されたラインサンプリング値を受け取り、ライン色信号を発生するよう構成されたロジック回路
を備える装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ビデオ処理に関し、より具体的には、ＮＴＳＣおよびＰＡＬビデオ信号を復号する動き検出のための適応スレッショルドロジックの装置および方法に関する。
【背景技術】
【０００２】
テレビ放送のための全国テレビジョン方式委員会（ＮＴＳＣ）標準において、テレビカメラからのＲＧＢ（赤、緑および青）信号は、効率的な送信のために輝度信号および色信号に変換される。輝度信号は、典型的には「Ｙ」とラベルが付されるが、明るさおよびそのテレビカメラで記録された絵の最大の詳細を記述する。色信号は、２つの色差信号Ｒ−Ｙ（赤マイナスＹ）およびＢ−Ｙ（青マイナスＹ）の組み合わせであり、これら両方は、約１ＭＨｚに帯域制限されている。それぞれの色差信号は、３．５８ＭＨｚの副搬送波信号の位相および振幅を変調するのに用いられる。位相変調は、色相、つまり意図された特定の色を表し、一方、振幅変調は、色差信号の強度、つまり飽和度を表す。副搬送波の周波数は、色信号が輝度信号と周波数でインターリーブされることによって、色および輝度信号間でエネルギー干渉がない単一のコンポジット信号を発生するように選択される。
【０００３】
テレビ受像器がＮＴＳＣコンポジット信号を受け取るとき、コンポジット信号は、輝度および色信号に分離するために復号器で復号される。それから色信号は、テレビスクリーン上に標準されるべきＲＧＢ信号を再生するのに用いられるＲ−ＹおよびＢ−Ｙコンポーネント信号に復調される。輝度および色信号は、３．５８ＭＨｚ近辺における同じ周波数帯域を共有し、かつ輝度および色信号は、それらが足される前に予めフィルタリングされないので、輝度および色信号は、復号プロセスでは完全には分離されえない。よって、輝度および色信号間のクロストークの結果、さまざまな復号アーティファクトが存在する。復号アーティファクトを最小化するために、復号処理のあいだに輝度および色信号のより良い分離を達成するよう多くの方法が設計されてきた。
【０００４】
一般に、輝度および色信号を分離する２つの方法が存在する。両方は、コンポジット信号のある部分を他の部分と区別するよう設計されたフィルタを用いる。第１の方法は、「ノッチ／バンドパスフィルタ」を用い、第２の方法は、「くし形フィルタ」を用いる。それぞれ特定の長所および短所を有するいくつかの異なるくし形フィルタのタイプが存在する。
【０００５】
ノッチフィルタは、３．５８ＭＨｚに中心が設定される色信号の周波数を除いて、コンポジット信号の全ての周波数を通すよう設計される。その結果、色信号は除去され、しかし輝度信号の対応する部分もそうであり、その結果、高い周波数の輝度情報のロスにつながる。ノッチフィルタは、バンドパスフィルタと共に用いられ、これは狭い色帯域における周波数だけを通し、色信号および輝度信号の高い周波数部分を出力する。要約すると、ノッチ／バンドパスフィルタ法は、簡単、ローコストなアプローチであるという利点を有し、垂直解像度（すなわち低い周波数）のロスがほとんどないか、全くない。欠点は、輝度解像度が失われること、および高い周波数の輝度が色として扱われるとき（「レインボーパターン」アーティファクトとして知られる）、および色が輝度として扱われるとき（ドットクロールとして知られる）に深刻な表示アーティファクトが生じることである。
【０００６】
くし形フィルタリング法では、副搬送波位相は、２つの隣接する画像ライン間で１８０度だけ反転するよう設計される（そしてそれにより２つの隣接するフレーム間でもそうであるが、それはフレーム内には奇数ラインがあるからである）。くし形フィルタリングには２つの大きなタイプがある。すなわち、ラインコーミングおよびフレームコーミングである。両方の方法において、基本概念は、１８０度だけ反転された色位相を有する２つの同一の信号を加算または減算することを伴う。信号を加算するとき、色信号は打ち消し合い、輝度信号が出力され、信号を減算するとき、輝度情報は失われ、色信号が出力される。
【０００７】
１ライン、２ライン、または３ラインがインラインコーミングで用いられえる。単一のラインが用いられるとき、入力ビデオ信号は、１ラインだけ遅延され、対応する遅延されたピクセルおよび遅延されないピクセルが加算および減算されて、それぞれ輝度および色信号を得る。２つのラインが用いられるとき、１ライン遅延されたピクセル、２ライン遅延されたピクセル、および遅延されないピクセルの重み付けされた加算および減算が用いられて、それぞれ輝度および色信号を得る。３つのラインが用いられるとき、ライン１および２、およびライン２および３の間で相関が決定される。くし形フィルタリングがそれから最も良い相関を有する２つのラインに対して実行される。３つのラインの適応くし形フィルタは、しばしば２Ｄ適応くし形フィルタと呼ばれる。全ラインコーミング法は、ノッチ／バンドパスフィルタ法よりもより良い結果を生むが、それでも単一のラインカラーが存在するときは、クロスカラー、垂直解像度ロス、およびドットクロールを示す。
【０００８】
フレームコーミング（frame combing）は、ラインコーミング（line combing）と同様であるが、単一のフレーム内で２つの隣接するラインを比較する代わりに、２つの隣接するフレーム内で同じ位置の２つのラインがコーミングに用いられ、それによってコーミングフィルタリングを時間領域に拡張する。しかしフレームコーミングは、画像の静止部分についてしか実行されえない。もし動きが存在するなら、それは２Ｄコーミングに戻る必要がある。くし形フィルタリング（comb filtering）をラインコーミングからフレームコーミングに変えるために動き検出を用いる方法は、動き適応デコーディング（motion-adaptive decoding）、または３Ｄ適応デコーディング（3D adaptive decoding）と呼ばれる。３Ｄ適応デコーディングは、静止画像についてドットクロールおよびクロスカラーなしに、完全な水平および垂直解像度を維持する。しかし大きなエリアのドットクロール（dot crawls）およびゴーストシャドウ（ghosting shadows）のような動きアーティファクト（motion artifacts）が存在しえる。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
３Ｄ適応デコーディングにおいて、くし形フィルタリングは、ピクセル単位で、３Ｄおよび２Ｄくし形フィルタリング法の間で切り替えられる。もし動きが存在しなければ、３Ｄくし形フィルタが適用され、もし動きが存在すれば、２Ｄくし形フィルタが適用される。したがって、２つのフレーム間で「真の動き」が存在するか、または観測される動きが例えばジッタやノイズのための「偽動き」であるかを正確に検出することによって、動きアーティファクトを最小化する必要がある。
【課題を解決するための手段】
【００１０】
副搬送波信号で変調され、輝度成分および色成分を有するコンポジットビデオ信号を受け取るよう構成されたビデオデコーダであって、前記ビデオデコーダは、複数の周波数領域においてそれぞれ前記輝度成分および前記色成分に対して動き検出操作を実行するよう構成された、ビデオデコーダを備える装置である。このビデオデコーダは、前記ビデオデコーダに結合され、前記複数の周波数領域のそれぞれについて前記ビデオデコーダにユニークなスレッショルド値を提供するよう構成された可変スレッショルドロジックを含む。この装置は、前記可変スレッショルドロジックに結合され、前記副搬送波検出ロジックの空間および時間特性の両方をチェックすることによって前記副搬送波信号を検出するよう構成された副搬送波検出ロジックも含む。さまざまな図面中の同様の参照シンボルは、同様の要素を表す。
【発明を実施するための最良の形態】
【００１１】
概観
【００１２】
本発明は、テレビ受像機によって受け取られるＮＴＳＣ、ＰＡＬ信号またはコンポーネントビデオ信号のようなビデオ信号中の動きを検出する方法および装置に関する。まず、新規な動き検出スキームを実現するデコーダの概観が述べられ、それからさまざまな周波数領域における動き検出が示される。この後、個別のスレッショルド値がどのように調整されるかの記述がなされ、２Ｄまたは３Ｄデコーディングされた信号を出力するかを決定するために検出された動きがデコーダ中のブレンダ（blender）によってどのように用いられるかの説明がなされる。ここでの記載は、主にＮＴＳＣ信号に焦点を合わせているが、ＰＡＬ信号、またはコンポーネントビデオ信号にも少しの改変で同じように適用可能であり、その改変についてはこの記載の終わりで触れる。
【００１３】
図１は、新規な動き検出スキームを実現する３Ｄデコーダによって実行されるプロセス（１０００）の高レベルのフロー図である。図１に示されるように、色および輝度成分の両方を含むコンポジットビデオ信号がデコーダにおいて受け取られる（ステップ１００２）。動き検出操作が入力コンポジットビデオ信号に対してそれから実行される（ステップ１００４）。以下にさらに詳述されるように、動き検出操作は、いくつかの周波数領域において色および輝度の両方について実行される。それぞれの領域は、調節可能なユニークなスレッショルド値を有し、それによって「真の動き」対「偽の動き」のより良い検出を可能にし、従来の３Ｄデコーダに比較してより少ない動きアーティファクトを持つデコードされた画像を生む。それからプロセスは、動き検出操作において動きが検出されたかどうかを調べる（ステップ１００６）。もし動きが検出されたなら、プロセスは、ステップ１００８に進み、ここではコンポジット信号をデコードするために２Ｄロジックが用いられる。しかしもし動きがステップ１００６において検出されないなら、プロセスはステップ１０１０へと続き、ここではコンポジット信号をデコードするために３Ｄロジックが用いられる。
【００１４】
図２は、テレビ受像機によって受け取られるＮＴＳＣコンポジット信号をデコードするためのデコーダ（１００）の概略ブロック図を示す。３Ｄデコーダ（１００）は、コンポジットビデオ信号（１０２）を受け取る。コンポジットビデオ信号（１０２）は、第１および第２ラインディレイ（１０４、１０６）においてそれぞれ１ラインおよび２ラインだけ遅延される。現在のライン信号（Ｌ１）と併せて、１ライン遅延信号（Ｌ２）および２ライン遅延信号（Ｌ３）は、垂直ロジック、水平ロジック、および単一ラインロジックを持つ適応２Ｄデコーダ（１０８）に入る。適応２Ｄデコーダ（１０８）は、コンポジットビデオ信号から色信号（2D_C）をフィルタリングして取り出し、フィルタリングされた2D_C色信号をブレンダ（１１０）に渡す。ブレンダは後で詳述される。１ライン遅延された信号（Ｌ２）は、またディレイ（１１２）に渡され、これは輝度信号（Ｙ）を発生するために、色信号をフィルタリングするのに必要とされる処理時間を補償する。適応２Ｄデコーダ（１０８）に加えて、デコーダ（１００）は、動き適応、３Ｄ色信号（3D_C）を発生するロジックを含み、この動き適応、３Ｄ色信号（3D_C）は、ブレンダ（１１０）にも渡される。色サンプリング値は２フレームにわたって同位相なので、２フレームメモリ（１１４、１１６）が色動きの検出において用いられ、ロスのない相関が動き検出ブロック（１１８）において容易に決定されえる。
【００１５】
図３は、図１の動き検出操作（ステップ１００４）の高レベルフロー図を示し、これは動き検出ブロック（１１８）によって実行される。図３に見られるように、動き検出プロセスは、入力フレーム信号、１フレーム遅延された信号、および２フレーム遅延された信号を受け取ること（ステップ３００２）によって始まる。入力フレーム信号中の第１ピクセルが選択される（ステップ３００４）。動き検出ブロック（１１８）は、低い周波数の輝度領域、高い周波数の色領域、および高い周波数の輝度／色領域のための別個のスレッショルド値群をそれぞれ可変スレッショルドロジックブロック（１２０）からそれから受け取る（３００６）。可変スレッショルドロジックブロック（１２０）がそれぞれのピクセルおよびそれぞれの周波数領域について別個のスレッショルド値を供給する結果、動き検出は、従来の動き検出技術に比較して大きく改善される。ある実現例において、スレッショルド値群は、その直に隣接するピクセルに比較した、そのピクセルの値に基づく。プロセスは、異なる周波数領域における動きの中から、そのピクセル値についての最終的な動きの値となるべき最大の動きを決定する（ステップ３００８）。それからプロセスは、入力フレーム中の全てのピクセルが処理されたかをチェックする（ステップ３０１０）。もし全てのピクセルが処理されたならプロセスは終了する。そうでなければ、入力フレーム中の次のピクセルが選択され、プロセスは、全てのピクセルが処理されるまでステップ３００６から３０１０を反復する。この動き検出プロセスはそれぞれの受け取られたフレームについて実行される。
【００１６】
今度は図２に戻り、最終的な動き値が決定されたら、その最終動き値は、動き検出ブロック（１１８）からブレンダ（１１０）に３タップメジアンフィルタ（１２２）およびディレイブロック（１２４）を通して渡される。メディアンタップフィルタ（１２２）は、最大動き値をフィルタリングし、ピクセルストリーム中の任意のスパークル動き（sparkle motion）または非動き点を除去する。３Ｄ色信号（3D_C）は、現在のピクセルおよび１フレーム前の対応するピクセル、すなわちＦ２−Ｆ１から発生され、それから２で割られる（１２６）。バンドパスフィルタ（１２８）およびディレイ（１３０）は、信号がブレンダ（１１０）に渡される前に適用される。バンドパスフィルタは、信号がブレンダ（１１０）に到達する前に３Ｄ色信号の帯域幅を制限する。ある実現例では、色バンドパスフィルタ（１２８）は、−１／４、０、１／２、０、−１／４の係数を持つ５タップフィルタであり、中間タップがデコーディングを施されている現在のピクセルであり、２つのピクセルがいずれかの側にある。他の実現例において、色バンドパスフィルタ（１２８）は、副搬送波周波数の周辺に中心が設定された約３ＭＨｚの通過帯域を持つ広いバンドパスフィルタである。
【００１７】
動き検出ブロック（１１８）において検出された動きに基づいて、ブレンダ（１１０）は、２Ｄ色信号または３Ｄ色信号のいずれを出力すべきかを決定する。もし動きが存在するなら、2D_C信号が出力され、もし動きが存在しないなら、3D_C信号がブレンダ（１１０）から出力される。ブレンダからの信号は、カラーキラー（１３２）に行き、これは、色バースト信号を欠くモノクロ入力などのようなさまざまな理由のために適切な色が表示されない場合に色情報を除去するよう動作する。最後に分離された色（Ｃ）および輝度（Ｙ）信号が、テレビスクリーン上で表示されるべきＲＧＢ信号を発生するためにテレビ受像機へ出力される。
【００１８】
低い周波数の動き検出
【００１９】
図４Ａは、低い周波数動きを検出するために動き検出ブロック（１１８）のある実現例において用いられるロジックの概略ブロック図を示す。図４Ｂは、図４Ａの動き検出ブロック（１１８）において実行される低い周波数の動き検出プロセスのための対応するフロー図を示す。低い周波数の動きは、１フレーム遅延されたサンプリング値を入力フレームから減じること（２０２）、すなわちＦ１−Ｆ０によって決定される（ステップ４００２）。上述のように、ＮＴＳＣにおいて、２つの隣接するフレームについての副搬送波は１８０度位相がずれている。色信号は副搬送波で変調されているので、フレームＦ２およびＦ０の減算の結果は、輝度が打ち消されて、色および動きが得られる。減算Ｆ２−Ｆ１から生じる信号（Ｃ）は、色を含む高い周波数成分を除去するためにローパスフィルタ（２０４）がかけられる（ステップ４００４）。同じ信号（Ｃ）は、より少ない輝度動きを持つ、色および／または輝度についての高い周波数の動きを検出するために用いられるロジックへの入力としても用いられ、これは図６を参照して以下で詳述される。
【００２０】
ある実現例において、ローパスフィルタ（２０４）は、３つの１／４、０、１／２、０、１／４の係数を持つ５タップフィルタ（２＋２）、および出力において１／４、１／２、１／４の係数を持つ３タップのローパスフィルタ（１＋１）を含む。ローパスフィルタ（２０４）におけるこのフィルタ群の組み合わせは、動きパスにおけるノイズを減らすのに役立ち、動きと間違って解釈されえる副搬送波部分を除去する。ローパスフィルタ信号は、それから負の信号または値を正の信号または値に変換する（ステップ４００６）検波器（２０６）に渡され、それからスレッショルドロジックブロック（２０８）に渡される。このスレッショルドロジックブロック（２０８）は、可変スレッショルドロジック（１２０）によって決定されたスレッショルド値を入って来る検波された動き値から減じる（ステップ４００８）。結果として生じる信号は制限され（２１０）、すなわち任意の負の値は、ゼロにクリッピングされ、一方、正の値は変えることなく残し、低い周波数の動き値を得て（ステップ４０１０）、ローパスフィルタがかけられた動き検出値が出力される（ステップ４０１２）。
【００２１】
ある実現例において、第３の５タップフィルタはバイパスのオプションを有する。ＮＴＳＣ信号のためのローパスフィルタブロック（２０４）の減衰値は、以下の表１に示され、ＰＡＬ信号のための減衰値は、以下の表２に示される。
【表１】
2006115503.tif 000003
【表２】
2006115503.tif 000004
【００２２】
ある実現例において、３Ｄへの切り替えをより柔らかくするために、同じ低い周波数の動き検出が、図４Ａに示されるように、ブロック２１２から２２０によって１フレームディレイおよび２フレームディレイにそれぞれ適用される。またここで、信号Ｆ０からの信号Ｆ１の減算から生じる信号（Ｄ）は、図６Ａに示される、より少ない輝度動きを持つ色および／または輝度についての高い周波数の動きを検出するためのロジックへの入力として用いられる。Ｆ２−Ｆ１動きおよびＦ１−Ｆ０動きのそれぞれの最大値は、最終的な低い周波数の輝度動きとして決定される。
【００２３】
色および／または輝度についての高い周波数の動き検出
【００２４】
図５Ａは、高い周波数の色および／または輝度の動きを検出するための動き検出ブロック（１１８）において用いられるロジックのある実現例の概略ブロック図を示す。図５Ｂは、高い周波数の色および／または輝度のための動き検出プロセスの対応するフロー図を示す。図５Ａおよび５Ｂに見られるように、高い周波数の動きを検出するために、２フレーム遅延されたサンプリング値が入力フレームから減じられ、すなわちＦ２−Ｆ０を得る（ステップ５００２）。それから結果として生じる信号は検波（３０４）され（ステップ５００４）、スレッショルドロジックブロック（３０６）に渡される。スレッショルドロジックブロック（３０６）は、入力動き値から可変スレッショルドロジック（１２０）によって決定された第２スレッショルド値を減じる（ステップ５００６）。結果として生じる信号は、制限され（３０８）（ステップ５００８）、１／４、１／２、１／４の係数を持つ３タップローパスフィルタ（１＋１）でローパスフィルタをかけられる（ステップ５０１０）。Ｆ０およびＦ２の副搬送波は、同じ位相を有するので、この検出スキームは、高い周波数の輝度動きと共に、適切な色動きを提供する。結果として生じる信号はそれから出力される（ステップ５０１２）。
【００２５】
ある実現例において、信号Ｆ２およびＦ０は、ステップ５００２において減じられる前にバンドパスフィルタがかけられ、その結果、低い周波数の輝度動きはフィルタリングされ、色帯域動きだけが存在する。その結果、ステップ５０１２で出力される結果として生じる信号は、色帯域の動きだけを含むことになる。
【００２６】
より少ない輝度動きを持つ色／輝度動き
【００２７】
図６Ａは、より少ない輝度動きを持つ、色および／または輝度についての高い周波数の動きを検出するための動き検出ブロック（１１８）において用いられるロジックの概略ブロック図を示す。図６Ｂは、動き検出ブロック（１１８）において実行される対応する動き検出プロセスのフロー図を示す。図６Ａおよび６Ｂに見られるように、この動き推定は、図５Ａおよび５Ｂを参照して上述の高い周波数の動き推定とかなり似ている。図６Ａにおいて示されるロジックは、２つのモードで動作しえる。第１モードにおいて、ロジックは、より少ない輝度動きを持つ２つのフレームに渡る色動きを検出するよう動作する。第２モードにおいて、このロジックは、１フレームの色動きを検出するよう動作する。
【００２８】
まず、プロセス（６０００）は、２フレーム色モードまたは１フレーム色モードのどちらが用いられるべきかを決定する（ステップ６００２）。ある実現例において、これは、１フレーム色動きイネーブルビットがセットされているかをチェックすることによって決定される。もし１フレーム色動きイネーブルビットがセットされていないなら、２フレームモードが用いられ、プロセスはステップ６００４に進み、ここで図４Ａからの２つの１フレーム差分信号Ｃ（すなわちＦ２−Ｆ１）およびＤ（すなわちＦ１−Ｆ０）が検波される。それから信号Ｄは、信号Ｃから減じられ（ステップ６００６）、結果として生じる信号が検波される（ステップ６０１４）。それからスレッショルドロジックブロックは、可変スレッショルドロジック（１２０）によって決定された第３スレッショルド値を入って来る検波された動き値から減じる（ステップ６０１６）。結果として生じる信号は制限され（ステップ６０１８）、１／４、１／２、１／４の係数を持つ３タップのローパスフィルタにおいてローパスフィルタがかけられる（ステップ６０２０）。結果として生じる信号はそれから出力され（ステップ６０２２）、プロセスは終了する。
【００２９】
もしプロセスがステップ６００２において、１フレーム色動きイネーブルビットがセットされていると決定するなら、すなわち、１フレーム色動き検出が用いられなければならないと決定するなら、プロセス（６０００）は信号ＣおよびＤを用いず、その代わりにフレームＦ２およびＦ１を用いる。フレームＦ２およびＦ１のそれぞれは、バンドパスフィルタがかけられ（ステップ６００８）、検波される（ステップ６０１０）。それから信号Ｆ１の検波されたものは、信号Ｆ２の検波されたものから減じられ（ステップ６０１２）、結果として生じる差分信号がそれから検波される（ステップ６０１４）。差分信号がステップ６０１４において検波された後、上述のようにプロセスはステップ６０１６から６０２２へと続く。
【００３０】
最終的な動き
【００３１】
図７は、異なる周波数領域について決定された動きに基づいて最終的なＮＴＳＣ動きがどのようにして決定されるかの概略ブロック図を示す。最終的な動きファイルは、さまざまな周波数領域について上で決定された動きの最大である。図２において上で見られたように、それから最終的な動きは、３タップ水平メジアンフィルタ（１２２）を通して渡される。この３タップ水平メジアンフィルタ（１２２）は、スパークル動きおよび動きのない点および／またはラインを除去する。最終的なＮＴＳＣ動きはクリッピングされて５ビット幅になる。最大動き値１６は、デコーダが２Ｄ輝度および色信号だけを出力するようにさせる。最小動き値ゼロは、デコーダが３Ｄ輝度および色信号だけを出力するようにさせる。ゼロおよび１６の間の任意の値は、ブレンド（blend）された２Ｄおよび３Ｄ信号である信号を出力するようにさせる。このブレンディング（blending）は、ブレンダ（blender）（１１０）においてなされ、これはここで詳細に説明される。
【００３２】
ブレンダ
【００３３】
図８は、本発明のある実現例による、より詳細なデコーダのブレンダ（１１０）の動作を示す概略ブロック図である。上述したように、また図８に見られるように、２Ｄ色信号（2D_C）は、２Ｄ色／輝度分離器から来て、３Ｄ色信号（3D_C）は、３Ｄ色／輝度分離器から来る。動き検出ブロック（１１８）からの５ビットの動き出力は、ブレンダ（１１０）への入力としても用いられる。ブレンダからの色出力は、2D_Cおよび3D_C信号に基づいており、これらは以下のようにブレンドされる。
【００３４】
色出力 = (2D_C * motion)/16 + (3D_C * (16-motion))/16
【００３５】
輝度出力は、色出力を入力コンポジットビデオ（Ｌ２）から減じることによって得られる。ファームウェアによってイネーブルおよびディセーブルされえるカラーキラーは、入力コンポジットビデオ（Ｌ２）がモノクロームビデオ信号であるときのような、適切な色が表示されえない場合において色が表示されないようにするために用いられる。ある実現例において、クロスカラー抑圧を向上するために、適応制御されたフィルタのようなフィルタが色パスにおいて適用されえる。同様に、適応フィルタは、クロス輝度効果を減らすために、輝度パスにも入れられえる。
【００３６】
動き検出のためのスレッショルドロジック
【００３７】
上述されたように、コンポジット信号をデコーディングする効果的なやり方は、動きベースの適応時間的デコーディングを３Ｄくし形フィルタで実行することであり、それにより、動きが存在しないときには時間的コーミング（３Ｄ）が実行され、そうでなければ空間的コーミング（２Ｄ）が実行される。２Ｄデコーディングは、クロスカラーおよびドットクロールアーティファクトを有するが、一方、３Ｄデコーディングは画像の静止部分についてはこれらのアーティファクトを有しない。よって、動き検出ロジックは、動きを正確に検出し、それよってより良い画質を達成するために用いられる。
【００３８】
ある実現例では、動き検出は、現在のフレームおよび前のフレームの間の差異をピクセル毎に調べることによって達成される。検出された差異、すなわち「ロー（生）の差異」は、真の動きを検出するために処理される必要がある。典型的には、動き検出ロジックは、なんらかのタイプのスレッショルドロジックを含み、これは、システムのノイズに基づいてどのくらい生の動きが抑圧されるかを制御する。もしこのスレッショルド値が増されるなら、真の動きは場合によっては失われ、またもしスレッショルド値が減らされるなら、システムノイズが誤った動きの指示を発生してしまう。したがって、適応スレッショルドロジックを有することが望ましい。さらに、適応スレッショルドロジックがより動的であればあるほど、動き検出ロジックはより良い動作をする。適応スレッショルドロジックにおいて考慮されなければならないさまざまな問題を理解するために、さまざまなノイズのタイプの簡単な概観が以下に続く。
【００３９】
動き検出の不正確さの主要な原因は、ランダムノイズ、サンプリングクロックノイズつまりジッタ、カメラシマー（camera shimmer）によるダイアゴナル遷移ノイズ（diagonal transition noise）、クランプノイズなどである。以下の議論は、サンプリングクロックノイズつまりジッタ、およびダイアゴナル遷移ノイズに焦点を合わせる。ビデオ信号におけるランダムな小さな振幅のノイズに加えて、３Ｄデコード動き検出ロジックについてのより大きな振幅かつ高い周波数のノイズはエッジノイズであり、これは偽の動きをフレームにわたって生じ、そのため、３Ｄが用いられなければならないのに画像のその領域において２Ｄに切り替わってしまう。エッジノイズは、クロックエッジノイズ、ＰＬＬ（フェーズロックループ）不安定性、ＰＬＬトラッキング、またはループフィルタ設定のようなさまざまな理由のために、ＡＤＣ（アナログディジタル変換器）のサンプリングクロックジッタの結果として起こる。
【００４０】
サンプリングクロックジッタの結果として、全ての信号エッジにおいてサンプリングされた信号振幅のバラツキが存在する。これらバラツキがエッジノイズを存在するようにし、これは、クロックジッタと、およびエッジ振幅または勾配に直接に比例し、すなわち、エッジの両側に位置する２つのピクセルについてのピクセル値の差に直接に比例する。ある実現例において、この差は、現在のピクセルおよび前のピクセルの第１の差、および現在のピクセルおよび次のピクセルの第２の差を決定し、２つの決定された差の最大値を選択することによって決定される。この問題に対応するために、スレッショルドは、ピクセル毎に、エッジ検出およびエッジ勾配の両方に基づいて、動的に変化される必要がある。
【００４１】
エッジ／勾配適応スレッショルドは、副搬送波検出に基づいてさらに改良されえる。典型的にはディジタイズされたコンポジットビデオ信号において、高い周波数の輝度部分におけるエッジノイズは、高い周波数の色部分におけるエッジノイズよりも高いが、これはサンプリングクロックが副搬送波信号のカラーバースト部分にロックされるからである。さらに、輝度エッジは典型的には、色エッジよりもより急な勾配を有するが、これは輝度エッジは、約５ＭＨｚにまで達する高い解像度を有するからである。もし高い周波数の輝度エッジノイズをマスクするためにエッジスレッショルドが高く設定されるなら、真の色動きにおいてある程度の関連付けられたロスが発生する。しかし、もしエッジ／勾配スレッショルドが副搬送波検出に基づいて適応性にされているなら、スレッショルドロジックは、これから説明されるようにより効果的になるよう改善されえる。
【００４２】
適応スレッショルドロジックのためのエッジおよび副搬送波検出ロジックの実現例
【００４３】
図９は、エッジ検出ロジックブロック（７１０）および副搬送波検出（ＳＣＤ）ロジックブロック（７２０）を含むスレッショルドロジック（１２０）の概略ブロック図を示す。以下にさらに詳細が説明されるエッジ検出ロジックブロック（７１０）は、スレッショルド値をエッジのパーセンテージとしてユーザが設定できるようにするロジック、すなわち勾配振幅のうちのどのくらいがエッジスレッショルドとして割り当てられるべきかの設定をユーザができるようにするロジックを含む。
【００４４】
このエッジベースのスレッショルドは、副搬送波のステータスを調べるＳＣＤロジックブロック（７２０）を通してそれからさらに適応性にされる。ＳＣＤロジックブロック（７２０）は、以下にも詳細に説明されるが、一般にＳＣＤロジックブロック（７２０）は、以下のようにエッジ検出ロジックブロック（７１０）と共に動作および相互作用する。ユーザは、特定のエッジについて例えばｘ％およびｙ％と２つのパーセンテージを設定しえる。その特定のエッジについて、もしＳＣＤロジックブロック（７２０）が副搬送波を検出しないなら、勾配パーセンテージスレッショルド値としてｘ％が用いられ、もしＳＣＤロジックブロック（７２０）が副搬送波を検出するなら、勾配パーセンテージスレッショルド値としてｙ％が用いられる。もしｘ％がｙ％より高く設定されるなら、より高い勾配パーセンテージスレッショルド値が画像の輝度部分について用いられえ、より低い勾配パーセンテージスレッショルド値が画像の色部分について用いられえ、それによって色動きロスを減らし、ピクセル毎のＳＣＤに基づく動的スレッショルド変化を達成する。輝度および色部分についてのこの独立した制御のために、スレッショルドロジックは、色部分における大きなロスなしに輝度エッジノイズを大幅に抑圧するようプログラムされえる。
【００４５】
ＳＣＤ検出ブロック
【００４６】
ＳＣＤ検出ブロック（７２０）は、空間的（すなわちラインにわたって）かつ時間的（すなわちフレームにわたって）の両方の副搬送波の特性についてチェックすることによって副搬送波を検出する。空間領域において、サンプリングクロックは、副搬送波周波数の４倍であり、カラーバーストを通して副搬送波にロックされているので、交互の副搬送波サンプリング値は大きさにおいてほぼ等しいが、位相つまり符号が反対である。さらに、副搬送波は、ラインにわたって１８０度だけ位相が変化するので、これも用いられえる。時間的領域において、副搬送波は、フレーム毎に位相を１８０度だけ反転し、よって大きな差異が２つの隣接するフレーム間に存在し、２フレーム離れたフレーム間ではずっと少ない差異しか存在しないことになる。よって空間領域および時間領域の両方で調べることによって、スレッショルドロジックを制御するために概略の副搬送波検出がなされえる。図９に見られるように、ＳＣＤブロック（７２０）は、副搬送波検出のために、３つのフレームタップＦ２、Ｆ１、およびＦ０（すなわち現在のフレーム、前のフレーム、および前のフレームの前のフレーム）を受け取る。以下に挙げられた定義はＳＣＤ検出ブロックの後の説明に役立つ。
【００４７】
１．CLD_Status1_Aは、サンプリング値が色であるかどうかを示すための、時間的色振幅特性チェックに基づくステータス信号である。
【００４８】
２．CLD_Status1_Bは、サンプリング値が色であるかどうかを示すための、時間的色極性特性チェックに基づくステータス信号である。
【００４９】
３．CLD_Status2_Aは、サンプリング値が色であるかどうかを示すための、現在のビデオライン（１次元）内の空間的色振幅および極性チェックに基づくステータス信号である。
【００５０】
４．CLD_Status2_Bは、サンプリング値が色であるかどうかを示すための、３つのライン（ＮＴＳＣについては１ライン遅延されて離れ、ＰＡＬについては２ライン遅延されて離れた）（すなわち２次元）にわたる空間的色振幅および極性チェックに基づくステータス信号である。
【００５１】
５．最終的なcld_status1,2,3は、それぞれ上のCLD_status1_A/B、CLD_status2_A/Bステータス信号の任意の組み合わせでありえる。これら３つの独立したプログラム可能なステータス信号は、３つの動きパス、viz低周波数輝度動きパス、高周波数輝度動きパス、色動きパスについての動きスレッショルドを制御するよう想定される。ＣＬＤステータス信号は、単一の、または複数のビット幅の信号のいずれでもありえることに注意されたい。
【００５２】
ＣＬＤステータス１（時間領域チェック）
【００５３】
図１０を参照して、時間色特性のためのチェックを行うＳＣＤロジックブロック７２０中の時間検出ブロック１０１０の概略図が示される。時間検出ブロック１０１０は、３つの信号Ｆ０、Ｆ１およびＦ２、およびスレッショルド入力１０１２を受け取る。時間検出ブロック１０１０は、２つのフレームにわたって、それから１つのフレームにわたって色振幅を分析することによって時間色特性をチェックする。代替の実施形態において、色振幅は、時間的符号／極性に基づいてチェックされえる。時間検出ブロック１０１０の出力は、CLD_Status1_Aと名称が付けられ、時間検出ブロック１０１０によって実行される時間的チェックの結果を示す。CLD_Status1_Aは、したがって色振幅ベースである。
【００５４】
図１１を参照して、ＳＣＤロジックブロック７２０中の時間検出ブロック１１１０を示す概略図が示される。時間検出ブロック１１１０は、３つのバンドパスフィルタ（ＢＰＦ）１１１２、１１１４、および１１１６を含み、これらはそれぞれＦ０、Ｆ１およびＦ２を受け取る。３つのＢＰＦ１１１６、１１１４および１１１２の出力は、それぞれ（Ｄ１、Ｄ２、Ｄ３およびＤ４）、（Ｄ５、Ｄ６、Ｄ７およびＤ８）、および（Ｄ９、Ｄ１０、Ｄ１１およびＤ１２）と名前が付けられた３つのセットの遅延要素群に与えられる。遅延要素群Ｄ１からＤ１２の出力は、ロジックブロック１１１８に提供され、これは出力CLD Status1_Bを発生する。もしサンプリング値の符号が２つのフレームにわたって同じで、１つのフレームにわたって反対であるなら、出力CLD Status1_Bは真である。CLD Status1_Bはしたがって時間極性ベースのものである。
【００５５】
ＣＬＤステータス２（空間領域チェック）
【００５６】
図１２を参照して、空間色特性をチェックする検出ブロック１２１０を示す概略図が示される。このブロックは、４ｆｓｃにロックされたビデオストリーム中の４つの隣接するサンプリング値において見ることによって色特性を空間的にチェックし、ウィンドウ中の４つのサンプリング値の色振幅および符号をチェックする。検出ブロック１２１０は、コンポジットビデオ信号（例えばＦ２）を受け取るバンドパスフィルタ（ＢＰＦ）１２１２を含む。ＢＰＦ１２１２の出力は、４つの遅延要素Ｄ１、Ｄ２、Ｄ３およびＤ４にそれぞれ提供される。それぞれ遅延要素Ｄ１およびＤ３の出力は、加算デバイス１２１４によって加えられ、遅延要素Ｄ２およびＤ４の出力は、加算デバイス１２１６によって加えられる。２つの加算デバイス１２１４および１２１６の出力は検波され、ロジックブロック１２１８においてスレッショルド（ＴＨＲ）と比較される。スレッショルドＴＨＲは、制御可能なレジスタ中に記憶された値であり、ユーザによって設定される。ロジックブロック１２１８の出力は、もし加算デバイス１２１４および１２１６からの両方の出力がＴＨＲより小さいならロジック１である。そうでなければ、出力はロウである。他のロジックブロック１２２０は、遅延要素Ｄ１〜Ｄ４から出力を受け取る。ロジックブロック１２２０は、遅延要素Ｄ１〜Ｄ４によって受け取られた交互のサンプリング値をチェックする。もし交互のサンプリング値が反対の符号を有するなら、ロジックブロック１２２０の出力は、ロジック１である。そうでなければ、出力はゼロである。もしロジックブロック１２１８および１２２０の出力の両方がロジック１であるなら、ロジックブロック１２２２の出力もハイである。もしロジックブロック１２２２への入力のうち１つまたは両方がロウであるなら、出力はロウである。最後にロジックブロック１１２６において、もしロジックブロック１２２２の出力がロジック１であるなら、４サンプリング値の幅にこのステータスを伸ばし、そうでなければ延ばさない。検出ブロックの出力は、CLD_Status2_Aであり、これは、空間領域における現在のラインの色輝度ステータスを示す。もしステータスが１なら、ＣＬＤステータス２は、色ステータスと考えられる。そうでなければ、これは輝度ステータスと考えられる。ブロック１２１８は、入力された検波された色振幅差信号をユーザプログラム可能なスレッショルドＴＨＲと比較する比較回路である。ブロック１２２０は、反対の極性についての交互のサンプリング値の符号をチェックする（すなわち反対の極性についてのＤ１およびＤ３サンプリング値の符号をチェックし、また反対の極性についてのＤ２およびＤ４サンプリング値の符号をチェックする）。もし真であるなら、ロジック１が出力される。ブロック１２２２は、ロジックＡＮＤ回路である。ブロック１１２６は、図１９のフリップフロップ部分と類似し、これはもしステータスがロジック１であるなら信号ストレッチ（伸長）を行う。
【００５７】
CLD_status2は、隣接するライン色特性チェックにも基づきえる。図１３を参照して、ライン色特性を検出する他の検出ブロック１３１０が示される。検出ブロック１３１０は、３つのバンドパスフィルタ（ＢＰＦ）１３１２、１３１４、および１３１６を含み、これらはそれぞれＬ１、Ｌ２およびＬ３を受け取るよう構成される。遅延されたラインサンプリング値Ｌ１、Ｌ２およびＬ３のそれぞれは、同じフィールドからの遅延されたラインサンプリング値である。３つのＢＰＦ１３１２、１３１４および１３１６の出力は、それぞれ遅延要素（Ｄ１、Ｄ２、Ｄ３およびＤ４）、（Ｄ５、Ｄ６、Ｄ７およびＤ８）、および（Ｄ９、Ｄ１０、Ｄ１１およびＤ１２）の３つのセットに与えられる。ロジックブロック１３１８は、遅延要素Ｄ１〜Ｄ１２の出力を受け取るよう構成される。
【００５８】
ロジックブロック１３１８の出力は、もしサンプリング値の符号が２つのラインにわたって同じであり、１つのラインにわたって反対であるなら、ロジック１である。換言すれば、サンプリング値の符号が２つのラインにわたって同じであり（すなわち現在のサンプリング値および２ライン遅延されたサンプリング値が共に正、または共に負のサンプリング値である）、かつ１つのラインにわたって反対であるか（すなわち現在のサンプリング値および１ライン遅延されたサンプリング値が反対の符号を有する）を調べる。これは、４ｆｓｃコンポジットビデオ信号がバンドパスフィルタにかけられた後、ＢＰＦの出力は４ｆｓｃサンプリング値で符号が付けられるからである。
【００５９】
図１４を参照して、ステータス信号CLD_status1_A,BおよびCLD_status2_A,Bをミックスするロジックブロックが示される。ロジックブロック１４１０は、３つのステータス出力Final_cld_status_1、Final_cld_status_2、およびFinal_cld_status_3を受け取られた入力群および色／輝度制御信号から発生する。３つのステータス出力Final_cld_status_1、Final_cld_status_2、およびFinal_cld_status_3は、入力信号CLD_status1_A,BおよびCLD_status2_A,Bの任意の組み合わせにそれぞれ独立に設定されえる。３つの出力ステータス信号は、例えば、低い周波数の動きパス、高い周波数の色動きパス、および２フレームの動きパスのような３つの異なる動きパススレッショルド制御をそれぞれ制御することができる。ロジックブロック１４１０は、多くの異なるミキシング機能を実行するプログラム可能なミキサである。例えば、cld_status_1出力は、以下のものから導きえる。すなわち、（ｉ）CLD_Status1_AおよびCLD_Status1_Bの論理ＡＮＤ、（ｉｉ）CLD_status1_AおよびCLD_status2_Aの論理ＡＮＤ、（ｉｉｉ）CLD_status2_AおよびCLD_status2_Bの論理ＡＮＤ、または（ｉｖ）CLD_status1_A,BおよびCLD_status2_A,Bの論理ＡＮＤである。加えて、上の入力組み合わせのそれぞれは、論理ＡＮＤ操作の代わりに論理ＯＲで結合されえる。最後に、final_cld_status_1、final_cld_status_2、およびfinal_cld_status_3信号の出力が個別にロジック１またはロジックゼロにそれぞれ設定されえる。
【００６０】
可変スレッショルドロジックブロック
【００６１】
図１５は、可変スレッショルドロジックブロック（７１０）の概略ブロック図を示す。図１５に示されるように、コンポジットビデオ信号が入ってきて、現在のピクセル（Pn）が選択され、それについて可変スレッショルドが決定される。前述のようにロジックは、現在のピクセル（Pn）を水平方向で前のピクセル（Pn-1）および次のピクセル（Pn+1）と比較し、最大の差を選択する。この差は、検出された最大勾配振幅を記述する。対応する決定は、現在のラインについて現在のピクセル（Pn）、および前のラインおよび次のラインにおける同じ位置のピクセルを選択することによってそれぞれ垂直差評価ブロックにおいて垂直方向においてもなされる。いったん最大水平および垂直勾配がそれぞれ決定されると、現在のピクセルについてのスレッショルド値のセットが発生される。スレッショルド値は、検出された勾配値に直線的に比例する。比例定数は変化されえる。ある実現例において、スレッショルド値は、検出された勾配値について非線形でありえる。また、最小および最大クリッピング機能は、所定の最小スレッショルドを有するよう最終的なスレッショルド値がプログラムされえるように、または所定の上限を超えないようプログラムされえるように、計算されたスレッショルドに対して働くようプログラムされえる。ある実現例において、可変スレッショルドロジックブロック（７１０）は、Ｆ２、Ｆ１およびＦ０のようないくつかの隣接するフレームについてスレッショルド値を決定しえ、それぞれのフレームについて決定された最大または最小値となるべき最終スレッショルド値を決定しえる。
【００６２】
可変スレッショルドロジックは、サンプリングクロックジッタ／バラツキによる信号エッジにおけるピクセル値バラツキのための偽の動きを除去するのに役立つ。信号エッジが高くなればなるほど、ジッタの同じ量に対して起こるバラツキは大きくなる。したがって、より急な勾配上に位置するピクセルはより高いスレッショルド値を有しなければならない。同時に、これらのエッジにおいて、動き値は高く、よってスレッショルドは実際の動きをマスクしない。可変スレッショルドは、例えばピクセルが位置する勾配の１０％のようなパーセンテージをとることによって発生される。このパーセンテージは、カラーバースト分散計測値群（すなわち２フレーム離れたサンプリング値群）に基づいて、さらに適応的に決定される。
【００６３】
ある実現例において、５タップ適応スレッショルドウィンドウを形成するために、３タップ水平ウィンドウは、３タップ垂直ウィンドウと結合される。図１６は、そのような５タップ適応スレッショルドウィンドウの例を示す。スレッショルド決定中の現在のピクセルは、それぞれのウィンドウの中央に位置する。現在のピクセルおよび隣接するピクセル群の絶対差が決定され、決定された差群の中の最大差が勾配として決定される。例えば図１６において、現在のピクセル値Pnは、値１、２、３および４とそれぞれ比較され、これら値は周囲のピクセルの値であり、最大の差は、スレッショルドがピクセルPnについて導かれる最終勾配として考慮される。パーセンテージ値は、色／輝度検出に基づいて例えばｘ％およびｙ％の輝度／色ピクセル値に基づいて適応化される。
【００６４】
ある実現例において、水平スレッショルド値は、以下の式によって比較される。
【００６５】
Vthr(水平) = [[Max{|Pn-(Pn-1)|, |Pn-(Pn+1)|}] * (プログラム可能な減衰)] + プログラム可能なＤＣスレッショルド（最小レベル）
【００６６】
ある実現例においてデコーダは、例えばファームウェアを用いて、シンクロエッジまたはカラーバースト領域を検出しえ、それらの動き分散を決定しえる。この検出された分散は、１フレーム動きまたは２フレーム動きについてでありえるが、プログラム可能なスレッショルドゲインである線形パーセンテージスレッショルド値をプログラムするために用いられえる。プログラム可能な可変スレッショルドパーセンテージゲインは、加えて、検出された色／輝度に基づいて適応化されえる。スレッショルドロジックは、プログラム可能な最小ＤＣオフセットも有しえる。最大クリッピングロジックは、もしスレッショルドがプログラムされた上限値を超えるなら、出力レベルを上限値にクリップする。同じロジックは、垂直領域、すなわちラインにわたっても配置される。当業者に理解されるように、水平および垂直タップについてのスレッショルドパーセンテージおよびＤＣオフセットは、別個にプログラム可能でありえる。したがって、垂直ロジックについてはラインメモリが必要とされるので、２Ｄロジックラインメモリが共通に用いられえない限り、水平ロジックだけが保持されえる。最後に、図９に見られるように、可変スレッショルド値は、motion_out値を発生するために、動き検出ロジックブロック（７３０）において動き値から引かれる。
【００６７】
色／輝度検出ロジック
【００６８】
図１５の色／輝度検出ロジックブロック（８１０）は、２つのファクタに基づいて色特性／シグネチャについてチェックすることによって、色／輝度信号を粗く検出する。第１ファクタは、４ｆｓｃサンプリング値に基づく。もし調べているピクセルが色サイクルの一部であるなら、それぞれの交互のサンプリング値は、大きさがほぼ等しく、符号が反対でなければならない。検波した後、４つの色ピクセルのうちの隣接するピクセルの絶対差は、ほぼ同じでなければならない。第２ファクタは、色振幅チェックである。もしある静止画像について１フレーム差が２フレーム差より大きいなら、色が検出され、そうでなければそのピクセルは色ピクセルではない。
【００６９】
これら２つのチェックに基づいて、デコーディング中のピクセルが色サイクルであるか、または輝度信号であるかが決定されえる。さらにこの決定に基づいて、可変スレッショルドパーセンテージは、例えば輝度について３０％および色について１０％のように、色／輝度ピクセルについて異なるように決定される。スレッショルドパーセンテージ（ゲイン）およびＤＣオフセット最小および最大クリップ値は、それぞれの動きパスについて独立にプログラム可能であることに注意されたい。
【００７０】
色／輝度検出ロジック（８１０）の異なる部分のより詳細な図が図１７〜２０に示される。図１７は、１フレームおよび２フレーム差をチェックし、１の値が色を表す、１またはゼロの第１色／輝度ステータス値を出力する時間色振幅チェックのためのロジックを示す。図１８は、それぞれの交互のサンプリング値がほぼ大きさが等しく、符号が逆であるかをチェックし、１の値が色を表す、１またはゼロの第２色／輝度ステータス値を出力する４ｆｓｃ空間サンプリングチェックのためのロジックを示す。図１９は、図１８の色サンプリング比較ブロックのより詳細な図を示し、ここで全ての４つのフリップフロップはもし色が検出されるなら１にセットされる。最後に、図２０は、どのように第１および第２色／輝度ステータス値が比較されて、可変スレッショルドロジックブロック（７１０）によって用いられる最終色／輝度ステータス値が発生されるかを示す。
【００７１】
ＰＡＬへの適用
【００７２】
ＰＡＬ（フェーズオルタネーティングライン）は、例えばヨーロッパにおいて用いられるビデオ標準であり、ＮＴＳＣ標準とは多くの点で異なる。本願の目的のために、最も大きな差異は、副搬送波が２つのフレームにわたって１８０度だけ位相がずれていることで、ＮＴＳＣのように１つのフレームにわたってではないことである。その結果、副搬送波は４つのフレーム毎に同じ位相である。ＰＡＬについては、３Ｄ色信号は、２フレーム離れたビデオ信号を引くことによって発生される。色動きは、現在の信号、１フレーム遅延された信号、および２フレーム遅延された信号（すなわちＦ２、Ｆ１、およびＦ０タップ）を用いることによって検出される。
【００７３】
図２１は、ＰＡＬのための低い周波数動きを検出する概略ブロック図を示し、これは図４Ａおよび４Ｂについて上述のＮＴＳＣについて低い周波数動きを検出するのと似ており、ＰＡＬについては２フレーム差だけが用いられることが異なる。
【００７４】
図２２は、ＰＡＬについて色動きを検出する概略ブロック図を示し、これは図５Ａおよび５Ｂについて上述のＮＴＳＣについて色動きを検出するのと似ており、ＰＡＬについては、減算される代わりにＦ０およびＦ２信号が加算されクリップされることが異なる。
【００７５】
図２３は、ＰＡＬだけのために、M5_P輝度動きを検出する概略ブロック図である。図１８に示されるロジックは、輝度だけの領域について適切な動きを与えるだけであることに注意されたい。もし図１８のロジックが、色のついた領域に対して用いられるなら、大きな偽の動きが生じる。M5_P動きはさらに以下で詳述される。
【００７６】
図２４は、ＰＡＬだけのために、M6_P輝度動きを検出する概略ブロック図である。図１９に示されるロジックは、輝度だけの領域について適切な動きを与えるだけであることに注意されたい。もし図１９のロジックが、色のついた領域に対して用いられるなら、大きな偽の動きが生じる。M6_P動きはさらに以下で詳述される。
【００７７】
図２５は、ＰＡＬ動きを検出する概略ブロック図を示す。それぞれ図２３、２４および２５Ａに示されるように得られた信号M5_P、M6_P、およびM3_NPの最大値であるＰＡＬ１信号が、輝度動きの全ての範囲を検出するために用いられる。それぞれ図４Ａ、２１、６Ａおよび２２に示されるように得られた信号M1_NP、M2_NP、M3_P、M4_NP、およびM8_Pの最大値であるＰＡＬ２信号が、色動きおよび低い周波数の輝度動きを検出するために用いられる。ＰＡＬ動きは、ＰＡＬ１およびＰＡＬ２の最小値として決定される。
【００７８】
図２５に見られるように、M8_P およびM4_P動きパスは、高い周波数の色のついた静止領域について発生した偽の動きをなくすマスクロジック（Ｍ８マスク）を有する。このＭ８マスクロジックは、色信号は、高い周波数の色のついた領域については、２フレーム加算によっては打ち消し合わないので必要とされる。色信号は、副搬送波周波数に近い輝度を含み、これがビデオ信号が２フレームにわたって１８０度位相が正確にずれないようにさせ、偽の動きを生む。よってＭ８マスクロジックは、静止の高い周波数の色のついた領域についての偽の動き、およびクロマカラー遷移（chroma color transitions）による偽の動きもマスクする。Ｍ８マスクロジックのより詳細な図は図２８に見られる。図２８に見られるように、Ｍ８マスクロジックは、以下の入力を受け取る。すなわち、M1_NP、M2_NP、M3_P、M4_NP、M5_P、M6_P、M8_P、F2、F1およびF0、CLD STATUS、M8 Mask En、およびM8_Mask_threshold_control_regsである。Ｍ８マスクロジックは、空間色シグネチャ、時間色シグネチャ、低い周波数の動き、Ｆ２、Ｆ１、およびＦ０にわたる色信号極性、およびＦ２、Ｆ１、およびＦ０にわたる４サンプリングウィンドウの平均値のような信号特性を調べ、マスク信号（M8_Mask）を発生する。図２８に示される実現例において、マスク信号がさらにＰＡＬ動き検出ブロックによって処理される前に、伸長／展開ロジックは、M8_Mask信号についても提供される。
【００７９】
ある実現例において、１フレームクロマ（one frame chroma）が用いられるときに、ＮＴＳＣモードについて提供される小さなマスクロジックが存在する。１フレームクロマ動きが用いられるとき、コンポジット信号が形成されるやり方のために、偽の動きが１フレームクロマ動き回路によって発生されえる。マスクロジックはこれら偽の動きを検出しマスクする。
【００８０】
図２６は、どのように３Ｄ色信号が発生されるかの概略ブロック図を示す。図２１に示されるように、ＰＡＬについて、３Ｄ色発生は、フレームＦ２およびＦ０を用いてなされ、一方、ＮＴＳＣについては、３Ｄ色発生は、フレームＦ２およびＦ１を用いてなされる。３Ｄ色バンドパスフィルタのためのバイパスオプションも存在する。ある実現例では、デフォールトでは、バイパスオプションを用いることによって、フルの帯域幅が色信号のために用いられるようにする。しかしもし何らかの理由で大きな帯域幅が、例えば色オーバシュートのようなアーティファクトを作るなら、このパス上でバンドパスフィルタをイネーブルすることによって、低い周波数の動きがディセーブルされえる。
【００８１】
最後に、図２７は、結合されたＮＴＳＣ／ＰＡＬシステムのための最終動き決定の概略ブロック図を示す。ＮＴＳＣ動きは、図７を参照して上述のようにM1_NP、M2_NP、M3_NPおよびM4_NP信号の最大値である。ＰＡＬ動き信号は、図２５を参照して上述のように発生される。ＮＴＳＣ／ＰＡＬモード検出信号に基づいて、NTSC_MOTIONまたはPAL_MOTION信号のいずれかが選択される。それから選択された動き信号は、３タップメジアンフィルタでフィルタリングされてスパイクが除去され、最終的に５ビットにクリップされ、動き信号が最大値１６を有するようにされる。それから動き信号は、図２のブレンダ（１１０）に入力され、これが２Ｄおよび３Ｄデコーディングを上述のように結合する。
【００８２】
本発明は、ディジタル電子回路で、またはコンピュータハードウェア、ファームウェア、ソフトウェアまたはこれらの組み合わせで実現されえる。本発明の装置は、プログラム可能なプロセッサによって実行するための機械で読み取り可能な記憶デバイス内に有形で実現された媒体コンピュータプログラム製造物で実現されえ、本発明の方法ステップは、入力データに対して操作し、出力を発生することによって、本発明の機能を実行する命令群のプログラムを実行するプログラム可能なプロセッサによって実現されえる。本発明は、データ記憶システムからデータおよび命令を受け取り、データおよび命令をデータ記憶システムに転送するよう結合された少なくとも１つのプログラム可能なプロセッサ、少なくとも１つの入力装置、および少なくとも１つの出力装置を含むプログラム可能なシステム上で実行可能な１つ以上のコンピュータプログラムで有利に実現されえる。それぞれのコンピュータプログラムは、高レベルの手続きまたはオブジェクト指向プログラミング言語で、または所望であればアセンブリまたは機械語で実現されえ、いずれの場合も、言語はコンパイルまたはインタープリタ言語でありえる。適切なプロセッサは、例として、汎用および専用マイクロプロセッサの両方を含む。一般に、プロセッサは、命令およびデータを読み出し専用メモリおよび／またはランダムアクセスメモリから受け取る。一般に、コンピュータは、データファイルを記憶する１つ以上の大量記憶デバイスを含み、そのようなデバイスには、内部ハードディスクドライブおよび取り外し可能なディスクのような磁気ディスク、磁気光学ディスク、および光学ディスクが含まれる。コンピュータプログラム命令およびデータを有形で実現するのに適切な記憶デバイスは、例えばＥＰＲＯＭ、ＥＥＰＲＯＭ、およびフラッシュメモリデバイスのような半導体メモリデバイス、内部ハードディスクドライブおよび取り外し可能なディスクのような磁気ディスク、磁気光学ディスク、およびＣＤ−ＲＯＭディスクを含む不揮発性メモリの全ての形態を含む。前述の任意のものは、ＡＳＩＣ（特定用途向け集積回路）によって補われてもよく、またはＡＳＩＣに組み込まれてもよい。
【００８３】
ユーザとの対話を提供するために、本発明は、情報をユーザに表示するモニタまたはＬＣＤスクリーンのようなディスプレイ装置を有するコンピュータシステム上で実現されえる。ユーザは、キーボード、ポインティングデバイス、マウス、トラックボール、マイクロホン、タッチセンシティブディスプレイ、トランスデューサカードリーダ、磁気または紙テープリーダ、タブレット、スタイラス、音声または手書き認識器、またはもちろん他のコンピュータのようなよく知られた任意の他の入力デバイスのようなさまざまな入力デバイスを通してコンピュータシステムへの入力を提供しえる。コンピュータシステムは、コンピュータプログラムがユーザと対話するグラフィカルユーザインタフェースを提供するようプログラム可能でありえる。
【００８４】
最後に、プロセッサはオプションとして、プロセッサがネットワークから情報を受け取り、または上述の方法ステップを実行する過程においてネットワークに情報を出力しえるネットワーク接続を用いて、コンピュータ、または例えばインターネットネットワークまたはイントラネットネットワークのような通信ネットワークに結合されえる。そのような情報は、プロセッサを用いて実行される命令のシーケンスとしてしばしば表されるが、例えば、搬送波中に実現されるコンピュータデータ信号の形態で、ネットワークから受け取られえ、かつ出力されえる。上述の装置および材料は、コンピュータハードウェアおよびソフトウェア技術の当業者には馴染みの深いものであろう。
【００８５】
本発明は、コンピュータシステム中に記憶されるデータを伴うさまざまなコンピュータによって実現される操作を採用することに注意されたい。これら操作は、以下に限定されないが、物理的な量を物理的に操作することを必要とするものを含む。ふつう、必ずしもそうではないが、これら量は、記憶、転送、結合、比較、およびその他の操作がなされることができる電気または磁気信号の形態をとる。本発明の一部を形成するここで記載された操作は、有用な機械操作である。実行される操作は、しばしば、作成、特定、運用、決定、比較、実行、ダウンロード、または検出のような語で呼ばれる。通常使用されるという主な理由で、ときにはこれら電気または磁気信号をビット、値、要素、変数、キャラクタ、データなどと呼ぶことが便利である。しかし、これらおよび類似の語の全ては、適切な物理的な量と関連付けられ、それらの量に付されている便利なラベルに過ぎない。
【００８６】
本発明は、前述の操作を実行するデバイス、システムまたは装置にも関する。このシステムは、必要な目的のために特に構築されえ、またはそれは、コンピュータに記憶されるコンピュータプログラムによって選択的にアクティベートまたは構成される汎用のコンピュータでありえる。上述のプロセスは、もともと特定のコンピュータまたは他のコンピューティング装置に関連付けられているのではない。特に、さまざまな汎用コンピュータは、ここでの教示に従って書かれたプログラムと共に用いられえ、または代替として、それは、必要とされる操作を実行するために、より専用のコンピュータシステムを構築するためにより便利でありえる。
【００８７】
本発明の多くの実現例が説明されてきた。にもかかわらず、さまざまな改変が本発明の精神および範囲から逸脱することなくなされえることが理解されよう。例えば本発明は、ＴＶ信号を放送するのに典型的に用いられるＮＴＳＣおよびＰＡＬビデオ信号を参照して上に記載されてきたが、本発明は、ＤＶＤプレーヤから出力されるビデオ信号のようなコンポーネントビデオにも同様に適用可能である。したがって他の実現例も添付の特許請求の範囲内である。
【図面の簡単な説明】
【００８８】
【図１】本発明によるデコーダによって実行されるプロセスの高レベルフロー図である。
【図２】本発明によるデコーダの概略ブロック図である。
【図３】図１の動き検出操作の高レベルフロー図である。
【図４Ａ】低い周波数動きを検出する回路の概略ブロック図である。
【図４Ｂ】低い周波数動きの検出プロセスのフロー図である。
【図５Ａ】色および／または輝度について高い周波数動きを検出するのに用いられるロジックの概略ブロック図である。
【図５Ｂ】色および／または輝度についての動き検出プロセスのフロー図である。
【図６Ａ】より少ない動きを持つ、色および／または輝度についての高い周波数動きを検出するのに用いられるロジックの概略ブロック図である。
【図６Ｂ】より少ない動きを持つ、高い周波数の色および／または輝度についての動き検出プロセスのフロー図である。
【図７】どのようにＮＴＳＣ動きが決定されるかの概略ブロック図である。
【図８】デコーダのブレンダ（１１０）の動作をより詳細に示す概略ブロック図である。
【図９】デコーダの適応スレッショルドロジック（１２０）を示す概略ブロック図である。
【図１０】時間色特性についてチェックする時間検出ブロックの概略図である。
【図１１】空間検出ブロックを示す概略図である。
【図１２】空間色特性についてチェックする検出ブロックを示す概略図である。
【図１３】ライン色特性を検出する他の検出ブロックの図である。
【図１４】動き制御スレッショルド信号を発生するロジックブロックの図である。
【図１５】適応スレッショルドロジック（１２０）の可変スレッショルドロジックブロック（７１０）を示す概略ブロック図である。
【図１６】５タップ適応スレッショルドウィンドウの例を示す図である。
【図１７】色振幅を時間的にチェックするためにデコーダ中で用いられるロジックを示す概略ブロック図である。
【図１８】４ｆｓｃサンプリングの空間チェックを行うためにデコーダ中で用いられるロジックを示す概略ブロック図である。
【図１９】図１３の色サンプリング比較ブロックのより詳細な図である。
【図２０】可変スレッショルドロジックブロック（７１０）によって用いられる最終的な色／輝度状態値がどのように発生されるかを示す図である。
【図２１】デコーダ中でＰＡＬについての低い周波数の動きを検出する概略ブロック図である。
【図２２】デコーダ中でＰＡＬについての色の動きを検出する概略ブロック図である。
【図２３】本発明の第１実現例による、デコーダ中でＰＡＬについての輝度の動きを検出する概略ブロック図である。
【図２４】本発明の第２実現例による、デコーダ中でＰＡＬについての輝度の動きを検出する概略ブロック図である。
【図２５】デコーダ中でＰＡＬ動きを検出するのに用いられるロジックについての概略ブロック図である。
【図２６】デコーダ中で３Ｄ色信号を発生するのに用いられるロジックの概略ブロック図である。
【図２７】結合されたＮＴＳＣ／ＰＡＬシステムのための最終的な動き決定を行うのに用いられるロジックの概略ブロック図である。
【図２８】ＰＡＬ信号についての高周波数色付き静止領域について発生した偽の動きを除去するために用いられるマスクロジックの概略ブロック図である。
【図１】
2006115503.tif 000005
【図２】
2006115503.tif 000006
【図３】
2006115503.tif 000007
【図４Ａ】
2006115503.tif 000008
【図４Ｂ】
2006115503.tif 000009
【図５Ａ】
2006115503.tif 000010
【図５Ｂ】
2006115503.tif 000011
【図６Ａ】
2006115503.tif 000012
【図６Ｂ】
2006115503.tif 000013
【図７】
2006115503.tif 000014
【図８】
2006115503.tif 000015
【図９】
2006115503.tif 000016
【図１０】
2006115503.tif 000017
【図１１】
2006115503.tif 000018
【図１２】
2006115503.tif 000019
【図１３】
2006115503.tif 000020
【図１４】
2006115503.tif 000021
【図１５】
2006115503.tif 000022
【図１６】
2006115503.tif 000023
【図１７】
2006115503.tif 000024
【図１８】
2006115503.tif 000025
【図１９】
2006115503.tif 000026
【図２０】
2006115503.tif 000027
【図２１】
2006115503.tif 000028
【図２２】
2006115503.tif 000029
【図２３】
2006115503.tif 000030
【図２４】
2006115503.tif 000031
【図２５】
2006115503.tif 000032
【図２６】
2006115503.tif 000033
【図２７】
2006115503.tif 000034
【図２８】
2006115503.tif 000035
【外国語明細書】
1. TITLE OF THE INVENTION
SUB-CARRIER DETECTION (SCD) FOR MOTION THRESHOLD LOGIC
2. DETAILED DESCRIPTION OF THE INVENTION
BACKGROUND
[0001]This invention relates to video processing, and more particularly, to an apparatus and method for adaptive threshold logic for motion detection for decoding NTSC and PAL video signals.
[0002]In the National TV Systems Committee (NTSC) standard for television transmission, RGB (Red Green and Blue) signals from a television camera are converted into a luma signal and a chroma signal to allow for efficient transmission.  The luma signal, which is typically labeled 'Y', describes the brightness and maximum detail of a picture registered with the television camera.  The chroma signal is a combination of two color difference signals R-Y (red minus Y) and B-Y (blue minus Y), both of which are bandwidth limited to about 1 MHz.  The respective color difference signals are used to modulate the phase and amplitude of a 3.58 MHz sub-carrier signal.  The phase modulation represents the hue, or specific color intended, whereas the amplitude modulation represents the intensity, or saturation, of the color difference signal.  The frequency of the sub-carrier is chosen such that the chroma signal can be frequency interleaved with the luma signal to generate a single, composite signal having no energy interference between the chroma and luma signals.
[0003]When a television set receives the NTSC composite signal, the composite signal is decoded in a decoder to separate the luma and chroma signals.  The chroma signal is then demodulated into R-Y and B-Y component signals that can be used to recreate RGB signals to be displayed on the television screen.  Since the luma and chroma signals share the same frequency bandwidth at around 3.58 MHz, and the luma and chroma signals are not prefiltered before they are added, the luma and chroma signals cannot be fully separated in the decoding process.  Thus, as a result of the crosstalk between the luma and chroma signals, various decoding artifacts are present.  A number of methods have been designed to achieve a better separation of the luma and chroma signals during the decoding process in order to minimize the decoding artifacts.
[0004]In general, there are two methods for separating the luma and chroma signals.  Both involve filters that are designed to discern one portion of the composite signal from the other.  The first method uses a "notch/bandpass filter," and the second method uses a "comb filter."  There are several different types of comb filters that all have specific advantages and drawbacks.
[0005]The notch filter is designed to pass all frequencies of the composite signal, except the frequency of the chroma signal centered at 3.58 MHz.  As a result, the chroma signal is removed, but so is also a corresponding portion of the luma signal, resulting in a loss of high frequency luma information.  The notch filter is used in parallel with a bandpass filter, which passes only the frequencies in the narrow chroma band and outputs the chroma signal and the high frequency portion of the luma signal.  In summary, the notch/bandpass filter method has the advantages of being a simple, low-cost approach with little or no loss of vertical resolution (that is, low frequencies).  The drawbacks are that the luma resolution is lost and that heavy display artifacts result when the high frequency luma is treated as chroma (which is known as a "rainbow pattern" artifact), and when chroma is treated as luma (which is known as dot crawls).
[0006]With the comb filtering methods, the sub-carrier phase is designed to reverse by 180 degrees between two adjacent image lines (and thereby also between two adjacent frames, since there is an odd number of lines within a frame).  There are two major types of comb filtering: line combing and frame combing.  In both methods, the basic concept involves adding or subtracting two identical signals that have the chroma phase reversed by 180 degrees.  When adding the signals, the chroma signal is canceled out and the luma signal is output, and when subtracting the signals, the luma information is lost and the chroma signal is output.
[0007]One line, two lines or three lines can be used with in-line combing.  When a single line is used, the incoming video signal is delayed by one line and the corresponding delayed and un-delayed pixels are added and subtracted to obtain the luma and chroma signals respectively.  When two lines are used, weighted addition and subtraction of one-line delayed, two-line delayed and un-delayed pixels are used to obtain the luma and chroma signals respectively.  When three lines are used, a correlation is determined between lines 1 and 2 and lines 2 and 3. The comb filtering is then performed on the two lines that have the best correlation.  The three-line adaptive comb filter is often referred to as a 2D adaptive comb filter.  All line combing methods produce better results than the notch/bandpass filter method, but still show cross-color, vertical resolution loss, and dot crawls when a single line color is present.
[0008]Frame combing is similar to line combing, but instead of comparing two adjacent lines within a single frame, two lines with the same position within two adjacent frames are used for the combing, thereby extending the comb filtering into the temporal domain.  However, frame combing can only be performed for still portions of an image.  If motion is present, then it is necessary to revert back to 2D-combing.  The method of using the motion detection to change comb filtering from line combing to frame combing is referred to as motion-adaptive decoding, or 3D adaptive decoding.  The 3D adaptive decoding keeps full horizontal and vertical resolution without dot crawls and cross color for still images.  However, motion artifacts, such as large area dot crawls and ghosting shadows, can be present
[0009]In the 3D adaptive decoding, the comb filtering is switched between the 3D and 2D comb filtering methods on a pixel-by-pixel basis.  If no motion is present, then the 3D comb filter is applied, and if motion is present, then the 2D comb filter is applied.  Hence, there is a need to minimize the motion artifacts by accurately detecting whether there is "true motion" between two frames, or whether the perceived motion is "false motion" due to, for example, jitter or noise.
SUMMARY
An apparatus comprising a video decoder configured to receive a composite video signal modulated on a sub-carrier signal and having a luma component and a chroma component, the video decoder configured to perform a motion detection operation on the luma component and the chroma component in a plurality of frequency regions respectively. The video decoder includes variable threshold logic, coupled to the video decoder, and configured to provide a unique threshold value to the video decoder for each of the plurality of frequency regions respectively. The apparatus also includes a sub-carrier detection logic, coupled to the variable threshold logic, and configured to detect the sub-carrier signal by checking both spatial and temporal characteristics of the sub-carrier detection logic. Like reference symbols in the various drawings indicate like elements.
DETAILED DESCRIPTION
Overview
[0010]The invention relates to methods and apparatus for detecting motion in video signals, such as composite NTSC, PAL signals or component video signals, which are received by a television set.  First, an overview of a decoder implementing the novel motion detection scheme will be given, and then the motion detection in the various frequency regions will be presented.  This will be followed by a description of how the individual threshold values are adjusted and a presentation of how the detected motion is used by a blender in the decoder to determine whether to output a 2D or 3D decoded signal.  The discussion herein will primarily be focused on NTSC signals, but is equally applicable to PAL signals, or to component video signals, with some minor modifications that will be addressed at the end of this description.
[0011]FIG. 1 shows a high-level flowchart of a process (1000) performed by a 3D decoder implementing the novel motion detection scheme.  As can be seen in FIG. 1, a composite video signal containing both chroma and luma components is received in the decoder (step 1002).  A motion detection operation is then performed on the incoming composite video signal (step1004).  As will be discussed in further detail below, the motion detection operation is performed both for chroma and luma in several frequency regions.  Each region has a unique threshold value that is adjustable and therefore allows for better detection of "true motion" versus "false motion," resulting in a decoded image with fewer motion artifacts compared to conventional 3D decoders.  The process then examines whether motion was detected or not in the motion detection operation (step 1006).  If motion was detected, the process proceeds to step 1008 where 2D logic is used to decode the composite signal.  However, if no motion was detected in step 1006, the process continues to step 1010 where 3D logic is used to decode the composite signal.
[0012]FIG. 2 shows a schematic block diagram of a decoder (100) for decoding NTSC composite signals received by a television set. The 3D decoder (100) receives a composite video signal (102).  The composite video signal (102) is delayed by one and two lines in a first and a second line delay (104; 106) respectively.  A current line signal (L1) along with a one-line delayed signal (L2) and a two-line delayed signal (L3) enters an adaptive 2D decoder (108) with vertical logic, horizontal logic, and single-line logic.  The adaptive 2D decoder (108) filters out the chroma signal (2D_C) from the composite video signal, and passes the filtered 2D_C chroma signal to a blender (110), which will be described in further detail below.   The one-line delayed signal (L2) is also passed to a delay (112), which compensates for the processing time required for filtering out the chroma signal, to generate the luma signal (Y). In addition to the adaptive 2D decoder (108), the decoder (100) contains logic for generating a motion-adaptive, 3D chroma signal (3D_C), which is also passed to the blender (110).  Two frame memories (114; 116) are used in the detection of chroma motion, as the chroma samples are in phase across two frames (that is, in frames F0 and F2), and a loss-free correlation can easily be determined in the motion detection block (118).
[0013]FIG. 3 shows a high-level flowchart of the motion detection operation of FIG. 1 (step 1004), which is performed by the motion detection block (118).  As can be seen in FIG. 3, the motion detection process starts by receiving an incoming frame signal, a one-frame delayed signal, and a two-frame delayed signal (step 3002).  A first pixel in the incoming frame signal is selected (step 3004).  The motion detection block (118) then receives separate threshold values for the low frequency luma domain, the high frequency chroma domain and the high frequency luma/chroma domain, respectively, from the variable threshold logic block (120) (step 3006).  As a result of the variable threshold logic block (120) supplying a separate threshold value for each pixel and each frequency domain, the motion detection is significantly improved compared to conventional motion detection techniques.  In one implementation, the threshold values are based on the pixel's value as compared to its immediate neighboring pixels.  The process determines the maximum motion among the motions in the different frequency domains to be the final motion value for the pixel (step 3008).   The process then checks whether all pixels in the incoming frame have been processed (step 3010).  If all pixels are done, the process ends.  Otherwise, a next pixel in the incoming frame is selected (step 3012), and the process repeats steps 3006 through 3010 until all pixels have been processed.  This motion detection process is performed for each received frame.
[0014]Returning now to FIG. 2, when the final motion value has been determined, the final motion value is passed from the motion detection block (118) to the blender (110) through a 3-tap median filter (122) and a delay block (124).  The median tap filter (122) filters the maximum motion value to remove any sparkle motion or non-motion points in the pixel stream.  The 3D chroma signal (3D_C) is generated from a current pixel and a corresponding pixel that is one frame prior, that is, F2-F1, and is then divided by a factor two (126).  A band pass filter (128) and a delay (130) are applied to signal before the signal is passed to the blender (110).  The band pass filter limits the bandwidth of the 3D chroma signal before the signal reaches the blender (110).   In one implementation, the chroma band pass filter (128) is a 5-tap filter with coefficients of −1/4, 0, 1/2, 0, -1/4, with the middle tap being the current pixel undergoing decoding and two pixels on either side.  In another implementation, the chroma band pass filter (128) will be a wide band pass filter with a pass band of around 3 MHz centered around the sub-carrier frequency. 
[0015]Based on the detected motion in the motion detection block (118), the blender (110) decides whether to output the 2D chroma signal or the 3D chroma signal.  If motion is present, the 2D_C signal is output, and if no motion is present, then the 3D_C signal is output from the blender (110).  The signal from the blender goes to a color killer (132) that operates to remove chroma information in cases where the proper color cannot be displayed for various reasons, such as for monochrome inputs that lack a color burst signal, and so on.  Finally the separated chroma (C) and luma (Y) signals are output to the television set for generation of RGB signals to be displayed on the television screen.
Low Frequency Motion Detection
[0016]FIG. 4A shows a schematic block diagram of the logic used in one implementation of the motion detection block (118) to detect low frequency motion.  FIG. 4B shows a corresponding flowchart for the low frequency motion detection process that is carried out in the motion detection block (118) of FIG. 4A.  The low frequency motion is determined by subtracting (202) a one frame delayed sample from an incoming frame, that is, F1-F0 (step 4002).  As was discussed above, in NTSC, the sub-carrier for two adjacent frames is 180 degrees out of phase.  Since the chroma signal is modulated on the sub-carrier, the result of the subtraction of frames F2 and F0 is that luma is canceled out and chroma and motion is obtained.  The signal (C) resulting from the subtraction F2-F1 is lowpass filtered (204) in order to remove the high frequency components including chroma (step 4004).  The same signal (C) is also used as input to the logic used to detect high frequency motion for chroma and/or luma, with less luma motion, which will be discussed in more detail below with reference to FIG. 6.
[0017]In one implementation, the lowpass filter (204) includes three 5-tap filters (2+2) with coefficients of 1/4, 0, 1/2, 0, 1/4, and a 3-tap lowpass filter (1+1) with coefficients of 1/4, 1/2, 1/4 at the output.  This combination of filters in the lowpass filter (204) helps in reducing noise in the motion path and removes sub-carrier portions that may be incorrectly interpreted as motion.  The lowpass filtered signal is then passed to a rectifier (206), which converts negative signals or values to positive signals or values (step 4006), and is then passed to a threshold logic block (208).  The threshold logic block (208) subtracts the threshold value determined by the variable threshold logic (120) from the incoming rectified motion value (step 4008).  The resulting signal is limited (210), that is, any negative values are clipped to zero while leaving positive values unchanged, to obtain the low frequency motion value (step 4010), and the lowpass filtered motion detection value is output (step 4012).
[0018]In one implementation, the third 5-tap filter has a bypass option.  The attenuation of the lowpass filter block (204) for NTSC signals can be found in Table 1 below, and the attenuation for PAL signals are listed in Table 2 below.
2006115503.tif 000036
2006115503.tif 000037
[0019]In one implementation, in order to make the switching to 3D softer, the same low frequency motion detection is applied to a one-frame delay and a two-frame delay, respectively, shown in FIG. 4A by blocks 212 through 220.   Also here, the signal (D) resulting from the subtraction of signal F1 from F0 is used as input to the logic for detecting high frequency motion for chroma and/or luma, with less luma motion, shown in FIG. 6A. The maximum value of the F2-F1 motion and the F1-F0 motion, respectively, is determined as the final low frequency luma motion.
High Frequency Motion Detection for Chroma and/or Luma
[0020]FIG. 5A shows a schematic block diagram of one implementation of the logic used in the motion detection block (118) to detect high frequency chroma and/or luma motion.  FIG. 5B shows a corresponding flowchart of a motion detection process for high frequency chroma and/or luma. As can be seen in FIGs. 5A and 5B, in order to detect high frequency motion, a two-frame delayed sample is subtracted (302) from an incoming frame, that is, F2-F0 (step 5002).  The resulting signal is then rectified (304) (step 5004) and passed to a threshold logic block (306).  The threshold logic block (306) subtracts a second threshold value (step 5006) determined by the variable threshold logic (120) from the incoming motion value.  The resulting signal is limited (308) (step 5008) and low pass filtered with a 3-tap low pass filter (1+1) with coefficients of 1/4, 1/2, 1/4 (step 5010).   Since the sub-carrier of F0 and F2 has the same phase, this detection scheme provides proper chroma motion, as well as high frequency luma motion.  The resulting signal is then output (step 5012).
[0021]In one implementation, the signals F2 and F0 can be bandpass filtered before they are subtracted in step 5002, so that low frequency luma motion is filtered out and only chroma band motion is present.  As a result, the resulting signal output in step 5012 will only contain chroma band motion.
Chroma / Luma Motion with Less Luma Motion
[0022]FIG. 6A shows a schematic block diagram of the logic used in the motion detection block (118) to detect high frequency motion for chroma and/or luma, with less luma motion.  FIG. 6B shows a flowchart of a corresponding motion detection process carried out in the motion detection block (118).  As can be seen in FIGs. 6A and 6B, this motion estimation is fairly similar to the high frequency motion estimation discussed above with reference to FIGs. 5A and 5B.  The logic shown in FIG. 6A can operate in two modes.  In the first mode, the logic operates to detect chroma motion across two frames, with less luma motion.  In the second mode, the logic operates to detect one frame chroma motion. 
[0023]First, the process (6000) determines whether the two-frame chroma mode or the one frame chroma mode should be used (step 6002).  In one implementation, this is determined by checking whether a one-frame chroma motion enable bit has been set.  If the one-frame chroma motion enable bit has not been set, then the two-frame mode is used and the process continues to step 6004, in which the two one-frame difference signals C (that is, F2-F1) and D (that is F1-F0) from FIG. 4A are rectified.  Signal D is then subtracted from signal C (step 6006) and the resulting signal is rectified (step 6014).  The threshold logic block then subtracts a third threshold value determined by the variable threshold logic (120) from the incoming rectified motion value (step 6016).  The resulting signal is limited (308) (step 6018) and low pass filtered (step 6020) in a 3-tap low pass filter (1+1) with coefficients of 1/4, 1/2, 1/4.   The resulting signal is then output (step 6022) and the process ends.
[0024]If the process determines in step 6002 that the one frame chroma motion enable bit has been set, that is, that one frame chroma motion detection should be used, the process (6000) does not use signals C and D, but instead uses frames F2 and F1.  Each of frames F2 and F1 are bandpass filtered (step 6008) and rectified (step 6010).  The rectified version of signal F1 is then subtracted from the rectified version of signal F2 (step 6012), and the resulting difference signal is then rectified (step 6014).  After the difference signal has been rectified in step 6014, the process continues with steps 6016 through 6022, as described above.
Final Motion
[0025]FIG. 7 shows a schematic block diagram of how the final NTSC motion is determined based on the motions determined for the different frequency regions.  The final motion file is the maximum of the motions determined above for the various frequency areas.  As was seen in FIG. 2 above, the final motion is then passed through a 3-tap horizontal median filter (122).  The 3-tap horizontal median filter (122) removes sparkle motion and no_motion points and/or lines.  The final NTSC motion is clipped to be 5 bits wide.  A maximum motion value of 16 will cause the decoder to output the 2D luma and chroma signals only.  A minimum motion value of zero will cause the decoder to output the 3D luma and chroma signals only.  Any values in between zero and 16 will cause the decoder to output a signal that is a blended 2D and 3D signal.  This blending is done in the blender (110), which will now be described in greater detail.
The Blender
[0026]FIG. 8 is a schematic block diagram showing the operation of the blender (110) of the decoder in greater detail, in accordance with one implementation of the invention.  As was discussed above and can be seen in FIG. 8, the 2D chroma signal (2D_C) comes from the 2D chroma/luma separator, and the 3D chroma signal (3D_C) comes from the 3D chroma/luma separator.  The 5-bit motion output from the motion detection block (118) is also used as an input to the blender (110).  The chroma output from the blender is based on the 2D_C and 3D_C signals, which are blended as follows:
Chroma output = (2D_C * motion)/16 + (3D_C * (16-motion))/16
[0027]The luma output is obtained by subtracting the chroma output from the input composite video (L2).  A color killer, which can be enabled and disabled by firmware, is used to remove color from being displayed in cases where the proper color cannot be displayed, for example, when the input composite video (L2) is a monochrome video signal.  In some implementations, a filter, such as an adaptive controlled filter, can be applied in the chroma path in order to enhance the cross-color suppression.  Similarly, adaptive filters can be put in the luma path in order to reduce cross-luma effects.
Threshold Logic for Motion Detection
[0028]As was discussed above, an effective way of decoding the composite signal is to perform motion based adaptive temporal decoding with a 3D comb filter, such that when no motion is present, then temporal combing (3D) is performed, and otherwise spatial combing (2D) is performed.  2D decoding has cross-color and dot crawl artifacts, while 3D decoding does not have these artifacts for still portions of an image.  Thus, the motion detection logic is used to accurately detect the motion and thereby achieve a better image quality.
[0029]In one implementation, the motion detection is achieved by studying differences between a current frame and previous frames on a pixel-by-pixel basis.  The detected difference, that is, the "raw difference" needs to be processed in order to detect true motion.  Typically, motion detection logic contains some type of threshold logic, which controls how much raw motion will be suppressed based on system noise.  If this threshold value is increased, then the real motion will be lost in some cases, and if the threshold value is decreased, system noise will generate erroneous motion indications.  Therefore, it is desirable to have adaptive threshold logic.  Furthermore, the more dynamic the adaptive threshold logic is, the better the motion detection logic will perform.  In order to understand the various issues that need to be taken into account in the adaptive threshold logic, a brief overview of various noise types will now follow.
[0030]The main causes for motion detection inaccuracies are random noise, sampling clock noise or jitter, diagonal transition noise due to camera shimmer, clamp noise and so on.  The following discussion will focus on sampling clock noise or jitter, and diagonal transition noise.  In addition to random low amplitude noise in video signals, the more high amplitude and high frequency noise for the 3D decoder motion detection logic is edge noise, which causes false motion across frames, and hence switching to 2D in those areas of the image, although 3D should be used.  The edge noise occurs as a result of the ADC (Analog to Digital Converter) sampling clock jitter, because of various reasons like clock edge noise, PLL (Phase locked loop) instability, PLL tracking, or the loop filter settings.
[0031]As a result of the sampling clock jitter, there are variations in the sampled signal amplitudes at all the signal edges.  These variations cause edge noise to be present, which is directly proportional to clock jitter and to the edge amplitude or the slope, that is, the difference in pixel values for two pixels that are located on either side of an edge.  In one implementation this difference is determined by determining a first difference of a current pixel and a previous pixel, and a second difference between a current pixel and a next pixel, and selecting the maximum of the two determined differences.  In order to address this problem, the threshold needs to be dynamically varied based on both edge detection and on the edge slope, on a pixel-by-pixel basis.
[0032]The edge/slope adaptive threshold can be further improved based on sub-carrier detection.  Typically in a digitized composite video signal, the edge noise in the high frequency luma portions is higher than the edge noise in the high frequency chroma portions, since the sampling clock is locked to the color burst portion of the sub-carrier signal.  Furthermore, the luma edges typically have steeper slopes than the chroma edges, since the luma edges have high resolution up to around 5 MHz.  If the edge threshold is set high to mask high frequency luma edge noise, then some associated loss of real chroma motion will also occur.  However, if the edge/slope threshold is made adaptive based on sub-carrier detection, the threshold logic can be improved to be more effective, as will now be discussed.
Implementation of Edge and Sub-Carrier Detect 
Logic for Adaptive Threshold Logic
[0033]FIG. 9 shows a schematic block diagram of the threshold logic (120) that includes an edge detection logic block (710) and sub-carrier detection (SCD) logic block (720).  The edge detection logic block (710), which will be described in further detail below, contains logic that allows a user to set a threshold value as a percentage of the edge, that is, how much of the slope amplitude should be assigned as an edge threshold.
[0034]This edge-based threshold is then made further adaptive through the SCD logic block (720), which examines the sub-carrier status.  The SCD logic block (720) will also be described in further detail below, but generally the SCD logic block (720) operates and interacts with the edge detection logic block (710) as follows.  A user may set two percentages for a particular edge, for example, x% and y%.  If the SCD logic block (720) does not detect a sub-carrier, then x% is used as the slope percentage threshold value, and if the SCD logic block (720) detects a sub-carrier, then y% is used as the slope percentage threshold value for that particular edge.  If x% is set to be higher than y%, a higher slope percentage threshold value can be used for luma portions of an image and a lower slope percentage threshold value can be used for chroma portions of the image, thereby reducing the chroma motion loss and achieving a dynamic threshold variation based on SCD on a pixel by pixel basis.  Because of this independent control for luma and chroma portions, the threshold logic can be programmed to suppress significant luma edge noise without much loss in chroma motion.
The SCD Detection Block
[0035]The SCD detection block (720) detects the sub-carrier by checking for sub-carrier characteristics, both spatially (i.e., across lines ) and temporally (i.e., across frames).  In the spatial domain, since the sampling clock is four times the sub-carrier frequency and locked to the sub-carrier through the color burst, the alternate sub-carrier samples will be nearly equal in magnitude, but opposite in phase or sign.  Furthermore, the sub-carrier changes phase by 180 degrees across lines, which can also be used.  In the temporal domain, the sub-carrier inverses phase by 180 degrees every frame, so there will be a significant difference between two adjacent frames and much less difference between frames that are two frames apart.  Thus, by studying both the spatial domain and the temporal domain, an approximate sub-carrier detection can be made to control the threshold logic.  As can be seen in FIG. 9, the SCD block (720) receives the three frame taps F2, F1, and F0 (that is, the current frame, the previous frame, and the frame prior to the previous frame) for sub-carrier detection. The definitions provided below are useful for the subsequent description of the SCD detection block: 
1.   The CLD_Status1_A is the status signal, based on temporal chroma amplitude characteristics check, to indicate whether the samples are chroma or not; 
2.  The CLD_status1_B is the status signal, based on temporal chroma polarity characteristics check, to indicate whether the samples are chroma or not; 
3.  The CLD_status2_A is the status signal, based on spatial chroma amplitude and polarity check within the current Video Line(one dimensional), to indicate whether the samples are chroma or not; 
4.  The CLD_status2_B is the status signal, based on spatial chroma amplitude and polarity check across three lines(which are one line delayed apart for NTSC and two line delayed apart for PAL)(i.e. two dimensional), to indicate whether the samples are chroma or not; and
5.   The final cld_status1,2,3 each can be any combination of the above CLD_status1_A/B,2_A/B status signals. These three independently programmable status signals are supposed to control the motion thresholds for three motion paths, the viz.Low freq luma motion path, High freq Luma motion path, Chroma motion path.
It should be noted that the CLD status signals can be either a single or multiple bit wide signal. 
CLD Status1 (Temporal Domain Check)
[0036]Referring to Figure 10, a diagram of a temporal detection block 1010 in the SCD logic block 720 that checks for temporal Chroma characteristics is shown. The temporal detection block 1010 receives the three signals F0, F1 and F2 and a threshold input 1012. The temporal detection block 1010 checks for temporal Chroma characteristics by analyzing the Chroma amplitude across two frames and then across one frame. In an alternative embodiment, the Chroma amplitude can be checked based on temporal sign/polarity. The output of the temporal detection block 1010 is designated as CLD_Status1 A, indicative of the outcome of the temporal check performed by the temporal detection block 1010. CLD_Status1 A is therefore Chroma amplitude based.  
Referring to Figure 11, a diagram illustrating the temporal detection block 1110 in the SCD logic block 720 is shown. The temporal detection block 1110 includes three band pass filters (BPF) 1112, 1114, and 1116 which receive the signals F0, F1 and F2 respectively. The outputs of the three BPFs 1116, 1114 and 1112 are provide to three sets of delay elements designated (D1, D2, D3 and D4), (D5, D6, D7 and D8), and (D9, D10, D11 and D12) respectively. The outputs of the delay elements D1 through D12 are provided to logic block 1118 which generates the output CLD Status1_B. If the sample sign is the same across two frames and opposite across one frame, then the output CLD Status1_B is True.  The CLD Status1_B is therefore temporal polarity based. 
CLD Status2 (Spatial Domain Check)
Referring to Figure 12, a diagram illustrating a detection block 1210 that checks for spatial Chroma characteristics is shown. This block checks for Chroma characteristics spatially, by looking at four adjacent samples in the 4fsc locked video stream and checks for the Chroma amplitude and Sign of the four samples in the window. The detection block 1210 includes a bandpass filter (BPF) 1212 that receives a composite video signal (e.g., F2). The output of the BPF 1212 is proved to four delay elements D1, D2, D3 and D4 respectively. The output of delay elements D1 and D3 are added by a summation device 1214 and the output of delay elements D2 and D4 are added by summation device 1216 respectively. The output of the two summation devices 1214 and 1216 are rectified and compared with a threshold (THR) at logic block 1218. The threshold THR is a value stored in a controllable register and is set by the user.  The output of the logic block 1218 is a logic one if both the outputs from the summation devices 1214 and 1216 are less than the THR. Otherwise, the output is low. Another logic block 1220 receives the outputs from delay elements D1 through D4. The logic block 1220 checks the alternative samples received by the delay elements D1 through D4. If the alternative samples have opposite signs, then the output of logic block 1220 is a logic one. Otherwise, the output is zero. If both the outputs of the logic blocks 1218 and 1220 are a logic one, then the output of a logic block 1222 is also high. If one or both of the inputs to logic block 1222 are low, then the output is low. Finally, in logic block 1126, if the output of logic block 1222 is a logic one ,then stretch this status to four samples wide else no stretch. The output of the detection block is CLD status2_A, which is indicative of the chroma luma status of the current line in the spatial domain. If the status is one, then the CLD status2 is considered the chroma status. Otherwise it is considered the luma status. The block 1218 is a compare circuit which compares the input rectified chroma amplitude difference signals with the user programmable threshold THR. The block 1220 checks the sign of the alternate samples for opposite polarity (i.e. checks the signs of the D1 and D3 samples for opposite polarity and also the signs of D2 & D4 samples for opposite polarity. If true, a logic one is output. The block 1222 is a logical AND circuit. The block 1126 is similar to Fig-19 flip-flop section, which does the signal stretch if the status is logic one.
[0037]The CLD_status2 can also be based on the adjacent line Chroma characteristics check. Referring to Figure 13, another detection block 1310 for detecting line Chroma characteristics is shown.. The detection block 1310 includes three bandpass filters (BPFs) 1312, 1314 and 1316 configured to receive three line delayed samples L1, L2 and L3 respectively. Each of the delayed line samples L1, L2 and L3 are delayed line samples from the same field. The outputs of the three BPFs 1312, 1314 and 1316 are provided to three sets of delay elements (D1, D2, D3 and D4), (D5, D6, D7 and D8) and (D9, D10, D11 and D12) respectively. A logic block 1318 is configured to receive the outputs of the delay elements D1 through D12. 
[0038]The output of the logic block 1318 is a logic one if the sample sign is the same across two lines and opposite across one line. In other words, if the sample sign across two lines is same, (i.e. the current sample and the two line delayed sample are both positive or both negative samples) and opposite across one line (i.e. the current sample and the one line delayed sample have opposite signs). This is because after the 4fsc composite video signal is bandpass filtered, the output of the BPF is signed 4fsc samples.
[0039]Referring to Figure 14, a logic block that mixes the status signals Cld-status1 A,B and Cld-status2_A,B is shown. The logic block 1410 generates three status outputs Final_cld_status_1, Final_cld_status_2, and Final_cld_status_3 from the received inputs and a Chroma/Luma control signal. The three status output signals Final_cld_status_1, Final_cld_status_2, and Final_cld_status_3 can each be independently set to any combination of the input signals Cld-status1 A,B and Cld-status2_A,B. The three output status signals are each capable of controlling three different motion path threshold controls, such as the low frequency motion path, the high frequency Chroma motion path, and the two frame motion path for example.  The logic block 1410 is a programmable mixer which performs a number of different mixing functions. For example, the cld_status_1 output can be derived from the following: (i) the Logical AND of CLD_Status1_A AND CLD_Status1_B; (ii) the Logical AND of CLD_status1_A AND CLD_status2_A; (iii) the Logical AND of CLD_status2_A AND CLD_status2_B; or (iv) the Logical AND of CLD_status1_A,B and CLD_status2_A,B. In addition, each of the above combinations of inputs can be combined with a Logical OR instead of the Logical AND operation. Finally, the outputs of the final_cld_status_1, final_cld_status_2, and final_cld_status_3 signals can be individually set to be either a logic one or logic zero respectively. 
The Variable Threshold Logic Block
[0040]FIG. 15 shows a schematic block diagram of the variable threshold logic block (710).  As can be seen in FIG. 15, the composite video signal comes in, and a current pixel (Pn) is selected, for which variable thresholds are to be determined.  The logic compares the current pixel (Pn) with a previous pixel (Pn-1) and a next pixel (Pn+1) in the horizontal direction, and selects the maximum difference, as was described above.  This difference describes the detected maximum slope amplitude.  A corresponding determination is also made in the vertical direction in the Vertical Difference Evaluation block by selecting the current pixel (Pn) for a current line, and the pixel in the same position in a previous line and a next line, respectively.  Once the maximum horizontal and vertical slopes, respectively, have been determined, a set of threshold values for the current pixel is generated.  The threshold values are linearly proportional to the detected slope value.  The proportionality constant can be varied.  In some implementations the threshold values can be non-linear with respect to the detected slope value.  Also, minimum and maximum clipping functions can be programmed to act on the calculated thresholds so that the final threshold values can be programmed to have some minimum thresholds or be programmed not to exceed some upper limit.  In one implementation, the variable threshold logic block (710) can determine threshold values for several adjacent frames, such as F2, F1 and F0 and determine the final threshold value to be the maximum or minimum value determined for the respective frames.
[0041]The variable threshold logic helps in removing false motion because of pixel value variations at signal edges due to sampling clock jitter / variations.  The higher the signal edge, the larger the variation will occur for the same amount of jitter.  Therefore, the pixels that are located on a steeper slope should have a higher threshold value.  At the same time, at these edges the motion value is high, so the threshold will not mask the real motion.  The variable threshold is generated by taking a percentage, for example, 10 % of the slope that the pixel is located on.  This percentage is further adaptively determined based on the color burst variance measures (that is, samples that are two frames apart).
[0042]In one implementation, a 3-tap horizontal window is combined with a 3-tap vertical window to form a 5-tap adaptive threshold window.  FIG. 16 shows an example of such a 5-tap adaptive threshold window.  The current pixel under threshold determination is located in the middle of the respective windows.  The absolute difference of the current pixel and the adjacent pixels are determined and the maximum difference among the determined differences is determined to be the slope.  For example, in FIG. 16, the current pixel value Pn is compared with the values 1, 2, 3 and 4, respectively, which are the values of the surrounding pixels, and the maximum difference is taken as the final slope from which the threshold is derived for the pixel Pn.  The percentage value is made adaptive based on luma/chroma pixel values, for example, x% or y% based on chroma/luma detection.
[0043]In one implementation a horizontal threshold value is computed in accordance with the following expression:
Vthr(Horizontal) = [[Max{|Pn-(Pn-1)|, |Pn-(Pn+1)|}] * (Programmable attenuation)] + Programmable DC threshold (min level)
[0044]In one implementation, the decoder can detect a synch edge or color burst regions and determine their motion variance, for example, by using firmware.  This detected variance, which can be for one frame motion or two frame motion, can be used to program the linear percentage threshold value, that is the programmable threshold gain.  The programmable variable threshold percentage gain can, additionally, be adapted based on detected chroma/luma.  The threshold logic also has a programmable minimum DC offset.  The max clipping logic clips the output level to the upper limit value if the threshold crosses the programmed upper limit value.  The same logic has also been put in the vertical domain, i.e., across lines.  As can be realized by one skilled in the art, the threshold percentage and the DC offset for horizontal and vertical taps can be separately programmed.  Hence, since line memories are required for vertical logic, only the horizontal logic can be kept, unless the 2D-logic line memories can be shared.  Finally, as can be seen in FIG. 9, the variable threshold value is subtracted from the motion value in the motion detection logic block (730) to generate a motion_out value.
Chroma/Luma Detect Logic
[0045]The chroma / luma detect logic block (810) of FIG. 15 coarsely detects the chroma / luma signals by checking for chroma characteristics/signature based on two factors.  The first factor is based on 4fsc sampling.  If the pixel under investigation is part of a chroma cycle, then every alternate sample should be nearly equal in magnitude, but be opposite in sign.  After rectification, the absolute difference of adjacent pixels among the four chroma pixels should be nearly the same.  The second factor is a chroma amplitude check.  If the one-frame difference is greater than the two-frame difference for still images, then chroma is detected, and otherwise the pixel is not a chroma pixel.
[0046]Based on these two checks, it can be determined whether the pixel under decoding is on the chroma cycle or on the luma signal.  Further, based on this determination, the variable threshold percentage is decided differently for chroma/luma pixels, for example, as 30% for luma and 10% for chroma.  It should be noted that the threshold percentage (gain) and the DC offset min and max clip values are independently programmable for each motion path.
[0047]A more detailed view of the different parts of the chroma / luma detect logic (810) is shown in FIGs. 17-20.  FIG. 17 shows the logic for the temporal chroma amplitude check, which checks the one-frame and two-frame differences, respectively, and outputs a first chroma/luma status value of one or zero, where a value of one represents chroma.  FIG. 18 shows the logic for the 4fsc spatial sampling check, which checks whether every alternate sample is nearly equal in magnitude, but opposite in sign, and outputs a second chroma/luma status value of one or zero, where a value of one represents chroma.  FIG. 19 shows a more detailed view of the chroma sample compare block of FIG. 18, where all the four flip-flops are set to one if chroma is detected.  Finally, FIG. 20 shows how the first and second chroma/luma status values are compared to generate a final chroma/luma status value that is used by the variable threshold logic block (710).
Adaptations for PAL
[0048]PAL (Phase Alternating Line) is a video standard used, for example, in Europe, and differs from the NTSC standard in a number of ways.  For the purpose of this present application, the most significant difference is that the sub-carrier is out of phase by 180 degrees across two frames, and not across one as in NTSC.  Consequently, the sub-carrier is in phase every four frames.  For PAL, the 3D chroma signal is generated by subtracting video signals that are two frames apart.  The chroma motion is detected by using current, one-frame and two-frame delayed signals (i.e., the F2, F1, and F0 taps).
[0049]FIG. 21 shows a schematic block diagram for detecting low frequency motion for PAL and is analogous to the detection of low frequency motion for NTSC, which was described above with respect to FIGs. 4A and 4B, except that for PAL only a two-frame difference is used.
[0050]FIG. 22 shows a schematic block diagram for detecting chroma motion for PAL, and is analogous to the detection of chroma motion for NTSC, which was described above with respect to FIGs. 5A and 5B, except that for PAL the F0 and F2 signals are added and clipped, instead of subtracted.
[0051]FIG. 23 shows a schematic block diagram for detecting M5_P luma motion for PAL only.  It should be noted that the logic depicted in FIG. 18 only gives proper motion for luma only regions.  If the logic of FIG. 18 is used on colored regions, large false motions will result.  The M5_P motion will be explained in further detail below.
[0052]FIG. 24 shows a schematic block diagram for detecting M6_P luma motion for PAL only.  It should be noted that the logic depicted in FIG. 19 only gives proper motion for luma only regions.  If the logic of FIG. 19 is used on colored regions, large false motions will result.  The M6_P motion will be explained in further detail below.
[0053]FIG. 25 shows a schematic block diagram for detecting PAL motion.  The PAL1 signal, which is the maximum of signals M5_P, M6_P, and M3_NP obtained as shown in FIGs. 23, 24 and 5A, respectively, is used to detect the full range of luma motion.  The PAL2 signal, which is the maximum of signals M1_NP, M2_NP, M3_P, M4_NP, and M8_P obtained as shown in FIGs. 4A, 21, 6A and 22, respectively, is used to detect chroma motion and low frequency luma motion.  The PAL motion is determined to be the minimum of PAL1 and PAL2.
[0054]As can be seen in FIG. 25, the M8_P and M4_P PAL motion paths have mask logic (M8 Mask) that eliminates false motion generated for high frequency colored still regions.  The M8 Mask logic is required because the chroma signal does not cancel by two-frame addition for high frequency colored regions.  The chroma signal contains luma near the sub-carrier frequency, which causes the video signal to be not exactly 180 degrees out of phase across two frames and results in false motion.  Thus, the M8 Mask logic masks false motion for still high frequency colored regions, and also false motion due to chroma color transitions.  A more detailed view of the M8 Mask logic can be seen in FIG. 28.  As can be seen in FIG. 28, the M8 Mask logic receives the following inputs: M1_NP, M2_NP, M3_P, M4_NP, M5_P, M6_P, M8_P, F2, F1 and F0, CLD STATUS, M8 Mask En, and M8_Mask_threshold_control_regs.  The M8 Mask logic examines   signal characteristics, such as spatial chroma signature, temporal chroma signature, low frequency motion, chroma signal polarity across F2, F1, and F0, and the average value of a 4-sample window across F2, F1 and F0, and generates a mask signal (M8_Mask).  In the implementation shown in FIG. 28, stretch/expansion logic is also provided for the M8_Mask signal before the mask signal is further processed by the PAL motion detection block.
[0055]In one implementation, there is also a small mask logic provided for the NTSC modes, when one frame chroma is used.  When one frame chroma motion is used, false motions may be generated by the one frame chroma motion circuit due to the way the composite signal is formed.  The mask logic detects and masks these false motions.
[0056]FIG. 26 shows a schematic block diagram of how the 3D chroma signal is generated.  As can be seen in FIG. 21, for PAL the 3D chroma generation is done using frames F2 and F0, whereas for NTSC, the 3D chroma generation is done using frames F2 and F1.  There is also a bypass option for the 3D chroma band pass filter. In one implementation, the default is to use the bypass option, so that we full bandwidth is used for the chroma signal.  However, if for some reasons the large bandwidth creates artifacts, such as chroma overshoots, for example, the low frequency motion can be disabled by enable the band pass filter on this path.
[0057]Finally, FIG. 27 shows a schematic block diagram of the final motion determination for a combined NTSC / PAL system.  The NTSC motion is the maximum of the M1_NP, M2_NP, M3_NP and M4_NP signals, as described above with respect to FIG. 7.  The PAL motion signal is generated as described above with respect to FIG. 25.  Based on an NTSC/PAL mode detection signal either the NTSC_MOTION or the PAL_MOTION signals is selected.  The selected motion signal is then filtered in a 3-tap median filter to remove spikes, and is finally clipped to 5 bits such that the motion signal has a maximum value of 16.  The motion signal is then input to the blender (110) of FIG. 2, which combines the 2D and 3D decoding as described above.
[0058]The invention can be implemented in digital electronic circuitry, or in computer hardware, firmware, software, or in combinations of them. Apparatus of the invention can be implemented in a computer program product tangibly embodied in a machine-readable storage device for execution by a programmable processor; and method steps of the invention can be performed by a programmable processor executing a program of instructions to perform functions of the invention by operating on input data and generating output. The invention can be implemented advantageously in one or more computer programs that are executable on a programmable system including at least one programmable processor coupled to receive data and instructions from, and to transmit data and instructions to, a data storage system, at least one input device, and at least one output device. Each computer program can be implemented in a high-level procedural or object-oriented programming language, or in assembly or machine language if desired; and in any case, the language can be a compiled or interpreted language. Suitable processors include, by way of example, both general and special purpose microprocessors. Generally, a processor will receive instructions and data from a read-only memory and/or a random access memory. Generally, a computer will include one or more mass storage devices for storing data files; such devices include magnetic disks, such as internal hard disks and removable disks; magneto-optical disks; and optical disks. Storage devices suitable for tangibly embodying computer program instructions and data include all forms of non-volatile memory, including by way of example semiconductor memory devices, such as EPROM, EEPROM, and flash memory devices; magnetic disks such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM disks. Any of the foregoing can be supplemented by, or incorporated in, ASICs (application-specific integrated circuits).
[0059]To provide for interaction with a user, the invention can be implemented on a computer system having a display device such as a monitor or LCD screen for displaying information to the user.  The user can provide input to the computer system through various input devices such as a keyboard and a pointing device, such as a mouse, a trackball, a microphone, a touch-sensitive display, a transducer card reader, a magnetic or paper tape reader, a tablet, a stylus, a voice or handwriting recognizer, or any other well-known input device such as, of course, other computers.  The computer system can be programmed to provide a graphical user interface through which computer programs interact with users. 
[0060]Finally, the processor optionally can be coupled to a computer or telecommunications network, for example, an Internet network, or an intranet network, using a network connection, through which the processor can receive information from the network, or might output information to the network in the course of performing the above-described method steps.  Such information, which is often represented as a sequence of instructions to be executed using the processor, may be received from and outputted to the network, for example, in the form of a computer data signal embodied in a carrier wave.  The above-described devices and materials will be familiar to those of skill in the computer hardware and software arts.
[0061]It should be noted that the present invention employs various computer implemented operations involving data stored in computer systems.  These operations include, but are not limited to, those requiring physical manipulation of physical quantities.  Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated.  The operations described herein that form part of the invention are useful machine operations.  The manipulations performed are often referred to in terms, such as, producing, identifying, running, determining, comparing, executing, downloading, or detecting. It is sometimes convenient, principally for reasons of common usage, to refer to these electrical or magnetic signals as bits, values, elements, variables, characters, data, or the like. It should remembered however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities.
[0062]The present invention also relates to a device, system or apparatus for performing the aforementioned operations. The system may be specially constructed for the required purposes, or it may be a general-purpose computer selectively activated or configured by a computer program stored in the computer. The processes presented above are not inherently related to any particular computer or other computing apparatus. In particular, various general-purpose computers may be used with programs written in accordance with the teachings herein, or, alternatively, it may be more convenient to construct a more specialized computer system to perform the required operations.
[0063]A number of implementations of the invention have been described. Nevertheless, it will be understood that various modifications may be made without departing from the spirit and scope of the invention. For example, the invention has been described above with reference to NTSC and PAL video signals, which are typically used in broadcasting TV signals, but the invention is also equally applicable to component video, such as a video signal that is output from a DVD player.  Accordingly, other embodiments are within the scope of the following claims.
3. BRIEF DESCRIPTION OF THE DRAWINGS
[0064]
FIG. 1 shows a high-level flowchart of a process performed by a decoder in accordance with the invention.
FIG. 2 shows a schematic block diagram of a decoder in accordance with the invention.
FIG. 3 shows a high-level flowchart of the motion detection operation of FIG. 1.
FIG. 4A shows a schematic block diagram of circuitry for detecting low frequency motion.
FIG. 4B shows a flowchart of a low frequency motion detection process.
FIG. 5A shows a schematic block diagram of the logic used to detect high frequency motion for chroma and/or luma.
FIG. 5B shows a flowchart of a motion detection process for high frequency chroma and/or luma. 
FIG. 6A shows a schematic block diagram of the logic used to detect high frequency motion for chroma and/or luma, with less luma motion.
FIG. 6B shows a flowchart of a motion detection process for high frequency chroma and/or luma with less motion.
FIG. 7 shows a schematic block diagram of how NTSC motion is determined.  
FIG. 8 is a schematic block diagram showing the operation of the blender (110) of the decoder in greater detail
FIG. 9 is a schematic block diagram showing the adaptive threshold logic (120) of the decoder.
FIG. 10 is a diagram of a temporal detection block that checks for temporal Chroma characteristics.
FIG. 11 is a diagram illustrating the spatial detection block
FIG 12 is a diagram illustrating a detection block that checks for spatial Chroma characteristics is shown.
FIG 13 is another detection block for detecting line Chroma characteristics.
FIG 14 is a logic block that generates motion control threshold signals. 
FIG. 15 is a schematic block diagram showing the variable threshold logic block (710) of the adaptive threshold logic (120) in greater detail.
FIG. 16 shows an example of a 5-tap adaptive threshold window.
FIG. 17 is a schematic block diagram showing the logic used in the decoder to check the chroma amplitude temporally.
FIG. 18 is a schematic block diagram showing the logic used in the decoder to do a spatial check of the 4fsc sampling.
FIG. 19 is a more detailed view of the chroma sample compare block of FIG. 13.
FIG. 20 shows how a final chroma/luma status value is generated that is used by the variable threshold logic block (710).  
FIG. 21 is a schematic block diagram for detecting low frequency motion for PAL in the decoder.
FIG. 22 is a schematic block diagram for detecting chroma motion for PAL in the decoder.
FIG. 23 is a schematic block diagram for detecting luma motion for PAL in the decoder, according to a first implementation of the invention.
FIG. 24 is a schematic block diagram for detecting luma motion for PAL in the decoder, according to a second implementation of the invention. 
FIG. 25 is a schematic block diagram for the logic that is used to detect PAL motion in the decoder.
FIG. 26 is a schematic block diagram of the logic used to generate the 3D chroma signal in the decoder.
FIG. 27 is a schematic block diagram of the logic used to do the final motion determination for a combined NTSC / PAL system.
FIG. 28 is a schematic block diagram of mask logic used to remove false motions generated for high-frequency colored still regions for PAL signals.
1.  An apparatus, comprising:
a video decoder configured to receive a composite video signal modulated on a sub-carrier signal and having a luma component and a chroma component, the video decoder configured to perform a motion detection operation on the luma component and the chroma component in a plurality of frequency regions respectively; 
variable threshold logic, coupled to the video decoder, and configured to provide a unique threshold value to the video decoder for each of the plurality of frequency regions respectively; and 
a sub-carrier detection logic, coupled to the variable threshold logic, and configured to detect the sub-carrier signal by checking both spatial and temporal characteristics of the sub-carrier detection logic. 
2.  The apparatus of claim 1, wherein the sub-carrier detection logic is configured to receive a first frame, a second frame and a third frame, wherein the first frame is a current frame, the second frame is a previous frame with respect to the current frame, and the third frame is prior to the previous frame.
3.  The apparatus of claim 1, wherein the sub-carrier detection logic is configured to check the temporal chroma component of the sub-carrier signal by analyzing the chroma amplitude across a first frame and a second frame of the sub-carrier signal and then across a single frame of the sub-carrier signal.
4.  The apparatus of claim 1, wherein the sub-carrier detection logic is configured to check the temporal chroma component of the sub-carrier signal by analyzing the temporal polarity of the sub-carrier signal.
5.  The apparatus of claim 2, wherein the sub-carrier detection logic further includes: 
a first band pass filter, a second band pass filter, and a third band pass filter configured to receive the first frame, the second frame and the third frame respectively; and
a first delay element, a second delay element and a third delay element configured to receive outputs from the a first band pass filter, a second band pass filter, and a third band pass filter and configured to store four adjacent samples of the first frame, the second frame and the third frame respectively. 
6.  The apparatus of claim 1, wherein the sub-carrier detection logic further comprises:
a band pass filter configured to receive the composite vide signal;
four delay elements, coupled to the band pass filter, and configured to store four samples from the band pass filter respectively; 
a first summation device configured to sum the stored samples in the first and the third delay elements; 
a second summation device configured to sum the stored samples in the second and fourth delay elements; 
a rectifier element configured to rectify and compare the output of the first and the second summation devices with a threshold voltage; 
a first logic circuit configured to generate a first signal of a first logic state if the outputs of the two summation devices are less than the threshold voltage; 
a second logic circuit configured to generate a second signal of the first logic state if alternate samples from the four delay elements are of the opposite logic state; and 
a third logic circuit configured to generate a chroma status signal if the first signal and the second signal are of the first logic state. 
7.  The apparatus of claim 1, wherein the sub-carrier detection logic is further configured to detect line chroma characteristics of the composite video signal, the sub-carrier detection logic further comprising:
a first band pass filter, a second band pass filter and a third band pass filter configured to receive a first line, a second line and a third line of the composite video signal; 
a first delay element, a second delay element and a third delay element coupled to the first band pass filter, the second band pass filter and the third band pass filter respectively, the first delay element, the second delay element and the third delay element configured to store four line samples each; and
a logic circuit configured to receive the stored line samples in the first delay element, the second delay element and the third delay element and to generate a line chroma signal.
1. ABSTRACT
An apparatus comprising a video decoder configured to receive a composite video signal modulated on a sub-carrier signal and having a luma component and a chroma component, the video decoder configured to perform a motion detection operation on the luma component and the chroma component in a plurality of frequency regions respectively. The video decoder includes variable threshold logic, coupled to the video decoder, and configured to provide a unique threshold value to the video decoder for each of the plurality of frequency regions respectively. The apparatus also includes a sub-carrier detection logic, coupled to the variable threshold logic, and configured to detect the sub-carrier signal by checking both spatial and temporal characteristics of the sub-carrier detection logic.
2. REPRESENTATIVE DRAWING
Fig.1
2006115503.tif 000038
2006115503.tif 000039
2006115503.tif 000040
2006115503.tif 000041
2006115503.tif 000042
2006115503.tif 000043
2006115503.tif 000044
2006115503.tif 000045
2006115503.tif 000046
2006115503.tif 000047
2006115503.tif 000048
2006115503.tif 000049
2006115503.tif 000050
2006115503.tif 000051
2006115503.tif 000052
2006115503.tif 000053
2006115503.tif 000054
2006115503.tif 000055
2006115503.tif 000056
2006115503.tif 000057
2006115503.tif 000058
2006115503.tif 000059
2006115503.tif 000060
2006115503.tif 000061
2006115503.tif 000062
2006115503.tif 000063
2006115503.tif 000064
2006115503.tif 000065
2006115503.tif 000066
2006115503.tif 000067
2006115503.tif 000068