(57)【特許請求の範囲】
【請求項１】
非圧縮ビデオ信号に応じて、複数の圧縮データ信号および複数のアドレス信号を供給するように構成された符号器／復号器回路と、
（ｉ）第１の部分および第２の部分に分割され、かつ（ｉｉ）前記複数の圧縮データ信号を記憶するように構成されたメモリと、
（ｉ）前記符号器／復号器内に位置し、かつ（ｉｉ）前記メモリの前記第１および第２の部分間におけるアドレスロードを実質的に低減するプロトコルに従って、前記複数の圧縮データ信号が前記メモリの前記第１および第２の部分に記憶されるように、前記複数のアドレス信号を生成するように構成されたコントローラと、
を含み、
前記コントローラは、
前記メモリ内に配置されると共にデータの最小アドレス指定可能単位であるアトムを読み出す際に、
（Ａ）前記メモリを横断して前記アトムを配置するステップと、
（Ｂ）前記アトムの一部を横断して、読み出すべきデータの領域であるストリップを画定するステップと、
（Ｃ）前記ストリップ内で第１のアトムを指定するステップと、
（Ｄ）前記第１のアトムとペアリングされる１つまたは複数の第２のアトムを捜し出すステップであって、前記ペアリングが、ペアリストを用いて前記第１のアトムとペアとなる前記第２のアトムを特定することを意味するステップと、
（Ｅ）前記第１のアトムとペアリングされた場合に前記１つまたは複数の第２のアトムが正当なペアを形成するかどうかを判定するステップと、
（Ｆ）前記第１および第２の部分から前記正当なペアを読み出すステップと、
を実行する、装置。
【請求項２】
前記ペアリストは、
（ｉ）前記第１のアトムのすぐ右のアトムが前記第２のアトムであり、
（ｉｉ）前記ストリップにおける前記第１のアトムのすぐ下のアトムが前記第２のアトムであり、フィールドアクセスの場合には、前記第２のアトムは、フレームにおける前記第１のアトムから垂直に２走査ライン下のアトムであり、
（ｉｉｉ）フレームアクセスの場合には、前記第２のアトムは、前記ストリップにおける前記第１のアトムから垂直に２走査ライン下のアトムであると定義される、請求項１に記載の装置。
【請求項３】
ステップ（Ａ）が、
前記第１および第２の部分に前記アトムを配置するステップをさらに含む、請求項１または２に記載の装置。
【請求項４】
前記第１の部分が、第１のダイナミックランダムアクセスメモリを含み、前記第２の部分が、第２のダイナミックランダムアクセスメモリを含む、請求項１から３のいずれかに記載の装置。
【請求項５】
前記第１のダイナミックランダムアクセスメモリおよび前記第２のダイナミックランダムアクセスメモリに、バンクおよび列アドレスを供給するステップであって、前記第１のダイナミックランダムアクセスメモリが、前記第２のダイナミックランダムアクセスメモリから独立してアドレス指定されるステップをさらに含む、請求項４に記載の装置。
【請求項６】
ステップ（Ｃ）が、
前記ストリップ内に配置された左上アトムとして前記第１のアトムを指定するステップをさらに含む、請求項１から５のいずれかに記載の装置。
【請求項７】
ステップ（Ｅ）が、
前記第１のアトムが左のダイナミックランダムアクセスメモリに配置され、かつ前記第２のアトムが右のダイナミックランダムアクセスメモリに配置された場合に、前記第２のアトムが前記正当なペアを形成するかどうかを判定するステップをさらに含む、請求項１から６のいずれかに記載の装置。
【請求項８】
ステップ（Ｅ）が、
前記第１のアトムと前記第２のアトムとの間に形成された前記ペアが水平タイル境界を横断しない場合に、前記第２のアトムが前記第１のアトムと前記正当なペアを形成するかどうかを判定するステップをさらに含む、請求項１から６のいずれかに記載の装置。
【請求項９】
ステップ（Ｅ）が、
前記第１のアトムおよび前記第２のアトムが前記メモリから読み出されなかった場合に、前記第２のアトムが前記第１のアトムと前記正当なペアを形成するかどうかを判定するステップをさらに含む、請求項１から６のいずれかに記載の装置。
【請求項１０】
バンクおよび列アドレスを前記第１および第２の部分に供給するステップをさらに含む、請求項１から９のいずれかに記載の装置。
【請求項１１】
ステップ（Ｂ）が、
偶数または奇数の前記アトムを横断して前記ストリップを画定するステップをさらに含む、請求項１から１０のいずれかに記載の装置。
【請求項１２】
ステップ（Ｆ）が、
ラスタ走査順に、前記第１および第２の部分から前記正当なペアを読み出すステップをさらに含む、請求項１から１１のいずれかに記載の装置。
【請求項１３】
ステップ（Ｆ）が、
１つまたは複数の正当なペアをバレルシフタに転送するステップをさらに含む、請求項１から１２のいずれかに記載の装置。
【請求項１４】
前記１つまたは複数の正当なペアをラスタ走査順に前記バレルシフタに転送するステップをさらに含む、請求項１３に記載の装置。
【請求項１５】
ステップ（Ｄ）が、
前記第２のアトムがステップ（Ｄ）を実行する前に順序を外れて読み出され、前記第２のアトムを一時レジスタに記憶するステップをさらに含む、請求項１から１４のいずれかに記載の装置。
【請求項１６】
前記複数のアドレス信号の１つが、前記メモリの前記第１の部分を制御するように構成され、前記複数のアドレス信号のもう１つが、前記メモリの前記第２の部分を制御するように構成された、請求項１から１５のいずれかに記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、参照により全体として本明細書に援用される同時係属中の出願第１０／３０６，７４９号および１０／３０６，７５１号に関連する場合がある。本発明は、一般に、データ記憶に関し、特に、ビデオデータのインターリーブされた記憶用の方法および／または装置に関する。
【背景技術】
【０００２】
従来の一ビデオ記憶アプローチにおいて、１９２０画素幅×１０８０画素高さの画像は、１９２０バイトの１０８０行として記憶することができる。かかるアプローチは、１０２４バイトのメモリページサイズを有することになる。したがって、１０８０行の画像は、多くのページ数にわたって広げられることになる。画像を記憶する場合には、第１の行における全てのバイトに、各次の行のバイトが続く。画像が処理される（すなわち圧縮される）場合には、画像の９×９ブロックが操作される。ラスタ形式で記憶された９×９ブロックをロードする場合には、少なくとも９および恐らくは１０ページが検索される。
【０００３】
従来の一記憶アプローチにおいて、画像は、多数の３２×３２画素タイルに分割される。タイルのそれぞれは、１つの１０２４バイトページとして隣接して記憶される。かかる従来のアプローチによって、他の従来方法よりも、９×９ブロックごとに転送されるページ数が低減される。
【０００４】
従来の別の記憶アプローチにおいて、タイルのそれぞれの内部のデータが、ラスタ形式で記憶される。画像をタイルとして記憶することによって、９×９ブロック（または３２×３２までの任意のサイズのブロック）（または動き補償ブロック）は、最大でも４ページを検索することによって転送することができる。かかるアプローチにおいて、インターレースされた画像は、別々に記憶された各フィールドを有する。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
現代のメモリデバイスに適応可能な、データのインターリーブされた記憶を実行するための方法および／または装置を実現することが望ましいであろう。
【課題を解決するための手段】
【０００６】
本発明は、第１のメモリ部分および第２のメモリ部分を有するメモリ内に配置されたアトムを読み出す方法であって、（ａ）メモリを横断してアトムを配置するステップと、（ｂ）アトムの一部を横断してストリップを画定するステップと、（ｃ）ストリップ内で第１のアトムを指定するステップと、（ｄ）第１のアトムとペアリングされるように第２のアトムを捜し出すステップと、（ｅ）第１のアトムとペアリングされた場合に第２のアトムが正当なペアを形成するかどうかを判定するステップと、（ｆ）第１のメモリ部分および第２のメモリ部分から正当なペアを読み出すステップと、を含む方法に関する。
【０００７】
本発明の目的、特徴および利点には、（ｉ）メモリアクセスをより効率的にすることができ、（ｉｉ）実装を簡単にすることができ、かつ／または（ｉｉｉ）オンチップハードウェアを単純化することができる、ビデオデータのインターリーブされた記憶のための方法および／または装置を提供することが含まれる。
【０００８】
本発明の、これらおよび他の目的、特徴および利点は、次の詳細な説明ならびに添付の特許請求の範囲および図面から明らかになろう。
【図面の簡単な説明】
【０００９】
【図１】本発明の内容を示す図である。
【図２】メモリから読み出されるアトムを示す図である。
【図３】メモリから読み出されるアトムを示す別の図である。
【図４】フレームアクセス、フィールドアクセスおよびラインアクセスを示す図である。
【図５】ピッチがタイル幅の奇数倍数であるチェッカー盤パターンにおけるフレームストアのタイリングを示す図である。
【図６】ピッチがタイル幅の偶数倍数であるチェッカー盤パターンにおけるフレームストアのタイリングを示す図である。
【図７】アドレスエイリアシングを示す図である。
【図８】フレームストアのタイリングを示す図である。
【図９】インターリーブされた１９２０幅のフレームストアの割り当てを示す図である。
【図１０】インターリーブされた１９２０幅のフレームストアの８バンク割り当てを示す図である。
【図１１】対応する左右のＤＲＡＭに配置されたアトムを示す図である。
【図１２】ページ境界にまたがることを示す図である。
【図１３】本発明に従ってＤＲＡＭアクセスをペアリングする方法の図である。
【図１４】奇数幅要求を読み出す例を示す図である。
【図１５】奇数幅要求を読み出す例を示す別の図である。
【発明を実施するための形態】
【００１０】
図１を参照すると、本発明の内容を示すシステム５０が示されている。システム５０には、一般に、ブロック（または回路）５２およびブロック（または回路）５４が含まれる。回路５２は、符号器／復号器（コーデック）回路として実現してもよい。回路５２には、一般に、メモリコントローラ（または回路）５６が含まれる。コーデック回路５２は、一連の画像６０ａ−６０ｎを含む入力信号を受信してもよい。画像６０ａ−６０ｎは、一般に、非圧縮形式である。一例において、画像６０ａ−６０ｎは、一連のデジタルフレームであってもよい。別の例において、画像６０ａ−６０ｎは、アナログビデオ信号における部分を表わす抽象であってもよい。どちらの場合にも、回路５２を用いて、信号（例えばＩＭＡＧＥ＿ＤＡＴＡ１）、信号（例えばＩＭＡＧＥ＿ＤＡＴＡ２）、信号（例えばＡＤＤＲＥＳＳ１）および信号（例えばＡＤＤＲＥＳＳ２）を供給および／または受信してもよい。信号ＩＭＡＧＥ＿ＤＡＴＡ１および信号ＩＭＡＧＥ＿ＤＡＴＡ２は、メモリ５４に記憶可能な、フレーム６０ａ−６０ｎを表わす圧縮データ信号であってもよい。信号ＡＤＤＲＥＳＳ１および信号ＡＤＤＲＥＳＳ２は、メモリ５４にアクセスするために用いられるアドレス信号であってもよい。信号ＩＭＡＧＥ＿ＤＡＴＡ１および信号ＩＭＡＧＥ＿ＤＡＴＡ２はまた、データバスと呼んでもよい。同様に、信号ＡＤＤＲＥＳＳ１および信号ＡＤＤＲＥＳＳ２はまた、アドレスバスと呼んでもよい。
【００１１】
メモリ５４には、一般に、ブロック（または回路）６０およびブロック（または回路）６２が含まれる。回路６０は、「右」メモリ回路として実現してもよい。回路６２は、「左」メモリ回路として実現してもよい。用語「右」および用語「左」は、メモリ５４内の異なる、および／または別個の部分を示すために用いられる抽象概念である。一般に、別々に製造されたメモリチップを用いて、メモリ６０およびメモリ６２を実現してもよい。ある実装においては、メモリ６０およびメモリ６２は、２つのポートのどちらからもアクセス可能なメモリ（例えばデュアルポートメモリ）における別個の部分であってもよい。メモリ６０およびメモリ６２の特定の物理的位置は、右メモリ６０がメモリ５４の一部分にあり、かつ左メモリ６２がメモリ５４の別の部分にあるように、変更してもよい。一般に、右メモリ６０は、信号ＩＭＡＧＥ＿ＤＡＴＡ１および信号ＡＤＤＲＥＳＳ１を供給／受信するように構成してもよい。同様に、左メモリ６２は、信号ＩＭＡＧＥ＿ＤＡＴＡ２および信号ＡＤＤＲＥＳＳ２を供給／受信するように構成してもよい。メモリコントローラ５６を用いて、データがメモリ６０およびメモリ６２からどのように供給／検索されるかを仲裁してもよい。メモリコントローラ５６は、メモリ６０とメモリ６２との間アドレスロードを実質的に低減する、メモリ６０およびメモリ６２にアクセスする（またはアドレス指定する）ためのプロトコルを実行してもよい。メモリ６０または６２の一方にアクセスするアドレス信号ＡＤＤＲＥＳＳ１、およびメモリ６０および６２のもう一方にアクセスするアドレス信号ＡＤＤＲＥＳＳ２を実現することによって、メモリ６０および６２間のアドレスおよび／またはデータロードの実質的な低減を達成してもよい。
【００１２】
本発明は、メモリ５４がどのようにアクセスされるかを制御するための方法および／または装置を提供する。ビデオソースの符号化および復号化には、メモリ５４からデータを読み出すことが伴う。データは、画像の小矩形エリアを表わしていると解釈してもよい。かかる小矩形エリアは、オフ格子を変更してもよい。例えば、メモリ５４における任意の実際的な構成が、２nのアドレス境界における自然な配列を有してもよい一方で、読み出す必要がある小矩形エリアは、（ｉ）任意の整数（例えば、画像における（ｘ、ｙ）座標）、および（ｉｉ）小矩形の幅および／または高さが２の累乗になり得ないようなサイズであってもよい。
【００１３】
メモリ５４は、Ｈ．２６４などのビデオソース符号化標準で実現してもよい。Ｈ．２６４は、かかる矩形エリアが、４×４輝度画素と同程度に小さいことを要求する可能性がある。対照的に、以前のビデオソース符号化標準は、８×８輝度画素の最小サイズを有した。Ｈ．２６４符号化における要求によって、矩形データをメモリ５４から効率的に読み出す問題が、著しくより重要になる可能性がある。一例において、メモリ５４は、画像記憶用の商品であるダイナミックランダムアクセスメモリ（ＤＲＡＭ）デバイスとして実現してもよい。ＤＲＡＭは、元は、パーソナルコンピュータ（ＰＣ）における使用に一層適するように設計された。他のメモリデバイス（例えば非ＤＲＡＭデバイス）が、説明している問題に一層適している可能性があるが、しかしまた、ビデオ記憶用のＤＲＡＭを実現することと対比して、高価すぎて実現できない可能性がある。
【００１４】
一般に、ダブルデータレート（ＤＤＲ）ＤＲＡＭデバイスは、ランダムアクセスメモリ（ＲＡＭ）における位置へのランダムアクセスを提供しない。ＤＤＲ  ＤＲＡＭデバイスでは、メモリ５４に対するアクセスの階層構造が、一般に、必要である。メモリ５４から特定のワードを読み出すために、一般に、ＤＲＡＭにおける行またはページを活性化する必要がある。かかる活性化によって、メモリ５４の特定の行における全てのワードは、一時記憶装置に読み出すことが可能になる。一時記憶装置は、ＤＲＡＭデバイス内で、より高速を有してもよい。ＤＤＲ  ＤＲＡＭデバイスは、典型的には、４または８バンクに構成してもよい。各バンクは、所与の時間に、最大でも一行を活性化可能である。バンクは、互いに独立して動作してもよく、バンクのいくつか（または全て）は、単一の行を同時に活性化してもよい。行の活性化後に短期間が経過した後で、ＤＲＡＭデバイス内の一時高速記憶装置からデータを読み出すかまたはそこに書き込んでもよい。ＤＲＡＭに関し、ランダムアクセスは、可能にはなり得ない。なぜなら、データの最小アドレス指定可能単位が、情報の２（ＤＤＲ−１）または４（ＤＤＲ−２）ワードであり得るからである。データの最小アドレス指定可能単位としてアトムを画定してもよい。一般に、単一の転送コマンドは、アトムより長いバーストを転送してもよい。しかしながら、バーストを中断するコマンドを発行して、２または４ワードアトムが効果的に用いられるようにしてもよい。２または４ワードアトムは、たとえ２または４ワードアトムがバースト長より短い場合でも、用いてもよい。活性化される行を意図した全ての動作がひとたび完了すると、活性化された行は、高速一時記憶装置からＤＲＡＭ内の主記憶アレイにデータの全てを書き戻すために、「プリチャージ」する必要があり得る。かかるプリチャージ動作はまた、新しい行が活性化可能になる前に終了するための期間を必要とする可能性がある。
【００１５】
コーデックメモリに関して、ＤＲＡＭは、ＤＲＡＭの全体的な帯域幅に応じるために、３２ビット幅のバス（例えば、少なくとも３２ビット）に結合してもよい。ＤＤＲ−２  ＤＲＡＭに関して、アトムサイズは、１６バイト（例えば、それぞれ、４バイトの４ワード）であってもよい。
【００１６】
図２を参照すると、メモリ５４から読み出されるアトム８０を示す図が示されている。一般に、図２における各正方形は、バイトを表わす。多数のアトムＡ−Ｈが示されている。アトムＤは、明確にするために太字で示されている。アトムが、画素の水平行を表わすように構成されているならば、最悪の場合には、メモリ５４からの４×４読み出し（同様に太字で示されている）は、図示のように最高８つのアトムＡ−Ｈにまたがる可能性がある。本発明を用いなければ、実際に必要な１６バイトのデータをメモリ５４から取り出すために、合計１２８バイトの読み出しが必要になり得る。かかるシナリオにおいて、ＤＲＡＭから読み出されたデータの７／８が破棄される可能性がある。一般に、行は、画像の（ｘ、ｙ）座標空間における画素の行とは関係がない場合がある。
【００１７】
図３を参照すると、メモリ５４のブロックから読み出される８バイトのアトムを示す図が示されている。３２ビットバスが２つの１６ビットの半部に分割され、かつデータが２つの（独立してアドレス指定される）１６ビットのメモリデバイス間でインターリーブされる場合には、各１６ビットのＤＲＡＭは、８バイトのアトムサイズを有する。かかる場合において、最悪の場合に読み出される可能性がある合計データは、６４バイトに低減され得る。
【００１８】
図３に示すような方式が効果的に動作するために（例えば、全ての矩形領域がメモリ５４から読み出されるために）、一般に、（メモリから読み出される全矩形領域用の）アトムの半部が、読み出されて、データバスにおける１６ビットの半部に装着されたＤＲＡＭ（例えばメモリ６０）に配置される。もう一方の半部は、一般に、ＤＲＡＭ（例えばメモリ６２）に配置されて、データバスのもう一方の１６ビットの半部に接続される。
【００１９】
理論的に最悪の場合のアクセスパターンを考察することによって、かかる交互タイプのメモリ構成（例えば、データバスにおける１６ビットの一半部に装着されたＤＲＡＭにアトムの半分を配置し読み出す）の必要性を動機づけることが可能になる。一般に、ビットストリームの復号化は、従来のアプローチを用いてサポートするのが困難な場合がある。かかる場合において、最悪の場合のビットストリームを処理する必要があるアクセスパターンが、現在復号化されているビットストリームによって必要とされる可能性がある。最悪の場合のビットストリームは、メモリ５４から読み出される多数の小さなオフ格子矩形を指してもよい。
【００２０】
同時係属中の出願（１０／３０６，７４９号明細書および１０／３０６，７５１号明細書）において確認される仕事の多くは、左右のＤＲＡＭ６０および６２間で異なるアドレスビットの数を最小限にする要求によって動機づけられた。本発明はまた、高速と、単一のＤＲＡＭでロードされるアドレスライン（例えば、左右のＤＲＡＭ間で異なるアドレスライン）ならびに２つのＤＲＡＭ６０および６２でロードされるアドレスラインの混合があった場合に発生し（かつ回避され）得る電気的問題と、を考慮する。
【００２１】
左右のＤＲＡＭ６０および６２用のアドレス信号ＡＤＤＲＥＳＳ１およびＡＤＤＲＥＳＳ２は、通常、電気的な理由で、それぞれ独立した信号で駆動する必要がある。本発明は、ほんの少数のアドレスビットにおいて差を有するように、左右のＤＲＡＭ６０および６２へのアドレスに制限を加える必要があり得る。かかる制限を除去することによって、さらなる最適化が可能になる。かかる最適化によって、（ｉ）アクセスがより効率的にされ、（ｉｉ）オンチップハードウェアの単純化が可能になり得る。
【００２２】
図４を参照すると、フレームアクセス、フィールドアクセスおよびラインアクセスを示す図が示されている。アトム（例えば、Ａ、Ｃ、Ｅ、Ｇ等）は、一ＤＲＡＭ（例えば、メモリ６０またはメモリ６２のどちらか）に記憶してもよい。他のアトム（例えば、Ｂ、Ｄ、Ｆ、Ｈ等）は、別のＤＲＡＭ（例えば、メモリ６０またはメモリ６２のもう一方）に記憶してもよい。データは、オーバーヘッドを最小限にするために、一連のタイルで構成してもよい。一般に、フレーム、フィールドおよびラインアクセスは、メモリ５４におけるデータの特定の構成によってサポートする必要があり得る。データが、２つのＤＲＡＭデバイス６０および６２間で分配され、かつ各ＤＲＡＭデバイス６０および６２が、データバスの半部（例えば、ＩＭＡＧＥ＿ＤＡＴＡ１およびＩＭＡＧＥ＿ＤＡＴＡ２）に接続される場合には、データは、全ての共通アクセスパターンに対してデータがＤＲＡＭデバイス６０および６２間で平等に分配可能なように、インターリーブしてもよい。
【００２３】
メモリから矩形領域にアクセスするために、フレームおよびフィールドアクセスを、ビデオ復号化（および符号化）ルーチンにおいて共通に用いてもよい。図４は、４×４矩形を示しているが、他の矩形サイズが必要とされる可能性がある。矩形の特定のサイズは、実行される特定のビデオソース符号化標準を満たすために変更してもよい。フレームアクセスおよびフィールドアクセスは、インターレースされたビデオ資料の符号化において区別してもよい。インターレースされたビデオ資料は、放送テレビおよび関連する記録媒体技術において共通に用いてもよい。かかる場合に、各フィールドは、画像における一つ置きの水平ラインからデータをサンプリングしてもよい。ビデオ符号化プログラムは、フレームモードでデータを符号化することを選択してもよいが、この場合には、データは、両方のフィールドから読み出すことが必要になる可能性がある。フィールドモードにおいて、データは、１つのフィールドを構成する、フレームにおける一つ置きのラインから読み出すことが必要になる可能性がある。
【００２４】
一例において、ラインアクセスは、表示処理において必要になる可能性がある。表示処理に関して、データは、走査され、（一般に、追加的な処理ステップの後で）視聴のためにビデオモニタまたはテレビに送られてもよい。３つの識別されたアクセスパターン（例えば、フレーム、フィールドおよびライン）のそれぞれに対して、データの半部は、一方のＤＲＡＭ（例えば、ＤＲＡＭの左部分）に記憶してもよく、データのもう一方の半部は、もう一方のＤＲＡＭ（例えば、ＤＲＡＭの右部分）に記憶してもよい。
【００２５】
メモリ画像データは、フレームストアに記憶してもよい。フレームストアは、ライン毎に互いにインターリーブされる両方のフィールドからのラインを含んでもよい。本発明は、各フィールド用に別個のエリアを割り当てるために、およびメモリコントローラ５６を用いてフレームアクセスを実行するために、特に有用であり得る。かかる実装によって、レガシー符号器／復号器は、本発明と共に働くことが可能になる。しかしながら、本発明の好ましい一フレームストア構造は、フレームアクセスのために、より効率的な帯域幅の利用を提供することが可能である。データをタイル式に記憶して、性能を改善してもよい。より高性能は、ページ境界が横断される回数を最小限にすることによって、達成可能である。タイル状の記憶は、ストリップ要求がクライアントによってなされ、かつ要求のビット（例えばＴｉｌｅＨ）が１に設定された場合に、選択してもよい。ビットＴｉｌｅＨは、ＤＭＡアドレスレジスタの最下位ビットから駆動してもよい。クライアントが、ＤＭＡアドレスレジスタを提供して、画像ベースアドレス（例えばＩｍａｇｅＢａｓｅＡｄｄｒ）を指定してもよい。
【００２６】
タイルを用いて、画像の矩形エリアを記憶してもよい。タイルのサイズは、接続されたＤＲＡＭデバイス６０および６２の全てを横断する一バンクの一ＤＲＡＭ行であってもよい。フレームストアにタイル状の記憶が割り当てられた場合には、その特定のフレームストアにおけるタイルの全ては、ＤＲＡＭ５４において利用可能なバンクの半部に位置してもよい。４バンクデバイスの場合には、所与のフレームストアは、バンク０および２を用いるか、またはフレームストアは、バンク１および３を用いてもよい。バンク０および２とバンク１および３との間のかかる区別は、それぞれ偶数または奇数極性と呼んでもよい。
【００２７】
バイトで測定した場合には、タイルは、正方形（例えば３２×３２）または２：１の矩形（例えば、フレームにおける６４幅×３２高さ）であってもよい。正確な寸法は、実現される特定のＤＲＡＭページのサイズに依存してもよい。記憶は、タイルの倍数単位で効果的に割り当ててもよい。タイルは、タイルがフレームストアを形成するように配列される場合には、チェッカー盤パターンを形成してもよい。
【００２８】
図５を参照すると、フレームストアのタイリングを示す図が示されている。４バンクデバイス用の自然な割り当ては、ピッチがタイル幅の奇数倍数の場合であってもよい。かかる場合に、ラスタ走査順におけるタイルの自然な割り当ては、チェッカー盤パターンを生じ得る。チェッカー盤パターンは、タイルが、確実に、互いに水平または垂直に隣接し、かつ互いに異なるバンクに存在するようにする。アドレス指定論理は、ピッチがタイル幅の倍数でない場合であっても働くことが可能である。しかしながら、以前のデバイスにおけるよりも厳しい制限があり得る。なぜなら、ピッチは、通常、マクロアトム（ｍａｃｒｏ−ａｔｏｍ）幅の倍数であるためである。マクロアトムには、一般に、左メモリ６０に記憶されたアトムおよび右メモリ６２に記憶されたアトムの組み合わせが含まれる。ピッチがタイル幅の倍数でない場合には、性能が、低下する可能性がある。なぜなら、垂直に隣接するタイルが、互いに同じバンクにあるからである。
【００２９】
アドレスＩｍａｇｅＢａｓｅＡｄｄｒは、必ずしも特定のタイル境界を指さなくてもよい。代わりに、アドレスＩｍａｇｅＢａｓｅＡｄｄｒは、マクロアトムの左上部分を指してもよい。アドレスＩｍａｇｅＢａｓｅＡｄｄｒは、特定のフレームストア用のベースアドレスであってもよい。たとえアドレスＩｍａｇｅＢａｓｅＡｄｄｒがタイル境界に整列されていなくても、ピッチがタイル幅の倍数である場合には、チェッカー盤パターンは維持し得る。
【００３０】
図６を参照すると、ピッチがタイル幅の偶数倍数である場合におけるフレームストアのタイリングを示す図が示されている。一例において、ピッチがタイル幅の偶数倍数であり、かつフレームストアがタイルの左手側（しかし、必ずしもタイルの上端ではない）から開始するようにアドレスＩｍａｇｅＢａｓｅＡｄｄｒがなされている場合には、タイルの奇数行におけるタイルは、スワップしてもよい。チェッカー盤パターンは、タイルの左手側からフレームストアを開始することによって維持してもよい。ピッチをタイル幅の偶数倍数に維持することは、画像サイズ（例えば１９２０）にとって重要であり得る。たとえピッチがタイル幅の偶数倍数である場合であっても同様である。
【００３１】
コーデックメモリに関して、かかるスワッピングは、アドレスＩｍａｇｅＢａｓｅＡｄｄｒが、上側バンク（例えば、図６において「バンクｎ＋２」とマークされたバンク）を指す場合に働くことが可能である。アドレスＩｍａｇｅＢａｓｅＡｄｄｒを上側バンクに向けるような利用は、本発明を実施しないデバイスでは実行されなかった。
【００３２】
図７を参照すると、アドレスエイリアシングの例を示す図が示されている。スワッピング方式は、アドレスＩｍａｇｅＢａｓｅＡｄｄｒがタイルの先頭と水平に整列されていない場合には、働かない可能性がある。一般に、アドレスＩｍａｇｅＢａｓｅＡｄｄｒが水平に整列されない場合には、スワッピングは必要ではなく、チェッカー盤が存在しない可能性がある。アドレスＩｍａｇｅＢａｓｅＡｄｄｒの非整列は、予測を形成する際におけるより低い性能につながる可能性がある。
【００３３】
図８を参照すると、フレームストアのタイリングを示す図が示されている。８バンクメモリに関して、ピッチは、４バンクデバイスと同様にプログラムしてもよい。ピッチをタイル幅の奇数倍数の２倍にすることによって、わずかにより高い性能を得ることが可能である。したがって、全ての予測、４つのタイルが出会うコーナーにまたがる予測さえも、互いに同じバンクの２つのタイルには達しなくてもよい。かかる場合に、奇数行においてタイルをいつスワップするかに関する規則は、修正してもよい。８バンクデバイスに関して、非隣接タイルペアは、ピッチが４タイル幅の倍数である場合には、奇数タイル行においてスワップしてもよい。
【００３４】
図９を参照すると、インターリーブされた１９２０幅のフレームストアの割り当てを示す図が示されている。４バンクデバイスの場合には、所与のフレームストアは、ｂａｎｋ０およびｂａｎｋ２を用いるか、またはｂａｎｋ１およびｂａｎｋ３を用いてもよい。区別には、「偶数」および「奇数」極性とそれぞれ呼んでもよい。特定の極性の選択は、アドレスＩｍａｇｅＢａｓｅＡｄｄｒ内に記憶されたバンク極性ビットによって制御してもよい。バンク極性ビットは、フレームストアにおける全ての位置に対して不変のままであってもよい。例えば、バンク極性ビットは、ビット１１に設定してもよい。（アドレスＩｍａｇｅＢａｓｅＡｄｄｒによって、かつバンク極性ビットで画定された）第１の画像タイルにおいて表わされたのと同じ値が、画像の残りに配置されたのと同じ値であってもよい。バンク極性ビットを備えたアドレスＩｍａｇｅＢａｓｅＡｄｄｒが与えられたとすると、次のより高位のビットを用いて、画像内のどのタイルがアドレス指定されているかを定義してもよい。
【００３５】
極性ビットのかかる指定は、フレームストアが割り当てられた場合に、フレームストアが、アドレスの特定の範囲内におけるメモリアドレスの半部を用いてもよいことを意味し得る。同じアドレスＩｍａｇｅＢａｓｅＡｄｄｒを用いる第２のフレームストアを割り当ててもよい。第２のフレームストアは、逆の極性ビットを含んでもよい。第２のフレームストアは、第１のフレームストアとインターリーブされた、メモリアドレスのもう一方の半部を用いてもよい。
【００３６】
図１０を参照すると、インターリーブされた１９２０幅のフレームストアの８バンク割り当てを示す図が示されている。ピッチは、タイル幅の奇数倍数の２倍に設定してもよい。８バンクデバイスに関して、割り当ては、４バンクデバイスと同様に行ってもよい。一般に、タイル幅の奇数倍数の２倍にピッチを設定可能な８バンク割り当てを達成するために、アドレス指定論理に対して大きな変更はなくてもよい。バンク数に依存し得る論理は、ピッチが偶数または４の倍数であるタイルをスワップするために用いられる論理と類似していてもよい。差は、ピッチレジスタにプログラムされた値（例えばＲｏｗＷｉｄｔｈ）であってもよい。
【００３７】
メモリコントローラ５６上のソフトウェア（または実行されるファームウェア）は、８バンクメモリを駆動する場合に、より高性能を生じ得るピッチ値を用いることを選択してもよい。かかるソフトウェアは、４バンク割り当てを用いて、４バンクメモリデバイスで得られたであろう性能と同じ性能を達成してもよい。極性ビットは、最下位バンクビット（例えばビットＢＡ０）であってもよい。
【００３８】
コーデックメモリに関して、ＤＲＡＭ行（例えば、一バンクにおける、および接続されたＤＲＡＭパッケージの全てにわたる一行）のサイズは、１Ｋ、２Ｋ、４Ｋ等であってもよい。しかしながら、ＤＲＡＭ行の特定のサイズは、特定の実装の設計基準を満たすために変更してもよい。
【００３９】
図１０はまた、インターリーブされた１９２０幅のフレームストアの８バンク割り当てを示す。タイルの幅および高さは、次の表１に提示可能である。
【００４０】
【表１】
0005623494.tif 000002
【００４１】
サポートされるメモリ構成のそれぞれには、一般に、アトム用のサポートが含まれるが、この場合に、アトムは、メモリの最小アドレス指定可能単位と考えてもよい。
【００４２】
本発明に従ってコーデックメモリ上でサポートされるデュアルメモリアプローチは、小さなオフ格子矩形を読み出す場合には、帯域幅を最大限に活用することが可能である。デュアルメモリアプローチは、同じデータバス幅が単一のアドレスで用いられる場合にアトムサイズの半分が「自然に」生じ得るようにすることによって、小さなオフ格子矩形を読み出す場合に、帯域幅を最大限に活用することが可能である。効率的であるように、データバスの両半部は、並列に用いてもよい。かかる条件は、（ｉ）フレームで構成された予測、（ｉｉ）フィールドで構成された予測（これらは、１つおきの走査ラインからのデータを必要とする可能性がある）、および（ｉｉｉ）ラインで構成されたデータを読み出す場合に、真であり得る。効率性を達成するために、データは、左右のＤＲＡＭ６０および６２間に繰り返しパターンで分配し、マクロアトムを画定してもよい。
【００４３】
図１１を参照すると、対応する左右のＤＲＡＭに配置されたアトムを示す図が示されている。図１１は、アトムのそれぞれの線形アドレスを示すが、この場合に、「ａ」は、バイトでのアトムのサイズであり、「ｗ」は、タイルの幅であり、「バイトｎ」は、２ａの倍数であり、「ｎ／ｗの整数部分」は、４の倍数である。
【００４４】
線形アドレス指定を用いるデバイス（プロセッサなど）からマクロアトムをアドレス指定する場合には、（マクロアトム内の）アトムの下側２行におけるアトムは、上側２行に配置されたアトムと反対の順序でアドレス指定してもよい。
【００４５】
アドレス指定を簡単にするために、マクロアトムは、タイルを画定する同じ格子と整列してもよい。ストリップアクセスに関して、ＴｉｌｅＨ＝１の場合には、アドレスＩｍａｇｅＢａｓｅＡｄｄｒは、マクロアトムにおける左上アトムのアドレスを指す必要があり得る。このようにして、マクロアトムはまた、所定の画像符号化標準に従って、ブロック、マクロブロックおよびフィールド／フレームを画定する格子に対して整列させてもよい。
【００４６】
バイトは、ラスタ走査順にバスＩＭＡＧＥ＿ＤＡＴＡ１およびＩＭＡＧＥ＿ＤＡＴＡ２上で転送してもよい。ラスタ走査順は、（ｉ）行が左から右に走査されること、および（ｉｉ）行が上から下に転送されることとして定義してもよい。ラスタ走査順にデータバスＩＭＡＧＥ＿ＤＡＴＡ１およびＩＭＡＧＥ＿ＤＡＴＡ２上でバイトを転送することによって、要求を受けてサービスするために必要とされるアトムは、ラスタ走査順にメモリから読み出すことが可能になる。かかる転送が不可能な場合には、要求を受けてサービスするために必要とされるアトムは、ラスタ走査順にメモリ５４から読み出すことを必要とされない場合がある。ラスタ走査順の例外は、本発明の主要な部分を提供し得る。
【００４７】
本発明は、メモリ５４からデータを読み出す場合に適用可能である。ある状況において、本発明は、メモリ５４にデータを書き込む場合に必要とされない場合がある。なぜなら、コーデックメモリ用に用いられるビデオ符号器／復号器がオフ格子アクセスを実行する必要がない場合に、オフ格子アクセス用に期待される高性能が、問題になり得ないからである。任意のサイズの矩形におけるオフ格子書き込み用のデータバスＩＭＡＧＥ＿ＤＡＴＡ１およびＩＭＡＧＥ＿ＤＡＴＡ２用の定義されたプロトコルに適合するために、アトムは、単にラスタ走査順にアクセスされてもよい。かかる状況において、単一のＤＲＡＭ（例えば、左または右）のみの使用は、いかなる問題も生じる可能性がない。
【００４８】
図１２を参照すると、ページ境界にまたがることを示す図が示されている。要求がなされる場合には、多くのタイルにまたがる可能性がある。ストラドル（ｓｔｒａｄｄｌｅ）は、単一のクロックサイクルにおいて、（ｉ）アドレスが、左ＤＲＡＭ６０に発行され、かつ（ｉｉ）アドレスが、右ＤＲＡＭ６２に発行される場合を指してもよい。ストリップ要求を行ってもよい。ストリップ要求（またはストリップ）は、ラインアクセスであってもよく、または多くのタイルにまたがってもよい。ストリップ要求は、単一の走査ラインの高さであってもよい。一例において、ストリップは、最高４つの隣接するタイルに達し得る先読みであってもよい。先読みは、メモリからデータを読み出す場合に、効率的な処理と共に複雑化を引き起こす可能性がある。本発明は、かかる複雑化を防ぐために、できるだけ多くのクロックサイクルにおいて並列に左右のＤＲＡＭ６０および６２の両方を用いることができる。
【００４９】
一般に、左右のＤＲＡＭ６０および６２に発行されるバンクアドレスは、独立して選択してもよい。かかる選択は、左のＤＲＡＭ６２が１つのタイルをアドレス指定でき、かつ右のＤＲＡＭ６０が別の隣接するタイルをアドレス指定できるようにＲＥＡＤ（またはＷＲＩＴＥ）コマンドが発行される場合に、用いてもよい。バンク極性ビットが、所与のフレームストアにおける全ての位置に対して不変であってもよいので、バンクアドレスの最下位ビットは、左右のＤＲＡＭ６０および６２によって共有可能である。
【００５０】
さしあたり垂直次元における問題を無視すると、左右のＤＲＡＭ６０および６２間の選択は、ストリップを単一の矩形として処理してもよいことを意味し得る。ストリップは、アトム幅の偶数または奇数幅であってもよい。ストリップが偶数幅である場合には、各走査ライン内において、左右のＤＲＡＭ６０および６２は、それぞれ、ストリップ用のアトムの半部をメモリから読み出してもよい。ストリップがアトムの奇数幅である場合には、「余分な」アトムが、各ラインの右手に存在する可能性があり、余分なアトムは、左または右のＤＲＡＭ６０または６２のどちらかのために用いてもよい。
【００５１】
４バンクＤＲＡＭの場合において、フレームストアは、２つのバンクだけを用いてもよい。バンクは、垂直に隣接するタイルがバンクアドレスにおいて異なるように、（高性能が達成されることになる場合には）チェッカー盤に配列してもよい。本発明に関して、規則セットを実行して、図１３に関連して説明する方法が、確実に、（ｉ）アクセスをペアリングする間に、誤った決定をしないように、かつ（ｉｉ）多くのページオーバーヘッドをもたらすことがないようにすることができる。かかる規則には、以下のものを含んでもよい。
（ｉ）ストリップが垂直タイル境界（例えば、２つの水平に隣接するタイル間の）にまたがらない場合には、左右のＤＲＡＭアドレスは、水平タイル境界にまたがってもよい。
（ｉｉ）ストリップが、垂直タイル境界にまたがる場合には、左右のＤＲＡＭアドレスは、水平タイル境界にまたがらなくてもよい。アドレスは、４つのバンクが同時にプリチャージされる可能性があるので、水平タイル境界にまたがってはならない。
（ｉｉｉ）要求されたストリップが、まさに１つのタイル境界を横断する場合には（例えば、タイル境界は、水平にせよ垂直にせよ）、（ａ）タイルの両方は、同時に開いてもよく、かつ（ｂ）アクセスは、境界にまたがってもよい。
（ｉｖ）ストリップが、４つのタイルが出会うコーナーにまたがる場合には、優先権は、水平に隣接するタイル（互いに同時に開かれる水平に隣接するタイル）を有するタイル境界に与えてもよい）。上側のタイルペアにおける最後のアクセスがなされた場合には、下側のタイルをアクセスしてもよい。
【００５２】
８バンクＤＲＡＭの場合において、ピッチおよびＩｍａｇｅＢａｓｅＡｄｄｒが、適切なチェッカー盤が存在するようなものである場合には、左右のＤＲＡＭアドレスは、水平および垂直タイル境界の両方にまたがってもよい。水平および垂直境界両方のストラドリングが起こり得るのは、ストリップがまたがる４つのタイルのそれぞれが別個のバンクにあるからである。
【００５３】
幅においていくつかのタイルにまたがるラインアクセスの場合には（例えば、ラインアクセスが、単に、単一のライン高さである場合には）、多数のページペナルティ（ｐａｇｅ  ｐｅｎａｌｔｙ）が生じる可能性がある。ページペナルティは、性能を損なわずに払うことが可能である。アクセスの左の方のタイルが、再アクセス可能ではないので（要求が、単に、単一のライン高さであるからである）、さらなる効率的なアクセスパターンは、不可能である。
【００５４】
大きな矩形ストリップは、多数の（例えば４を超える）タイルに達し、１を超えるライン高さになる可能性がある。大きな矩形ストリップに関して、本発明に従って定義されるアクセスルーチンは、タイルが何度も開閉される可能性があるので、次善であると考えてもよい。しかしながら、かかる問題は、回避可能である。なぜなら、多数回のタイルの開閉は、対象とするビデオプログラムのどれにも決して生じ得ないからである。メモリコントローラ５６は、かかる要求（例えば、正確なデータが、正確な位置から読み出されるか、またはそこに書き込まれるという意味で）で正確に動作するために必要であり得る。
【００５５】
図１３を参照すると、本発明に従ってＤＲＡＭアクセスをペアリングする方法１００が示されている。方法１００には、一般に、状態（またはステップ）１０２、状態（またはステップ）１０４、状態（またはステップ）１０６、状態（またはステップ）１０８、状態（またはステップ）１１０、状態（またはステップ）１１２、状態（またはステップ）１１４および状態（またはステップ）１１６が含まれる。状態１０４は、第１のメモリ部分（または左ＤＲＡＭ）および第２のメモリ部分（または右ＤＲＡＭ）を横断するメモリアドレスを有する複数のアトムを形成してもよい。状態１０６は、アトムの一部を横断してストリップ（またはストリップ要求）を画定してもよい。状態１０８は、ストリップ内の第１のアトムを指定してもよい。
【００５６】
一般に、各クロックサイクルに対して、２つのＤＲＡＭアドレスを生成してもよい。第１のＤＲＡＭアドレスは、ラスタ走査順にアクセスされることになる、まだアクセスされていない次のアトムとして常に生成してもよい。ストリップの先頭において、第１のＤＲＡＭアドレス（または第１のアトム）は、ストリップの左上部分におけるアトムのアドレスとして定義してもよい。各クロックサイクルに対して、第１のＤＲＡＭアドレスは、左ＤＲＡＭ６２または右ＤＲＡＭ６０のどちらかにあってもよい。ストリップ内において左ＤＲＡＭ６２または右ＤＲＡＭ６０に位置しているとして第１のアトムの指定することは、特定の実装の設計基準を満たすために、変更してもよい。
【００５７】
状態１１０は、第１のアトムとペアリングされる第２のアトムを捜し出してもよい。所与の第１のＤＲＡＭアドレスのために、第２のＤＲＡＭアドレス（または第２のアトム）を捜し出す必要があり得る。第２のＤＲＡＭアドレスは、クロックサイクルにおける第１のアトムと反対のＤＲＡＭに発行してもよい。
【００５８】
状態１１０は、以下のペアリストを用いて、どの第２のアトムが第１のアトムとペアリングされるかを特定してもよい。
（ｉ）第１のアトムのすぐ右のアトムは、第２のアトムであってもよい。
（ｉｉ）要求されたストリップにおける第１のアトムのすぐ下のアトムは、第２のアトムであってもよい。フィールドアクセスの場合には、捜し出される第２のアトムは、フレームにおける第１のアトムから垂直に２走査ライン下のアトムであってもよい。
（ｉｉｉ）フレームアクセスの場合には、第２のアトムは、要求されたストリップにおける第１のアトムから垂直に２走査ライン下に位置してもよい。一般に、フィールドアクセスに関して、リストにおけるオプション（ｉ）および（ｉｉ）だけを考慮してもよい。
【００５９】
ペアリストにおける可能なペアのリスティングは、優先順に基づいてもよい。１を超える第２のアトムが捜し出され、かつ多数の第２のアトムが、それぞれ、第１のアトムとの正当なペアを形成する場合には、ペアリストのトップの最も近くに位置する第２のアトムを選択してもよい。
【００６０】
状態１１２は、第１のアトムとペアリングされた場合に、第２のアトムが正当なペアを形成するかどうかを判定してもよい。アトムの正当なペアは、右メモリ６０および左メモリ６２から同時に読み出してもよい。かかる正当なペアは、画像内の第１および第２のアトム間において特定の空間的関係を有してもよい。ペアリストにおいて述べた条件を介して形成されたペアのそれぞれは、第２のアトムが第１のアトムと正当なペアを形成するかどうかを判定するためにテストしてもよい。正当なペアを形成するために、第２のアトムは、
（ｉ）第１のアトムと反対のＤＲＡＭ（例えば、左または右）に配置されていてもよく、
（ｉｉ）ストリップが垂直タイル境界にまたがる場合には、水平タイル境界を横断してはならず、
（ｉｉｉ）第１のアトムと第２のアトムとの間の行アドレスが同じである場合は、第１のアトムと同じ行アドレスを有してもよく、
（ｉｖ）ＤＲＡＭから読み出されていなくてもよい。
【００６１】
一般に、フレームアクセスに関して、アトムは、１つのラインにおいて読み出してもよい。なぜなら、アトムは、垂直に２つのアトムの下に位置してもよいからである。続くラインにおいて、同じアトムは、読み出されたアトムの下に位置してもよい。しかしながら、同じアトムは、再び読み出されるべきではない。代わりに、現在のラインから２ライン下のアトムを選択して、第１のアトムと正当なペアを形成する第２のアトムとして指定してもよい。
【００６２】
奇数アトムは、ストリップの右側で読み出してもよい。一般に、パイプライン段、第１のレジスタおよび第２のレジスタを用い、ラスタ走査順から外れてアトムを読み出してもよい。
【００６３】
図１４を参照すると、１００の方法に従って奇数のアトムを読み出す例を示す図が示されている。複数のアトム（例えばＡ−ＡＶ）は、メモリを横断して形成または配置してもよい。アトムＡ−ＡＶは、左ＤＲＡＭまたは右ＤＲＡＭに記憶してもよい。ストリップは、アトムＡ−ＡＶの一部の回りに形成してもよい。各ストリップの先頭において、バレルシフタが、パイプライン段（例えばＰ１）およびパイプライン段（例えばＰ２）からアトムを受信してもよい。未処理の奇数アトムが読み出された後で、パイプライン段Ｐ２は、バスの左側にアトムを供給してもよい。２つの未処理の奇数アトムが日和見的に読み出された後で、パイプライン段（例えばＰ１）は、バスの左側およびバスの右側の両方にアトムを供給してもよい。一時レジスタ（例えばＴ１）および一時レジスタ（例えばＴ２）は、アトムを一時的に記憶してもよい。アトムが、一時レジスタＴ１および一時レジスタＴ２から供給されるたびに、未処理の奇数アトムのカウントを減分してもよい。
【００６４】
第１のクロックサイクルにおいて、アトムＮは左ＤＲＡＭから読み出され、アトムＯは右ＤＲＡＭから読み出される。
【００６５】
しかしながら、第２のクロックサイクルにおいて、アトムＰは、アトムＰが必要でない時と同じ時に自然に読み出し可能になるアトムＱを読み出してもよい。アトムＱが必要ではないので、垂直にアトムＰの下のアトム（例えばアトムＶ）を選択してもよい。しかしながら、アトムＶは、それがアトムＰと同じＤＲＡＭに記憶されるので、アトムＰと同じサイクルに読み出さなくてもよく、したがって、アトムＡＢを読み出してもよい。アトムＡＢが、順序を外れて読み出されたので、アトムＡＢは、一時レジスタＴ０に記憶してもよい。
【００６６】
第３のクロックサイクルにおいて、アトムＴおよびＵを読み出してもよい。
【００６７】
第４のクロックサイクルにおいて、アトムＶを読み出してもよい。アトムＷは、通常アトムＶと自然なペアを形成するが、必要とされない可能性がある。アトムＡＢは、それがアトムＶと反対のＤＲＡＭに記憶されているので、アトムＶと同時に読み出してもよい。しかしながら、ＡＢは、既に、第２のクロックサイクルで読み出されている。アトムＡＢが、既に読み出されているので、アトムＡＨを読み出してもよい。アトムＡＨが、順序を外れて読み出されたので、アトムＡＨは、一時レジスタＴ０に記憶してもよい。一時レジスタＴ０が既に占められているので、アトムＡＨは、一時レジスタＴ１に記憶してもよい。
【００６８】
第５のクロックサイクルにおいて、アトムＺおよびＡＡを読み出してもよい。この時点において、走査ラインにおけるアトムの全て（例えば、アトムＺ、ＡＡおよびＡＢ）は読み出された。第４のクロックサイクルに関連して言及したように、アトムＡＢは、既に読み出されて一時レジスタＴ０に記憶された。
【００６９】
第６のクロックサイクルにおいて、アトムＡＦおよびＡＧを読み出してもよい。この時点において、走査ラインにおけるアトムの全て（例えば、アトムＡＦ、ＡＧおよびＡＭ）は読み出された。第４のクロックサイクルに関連して言及したように、アトムＡＨは、既に読み出されて一時レジスタＴ１に記憶された。
【００７０】
第７のクロックサイクルにおいて、アクセスパターンは、最初からやり直してもよい。アトムＡＬおよびＡＭを読み出してもよい。
【００７１】
第８のクロックサイクルにおいて、アトムＡＮを読み出してもよい。一般に、アクセスは、偶数または奇数のアトムをメモリから読み出すために必要であり得る。奇数または偶数のアトムは、ストリップ内に含まれるアトムの数に基づいてもよい。１５のアトムをメモリから読み出す必要があり得るので、アトムＡＮとペアリングされるものがない可能性がある。
【００７２】
コーデックメモリに関して、一転送の最後のアトム（例えば、アトムＡＮ）を、次の転送の第１のアトムとペアリングするように試みる必要はない。かかる試みは可能であるが、非常にわずかな性能の向上のために、制御回路の複雑さが著しく増加する可能性がある。
【００７３】
ストリップにおけるアトムがメモリから読み出されると、アトムは、バレルシフタの入力部に供給してもよい。アトムは、ラスタ走査順にバレルシフタに転送してもよい。例えば、アトムＡＦが転送されるサイクルにおいて、アトムＡＢは、同じサイクルで転送してもよい。アトムＡＢは、転送における正確な場所を回復するために、一時レジスタＴ０から取り出してもよい。同様に、アトムＡＭもまた、アトムＡＧが転送された後で、転送における正確な場所で転送してもよい。ＡＭが転送されるのに先立って、アトムＡＨは、一時記憶装置Ｔ１から受信してもよい。
【００７４】
図１５を参照すると、８バイトアトムに対する奇数（アトムの数）幅要求を読み出す別の例を示す図が示されている。本発明に従うコーデックメモリに関して、８バイトアトムは、ＤＤＲ−２  ＤＲＡＭで生じる可能性がある。ＤＤＲ−２  ＤＲＡＭは、アトムの８バイトを４ワードとして転送してもよい。各ワードには、２バイトを含んでもよい。最初の２バイトは、一クロックサイクルで転送してもよく、最後の２バイトは、第２のクロックサイクルで転送してもよい。
【００７５】
パイプライン段Ｐ１およびパイプライン段Ｐ２は、それぞれ、８バイトアトムを保持してもよい。一時レジスタＴ１および一時レジスタＴ２は、それぞれ、８バイトアトムを保持してもよい。一時レジスタＴ１および一時レジスタＴ２は、１つおきのクロックサイクルにだけクロックしてもよい。バレルシフタに入力される値は、左ＤＲＡＭまたは右ＤＲＡＭ（例えば、決して両方の混合ではない）から直接得てもよい。一般に、図１３に関連して言及したように、未処理の奇数アトムがない場合には、データは、パイプライン段Ｐ２から取ってもよい。１つの未処理の奇数アトムがある場合には、代替として、データは、パイプライン段Ｐ１およびパイプライン段Ｐ２から取ってもよい。
【００７６】
本発明によって、バンクおよび列アドレスを、互いに独立して左ＤＲＡＭおよび右ＤＲＡＭに供給することが可能になる。
【００７７】
バンクおよび列アドレスを独立して左右のＤＲＡＭに供給することによって、水平および垂直次元の両方においてメモリから読み出し可能な領域の配列にかけられた制限を単純化することが可能になる。
【００７８】
本発明は、偶数または奇数アトムのどちらかで開始し、そのアトムを、水平次元に向けて、そのアトムのすぐ右のアトムとペアリングしてもよい。かかる構成は、連続してペアを読み出すために、単に、走査ラインに沿って左から右へ進んでもよい。要求されたストリップの右手には、すぐ右に位置する隣接アトムとペアリングできない余分なアトムがあってもよい。かかる状況は、各行においてアクセスされるアトムの数が奇数である場合に生じる可能性がある。
【００７９】
対応する同時係属中の出願（１０／３０６，７４９号明細書および１０／３０６，７５１号明細書）で開示されているようなアドレス制限に関して、偶数のアトムは、そのすぐ右に位置するアトムとのみペアリングしてもよい。なぜなら、アトムは、各それぞれのＤＲＡＭにおいて、互いに同じアドレスを共有するからである。ストリップが奇数アトムで開始する場合には、奇数アトムは、自然にはペアリングされ得ない。奇数アトムから垂直に下のアトムを読み出す必要があり得る。ストリップが、偶数のアトムにアクセスする幅であるが、しかし奇数のアトムで開始するように配列されている場合には、データの読み出しは、ストリップの左エッジおよびストリップの右エッジの両方で適用してもよい。かかる読み出しは、利用可能な４つの一時レジスタ（ストリップの左右のエッジのそれぞれのために２つ）を必要とする可能性がある。かかる読み出しのために必要とされる追加的なパイプライン段は、メモリからの一つ一つの読み出しが払う追加的な待ち時間を必要とする可能性がある。
【００８０】
同様に、垂直次元において、本発明は、アドレス制限を緩和し得る。かかる制限には、マクロアトム内でのみ日和見的読み出しを行いうるということが含まれる可能性がある。第１の行がマクロアトムの格子と整列されないようにストリップ要求が位置合わせされた場合に、日和見的読み出しのいくつかは、本発明を用いて利用可能になり得る。
【００８１】
本発明はまた、独立したバンクアドレスを左右のＤＲＡＭに提供可能である。かかる構成によって、左右のＤＲＡＭへの同時アクセスは、タイル境界にまたがることが可能になる。４バンクチェッカー盤が、フレームストア用の２つのＤＲＡＭバンクに対して通常用いられる場合には、タイル境界は、水平タイル境界を除いて、かかるストラドリングゆえに無視してもよい。アクセス時間を決定する際にタイル境界が役割を果たす場合は限られて、恐らく達成可能な最小値に一貫して接近し得るアクセス時間統計につながる。
【００８２】
本明細書で用いるように、用語「同時」は、いくらかの共通の期間を共有するイベントを示すように意味されているが、しかしこの用語は、同じ時点で始まるか、同じ時点で終了するか、または同じ持続期間を有するイベントに限定されるようには意味されていない。
【００８３】
本発明の好ましい実施形態に関連して、本発明を特に図示および説明したが、本発明の範囲から逸脱することなく、形態および詳細における様々な変更を行い得ることが、当業者には理解されよう。
【図１】
0005623494.tif 000003
【図２】
0005623494.tif 000004
【図３】
0005623494.tif 000005
【図４】
0005623494.tif 000006
【図５】
0005623494.tif 000007
【図６】
0005623494.tif 000008
【図７】
0005623494.tif 000009
【図８】
0005623494.tif 000010
【図９】
0005623494.tif 000011
【図１０】
0005623494.tif 000012
【図１１】
0005623494.tif 000013
【図１２】
0005623494.tif 000014
【図１３】
0005623494.tif 000015
【図１４】
0005623494.tif 000016
【図１５】
0005623494.tif 000017