(57)【要約】本発明は、ビデオポストプロセッシングにおけるハードウェアベースのエッジハンドリングの方法及び装置に関する。１実施の形態では、本方法は、出力画素の計算の間に出力画素を計算するために必要とされる少なくとも１つの記憶されていない入力画素の識別を含む。ひとたび識別されると、検出されたエッジハンドリングモードに従って少なくとも１つの記憶されていない入力画素について画素値が生成される。１実施の形態では、記憶されていない入力画素の位置がピクセルフレームの境界の外にある場合に、記憶されていない入力画素の画素値の生成が実行される。たとえば、１実施の形態では、スケーリング動作の出力画素の計算について、フレームの境界は、フレームの境界にある出力画素又はフレーム境界の近くにある出力画素を計算するために必要とされる、左の（トップ）エッジ及び右の（ボトム）エッジを含む。他の実施の形態も記載され、特許請求される。【特許請求の範囲】
【請求項１】
出力画素の計算の間、出力画素を計算するために必要とされる少なくとも１つの記憶されていない入力画素を識別するステップと、
前記記憶されていない入力画素の座標がピクセルフレームの境界の外にある場合、検出されたエッジハンドリングモードに従って、識別された記憶されていない入力画素の画素値を生成するステップと、
を含む方法。
【請求項２】
生成された画素値を入力画素レジスタにロードして、前記出力画素を計算するために必要とされる、Ｎを整数とするＮ個の入力画素を記憶するステップを更に含む、
請求項１記載の方法。
【請求項３】
前記記憶されていない画素の座標がピクセルフレームの境界内にある場合、ピクセルフレームバッファから前記識別された記憶されていない入力画素をロードするステップを更に含む、
請求項１記載の方法。
【請求項４】
前記生成するステップは、
モードレジスタにアクセスして、ゼロベースによるエッジハンドリングモード、レプリケーションによるエッジハンドリングモード及びミラーリングによるエッジハンドリングモードのうちの１つとしてエッジハンドリングモードを識別するステップと、
識別されたエッジハンドリングモードに従って画素値を形成するステップと、
を更に含む請求項１記載の方法。
【請求項５】
前記生成するステップは、
ピクセルロードカウントを判定するステップと、
前記ピクセルロードカウントが定義されたロードカウントに等しい場合、左のピクセルフレームのエッジを検出するステップと、
前記ピクセルロードカウントが前記ピクセルフレームのライン幅よりも大きいか又は等しい場合、右のピクセルフレームのエッジを検出するステップと、
を更に含む請求項１記載の方法。
【請求項６】
前記左のピクセルフレームのエッジを検出するステップは、
１以上の隣接する入力画素レジスタ間の入力画素をシフトするステップと、
最下位の入力画素レジスタにフレームバッファからの入力画素を記憶するステップと、
少なくとも１つの空の入力画素レジスタを識別するステップと、
検出されたエッジハンドリングモードに従って生成された画素値を前記空の入力画素レジスタにロードするステップと、
を更に含む請求項５記載の方法。
【請求項７】
前記右のピクセルフレームのエッジを検出するステップは、
それぞれの隣接する入力画素レジスタ間の入力画素値をシフトして、入力画素レジスタを空にするステップと、
検出されたエッジハンドリングモードに従って生成された画素値を前記空の入力画素レジスタにロードするステップと、
を更に含む請求項５記載の方法。
【請求項８】
前記出力画素の計算は、ビデオスケーリング動作を含む、
請求項１記載の方法。
【請求項９】
前記識別するステップは、
前記出力画素を計算するために必要とされるＮ個の入力画素を決定するステップと、
Ｎを整数として、前記出力画素を計算するために必要とされるＮ個の入力画素のうちの少なくとも１つがＮの入力画素レジスタのうちの入力画素レジスタに含まれていない場合、前記少なくとも記憶されていない入力画素値を検出するステップと、
を含む請求項１記載の方法。
【請求項１０】
前記右のピクセルフレームのエッジを検出するステップは、
前記ピクセルフレームのライン幅を判定するため、ライン幅レジスタにアクセスするステップを含む、
請求項５記載の方法。
【請求項１１】
システムに、
出力画素の計算の間、前記出力画素を計算するために必要とされる１以上の入力画素を検出し、検出された入力画素は、ピクセルフレームの境界の外にある座標をそれぞれ有し、
検出されたエッジハンドリングモードに従ってそれぞれ検出された記憶されていない入力画素の画素値を生成し、
画像処理演算に従って出力画素を計算する、
ようにプログラムする命令を記憶したコンピュータ読み取り可能な媒体を有する製品。
【請求項１２】
前記システムは、
識別された記憶されていない画素の座標がピクセルフレームの境界内にある場合、ピクセルフレームバッファから出力画素を計算するために必要とされる１以上の識別された記憶されていない入力画素をロードし、
Ｎを整数として、前記出力画素を計算するために必要とされるＮ個の入力画素を記憶するため、入力画素レジスタにそれぞれ生成された画素値をロードする、
ように更にプログラムされる請求項１１記載の製品。
【請求項１３】
前記画素値を生成するため、前記システムは、
ピクセルロードカウントを決定し、
前記ピクセルロードカウントが定義されたロードカウントに等しい場合に左のピクセルフレームのエッジを検出し、
前記ピクセルロードカウントが前記ピクセルフレームのライン幅よりも大きいか又は等しい場合、右のピクセルフレームエッジを検出する、
ように更にプログラムされる請求項１１記載の製品。
【請求項１４】
前記左のピクセルフレームのエッジを検出するため、前記システムは、
１以上の隣接する入力画素レジスタの間で入力画素をシフトし、
最下位の入力画素レジスタにフレームバッファからの入力画素を記憶し、
少なくとも１つの空の入力画素レジスタを識別し、
検出されたエッジハンドリングモードに従って生成された画素値を前記空の入力画素レジスタにロードする、
ように更にプログラムされる請求項１３記載の製品。
【請求項１５】
前記右のピクセルフレームのエッジを検出するため、前記システムは、
それぞれ隣接する入力画素レジスタ間の入力画素値をシフトし、入力画素レジスタを空にし、
検出されたエッジハンドリングモードに従って生成された画素値を空の入力画素レジスタにロードする、
ように更にプログラムされる請求項１３記載の製品。
【請求項１６】
複数の入力画素レジスタと、
前記複数の入力画素レジスタに結合されるコントローラであって、出力画素の計算の間、出力画素を計算するために必要とされる前記複数の入力画素レジスタの少なくとも１つの記憶されていない入力画素を識別し、前記記憶されていない入力画素の座標がピクセルフレームの境界の外にある場合、検出されたエッジハンドリングモードに従って、記憶されていない入力画素の画素値を生成するコントローラと、
を有する装置。
【請求項１７】
ゼロベースによるエッジハンドリングモード、レプリケーションによるエッジハンドリングモード及びミラーリングによるエッジハンドリングモードのうちの１つとして、ピクセルフレームの境界の外にある座標を有する入力画素の画素値を生成するエッジハンドリングモードを識別するエッジハンドリングモードレジスタを更に有する、
請求項１６記載の装置。
【請求項１８】
ピクセルフレームのライン幅及びピクセルロードカウントを記憶するライン幅レジスタを更に有する、
請求項１６記載の装置。
【請求項１９】
前記コントローラからの制御信号を受け、右のエッジが検出されたときに生成された画素値で第一の入力画素レジスタをポピュレートするか、前記制御信号に従って前記ピクセルフレームから供給された入力画素値を前記第一の入力画素レジスタにロードする第一のロジックゲートを更に有する、
請求項１１記載の装置。
【請求項２０】
前記第一のロジックゲートは、前記第一の入力画素レジスタを空にするため、それぞれの隣接する入力画素レジスタ間の画素値のシフトに続いて前記第一の入力画素レジスタをロードする、
請求項１９記載の装置。
【請求項２１】
前記複数の入力画素レジスタの１以上に結合される１以上の第二のロジックゲートであって、前記コントローラからの制御信号を受け、左のエッジが検出されたとき前記入力画素レジスタに値をロードするか、隣接の入力画素レジスタ間で値をシフトする１以上の第二のロジックゲートを更に有する、
請求項１９記載の装置。
【請求項２２】
デバイスドライバは前記エッジハンドリングモードレジスタ及び前記ライン幅レジスタにロードする、
請求項１７記載の装置。
【請求項２３】
前記第一のロジックゲートはマルチプレクサであり、前記１以上の第二のロジックゲートはマルチプレクサであり、前記第一のマルチプレクサ及び前記第二のマルチプレクサは、前記コントローラから受信された右のエッジの制御信号と前記コントローラから受信された左のエッジの制御信号のうちの１つに従って入力を選択する、
請求項２１記載の装置。
【請求項２４】
前記コントローラは、入力ピクセルフレームの左エッジ及び右エッジのうちの一方が検出されたとき、入力画素レジスタに生成された画素値をロードするための制御信号を生成する、
請求項１６記載の装置。
【請求項２５】
前記エッジハンドリングモードレジスタ及び前記ライン幅レジスタにロードする制御プロセッサを更に有する、
請求項１６記載の装置。
【請求項２６】
エンベデッドプロセッサと、
前記プロセッサに結合され、スカラーを含むポストプロセッシングロジックと、
ポストプロセッシングによるビデオフレームを表示する表示装置とを有するシステムであって、
前記ポストプロセッシングロジックは、
複数の入力画素レジスタと、
出力画素の計算の間、入力画素レジスタに記憶されておらず、出力画素を計算するために必要とされる少なくとも１つの入力画素を識別し、前記記憶されていない入力画素の座標がピクセルフレームの境界の外にある場合、検出されたエッジハンドリングモードに従って、記憶されていない入力画素の画素値を生成するコントローラとを含む、システム。
【請求項２７】
ディスプレイクラスタに結合されるダイレクトメモリアクセス（ＤＭＡ）バッファと、
システムメモリからの入力画素を前記ＤＭＡバッファにロードするため、メモリコントローラに要求を発するために前記ＤＭＡバッファに結合されるＤＭＡコントローラを更に有する請求項２６記載のシステム。
【請求項２８】
当該システムは、システムオンチップを有する、
請求項２６記載のシステム。
【請求項２９】
当該システムは、オフチップシステムメモリからのデジタルビデオをデコードし、前記ビデオポストプロセッシングロジックにデコードされたデジタルビデオフレームを供給するビデオデコーダを更に有する、
請求項２６記載のシステム。
【請求項３０】
前記エンベデッドプロセッサは、前記エッジハンドリングモードレジスタ及び前記ライン幅レジスタにロードする、
請求項２６記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ビデオポストプロセッシング及びイメージエンハンスメントの分野に関する。より詳細には、本発明は、画像処理におけるエッジハンドリングの装置及び方法に関する。
【背景技術】
【０００２】
現在のデジタルテレビジョン（ＤＴＶ）は、エンコードされたメディア信号のデコードの後であって、デコードされたデジタルビデオフレームの表示の前である、ＤＴＶの表示処理パイプラインにおけるビデオポストプロセッシング（video  post-processing）及び／又はイメージエンハンスメント（image  enhancement）を提供する。ビデオポストプロセッシングの例は、水平及び垂直ビデオスケーリングを含む。ＤＴＶチップにおける水平及び垂直ビデオスケーリングは、ポリフェーズフィルタを使用して実現される。一般に、ビデオスケーリングは、補間／間引きプロセスとして見ることができ、このプロセスは、（スケーリングファクタに依存して）あるセットの入力画素から多数／少数の出力画素を生成することを含む。ポリフェーズフィルタを使用してスケーリングが実現されるとき、それぞれの生成される出力画素は、Ｎの入力画素の関数である。
【０００３】
一般に、Ｎは、スケーリングプロセスを実行するため、ポリフェーズフィルタにより供給されるタップ数を示す整数である。出力画素を生成するために必要とされるＮの入力画素は、たとえば対称なポリフェーズフィルタを使用するとき、一般に出力画素の位置にセンタリングされる。これは大部分の出力画素について機能するが、画素フレームのエッジで問題を提起する。実際に、画素フレームの境界で出力画素を生成するために必要とされる少なくとも１つの入力画素は、存在しない。
【０００４】
例として、７２０水平画素から１９２０画素へのスケーリング（アップスケーリング）を考える。この例におけるタップ数又はＮが９に等しいとする。このタップ数に基づいて、出力画素ゼロを生成するため（画素は０〜１９１９にナンバリングされる）、９の入力画素が必要とされ、ゼロの周りにセンタリングされる。入力画素０〜４が存在するが、画素−４〜−１が存在しない。同様に、出力画素１，２及び３の出力画素の計算は、失った入力画素を有する。失った画素の数は低減し、後続する出力画素が計算されたときに最終的に消失するが、画素フレームの右エッジ（（垂直スケーリングについて）上及び下のエッジ）で問題が再び生じ、すなわち、（７２０ラインの幅の画素フレームについて）入力画素７１９の右への入力画素は存在しない。
【０００５】
この問題に対処するため、幾つかのエッジ処理方法が現在存在する。これらの方法は、画素フレームの周りの余分のエッジ画素をパディングすることを含む。この方法は、レプリケーション（先の例では、画素−４〜−１は全て画素０の値をとる）；ミラーリング（画素−４〜−１は画素１−４の値をとる）；ゼロベース（画素−４〜−１はシンプルにゼロに設定される）。
【０００６】
先の方法の１つの実現は、ソフトウェア又は他のハードウェアユニットによるこれらパディングされた画素の実際の形成、これらを、スケーリング動作のパフォーマンスの前にメモリに記憶することを含む。結果として、ビデオスケーラは、完全なパディングされた画像を読み取る。多くの場合、ハードウェアベンダはエッジハンドリング問題を全体として無視し、画素フレームエッジでのスケーリングの品質を妥協することがある。
【発明の開示】
【課題を解決するための手段】
【０００７】
以下の説明では、ロジックインプルメンテーション、信号及びバスのサイズ及び名前、システムコンポーネントのタイプ及び相互関係、及びロジックパーティション／インテグレーションの選択のような様々な特定の詳細が、より全体的な理解を提供するために述べられる。しかし、当業者にとって、本発明はかかる特定の詳細なしに実施される場合があることを理解されるであろう。他の例では、制御構造及びゲートレベル回路は、本発明を曖昧にすることを避けるために詳細に示されていない。当業者であれば、包含される記載により、不適切な実験なしに、適切なロジック回路を実現することができるであろう。  
本発明の様々な実施の形態は、添付図面の図において、限定的なものではなく、例示により説明される。
【発明を実施するための最良の形態】
【０００８】
［システム］  
図１は、１実施の形態に係る、エッジハンドリングロジック１００を説明するブロック図である。１実施の形態では、エッジハンドリングロジック１００は、ビデオポストプロセッシング及び／又はイメージエンハンスメントのような画像処理の間にエッジハンドリングを実行する。１実施の形態では、エッジハンドリングロジック１００は、たとえばディスプレイクラスタのような、ビデオポストプロセッシングロジックの水平及び垂直スカラーに組み込まれる。本明細書で記載される実施の形態は、エッジハンドリングロジックの水平及びビデオスカラーへの組み込みに限定されず、他のタイプのポストプロセッシングロジックで使用することができる。例は、デジタルテレビジョン（ＤＴＶ）の表示処理パイプライン、コンピュータシステム又は他のディスプレイ装置内の統合されたグラフィックスコントローラを有するシステムチップセットのディスプレイエンジンにおける使用を含む。
【０００９】
象徴的に、エッジハンドリングロジック１００は、コントローラ１１０を含み、このコントローラは、入力ロジックゲート１２０及び第二のロジックゲート１３０（１３０−１〜４）に、入力画素レジスタ１４０（１４０−１〜９）をポピュレートするように指示するためにプログラムされるか、ハードワイヤされる。図１を参照して例示されるように、エッジハンドリングロジック１００は、ビデオポストプロセッシングロジックの水平／垂直スカラーで動作する。しかし、本明細書で記載される実施の形態は、垂直又は水平スカラーで実現されるエッジハンドリングロジック１００に限定されず、ピクセルフレームを処理して、たとえば図２に示されるようにピクセルフレームの境界の外にある入力画素から出力画素を生成するためにピクセルフレームを処理する他のビデオポストプロセッシング及び画像処理技術に適用することができる。
【００１０】
図２は、複数の入力画素１６６（Ｚ0,0...,Ｚi,j）を含むピクセルフレームバッファ１５０を説明するブロック図である。例示されるように、ピクセルフレームバッファ１５０は、左エッジ１５２、右エッジ１５４、トップエッジ１５６及びボトムエッジ１５８を含む。これに応じて、１実施の形態では、エッジハンドリングロジック（ＥＨＬ）１００（図１）は、ＤＴＶ処理パイプラインでスケーリングを実行するために使用され、ＥＨＬ１００は、ビデオポストプロセッシングロジックの水平スカラー内で実現される場合がある。
【００１１】
先に記載されたように、ＤＴＶチップにおけるビデオスケーリングは、ポリフェーズフィルタを使用して一般に実現される。ビデオスケーリングは、（スケーリングファクタに依存して）入力画素のセットから多数／少数の出力画素を生成することを含む、補間／間引きプロセスとして見ることができる。スケーリングがポリフェーズフィルタを使用して実現されたとき、それぞれの出力画素は、Ｎの入力画素の関数として生成され、Ｎはポリフェーズフィルタのタップ数である。使用されるＮの入力画素は、たとえば図２を参照して例示されるように、出力画素と同じ位置に集中される。
【００１２】
入力画素Ｚ0,0の位置に対応する出力画素１６０がピクセルフレーム１５０から生成されるとし、出力画素１６０を計算するために必要とされる入力画素は、利用可能ではない。図２に例示されるように、Ｎの値が９に等しいものとし、出力画素１６０を生成するため、出力画素１６０の周りに集中される９つの入力画素が必要とされる。９つの入力画素が必要とされるが、５つの入力画素のみが、特に利用可能であり、画素−Ｚ0,4，−Ｚ0,3，−Ｚ0,2，−Ｚ0,1は、出力画素１６０がピクセルフレーム１５０の左エッジにあるので利用可能でない。この問題は、ピクセルフレーム１５０の右エッジにある出力画素１６２の出力画素の計算の間に生じ、出力画素１６４は、ピクセルフレーム１５０のボトムエッジ１５８にある。
【００１３】
ピクセルフレームのエッジにあるか、該エッジの近くにある出力画素を計算するため、３つのエッジハンドリング方法が存在する。これらの方法のそれぞれは、ピクセルフレーム１５０の外側エッジ１７０の周りに余分のエッジ画素をパディングすることを含む。外側エッジ１７０のディメンジョン（Ｄ）１７８（１７８−１〜４）は、以下に従って決定される。
Ｄ＝（Ｎ−１）／２  Ｎが奇数の場合
Ｄ＝Ｎ／２          Ｎが偶数の場合。
【００１４】
出力画素１６０を計算するため、ゼロベースによるエッジハンドリング方法は、ピクセルフレームバッファ１５０の外側エッジ１７０をゼロ値１７２でパディングする。ピクセルフレーム１５０の外側エッジ１７０をパディングすることで、出力画素１６０を計算するために必要とされる９つの入力画素が利用可能である。認識されるように、出力画素１６０（Ｚ0,1，Ｚ0,2，Ｚ0,3）の右への出力画素の水平スケーリングは、失った入力画素を提供するためエッジハンドリング方法を必要とする。他の技術はレプリケーションを含み、この場合、参照符号１７４で例示されるように、フレームエッジでの画素の値が繰り返される。ミラーリング方法では、参照符号１７６で例示されるように、入力画素の値がミラーされる。
【００１５】
図１を参照して、例示される実施の形態では、エッジハンドリングロジック１００は、９タップのポリフェーズフィルタについて提供される。１実施の形態では、入力画素レジスタ１４０は、ポリフェーズフィルタのタップ数Ｎに対応する９つの入力画素をホールドする。１実施の形態では、それぞれの画素は、ルミナンス（Ｙ）及びクロミナンス（Ｃｒ／Ｃｂ）に対応する８／１０／１２ビットの量である。例示されるように、コントローラ１１０は、エッジハンドリングモードを提供するため、エッジハンドリングモード（ＥＨＭ）レジスタ１１６を含む。同様に、コントローラ１１０は、ライン幅レジスタ１１８に結合され、このレジスタは、ピクセルフレームの現在のラインのライン幅を提供する。１実施の形態では、ＥＨＡレジスタ１１６及びライン幅レジスタ１１８は、エッジハンドリングモード及びピクセルフレームの現在のラインのライン幅を提供するため、デバイスドライバ又は特権化されたソフトウェアのような他のソフトウェアのような、たとえばコントロールソフトウェアによりポピュレートされる。
【００１６】
１実施の形態では、信号１１４は、第二のロジックゲート１３０に供給される左（トップ）エッジ制御信号である。１実施の形態では、信号１１２は、右（ボトム）エッジ制御信号であり、この信号は、第一のロジックゲート１２０に供給される。ライン幅に基づいて、検出されたエッジハンドリング方法に依存して、実行される１実施の形態では、コントローラ１１０は、現在の出力画素がピクセルフレームの境界にあるか、又は該境界の近くにあるかを判定する。１実施の形態では、コントローラ１１０は、制御信号１１２及び１１４にアサートし、入力画素レジスタ１４０をもつ入力画素のストレージに、ビデオポストプロセッシング及び／又はイメージエンハンスメント動作に従って出力画素の計算をイネーブルにするように指示する。
【００１７】
１実施の形態では、第一のロジックゲート１２０は、たとえば、入力画素レジスタ１４０−１〜３，１４０−６及び１４０−８からフィードバック信号１２４（１２４−１〜５）と同様に入力画素データ信号（Ｄａｔａ−ｉｎ）１２２を受け、ピクセルフレームの右エッジのハンドリングを容易にするマルチプレクサ（ＭＵＸ）である。通常の動作状態の下で、コントローラ１１０は、ＭＵＸ１２０に、ｄａｔａ−ｉｎ１２２からの入力画素で入力画素レジスタ１４０−１をポピュレートするように指示する。あるラインにおける残りの画素について、ＭＵＸ１２０は、様々な入力画素レジスタ１４０内の値がひとたびシフト、たとえば右シフトされると入力レジスタ１４０−１に記憶される、ｄａｔａ−ｉｎ１２２をシンプルに選択する。右エッジが検出されたとき、コントローラ１１０は、レジスタ１１６からの検出されたエッジハンドリングモードに依存して、ＭＵＸ１２０へのフィードバック入力１２４のうちの１つを選択する。
【００１８】
１実施の形態では、第二のロジックゲート１３０もマルチプレクサ（ＭＵＸ）であり、このＭＵＸは、コントローラ１１０により駆動される信号１１４により制御される。例示されるように、第二のＭＵＸ１３０は、レジスタ１４０−６〜９からデータを選択するために使用される。例示されるように、ＭＵＸ１３０−４は、ゼロベースのエッジハンドリングのために入力ゼロを受け、同様に、ｄａｔａ−ｉｎ１２２、入力画素レジスタ１４０−４及び入力レジスタ１４０−８からの入力を受ける。同様に、ＭＵＸ１３０−３は、入力ゼロと、入力画素レジスタ１４０−１，１４０−４及び１４０−７からの入力を受ける。ＭＵＸ１３０−２は、入力ゼロを受け、入力画素レジスタ１４０−２，１４０−４及び１４０−６からの入力を受ける。最後に、ＭＵＸ１３０−１は、入力ゼロを受け、入力画素レジスタ１４０−３，１４０−４及び１４０−５からの入力を受ける。
【００１９】
１実施の形態では、第二のＭＵＸ１３０は、左（トップ）エッジでの出力画素の計算を処理するために設けられる。ラインにおける残りの画素について、第二のＭＵＸは、シンプルなシフトレジスタとして動作する。例示されるように、提供される動作は、右シフト動作である。ラインの左エッジで、コントローラ１１０は、制御信号１１４をアサートし、ＥＨＡレジスタ１１６から検出されたエッジハンドリングモードに従って、入力画素レジスタ１４０−６，１４０−７，１４０−８及び１４０−９のロードを指示する。１実施の形態では、図１に例示されるエッジハンドリングロジック１００の動作は、表１及び表２に提供される擬似コードに従って実行される。
【００２０】
【表１】
2008514160.tif 000002
【００２１】
【表２】
2008514160.tif 000003
【００２２】
図１は、ビデオポストプロセッシング動作を実行する９タップのポリフェーズフィルタの実施の形態に係るエッジハンドリングロジック１００を例示しているが、エッジハンドリングロジック１００に関して本明細書で記載される実施の形態は、限定されるものではないが、ビデオポストプロセッシング動作により必要とされる、ポリフェーズフィルタのタップ数Ｎに依存して様々なコンフィギュレーションを含む。同様に、入力ＭＵＸ１２０及び第二のＭＵＸ１３０で例示されたが、出力画素の計算について入力画素を提供するため、様々なエッジハンドリングモードを包含するために更なるＭＵＸが必要に応じて追加される場合がある。
【００２３】
本明細書で記載された実施の形態では、失った入力画素を生成するためのエッジハンドリングは、ポストプロセッシング動作の間に行われるものであって、かつ、ピクセルフレームエッジでの出力画素の計算について失った入力画素を回避するため、ピクセルフレームの周辺で画素を埋める従来の技術により実行されるビデオポストプロセッシングの前にではない。たとえば、図２に示されるように、従来の技術は、ポストプロセッシングが表示のためにピクセルフレームを供給する前に、失った画素でデコードされたピクセルフレームをパディングする。
【００２４】
図３は、図１のエッジハンドリングロジック（ＥＨＬ）１００を含む、水平スカラー（Ｈスカラー）２８４と垂直スカラー（Ｖスカラー）２８６を有するポストプロセッシングロジック２８０を含むシステムオンチップ（ＳＯＣ：System  On  Chip）２００を例示するブロック図である。象徴的に、システム２００は、メモリコントローラ２９２及びＤＭＡコントローラ２９０に結合される埋め込まれた制御プロセッサ２０２を含む。１実施の形態では、ポストプロセッシングロジック２８０は、水平スケール（Ｈスカラー）２８４及び垂直スカラー（Ｖスカラー）２８６と同様に、雑音補正ブロック２８２を含む。１実施の形態では、ＭＰＥＧ（Motion  Picture  Experts  Group）ブロック２０６は、たとえば受信されたデコードされたデジタルビデオフレームのスケーリング又はイメージエンハンスメントを実行するポストプロセッシングロジック２８０のために、デコードされたデジタルビデオフレームをフレームバッファ２０８に供給する。１実施の形態では、ＭＰＥＧブロック２０６は、外部のシステムメモリ２９４から受信されたエンコードされたビデオ信号から、デコードされたビデオフレームを発生する。
【００２５】
１実施の形態では、ポストプロセッシングロジック２８０は、エッジハンドリングモード及び現在のピクセルフレームラインのライン幅を判定するため、制御プロセッサ２０２又はソフトウェアプリセットアップによる。１実施の形態では、制御プロセッサ２０２は、アセンブリ言語コードでプログラムされる場合があるエンベデッドプロセッサである。代替的な実施の形態では、デバイスドライバは、制御プロセッサ２０２がＥＨＭレジスタ１１６及びライン幅レジスタ１１８をポピュレートするのを支援し、たとえばアナモフィックスケーリング動作をイネーブルにするため、入力画素レジスタ１４０をポピュレートするようにコントローラ１１０に指示するために提供される。ひとたびポストプロセッシングが実行されると、出力画素フレームは、ディスプレイ２９６に供給される。記載される実施の形態では、ディスプレイ２９６は、デジタルディスプレイインタフェース、ＤＴＶユニット等をもつフラットパネルディスプレイのような陰極線管（ＣＲＴ）モニタ、デジタルモニタである。
【００２６】
１実施の形態では、たとえば、ポストプロセッシングロジック２８０の毎秒３０フレーム帯域幅の要件への準拠を提供するため、オンチップダイレクトメモリアクセス（ＤＭＡ）コントローラ２９０は、ＤＭＡ要求をオンチップメモリコントローラ２９２に発し、このコントローラは、ピクセルフレームをオフチップシステムメモリ２９４からＤＭＡコントローラ２９０に供給する。次いで、ピクセルフレームは、ファーストイン、ファーストアウト（ＦＩＦＯ）バッファ等のようなフレームバッファ２０８に供給される。１実施の形態では、かかる初期のフレームは、ＭＰＥＧブロック２０６に供給され、このブロックは、受信されたフレームをデコードされたデジタルビデオ信号フレームにデコードし、係るフレームをポストプロセッシングロジック２８０にフレームバッファ２０８を介して供給する。
【００２７】
１実施の形態では、システム２００は、高精細テレビジョン（ＨＤＴＶ）信号処理を提供するため、ＤＴＶ等のディスプレイパイプラインと同様に、セットトップボックス又はテレビジョンに組み込まれる。かかる実施の形態では、システムメモリ２９４は、セットトップボックス又はテレビジョンシステムにより供給される。しかし、ＳＯＣ２００は、たとえばホームパーソナルコンピュータ（ＰＣ）、デスクトップ又はノートブックユニット、ハンドヘルドデバイス等といった、イメージ又はビデオ信号の表示を提供する他のシステム内で提供される。
【００２８】
１実施の形態では、ＳＯＣ２００は、たとえば、ピクセルフレームの境界でエッジハンドリングを必要とする、デコードされたイメージ又はビデオフレームの表示の前に、ポストプロセッシング又はイメージエンハンスメントを必要とするコンピュータシステム又はディスプレイ装置のグラフィックコントローラ又はチップセットのディスプレイエンジンで実現される。ＳＯＣ２００は、エッジハンドリングモードに従ってピクセルフレームバッファの外側の境界線をパターン化し、メモリ内の更なるオーバヘッド及びデータストレージを必要とする、従来技術の制約を回避する。１以上の実施の形態を実現する方法は、ここで記載される。
【００２９】
［動作］  
図４は、１実施の形態に係る、ビデオポストプロセッシング及び／又はイメージエンハンスメントのハードウェアベースのエッジハンドリングの方法３００を例示するフローチャートである。プロセスブロック３１０で、出力画素の計算は、ビデオポストプロセッシング及び／又はイメージエンハンスメント動作に従って始動される。プロセスブロック３１２で、出力画素を計算するために必要とされる少なくとも１つの入力画素が入力画素レジスタに記憶されていないかが判定される。かかる記憶されていない入力画素が検出された場合、プロセスブロック３２０で、記憶されていない入力画素が画素フレーム境界の外側にあるかが判定される。
【００３０】
１実施の形態では、プロセスブロック３５０で、検出されたエッジハンドリングモードに従って記憶されていない入力画素について画素値が生成される。１実施の形態では、入力画素の生成は、たとえば図１のエッジハンドリングロジック１００のコントローラ１１０といったコントローラにより実行される。ひとたび画素値が生成されると、画素値が入力画素レジスタにロードされる。出力画素を計算するために必要とされる多数の入力画素が記憶されておらず、ピクセルフレームメモリの外にある場合、出力画素を計算するために必要とされる入力画素数Ｎが記憶されるまで、プロセスブロック３５０及び３５２が繰り返される。さもなければ、プロセスブロック３６０で、記憶されていない入力画素は、ピクセルフレームバッファから入力画素レジスタ内にロードされる。プロセスブロック３７０は、出力画素が計算される。プロセスブロック３８０で、全ての出力画素が計算されるまでプロセスブロック３１０〜３６０が繰り返される。
【００３１】
図５は、たとえば図３を参照して例示される、ビデオスカラー内のハードウェアベースのエッジハンドリングの方法３３０を例示するフローチャートである。プロセスブロック３３２で、ピクセルロードカウントが決定される。１実施の形態では、ピクセルロードカウントは、たとえば図１のエッジハンドリングロジック１００のライン幅レジスタ１１８のようなライン幅レジスタに従って追跡される。プロセスブロック３３４で、ピクセルロードカウントが定義されたロードカウントに等しい場合、左のピクセルフレームエッジが検出される。１実施の形態では、定義されたロードカウントは、式（１）及び（２）に従って決定される。これに応じて、図２を参照して記載される実施の形態において、定義されたピクセルモードカウントは４に等しい。
【００３２】
プロセスブロック３３４の状態が真であると評価されるとき、プロセスブロック３３６で、１以上の隣接する入力画素レジスタ間の入力画素がシフトされる。プロセスブロック３３８で、ピクセルフレームバッファからの入力画素は、たとえば図１の入力画素レジスタ１４０−１のような最下位の入力画素レジスタ内に記憶される。ひとたびロードされると、プロセスブロック３４０で、少なくとも１つの空の入力画素レジスタが識別される。ビデオポストプロセッシング又はイメージエンハンスメント動作に従って出力画素を計算するため、ピクセルフレームの境界の外にある失った入力画素について生成される値をロードするために、入力画素レジスタの識別が提供される。
【００３３】
プロセスブロック３４２で、ピクセルロードカウントが現在のピクセルフレームラインのライン幅よりも大きいか、又は等しいかが判定される。かかる状態が真であると評価されるとき、プロセスブロック３４４で、それぞれ隣接する入力画素レジスタ間の入力画素値は、入力画素レジスタを空にするためにシフトされる。入力画素レジスタのシフトは、右のピクセルフレームエッジの外にある入力画素について生成される少なくとも１つの値をロードするため、入力画素レジスタを空にする。続いて、制御フローは、図４のプロセスブロック３５０に進む。さもなければ、制御フローは、プロセスブロック３６０に進み、出力画素を計算するために必要とされるそれぞれの入力画素は、入力画素レジスタ又はプクセルフレームバッファのいずれかに含まれる。
【００３４】
１実施の形態では、記憶されていない入力画素の識別は、出力画素を計算するために必要とされる入力画素を決定することで実行される。ひとたび決定されると、１実施の形態では、図１のコントローラ１１０は、出力画素を計算するために必要とされる入力画素の何れかが入力画素レジスタに記憶されていないかを判定する。かかるケースで、出力画素を計算するために必要とされる少なくとも１つの記憶されていない入力画素レジスタが検出される。その後、記憶されていない入力画素がピクセルフレームの境界の外にある場合、コントローラは、エッジハンドリングを提供するため、ビデオポストプロセッシング動作の前に、ピクセルフレームの境界の外の入力画素をパディングする、従来の技術を使用するよりはむしろ、検出されたエッジハンドリングモードに従って画素値を生成する。
【００３５】
図６は、開示された技術を使用したデザインのシミュレーション、エミュレーション及びファブリケーションの各種表現又はフォーマットを例示するブロック図である。デザインを表現しているデータは、多数の方式でデザインを表現する。はじめに、シミュレーションで有効であるように、ハードウェアは、設計されたハードウェアがどのように実行することが期待されるかに関するコンピュータ化されたモデルを本質的に与えるハードウェア記述言語又は別の機能記述言語を使用して表現される。ハードウェアモデル４１０は、コンピュータメモリのような記憶媒体４００に記憶され、これにより、意図されたように確かに機能するかを判定するため、ハードウェアモデル４１０に特定のテストスーツを適用するシミュレーションソフトウェア４２０を使用してモデルがシミュレートされる。幾つかの実施の形態では、シミュレーションソフトウェアは、媒体に記録、捕捉又は含まれない。
【００３６】
任意のデザインの表現では、データはコンピュータ読み取り可能な媒体の形式で記憶される場合がある。かかる情報を伝送するために変調又はさもなければ生成された光学的又は電気的な波４６０、メモリ４５０若しくはディスクのような磁気又は光ストレージ４４０は、コンピュータ読み取り可能な媒体である。これら媒体の何れかは、設計情報を搬送する。用語「搬送“carry”」（たとえばコンピュータ読み取り可能な媒体は情報を搬送する）とは、ストレージ装置に記憶された情報、又は搬送波にエンコード又は変調された情報をカバーする。デザインを記述するビットのセット又は特定のデザインは（搬送波又は記憶媒体のようなコンピュータ読み取り可能な媒体で実施されるとき）、密閉された製品（アーティクル）であるか、更なるデザイン又は製造のために他者により使用される製品である。
【００３７】
［代替的な実施の形態］  
他の実施の形態について、異なるシステムコンフィギュレーションが使用される場合があることが理解される。たとえば、システム２００はシステムオンチップとして構成されるが、他の実施の形態について、シングル又はマルチプロセッサシステム（１以上のプロセッサが上述したプロセッサ２０２に対して構成及び動作において類似する）が、各種実施の形態のハードウェアベースのエッジハンドリングからの利益を受ける。さらに、たとえばサーバ、ワークステーション、デスクトップコンピュータシステム、ゲームシステム、埋め込まれたコンピュータシステム、ブレードサーバ等といった異なるタイプのシステム又は異なるタイプのコンピュータシステムは、他の実施の形態について使用される。
【００３８】
開示された実施の形態及び好適な実施の形態を説明したが、特許請求の範囲に定義される本発明の実施の形態に範囲に包含されつつ、開示された実施の形態に対して変更及び変形がなされる場合がある。
【図面の簡単な説明】
【００３９】
【図１】１実施の形態に係るエッジハンドリングロジックを説明するブロック図である。
【図２】１実施の形態に係る画素フレームの境界でのエッジハンドリングを説明するブロック図である。
【図３】１実施の形態に係る、たとえば図１を参照して説明される、エッジハンドリングロジックを含むシステムを説明するブロック図である。
【図４】１実施の形態に係る、画像処理におけるエッジハンドリングのフローチャートである。
【図５】１実施の形態に係る、画素フレームの境界でのエッジハンドリングの方法を例示するフローチャートである。
【図６】開示された技術を使用して、エミュレーション、シミュレーション及びファブリケーションのフォーマットの各種の設計の表現を例示するブロック図である。
【図１】
2008514160.tif 000004
【図２】
2008514160.tif 000005
【図３】
2008514160.tif 000006
【図４】
2008514160.tif 000007
【図５】
2008514160.tif 000008
【図６】
2008514160.tif 000009
【国際調査報告】
2008514160.tif 000010
2008514160.tif 000011