JP5190460B2 - ビデオデータのインターリーブされた記憶用のシステム - Google Patents

ビデオデータのインターリーブされた記憶用のシステム Download PDF

Info

Publication number
JP5190460B2
JP5190460B2 JP2009534581A JP2009534581A JP5190460B2 JP 5190460 B2 JP5190460 B2 JP 5190460B2 JP 2009534581 A JP2009534581 A JP 2009534581A JP 2009534581 A JP2009534581 A JP 2009534581A JP 5190460 B2 JP5190460 B2 JP 5190460B2
Authority
JP
Japan
Prior art keywords
atom
memory
strip
atoms
pair
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2009534581A
Other languages
English (en)
Other versions
JP2010507868A (ja
Inventor
ワイズ,エイドリアン
ダーンズ,ジェイムス
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
LSI Corp
Original Assignee
LSI Logic Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by LSI Logic Corp filed Critical LSI Logic Corp
Publication of JP2010507868A publication Critical patent/JP2010507868A/ja
Application granted granted Critical
Publication of JP5190460B2 publication Critical patent/JP5190460B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/907Television signal recording using static stores, e.g. storage tubes or semiconductor memories
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/43Hardware specially adapted for motion estimation or compensation
    • H04N19/433Hardware specially adapted for motion estimation or compensation characterised by techniques for memory access
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Dram (AREA)
  • Television Signal Processing For Recording (AREA)
  • Memory System (AREA)
  • Image Input (AREA)

Description

本出願は、参照により全体として本明細書に援用される同時係属中の出願第10/306,749号および10/306,751号に関連する場合がある。本発明は、一般に、データ記憶に関し、特に、ビデオデータのインターリーブされた記憶用の方法および/または装置に関する。
従来の一ビデオ記憶アプローチにおいて、1920画素幅×1080画素高さの画像は、1920バイトの1080行として記憶することができる。かかるアプローチは、1024バイトのメモリページサイズを有することになる。したがって、1080行の画像は、多くのページ数にわたって広げられることになる。画像を記憶する場合には、第1の行における全てのバイトに、各次の行のバイトが続く。画像が処理される(すなわち圧縮される)場合には、画像の9×9ブロックが操作される。ラスタ形式で記憶された9×9ブロックをロードする場合には、少なくとも9および恐らくは10ページが検索される。
従来の一記憶アプローチにおいて、画像は、多数の32×32画素タイルに分割される。タイルのそれぞれは、1つの1024バイトページとして隣接して記憶される。かかる従来のアプローチによって、他の従来方法よりも、9×9ブロックごとに転送されるページ数が低減される。
従来の別の記憶アプローチにおいて、タイルのそれぞれの内部のデータが、ラスタ形式で記憶される。画像をタイルとして記憶することによって、9×9ブロック(または32×32までの任意のサイズのブロック)(または動き補償ブロック)は、最大でも4ページを検索することによって転送することができる。かかるアプローチにおいて、インターレースされた画像は、別々に記憶された各フィールドを有する。
現代のメモリデバイスに適応可能な、データのインターリーブされた記憶を実行するための方法および/または装置を実現することが望ましいであろう。
本発明は、第1のメモリ部分および第2のメモリ部分を有するメモリ内に配置されたアトムを読み出す方法であって、(a)メモリを横断してアトムを配置するステップと、(b)アトムの一部を横断してストリップを画定するステップと、(c)ストリップ内で第1のアトムを指定するステップと、(d)第1のアトムとペアリングされるように第2のアトムを捜し出すステップと、(e)第1のアトムとペアリングされた場合に第2のアトムが正当なペアを形成するかどうかを判定するステップと、(f)第1のメモリ部分および第2のメモリ部分から正当なペアを読み出すステップと、を含む方法に関する。
本発明の目的、特徴および利点には、(i)メモリアクセスをより効率的にすることができ、(ii)実装を簡単にすることができ、かつ/または(iii)オンチップハードウェアを単純化することができる、ビデオデータのインターリーブされた記憶のための方法および/または装置を提供することが含まれる。
本発明の、これらおよび他の目的、特徴および利点は、次の詳細な説明ならびに添付の特許請求の範囲および図面から明らかになろう。
本発明の内容を示す図である。 メモリから読み出されるアトムを示す図である。 メモリから読み出されるアトムを示す別の図である。 フレームアクセス、フィールドアクセスおよびラインアクセスを示す図である。 ピッチがタイル幅の奇数倍数であるチェッカー盤パターンにおけるフレームストアのタイリングを示す図である。 ピッチがタイル幅の偶数倍数であるチェッカー盤パターンにおけるフレームストアのタイリングを示す図である。 アドレスエイリアシングを示す図である。 フレームストアのタイリングを示す図である。 インターリーブされた1920幅のフレームストアの割り当てを示す図である。 インターリーブされた1920幅のフレームストアの8バンク割り当てを示す図である。 対応する左右のDRAMに配置されたアトムを示す図である。 ページ境界にまたがることを示す図である。 本発明に従ってDRAMアクセスをペアリングする方法の図である。 奇数幅要求を読み出す例を示す図である。 奇数幅要求を読み出す例を示す別の図である。
図1を参照すると、本発明の内容を示すシステム50が示されている。システム50には、一般に、ブロック(または回路)52およびブロック(または回路)54が含まれる。回路52は、符号器/復号器(コーデック)回路として実現してもよい。回路52には、一般に、メモリコントローラ(または回路)56が含まれる。コーデック回路52は、一連の画像60a−60nを含む入力信号を受信してもよい。画像60a−60nは、一般に、非圧縮形式である。一例において、画像60a−60nは、一連のデジタルフレームであってもよい。別の例において、画像60a−60nは、アナログビデオ信号における部分を表わす抽象であってもよい。どちらの場合にも、回路52を用いて、信号(例えばIMAGE_DATA1)、信号(例えばIMAGE_DATA2)、信号(例えばADDRESS1)および信号(例えばADDRESS2)を供給および/または受信してもよい。信号IMAGE_DATA1および信号IMAGE_DATA2は、メモリ54に記憶可能な、フレーム60a−60nを表わす圧縮データ信号であってもよい。信号ADDRESS1および信号ADDRESS2は、メモリ54にアクセスするために用いられるアドレス信号であってもよい。信号IMAGE_DATA1および信号IMAGE_DATA2はまた、データバスと呼んでもよい。同様に、信号ADDRESS1および信号ADDRESS2はまた、アドレスバスと呼んでもよい。
メモリ54には、一般に、ブロック(または回路)60およびブロック(または回路)62が含まれる。回路60は、「右」メモリ回路として実現してもよい。回路62は、「左」メモリ回路として実現してもよい。用語「右」および用語「左」は、メモリ54内の異なる、および/または別個の部分を示すために用いられる抽象概念である。一般に、別々に製造されたメモリチップを用いて、メモリ60およびメモリ62を実現してもよい。ある実装においては、メモリ60およびメモリ62は、2つのポートのどちらからもアクセス可能なメモリ(例えばデュアルポートメモリ)における別個の部分であってもよい。メモリ60およびメモリ62の特定の物理的位置は、右メモリ60がメモリ54の一部分にあり、かつ左メモリ62がメモリ54の別の部分にあるように、変更してもよい。一般に、右メモリ60は、信号IMAGE_DATA1および信号ADDRESS1を供給/受信するように構成してもよい。同様に、左メモリ62は、信号IMAGE_DATA2および信号ADDRESS2を供給/受信するように構成してもよい。メモリコントローラ56を用いて、データがメモリ60およびメモリ62からどのように供給/検索されるかを仲裁してもよい。メモリコントローラ56は、メモリ60とメモリ62との間アドレスロードを実質的に低減する、メモリ60およびメモリ62にアクセスする(またはアドレス指定する)ためのプロトコルを実行してもよい。メモリ60または62の一方にアクセスするアドレス信号ADDRESS1、およびメモリ60および62のもう一方にアクセスするアドレス信号ADDRESS2を実現することによって、メモリ60および62間のアドレスおよび/またはデータロードの実質的な低減を達成してもよい。
本発明は、メモリ54がどのようにアクセスされるかを制御するための方法および/または装置を提供する。ビデオソースの符号化および復号化には、メモリ54からデータを読み出すことが伴う。データは、画像の小矩形エリアを表わしていると解釈してもよい。かかる小矩形エリアは、オフ格子を変更してもよい。例えば、メモリ54における任意の実際的な構成が、2nのアドレス境界における自然な配列を有してもよい一方で、読み出す必要がある小矩形エリアは、(i)任意の整数(例えば、画像における(x、y)座標)、および(ii)小矩形の幅および/または高さが2の累乗になり得ないようなサイズであってもよい。
メモリ54は、H.264などのビデオソース符号化標準で実現してもよい。H.264は、かかる矩形エリアが、4×4輝度画素と同程度に小さいことを要求する可能性がある。対照的に、以前のビデオソース符号化標準は、8×8輝度画素の最小サイズを有した。H.264符号化における要求によって、矩形データをメモリ54から効率的に読み出す問題が、著しくより重要になる可能性がある。一例において、メモリ54は、画像記憶用の商品であるダイナミックランダムアクセスメモリ(DRAM)デバイスとして実現してもよい。DRAMは、元は、パーソナルコンピュータ(PC)における使用に一層適するように設計された。他のメモリデバイス(例えば非DRAMデバイス)が、説明している問題に一層適している可能性があるが、しかしまた、ビデオ記憶用のDRAMを実現することと対比して、高価すぎて実現できない可能性がある。
一般に、ダブルデータレート(DDR)DRAMデバイスは、ランダムアクセスメモリ(RAM)における位置へのランダムアクセスを提供しない。DDR DRAMデバイスでは、メモリ54に対するアクセスの階層構造が、一般に、必要である。メモリ54から特定のワードを読み出すために、一般に、DRAMにおける行またはページを活性化する必要がある。かかる活性化によって、メモリ54の特定の行における全てのワードは、一時記憶装置に読み出すことが可能になる。一時記憶装置は、DRAMデバイス内で、より高速を有してもよい。DDR DRAMデバイスは、典型的には、4または8バンクに構成してもよい。各バンクは、所与の時間に、最大でも一行を活性化可能である。バンクは、互いに独立して動作してもよく、バンクのいくつか(または全て)は、単一の行を同時に活性化してもよい。行の活性化後に短期間が経過した後で、DRAMデバイス内の一時高速記憶装置からデータを読み出すかまたはそこに書き込んでもよい。DRAMに関し、ランダムアクセスは、可能にはなり得ない。なぜなら、データの最小アドレス指定可能単位が、情報の2(DDR−1)または4(DDR−2)ワードであり得るからである。データの最小アドレス指定可能単位としてアトムを画定してもよい。一般に、単一の転送コマンドは、アトムより長いバーストを転送してもよい。しかしながら、バーストを中断するコマンドを発行して、2または4ワードアトムが効果的に用いられるようにしてもよい。2または4ワードアトムは、たとえ2または4ワードアトムがバースト長より短い場合でも、用いてもよい。活性化される行を意図した全ての動作がひとたび完了すると、活性化された行は、高速一時記憶装置からDRAM内の主記憶アレイにデータの全てを書き戻すために、「プリチャージ」する必要があり得る。かかるプリチャージ動作はまた、新しい行が活性化可能になる前に終了するための期間を必要とする可能性がある。
コーデックメモリに関して、DRAMは、DRAMの全体的な帯域幅に応じるために、32ビット幅のバス(例えば、少なくとも32ビット)に結合してもよい。DDR−2 DRAMに関して、アトムサイズは、16バイト(例えば、それぞれ、4バイトの4ワード)であってもよい。
図2を参照すると、メモリ54から読み出されるアトム80を示す図が示されている。一般に、図2における各正方形は、バイトを表わす。多数のアトムA−Hが示されている。アトムDは、明確にするために太字で示されている。アトムが、画素の水平行を表わすように構成されているならば、最悪の場合には、メモリ54からの4×4読み出し(同様に太字で示されている)は、図示のように最高8つのアトムA−Hにまたがる可能性がある。本発明を用いなければ、実際に必要な16バイトのデータをメモリ54から取り出すために、合計128バイトの読み出しが必要になり得る。かかるシナリオにおいて、DRAMから読み出されたデータの7/8が破棄される可能性がある。一般に、行は、画像の(x、y)座標空間における画素の行とは関係がない場合がある。
図3を参照すると、メモリ54のブロックから読み出される8バイトのアトムを示す図が示されている。32ビットバスが2つの16ビットの半部に分割され、かつデータが2つの(独立してアドレス指定される)16ビットのメモリデバイス間でインターリーブされる場合には、各16ビットのDRAMは、8バイトのアトムサイズを有する。かかる場合において、最悪の場合に読み出される可能性がある合計データは、64バイトに低減され得る。
図3に示すような方式が効果的に動作するために(例えば、全ての矩形領域がメモリ54から読み出されるために)、一般に、(メモリから読み出される全矩形領域用の)アトムの半部が、読み出されて、データバスにおける16ビットの半部に装着されたDRAM(例えばメモリ60)に配置される。もう一方の半部は、一般に、DRAM(例えばメモリ62)に配置されて、データバスのもう一方の16ビットの半部に接続される。
理論的に最悪の場合のアクセスパターンを考察することによって、かかる交互タイプのメモリ構成(例えば、データバスにおける16ビットの一半部に装着されたDRAMにアトムの半分を配置し読み出す)の必要性を動機づけることが可能になる。一般に、ビットストリームの復号化は、従来のアプローチを用いてサポートするのが困難な場合がある。かかる場合において、最悪の場合のビットストリームを処理する必要があるアクセスパターンが、現在復号化されているビットストリームによって必要とされる可能性がある。最悪の場合のビットストリームは、メモリ54から読み出される多数の小さなオフ格子矩形を指してもよい。
同時係属中の出願(10/306,749号明細書および10/306,751号明細書)において確認される仕事の多くは、左右のDRAM60および62間で異なるアドレスビットの数を最小限にする要求によって動機づけられた。本発明はまた、高速と、単一のDRAMでロードされるアドレスライン(例えば、左右のDRAM間で異なるアドレスライン)ならびに2つのDRAM60および62でロードされるアドレスラインの混合があった場合に発生し(かつ回避され)得る電気的問題と、を考慮する。
左右のDRAM60および62用のアドレス信号ADDRESS1およびADDRESS2は、通常、電気的な理由で、それぞれ独立した信号で駆動する必要がある。本発明は、ほんの少数のアドレスビットにおいて差を有するように、左右のDRAM60および62へのアドレスに制限を加える必要があり得る。かかる制限を除去することによって、さらなる最適化が可能になる。かかる最適化によって、(i)アクセスがより効率的にされ、(ii)オンチップハードウェアの単純化が可能になり得る。
図4を参照すると、フレームアクセス、フィールドアクセスおよびラインアクセスを示す図が示されている。アトム(例えば、A、C、E、G等)は、一DRAM(例えば、メモリ60またはメモリ62のどちらか)に記憶してもよい。他のアトム(例えば、B、D、F、H等)は、別のDRAM(例えば、メモリ60またはメモリ62のもう一方)に記憶してもよい。データは、オーバーヘッドを最小限にするために、一連のタイルで構成してもよい。一般に、フレーム、フィールドおよびラインアクセスは、メモリ54におけるデータの特定の構成によってサポートする必要があり得る。データが、2つのDRAMデバイス60および62間で分配され、かつ各DRAMデバイス60および62が、データバスの半部(例えば、IMAGE_DATA1およびIMAGE_DATA2)に接続される場合には、データは、全ての共通アクセスパターンに対してデータがDRAMデバイス60および62間で平等に分配可能なように、インターリーブしてもよい。
メモリから矩形領域にアクセスするために、フレームおよびフィールドアクセスを、ビデオ復号化(および符号化)ルーチンにおいて共通に用いてもよい。図4は、4×4矩形を示しているが、他の矩形サイズが必要とされる可能性がある。矩形の特定のサイズは、実行される特定のビデオソース符号化標準を満たすために変更してもよい。フレームアクセスおよびフィールドアクセスは、インターレースされたビデオ資料の符号化において区別してもよい。インターレースされたビデオ資料は、放送テレビおよび関連する記録媒体技術において共通に用いてもよい。かかる場合に、各フィールドは、画像における一つ置きの水平ラインからデータをサンプリングしてもよい。ビデオ符号化プログラムは、フレームモードでデータを符号化することを選択してもよいが、この場合には、データは、両方のフィールドから読み出すことが必要になる可能性がある。フィールドモードにおいて、データは、1つのフィールドを構成する、フレームにおける一つ置きのラインから読み出すことが必要になる可能性がある。
一例において、ラインアクセスは、表示処理において必要になる可能性がある。表示処理に関して、データは、走査され、(一般に、追加的な処理ステップの後で)視聴のためにビデオモニタまたはテレビに送られてもよい。3つの識別されたアクセスパターン(例えば、フレーム、フィールドおよびライン)のそれぞれに対して、データの半部は、一方のDRAM(例えば、DRAMの左部分)に記憶してもよく、データのもう一方の半部は、もう一方のDRAM(例えば、DRAMの右部分)に記憶してもよい。
メモリ画像データは、フレームストアに記憶してもよい。フレームストアは、ライン毎に互いにインターリーブされる両方のフィールドからのラインを含んでもよい。本発明は、各フィールド用に別個のエリアを割り当てるために、およびメモリコントローラ56を用いてフレームアクセスを実行するために、特に有用であり得る。かかる実装によって、レガシー符号器/復号器は、本発明と共に働くことが可能になる。しかしながら、本発明の好ましい一フレームストア構造は、フレームアクセスのために、より効率的な帯域幅の利用を提供することが可能である。データをタイル式に記憶して、性能を改善してもよい。より高性能は、ページ境界が横断される回数を最小限にすることによって、達成可能である。タイル状の記憶は、ストリップ要求がクライアントによってなされ、かつ要求のビット(例えばTileH)が1に設定された場合に、選択してもよい。ビットTileHは、DMAアドレスレジスタの最下位ビットから駆動してもよい。クライアントが、DMAアドレスレジスタを提供して、画像ベースアドレス(例えばImageBaseAddr)を指定してもよい。
タイルを用いて、画像の矩形エリアを記憶してもよい。タイルのサイズは、接続されたDRAMデバイス60および62の全てを横断する一バンクの一DRAM行であってもよい。フレームストアにタイル状の記憶が割り当てられた場合には、その特定のフレームストアにおけるタイルの全ては、DRAM54において利用可能なバンクの半部に位置してもよい。4バンクデバイスの場合には、所与のフレームストアは、バンク0および2を用いるか、またはフレームストアは、バンク1および3を用いてもよい。バンク0および2とバンク1および3との間のかかる区別は、それぞれ偶数または奇数極性と呼んでもよい。
バイトで測定した場合には、タイルは、正方形(例えば32×32)または2:1の矩形(例えば、フレームにおける64幅×32高さ)であってもよい。正確な寸法は、実現される特定のDRAMページのサイズに依存してもよい。記憶は、タイルの倍数単位で効果的に割り当ててもよい。タイルは、タイルがフレームストアを形成するように配列される場合には、チェッカー盤パターンを形成してもよい。
図5を参照すると、フレームストアのタイリングを示す図が示されている。4バンクデバイス用の自然な割り当ては、ピッチがタイル幅の奇数倍数の場合であってもよい。かかる場合に、ラスタ走査順におけるタイルの自然な割り当ては、チェッカー盤パターンを生じ得る。チェッカー盤パターンは、タイルが、確実に、互いに水平または垂直に隣接し、かつ互いに異なるバンクに存在するようにする。アドレス指定論理は、ピッチがタイル幅の倍数でない場合であっても働くことが可能である。しかしながら、以前のデバイスにおけるよりも厳しい制限があり得る。なぜなら、ピッチは、通常、マクロアトム(macro−atom)幅の倍数であるためである。マクロアトムには、一般に、左メモリ60に記憶されたアトムおよび右メモリ62に記憶されたアトムの組み合わせが含まれる。ピッチがタイル幅の倍数でない場合には、性能が、低下する可能性がある。なぜなら、垂直に隣接するタイルが、互いに同じバンクにあるからである。
アドレスImageBaseAddrは、必ずしも特定のタイル境界を指さなくてもよい。代わりに、アドレスImageBaseAddrは、マクロアトムの左上部分を指してもよい。アドレスImageBaseAddrは、特定のフレームストア用のベースアドレスであってもよい。たとえアドレスImageBaseAddrがタイル境界に整列されていなくても、ピッチがタイル幅の倍数である場合には、チェッカー盤パターンは維持し得る。
図6を参照すると、ピッチがタイル幅の偶数倍数である場合におけるフレームストアのタイリングを示す図が示されている。一例において、ピッチがタイル幅の偶数倍数であり、かつフレームストアがタイルの左手側(しかし、必ずしもタイルの上端ではない)から開始するようにアドレスImageBaseAddrがなされている場合には、タイルの奇数行におけるタイルは、スワップしてもよい。チェッカー盤パターンは、タイルの左手側からフレームストアを開始することによって維持してもよい。ピッチをタイル幅の偶数倍数に維持することは、画像サイズ(例えば1920)にとって重要であり得る。たとえピッチがタイル幅の偶数倍数である場合であっても同様である。
コーデックメモリに関して、かかるスワッピングは、アドレスImageBaseAddrが、上側バンク(例えば、図6において「バンクn+2」とマークされたバンク)を指す場合に働くことが可能である。アドレスImageBaseAddrを上側バンクに向けるような利用は、本発明を実施しないデバイスでは実行されなかった。
図7を参照すると、アドレスエイリアシングの例を示す図が示されている。スワッピング方式は、アドレスImageBaseAddrがタイルの先頭と水平に整列されていない場合には、働かない可能性がある。一般に、アドレスImageBaseAddrが水平に整列されない場合には、スワッピングは必要ではなく、チェッカー盤が存在しない可能性がある。アドレスImageBaseAddrの非整列は、予測を形成する際におけるより低い性能につながる可能性がある。
図8を参照すると、フレームストアのタイリングを示す図が示されている。8バンクメモリに関して、ピッチは、4バンクデバイスと同様にプログラムしてもよい。ピッチをタイル幅の奇数倍数の2倍にすることによって、わずかにより高い性能を得ることが可能である。したがって、全ての予測、4つのタイルが出会うコーナーにまたがる予測さえも、互いに同じバンクの2つのタイルには達しなくてもよい。かかる場合に、奇数行においてタイルをいつスワップするかに関する規則は、修正してもよい。8バンクデバイスに関して、非隣接タイルペアは、ピッチが4タイル幅の倍数である場合には、奇数タイル行においてスワップしてもよい。
図9を参照すると、インターリーブされた1920幅のフレームストアの割り当てを示す図が示されている。4バンクデバイスの場合には、所与のフレームストアは、bank0およびbank2を用いるか、またはbank1およびbank3を用いてもよい。区別には、「偶数」および「奇数」極性とそれぞれ呼んでもよい。特定の極性の選択は、アドレスImageBaseAddr内に記憶されたバンク極性ビットによって制御してもよい。バンク極性ビットは、フレームストアにおける全ての位置に対して不変のままであってもよい。例えば、バンク極性ビットは、ビット11に設定してもよい。(アドレスImageBaseAddrによって、かつバンク極性ビットで画定された)第1の画像タイルにおいて表わされたのと同じ値が、画像の残りに配置されたのと同じ値であってもよい。バンク極性ビットを備えたアドレスImageBaseAddrが与えられたとすると、次のより高位のビットを用いて、画像内のどのタイルがアドレス指定されているかを定義してもよい。
極性ビットのかかる指定は、フレームストアが割り当てられた場合に、フレームストアが、アドレスの特定の範囲内におけるメモリアドレスの半部を用いてもよいことを意味し得る。同じアドレスImageBaseAddrを用いる第2のフレームストアを割り当ててもよい。第2のフレームストアは、逆の極性ビットを含んでもよい。第2のフレームストアは、第1のフレームストアとインターリーブされた、メモリアドレスのもう一方の半部を用いてもよい。
図10を参照すると、インターリーブされた1920幅のフレームストアの8バンク割り当てを示す図が示されている。ピッチは、タイル幅の奇数倍数の2倍に設定してもよい。8バンクデバイスに関して、割り当ては、4バンクデバイスと同様に行ってもよい。一般に、タイル幅の奇数倍数の2倍にピッチを設定可能な8バンク割り当てを達成するために、アドレス指定論理に対して大きな変更はなくてもよい。バンク数に依存し得る論理は、ピッチが偶数または4の倍数であるタイルをスワップするために用いられる論理と類似していてもよい。差は、ピッチレジスタにプログラムされた値(例えばRowWidth)であってもよい。
メモリコントローラ56上のソフトウェア(または実行されるファームウェア)は、8バンクメモリを駆動する場合に、より高性能を生じ得るピッチ値を用いることを選択してもよい。かかるソフトウェアは、4バンク割り当てを用いて、4バンクメモリデバイスで得られたであろう性能と同じ性能を達成してもよい。極性ビットは、最下位バンクビット(例えばビットBA0)であってもよい。
コーデックメモリに関して、DRAM行(例えば、一バンクにおける、および接続されたDRAMパッケージの全てにわたる一行)のサイズは、1K、2K、4K等であってもよい。しかしながら、DRAM行の特定のサイズは、特定の実装の設計基準を満たすために変更してもよい。
図10はまた、インターリーブされた1920幅のフレームストアの8バンク割り当てを示す。タイルの幅および高さは、次の表1に提示可能である。
Figure 0005190460
サポートされるメモリ構成のそれぞれには、一般に、アトム用のサポートが含まれるが、この場合に、アトムは、メモリの最小アドレス指定可能単位と考えてもよい。
本発明に従ってコーデックメモリ上でサポートされるデュアルメモリアプローチは、小さなオフ格子矩形を読み出す場合には、帯域幅を最大限に活用することが可能である。デュアルメモリアプローチは、同じデータバス幅が単一のアドレスで用いられる場合にアトムサイズの半分が「自然に」生じ得るようにすることによって、小さなオフ格子矩形を読み出す場合に、帯域幅を最大限に活用することが可能である。効率的であるように、データバスの両半部は、並列に用いてもよい。かかる条件は、(i)フレームで構成された予測、(ii)フィールドで構成された予測(これらは、1つおきの走査ラインからのデータを必要とする可能性がある)、および(iii)ラインで構成されたデータを読み出す場合に、真であり得る。効率性を達成するために、データは、左右のDRAM60および62間に繰り返しパターンで分配し、マクロアトムを画定してもよい。
図11を参照すると、対応する左右のDRAMに配置されたアトムを示す図が示されている。図11は、アトムのそれぞれの線形アドレスを示すが、この場合に、「a」は、バイトでのアトムのサイズであり、「w」は、タイルの幅であり、「バイトn」は、2aの倍数であり、「n/wの整数部分」は、4の倍数である。
線形アドレス指定を用いるデバイス(プロセッサなど)からマクロアトムをアドレス指定する場合には、(マクロアトム内の)アトムの下側2行におけるアトムは、上側2行に配置されたアトムと反対の順序でアドレス指定してもよい。
アドレス指定を簡単にするために、マクロアトムは、タイルを画定する同じ格子と整列してもよい。ストリップアクセスに関して、TileH=1の場合には、アドレスImageBaseAddrは、マクロアトムにおける左上アトムのアドレスを指す必要があり得る。このようにして、マクロアトムはまた、所定の画像符号化標準に従って、ブロック、マクロブロックおよびフィールド/フレームを画定する格子に対して整列させてもよい。
バイトは、ラスタ走査順にバスIMAGE_DATA1およびIMAGE_DATA2上で転送してもよい。ラスタ走査順は、(i)行が左から右に走査されること、および(ii)行が上から下に転送されることとして定義してもよい。ラスタ走査順にデータバスIMAGE_DATA1およびIMAGE_DATA2上でバイトを転送することによって、要求を受けてサービスするために必要とされるアトムは、ラスタ走査順にメモリから読み出すことが可能になる。かかる転送が不可能な場合には、要求を受けてサービスするために必要とされるアトムは、ラスタ走査順にメモリ54から読み出すことを必要とされない場合がある。ラスタ走査順の例外は、本発明の主要な部分を提供し得る。
本発明は、メモリ54からデータを読み出す場合に適用可能である。ある状況において、本発明は、メモリ54にデータを書き込む場合に必要とされない場合がある。なぜなら、コーデックメモリ用に用いられるビデオ符号器/復号器がオフ格子アクセスを実行する必要がない場合に、オフ格子アクセス用に期待される高性能が、問題になり得ないからである。任意のサイズの矩形におけるオフ格子書き込み用のデータバスIMAGE_DATA1およびIMAGE_DATA2用の定義されたプロトコルに適合するために、アトムは、単にラスタ走査順にアクセスされてもよい。かかる状況において、単一のDRAM(例えば、左または右)のみの使用は、いかなる問題も生じる可能性がない。
図12を参照すると、ページ境界にまたがることを示す図が示されている。要求がなされる場合には、多くのタイルにまたがる可能性がある。ストラドル(straddle)は、単一のクロックサイクルにおいて、(i)アドレスが、左DRAM60に発行され、かつ(ii)アドレスが、右DRAM62に発行される場合を指してもよい。ストリップ要求を行ってもよい。ストリップ要求(またはストリップ)は、ラインアクセスであってもよく、または多くのタイルにまたがってもよい。ストリップ要求は、単一の走査ラインの高さであってもよい。一例において、ストリップは、最高4つの隣接するタイルに達し得る先読みであってもよい。先読みは、メモリからデータを読み出す場合に、効率的な処理と共に複雑化を引き起こす可能性がある。本発明は、かかる複雑化を防ぐために、できるだけ多くのクロックサイクルにおいて並列に左右のDRAM60および62の両方を用いることができる。
一般に、左右のDRAM60および62に発行されるバンクアドレスは、独立して選択してもよい。かかる選択は、左のDRAM62が1つのタイルをアドレス指定でき、かつ右のDRAM60が別の隣接するタイルをアドレス指定できるようにREAD(またはWRITE)コマンドが発行される場合に、用いてもよい。バンク極性ビットが、所与のフレームストアにおける全ての位置に対して不変であってもよいので、バンクアドレスの最下位ビットは、左右のDRAM60および62によって共有可能である。
さしあたり垂直次元における問題を無視すると、左右のDRAM60および62間の選択は、ストリップを単一の矩形として処理してもよいことを意味し得る。ストリップは、アトム幅の偶数または奇数幅であってもよい。ストリップが偶数幅である場合には、各走査ライン内において、左右のDRAM60および62は、それぞれ、ストリップ用のアトムの半部をメモリから読み出してもよい。ストリップがアトムの奇数幅である場合には、「余分な」アトムが、各ラインの右手に存在する可能性があり、余分なアトムは、左または右のDRAM60または62のどちらかのために用いてもよい。
4バンクDRAMの場合において、フレームストアは、2つのバンクだけを用いてもよい。バンクは、垂直に隣接するタイルがバンクアドレスにおいて異なるように、(高性能が達成されることになる場合には)チェッカー盤に配列してもよい。本発明に関して、規則セットを実行して、図13に関連して説明する方法が、確実に、(i)アクセスをペアリングする間に、誤った決定をしないように、かつ(ii)多くのページオーバーヘッドをもたらすことがないようにすることができる。かかる規則には、以下のものを含んでもよい。
(i)ストリップが垂直タイル境界(例えば、2つの水平に隣接するタイル間の)にまたがらない場合には、左右のDRAMアドレスは、水平タイル境界にまたがってもよい。
(ii)ストリップが、垂直タイル境界にまたがる場合には、左右のDRAMアドレスは、水平タイル境界にまたがらなくてもよい。アドレスは、4つのバンクが同時にプリチャージされる可能性があるので、水平タイル境界にまたがってはならない。
(iii)要求されたストリップが、まさに1つのタイル境界を横断する場合には(例えば、タイル境界は、水平にせよ垂直にせよ)、(a)タイルの両方は、同時に開いてもよく、かつ(b)アクセスは、境界にまたがってもよい。
(iv)ストリップが、4つのタイルが出会うコーナーにまたがる場合には、優先権は、水平に隣接するタイル(互いに同時に開かれる水平に隣接するタイル)を有するタイル境界に与えてもよい)。上側のタイルペアにおける最後のアクセスがなされた場合には、下側のタイルをアクセスしてもよい。
8バンクDRAMの場合において、ピッチおよびImageBaseAddrが、適切なチェッカー盤が存在するようなものである場合には、左右のDRAMアドレスは、水平および垂直タイル境界の両方にまたがってもよい。水平および垂直境界両方のストラドリングが起こり得るのは、ストリップがまたがる4つのタイルのそれぞれが別個のバンクにあるからである。
幅においていくつかのタイルにまたがるラインアクセスの場合には(例えば、ラインアクセスが、単に、単一のライン高さである場合には)、多数のページペナルティ(page penalty)が生じる可能性がある。ページペナルティは、性能を損なわずに払うことが可能である。アクセスの左の方のタイルが、再アクセス可能ではないので(要求が、単に、単一のライン高さであるからである)、さらなる効率的なアクセスパターンは、不可能である。
大きな矩形ストリップは、多数の(例えば4を超える)タイルに達し、1を超えるライン高さになる可能性がある。大きな矩形ストリップに関して、本発明に従って定義されるアクセスルーチンは、タイルが何度も開閉される可能性があるので、次善であると考えてもよい。しかしながら、かかる問題は、回避可能である。なぜなら、多数回のタイルの開閉は、対象とするビデオプログラムのどれにも決して生じ得ないからである。メモリコントローラ56は、かかる要求(例えば、正確なデータが、正確な位置から読み出されるか、またはそこに書き込まれるという意味で)で正確に動作するために必要であり得る。
図13を参照すると、本発明に従ってDRAMアクセスをペアリングする方法100が示されている。方法100には、一般に、状態(またはステップ)102、状態(またはステップ)104、状態(またはステップ)106、状態(またはステップ)108、状態(またはステップ)110、状態(またはステップ)112、状態(またはステップ)114および状態(またはステップ)116が含まれる。状態104は、第1のメモリ部分(または左DRAM)および第2のメモリ部分(または右DRAM)を横断するメモリアドレスを有する複数のアトムを形成してもよい。状態106は、アトムの一部を横断してストリップ(またはストリップ要求)を画定してもよい。状態108は、ストリップ内の第1のアトムを指定してもよい。
一般に、各クロックサイクルに対して、2つのDRAMアドレスを生成してもよい。第1のDRAMアドレスは、ラスタ走査順にアクセスされることになる、まだアクセスされていない次のアトムとして常に生成してもよい。ストリップの先頭において、第1のDRAMアドレス(または第1のアトム)は、ストリップの左上部分におけるアトムのアドレスとして定義してもよい。各クロックサイクルに対して、第1のDRAMアドレスは、左DRAM62または右DRAM60のどちらかにあってもよい。ストリップ内において左DRAM62または右DRAM60に位置しているとして第1のアトムの指定することは、特定の実装の設計基準を満たすために、変更してもよい。
状態110は、第1のアトムとペアリングされる第2のアトムを捜し出してもよい。所与の第1のDRAMアドレスのために、第2のDRAMアドレス(または第2のアトム)を捜し出す必要があり得る。第2のDRAMアドレスは、クロックサイクルにおける第1のアトムと反対のDRAMに発行してもよい。
状態110は、以下のペアリストを用いて、どの第2のアトムが第1のアトムとペアリングされるかを特定してもよい。
(i)第1のアトムのすぐ右のアトムは、第2のアトムであってもよい。
(ii)要求されたストリップにおける第1のアトムのすぐ下のアトムは、第2のアトムであってもよい。フィールドアクセスの場合には、捜し出される第2のアトムは、フレームにおける第1のアトムから垂直に2走査ライン下のアトムであってもよい。
(iii)フレームアクセスの場合には、第2のアトムは、要求されたストリップにおける第1のアトムから垂直に2走査ライン下に位置してもよい。一般に、フィールドアクセスに関して、リストにおけるオプション(i)および(ii)だけを考慮してもよい。
ペアリストにおける可能なペアのリスティングは、優先順に基づいてもよい。1を超える第2のアトムが捜し出され、かつ多数の第2のアトムが、それぞれ、第1のアトムとの正当なペアを形成する場合には、ペアリストのトップの最も近くに位置する第2のアトムを選択してもよい。
状態112は、第1のアトムとペアリングされた場合に、第2のアトムが正当なペアを形成するかどうかを判定してもよい。アトムの正当なペアは、右メモリ60および左メモリ62から同時に読み出してもよい。かかる正当なペアは、画像内の第1および第2のアトム間において特定の空間的関係を有してもよい。ペアリストにおいて述べた条件を介して形成されたペアのそれぞれは、第2のアトムが第1のアトムと正当なペアを形成するかどうかを判定するためにテストしてもよい。正当なペアを形成するために、第2のアトムは、
(i)第1のアトムと反対のDRAM(例えば、左または右)に配置されていてもよく、
(ii)ストリップが垂直タイル境界にまたがる場合には、水平タイル境界を横断してはならず、
(iii)第1のアトムと第2のアトムとの間の行アドレスが同じである場合は、第1のアトムと同じ行アドレスを有してもよく、
(iv)DRAMから読み出されていなくてもよい。
一般に、フレームアクセスに関して、アトムは、1つのラインにおいて読み出してもよい。なぜなら、アトムは、垂直に2つのアトムの下に位置してもよいからである。続くラインにおいて、同じアトムは、読み出されたアトムの下に位置してもよい。しかしながら、同じアトムは、再び読み出されるべきではない。代わりに、現在のラインから2ライン下のアトムを選択して、第1のアトムと正当なペアを形成する第2のアトムとして指定してもよい。
奇数アトムは、ストリップの右側で読み出してもよい。一般に、パイプライン段、第1のレジスタおよび第2のレジスタを用い、ラスタ走査順から外れてアトムを読み出してもよい。
図14を参照すると、100の方法に従って奇数のアトムを読み出す例を示す図が示されている。複数のアトム(例えばA−AV)は、メモリを横断して形成または配置してもよい。アトムA−AVは、左DRAMまたは右DRAMに記憶してもよい。ストリップは、アトムA−AVの一部の回りに形成してもよい。各ストリップの先頭において、バレルシフタが、パイプライン段(例えばP1)およびパイプライン段(例えばP2)からアトムを受信してもよい。未処理の奇数アトムが読み出された後で、パイプライン段P2は、バスの左側にアトムを供給してもよい。2つの未処理の奇数アトムが日和見的に読み出された後で、パイプライン段(例えばP1)は、バスの左側およびバスの右側の両方にアトムを供給してもよい。一時レジスタ(例えばT1)および一時レジスタ(例えばT2)は、アトムを一時的に記憶してもよい。アトムが、一時レジスタT1および一時レジスタT2から供給されるたびに、未処理の奇数アトムのカウントを減分してもよい。
第1のクロックサイクルにおいて、アトムNは左DRAMから読み出され、アトムOは右DRAMから読み出される。
しかしながら、第2のクロックサイクルにおいて、アトムPは、アトムPが必要でない時と同じ時に自然に読み出し可能になるアトムQを読み出してもよい。アトムQが必要ではないので、垂直にアトムPの下のアトム(例えばアトムV)を選択してもよい。しかしながら、アトムVは、それがアトムPと同じDRAMに記憶されるので、アトムPと同じサイクルに読み出さなくてもよく、したがって、アトムABを読み出してもよい。アトムABが、順序を外れて読み出されたので、アトムABは、一時レジスタT0に記憶してもよい。
第3のクロックサイクルにおいて、アトムTおよびUを読み出してもよい。
第4のクロックサイクルにおいて、アトムVを読み出してもよい。アトムWは、通常アトムVと自然なペアを形成するが、必要とされない可能性がある。アトムABは、それがアトムVと反対のDRAMに記憶されているので、アトムVと同時に読み出してもよい。しかしながら、ABは、既に、第2のクロックサイクルで読み出されている。アトムABが、既に読み出されているので、アトムAHを読み出してもよい。アトムAHが、順序を外れて読み出されたので、アトムAHは、一時レジスタT0に記憶してもよい。一時レジスタT0が既に占められているので、アトムAHは、一時レジスタT1に記憶してもよい。
第5のクロックサイクルにおいて、アトムZおよびAAを読み出してもよい。この時点において、走査ラインにおけるアトムの全て(例えば、アトムZ、AAおよびAB)は読み出された。第4のクロックサイクルに関連して言及したように、アトムABは、既に読み出されて一時レジスタT0に記憶された。
第6のクロックサイクルにおいて、アトムAFおよびAGを読み出してもよい。この時点において、走査ラインにおけるアトムの全て(例えば、アトムAF、AGおよびAM)は読み出された。第4のクロックサイクルに関連して言及したように、アトムAHは、既に読み出されて一時レジスタT1に記憶された。
第7のクロックサイクルにおいて、アクセスパターンは、最初からやり直してもよい。アトムALおよびAMを読み出してもよい。
第8のクロックサイクルにおいて、アトムANを読み出してもよい。一般に、アクセスは、偶数または奇数のアトムをメモリから読み出すために必要であり得る。奇数または偶数のアトムは、ストリップ内に含まれるアトムの数に基づいてもよい。15のアトムをメモリから読み出す必要があり得るので、アトムANとペアリングされるものがない可能性がある。
コーデックメモリに関して、一転送の最後のアトム(例えば、アトムAN)を、次の転送の第1のアトムとペアリングするように試みる必要はない。かかる試みは可能であるが、非常にわずかな性能の向上のために、制御回路の複雑さが著しく増加する可能性がある。
ストリップにおけるアトムがメモリから読み出されると、アトムは、バレルシフタの入力部に供給してもよい。アトムは、ラスタ走査順にバレルシフタに転送してもよい。例えば、アトムAFが転送されるサイクルにおいて、アトムABは、同じサイクルで転送してもよい。アトムABは、転送における正確な場所を回復するために、一時レジスタT0から取り出してもよい。同様に、アトムAMもまた、アトムAGが転送された後で、転送における正確な場所で転送してもよい。AMが転送されるのに先立って、アトムAHは、一時記憶装置T1から受信してもよい。
図15を参照すると、8バイトアトムに対する奇数(アトムの数)幅要求を読み出す別の例を示す図が示されている。本発明に従うコーデックメモリに関して、8バイトアトムは、DDR−2 DRAMで生じる可能性がある。DDR−2 DRAMは、アトムの8バイトを4ワードとして転送してもよい。各ワードには、2バイトを含んでもよい。最初の2バイトは、一クロックサイクルで転送してもよく、最後の2バイトは、第2のクロックサイクルで転送してもよい。
パイプライン段P1およびパイプライン段P2は、それぞれ、8バイトアトムを保持してもよい。一時レジスタT1および一時レジスタT2は、それぞれ、8バイトアトムを保持してもよい。一時レジスタT1および一時レジスタT2は、1つおきのクロックサイクルにだけクロックしてもよい。バレルシフタに入力される値は、左DRAMまたは右DRAM(例えば、決して両方の混合ではない)から直接得てもよい。一般に、図13に関連して言及したように、未処理の奇数アトムがない場合には、データは、パイプライン段P2から取ってもよい。1つの未処理の奇数アトムがある場合には、代替として、データは、パイプライン段P1およびパイプライン段P2から取ってもよい。
本発明によって、バンクおよび列アドレスを、互いに独立して左DRAMおよび右DRAMに供給することが可能になる。
バンクおよび列アドレスを独立して左右のDRAMに供給することによって、水平および垂直次元の両方においてメモリから読み出し可能な領域の配列にかけられた制限を単純化することが可能になる。
本発明は、偶数または奇数アトムのどちらかで開始し、そのアトムを、水平次元に向けて、そのアトムのすぐ右のアトムとペアリングしてもよい。かかる構成は、連続してペアを読み出すために、単に、走査ラインに沿って左から右へ進んでもよい。要求されたストリップの右手には、すぐ右に位置する隣接アトムとペアリングできない余分なアトムがあってもよい。かかる状況は、各行においてアクセスされるアトムの数が奇数である場合に生じる可能性がある。
対応する同時係属中の出願(10/306,749号明細書および10/306,751号明細書)で開示されているようなアドレス制限に関して、偶数のアトムは、そのすぐ右に位置するアトムとのみペアリングしてもよい。なぜなら、アトムは、各それぞれのDRAMにおいて、互いに同じアドレスを共有するからである。ストリップが奇数アトムで開始する場合には、奇数アトムは、自然にはペアリングされ得ない。奇数アトムから垂直に下のアトムを読み出す必要があり得る。ストリップが、偶数のアトムにアクセスする幅であるが、しかし奇数のアトムで開始するように配列されている場合には、データの読み出しは、ストリップの左エッジおよびストリップの右エッジの両方で適用してもよい。かかる読み出しは、利用可能な4つの一時レジスタ(ストリップの左右のエッジのそれぞれのために2つ)を必要とする可能性がある。かかる読み出しのために必要とされる追加的なパイプライン段は、メモリからの一つ一つの読み出しが払う追加的な待ち時間を必要とする可能性がある。
同様に、垂直次元において、本発明は、アドレス制限を緩和し得る。かかる制限には、マクロアトム内でのみ日和見的読み出しを行いうるということが含まれる可能性がある。第1の行がマクロアトムの格子と整列されないようにストリップ要求が位置合わせされた場合に、日和見的読み出しのいくつかは、本発明を用いて利用可能になり得る。
本発明はまた、独立したバンクアドレスを左右のDRAMに提供可能である。かかる構成によって、左右のDRAMへの同時アクセスは、タイル境界にまたがることが可能になる。4バンクチェッカー盤が、フレームストア用の2つのDRAMバンクに対して通常用いられる場合には、タイル境界は、水平タイル境界を除いて、かかるストラドリングゆえに無視してもよい。アクセス時間を決定する際にタイル境界が役割を果たす場合は限られて、恐らく達成可能な最小値に一貫して接近し得るアクセス時間統計につながる。
本明細書で用いるように、用語「同時」は、いくらかの共通の期間を共有するイベントを示すように意味されているが、しかしこの用語は、同じ時点で始まるか、同じ時点で終了するか、または同じ持続期間を有するイベントに限定されるようには意味されていない。
本発明の好ましい実施形態に関連して、本発明を特に図示および説明したが、本発明の範囲から逸脱することなく、形態および詳細における様々な変更を行い得ることが、当業者には理解されよう。

Claims (21)

  1. 第1のメモリ部分および第2のメモリ部分を有するメモリ内に配置されると共にデータの最小アドレス指定可能単位であるアトムを読み出す方法であって、
    (A)前記メモリを横断して前記アトムを配置するステップと、
    (B)前記アトムの一部を横断して、読み出すべきデータの領域であるストリップを画定するステップと、
    (C)前記ストリップ内で第1のアトムを指定するステップと、
    (D)前記第1のアトムとペアリングされる1つまたは複数の第2のアトムを捜し出すステップであって、前記ペアリングが、ペアリストを用いて前記第1のアトムとペアとなる前記第2のアトムを特定することを意味するステップと、
    (E)前記第1のアトムとペアリングされた場合に前記1つまたは複数の第2のアトムが正当なペアを形成するかどうかを判定するステップと、
    (F)前記第1のメモリ部分および前記第2のメモリ部分から前記正当なペアを読み出すステップと、を含む方法。
  2. 前記ペアリストは、
    (i)前記第1のアトムのすぐ右のアトムが前記第2のアトムであり、
    (ii)前記ストリップにおける前記第1のアトムのすぐ下のアトムが前記第2のアトムであり、フィールドアクセスの場合には、前記第2のアトムは、フレームにおける前記第1のアトムから垂直に2走査ライン下のアトムであり、
    (iii)フレームアクセスの場合には、前記第2のアトムは、前記ストリップにおける前記第1のアトムから垂直に2走査ライン下のアトムであると定義される、請求項1に記載の方法。
  3. ステップ()が、
    前記第1のメモリ部分および前記第2のメモリ部分に前記アトムを配置するステップをさらに含む、請求項1または2に記載の方法。
  4. 前記第1のメモリ部分が、第1のダイナミックランダムアクセスメモリを含み、前記第2のメモリ部分が、第2のダイナミックランダムアクセスメモリを含む、請求項1から3のいずれかに記載の方法。
  5. 前記第1のダイナミックランダムアクセスメモリおよび前記第2のダイナミックランダムアクセスメモリに、バンクおよび列アドレスを供給するステップであって、前記第1のダイナミックランダムアクセスメモリが、前記第2のダイナミックランダムアクセスメモリから独立してアドレス指定されるステップをさらに含む、請求項に記載の方法。
  6. ステップ()が、
    前記ストリップ内に配置された左上アトムとして前記第1のアトムを指定するステップをさらに含む、請求項1から5のいずれかに記載の方法。
  7. ステップ()が、
    前記第1のアトムのすぐ右のアトムもまた前記1つまたは複数の第2のアトムに指定するステップをさらに含む、請求項1に記載の方法。
  8. 前記第1のアトムのすぐ下のアトムもまた前記1つまたは複数の第2のアトムに含まれるように指定するステップをさらに含む、請求項に記載の方法。
  9. フレームアクセスのために、前記ストリップにおける前記第1のアトムから垂直に2走査ライン下のアトムもまた前記1つまたは複数の第2のアトムに含まれるように指定するステップをさらに含む、請求項に記載の方法。
  10. フィールドアクセスのために、前記ストリップにおける前記第1のアトムから垂直に2走査ライン下のアトムもまた前記1つまたは複数の第2のアトムに含まれるように指定するステップをさらに含む、請求項に記載の方法。
  11. ステップ()が、
    前記第1のアトムが左のダイナミックランダムアクセスメモリに配置され、かつ前記第2のアトムが右のダイナミックランダムアクセスメモリに配置された場合に、前記第2のアトムが前記正当なペアを形成するかどうかを判定するステップをさらに含む、請求項1から10のいずれかに記載の方法。
  12. ステップ()が、
    前記第1のアトムと前記第2のアトムとの間に形成された前記ペアが水平タイル境界を横断しない場合に、前記第2のアトムが前記第1のアトムと前記正当なペアを形成するかどうかを判定するステップをさらに含む、請求項1から10のいずれかに記載の方法。
  13. ステップ()が、
    前記第1のアトムおよび前記第2のアトムが前記メモリから読み出されなかった場合に、前記第2のアトムが前記第1のアトムと前記正当なペアを形成するかどうかを判定するステップをさらに含む、請求項1から10のいずれかに記載の方法。
  14. バンクおよび列アドレスを前記第1のメモリ部分および前記第2のメモリ部分に供給するステップをさらに含む、請求項1から13のいずれかに記載の方法。
  15. ステップ(B)が、
    偶数または奇数の前記アトムを横断して前記ストリップを画定するステップをさらに含む、請求項1から14のいずれかに記載の方法。
  16. ステップ(F)が、
    ラスタ走査順に、前記第1のメモリ部分および前記第2のメモリ部分から前記正当なペアを読み出すステップをさらに含む、請求項1から15のいずれかに記載の方法。
  17. ステップ(F)が、
    1つまたは複数の正当なペアをバレルシフタに転送するステップをさらに含む、請求項1から16のいずれかに記載の方法。
  18. 前記1つまたは複数の正当なペアをラスタ走査順に前記バレルシフタに転送するステップをさらに含む、請求項17に記載の方法。
  19. ステップ(D)が、
    前記第2のアトムがステップ(D)を実行する前に順序を外れて読み出され、前記第2のアトムを一時レジスタに記憶するステップをさらに含む、請求項1から18のいずれかに記載の方法。
  20. 前記メモリを横断してデータの最小アドレス指定可能単位であるアトムを配置するための手段と、
    前記アトムの一部を横断して、読み出すべきデータの領域であるストリップを画定するための手段と、
    前記ストリップ内で前記第1のアトムを指定するための手段と、
    前記第1のアトムとペアリングされる1つまたは複数の第2のアトムを捜し出すための手段であって、前記ペアリングが、ペアリストを用いて前記第1のアトムとペアとなる前記第2のアトムを特定することを意味する手段と、
    前記第1のアトムとペアリングされた場合に、前記1つまたは複数の第2のアトムが正当なペアを形成するかどうかを判定するための手段と、
    第1のメモリ部分および第2のメモリ部分を有する前記メモリから前記正当なペアを読み出すための手段と、
    を含む装置。
  21. 前記ペアリストは、
    (i)前記第1のアトムのすぐ右のアトムが前記第2のアトムであり、
    (ii)前記ストリップにおける前記第1のアトムのすぐ下のアトムが前記第2のアトムであり、フィールドアクセスの場合には、前記第2のアトムは、フレームにおける前記第1のアトムから垂直に2走査ライン下のアトムであり、
    (iii)フレームアクセスの場合には、前記第2のアトムは、前記ストリップにおける前記第1のアトムから垂直に2走査ライン下のアトムであると定義される、請求項20に記載の装置。
JP2009534581A 2006-10-26 2007-09-28 ビデオデータのインターリーブされた記憶用のシステム Expired - Fee Related JP5190460B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/588,087 2006-10-26
US11/588,087 US7463267B2 (en) 2006-10-26 2006-10-26 System for interleaved storage of video data
PCT/US2007/021087 WO2008063276A1 (en) 2006-10-26 2007-09-28 System for interleaved storage of video data

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2012265291A Division JP5623494B2 (ja) 2006-10-26 2012-12-04 ビデオデータのインターリーブされた記憶用のシステム

Publications (2)

Publication Number Publication Date
JP2010507868A JP2010507868A (ja) 2010-03-11
JP5190460B2 true JP5190460B2 (ja) 2013-04-24

Family

ID=39329569

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2009534581A Expired - Fee Related JP5190460B2 (ja) 2006-10-26 2007-09-28 ビデオデータのインターリーブされた記憶用のシステム
JP2012265291A Expired - Fee Related JP5623494B2 (ja) 2006-10-26 2012-12-04 ビデオデータのインターリーブされた記憶用のシステム

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2012265291A Expired - Fee Related JP5623494B2 (ja) 2006-10-26 2012-12-04 ビデオデータのインターリーブされた記憶用のシステム

Country Status (7)

Country Link
US (2) US7463267B2 (ja)
EP (1) EP2092759B1 (ja)
JP (2) JP5190460B2 (ja)
KR (1) KR101243933B1 (ja)
CN (1) CN101653010B (ja)
TW (1) TWI399648B (ja)
WO (1) WO2008063276A1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1332300C (zh) * 2005-04-30 2007-08-15 广东威创日新电子有限公司 一种基于服务器端\客户端结构远程显示处理方法
KR101086417B1 (ko) * 2006-11-27 2011-11-25 삼성전자주식회사 다이내믹 랜덤 액세스 메모리의 부분 액세스 장치 및 방법
KR101553651B1 (ko) * 2009-10-13 2015-09-17 삼성전자 주식회사 다중 뱅크 메모리 액세스 장치
KR101639574B1 (ko) * 2009-12-30 2016-07-14 삼성전자주식회사 적응적 뱅크 어드레스를 제공하는 디스플레이 시스템 및 그것의 어드레스 맵핑 방법
US8305384B2 (en) * 2010-05-06 2012-11-06 Himax Technologies Limited System and method for storing and accessing pixel data in a graphics display device
US8564603B2 (en) * 2010-10-24 2013-10-22 Himax Technologies Limited Apparatus for controlling memory device and related method
KR102135958B1 (ko) * 2013-08-06 2020-07-20 삼성전자주식회사 복수 개의 메모리 컨트롤러를 이용한 영상 데이터 저장 방법 및 장치
US9690503B2 (en) * 2015-06-26 2017-06-27 Intel Corporation Returning coherent data in response to a failure of a storage device when a single input/output request spans two storage devices

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3188593B2 (ja) * 1993-07-14 2001-07-16 松下電器産業株式会社 画像データメモリ
US5835952A (en) * 1993-07-14 1998-11-10 Matsushita Electric Industrial Co., Ltd. Monolithic image data memory system and access method that utilizes multiple banks to hide precharge time
JP3119994B2 (ja) * 1994-04-28 2000-12-25 株式会社グラフィックス・コミュニケーション・ラボラトリーズ 画像データの処理方法およびそれに用いる記憶装置ならびに画像データの処理装置
JPH0865686A (ja) * 1994-06-15 1996-03-08 Hitachi Ltd 画像復号化装置
US6301299B1 (en) 1994-10-28 2001-10-09 Matsushita Electric Industrial Co., Ltd. Memory controller for an ATSC video decoder
US5581310A (en) * 1995-01-26 1996-12-03 Hitachi America, Ltd. Architecture for a high definition video frame memory and an accompanying data organization for use therewith and efficient access therefrom
JPH09106374A (ja) * 1995-10-09 1997-04-22 Namco Ltd 画像メモリ装置
US5781201A (en) * 1996-05-01 1998-07-14 Digital Equipment Corporation Method for providing improved graphics performance through atypical pixel storage in video memory
US5781200A (en) 1996-08-08 1998-07-14 Ulsi Systems Tile memory mapping for increased throughput in a dual bank access DRAM
US5793693A (en) 1996-11-04 1998-08-11 Compaq Computer Corporation Cache memory using unique burst counter circuitry and asynchronous interleaved RAM banks for zero wait state operation
JPH10257422A (ja) * 1997-03-13 1998-09-25 Canon Inc 画像記録再生装置
US6104416A (en) * 1997-11-18 2000-08-15 Stmicroelectronics, Inc. Tiling in picture memory mapping to minimize memory bandwidth in compression and decompression of data sequences
JP2001143464A (ja) 1999-11-11 2001-05-25 Nec Ic Microcomput Syst Ltd 半導体記憶装置
US6803917B2 (en) 2001-02-15 2004-10-12 Sony Corporation Checkerboard buffer using memory bank alternation
US7016418B2 (en) 2001-08-07 2006-03-21 Ati Technologies, Inc. Tiled memory configuration for mapping video data and method thereof
KR100612414B1 (ko) * 2003-04-28 2006-08-16 삼성전자주식회사 영상 데이터 처리 시스템 및 영상 데이터 독출/기입 방법
TWI317474B (en) * 2003-09-25 2009-11-21 Beyond Innovation Tech Co Ltd Video data access method
EP1569124A1 (en) * 2004-02-26 2005-08-31 Matsushita Electric Industrial Co., Ltd. Memory interface and data processing
KR100668302B1 (ko) 2004-07-28 2007-01-12 삼성전자주식회사 비디오 디코더/엔코더에서의 메모리 맵핑 장치 및 그 방법
KR100666824B1 (ko) 2005-03-02 2007-01-10 (주)씨앤에스 테크놀로지 메모리에 이미지 데이터를 저장하는 방법

Also Published As

Publication number Publication date
TWI399648B (zh) 2013-06-21
EP2092759B1 (en) 2013-06-19
JP2013065343A (ja) 2013-04-11
EP2092759A4 (en) 2011-01-05
WO2008063276A1 (en) 2008-05-29
US20090009523A1 (en) 2009-01-08
US7463267B2 (en) 2008-12-09
TW200836065A (en) 2008-09-01
EP2092759A1 (en) 2009-08-26
KR20090082910A (ko) 2009-07-31
CN101653010A (zh) 2010-02-17
JP2010507868A (ja) 2010-03-11
US20080100635A1 (en) 2008-05-01
JP5623494B2 (ja) 2014-11-12
KR101243933B1 (ko) 2013-03-18
US7852344B2 (en) 2010-12-14
CN101653010B (zh) 2013-01-09

Similar Documents

Publication Publication Date Title
JP5623494B2 (ja) ビデオデータのインターリーブされた記憶用のシステム
US7016418B2 (en) Tiled memory configuration for mapping video data and method thereof
US7814294B2 (en) Memory device, memory controller and memory system
JP5126360B2 (ja) メモリ装置及びそれを制御するメモリコントローラ
US7737986B2 (en) Methods and systems for tiling video or still image data
KR100817057B1 (ko) 동일한 픽셀 데이터 그룹에 포함되는 픽셀 데이터들을메모리의 동일한 뱅크 어드레스로 매핑하는 매핑 방법 및비디오 시스템
US20070124793A1 (en) Memory controller for handling multiple clients and method thereof
US8704840B2 (en) Memory system having multiple address allocation formats and method for use thereof
CN1280734C (zh) 用于分段存取控制的控制装置和方法和具有该控制装置的视频存储器装置
CN102055973A (zh) 存储器地址映射方法及存储器地址映射电路
US20080044107A1 (en) Storage device for storing image data and method of storing image data
JP2007018222A (ja) メモリアクセス制御回路
US8581918B2 (en) Method and system for efficiently organizing data in memory
JPH10144073A (ja) シンクロナスdramのアクセス機構
KR101335367B1 (ko) 메모리 제어 장치 및 방법
JP3405079B2 (ja) メモリ割り付け方法
JP2007299211A (ja) メモリ制御装置
JP2008059496A (ja) 動画像処理装置
JPH0944396A (ja) メモリ内の記憶場所の集合にアクセスする方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100906

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120904

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121204

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130108

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130128

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160201

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5190460

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

LAPS Cancellation because of no payment of annual fees
R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350