(57)【要約】ＲＧＢ色空間メモリ（２４）とＤＣＴブロック演算エンジン（１２）に有用なＹＣｒＣｂ色空間メモリ（３８）との間でデータを転送する方法は、スループットを著しく向上させプロセッサオーバーヘッドを減少させる。例示的な１実施形態によると、ＤＭＡ機能は、ＲＧＢ色空間を表す外部メモリからデータを取り出し、そのデータをＪＰＥＧ変換のために与えつつＹＣｒＣｂ色空間変換をオンザフライで実行するように最適化される。より具体的には、データは、ＲＧＢ色空間メモリからＹＣｒＣｂ色空間メモリを処理するように適合されたＤＣＴブロック演算エンジン（１２）に転送される。この方法は、Ｃ本のカラムとＲ本のローのタイルを有するタイルアレイとしてＲＧＢディスプレイスクリーン領域にデータを与えるステップを含み、１個のタイルは、Ｃｒデータアレイ及びＣｂデータアレイの少なくとも一方のＤＣＴに充分なＲＧＢデータに相当する。データは、１度に１個のタイルでデータにアクセスすることでタイルアレイのアドレスで取り出され、各タイル内のローとタイルアレイ内のタイルがトラッキングされる。アドレスは、Ｃ、トラッキングしたロー及びタイルアレイ内のトラッキングしたタイルの関数として生成される。データを取り出しながら、取り出したデータを用いてＲＧＢディスプレイスクリーン領域に対応するＹ、Ｃｒ及びＣｂデータアレイのバッファに充てんする。他の実施形態は、逆の動作を有効的に用いたＤＣＴブロック演算エンジン（１２）からＲＧＢ色空間メモリ（２４）へのデータ転送に関する。
2004509528.tif 000002
【特許請求の範囲】
【請求項１】
ＲＧＢ色空間メモリとＤＣＴブロック演算エンジンへの表示に有用なＹＣｒＣｂ色空間メモリとの間でデータを転送する方法であって、
Ｃ本のカラムとＲ本のローのタイルを有するタイルアレイとしてＲＧＢディスプレイスクリーン領域を有するＲＧＢ色空間メモリにデータを与えるステップであって、１個のタイルがＣｒデータアレイ及びＣｂデータアレイの少なくとも一方のＤＣＴに充分なＲＧＢデータに相当するステップと、
色空間メモリの一方からデータを取り出し、取り出したデータを他方の色空間メモリに保存することで色空間メモリの間でデータを転送するステップであって、データはＣの関数として、また１度に１個のタイルにアクセスし各タイル内のローとタイルアレイ内のタイルの両方をトラッキングすることの関数として転送されるステップと、を含む方法。
【請求項２】
転送したデータをＹＣｒＣｂ色空間メモリで圧縮するステップをさらに含む、請求項１記載の方法。
【請求項３】
データを転送する前に、ＹＣｒＣｂ色空間メモリで圧縮解除するステップをさらに含む、請求項１記載の方法。
【請求項４】
ＲＧＢ色空間メモリとＤＣＴブロック演算エンジンへの表示に有用なＹＣｒＣｂ色空間メモリとの間でデータを転送する方法であって、
Ｃ本のカラムとＲ本のローのタイルを有するタイルアレイとしてＲＧＢディスプレイスクリーン領域を有するＲＧＢ色空間メモリにデータを与えるステップであって、１個のタイルがＣｒデータアレイ及びＣｂデータアレイの少なくとも一方のＤＣＴに充分なＲＧＢデータに相当するステップと、
１度にデータの１個のタイルにアクセスし各タイル内のローとタイルアレイ内のタイルの両方をトラッキングすることで、タイルアレイのアドレスでデータを取り出すステップであって、アドレスが、Ｃ、トラッキングしたロー及びタイルアレイ内のトラッキングしたタイルの関数であり、データを取り出しながら取り出したデータを使用してＲＧＢディスプレイスクリーン領域に対応するＹ、Ｃｒ及びＣｂデータアレイのバッファを充てんするステップと、を含む方法。
【請求項５】
Ｙ、Ｃｒ及びＣｂデータアレイの各バッファのデータに対してＤＣＴを実行するステップをさらに含む、請求項４記載の方法。
【請求項６】
トラッキングしたローのカウントとＣのカウントとの積の関数としてアドレスの１つを演算するステップをさらに含む、請求項４記載の方法。
【請求項７】
アレイにおけるタイルの数とＴＮとの積と、トラッキングしたローのカウントとＣのカウントと定数との積との和の関数として、アドレスの１つを演算するステップであって、ＴＮがタイルアレイ内のトラッキングしたタイルの数に相当するステップをさらに含む、請求項４記載の方法。
【請求項８】
１個のタイルが、Ｃｒデータアレイ、Ｃｂデータアレイ及び４個のＹデータアレイのＤＣＴ用のＲＧＢデータに対応する、請求項４記載の方法。
【請求項９】
ＲＧＢ色空間メモリとＤＣＴブロック演算エンジンへの表示に有用なＹＣｒＣｂ色空間メモリとの間でデータを転送する方法であって、
Ｃ本のカラムとＲ本のローのタイルを有するタイルアレイとしてＲＧＢディスプレイスクリーン領域を有するＲＧＢ色空間メモリにデータを与えるステップであって、１個のタイルがＣｒデータアレイ及びＣｂデータアレイの少なくとも一方のＤＣＴに充分なＲＧＢデータに相当するステップと、
ＹＣｒＣｂ色空間メモリのデータを取り出すステップと、
データを取り出しながら１度に１個のタイルをアドレス指定することで取り出したデータをタイルアレイに書き込むステップであって、アドレスはＣの関数として、また各タイル内のローとタイルアレイ内のタイルの両方のトラッキングの関数として決定されるステップと、を含む方法。
【請求項１０】
ＲＧＢ色空間メモリとＤＣＴブロック演算エンジンへの表示に有用なＹＣｒＣｂ色空間メモリとの間でデータを転送する回路装置であって、
Ｃ本のカラムとＲ本のローのタイルを有するタイルアレイとしてＲＧＢディスプレイスクリーン領域を有するＲＧＢ色空間メモリにデータを与える手段であって、１個のタイルがＣｒデータアレイ及びＣｂデータアレイの少なくとも一方のＤＣＴに充分なＲＧＢデータに相当する手段と、
一方の色空間メモリからデータを取り出し、取り出したデータを他方の色空間メモリに保存することで色空間同士間でデータを転送する手段であって、データがＣの関数として、また１度に１個のタイルにアクセスし、各タイル内のローとタイルアレイ内のタイルの両方をトラッキングすることの関数として転送される手段と、を含む回路装置。
【請求項１１】
ＲＧＢ色空間メモリとＤＣＴブロック演算エンジンへの表示に有用なＹＣｒＣｂ色空間メモリとの間でデータを転送する回路装置であって、
Ｃ本のカラムとＲ本のローのタイルを有するタイルアレイとしてＲＧＢディスプレイスクリーン領域を有するＲＧＢ色空間メモリにデータを与えるようにプログラムされ構成されたプロセッサ装置であって、１個のタイルがＣｒデータアレイ及びＣｂデータアレイの少なくとも一方のＤＣＴに充分なＲＧＢデータに相当し、プロセッサ装置が、一方の色空間メモリからデータを取り出し、取り出したデータを他方の色空間メモリに保存することで色空間メモリ同士間でデータを転送するようにプログラム且つ構成され、データが、Ｃの関数として、また１度に１個のタイルにアクセスし各タイル内のローとタイルアレイ内のタイルの両方をトラッキングすることの関数とし転送されるプロセッサを含む、回路装置。
【請求項１２】
プロセッサ装置が、アレイにおけるタイルの数とＴＮとの積と、トラッキングしたローのカウントとＣのカウントと定数との積との和の関数として、アドレスの１つを演算するようにさらにプログラムされ構成され、ＴＮがタイルアレイ内のトラッキングしたタイルの数に対応する、請求項１１記載の回路装置。
【請求項１３】
ＲＧＢ色空間メモリとＤＣＴブロック演算エンジンへの表示に有用なＹＣｒＣｂ色空間メモリとの間でデータを転送する回路装置であって、
Ｃ本のカラムとＲ本のローのタイルを有するタイルアレイとしてＲＧＢディスプレイスクリーン領域を有するＲＧＢ色空間メモリにデータを与えるようにプログラムされ構成されたプロセッサ装置であって、１個のタイルがＣｒデータアレイ及びＣｂデータアレイの少なくとも一方のＤＣＴに充分なＲＧＢデータに相当し、プロセッサ装置が、１度に１個のデータタイルにアクセスし各タイル内のローとタイルアレイ内のタイルの両方をトラッキングすることでタイルアレイのアドレスでデータを取り出すようにさらにプログラム及び構成され、アドレスはＣ、トラッキングしたローとタイルアレイ内のトラッキングしたタイルの関数で、データを取り出しながら取り出したデータを使用してＲＧＢディスプレイスクリーン領域に対応するＹ、Ｃｒ及びＣｂデータアレイのバッファを充てんする、プロセッサ装置を含む回路装置。
【請求項１４】
プロセッサ装置が、タイルのワードセグメント内のカウントの関数としてアドレスの１つを演算するようにさらにプログラム且つ構成される、請求項１３記載の回路装置。
【請求項１５】
ＲＧＢ色空間メモリとＤＣＴブロック演算エンジンへの表示に有用なＹＣｒＣｂ色空間メモリとの間でデータを転送する回路装置であって、
Ｃ本のカラムとＲ本のローのタイルを有するタイルアレイとしてＲＧＢディスプレイスクリーン領域を有するＲＧＢ色空間メモリにデータを与えるようにプログラムされ構成されたプロセッサ装置であって、１個のタイルがＣｒデータアレイ及びＣｂデータアレイの少なくとも一方のＤＣＴに充分なＲＧＢデータに相当し、プロセッサ装置がＹＣｒＣｂ色空間メモリのデータを取り出し、データを取り出しながら１度に１個のデータタイルにアクセスすることで取り出したデータをタイルアレイに書き込むようにさらにプログラム及び構成され、アドレスはＣの関数、また各タイル内のローとタイルアレイ内のタイルの両方のトラッキングの関数であるプロセッサ装置を含む回路装置。
【発明の詳細な説明】
【０００１】
（発明の分野）
本発明はビデオデータ処理に関し、より具体的には異なるフォーマット間でのビデオデータの変換に関する。
【０００２】
（発明の背景）
エレクトロニクス産業は、ますます複雑な機能を常に加速しつづけるスピードで達成する装置を実現するために、半導体技術の進歩に依存しつづけている。多くのビデオアプリケーションの場合、機能性の高い装置を実現するには、異なる物理メモリ空間及び／又は異なる色表示フォーマット同士間でのデータの迅速な移動が必要となる。このようなデータの移動に使用するプロセスに依って、装置の有用性や全体的な操作性を著しく向上させることもできるし、不利益に損ねることもある。
【０００３】
ビデオ通信は、ビデオデータを遠隔配置された端末間でどのように移動させるかに主に依存する効率レーティングを有するビデオデータ処理を含む例示的なアプリケーションである。典型例のアプリケーションは、チャンネルに適したチャンネルインタフェース／ドライバを用いてＰＯＴＳ（ｐｌａｉｎ ｏｌｄ ｔｅｌｅｐｈｏｎｅ ｓｅｒｖｉｃｅ：従来の普通の電話サービス）又はＩＳＤＮ回線などのチャンネルでビデオデータとの通信を試みる第１及び第２の遠隔配置された端末を要する。第１の端末では、ビデオデータが、第１の端末でデータを表示するのに便利なフォーマットでソースから収集される。次いで収集したデータを新しいフォーマットに圧縮し、圧縮フォーマットで第２の端末に伝送する。ビデオデータを圧縮する前に、データは圧縮により適合したフォーマットに変換される。次いで第２の端末がそのデータを指定した使用に便利な他のフォーマットに圧縮解除する。したがって、このタイプのビデオデータ処理の効率レーティングは、ビデオデータをフォーマット間で変換し遠隔配置された端末間で移動させる際にどのように処理するかということに大きく依存している。
【０００４】
ビデオデータ処理のアプリケーションは、ビデオデータ圧縮フォーマッティングに特に力を入れたものも含み種々の方法を使用して効率レーティングを向上させてきた。ビデオアプリケーションの一般的な圧縮フォーマットはＪＰＥＧであり、これは一般に色空間のＹＣｒＣｂ（ｌｕｍａ， ｃｈｒｏｍａ ｒｅｄ ａｎｄ ｃｈｒｏｍａ ｂｌｕｅ）表示を用いる。しかしながら、コンピュータは典型的にＲＧＢ（レッド、グリーン、ブルー）色空間を用いてデータを表示する。ＬＣＤやＣＲＴなどの商品としてのディスプレイはＲＢＧ入力によって制御されるので、ＲＧＢ色空間はディスプレイに有益な色空間である。ＪＰＥＧは８×８のブロックを用いて色を圧縮する。ＪＰＥＧ圧縮では一般に、圧縮の前にＲＧＢのフラットフレームバッファからＹＣｒＣｂに変える必要がある。ＪＰＥＧ圧縮解除では普通、表示の目的でＹＣｒＣｂ出力をＪＰＥＧからＲＧＢ色空間に変える必要がある。
【０００５】
ＪＰＥＧアプリケーションにおける効率レーティングの向上のためのこれまでの試みでは、近年のシステムが要求する高速アプリケーションの幾つかに追いつかない。例えばこのような試みには、各プロセッサとメモリユニットを相互にリンクさせるバスの有効的な使用や管理が必要となり、さらにプロセッサがフラットフレームバッファの３つのＲＧＢコンポーネントそれぞれをリトリーブして３つのＹＣｒＣｂコンポーネントそれぞれに変換する方法も必要となる。データをＲＧＢフォーマットのメモリディスプレイバッファからＪＰＥＧ圧縮エンジンのＤＣＴ圧縮段階に効率的に移動させるための他の方法では、３つのＹＣｒＣｂコンポーネントそれぞれに変換するためにＲＧＢコンポーネントに直接パイピングするフルラインバッファを有するＤＭＡの使用が必要となる。これらの方法はどれも（ＤＭＡによるフルラインバッファリングの使用に伴う）費用、消費電力及び／又はプロセッサに必要な帯域及びメモリに鑑みて、どちらかというと有用ではない。
【０００６】
（概要）
本発明の目的は、改良型のデータ転送を提供することである。本発明を独立クレームによって定義する。
【０００７】
従属クレームは、有用な実施形態を定義する。
【０００８】
本発明の種々の態様によると、本発明の実施形態は、ＲＧＢ色空間とＹＣｒＣｂ色空間メモリとの間で、上述のアプリケーションに適用する方法でデータを転送することに関する方法と装置の形態で例示される。
【０００９】
本発明のより特定の態様は、ＤＣＴブロック演算エンジンとの通信のためにＹＣｒＣｂ色空間メモリを使用する特定のアプリケーションに関する。この実施形態及びアプリケーションに関連して、本発明の態様は、スループットを向上させプロセッサオーバーヘッドを低減するようにＲＧＢ色空間メモリとＤＣＴブロック演算エンジンとの間でデータを転送する方法及び装置に関する。
【００１０】
特定の実施形態では、ＤＭＡ機能は、ＲＧＢ色空間を示す例示的なメモリからデータを取り出し、ＪＰＥＧ変換のためにデータを与えつつオンザフライでＹＣｒＣｂ色空間変換を実行するように最適化される。データは、ＲＧＢ色空間メモリからＹＣｒＣｂ色空間メモリを処理するように適合されたＤＣＴブロック演算エンジンへと転送される。この方法は、Ｃ本のカラムとＲ本のローのタイルを有するタイルアレイとしてＲＧＢディスプレイスクリーン領域にデータを与えるステップを含み、１個のタイルは、Ｃｒデータアレイ及びＣｂデータアレイの少なくとも１つのＤＣＴに充分なＲＧＢデータに相当する。データは、１度に１個のタイルでデータにアクセスすることでタイルアレイのアドレスで取り出され、各タイル内のローとタイルアレイ内のタイルの両方が取り出される。アドレスは、Ｃ、トラッキングしたロー及びタイルアレイ内のトラッキングしたタイルの関数として生成される。データを取り出しながら、取り出したデータを使用してＲＧＢディスプレイスクリーン領域に対応するＹ、Ｃｒ及びＣｂデータアレイのバッファに充てんする。
【００１１】
他の実施形態は、逆の動作を有効的に使用したＤＣＴブロック演算エンジンからＲＧＢ色空間メモリへのデータの転送に特に関する。
【００１２】
他のより具体的な実施形態では、本発明は、上述のデータ操作を処理し、アレイにおけるタイルの数とＴＮとの積と、トラッキングしたローのカウントとＣのカウントと定数との積との和の関数として、アドレスの１つを演算するようにプログラムされ構成されたプロセッサ装置の使用に関するものであり、ＴＮは、タイルアレイ内のトラッキングしたタイルの数に対応する。
【００１３】
さらに他のより具体的な実施形態では、プロセッサ装置は、アレイにおけるタイルの数とＴＮとの積と、トラッキングしたローのカウントとＣのカウントと定数との積との和の関数として、またタイルのワードセグメント内のカウントの関数として、アドレスの１つを演算するようにさらにプログラムされ構成される。例えば、タイルは１６ワードセグメントを用いて実行することができる。
【００１４】
上記の概要は、本発明の全ての態様の全容を提供することを意図するものではない。本発明の他の態様は、詳細な説明に関連して例示され説明される。
【００１５】
本発明の種々の態様及び利点は、種々の実施形態の以下の詳細な説明を読み進め図面を参照することで明らかとなるであろう。
【００１６】
本発明は種々の改変や代替形態を容れることができ、その詳細を例として図面に示し詳細に説明する。しかしながら、本発明を説明する任意の実施形態に限定するものではいないことを理解すべきである。それどころか、本発明は添付の請求の範囲によって定義されるその趣旨や範囲内にある全ての改変、等価及び代替を包含するものである。
【００１７】
（詳細な説明）
本発明はビデオデータ処理に関する種々のアプリケーションを有し、例えばＹＣｒＣｂ色空間メモリ形式でデータを処理するためによりよく適合された演算エンジンへの表示のために、ＲＧＢ色空間とＹＣｒＣｂ色空間メモリとの間でデータを効率的に移動させることに関連する使用に特に有用であることがわかっている。本発明はこのようなアプリケーションに必ずしも限定されないが、このような状況で実施される例示的な実施形態の説明によって、本発明の種々の態様を理解することができる。
【００１８】
一実施形態によると、本発明は、ＲＧＢ色空間とＪＰＥＧＤＣＴ圧縮に連結するＹＣｒＣｂ色空間メモリとの間でデータを移動させるデータ処理装置に関する。本実施形態は異なるアプリケーションを有することができる。例えばある例では、データ処理装置はＲＧＢ色空間からＪＰＥＧＤＣＴ圧縮に連結するＹＣｒＣｂ色空間メモリにデータを移動させるように適合させることができ、別の例では、データ処理装置はＹＣｒＣｂ色空間メモリ形式のＪＰＥＧＤＣＴ圧縮から表示のためにＲＧＢ色空間にデータを移動させるように適合させることができる。アプリケーションにかかわらず、ＲＧＢ色空間データは、Ｃ本のカラムとＲ本のローのタイルを有するタイルアレイとしてＲＧＢディスプレイスクリーン領域に配置される（１個のタイルは、ＣｒデータアレイとＣｂデータアレイのうちの少なくとも一方のＤＣＴに充分なＲＧＢデータに相当する）。データは、色空間メモリのうちの１つからデータを取り出し、取り出したデータを他の色空間メモリに保存することによって、色空間メモリ間で転送される。データはＣの関数として、また一度に１つのタイルにアクセスし各タイル内のローとタイルアレイ内のタイルの両方のトラッキングに応じて転送される。
【００１９】
上記の実施形態に関連して、１つの特定のアプリケーションは、ＲＧＢ色空間を表す外部メモリからデータを取り出しそのデータをＪＰＥＧ変換のために提供する一方で、ＹＣｒＣｂ色空間変換をオンザフライで実行するように適合されたＤＭＡ機能を最適化することに関する。シーケンスは、１６カラム×１６ローの単一の矩形タイルにおけるレッド、グリーン及びブルーのソースデータからなる４つの８×８ブロックを通過する。このタイルは、４つの８×８Ｙマトリックス、１つの８×８Ｃｒマトリックス及び１つのＣｂマトリックスを有するＹＣｒＣｂ色空間に対応する。ＤＭＡ動作（又は全体的なシーケンシング）は、シーケンスにおいて１回だけメモリから読み取るように最適化され、これがＳＤＲＡＭメモリや線形バースト取り出しを好む他のメモリ（又はバスアーキテクチャ）に適している。例えば単純な１０２４バイトのバッファを用いてＲＧＢ−ＹＣｒＣｂ色空間変換をオンザフライで実行できる順序で進めることで、内部バッファリングを最小にすることができる。
【００２０】
図面を参照し本発明にしたがうと、図１は、ＡＲＭベースのデータ処理装置１０とＤＣＴ演算プロセッサ装置１２との間の高速データ転送を要する特定の実施形態のブロック図を例示し、ＤＣＴ演算プロセッサ装置１２は、例えばＤＣＴブロック１２ａ、量子化器ブロック１２ｂ及びハフマンコーディング（ＨＣ）（「エンコーディング及び／又はデコーディング」）ブロック１２ｃを含む。ＡＲＭベースのデータ処理装置１０は、ＡＲＭＣＰＵ２０と、例えばシステムメモリ（例えば、ＳＤＲＡＭ）２２、ＲＧＢメモリ２４、及びＤＭＡコントローラ（ＤＭＡＣ）２６を含むシステムコンポーネントとの間の通信用のＡＨＢ（アドバンスドハイパフォーマンスバス）１６を含む。ブリッジインタフェース２８もまたバス１６に接続され、ＡＭＢＡ−ＡＰＢ（アドバンスドマイクロコントローラバスアーキテクチャ−アドバンスドペリフェラルバス）３０を介して種々の周辺装置に通信上連結する。想定される全ての実施形態やアプリケーションに必ずしも必要ではないが、ＡＨＢ１６などの高速バスの使用が本発明の色変換によってもたらされる高スループットにマッチさせるのに特に有用である。本発明の実施形態から利点を得る他のデータ高性能バシングＣＰＵ装置としては、ＩＢＭのＣｏｒｅＣｏｎｎｅｃｔオンチップバス及びモトローラのＩＰ−バスが挙げられる。
【００２１】
ＲＢＧメモリ２４からＡＨＢ１６とＤＭＡＣ２６まで延びる点線は、ＲＧＢメモリ２４への他のデータアクセス（読取及び／又は書込み）パス、即ちＡＨＢ１６にわたったＤＭＡＣ２６によるパス又はＤＭＡＣ２６による直接的なパスを表す。
【００２２】
既述の実施形態に関連して上述したように、本発明の実施形態はＲＧＢ色空間とＹＣｒＣｂ色空間との間での変換に限定されない。例えば両方向の矢印とハフマンエンコーディング／デコーディングブロックで示されるように、図１はＲＧＢ色空間からＹＣｒＣｂ色空間への変換、ＹＣｒＣｂ色空間からＲＧＢ色空間への変換又は両方の変換を想定している。このような変換は、３つの機能的に記述されたブロック、即ちワードラインバッファ３４、色空間変換演算ブロック３６及びＹＣｒＣｂ色空間メモリ３８を用いて一般的に示される。これらの機能的に記述されたブロック（及び図１に示す他のブロック）は、任意の種々のタイプの完全に及び／又は部分的にプログラマブルなプロセッサを用いて実行することができるが、多くの実施形態は、種々のバッファと組合せた従来通りのＡＬＵ型（加算器、シフタ及び乗算器）ロジックを用いてうまく実行することができる。
【００２３】
上述のようなデータ処理装置は、色空間のＹＣｒＣｂ表示を用いるＪＰＥＧなどのビデオ圧縮フォーマットに特に有用である。ＪＰＥＧは、ＤＣＴ圧縮段階での処理のためにＹＣｒＣｂ色空間における８×８の色ブロックを使用し、一方でＡＲＭＣＰＵ（図１の２０）などのコンピュータは典型的にＲＧＢ色空間（例えば図１のメモリ２４）を用いてディスプレイデータを保存する。ＪＰＥＧ圧縮が通常、圧縮前にＲＧＢからＹＣｒＣｂへの変換を要し、ＪＰＥＧ圧縮解除は、保存やそれに続く表示のためにＹＣｒＣｂ出力をＪＰＥＧからＲＧＢ色空間に変換することを要する。
【００２４】
ディスプレイスクリーン上のデータは、カラムとローで編成される。説明の目的で、例示的なディスプレイスクリーンは、４８０×２４０のディスプレイ用に４８０本のカラムと２４０本のローを有する。典型的なディスプレイリフレッシュは、ディスプレイドライバに表示したりその後コンピュータスクリーンに表示するためにメモリからデータを絶えず取り出すことを含む。このメモリを動作効率で編成するために、メモリのデータをリフレッシュされるスクリーン上の第１のピクセルから始めてスクリーン上の最後のピクセルまで配置する。ディスプレイリフレッシュは、ロー０、カラム０、ディスプレイバッファアドレス０から始まる。次いでロー０、カラム４７９に到達するまでカラム番号を増やす。ディスプレイリフレッシュはロー１、カラム０からカラム４７９まで続く。このプロセスは、ディスプレイの終わりに到達するまで続き、そしてこのプロセスを繰り返す。一般的な他の方法では、ディスプレイの上半分と下半分を同時にリフレッシュする。しかしながら両方の場合において、ディスプレイデータを線形順序でメモリに配置する。
【００２５】
データを同じ順序でメモリに配置することによって、データが保存されているＤＲＡＭ装置からデータを効率的に削除することができる。ＤＲＡＭ装置はアクセスされた最後のデータと同じページに配置されたデータをリトリーブするのにより効率的であるため、このことが当てはまる。今日人気の高いＤＲＡＭの大部分もまた順序が固有で、データがＤＲＡＭからバーストされるとそのデータをもっとも効率的に伝達する。ディスプレイデータ及びＤＲＡＭ保存技術は、ＤＲＡＭデータの効率的なアクセスを可能にするために一緒にうまく作用する。
【００２６】
８ピクセル×８ピクセルブロックを用いてＹＣｒＣｂ色空間で表示される色を圧縮するＪＰＥＧの場合、ＲＧＢ色空間でデータを表すＤＲＡＭからデータを効率的に抽出するのが難しい。この問題は、Ｃｒ及びＣｂデータがＲＧＢデータに対するサブサンプリング対応を有することが原因である。ＲＧＢ色空間のＹコンポーネントに対してＤＣＴブロックに表示されるデータは、８×８画像ブロックからのＲ、Ｇ、Ｂの全てのデータを使用するが、ＲＧＢ色空間のＣｒ及びＣｂコンポーネントに対してＤＣＴブロックに表示されるデータは１６×１６画像ブロックからのＲ、Ｇ及びＢ全てのデータを使用する。冗長アクセスを最小にするためには、データをＲＧＢ色空間メモリから複数回取り出すのではなく、ハードウェア回路で効率的に処理できるように所与のＤＣＴに対して１回だけ取り出すことが望ましい。
【００２７】
図２ａ及び２ｂに示すように、図２ａのＲＧＢ色空間フォーマットは、ＲＧＢフォーマットで色を表示するスクリーン上の８個の位置を示す。スクリーン上の各位置に、レッド、グリーン及びブルーの値がある。図２ｂのＹＣｒＣｂ色空間フォーマットは、ＪＰＥＧ色画像保存のために典型的に使用されるＹＣｒＣｂ色空間を示す。左側のＹデータは、０．２９９Ｒ＋０．５８７Ｇ＋０．１１４Ｂからなる輝度で、明るさに対する人間の目の反応に比例するようになっている。図２ａの図は合計２４個の値を有し、図２ｂの図は１２個の値を有する。この差の原因は、ＣｒとＣｂデータがサブサンプリングされているためである。即ち、ＲＧＢの値の各セットに対して１個のＹ値があり、ＲＧＢの４つのセットのそれぞれに対して１個のＣｒと１個のＣｂ値がある。ＪＰＥＧはＹ、Ｃｒ及びＣｂデータの８×８アレイを圧縮し、Ｙデータに対してメモリからの８×８ブロックを使用し、Ｃｒ及びＣｂデータそれぞれに対して８×８ブロックに圧縮した１６×１６ブロックを使用する。種々のデータタイプに対して変化するデータサイズの要求によって、このデータをメモリから取り出すための要求が複雑になる。ＹデータがＹ値を生成するためにＲ、Ｇ及びＢ値３つ全てを必要とし、Ｃｒ及びＣｂデータはそれぞれ単一のＣｒ値又はＣｂ値を生成するために４つの位置からＲ、Ｇ及びＢ値３つ全て（全部で１２値）を必要とすることにも留意されたい。このデータをＳＤＲＡＭから複数回取り出す必要がないことは、電力や性能の理由から有用である。
【００２８】
図３及び４は、本発明の例示的な実施形態にしたがった「タイル」変換の図である。図３は、ＲＧＢ色空間における４つの８×８アレイを示し、３色それぞれが４＊８＊８＊３＝７６８バイトで１個のタイルを形成する。
【００２９】
図４は、４個の８×８Ｙアレイ、１個の８×８Ｃｒアレイ及び１個の８×８Ｃｂアレイのグループを示す（４＊８＊８＋８＊８＋８＊８＝３８４バイト）。図４の６個の８×８アレイからなるこのグループは、例えばデータ圧縮のためにＤＣＴ演算エンジンによって容易に処理することができる。この場合、「タイル」という用語は、図３に示すようなディスプレイメモリにおけるＲＧＢ値の１６×１６セクションのことをいう。したがって、ディスプレイメモリにおけるＲＧＢ値の１６×１６セクション（この例ではタイルという）を使用してＤＣＴ圧縮用の４個の８×８Ｙアレイ、１個の８×８Ｃｒアレイ及び１個の８×８Ｃｂアレイを作成することができる。
【００３０】
図５、６及び７は、図３及び４に関連して示したように、データをタイル変換中に走査する方法のより詳細な図をそれぞれ例示する。各タイル及びタイルからなる全体的なアレイは、左から右へ且つ上から下へと、各タイルが完全に走査されてから次のタイルに進むように走査される。図５は、本発明の例示的な実施形態にしたがった、２０個のタイル（５本のカラム×４本のロー）からなるアレイの全体的な画像走査の流れを示したディスプレイスクリーンを例示する。図６は図５のタイルのうちの２個を示し、タイルの各走査は１６×１６のピクセルセクションをトラバースしている。図７は、上述のタイルのうち１個における１６個のピクセルの２本のローの走査パスを例示し、各ピクセルはレッド、グリーン、ブルーの値のデータを含む。各走査線は直線における１６個のピクセルであり、同じタイルにおける次の１６個のワードが続く。１６個のピクセルはそれぞれレッド、グリーン及びブルーのバイトを含む。
【００３１】
したがって、走査パスは、１）メモリからのデータの取り出しが１回だけとなるように、２）完全なローバッファを必要としないバッファ要求を最小にするように、３）ＳＤＲＡＭに友好的にメモリからデータを取り出すように及び４）ＲＧＢ−ＹＣｒＣｂ計算を最小のバッファリングで完了し、オンザフライで実行し、さらにバッファ要求を最小にするように、最適化されている。
【００３２】
本発明によると、ＤＭＡアドレスは上記の関数として生成される。例示の目的で、一例の実施形態では、レッド［２３：１６］、グリーン［１５：８］、ブルー［７：０］の各色が８ビットの３２ビットの境界に編成されたＲＧＢ色空間メモリにおけるデータを有する。さらにこの例示的な実施形態は、ＹＣｒＣｂ色空間における対応するデータを用いて圧縮を行う。ＹＣｒＣｂ色空間において、各Ｙ値は１つのＲＧＢ値に対応し、各Ｃｒ値は４つのＲＧＢ値に対応し、各Ｃｂ値は４つのＲＧＢ値に対応する。
【００３３】
ＤＭＡＣコントローラ（例えば、図１の２６）を用いてＲＧＢ色空間メモリ（例えば、２４）をアドレス指定し、適切なＲＧＢデータを取り出すことで、計算を実行する。この実施形態の場合、タイルは、Ｃｒ又はＣｂデータの単一のＤＣＴのデータのために使用されるスクリーン上の領域に対応するメモリのデータである。Ｃｒ及びＣｂデータはサブサンプリングされているため、この同じ領域はまたＹデータに対しても４つの８×８ＤＣＴを生成し、そのために６つのＤＣＴのデータを生成するために単一をタイルを使用する。
【００３４】
メモリのどこをアドレス指定するかを正確に決定するための計算は、種々の関数に基づいている。これらの関数は、種々のカウンタ及び「ＮＣｏｌ」（タイルカラムの数に等しい）を含む。図５の例示的なタイルアレイでは、カラムの数は５である。アドレスは、以下のカウンタを使用して計算される。
【００３５】
ＷＣ＝ワードカウント。ＷＣカウンタは４ビットの幅で、タイルの１６ワードセグメント（０−１５）までをカウントし、ワードを転送するたびに増分される。
【００３６】
ＲＣ＝ローカウント。ＲＣカウンタは、タイルを垂直方向にカウントするために使用される。この例示的なアプリケーションでは、ＲＣカウンタは４ビットカウンタであり、０から１５までをカウントし、ＷＣカウンタがオーバーフローするたびに増分される。
【００３７】
ＴＶＣＴ＝タイルトータルカウント。ＴＶＣＴカウンタは、各画像変換のスタート時にリセットし、ＲＣカウンタがオーバーフローするたびに増分する。このカウンタは、あらゆるデザインのタイルの合計数のカウントを保持するのに適した長さに設定される。
【００３８】
種々のアプリケーションにおいて、例えば１６ワードバーストを常にサポートすることをバスが保証できる場合、ＷＣパラメータは特に用いない。
【００３９】
次いで正確なアドレスを以下の演算から決定する。
【００４０】
Ａｄｄｒｅｓｓ＝ＴＶＣＴ＊１０２４＋ＲＣ＊１６＊ＮＣｏｌ＋ＷＣ
データをディスプレイから圧縮ユニットに移動させるには、上記の計算だけが必要となる。任意のローの終わりのアドレスによってメモリにおけるアドレスの主要な変化が生じるため、典型的には全加算器を用いる。トータルタイルカウント（ＴＶＣＴ）の乗算は従来のシフティングロジックを用いて容易に実行することができ、一方ＮＣｏｌ演算はより複雑な乗算又はシフト／加算動作を必要とする。例示的な１実施形態では、ＮＣｏｌ演算は単純な整数乗算動作として実行される。当業者がこの説明から理解するように、ＲＣ及びＷＣをさらに分割してＲＧＢからＹＣｒＣｂ生成への最適な流れを形成することができる。
【００４１】
種々の実施形態では、乗算又はシフト／加算が数学的に便利である場合にＮＣｏｌ乗算を簡単にすることができる。例えば、この簡略化した方法は、以下の水平解像度、即ち１２８、２４０、４８０、９６０又は１０２４ピクセルのときだけサポートが必要な場合に適用する。
【００４２】
図８は、例えば、以下の表で説明するようにＮＣｏｌの場合のＲＣ×ＮＣｏｌの乗算で使用する回路を例示する。図９のシフタ５０は、「一定の入力」を有し６ビットまでのシフトを提供することで数学的演算を提供するマルチプレクサとして機能的に実行され、ＲＣで表される入力数字よりも大きい２６までの値を有する数を生成する。
【００４３】
５の乗算ブロック５２及び３の乗算ブロック５４はそれぞれ同様に実行することができる。例えば、５を乗算するためには、ブロック５２への入力を左に２回シフトし、結果を入力に加算する。図９は、図８の５の乗算ブロック５２を実行するためのシフト／加算回路を例示する。図８のブロック５６及び５８はマルチプレクサで、それぞれ先行する乗算ブロックの出力を渡すかその入力（「定数」）を渡すかを示す下限入力を有する。
【００４４】
以下の表は、これらの一般的な水平解像度を、一連のシフトや幾つかの加算を有する図８の例示的な回路でサポートできる場合を例示する。
【００４５】
【表１】
2004509528.tif 000003
上記の表において、第１、第２及び第３のカラムのエントリはそれぞれブロック５０、５６及び５８の下限入力に対応する。第１のカラムのエントリは、ブロック５０のバイナリビット数を示す。第２のカラムのエントリは、マルチプレクサブロック５６が５の乗算ブロックの出力を渡すべきかどうかを示し、第３のカラムのエントリは、マルチプレクサブロック５８が３の乗算ブロックの出力を渡すべきかどうかを示す。
【００４６】
典型的にはデジタルカメラや一定の画像キャプチャ入力を有する装置の場合のように、幾つかのアプリケーションでは、タイルアレイのサイズは事前に知らされている。これらのアプリケーションでは、ＮＣｏｌ乗算機能をさらに縮小することができることを当業者なら理解するであろう。
【００４７】
図１０ａは、ＲＧＢ色空間メモリとＹＣｒＣｂ色空間メモリとの間でデータを効率的に移動させるための他の例示的な回路１００を例示する。図１０ａの上部分は、ＲＧＢ空間から表示のためのＹＣｒＣｂ変換を経てデータ圧縮やチャンネル１０２を介したデータ伝送のための、ＤＣＴブロックとしてのＤＣＴ演算エンジンへの既述のデータの流れを例示し、チャンネル１０２は典型的に、遠隔端末に通信上連結する高速ドライバ（図示せず）に送るように適合されている。図１０ａの下部分は、圧縮形式でチャンネル１０２からＲＧＢ空間に変換するためにＤＣＴブロック（ＹＣｒＣｂ色空間）に圧縮解除するための逆ＤＣＴ（「ＩＤＣＴ」）演算エンジンへのデータの逆の流れを例示する。
【００４８】
より具体的には、図１０ａの回路はＤＣＴＳＤＲＡＭアドレスジェネレータ１０４を含み、このジェネレータは圧縮のためにＲＧＢ色空間メモリ（図示せず）からデータを取り出し、圧縮解除後にＲＧＢ色空間メモリにデータを保存するように適合されている。ブロック１０６で、取り出したＲＧＢデータを例えばＤＭＡＣによって収集し、またワードラインバッファ１０８ａに分散してブロック１１０に表示し、該ブロック１１０は色空間変換値を計算して４つのＹバッファ１１２ａ〜１１２ｄとＣｒＡバッファとＣｒＢバッファの対１１２ｅ〜１１２ｈに表示する。これらのバッファ１１２ａ〜ｈが充てんされると、ＤＣＴブロックとしてアクセスされ、ＤＣＴブロック１１４、量子化器１１６及びハフマンデコーダ１１８によって圧縮される。多くのアプリケーションでは、ビデオデータをチャンネル１０２を介した伝送のための他のパラレルソースからのデータと共に表示するために、データマルチプレクサ（図示せず）を用いる。
【００４９】
チャンネル１０２からＲＧＢ色空間メモリへのデータ処理経路は上記の説明の逆をたどり、図１０ａは対応するブロック（例えば、ブロック１１０はブロック１１０‘に対応する）を示す。圧縮／圧縮解除機能が例えば特別な即ち専用ＤＳＰを用いてプロセッサで実行される場合、多くのアプリケーションではこれらのハードウェア資源を共有する。
【００５０】
図１０ｂは、充てんされてＤＣＴ機能ブロックを利用可能な場合のＤＣＴブロックを示す。Ｙ１、Ｙ２及びＣｒＡ、ＣｒＢバッファは同時に充てんされる。しかしながら、このデータはサブサンプリングされているため、Ｙ１及びＹ２ブロックがＣｒＡ及びＣｒＢよりも前に完了する。Ｙ１及びＹ２ブロックが完了するとすぐにＤＣＴブロックに送ることができる。これは＃１として示されている。＃２では、Ｙバッファの第２のセットであるＹ３及びＹ４の充てんが始まり、ＣｂＡ及びＣｂＢバッファを取り出すプロセスが続いている。＃２では、２つのＹバッファ、即ちＹ１及びＹ２の処理を開始することができる。単一のＤＣＴブロックが利用でき、Ｙ１の処理に続いてＹ２が処理されると仮定する。Ｙ３及びＹ４バッファが完了してＤＣＴブロックが利用可能になると、ＤＣＴ変換を＃４で示すＹ３ブロックで続けることができる。また、Ｙ２バッファがフリーな場合、メモリ取り出しを再度開始することができ、＃５でＣｒバッファの余分なセットとしてのＣｒＢ及びＣｂＢが利用できる。メモリサブシステムの速度やＤＣＴブロックの速度に依って、＃４及び＃５をあらゆる順序で実行することができる。単一の１６×１６ブロックのＤＣＴが４個のＹブロック、１個のＣｒブロック及び１個のＣｂブロックを生成する。しかしながら、この回路は４個のＹバッファ、２個のＣｒバッファ及び２個のＣｂバッファを有する。この非対称性は意図的なものであるため、Ｙデータはそれぞれがパイプライニングを可能にする２つのグループとして利用でき、Ｃｒ及びＣｂデータは１６×１６ブロック全体が完了するまで利用できない。
【００５１】
上述の種々の実施形態は例示のためだけに提示されてきて、本発明を限定しようとするものではない。当業者なら、本明細書中に例示され説明された例示的な実施形態やアプリケーションに厳密にしたがわずに本発明に対してなされ得る種々の改変や変更を容易に認識するであろう。例えば、ＪＰＥＧフォーマットかデータ圧縮／圧縮解除のいずれかを使用することが必ずしも要求されているわけではなく、他のアプリケーションは、本発明を用いたＲＧＢ色空間とＹＣｒＣｂ色空間との間の変換から利益を得ることができるため、本発明の趣旨は請求の範囲で説明される。
【００５２】
請求の範囲において、括弧の中にあるあらゆる参照符号は請求の範囲を限定するものではない。「備える」という用語は、請求の範囲に挙げた要素やステップ以外の要素やステップの存在を除外しない。要素の前に付く「ａ」や「ａｎ」は、複数のこのような要素の存在を除外しない。本発明を、幾つかの個別の要素を備えるハードウェアや適切にプログラムされたコンピュータによって実行することができる。幾つかの手段を列挙した装置クレームでは、これらの手段のうちの幾つかを１つのハードウェアの同じアイテムによって具体化することができる。幾つかの手段が互いに異なる従属クレームで記載されているという事実は、これらの手段の組合せを利点のために使用することができないということを示すものではない。
【図面の簡単な説明】
【図１】
本発明の例示的な実施形態にしたがった、ビデオ処理装置のブロック図である。
【図２ａ】
従来技術で公知のＲＧＢ色空間とＹＣｒＣｂ色空間フォーマットの図である。
【図２ｂ】
従来技術で公知のＲＧＢ色空間とＹＣｒＣｂ色空間フォーマットの図である。
【図３】
本発明の例示的な実施形態にしたがったタイル変換の図であり、ＲＧＢ色空間における４個の８×８アレイ（図３）のＤＣＴ圧縮用の４個の８×８Ｙアレイ、１個の８×８Ｃｒアレイ及び１個の８×８Ｃｂアレイ（図４）への変換を示す。
【図４】
本発明の例示的な実施形態にしたがったタイル変換の図であり、ＲＧＢ色空間における４個の８×８アレイ（図３）のＤＣＴ圧縮用の４個の８×８Ｙアレイ、１個の８×８Ｃｒアレイ及び１個の８×８Ｃｂアレイ（図４）への変換を示す。
【図５】
本発明の例示的な実施形態にしたがった、タイルアレイレベルでのタイルの画像走査の流れを例示する図。
【図６】
本発明の例示的な実施形態にしたがった、タイルレベルでのタイルの画像走査の流れを例示する図。
【図７】
本発明の例示的な実施形態にしたがった、走査線レベルでのタイルの画像走査の流れを例示する図。
【図８】
ＤＣＴ圧縮用のデータを取り出すためのアドレスの決定に関連して使用される、本発明の例示的な実施形態にしたがった乗算機能を実行するために使用される回路のブロック図である。
【図９】
サイズが予め決まっている幾つかのアプリケーションに関連して使用される、本発明の例示的な実施形態にしたがった乗算機能を実行するために使用される別の回路のブロック図である。
【図１０ａ−１】
本発明にしたがった、圧縮のための８×８ブロックのバッファリング方法用の例示的な回路の図である。
【図１０ａ−２】
本発明にしたがった、圧縮のための８×８ブロックのバッファリング方法用の例示的な回路の図である。
【図１０ａ−３】
本発明にしたがった、圧縮のための８×８ブロックのバッファリング方法用の例示的な回路の図である。
【図１０ｂ】
本発明にしたがった例示的な流れ図であり、ＹＣｒＣｂデータが図１０ａ−２の種々のバッファに書き込まれることを示す。
【図１】
2004509528.tif 000004
【図３】
2004509528.tif 000005
【図４】
2004509528.tif 000006
【図５】
2004509528.tif 000007
【図６】
2004509528.tif 000008
【図７】
2004509528.tif 000009
【図８】
2004509528.tif 000010
【図９】
2004509528.tif 000011
【図１０ａ−１】
2004509528.tif 000012
【図１０ａ−２】
2004509528.tif 000013
【図１０ａ−３】
2004509528.tif 000014
【図１０ｂ】
2004509528.tif 000015
【国際公開パンフレット】
2004509528.tif 000016
2004509528.tif 000017
2004509528.tif 000018
2004509528.tif 000019
2004509528.tif 000020
2004509528.tif 000021
2004509528.tif 000022
2004509528.tif 000023
2004509528.tif 000024
2004509528.tif 000025
2004509528.tif 000026
2004509528.tif 000027
2004509528.tif 000028
2004509528.tif 000029
2004509528.tif 000030
2004509528.tif 000031
2004509528.tif 000032
2004509528.tif 000033
2004509528.tif 000034
2004509528.tif 000035
2004509528.tif 000036
2004509528.tif 000037
2004509528.tif 000038
2004509528.tif 000039
2004509528.tif 000040
2004509528.tif 000041
2004509528.tif 000042
【国際公開パンフレット（コレクトバージョン）】
2004509528.tif 000043
【国際調査報告】
2004509528.tif 000044
2004509528.tif 000045
2004509528.tif 000046