JP4527029B2 - ダイレクト・メモリ・アクセスのための画像データ構造 - Google Patents

ダイレクト・メモリ・アクセスのための画像データ構造 Download PDF

Info

Publication number
JP4527029B2
JP4527029B2 JP2005237736A JP2005237736A JP4527029B2 JP 4527029 B2 JP4527029 B2 JP 4527029B2 JP 2005237736 A JP2005237736 A JP 2005237736A JP 2005237736 A JP2005237736 A JP 2005237736A JP 4527029 B2 JP4527029 B2 JP 4527029B2
Authority
JP
Japan
Prior art keywords
data
memory
macroblock
image
processor
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
JP2005237736A
Other languages
English (en)
Other versions
JP2006065864A (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.)
Sony Interactive Entertainment Inc
Original Assignee
Sony Computer Entertainment Inc
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 Sony Computer Entertainment Inc filed Critical Sony Computer Entertainment Inc
Publication of JP2006065864A publication Critical patent/JP2006065864A/ja
Application granted granted Critical
Publication of JP4527029B2 publication Critical patent/JP4527029B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/38Information transfer, e.g. on bus
    • 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

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)
  • Image Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Image Input (AREA)
  • Bus Control (AREA)
  • Television Signal Processing For Recording (AREA)

Description

本発明は、データ・プロセッサの編成および動作に関し、より詳細には、第1のメモリ(データ・プロセッサに対してローカルなメモリなど)と別のメモリとの間での画像データの転送に関する。
通常、高画質の画像、特に標準のテレビ受像器、ビデオテープ録画装置(VTR)、デジタル・ビデオ・ディスク(DVD)プレーヤなどと同等以上の表示速度と解像度を有する画像を作成して表示するには、メモリから大量のデータをプロセッサに転送して処理させる必要がある。
近年、ビデオ画像を含め、許容できる画質の画像を表示するのに必要なデータ量を減らすために、国際標準化機構(ISO)によって採用され、MPEG−2(Motion Picture Experts Group-2)と一般に呼ばれている標準などのデジタル・ビデオ圧縮標準が開発されてきた。
しかし、メモリからプロセッサに転送すべきデータ量を減らしても、画像データの転送操作の効率を低下させ、画像処理性能に影響を及ぼすボトルネックを生じるおそれのある問題が未だ存在する。
画像処理システムの性能向上にとっての課題に、画像処理のためダイレクト・メモリ・アクセス・コントローラ(DMAC)が実行するデータ転送のオーバーヘッドの低減がある。DMACとは、一般に、メイン・メモリとローカル・メモリとの間の、バスを介した所定の最小サイズのデータ転送を処理するために設計されたハードウェアであり、この最小サイズは“ハードウェア転送サイズ”と呼ばれる。通常、命令ストリーム内の命令は、その関連データと同様にメモリの連続した領域を占めるため、この操作は、一般に命令ストリームと関連のデータの一部をメイン・メモリからプロセッサのローカル・メモリに転送するのに適している。このように、命令および/または関連のデータは、DMACのハードウェア転送サイズを単位として転送することが可能である。
しかし、上記のような状況は、画像データにはあてはまらない。画像データの場合、MPEG−2データなどの処理対象のデータは、DMACのハードウェア転送サイズを単位とした転送をメイン・メモリと別のメモリの間で行うには困難なように編成されていることが多い。メモリにおいて、データは、ライン単位でフェッチとストアができるように、多数のメモリ・ラインとして編成され得る。これにより、少なくとも2つの問題が生じる。1つ目の問題は、全てのデータ・ラインをあるメモリから別のメモリに転送するには、DMACが膨大な操作を実行しなければならないという点である。DMACは、通常、一度にできるデータ転送操作数が制限される設計となっている。DMACが、プロセッサなどから多数のデータ転送要求を一度に受け取ると、DMACの処理能力を超えてしまい、要求を受け付けなくなることがある。すると、プロセッサは転送要求が受け付けられるまで要求の発行を中止してしまうことがある。もう1つの問題は、通常はメモリの1ラインが、DMACのハードウェア転送サイズよりも小さいという点である。例えば、あるシステムにおいて、画像データの1ラインの大きさはメモリの16バイトであるが、ハードウェア転送サイズは128バイトである。このような場合、メモリのラインに格納されている16バイトしか使用されないため、1回の転送操作(128バイト)で転送されるデータの大半(87.5%)が廃棄されてしまう。このため、上記の条件でのシステムの“バス効率”は12.5%であるとされる。
したがって、画像データを転送するためにダイレクト・メモリ・アクセス・コントローラ(DMAC)が実行する多くの転送操作を減らし、画像データ転送のバス効率を従来に比べて大幅に向上させるデータ転送システムおよびその方法を提供することが所望されている。
本発明の一態様によれば、画像の処理のために、それぞれプロセッサによるアクセスが可能な第1のメモリと第2のメモリとの間でデータを転送する方法が提供される。この方法によれば、複数のブロックに編成されているデータが、画像の処理のために第1のメモリに提供され、この各ブロックは画像の部分と関連している。ダイレクト・メモリ・アクセス・コントローラによって、データの少なくとも一部が第1のメモリと第2のメモリとの間でブロック単位で転送される。
なお、前記ブロックの各々は輝度データを表す第1のデータ単位の配列、第1の色度データ(chroma data)を表す第2のデータ単位の配列、および第2の色度データを表す第3のデータ単位の配列を有する方法も提供される。
また、各データ単位を複数のデータの完全バイト(whole bytes of data)からなるようにしてもよい。
本発明の別の態様によれば、画像の表示のために、複数のブロックに編成されて第1のメモリに記憶されているデータを処理するように動作可能なプロセッサが提供される。この態様によれば、プロセッサは、ダイレクト・メモリ・アクセス・コントローラを制御して第1のメモリからプロセッサによってアクセス可能な第2のプロセッサにデータをブロック単位で転送させるように動作可能であり、データを処理するために第2のメモリからデータにアクセスするようにさらに動作可能である。
本発明の別の態様によれば、プロセッサと、プロセッサによる画像の処理のために、複数のブロックに編成されたデータを記憶するように動作可能な第1のメモリと、プロセッサによってアクセス可能な第2のメモリとを備えたシステムが提供される。このシステムは、データの少なくとも一部を第1のメモリと第2のメモリとの間でブロック単位で転送するように動作可能なダイレクト・メモリ・アクセス・コントローラをさらに備える。
本発明のさらに別の態様によれば、画像の表示のために、複数のブロックに編成されてメイン・メモリに記憶されているデータを処理するようにそれぞれ動作可能な複数のプロセッサを備えたシステムが提供される。この態様によれば、このシステムは、複数のプロセッサのうちのプロセッサからの要求に応えて、データの少なくとも一部を、メイン・メモリと要求元のプロセッサ専用のローカル・メモリとの間でブロック単位で転送するように動作可能なダイレクト・メモリ・アクセス・コントローラをさらに備える。
本発明のさらに別の態様によれば、複数のプロセッサと、プロセッサのうちの少なくとも1つのプロセッサによる画像の処理のために、複数のブロックに編成されているデータを記憶するように動作可能な複数のプロセッサによって共有されているメイン・メモリとを備えたシステムが提供される。本発明のこの態様によるシステムは、それぞれが複数のプロセッサのうちの特定のプロセッサ専用である複数のローカル・メモリと、複数のプロセッサのうちのプロセッサからの要求に応えて、データの少なくとも一部を、メイン・メモリと要求元のプロセッサの専用のローカル・メモリとの間でブロック単位で転送するように動作可能なダイレクト・メモリ・アクセス・コントローラとをさらに備える。
本発明のさらに別の態様によれば、画像の処理のために、それぞれプロセッサによるアクセスが可能な第1のメモリと第2のメモリとの間でデータを転送する方法を実行するために記録された命令を有する記録媒体が提供される。この方法では、画像の処理のために、複数のブロックに編成されているデータが第1のメモリに提供され、各ブロックは画像の部分と関連している。データの少なくとも一部が、ダイレクト・メモリ・アクセス・コントローラによって第1のメモリと第2のメモリとの間でブロック単位で転送される。
以下に記載する本発明の各種実施形態は、特定の実施形態が有利に用いられたコンピュータ・システムに関連する記述を通じてよりよく理解できるであろう。
このコンピュータ・システムでは、別の実施形態が有利にその一部を形成している。図1に、このようなコンピュータ・システム101のアーキテクチャ全体を示す。
この図に示すように、システム101にはネットワーク104が含まれ、複数のコンピュータとコンピューティング・デバイスがこのネットワークと接続されている。ネットワーク104の例として、ローカル・エリア・ネットワーク(local area network:LAN)、インターネットのようなグローバル・ネットワーク、あるいは他のコンピュータ・ネットワークが挙げられる。
ネットワーク104と接続されたコンピュータとコンピューティング・デバイス(ネットワークの“メンバー”)の中には、クライアント側コンピュータ106、サーバー・コンピュータ108、個人用情報機器(personal digital assistant:PDA)110、デジタル・テレビ(DTV)112およびその他の有線または無線コンピュータとコンピューティング・デバイスなどが含まれる。ネットワーク104のメンバーによって用いられるプロセッサは、同じ共通のコンピューティング・モジュールから構成される。またこれらのプロセッサは、好適には、命令セット・アーキテクチャ(instruction set architecture:ISA)がすべて同じで、好適には同じ命令セットに従って処理を実行する。個々のプロセッサ内に含まれるモジュールの数は、そのプロセッサが必要とする処理パワーによって決められる。
例えば、システム101のサーバー108は、クライアント106より実行するデータ処理およびアプリケーション処理が多いので、クライアント106より多いコンピューティング・モジュールを含むことになる。一方、PDA110では最低量の処理しか実行されない。このため、PDA110は、備えるコンピューティング・モジュールの数が最も少ない。DTV112の処理量は、クライアント106とサーバー108の中間である。このため、DTV112が備えるコンピューティング・モジュールの数は、クライアント106とサーバー108のコンピューティング・モジュールの数の中間となる。以下に説明するように、各コンピューティング・モジュールの中には、処理用コントローラと、ネットワーク104を介して伝送されるデータおよびアプリケーションの並列処理を実行する複数の同じ処理ユニットとが含まれる。
システム101がこのように均質な構成を有することから、アダプタビリティ(適合性)、処理速度および処理効率が改善される。システム101の各メンバーが、同じコンピューティング・モジュールのうち1つまたはそれ以上(またはコンピューティング・モジュールの一部)を用いて処理を実行するので、データとアプリケーションの実際の処理をどのコンピュータまたはコンピューティング・デバイスで実行するかは重要ではなくなる。さらに、特定のアプリケーションおよびデータの処理を、ネットワークのメンバー間で分散させることができる。システムの全体にわたって、システム101が処理したデータとアプリケーションを含むセルを一意的に識別することにより、この処理がどこで行われたかにかかわらず、処理を要求したコンピュータまたはコンピューティング・デバイスへその処理結果を伝送することが可能となる。この処理を実行するモジュールが共通の構造と共通のISAとを有するので、プロセッサ間の互換性を達成するためのソフトウェアの追加層の計算上の負担が回避される。このアーキテクチャとプログラミング・モデルによって、リアルタイムのマルチメディア・アプリケーションなどの実行に必要な処理速度が改善される。
システム101によって改善される処理速度と効率というさらなる利点を利用するために、このシステムによって処理されるデータとアプリケーションとは、一意的に識別され、それぞれ同じフォーマットを有するソフトウェア・セル102にパッケージ化される。各ソフトウェア・セル102は、アプリケーションとデータの双方を含むか、あるいは含み得る。また各ソフトウェア・セルには、ネットワーク104とシステム101全体でセルをグローバルに識別するためのIDが含まれる。ソフトウェア・セルがこの均一な構造を有しており、ネットワークの中でソフトウェア・セルが一意的に識別されることによって、ネットワークの任意のコンピュータまたはコンピューティング・デバイスでのアプリケーションとデータの処理が改善される。例えば、クライアント106は、ソフトウェア・セル102の作成を行うこともできるが、クライアント106側の処理能力は限られていることから、このソフトウェア・セルをサーバー108へ伝送して処理してもらうこともできる。したがって、ソフトウェア・セルは、ネットワーク104全体を移動してネットワーク上での処理用リソースの可用性に基づいて処理を受けることが可能となる。
また、システム101のプロセッサとソフトウェア・セルが均質な構造を有することで、今日の異質なネットワークの混在という問題の多くを防ぐことができる。例えば任意の命令セットを用いる任意のどのISA上でもアプリケーションを処理できるようにする非効率的なプログラミング・モデル(Javaのバーチャル・マシンのような仮想マシンなど)を使用せずに済む。このため、システム101は、今日のネットワークよりもはるかに効率的、かつはるかに効果的に広帯域処理を実現できる。
ネットワーク104のすべてのメンバーのための基本となる処理用モジュールはプロセッサ・エレメント(PE)である。図2にPEの構造が例示されている。この図に示すように、PE201は、処理ユニット(PU)203、ダイレクト・メモリ・アクセス・コントローラ(DMAC)205、複数の付加処理ユニット(APU)、すなわち、APU207、APU209、APU211、APU213、APU215、APU217、APU219、APU221を具備する。ローカルPEバス223は、APUと、DMAC205と、PU203との間でデータとアプリケーションとを伝送する。ローカルPEバス223は、従来型のアーキテクチャなどを備えていてもよいし、あるいはパケット交換式ネットワークとして実現されてもよい。パケット交換式ネットワークとして実現される場合、より多くのハードウェアが必要となり、その一方で利用可能な帯域幅が増加する。
PE201は、デジタル論理回路を実現する様々な方法を用いて構成可能である。しかし、PE201は、シリコン基板上の相補型金属酸化膜半導体(complementary metal oxide semiconductor:CMOS)を利用した単一の集積回路として構成されることが好ましい。基板の代替材料の中には、ガリウム砒素、ガリウム・アルミニウム砒素、多種多様のドーパントを用いるその他のいわゆるIII−V族化合物が含まれる。またPE201は、超伝導材料(高速単一磁束量子(rapid single-flux-quantum:RSFQ)論理回路など)を用いて実現することもできる。
PE201は、高帯域メモリ接続部227を介してダイナミック・ランダム・アクセス・メモリ(DRAM)225と密接に関連する。DRAM225はPE201用のメイン・メモリとして機能する。DRAM225はダイナミック・ランダム・アクセス・メモリであることが好ましいものの、他の手段、例えばスタティック・ランダム・アクセス・メモリ(static random access memory:SRAM)として、磁気ランダム・アクセス・メモリ(magnetic random access memory:MRAM)、光メモリまたはホログラフィック・メモリなどを用いてDRAM225を実現することもできる。DMAC205によって、DRAM225と、PE201のAPUとPUとの間のデータ転送が改善される。以下にさらに説明するように、DMAC205によって、DRAM225内の排他的領域が各APUに対して指定されるが、この排他的領域へは指定されたAPUだけしかデータの書き込みができず、指定されたAPUだけしかこの排他的領域からのデータ読み出しを行うことができない。この排他的領域は“サンドボックス”と呼ばれる。
PU203は、データとアプリケーションのスタンド・アローン型処理が可能な標準プロセッサなどであってもよい。作動時に、PU203は、APUによるデータとアプリケーションの処理のスケジュール管理と全般的管理(orchestrate)とを行う。APUは、単一命令複数データ(single instruction, multiple data:SIMD)プロセッサであることが好ましい。APUは、PU203の制御によって、並列的かつ独立にこれらのデータとアプリケーションの処理を実行する。DMAC205は、共用DRAM225に格納されているデータとアプリケーションに対する、PU203とAPUによるアクセスを制御する。PE201は、8個のAPUを含むことが好ましいものの、必要とする処理パワーに応じて、PE内のAPUの個数をこれより増減してもよい。また、PE201のようにいくつかのPEを結合(まとめてパッケージ化)して処理パワーの改善を図ることもできる。
例えば、図3に示すように、1つ以上のチップ・パッケージなどの中に4つのPEをパッケージ化(まとめて結合)してネットワーク104のメンバー用の単一プロセッサを形成してもよい。この構成は広帯域エンジン(BE)と呼ばれる。図3に示すように、BE301には4つのPE(PE303、PE305、PE307、PE309)が含まれる。これらのPE間の通信はBEバス311を介して行われる。共用DRAM315とこれらのPE間の通信は広帯域メモリ接続部313によって行われる。BEバス311の代わりに、BE301のPE間の通信は、DRAM315とこのメモリ接続部とを介して行うことができる。別の実施形態では、DRAM315がBE301に組み込まれて、BEバス311と接続されていてもよく、この場合、DRAM315は、バス311を介してPE303,305,307,309のそれぞれからアクセスでき、これらとの間でデータの転送を行う。
入出力(I/O)インターフェース317と外部バス319とは、広帯域エンジン301とネットワーク104のその他のメンバー間の通信を実現する。BE301の各PEは、PEのAPUによって行われるアプリケーションとデータの並列的かつ独立した処理と同じような並列的かつ独立した方法で、データとアプリケーションの処理を実行する。
図4はAPUの構造を例示する図である。APU402は、ローカル・メモリ406、レジスタ410、4つの浮動小数点演算ユニット(FPU)412および4つの整数演算ユニット414を備える。この場合も、必要とする処理パワーに応じて、浮動小数点演算ユニット412および整数演算ユニット414の個数はこれより加減してもよい。好適な一実施形態では、ローカル・メモリ406は128キロバイトの記憶容量を有し、レジスタ410の容量は128×128ビットである。浮動小数点演算ユニット412は、好ましくは毎秒320億浮動小数点演算(32GLOPS)の速度で動作し、整数演算ユニット414は、好ましくは毎秒320億回の演算速度(32GOP)で動作する。
ローカル・メモリ406はキャッシュ・メモリではない。ローカル・メモリ406は、SRAMとして構成されることが好ましい。APUに対するキャッシュ・コヒーレンシー(キャッシュの整合性)のサポートは不要である。PUでは、当該PUで開始されるダイレクト・メモリ・アクセスをサポートするためにキャッシュの整合性が要求される場合もある。しかし、APUが開始するダイレクト・メモリ・アクセスや、外部装置からのアクセスおよび外部装置へのアクセスにはキャッシュの整合性のサポートは不要である。
APU402にはさらに、APUとの間でアプリケーションとデータとを伝送するためのバス404が含まれる。好適な一実施形態では、このバスのバス幅は1,024ビットである。APU402は、内部バス408,420,418をさらに備える。好適な一実施形態では、バス408は256ビットの幅を有し、ローカル・メモリ406とレジスタ410間の通信を実現する。APU402は、一般に、DRAM225にアクセスするよりも高速でローカル・メモリにアクセスすることができる。バス420と418とは、それぞれレジスタ410と浮動小数点演算ユニット412との間、およびレジスタ410と整数演算ユニット414との間の通信を実現する。好適な一実施形態では、レジスタ410から浮動小数点演算ユニット412または整数演算ユニット414へのバス418と420の幅は、384ビットであり、浮動小数点演算ユニット412または整数演算ユニット414からレジスタ410へのバス418と420の幅は128ビットである。レジスタ410から浮動小数点演算ユニットまたは整数演算ユニットへのバス幅のほうが、これらのユニットからレジスタ410へのバス幅よりも広いことで、処理中にレジスタ410からのデータのフローのほうをより多く収容することができる。各計算に必要なワード数は最大で3ワードである。しかし、各計算の結果に要するワード数は通常1ワードのみである。
図5は、本発明の別の実施形態による他の形態のプロセッサ500を示す。ここに示すように、プロセッサシステム500は、中央処理装置(“CPU”)505を有し、このCPUは、単一命令単一データ(“SISD”)方式で命令を実行するように動作可能な単一のプロセッサ・エレメントを備え得る。別の実施形態では、CPU505は、単一命令複数データ(single instruction multiple data:“SIMD”)方式で命令を実行するように動作可能な複数のプロセッサ・エレメントを備える。さらに別の実施形態では、CPU505は、独立または半独立のプロセッサ・エレメント(図示せず)を複数備えていてもよく、それぞれのプロセッサ・エレメントは、他のプロセッサ・エレメントからある程度独立して命令を実行するように動作可能である。さらに別の実施形態では、CPU505は、前述した複数の種類のプロセッサ構成を組合せた構成を有していてもよい。CPU505には、好ましくはCPU505が1つ以上のプログラムを実行するために用いる命令とデータの記憶用のキャッシュ502が備えられている。
必須の要素ではないものの、プロセッサ500は、グラフィック・データを効率よく操作するために特別に設計されたグラフィック処理プロセッサ(“GPU”)515も備えていることが好ましい。GPUが存在する場合、GPU515は、プロセッサ500のために画像データ処理タスクの大半を処理し、CPU505はそれ以外のタスクの大半を処理し得る。別の実施形態では、CPU505とGPU515とは、協調して画像データを処理することができる。CPU505と同様に、GPU515には、GPU515が1つ以上のプログラムを実行するために用いる命令とデータの記憶用のキャッシュ512が備えられている。
CPU505は、前述した数多くの構成のいずれかで構成することができるが、簡潔を期するために、以下の説明では、CPU505が単一のプロセッサ・エレメントを備え、GPU515も単一のプロセッサ・エレメントを備える構成のみを採り上げる。
CPU505とGPU515(存在する場合)とは、CPU505およびGPU515とメモリ510との間でデータ、命令、コマンドおよびアドレスを転送するために、バス504に結合されている。メモリ510は、任意の適した半導体素子技術(solid-state technology)を用いて実施することが好ましく、この例には、ダイナミック・ランダム・アクセス・メモリ(DRAM)、スタティック・ランダム・アクセス・メモリ(SRAM)、フラッシュ・メモリ、磁気抵抗ランダム・アクセス・メモリ(MRAM)などが含まれるが、これらに限定されない。
データ(オペランドおよび/または命令を含んでいてもよい)の転送は、バス504に結合されたダイレクト・メモリ・アクセス・コントローラ(“DMAC”)520の制御の下で、メモリ510と、CPU505と関連するキャッシュ・メモリ502またはCPU515と関連するキャッシュ・メモリ512との間のダイレクト・メモリ・アクセス(“DMA”)操作として実行される。換言すると、DMAC520は、転送の実行が要求されるメモリ510とキャッシュ・メモリ502(またはキャッシュ・メモリ512)間の通信の各段階で、CPU505やGPU515の介入を受けずにこのデータ転送を実行する。また、プロセッサ500は、好ましくは、ディスプレイ画面595上に表示する画像を生成するためのディスプレイ・コントローラ590も備える。バス504は、データ、命令、コマンド、アドレスなどの情報を外部ストレージ540に転送するために、入出力インターフェース(“I/Oインターフェース”)530にも結合されている。メモリ510と外部ストレージ540間の転送は、DMAC520の制御下でのダイレクト・メモリ・アクセス操作として実行されることが好ましい。
I/Oインターフェース530は、データ、命令、コマンド、アドレスなどの情報を、ネットワークに結合されている別のデバイス(別のプロセッサ550など)に転送するために、ネットワーク535にも結合されている。ネットワーク535は、どのような種類のネットワークであってもよい。例えば、ネットワーク535は、ローカル・エリア・ネットワーク(LAN)トポロジのネットワークまたは広域ネットワーク(WAN)トポロジのネットワークのいずれかに限定されず、有線ネットワーク、無線ネットワークの一方に限定されることはない。さらに、ネットワーク535の種類は、インターネット・プロトコル(IP)ネットワーク、x.25ネットワーク、非同期転送モード(Asynchronous Transfer Mode:“ATM”)ネットワーク等のセル・トランスポート・ネットワークといったパケット交換方式など、コンピュータ間での通信の転送を主目的とするネットワークに限定されない。さらに、ネットワーク535は、セルラー・デジタル・パケット・データ(“CDPD”)、汎用パケット・ラジオ・サービス(“GPRS”)といった無線ネットワーク(これらに限られない)だけではなく、一般加入電話網(“PSTN”)、ケーブル通信ネットワーク、衛星通信ネットワークといった、より汎用的な従来のネットワークなどの特定の種類のネットワークに限定されない。
プロセッサ550は、プロセッサ500との通信にはネットワーク535を経由しなければならないため、“リモート”プロセッサと呼ぶことができる。プロセッサ500,550に関し、“リモート”との用語がこれ以外の意味を持つことはない。換言すると、“リモート”との用語が、プロセッサ500とプロセッサ550の間の最短距離を意味したり暗示することはなく、ネットワーク535を経由しなければならないという点を除いては、プロセッサ500とプロセッサ550の間の通信が困難であるということを意味したり暗示することはない。
一実施形態では、プロセッサ550は、内部的には、DMAC、内部メモリ、および少なくとも1つのキャッシュを備えたCPUを有するプロセッサ500と同じか類似する内部構成を有しており、この場合は“均質な”デバイスのネットワークが形成されているといえる。別の実施形態では、プロセッサ550は別の構成を有していてもよく、この場合ネットワークは“異種”である。例えば、半導体素子を利用したランダム・アクセス・メモリ、DMACまたはキャッシュのうちの1つ以上を、プロセッサ550の内部構成から省いてもよい。プロセッサ500とプロセッサ550間でのデータ転送は、DMAC520の制御の下、あるいはDMAC520の支援の下で、ダイレクト・メモリ・アクセスによって行われることが好ましい。
ここに記載する本発明の各種実施形態は、データ処理を支援するため、あるメモリ(メイン・メモリなど)と別のメモリ(ローカル・メモリなど)との間のデータ転送に特に利用される。例えば、ある実施形態では、DRAM225(図2)などのメモリと、APUのローカル・メモリ406(図4)との間でデータが転送される。あるいは、メモリ510と、GPU515のキャッシュ512(図5)との間でデータが転送される例もある。本発明の特定の実施形態は、MPEG−2などの圧縮フォーマットに準拠した画像データの符号化(エンコード)および/または復号化(デコード)をサポートするために、このようなデータ転送に適用される。後述する本発明の実施形態をよりよく理解するには、MPEG−2に準拠して符号化された画像データの編成とそのフローを概説することが有益であろう。
MPEG−2は、ビデオおよび音声の双方の符号化形式を規定している。図6Aに、MPEG−2符号化ビデオの原理を示す。この図に示すように、MPEG−2符号化ビデオのシーケンス、例えば映画[デジタル・ビデオ・ディスク(DVD)に記録されているものなど]のワンシーンは、“ピクチャ”・グループGOP0、GOP1、GOP2、...、GOPnが順に並んだシーケンスを含んでおり、各グループ内の“ピクチャ”は、モニタやテレビ受像器などの表示装置に、実際のビデオ・フレームのシーケンスを表示するのに必要な符号化された画像情報を全て含んでいる。MPEG−2に従った符号化では、各ピクチャ・グループ(group of pictures:GOP)は、最大3種類の“フレーム”を含んでおり、これらの各種類は、実際の表示可能ビデオ・フレームまたは画像のピクセルに相当する、符号化・圧縮されたデータである。説明をわかりやすくするために、以降は、モニタまたはテレビ受信器に表示されるビデオのフレームを“画像”と呼び、GOPの符号化されている“フレーム”と区別する。種類の異なるフレームを使用することで、ビデオ・データを時間的に圧縮することが可能となる。換言すると、ビデオ・データの圧縮では、画像の符号化に必要となる完全な情報を有する“I”(イントラ)タイプのフレームは、GOPのごく一部に過ぎず、大部分のフレームは、P(予測)タイプまたはBタイプ(双方向インターポレーション)であり、これらは、その(P)または(B)フレームと、当該フレームの前または後に存在する1つ以上の別のフレームとの差分を示すデータしか含まない。Bタイプのフレームを復号するには、そのフレームの前のフレームと後のフレームにある対応するデータが、画像データの伸張に使用できる必要がある。
BタイプおよびPタイプのフレームは、通常GOPの中で最も多いフレームである。このため、これらのフレームは、ビデオ・シーケンスの表示中に最も頻繁にアクセスされ、ある種類のメモリ(キャッシュ等のプロセッサに密接に関連するローカル・メモリなど)、および別のメモリ(コンピューティング・システムのメイン・メモリなど)で最も頻繁にアクセスされる。
Bタイプのフレーム610とIタイプのフレーム615を結ぶ曲線矢印と、Bタイプのフレーム610とPタイプのフレーム620を結ぶ曲線矢印とによって一例を示す。このBタイプのフレーム610が、復号化のためにプロセッサのキューに入った場合、Bタイプフレーム610に対応する画像を表示するには、Bフレーム610が参照しているIタイプフレーム615とPタイプフレーム620にアクセスする必要がある。
さらに図6Aに示すように、GOPの各符号化フレームは“スライス”に編成されており、スライスは、それぞれが画像の横方向部分を表している。各スライス(スライス0、スライス1、...、スライスnなど)は、順に並んだマクロブロックMB0、MB1、MB2、MB3、...、MBnのシーケンスに編成されている。特にBタイプおよびPタイプのフレームの場合、各マクロブロック(MB1など)は、画像の、サイズ16×16のピクセル配列を表す圧縮データを有する。さらに各マクロブロックは、符号1,2,3,4で示す輝度(Y)データの4つの“ブロック”のグループ625を有しており、その各ブロックは、画像のサイズ8×8のピクセル配列のグレースケール値に関する符号化・圧縮された情報を含む。さらに、各マクロブロックは、画像の同じ16×16のピクセル領域に対応する2種類の符号化された色差情報、すなわち青色度(choroma blue)データと赤色度(choroma red)データを含むブロックを含む。青色度(Cb)データと赤色度(Cr)データは、それぞれ1つのブロックを有し、輝度データ(Y)のように4つのブロックを有さないが、これは、MPEG−2が行ったヒューマン・インターフェースに関する研究の結果、各方向の色の解像度を半分に落としても問題ないことがわかったからである。Bタイプのフレームの復号は、GOPの先行する(すなわち“過去の”)フレームのマクロブロックと、後続する(すなわち“未来の”)フレームのマクロブロックとの情報を使用して行われる。この復号は、マクロブロックのレベルで行われる。
図6Bは、順次走査方式、すなわちノンインタレース・ビデオのフレームに関連する動き補償ブロック(motion compensation block:“MCB”)に従った画像データの編成を示す。図6Bからわかるように、過去のフレームでも未来のフレームでも、データの編成は変わらない。一般に、現時点で“未来の”画像を表しているフレームがいずれ“現在の”フレームとなり、その後“過去の”フレームとなる。図6Bは、過去のフレームに関連する1つのMCB650と、未来のフレームに関連する1つのMCB660とを示している。このようなMCBは、好ましくは、フレーム間での画像の移動に動き補償を提供するなどの特定の目的に使用できるデータを含む。図6Bに示すように、MCB650は、輝度(Y)データ用の17バイト×17バイトの配列のほか、青色度(Cb)データ用の9バイト×9バイトの配列と赤色度(Cr)データ用の9バイト×9バイトの配列とを有する。マクロブロック(図6A)のそれぞれは、輝度(Y)データ用の16×16の配列のほか、CrデータとCbデータ用の8×8の配列を1つずつ含んでいるため、MCB650またはMCB660は、2つ以上のマクロブロックと共通するデータを含んでいる。
GOP内の現在のフレームがBタイプのフレームの場合、1つの過去のMCB650と1つの未来のMCB660とにアクセスする必要がある。2つのMCB650,660は、合わせて6つの異なるデータのバイト配列(別に記憶されており、通常は別のフェッチ操作によってフェッチする必要があるデータの配列)を含んでいる。
図7は、インタレース・ビデオの過去のフレームのMCB700,710と、インタレース・ビデオの未来のフレームのMCB720,730とを有する別の種類のデータ編成を示し、このインタレース・ビデオは、米国全国テレビ方式委員会(National Television Systems Committee:NTSC)によって採用された標準に従ってフォーマットされたものなどである。すなわち、図7は、インタレース・ビデオの過去のフレームの奇数フィールドのMCB700のデータ編成と、過去のフレームの偶数フィールドのMCB710のデータ編成を示している。同様に、図7は、未来のフレームの奇数フィールドのMCB720と、未来のフレームの偶数フィールドのMCB730を示している。インタレース・ビデオの場合、MCB700,710,720,730の各々は、輝度(Y)データ用の9バイト×17バイトの配列のほか、青色度(Cb)データ用の5バイト×9バイトの配列と赤色度(Cr)データ用の5バイト×9バイトの配列を有する。前述の場合と異なり、Bフレームを復号するには、インタレース・ビデオの過去のフレームと未来のフレームの両方の奇数フィールドと偶数フィールド、合計4つのMCB700,710,720,730にアクセスする必要がある。4つのMCB700,710,720,730は、合わせて12の異なるデータのバイト配列(別に記憶されており、通常は別のフェッチ操作によってフェッチする必要があるデータの配列)を含んでいる。
ここに記載する本発明の実施形態が解決しようとする課題の1つに、1枚の画像の現在のフレームのたった1つのマクロブロックに関連する画像情報を復号するために、非常に多くのデータ転送が必要となることがある。図2と図4を参照して前述したように、図1〜4に示したシステム構成によれば、ダイレクト・メモリ・アクセス(DMA)方式の転送は、DRAM225と、プロセッサ・ユニット(PU)の各SPUのローカル・メモリ406との間の転送に好適である。同様に、図5の別法による構成では、DMAC520によるダイレクト・メモリ・アクセスは、メモリ510とキャッシュ・メモリ502または512との間のデータ転送に好適な方法である。
図8は、図7に示したようなMCB700のバイト配列に格納されているデータにアクセスする方法を示す。図8に例示されるように、Y(輝度)データ810が、Yデータ810の個々の行801,802,803,...,809のそれぞれについて独立した転送操作を行うラスタスキャン方式によって転送され、その後、Cr(赤色度)データ820のラスタスキャン(行811,812,813,...の個々の転送)と、Cb(青色度)データ830の行821,822,823,...の個々の転送とが行われる。このようにして、図8に示すMCB800について、通常は、Yデータの配列810、Crデータの配列820およびCbデータの配列830の各行が、DMAC205(図2)またはDMAC520(図5)などのDMACが制御する独立した転送操作によって転送される。Crデータの場合、図2,4を参照すると、配列の各行の幅は幅9バイトであるため、DMAC205は、DRAM225とローカル・メモリ406との間で1行単位でデータ転送を実行し、その際、DMAC205は、当該行の9バイトの色度データを含む16バイトのデータを転送する。インタレース方式のフィールドのCrデータ・ブロックには5行存在するため、たった1つのBタイプのフレームの1つのMCBの1つのフィールドにアクセスするのに、DMAC205によってこのような16バイトの転送を5回実行しなければならない。その上、Cbデータの転送も同様であり、DMACは転送操作を5回実行する必要がある。しかし、Yデータの場合には、配列の各行の幅が17バイトであり、16バイトの転送幅を越えるため、32バイトの転送操作が実行される。したがって、Yデータの9行は1行ずつ転送され、各行が、32バイトの転送操作によってDRAM225(図2)とローカル・メモリ406(図4)との間で転送される。別例では、図5を参照すると、DMAC520によって“Y”データの9行が、メモリ510と、キャッシュ・メモリ502またはキャッシュ・メモリ512との間で1行ずつ転送される。さらに別の例では、DMAC520の制御下で、Yデータの9行が外部ストレージ540とメモリ510との間で1行ずつ転送される。
メモリ・システムのコストや、高い動作周波数(すなわち高い転送速度でのデータ転送)が要求されるなどの設計上の制約により、DMAコントローラは、通常、1回の転送操作につき転送するデータ量を最小化するように、ハードウェア・エンコードされているか、ファームウェアまたはミドルウェアによってプログラムされている。例えば、DMAC205(図2)は、好ましくは、メモリとの間で、一度に少なくとも128の連続バイトのデータを転送するようにハードウェア・エンコードされている。しかし、個々の行について転送する必要のあるデータ量(すなわち1行のCb色度データまたはCr色度データでは16バイト、1行のYデータでは32バイト)は、ハードウェアのデータ転送サイズである128バイトよりも小さい。同じことは、DMAC520のハードウェア転送サイズにも当てはまり、転送すべき個々の行の長さよりもはるかに大きい例が挙げられる。このような場合、DMAC205(図2)のハードウェアは、16バイトの転送操作のために、DRAM225(図2)とローカル・メモリ406(図4)との間で128バイトのデータを転送し、転送された128バイトのデータ中の不要な部分は廃棄される。このため、この場合は、個々のラインの合計転送量(128バイト)のうち、実際に必要なのはわずか16バイトである。この関係は、DRAM225とDMAC205との間で転送されるデータの利用についての“バス効率”の目安となる。したがって、データの16バイト幅の行が、それぞれ128バイトのハードウェア転送操作によって転送される場合、バス効率は16/128(12.5%)となる。裏を返せば、各ハードウェア転送によって転送されるデータの87.5%が破棄される。データ転送幅が32バイトの場合には、データの使用される部分(32バイト)がハードウェア転送される総データ量の1/4(32/128)を占めるようになり、バス効率は25%に向上する。プロセッサ500(図5)でもバス効率は同様の影響を受け、転送される各行のサイズ(16バイトなど)は、DMAC520のハードウェア転送サイズのごく一部を占めるに過ぎない。
さらに、ラスタスキャン方式を使用する場合、過去のフレームおよび未来のフレームの両方について、奇偶のインタレース・フィールドの各MCBのY、CrおよびCbのデータにアクセスするために、膨大なデータの行を転送しなければならないことが明らかである。図7を再び参照すると、この図に示すように、DMACの制御によるデータ転送回数の最小値は、各MCBの各ブロックの行数に等しくなる。このように、4つのフィールドの対応するMCB700,710,720,730のYデータにアクセスするには、4つのMCBの各Yブロックにはそれぞれ9行存在するので、少なくとも9+9+9+9=36回の行転送が必要となる。しかし、4つのフィールドのMCB700,710,720,730の対応するCrデータにアクセスするには、4つのMCBの各Crブロックにはそれぞれ5行存在するので、少なくとも5+5+5+5=20回の行転送が必要となる。同様に、4つのフィールドのMCB700,710,720,730の対応するCbデータにアクセスするには、4つのMCBの各Cbブロックにはそれぞれ5行存在するので、5+5+5+5=20回の行転送が必要となる。これらを合算すると、1つのGOPの1つのBフレームを復号するため、過去のフレームおよび未来のフレームの奇数フィールドおよび偶数フィールドのMCBにアクセスするには、76回のDMA転送操作が必要となる。
図9は、メモリ内で、データのMCB900が、データの16バイト幅の領域910,912,914,916の境界に必ずしも揃わないという、ラスタスキャン方式の別の複雑な問題を示している。この場合、ブロック900は、図6Bまたは図7を参照して上に示しかつ記載したものなど、フレームまたはフレームのフィールドのデータのYブロック、CrブロックまたはCbブロックなどであり得る。このようなずれが生じた場合、図9に示すように、4つの領域910,912,914,916の全てについて、DMA転送によるデータ・アクセスが必要となる。図8を参照して上述したように、転送すべき各データ・ブロックのあらゆる行でこのようなずれが生じたとすると、4×76=304回の転送が必要となることが明らかである。多くのDMA要求が行われると、その結果、処理能力の低下がDMAセットアップ・オーバーヘッドの形で生じる。また、一度に実行中の転送の数が、DMACの構成上許容されているキューのエントリの数を上回る場合、DMA操作の速度が低下する。
上記の懸念に対処するために、本発明の一実施形態による新しい編成を有するマクロブロック1000が提供される。この実施形態では、マクロブロック1000のYデータ1002、Crデータ1004およびCbデータ1006を、グループ化して連続したデータ構造1010にまとめており、これにより、このマクロブロック・データ構造(以下“MDS”と称する)は、DMAC205(図2)またはDMAC520(図5)などのDMAコントローラによる1回の転送操作でアクセスすることができる。さらに、MDS1010は、合理化を図る特徴を有しており、これには16バイト幅×24行の編成が含まれる。このため、ビデオのフレームのフィールド(奇数または偶数)のMCB700(図7)の符号化に要する全情報が、24のデータ行を有するMDS1010に記憶でき、このMDS1010は、各行が16バイトであり、合計サイズは384である。この量のデータがDMAC205(図2)またはDMAC520(図5)によって転送される際には、転送対象データである384バイトはハードウェア転送量(128バイト)の倍数(3倍)になっているため、比較的少ないハードウェア転送操作で行われる。さらに、このMDS1010の転送時には、128バイトのハードウェア転送操作1回につき転送される全データが、転送を要求されたデータとしてローカル・メモリに送られるため、100%のバス効率が達成され、図8を参照して上記したような、1行のサイズの単なる超過分についてのデータ転送が生じることはない。
インタレース・ビデオの場合の、BフレームのMCB700について図7と比較して上記した場合と同様に、過去のフレームの奇偶のフィールドのそれぞれについて1つずつ、未来のフレームの奇偶のフィールドのそれぞれについて1つずつ、計4つのMDS1010にアクセスする必要があることは明らかである。各MDS1010がメモリの境界に完全に揃っている場合、毎回の転送サイズが384バイトであれば、4回のDMA転送が必要である。しかし、各MDS1010が、DRAM225(図2)またはメモリ510(図5)などのメモリのメモリ境界に完全には揃わない場合には、各MDSの完全な情報にアクセスするには、メモリとの間で実行しなければならない転送の回数が増える。
本発明の一実施形態は、1回のDMA転送操作に384バイトのほか、2つのMDSに含まれるのと同じデータ量が転送できるように768バイトのデータを使用することによって、ずれの可能性を考慮している。図11の768バイトの転送操作“転送1”および“転送2”において、この各操作で転送されるデータは、メモリの隣接する連続ブロックに存在していることが望ましい。例えば、転送対象のデータ・ブロックは、図11に示すように水平方向に隣接していても、垂直方向に隣接していてもよい。このような768バイトの転送操作のそれぞれにおいて、水平方向に隣接するロケーションにあるデータにアクセスする場合、データは、水平方向に16バイトの境界1110で接しており、垂直方向に24行バイトおきに設けられた垂直の境界1120で区切られた2つの連続するデータ・ブロックとして転送される。
したがって、MDS1010が16バイトの境界にも24行の境界にも揃っていない場合には、2回の768バイトのDMA転送操作によって十分なデータにアクセスできるため、これだけでMDS1010にアクセスできる。過去のフレームおよび未来のフレームについて、インタレース・ビデオの奇数フィールドと偶数フィールドのデータを含む4つのマクロブロック1000を使用する動き補償処理に関する前述のデータ・アクセスの例に戻ると、各MDSについて最大2回の転送操作が必要となるため、必要な4つのMDSには最大8回の768バイトDMA転送操作によりアクセスできることは容易に理解できる。
さらに、MDSへのアクセスに必要なDMAの回数が最大8回であるというのは有利に少なく、DMAC205(図2)やDMAC520(図5)などのDMAコントローラのキュー長の範囲に収まる。ハードウェア・コスト上の制約のため、DMAコントローラのキュー長は設計によって制限される。キュー長は、同時にキューに入れることができる未処理のDMA転送要求の最大個数を表している。このため、例えば、DMAのキュー長が16と短いシステムでは、一度に待機させることができる要求された転送操作の個数は最大16となる。要求された転送操作の数がキュー長を越える場合、DMAコントローラは越えた分を処理することができない。
本実施形態では、過去のフレームと現在のフレームを使用してインタレース・ビデオの動き補償処理をサポートするために必要となる転送操作は最大8回であり、これは、DMAキューのエントリの許容最大数の16を下回っている。このため、DMAセットアップ・オーバーヘッドの発生を回避でき、これに起因するDMAの処理能力の低下が発生しない。
以上、具体的な実施形態を用いて本発明を説明したが、これらの実施形態は、本発明の原理および利用の例を示すものに過ぎないことを理解されたい。このため、添付の請求の範囲に記載した本発明の趣旨および範囲から逸脱することなく、これら例示的な実施形態を種々に変更したり、上記以外の構成を考案し得ることが理解されよう。
本発明のコンピュータ・ネットワークのアーキテクチャ全体を示す図である。 本発明のプロセッサ・エレメント(PE)の構造を示す図である。 本発明の広帯域エンジン(BE)の構造を示す図である。 本発明の付加処理装置(APU)の構造を示す図である。 本発明の一実施形態による、ネットワークに結合された状態のプロセッサを示す図である。 MPEG−2に準拠したビデオ符号化の原理を示す図である。 順次走査方式ビデオの過去のフレームおよび未来のフレームの動き補償ブロックの編成を示す図である。 インタレース・ビデオの過去のフレームの奇偶のフィールド、ならびに未来のフレームの奇偶のフィールドの動き補償ブロックの編成を示す図である。 動き補償ブロックのデータを転送するラスタスキャン方式を示す図である。 メモリのデータ境界をまたいでいる動き補償ブロックを示す図である。 本発明の実施形態に使用するマクロブロック・データ構造(MDS)の編成を示す図である。 本発明一実施形態によるDMA転送境界をまたいでいるマクロブロック・データ構造を示す図である。
符号の説明
205,520…ダイレクト・メモリ・アクセス・コントローラ
225,510…メイン・メモリ(第1のメモリ)
402,505,515…プロセッサ
406,502,512…ローカル・メモリ(第2のメモリ)
1010…ブロック

Claims (20)

  1. 画像の処理のために、それぞれプロセッサによるアクセスが可能な第1のメモリと第2のメモリとの間でデータを転送する方法であって、
    前記画像は、それぞれ符号化された複数のフレームから構成されるとともに、各フレームには、複数のデータを有するマクロブロックが含まれ、当該マクロブロックは、前記複数のデータがグループ化されて連続したデータ構造とされており、
    前記画像の処理のために、前記第1のメモリに、前記マクロブロックを含むデータを与えるステップを有し、
    ダイレクト・メモリ・アクセス・コントローラによって、前記マクロブロックを含むデータの少なくとも一部を前記第1のメモリと前記第2のメモリとの間でブロック単位で転送するステップを有し、
    前記各マクロブロックのデータ量は、前記ダイレクト・メモリ・アクセス・コントローラによる前記ブロック単位での転送における一回のデータ転送量の整数倍となっており、前記転送するステップでは、一回のハードウェアデータ転送動作において前記一回のデータ転送量での転送が行われる、方法。
  2. 前記マクロブロックは、前記画像の部分を表すものであり、
    前記画像は横方向の画像幅および垂直方向の画像高によって定義される領域を有し、前記画像は前記部分を複数有し、前記部分の各々は前記画像幅よりも画像幅が狭く、かつ前記画像高よりも画像高が低い請求項1に記載の方法。
  3. 前記第2のメモリは前記プロセッサ専用のローカル・メモリである請求項1に記載の方法。
  4. 前記マクロブロックの1つが表している前記画像の各部分は直線状である請求項1に記載の方法。
  5. 前記マクロブロックの1つが表している前記画像の各部分は横方向に配置された第1の複数のピクセルと、垂直方向に逐次配置された第2の複数のピクセルとを有する所定の複数のピクセルを有し、前記第1の複数のピクセルと前記第2の複数のピクセルとはピクセル数が等しいかまたは異なる請求項4に記載の方法。
  6. 前記マクロブロックを含むデータは複数のバイトを有し、各ピクセルは1バイト以上によって表される請求項5に記載の方法。
  7. 前記複数のバイトは、24バイトの行と16バイトの列とを有するバイトの配列として配置された384バイトを有する請求項6に記載の方法。
  8. 前記第2のメモリは前記第1のメモリよりもプロセッサと密接に関連している請求項1に記載の方法。
  9. 前記第1のメモリは第1の速度でプロセッサによってアクセスされるように動作可能であり、前記第2のメモリは前記第1の速度よりも高速な第2の速度でプロセッサによってアクセスされるように動作可能である請求項1に記載の方法。
  10. 前記第1のメモリは第1の量のデータを記憶するように動作可能であり、前記第2のメモリは前記第1の量より大きい第2の量のデータを記憶するように動作可能である請求項1に記載の方法。
  11. 前記マクロブロックの各々は輝度データを表す第1のデータ単位の配列、第1の色度データを表す第2のデータ単位の配列、および第2の色度データを表す第3のデータ単位の配列を有する請求項1に記載の方法。
  12. 前記各データ単位は複数のデータの完全バイトからなる請求項11に記載の方法。
  13. 前記マクロブロックを含むデータは圧縮されている請求項1に記載の方法。
  14. 前記マクロブロックを含むデータは輝度データおよび色度データを有し、前記マクロブロックを含むデータはMPEG形式に従って圧縮されている請求項13に記載の方法。
  15. 前記マクロブロックの少なくとも一部は動き補償処理を実行するためのデータを含む請求項1に記載の方法。
  16. 画像の表示のために、複数のブロックに編成されて第1のメモリに記憶されているデータを処理するように動作可能なプロセッサであって、
    前記画像は、それぞれ符号化された複数のフレームから構成されるとともに、各フレームには、複数のデータを有するマクロブロックが含まれ、当該マクロブロックは、前記複数のデータがグループ化されて連続したデータ構造とされており、
    前記プロセッサは、ダイレクト・メモリ・アクセス・コントローラを制御して前記第1のメモリから前記プロセッサによるアクセスが可能な第2のプロセッサに前記マクロブロックを含むデータをブロック単位で転送させるように動作可能であり、前記プロセッサは前記マクロブロックを含むデータを処理するために前記第2のメモリから前記マクロブロックを含むデータにアクセスするようにさらに動作可能であり、
    前記マクロブロックのデータ量は、前記ダイレクト・メモリ・アクセス・コントローラによる前記ブロック単位での転送における一回のデータ転送量の整数倍となっており、一回のハードウェアデータ転送動作において前記一回のデータ転送量での転送が行われるプロセッサ。
  17. プロセッサを有し、
    前記プロセッサによる画像の処理のために、複数のブロックに編成されたデータを記憶するように動作可能な第1のメモリを有し、前記画像は、それぞれ符号化された複数のフレームから構成されるとともに、各フレームには、複数のデータを有するマクロブロックが含まれ、当該マクロブロックは、前記複数のデータがグループ化されて連続したデータ構造とされており、
    前記プロセッサによるアクセスが可能な第2のメモリを有し、
    前記マクロブロックを含むデータの少なくとも一部を前記第1のメモリと前記第2のメモリとの間でブロック単位で転送するように動作可能なダイレクト・メモリ・アクセス・コントローラを有し、
    前記マクロブロックのデータ量は、前記ダイレクト・メモリ・アクセス・コントローラによる前記ブロック単位での転送における一回のデータ転送量の整数倍となっており、一回のハードウェアデータ転送動作において前記一回のデータ転送量での転送が行われるシステム。
  18. 画像の表示のために、複数のブロックに編成されてメイン・メモリに記憶されているデータを処理するようにそれぞれ動作可能な複数のプロセッサを有し、
    前記画像は、それぞれ符号化された複数のフレームから構成されるとともに、各フレームには、複数のデータを有するマクロブロックが含まれ、当該マクロブロックは、前記複数のデータがグループ化されて連続したデータ構造とされており、
    前記複数のプロセッサのうちのプロセッサからの要求に応えて、前記マクロブロックを含むデータの少なくとも一部を、前記メイン・メモリと要求元の前記プロセッサ専用のローカル・メモリとの間でブロック単位で転送するように動作可能なダイレクト・メモリ・アクセス・コントローラと、を備え、
    前記マクロブロックのデータ量は、前記ダイレクト・メモリ・アクセス・コントローラによる前記ブロック単位での転送における一回のデータ転送量の整数倍となっており、一回のハードウェアデータ転送動作において前記一回のデータ転送量での転送が行われるシステム。
  19. 複数のプロセッサを有し、
    前記プロセッサのうちの少なくとも1つのプロセッサによる画像の処理のために、複数のブロックに編成されているデータを記憶するように動作可能な前記複数のプロセッサによって共有されているメイン・メモリを有し、
    前記画像は、それぞれ符号化された複数のフレームから構成されるとともに、各フレームには、複数のデータを有するマクロブロックが含まれ、当該マクロブロックは、前記複数のデータがグループ化されて連続したデータ構造とされており、
    それぞれが前記複数のプロセッサのうちの特定のプロセッサ専用である複数のローカル・メモリを有し、
    前記複数のプロセッサのうちのプロセッサからの要求に応えて、前記マクロブロックを含むデータの少なくとも一部を、前記メイン・メモリと要求元の前記プロセッサの専用の前記ローカル・メモリとの間でブロック単位で転送するように動作可能なダイレクト・メモリ・アクセス・コントローラを有し、
    前記マクロブロックのデータ量は、前記ダイレクト・メモリ・アクセス・コントローラによる前記ブロック単位での転送における一回のデータ転送量の整数倍となっており、一回のハードウェアデータ転送動作において前記一回のデータ転送量での転送が行われるシステム。
  20. 画像の処理のために、それぞれプロセッサによるアクセスが可能な第1のメモリと第2のメモリとの間でデータを転送する方法を実行するために記録された命令を有する記録媒体であって、
    前記画像は、それぞれ符号化された複数のフレームから構成されるとともに、各フレームには、複数のデータを有するマクロブロックが含まれ、当該マクロブロックは、前記複数のデータがグループ化されて連続したデータ構造とされており、
    前記方法は、
    前記画像の処理のために、前記第1のメモリに、前記マクロブロックを含むデータを提供するステップを有し、
    ダイレクト・メモリ・アクセス・コントローラによって、前記マクロブロックを含むデータの少なくとも一部を前記第1のメモリと前記第2のメモリとの間でブロック単位で転送するステップと、を有し、
    前記マクロブロックのデータ量は、前記ダイレクト・メモリ・アクセス・コントローラによる前記ブロック単位での転送における一回のデータ転送量の整数倍となっており、一回のハードウェアデータ転送動作において前記一回のデータ転送量での転送が行われる記録媒体。
JP2005237736A 2004-08-19 2005-08-18 ダイレクト・メモリ・アクセスのための画像データ構造 Expired - Fee Related JP4527029B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/922,670 US7304646B2 (en) 2004-08-19 2004-08-19 Image data structure for direct memory access

Publications (2)

Publication Number Publication Date
JP2006065864A JP2006065864A (ja) 2006-03-09
JP4527029B2 true JP4527029B2 (ja) 2010-08-18

Family

ID=35385505

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005237736A Expired - Fee Related JP4527029B2 (ja) 2004-08-19 2005-08-18 ダイレクト・メモリ・アクセスのための画像データ構造

Country Status (8)

Country Link
US (1) US7304646B2 (ja)
EP (1) EP1779668B1 (ja)
JP (1) JP4527029B2 (ja)
KR (1) KR100881539B1 (ja)
CN (1) CN1989769B (ja)
AT (1) ATE454014T1 (ja)
DE (1) DE602005018654D1 (ja)
WO (1) WO2006019188A1 (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8428349B2 (en) * 2003-05-21 2013-04-23 Broadcom Corporation Method and apparatus for DRAM 2D video word formatting
JP2006031480A (ja) * 2004-07-16 2006-02-02 Sony Corp 情報処理システム及び情報処理方法、並びにコンピュータプログラム
US7522168B2 (en) * 2005-09-27 2009-04-21 Sony Computer Entertainment Inc. Cell processor task and data management
US8037474B2 (en) * 2005-09-27 2011-10-11 Sony Computer Entertainment Inc. Task manager with stored task definition having pointer to a memory address containing required code data related to the task for execution
US7506123B1 (en) * 2005-09-27 2009-03-17 Sony Computer Entertainment Inc. Method and system for performing memory copy function on a cell processor
US8316220B2 (en) * 2005-09-27 2012-11-20 Sony Computer Entertainment Inc. Operating processors over a network
US7975269B2 (en) * 2005-09-27 2011-07-05 Sony Computer Entertainment Inc. Parallel processor methods and apparatus
US7734827B2 (en) * 2005-09-27 2010-06-08 Sony Computer Entertainment, Inc. Operation of cell processors
US8141076B2 (en) * 2005-09-27 2012-03-20 Sony Computer Entertainment Inc. Cell processor methods and apparatus
US8595747B2 (en) * 2005-12-29 2013-11-26 Sony Computer Entertainment Inc. Efficient task scheduling by assigning fixed registers to scheduler
JP2007293533A (ja) * 2006-04-24 2007-11-08 Toshiba Corp プロセッサシステム及びデータ転送方法
US8527689B2 (en) * 2010-10-28 2013-09-03 Lsi Corporation Multi-destination direct memory access transfer
US9645738B2 (en) 2012-08-09 2017-05-09 Spectra Logic Corporation Direct memory access of remote data
US9218133B2 (en) 2012-08-17 2015-12-22 Spectra Logic, Corp Data deduplication in a removable storage device
US20140184630A1 (en) * 2012-12-27 2014-07-03 Scott A. Krig Optimizing image memory access

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002342165A (ja) * 2001-03-22 2002-11-29 Sony Computer Entertainment Inc コンピュータ処理システム及びコンピュータで実行される処理方法
JP2003143616A (ja) * 2001-11-02 2003-05-16 Mega Chips Corp データ転送方法
JP2004013389A (ja) * 2002-06-05 2004-01-15 Sony Corp データ転送システム、データ転送方法
JP2004220584A (ja) * 2002-12-26 2004-08-05 Canon Inc 画像処理装置及び画像処理方法

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5313576A (en) * 1990-11-23 1994-05-17 Network Computing Devices, Inc. Bit aligned data block transfer method and apparatus
JPH0827773B2 (ja) * 1992-10-23 1996-03-21 インターナショナル・ビジネス・マシーンズ・コーポレイション データ経路を使用可能にする方法、装置およびデータ処理システム
US5706483A (en) * 1994-12-13 1998-01-06 Microsoft Corporation Run-time code compiler for data block transfer
JPH08171384A (ja) * 1994-12-16 1996-07-02 Canon Inc 走査変換方法及びその装置
US5812791A (en) * 1995-05-10 1998-09-22 Cagent Technologies, Inc. Multiple sequence MPEG decoder
US5736988A (en) * 1995-12-04 1998-04-07 Silicon Graphics, Inc. Apparatus and method for accelerated tiled data retrieval
US5854640A (en) * 1996-01-02 1998-12-29 Intel Corporation Method and apparatus for byte alignment of video data in a memory of a host system
US6005546A (en) * 1996-03-21 1999-12-21 S3 Incorporated Hardware assist for YUV data format conversion to software MPEG decoder
KR100207705B1 (ko) * 1996-12-04 1999-07-15 윤종용 Dct 블럭과 래스터 스캔을 위한 메모리 주소지정장치 및 그 방법
CN1156171C (zh) * 1997-04-07 2004-06-30 松下电器产业株式会社 提高处理效率的图象声音处理装置
US20020196853A1 (en) * 1997-06-04 2002-12-26 Jie Liang Reduced resolution video decompression
TW398131B (en) * 1997-06-20 2000-07-11 Matsushita Electric Ind Co Ltd The image process method, the image process device and the data memory medium
JP3748489B2 (ja) * 1998-03-11 2006-02-22 キヤノン株式会社 画像処理装置、画像処理方法及びコンピュータ読み取り可能な記憶媒体
US6661422B1 (en) * 1998-11-09 2003-12-09 Broadcom Corporation Video and graphics system with MPEG specific data transfer commands
US6636222B1 (en) * 1999-11-09 2003-10-21 Broadcom Corporation Video and graphics system with an MPEG video decoder for concurrent multi-row decoding
US6466227B1 (en) * 1999-09-01 2002-10-15 Mitsubishi Electric Research Laboratories, Inc. Programmable architecture for visualizing sampled and geometry data
EP1139669A1 (en) * 2000-03-28 2001-10-04 STMicroelectronics S.r.l. Coprocessor for motion estimation in digitised video sequence encoders
EP1182564A3 (en) 2000-08-21 2004-07-28 Texas Instruments France Local memory with indicator bits to support concurrent DMA and CPU access
US6670960B1 (en) * 2000-09-06 2003-12-30 Koninklijke Philips Electronics N.V. Data transfer between RGB and YCRCB color spaces for DCT interface
GB0101399D0 (en) * 2001-01-19 2001-03-07 Lsi Logic Corp Direct memory accessing
KR100372084B1 (ko) * 2001-01-29 2003-02-14 한국과학기술원 저소비전력을 위한 mpeg 압축영상의 메모리 저장 방법및 그에 따른 프레임 버퍼 구조
US6847370B2 (en) * 2001-02-20 2005-01-25 3D Labs, Inc., Ltd. Planar byte memory organization with linear access
FR2826226A1 (fr) * 2001-06-19 2002-12-20 Koninkl Philips Electronics Nv Circuit memoire concu pour un acces parallele en lecture ou en ecriture de donnees a plusieurs composantes
US7016418B2 (en) * 2001-08-07 2006-03-21 Ati Technologies, Inc. Tiled memory configuration for mapping video data and method thereof
US7403564B2 (en) * 2001-11-21 2008-07-22 Vixs Systems, Inc. System and method for multiple channel video transcoding
US6999091B2 (en) * 2001-12-28 2006-02-14 Intel Corporation Dual memory channel interleaving for graphics and video
EP1331604A1 (en) 2002-01-22 2003-07-30 Deutsche Thomson-Brandt Gmbh Method and device for memory access of block encoders/decoders
KR100612414B1 (ko) * 2003-04-28 2006-08-16 삼성전자주식회사 영상 데이터 처리 시스템 및 영상 데이터 독출/기입 방법
US7873107B2 (en) * 2004-07-30 2011-01-18 Broadcom Corporation Tertiary content addressable memory based motion estimator

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002342165A (ja) * 2001-03-22 2002-11-29 Sony Computer Entertainment Inc コンピュータ処理システム及びコンピュータで実行される処理方法
JP2003143616A (ja) * 2001-11-02 2003-05-16 Mega Chips Corp データ転送方法
JP2004013389A (ja) * 2002-06-05 2004-01-15 Sony Corp データ転送システム、データ転送方法
JP2004220584A (ja) * 2002-12-26 2004-08-05 Canon Inc 画像処理装置及び画像処理方法

Also Published As

Publication number Publication date
KR100881539B1 (ko) 2009-02-05
ATE454014T1 (de) 2010-01-15
KR20070052311A (ko) 2007-05-21
CN1989769B (zh) 2010-08-04
DE602005018654D1 (de) 2010-02-11
WO2006019188A1 (en) 2006-02-23
US20060038821A1 (en) 2006-02-23
EP1779668A1 (en) 2007-05-02
US7304646B2 (en) 2007-12-04
EP1779668B1 (en) 2009-12-30
CN1989769A (zh) 2007-06-27
JP2006065864A (ja) 2006-03-09

Similar Documents

Publication Publication Date Title
JP4527029B2 (ja) ダイレクト・メモリ・アクセスのための画像データ構造
US7548586B1 (en) Audio and video processing apparatus
KR100995171B1 (ko) 그래픽 처리 장치를 이용한 비디오 디코딩 가속화 방법, 시스템 및 컴퓨터-판독가능 기록 매체
US7403564B2 (en) System and method for multiple channel video transcoding
JP5245004B2 (ja) 高性能ビデオプロセッサ用の低電力メモリ階層
US8811494B2 (en) Local macroblock information buffer
US7978198B2 (en) Image data transfer method, image processing device, and imaging system
KR100606812B1 (ko) 비디오 디코딩 시스템
JP2009272724A (ja) ビデオ符号化・復号化装置
JPH05268590A (ja) 動画像符号化復号化回路
US9530387B2 (en) Adjusting direct memory access transfers used in video decoding
US7447266B2 (en) Decoding device and decoding program for video image data
US6704846B1 (en) Dynamic memory arbitration in an MPEG-2 decoding System
US8971401B2 (en) Image decoding device
US6597810B1 (en) Image processor
US9363523B2 (en) Method and apparatus for multi-core video decoder
EP1089567A1 (en) Video processing device and method, and medium
JP3123496B2 (ja) 動き補償処理方法及びシステム並びにその処理プログラムを記録した記録媒体
JP2000175201A (ja) 画像処理装置及び方法、並びに提供媒体
US20030123555A1 (en) Video decoding system and memory interface apparatus
KR100504507B1 (ko) 비디오 디코딩 시스템
Wang et al. SDRAM bus schedule of HDTV video decoder

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20081027

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081104

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081218

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091222

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100222

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100323

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100430

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: 20100601

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100602

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

Free format text: PAYMENT UNTIL: 20130611

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4527029

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees