JP2015534169A - マルチメディアデータ処理のための方法及びシステム - Google Patents

マルチメディアデータ処理のための方法及びシステム Download PDF

Info

Publication number
JP2015534169A
JP2015534169A JP2015531281A JP2015531281A JP2015534169A JP 2015534169 A JP2015534169 A JP 2015534169A JP 2015531281 A JP2015531281 A JP 2015531281A JP 2015531281 A JP2015531281 A JP 2015531281A JP 2015534169 A JP2015534169 A JP 2015534169A
Authority
JP
Japan
Prior art keywords
cache
pixel block
region
pixel blocks
block
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.)
Granted
Application number
JP2015531281A
Other languages
English (en)
Other versions
JP6263538B2 (ja
JP2015534169A5 (ja
Inventor
サンギヴィ ヘトゥル
サンギヴィ ヘトゥル
ヴェンカタ ラトゥナ レディ ムランギ
ヴェンカタ ラトゥナ レディ ムランギ
ディーパック グプテ アジト
ディーパック グプテ アジト
バサク アリンダム
バサク アリンダム
Original Assignee
日本テキサス・インスツルメンツ株式会社
テキサス インスツルメンツ インコーポレイテッド
テキサス インスツルメンツ インコーポレイテッド
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 日本テキサス・インスツルメンツ株式会社, テキサス インスツルメンツ インコーポレイテッド, テキサス インスツルメンツ インコーポレイテッド filed Critical 日本テキサス・インスツルメンツ株式会社
Publication of JP2015534169A publication Critical patent/JP2015534169A/ja
Publication of JP2015534169A5 publication Critical patent/JP2015534169A5/ja
Application granted granted Critical
Publication of JP6263538B2 publication Critical patent/JP6263538B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0846Cache with multiple tag or data arrays being simultaneously accessible
    • G06F12/0848Partitioned cache, e.g. separate instruction and operand caches
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • 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/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/28Using a specific disk cache architecture
    • G06F2212/282Partitioned cache
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

ある実施形態において、マルチメディアデータ処理のための方法及びシステムが提供される。一実施形態において、マルチメディアデータを処理するための方法が、基準データに対応する複数の基準ピクセルブロックをキャッシュするように、第1のキャッシュにおいて1つ又は複数のピクセルブロック領域を定義すること(702)を含む。これら複数の基準ピクセルブロックの中からの基準ピクセルブロックが、所定の基準に基づいて、1つ又は複数のピクセルブロック領域の中からのピクセルブロック領域に割り当てられる(704)。マルチメディアデータのマルチメディアフレームに関連付けられる複数のピクセルブロックを処理するために基準データの検索を促進するように、基準ピクセルブロックはピクセルブロック領域に基づいてタグに関連付けられる(706)。

Description

本願はデータ処理の分野に関する。
例示のシナリオにおいて、マルチメディアデータ処理に関する技術の急速な進歩が、様々なマルチメディアプロセッサのそれぞれの計算能力への需要を増大させる可能性がある。マルチメディアデータ処理は、圧縮目的でのマルチメディアデータの符号化に関与し得る。マルチメディアデータの圧縮は、記憶の間メモリを節約するため、又は伝送の間利用可能な帯域幅を効率良く利用するために実行され得る。マルチメディアデータは、マルチメディアデータの圧縮を達成するのに十分な符号化メカニズムを用いて符号化され得る。マルチメディアデータは、その後、表示/閲覧のため圧縮解凍(例えば復号)され得る。
さらに、例示のシナリオにおいて、様々なビデオコーディングパラダイムが、基準フレームに基づくマルチメディアデータに対応するフレームの符号化、及びそれによる、記憶容量の最適化、並びにマルチメディアプロセッサの性能強化も含み得る。例示のシナリオにおいて、マルチメディアデータ処理は、動き補償の実行に関与し得、この処理では、基準フレーム(例えば以前に復号され、メモリ内に記憶されたフレーム)に関連付けられた基準ピクセルが、メモリからフェッチされ、予測フレームを形成するために補間される。予測フレームは、現行フレームに対応する残余サンプルを取得するために現行フレームから差し引かれ得る。その後残余サンプルは、現行フレームの符号化のために符号化され得る。例示のシナリオにおいて、動き補償を実施する一方で、基準ピクセルは(フレームの様々な部分を符号化するために)メモリからランダムにフェッチされ、フェッチされた基準ピクセルの中にかなりの程度の重複が存在する可能性がある。例示のシナリオによれば、基準ピクセルをフェッチすることのランダム性の結果として、メモリ帯域幅消費及び電力損失が増加する可能性がある。
マルチメディアデータ処理のための方法及びシステムが開示される。一実施形態において、マルチメディアフレームを処理するために、マルチメディアフレームは複数のブロック区画に分割され、各区画は複数のピクセルブロックを含む。一実施形態において、マルチメディアフレームの第1のブロック区画に関連付けられた複数のピクセルブロックについて、第1の基準領域が決定される。一実施形態において、第1の基準領域をメモリからフェッチする前に、第1の基準領域の存在が第1のキャッシュにおいて決定される。第1の基準領域が第1のキャッシュにおいて利用不能であると決定される場合、第1の基準領域の存在が第2のキャッシュにおいてチェックされる。第1の基準領域が第2のキャッシュにおいて利用不能であると決定される場合、第1の基準領域はメモリからフェッチされる。
一実施形態において、この方法は、基準データに対応する複数の基準ピクセルブロックをキャッシュするように、第1のキャッシュにおける1つ又は複数のピクセルブロック領域を定義することを含む。複数の基準ピクセルブロックの中からの基準ピクセルブロックが、所定の基準に基づいて、1つ又は複数のピクセルブロック領域の中からのピクセルブロック領域に割り当てられる。マルチメディアデータのマルチメディアフレームに関連付けられる複数のピクセルブロックを処理するために基準データの検索を促進するように、基準ピクセルブロックはピクセルブロック領域に基づいてタグに関連付けられる。
一実施形態において、基準データの検索は、第1の基準領域に関連付けられるタグ情報を、1つ又は複数のピクセルブロック領域に関連付けられるスパン情報と比較することによって、第1の基準領域を含む可能性がある1つ又は複数のピクセルブロック領域の中からピクセルブロック領域を識別することを含む。さらに、識別された1つ又は複数のピクセルブロック領域において、第1の基準領域に関連付けられる1つ又は複数の基準ピクセルブロックの存在が決定される。一実施形態において、1つ又は複数の基準ピクセルブロックの存在を決定することは、スパン情報と、基準データに関連付けられる基準フレーム内の第1の基準領域の場所とに基づいて、識別された1つ又は複数のピクセルブロック領域の各々内の第1の基準領域のあり得るオフセットを決定することを含む。識別された1つ又は複数のピクセルブロック領域において決定されたあり得るオフセットでの第1の基準領域の存在が、決定されたあり得るオフセットでの各基準ピクセルブロックに関連付けられる複数の利用可能性タグをチェックすることによって決定され得る。
一実施形態において、第1の基準領域に関連付けられる1つ又は複数の基準ピクセルブロックの中からの基準ピクセルブロックをメモリからフェッチするための最小細分性は、メモリに関連付けられるプリフェッチバッファにおけるキャッシュの最小細分性とマッチングする。一実施形態において、基準フレーム内の第1の基準領域に関連付けられる1つ又は複数の基準ピクセルブロックに近接し、基準フレーム内に矩形領域を形成する、1つ又は複数の追加の基準ピクセルブロックが、共にフェッチされる。一実施形態において、1つ又は複数の追加の基準ピクセルブロック及び第1の基準領域は、基準フレーム内の複数のブロック区画の中からのブロック区画に対応する。一実施形態において、1つ又は複数の追加の基準ピクセルブロック及び第1の基準領域は、基準フレーム内の近接するブロック区画に対応する。
一実施形態において、マルチメディアデータを処理するように構成されたシステムが開示される。このシステムは、メモリ、キャッシュユニット、及び処理ユニットを含む。メモリは、基準データに対応する1つ又は複数の基準フレームを記憶するように構成される。キャッシュユニットは、メモリに通信可能に関連付けられ、第1のキャッシュ及び第2のキャッシュを含む。処理ユニットは、メモリ及びキャッシュユニットに通信可能に関連付けられ、基準データに対応する複数の基準ピクセルブロックをキャッシュするように、第1のキャッシュにおける1つ又は複数のピクセルブロック領域を定義するように構成される。処理ユニットはさらに、(1)所定の基準に基づいて、複数の基準ピクセルブロックの中からの基準ピクセルブロックを、1つ又は複数のピクセルブロック領域の中からのピクセルブロック領域に割り当てるように、及び、(2)マルチメディアフレームに関連付けられる複数のピクセルブロックを処理するために基準データの検索を促進するように、ピクセルブロック領域に基づいて、基準ピクセルブロックをタグに関連付けるように構成される。
一実施形態において、コンピュータ可読媒体が開示され、このコンピュータ可読媒体は、実行されたときにマルチメディアデータ処理のための方法をコンピュータに実行させる、命令セットを記憶する。この方法は、基準データに対応する複数の基準ピクセルブロックをキャッシュするように、第1のキャッシュにおいて1つ又は複数のピクセルブロック領域を定義することを含む。基準データは基準フレームに関連付けられ得る。また、この方法は、複数の基準ピクセルブロックの中からの基準ピクセルブロックを、所定の基準に基づいて、1つ又は複数のピクセルブロック領域の中からのピクセルブロック領域に割り当てることを含む。また、この方法は、マルチメディアフレームに関連付けられる複数のピクセルブロックを処理するために基準データの検索を促進するように、ピクセルブロック領域に基づいて基準ピクセルブロックをタグに関連付けることを含む。
一実施形態に従った、マルチメディアデータを処理するように構成された例示のシステムのブロック図である。
一実施形態に従った、第1のキャッシュにおいて定義された複数の例示のピクセルブロック領域を示す。
一実施形態に従った、図1のシステムを用いることなどによる、複数の基準データフェッチ間での重複の例示的活用を示す。 一実施形態に従った、図1のシステムを用いることなどによる、複数の基準データフェッチ間での重複の例示的活用を示す。 一実施形態に従った、図1のシステムを用いることなどによる、複数の基準データフェッチ間での重複の例示的活用を示す。
一実施形態に従った、マルチメディアデータに関連付けられたマルチメディアフレームの処理を示す例示のプロセスフローの簡略化された概要を示す。
一実施形態に従った、マルチメディアフレーム処理の間の、第1のキャッシュに関連付けられた読み取り/書き込み動作の例示のスケジューリングを示す。
一実施形態に従って、マルチメディアフレームに関連付けられる複数のピクセルブロックを処理するための基準データの検索の例示のプロセスを示す。
一実施形態に従った、基準データに関連付けられる基準フレーム内で互いに近接する基準ピクセルブロックの例示のフェッチを示す。 一実施形態に従った、基準データに関連付けられる基準フレーム内で互いに近接する基準ピクセルブロックの例示のフェッチを示す。 一実施形態に従った、基準データに関連付けられる基準フレーム内で互いに近接する基準ピクセルブロックの例示のフェッチを示す。
一実施形態に従った、マルチメディアデータ処理の例示の方法を示すフローチャートである。
一実施形態に従って、マルチメディアフレームの処理を行なうための基準データ検索の例示の方法を示すフローチャートを集合的に示す。 一実施形態に従って、マルチメディアフレームの処理を行なうための基準データ検索の例示の方法を示すフローチャートを集合的に示す。
例示のシナリオにおいて、マルチメディアデータ処理は、マルチメディアデータに対応するフレームに対して動き補償を行なうことに関与し得る。例示のシナリオにおいて、動き補償を行なう一方で、基準ピクセルが(フレームの様々な部分を符号化するために)メモリからランダムにフェッチされ、フェッチされた基準ピクセルの中にかなりの程度の重複が存在する。例示のシナリオによれば、基準ピクセルをフェッチすることのランダム性の結果として、メモリ帯域幅消費及び電力損失が増加する可能性がある。
図1は、一実施形態に従ってマルチメディアデータを処理するように構成された例示のシステム100のブロック図である。一実施形態において、システム100は、マルチメディアデータの処理のためのビデオコーデック(例えばビデオエンコーダ/デコーダ)であるように構成される。一実施形態において、システム100はマルチメディアシステム内に含まれるように構成される。一実施形態において、システム100は、マルチメディアシステムの外部にあるように構成され、マルチメディアシステムに通信可能に関連付けられる。マルチメディアシステムの例には、(1)例えば、携帯電話、デジタルビデオカメラ、及びデジタルカムコーダなどのマルチメディアデバイス、(2)例えば、パーソナルコンピュータ、ラップトップ、及び携帯情報端末などのデータ処理デバイス、及び、(3)例えば、セットトップボックス、デジタルビデオディスク(DVD)プレーヤ、及びビデオネットワークサーバなどの家庭用電子機器が含まれ得るが、これらに限定されない。例示のシナリオによれば、システム100は、マルチメディアデータの処理を(順次及び/又はその他の方式で)行なうように、命令セットを実行することが可能な任意の機械であり得る。
マルチメディアデータは、システム100によってメディアキャプチャデバイスから受信され得る。メディアキャプチャデバイスの例は、ビデオカメラ又はカムコーダを含み得る。例えば、メディアキャプチャデバイスは、例えば、スタンドアロンデバイス、又は、スマートフォンなどのモバイルデバイスの一部、或いは、例えば、パーソナルコンピュータ、ラップトップデバイス、又は携帯情報端末(PDA)などのデータ処理デバイスであり得る。マルチメディアデータはまた、システム100によって、スタンドアロンデバイス又はメディアキャプチャデバイスの一部であり得る(例えば、ハードウェア、ソフトウェア、及び/又はファームウェアのいずれかに実装され得る)トランスコーディングシステムから受信され得る。
例示のシナリオによれば、マルチメディアデータは、マルチメディアフレーム(以下、同じ意味で「フレーム」と呼ばれる)のシーケンスを含み得、フレームのシーケンスの中からの各フレームは、マルチメディアデータの複数のブロック(例えばマクロブロック)を含み得る。マルチメディアデータの例は、オーディオデータ、ビデオデータ、オーディオビデオ(A/V)データ、イメージデータ、テキストデータ、及びそれらの組み合わせを含み得るが、これらに限定されない。マルチメディアデータの処理の例は、符号化/復号化目的で、マルチメディアデータに対応するフレームに対して動き補償を実施することを含み得る。マルチメディアデータのフレームに対して動き補償を実施することは、基準フレーム(例えば、以前に復号されたフレーム)に関してフレームを符号化/復号化することに関与する。一実施形態において、基準フレームに関連付けられる1つ又は複数の基準ピクセルが、フレームを符号化するために予測フレームを構成するように補間され得る。予測フレームは、フレームに対応する残余サンプルを取得するために、フレームから差し引かれ得る。残余サンプルは、その後、フレームを符号化するために符号化され得る。
システム100は、処理ユニット102、メモリ104、キャッシュユニット106、及びバス108を含む。一実施形態において、処理ユニット102は、マルチコアプロセッサ、シングルコアプロセッサ、或いは、1つ又は複数のマルチコアプロセッサ及び1つ又は複数のシングルコアプロセッサの組み合わせとして具現化され得る。例えば、処理ユニット102は、コプロセッサ、マイクロプロセッサ、コントローラ、デジタル信号プロセッサ(DSP)、付属のDSPを備えるか又は備えない処理回路などの、様々な処理デバイス、或いは、例えば、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、マイクロコントローラユニット(MCU)、ハードウェアアクセラレータ、専用コンピュータチップどの集積回路を含む様々な他の処理デバイスのうちの1つ又は複数として具現化され得る。一実施形態において、処理ユニット102はハードコード化された機能性を実行するように構成され得る。一実施形態において、処理ユニット102はソフトウェア命令の執行者として具現化され、命令は、特に、命令が実行されるとき本明細書で説明されるアルゴリズム及び/又は動作を実行するように、処理ユニット102を構成することができる。処理ユニット102は、とりわけ、クロック、算術論理ユニット(ALU)、及び、処理ユニット102の動作をサポートするように構成された論理ゲートを含み得る。一実施形態において、メモリ104はマルチメディアデータを記憶するように構成される。一実施形態において、メモリ104は、マルチメディアデータに関連付けられたマルチメディアフレームを処理するために、基準データを(例えば、複数の基準フレームの形式で)記憶するように構成される。
一実施形態において、マルチメディアデータの復号されたフレームが、基準データに対応する基準フレームとしてメモリ104に記憶され得る。メモリ104の例は、ランダムアクセスメモリ(RAM)、デュアルポートRAM、同期ダイナミックRAM(SDRAM)、ダブルデータレートSDRAM(DDRSDRAM)などを含むが、これらに限定されない。一実施形態において、キャッシュユニット106は、メモリ104に記憶された頻繁に用いられる基準データをキャッシュするように構成される。メモリ104に関連付けられる制限された帯域幅及び高いトラフィック条件の結果として、基準データをキャッシュユニット106に記憶することで、システム100に関連付けられた処理性能を向上させる。キャッシュユニット106は、第1のキャッシュ106a及び第2のキャッシュ106bを含む。一実施形態において、第1のキャッシュ106aは、基準データをキャッシュするために実装され得る1つ又は複数のキャッシュバンクを含み得る。より具体的に言えば、第1のキャッシュ106aに関連付けられる記憶スペースが(例えば、物理的区画又は仮想区画に)区分されるものとみなされ得、こうした各区画は、キャッシュバンクと呼ばれ得、基準データをキャッシュするために用いられ得る。キャッシュバンクは、本明細書ではさらに図4Bを参照して説明する。一実施形態において、第2のキャッシュ106bは、基準データをキャッシュするために実装され得る1つ又は複数のキャッシュバンクを含み得る。一実施形態において、処理ユニット102、メモリ104、及びキャッシュユニット106は、通信可能に関連付けられ、バス108を介して又は通じて互いに結合又は接続されるように構成される。バス108の例は、データバス、アドレスバス、制御バスなどを含み得るが、これらに限定されない。
バス108は、例えば、シリアルバス、双方向バス、又は単方向バスであり得る。マルチメディアデータ処理の場合、マルチメディアデータに対応する各フレームは、複数のピクセルブロックに分割され得る。例えば、フレームは、例えばマクロブロックと呼ばれ得る、複数の16×16ピクセルブロックに分割され得る。こうした各マクロブロックは、例えば、各区画が4つの4×4ピクセルブロックを含み得る4つの区画などの部分にさらに区分され得る。ピクセルブロックのこうした各区画は、本明細書ではブロック区画と呼ばれ得る。上記で説明したように、フレームを処理するために、フレームのブロック区画に関連付けられる複数のピクセルブロックについてなど、フレームの様々な部分について、基準データがフェッチされ得る。一実施形態において、処理ユニット102は、マルチメディアデータのフレームのブロック区画に関連付けられる複数のピクセルブロックを処理するために実装されるべき基準データを決定するように構成される。
上記で説明したように、基準データは1つ又は複数の基準フレームの形式でメモリ104に記憶される。1つ又は複数の基準フレームの各々は、1つ又は複数の基準ピクセルブロックを含む。「基準ピクセルブロック」という用語は、例えば、マルチメディアデータのフレームに関連付けられる基準フレーム内の「m×n」ブロックのピクセルを指すものと解釈され得、ここで、m及びnは正の整数であることに留意されたい。マルチメディアデータのフレームの各ブロック区画に関連付けられる複数のピクセルブロックを処理するために実装されるべき基準データを決定することは、処理目的で利用され得る基準フレームにおける基準ピクセルブロックを決定することを含み得る。一実施形態において、メモリ104からフェッチされた基準ピクセルブロックは、基準データへの今後のアクセスを容易にするために、キャッシュユニット106に記憶される。
一実施形態において、処理ユニット102は、以前にメモリ104からフェッチされた基準データに対応する複数の基準ピクセルブロックをキャッシュするように、キャッシュユニット106に関連付けられる第1のキャッシュ106aにおける1つ又は複数のピクセルブロック領域を定義するように構成される。ピクセルブロック領域は、1つ又は複数の基準ピクセルブロックをキャッシュすることが可能な、第1のキャッシュ106a内の記憶スペースの割り振りとみなされ得る。1つ又は複数のこうした記憶スペースは、メモリ104からフェッチされた複数の基準ピクセルブロックをキャッシュするために、第1のキャッシュ106a内で定義され得る。一実施形態において、第1のキャッシュ106aの1つ又は複数のキャッシュバンクの中からのキャッシュバンクに、ピクセルブロック領域が関連付けられ得る。一実施形態において、定義されるべきピクセルブロック領域の数は、ビデオ圧縮パラダイムに基づいて決定され得る。ビデオ圧縮パラダイムの例は、ビデオコーディング専門家グループ(VCEG)、H.120、H.261、動画像専門家グループ(MPEG)、MPEG−1 Part2、H.262、又はMPEG−2 Part2、H.263、MPEG−4 Part2、H.264、又はMPEG−4 AVC、VC−2(ディラック)、高性能ビデオコーディング(HEVC)などを含むが、これらに限定されない。
一実施形態において、各ピクセルブロック領域は、スパン情報、ベースアドレス、キャッシュバンク識別タグ、及び/又は参照インデックスを介して定義される。スパン情報は、各ピクセルブロック領域の長さ方向(例えば高さ)及び幅方向(例えば幅)に沿った寸法を示す。ベースアドレスは、基準フレームによって定義されたスペース内で事前に決定された起点からの各ピクセルブロック領域の左上アドレス(例えば、左上ピクセル位置のピクセル座標)から又はこれに関してオフセットされ、基準フレームによって定義されたスペース内のピクセルブロック領域の局所性を示す。各ピクセルブロック領域のベースアドレスは、x及びy座標に関して表される。キャッシュバンク識別タグは、各ピクセルブロック領域が関連付けられるキャッシュバンクを示す。参照インデックスは、各ピクセルブロック領域に関連付けられる基準フレームを示す。例えば、メモリ104内の基準データが32の基準フレームを含み、ピクセルブロック領域が32の基準フレームのうちの第5の基準フレームに関連付けられる場合、ピクセルブロック領域の参照インデックスは、基準フレーム第5番を示し得、ピクセルブロック領域に含まれる基準ピクセルブロックはここからフェッチされる。
一実施形態において、処理ユニット102はまた、基準データに対応する複数の基準ピクセルブロックの中からの基準ピクセルブロックを、1つ又は複数のピクセルブロック領域の中からのピクセルブロック領域に割り当てるように構成される。一実施形態において、処理ユニット102は、所定の基準に基づいて、基準ピクセルブロックをピクセルブロック領域に割り当てる。一実施形態において、所定の基準は、基準フレームによって定義されたスペース内の基準ピクセルブロックの局所性を含むが、これに限定されない。
一実施形態において、各基準ピクセルブロックは、マルチメディアデータのフレームに関連付けられる複数のピクセルブロックを処理するために基準データの検索を促進するように、ピクセルブロック領域に基づいてタグに関連付けられる。一実施形態において、タグは、ピクセルブロック領域内の基準ピクセルブロックの位置の指示を提供するように構成され得る。一実施形態において、タグは、対応するピクセルブロック領域に関連付けられるベースアドレスからの基準ピクセルブロックのオフセットに基づいて定義され得る。例示の実施形態において、各ピクセルブロック領域の幅及び高さは32ピクセル×32ピクセルであり、ピクセルブロック領域の細分性は4×4ピクセルブロックである。したがって、8つの4×4基準ピクセルブロックを、x及びy方向の各々に沿って含めることができる。各4×4基準ピクセルブロックは、対応するピクセルブロック領域のベースアドレスからのオフセットに基づいて、タグに関連付けられ得る。x及びy方向に沿ったオフセットは各々3ビットを利用するため、各タグのサイズは6ビットである。タグに基づいて1つ又は複数のピクセルブロック領域の各々において4×4ピクセルブロックを検索することができる。
様々な例示のキャッシュ技法において、メモリ内の基準データは、4×4基準ピクセルブロックの形式に編成され、メモリ内の4×4基準ピクセルブロックの各々は、基準フレームによって定義されたスペース内のx方向に沿った変位及びy方向に沿った変位を示すタグに関連付けられる。基準フレームの最大サイズが、1つ又は複数のマルチメディアコーディングパラダイムに従って8K×8Kピクセルであると考えると、x及びy方向に沿った4×4基準ピクセルブロックの数は各々2Kとなる。4×4ピクセルブロックはx及びy座標に基づいてタグ付けされるため、タグのサイズはxで11ビット、yで11ビット、合計22ビットとなる。また、メモリからフェッチされた各4×4ピクセルブロックは、4×4ピクセルブロックが属する基準フレームに関してタグ付けされる。例えばH.264などの、マルチメディアコーディングパラダイムのいくつかは、メモリ内に最大32までの基準フレームが可能である。32の基準フレームに基づいてタグ付けすると、タグに5ビットを追加することになる。したがって、32の基準フレームが用いられる場合、各基準ピクセルブロックに対するタグのサイズは27ビットであり得る。一実施形態において、良好なキャッシュを行なうために約288のタグが用いられる。各タグのサイズは27ビットであるため、キャッシュの間288の27ビット比較が必要である。基準データを決定及びフェッチするために288の27ビット比較を行なうことで、大量の電力が損失することになる。第1のキャッシュ106aにおいてピクセルブロック領域を定義すること、及び、対応するピクセルブロック領域のベースアドレスからのオフセットとして基準ピクセルブロックをタグ付けすることにより、タグのサイズは27ビットから6ビットに減少し、それによって比較コストが低減され、電力消費のかなりの節約につながる。
一実施形態において、メモリ104から1つ又は複数の基準ピクセルブロックの各々をフェッチするための最小細分性が、メモリ104の最適な性能のためにメモリ104に関連付けられるプリフェッチバッファにおいてキャッシュするための最小細分性とマッチングする。例えば、プリフェッチバッファにおけるデータ編成がブロックベースの場合、基準ピクセルブロックのフェッチはブロック単位で整合され、それによって基準データのフェッチが最適化される。同様に、プリフェッチバッファにおけるデータ編成がラインベースである(例えば、基準データフェッチのローが順次フェッチされる)場合、基準ピクセルのフェッチはラインベースの基準データフェッチと整合される。一実施形態において、各ピクセルブロック領域が疎に満たされ、選ばれた少数の基準ピクセルブロックエントリ(要素とも呼ばれる)を含む。一実施形態において、1つ又は複数のピクセルブロック領域の各々が9つの要素を含み、すなわち、各ピクセルブロック領域が9つの基準ピクセルブロックに関連付けられる。一実施形態において、ピクセルブロック領域に関連付けられる各要素には、対応する基準フレーム内のその位置に基づいて、ピクセルブロック領域内の特定の位置が割り当てられる。
一実施形態において、単一の基準フレームに属する基準ピクセルブロックが、1つ又は複数のピクセルブロック領域の中からのピクセルブロック領域に割り当てられる。一実施形態において、各ピクセルブロック領域は、第1のキャッシュ106aに関連付けられる1つ又は複数のキャッシュバンクの中からのキャッシュバンク内で定義される。一実施形態において、中で各ピクセルブロック領域が定義されたキャッシュバンクを示すように、各ピクセルブロック領域にキャッシュバンク識別タグが関連付けられる。
一実施形態において、第2のキャッシュ106bは、マルチメディアデータの1つ又は複数の後続のブロック区画の処理の間基準データを利用可能とするために、マルチメディアデータに関連付けられる複数のブロック区画の中からの第1のブロック区画に関連付けられる基準データをキャッシュするように編成される。一実施形態において、マルチメディアデータのフレーム内のピクセルブロックは、ラスター走査順に処理される。「ラスター走査順」という用語は、例えば、左から右及び上から下への順を指すものと解釈され得ることに留意されたい。したがって、或るローにおけるピクセルブロックが左から右へと処理された後、マルチメディアデータのフレーム内の後続のローにおけるピクセルブロックが処理される。フレームに関連付けられる1つ又は複数の後続ローの処理の間、1つ又は複数の前のローに関連付けられる基準データは、第1のキャッシュ106aから既に削除されている可能性がある。しかしながら、フレームの近接ローにおけるピクセルブロックは、基準データフェッチに共通性を有し得る。本明細書で開示される第2のキャッシュ106bは、フレームの近接ローに対する基準データフェッチの共通性の活用を可能にする。一実施形態において、第2のキャッシュ106bは、システム100の構成に応じて、フレームのブロック区画の幅と同等の幅方向に沿ったスパンと、長さ方向(例えば高さ)に沿った可変寸法とを有するように定義される。
一実施形態において、基準データに関連付けられる基準ピクセルブロックが第2のキャッシュ106bのスパン内にある場合、メモリ104からフェッチされた基準データは第2のキャッシュ106bにおいてポピュレートされる。一実施形態において、第1のキャッシュ106aにキャッシュされた基準データは、第1のキャッシュ106aにおける基準データの満了時に第2のキャッシュ106bにおいてポピュレートされる。一実施形態において、キャッシュバンクに記憶された基準データのすべて(又は事前に選択された量)がキャッシュバンクから読み取られると、第1のキャッシュ106aにキャッシュされた基準データは一度に1つのキャッシュバンクを満了にする。フレームの後続ローの処理の間、フェッチされた基準ピクセルブロックをキャッシュするために、第2のキャッシュ106b内のスペースの利用可能性が決定される。第2のキャッシュ106b内のスペースが利用可能であると決定された場合、フェッチされた基準ピクセルブロックは第2のキャッシュ106bにおいてポピュレートされる。一実施形態において、第2のキャッシュ106b内のスペースが利用不能であると決定された場合、第2のキャッシュ106bにおける1つ又は複数の以前にキャッシュされた基準ピクセルブロックは削除される。1つ又は複数の以前にキャッシュされた基準ピクセルブロックを削除すると、フェッチされた基準ピクセルブロックをキャッシュするために、第2のキャッシュ106bの起点が、所定のマージンだけシフトされる。起点は、基準データを第2のキャッシュ106bの別のロー内に書き込む一方で、第2のキャッシュ106bのローから基準データを同時に読み取ることを促進するためにシフトされる。一実施形態において、第2のキャッシュ106bはブロックベースで編成され、第2のキャッシュ106bにおいてポピュレートされた基準データは、水平及び/又は垂直方向の変位でタグ付けされる。
一実施形態において、第2のキャッシュ106bはラインベースで編成される。また、一実施形態において、第1のキャッシュ106aに基準データが存在しないと決定された場合、基準データは第2のキャッシュ106bにおいて検索される。第2のキャッシュ106bに基準データが存在すると決定された場合、基準データは、後の基準ピクセルフェッチのために第1のキャッシュ106aのピクセルブロック領域のうちの1つに割り当てられる。しかしながら、一実施形態によれば、基準データが、利用不能である、すなわち第2のキャッシュ106bに存在しない、と決定された場合、基準データはメモリ104からフェッチされる。第2のキャッシュ106bから基準データをフェッチするために用いられる処理サイクルの数(例えば、10処理サイクル)は、メモリ104から基準データをフェッチするために用いられる処理サイクルの数(例えば、100処理サイクル)よりも少ない。一実施形態において、第2のキャッシュ106bは、メモリ104内の各エントリが第2のキャッシュ106bにおける1つの特定位置でキャッシュされるように、「一方向連想(associative)/直接マッピング」される。一実施形態において、基準データの複数の輝度(以下「ルマ」と呼ぶ)成分及び複数のクロミナンス(以下「クロマ」と呼ぶ)成分が、第2のキャッシュ106b及び/又はメモリ104に別々にキャッシュされる。一実施形態において、ルマ成分はメモリ104及び/又は第2のキャッシュ106bにおいて4×4ピクセルブロックとして編成され、クロマ成分は8×2ピクセルブロックとして編成される。
一実施形態において、処理ユニット102は、基準フレーム内の第1の基準領域に関連付けられた1つ又は複数の基準ピクセルブロックに近接し、基準フレーム内に矩形領域を形成する、1つ又は複数の追加の基準ピクセルブロックをフェッチするように構成される。一実施形態において、この1つ又は複数の追加の基準ピクセルブロック及び第1の基準領域は、基準フレーム内の複数のブロック区画の中からのブロック区画に対応する。一実施形態において、この1つ又は複数の追加の基準ピクセルブロック及び第1の基準領域は、基準フレーム内の近接するブロック区画に対応する。一実施形態において、処理ユニット102は、この1つ又は複数の追加の基準ピクセルブロック及び第1の基準領域に関連付けられた1つ又は複数の基準ピクセルブロックをメモリ104からフェッチするために、メモリフェッチコマンドを生成するように構成される。一実施形態において、処理ユニット102はさらに、生成されたメモリフェッチコマンドに基づいてメモリから1つ又は複数の追加の基準ピクセルブロックと第1の基準領域に関連付けられた1つ又は複数の基準ピクセルブロックとをフェッチするように構成される。
一実施形態において、システム100はさらに、入力ユニット(例えば画像処理デバイス)、ビデオ表示ユニット(例えば液晶ディスプレイ(LCD)、陰極線管(CRT)など)、カーソル制御デバイス(例えばマウス)、ドライブユニット(例えばディスクドライブ)、信号生成ユニット(例えばスピーカ)、及び/又はネットワークインターフェースユニットなどの構成要素を含む。入力ユニットは、マルチメディアデータの処理のためにマルチメディアデータを処理ユニット102に転送するように構成される。ドライブユニットは、本明細書で説明される方法論及び/又は機能のうちの1つ又は複数を具現化する1つ又は複数の命令セット(例えばソフトウェア)が記憶される機械可読媒体を含む。一実施形態において、ソフトウェアは、メモリ104及び処理ユニット102も機械可読媒体を構成するように、システム100による実行の間、完全又は部分的に、メモリ104内及び/又は処理ユニット102内にある。ソフトウェアはさらに、ネットワークインターフェースユニットを介してネットワーク上で送信及び/又は受信され得る。
「機械可読媒体」という用語は、1つ又は複数の命令セットを記憶する単一媒体及び/又は複数媒体(例えば、集中型及び/又は分散型データベース、及び/又は関連付けられたキャッシュ及びサーバ)を含むものと解釈され得る。また、「機械可読媒体」という用語は、システム100による実行のために命令セットを記憶、符号化、及び/又は搬送することが可能であり、様々な実施形態の方法論のうちの任意の1つ又は複数をシステム100に実行させる、任意の媒体を含むものと解釈され得る。さらに、「機械可読媒体」という用語は、ソリッドステートメモリ、光及び磁気媒体、並びに搬送波信号を含むものと解釈され得るが、これらに限定されるものではない。
図2は、実施形態に従って第1のキャッシュ106aにおいて定義された複数の例示のピクセルブロック領域を示す。図2には、第1のピクセルブロック領域202a、第2のピクセルブロック領域202b、及び第3のピクセルブロック領域202cの、3つのピクセルブロック領域が示されている。複数のこうしたピクセルブロック領域は、第2のキャッシュ106b及びメモリ104の一方からフェッチされた基準ピクセルブロックをキャッシュするために、第1のキャッシュ106aにおいて定義され得ることに留意されたい。図1を参照して本明細書で説明されるように、各ピクセルブロック領域は、複数の基準ピクセルブロックをキャッシュすることが可能な第1のキャッシュ106a内の記憶スペースの割り振りとみなされ得る。一実施形態において、定義されるピクセルブロック領域の数は、ビデオ圧縮パラダイムに基づいて決定される。
また、図1を参照して本明細書で説明するように、各ピクセルブロック領域が、スパン情報、ベースアドレス、及び/又は参照インデックスを介して定義される。一実施形態において、ピクセルブロック領域に対するベースアドレスは、第1のキャッシュ106aによって定義される記憶スペース内の事前に定義された位置(本明細書では「起点」と呼ぶ)からの、ピクセルブロック領域の変位に関して定義され得る。一実施形態において、起点は座標(0,0)に関連付けられ得、起点からのピクセルブロック領域に対応する左最上ピクセルの変位は、ピクセルブロック領域に対応するベースアドレスを定義するためのx及びy方向の変位を計算するために測定され得る。図2において、第1のピクセルブロック領域202aは、起点(0,0)からのx方向に沿ったBA0_Xの変位及びy方向に沿ったBA0_Yの変位に関連付けられるように示され、ベースアドレス(BA0_X,BA0_Y)によって定義される。第2のピクセルブロック領域202bは、起点(0,0)からのx方向に沿ったBA1_Xの変位及びy方向に沿ったBA1_Yの変位に関連付けられるように示され、ベースアドレス(BA1_X,BA1_Y)によって定義される。同様に、第3のピクセルブロック領域202cは、起点(0,0)からのx方向に沿ったBA2_Xの変位及びy方向に沿ったBA2_Yの変位に関連付けられるように示され、ベースアドレス(BA2_X,BA2_Y)によって定義される。
フレームの複数のピクセルブロックを処理するためにフェッチされた基準データに対応する各基準ピクセルブロックは、1つ又は複数のピクセルブロック領域の中からのピクセルブロック領域に割り当てられる。一実施形態において、1つ又は複数の基準ピクセルブロックの各々は、4×4のピクセルブロックである。一実施形態において、基準データに対応する各基準ピクセルブロックは、所定の基準に基づいてピクセルブロック領域に割り当てられる。一実施形態において、所定の基準は、基準フレーム(例えば、基準ピクセルブロックのフェッチ元であるメモリ104における基準フレーム)によって定義されたスペース内の基準ピクセルブロックの局所性を含むが、これに限定されない。
フレームのピクセルブロックを処理するために、ピクセルブロックに対する基準データが決定され、基準データの存在がピクセルブロック領域において検索される。基準データに関連付けられたタグ情報が、(1)スパン情報、及び/又は(2)ピクセルブロック領域のベースアドレスと比較され、基準データに関連付けられた基準ピクセルブロックを含む可能性のある1つ又は複数のピクセルブロック領域が識別される。例えば、基準データに関連付けられ、第3のピクセルブロック領域202cに割り当てられる、基準ピクセルブロック204について考えてみる。基準ピクセルブロック204は、第1のピクセルブロック領域202a、第2のピクセルブロック領域202b、及び第3のピクセルブロック領域202cの各々に共通の領域に配置される。ピクセルブロック領域において基準ピクセルブロック204の検索を行なうと、第1のピクセルブロック領域202a、第2のピクセルブロック領域202b、及び第3のピクセルブロック領域202cが、基準ピクセルブロック204を含む可能性があると決定される。フェッチされるべき基準データに関連付けられたタグ情報が、これら3つのピクセルブロック領域の各々における基準ピクセルブロックのタグと比較され、基準ピクセルブロック204がピクセルブロック領域202cにおいて利用可能であると決定される。
基準ピクセルブロックが、第1のキャッシュ106aにおいて定義されたピクセルブロック領域において利用不能であると決定された場合、基準ピクセルブロックが第2のキャッシュ106bにおいて利用可能であるかどうかが決定される。基準ピクセルブロックが第2のキャッシュ106bに存在すると決定された場合、基準ピクセルブロックは第2のキャッシュ106bからフェッチされ、フレームに対応する複数のピクセルブロックを処理するためにピクセルブロック領域にキャッシュされる。基準ピクセルブロックが第2のキャッシュ106bにおいて利用不能であると決定された場合、基準ピクセルブロックはメモリ104からフェッチされる。一実施形態において、キャッシュ動作は約100サイクルで完了するように構成されるため、最適性能を達成するために複数のピクセルブロックが同時に処理される。例示の実施形態において、4つの近接するピクセルブロックのセットが同時に処理される。4つのピクセルブロックは、4つのピクセルブロックに対する基準データフェッチ間の重複を活用するために、同時に処理される。これは、図3A〜図3Cを参照して本明細書でさらに説明する。
図3A〜図3Cは、実施形態に従った、システム100を用いることなどによる、複数の基準データフェッチ間の重複の例示の活用を示す。図1を参照して本明細書で説明するように、マルチメディアフレームが、例えば16×16ピクセルブロックなどの、マクロブロックに分割され、各マクロブロックはさらに細かく区分される。図3Aはマルチメディアフレームに関連付けられるマクロブロック302を示す。マクロブロック302は、第1のブロック区画304a、第2のブロック区画304b、第3のブロック区画304c、及び第4のブロック区画304dなどの、4つの近接するブロック区画にさらに区分される。各ブロック区画は、複数のピクセルブロック(図3Aには図示せず)を含む。一実施形態において、各ブロック区画は4つの4×4ピクセルブロックを含む。図2を参照して本明細書で説明するように、複数のブロック区画の各々に関連付けられるピクセルブロックは、基準ピクセルブロックに対する基準データフェッチ間の重複を活用するために、同時に処理される。したがって、各ブロック区画において複数のピクセルブロックを処理するために、基準領域が決定される。基準領域の決定は、本明細書において図3Bを参照して説明する。
各ブロック区画において複数のピクセルブロックを処理するために、フェッチされるべき(基準データにおける)基準領域が決定される。図3Bにおいて、基準フレーム306における各ブロック区画に対応するピクセルブロックの局所性に基づいて、第1の基準領域308a、第2の基準領域308b、第3の基準領域308c、及び第4の基準領域308dなどの、(図3Bに点線四角形で示された)4つの基準領域が、4つの区画における複数のピクセルブロックに対応すると決定される。図1を参照して本明細書で説明するように、メモリ104(又はメモリ104に関連付けられるプリフェッチバッファ)におけるデータ編成はブロックベースであるように示されるため、基準ピクセルのフェッチの最小細分性はブロックベースである。したがって、第1のブロック区画に関連付けられたピクセルブロックに対する基準データをフェッチするために、9つの基準ピクセルブロックが、第1の基準領域308aに対応するメモリ104からフェッチされるべきであると決定される。さらに、それぞれ、第2の基準領域308b、第3の基準領域308c、及び第4の基準領域308dに対応するように、9つの基準ピクセルブロック、6つの基準ピクセルブロック、及び9つの基準ピクセルブロックが、メモリ104からフェッチされるべきであると決定される。近接する基準領域に対してフェッチされる基準ピクセルブロックが重複する場合、基準領域のうちの1つに対してフェッチされ、ピクセルブロック領域にキャッシュされた基準ピクセルブロックは、後続のフェッチに利用可能とされ得、利用可能な基準ピクセルブロックは、図3Cを参照して本明細書で説明するように再使用される。
図3Cは、ピクセルブロック302の4つの近接するブロック区画に対する複数の基準ピクセルブロックのフェッチを示す。第1のブロック区画304aに関連付けられたピクセルブロックの処理の間、第1のキャッシュ106aにおいて定義されたピクセルブロック領域には基準データが存在しない。したがって、第1のキャッシュ106aのピクセルブロック領域における第1のブロック区画304aに関連付けられたピクセルブロックを処理するために実装されるべき9つの基準ピクセルブロックの存在が決定される。最初に、第1のキャッシュ106aにおいて定義されたピクセルブロック領域には基準データがなく、9つの基準ピクセルブロックは第1のキャッシュ106aにおいて利用不能であると決定され、さらに、9つの基準ピクセルブロックの各々の不在は、第1の基準領域308aにおいて「MISS」として記録される。所望の基準データが第1のキャッシュ106aにおいて利用不能であると決定されるため、9つの基準ピクセルブロックは、メモリ104からフェッチされることになる。4つの処理サイクルのセット(図3Cでは円で表される)が、所望の9つの基準ピクセルブロックをフェッチするために実装され得る。一実施形態において、4つのピクセルブロックが各処理サイクルにおいてフェッチされ、したがって、9つの基準ピクセルブロックに加えていくつかの追加のピクセルブロックがフェッチされる。こうしたピクセルブロックは図3Cでは「関係なし」(又は「N/R」)とマーク付けされる。9つの基準ピクセルブロックは、メモリ104からフェッチされ、第1のキャッシュ106aにおける1つ又は複数のピクセルブロック領域にキャッシュされる。
図3Bに示されるように、第1の基準領域308aの右端310aと第2の基準領域308bの左端310bとは3つの共通の四角形ブロック内にあり、このことが第1の基準領域308aと第2の領域308bとの間の重複を生成する。第1のブロック区画304aの処理のための基準データのフェッチの結果として、第2のブロック区画304bに対応するピクセルブロックを処理するために実装されるべき基準ピクセルブロックは、すでにフェッチされ、第1のキャッシュ106aにキャッシュされている。その結果、第2のブロック区画304bを処理するために実装されるべき9つの基準ピクセルブロックの存在をチェックすると、3つの基準ピクセルブロックが利用可能であると決定され、したがってこれら3つのピクセルブロックの存在が「HIT」として記録され、残りの6つの基準ピクセルブロックの不在は「MISS」として記録される。これら6つの基準ピクセルブロックをフェッチするために、4つの処理サイクルが実装される。実装された基準データのフェッチの間、6つの基準ピクセルブロックに加えていくつかの追加の基準ピクセルブロックがフェッチされ得、こうしたピクセルブロックは「N/R」としてマーク付けされる。6つの基準ピクセルブロックは、メモリ104からフェッチされ、第1のキャッシュ106aにおける1つ又は複数のピクセルブロック領域にキャッシュされる。
また第1の基準領域308aの下端310cと第3の基準領域308cの上端310dとは2つの共通の四角形ブロック内にあり、第1の基準領域308aと第3の基準領域308cとの間の重複を生成している。第1のブロック区画304aを処理するための基準データのフェッチの結果として、第3のブロック区画304cに対応するピクセルブロックを処理するために実装されるべき2つの基準ピクセルブロックは、すでにフェッチされ、第1のキャッシュ106aにキャッシュされている。第3のブロック区画304cを処理するために実装されるべき6つの基準ピクセルブロックの存在をチェックすると、2つの基準ピクセルブロックが利用可能であると決定され、したがってこれら2つのピクセルブロックの存在が「HIT」として記録され、残りの4つの基準ピクセルブロックの不在は「MISS」として記録される。これら4つの基準ピクセルブロックをフェッチするために、2つの処理サイクルが実装される。実装された基準データのフェッチの間、これら4つの基準ピクセルブロックに加えていくつかの追加の基準ピクセルブロックがフェッチされ得、こうした基準ピクセルブロックは「N/R」としてマーク付けされる。4つの基準ピクセルブロックは、メモリ104からフェッチされ、第1のキャッシュ106aにおける1つ又は複数のピクセルブロック領域にキャッシュされる。
同様に、第4の区画304dに対応するピクセルブロックを処理するために、第1のキャッシュ106aのピクセルブロック領域における9つの基準ピクセルブロックの利用可能性がチェックされ、したがって、基準ピクセルブロックはHIT又はMISSに関連付けられる。MISSと記録されたピクセルブロックは、メモリからフェッチされ、第1のキャッシュ106aのピクセルブロック領域にキャッシュされる。フェッチされた基準データは、フレームの複数のブロック区画におけるピクセルブロックを処理するために用いられる。マルチメディアデータの処理に含まれる様々な段を、本明細書において図4Aを参照して説明する。
図4Aは、一実施形態に従った、システム100におけるマルチメディアデータに関連付けられるマルチメディアフレームの処理を示す例示のプロセスフローの簡略化された概要を示す。一実施形態において、マルチメディアフレームの処理は、キャッシュ段402、直接メモリアクセス(DMA)段404、及びフィルタリング段406などの、3段で成される。キャッシュ段402において、ステップ408で、フレームを処理するために実装されるべき基準データが(例えば、図1の処理ユニット102によって)決定され、それに続いてステップ410で、第1のキャッシュ106aにおいて基準データの存在が(例えば、処理ユニット102によって)チェックされる。図4Aにおいて、フレームがキャッシュ段402への入力として示されているが、いくつかの実施形態において、(図3A〜図3Cを参照して本明細書で説明するように)フレームはブロックに分割され、さらに各ブロックが区分され、フレームの各ブロック区画内の複数のピクセルブロックについて基準データが決定及びフェッチされる。一実施形態において、フェッチされるべき基準ピクセルブロックのサイズは、フレームの対応するピクセルブロックのサイズよりわずかに大きくなるように決定される。例えば、フレームの4×4ピクセルブロックの場合、9×9基準ピクセルブロック(各側で5つの追加ピクセル、すなわち左に3つ及び右に2つの追加ピクセル)が、動き補正の間の補間のために基準フレームからフェッチされるべきであると決定される。同様に、フレームの8×8ピクセルブロックの場合、13×13基準ピクセルブロックが補間のために基準フレームからフェッチされるべきであると決定され得る。
図1及び図2を参照して本明細書で説明するように、処理ユニット102は、第1のキャッシュ106aにおいてピクセルブロック領域を定義するように構成され得る。ピクセルブロック領域は、第2のキャッシュ106b及びメモリ104の一方から以前にフェッチされた基準データに対応する複数の基準ピクセルブロックをキャッシュすることができるように構成される。フレームに対する基準データを決定する際に、基準データを含む可能性のある1つ又は複数のピクセルブロック領域が(例えば、図1の処理ユニット102を用いて)識別される。識別されたピクセルブロック領域における基準データに関連付けられる1つ又は複数の基準ピクセルブロックの存在が、(例えば、図1の処理ユニット102を用いて)決定される。
DMA段404において、ステップ412で、識別されたピクセルブロック領域における基準データに関連付けられた1つ又は複数の基準ピクセルブロックが利用不能であることが決定されると、第2のキャッシュ106b及びメモリ104の一方から1つ又は複数の基準ピクセルブロックをフェッチするために、1つ又は複数のメモリフェッチコマンドが(例えば、図1の処理ユニット102を用いて)生成される。一実施形態において、ピクセルブロック領域における基準ピクセルブロックの利用不能性が決定されると、第2のキャッシュ106bにおいて基準ピクセルブロックの利用可能性がチェックされる。基準ピクセルブロックが第2のキャッシュ106bにおいて利用可能であると決定された場合、基準ピクセルブロックが、フェッチされ、フレームのピクセルブロックの処理のために第1のキャッシュ106aのピクセルブロック領域にキャッシュされる。基準ピクセルブロックが第2のキャッシュ106bにおいて利用不能であると決定された場合、基準ピクセルブロックはメモリ104からフェッチされなければならない。ステップ414で、基準データは、生成されたメモリフェッチコマンドに基づいてメモリ104から(例えば、図1の処理ユニット102を用いて)フェッチされる。ステップ416で、メモリ104/第2のキャッシュ106bからフェッチされた1つ又は複数の基準ピクセルブロックの各々が、所定の基準に基づいて、第1のキャッシュ106aにおいて定義された1つ又は複数のピクセルブロック領域の中からのピクセルブロック領域に(例えば、図1の処理ユニット102を用いて)割り当てられる。一実施形態において、所定の基準は、基準フレーム内の基準ピクセルブロックの局所性、及び基準フレームによって定義されるスペース内のピクセルブロック領域の局所性を含むが、これらに限定されない。割り当てに続き、フレームの後続のピクセルブロックを処理するために基準データの検索を促進するように、1つ又は複数の基準ピクセルブロックの各々が、ピクセルブロック領域に基づいて(例えば、図1の処理ユニット102を用いて)タグに関連付けられる。
フィルタリング段406において、ステップ418で、フェッチされ、1つ又は複数のピクセルブロック領域の中からのピクセルブロック領域に割り当てられた、(フレームのピクセルブロックに対応する)1つ又は複数の基準ピクセルブロックは、(例えば、図1の処理ユニット102を用いて)読み取られ、予測されるフレームを取得するために処理を受ける。予測されたフレームはその後、マルチメディアデータのフレームの処理(例えば、動き補償に基づく符号化/復号化)に用いられ得る。
図4Bは、一実施形態に従った、マルチメディアフレームの処理の間の第1のキャッシュ106aに関連付けられる読み取り/書き込み動作の例示のスケジューリングを示す。一実施形態において、第1のキャッシュ106aは、読み取り/書き込み動作のスケジューリングのために複数のキャッシュバンクに分割される。一実施形態において、第1のキャッシュ106aは、例えば、キャッシュバンク0、キャッシュバンク1、及びキャッシュバンク2の、3つのキャッシュバンクでパイプライン様式/逐次的様式で動作するように設計される。図4Bにおいて、キャッシュバンク0、キャッシュバンク1、及びキャッシュバンク2は、それぞれ、デジット0、1、及び2で表される。パイプライン手法は、所与のキャッシュバンクへの読み取り及び書き込み動作を同時に実施する可能性を排除する。
一実施形態において、パイプラインは、システム100におけるマルチメディアデータの処理の間関与する様々な段に対応する3つのパイプラインスロットを有する。図4Bに示される3つのパイプラインスロットは、フロントスロット402、DMAスロット404、及びバックスロット406である。一実施形態において、フロントスロット402は、図1のメモリ104からフェッチされるべき基準データの決定、及び基準データをフェッチするためのメモリフェッチコマンドの生成を含む処理段に対応し、DMAスロット404は、基準データをフェッチすること、及びフェッチされた基準データを第1のキャッシュ106aにおけるピクセルブロック領域に割り当てること(図1の第1のキャッシュ106aでの書き込み動作)を含む処理段に対応し、バックスロット406は、マルチメディアデータに関連付けられたフレームの処理のために予測フレームを構成するための(例えば、図1の処理ユニット102による)基準データの読み取りを含む処理段に対応する。キャッシュバンク(0、1、及び2)は、パイプラインスロット402〜406の複数のパス420〜428(点線の垂直コラムで表される)を介して、逐次的、循環的方式でパイプラインスロット(402、404、及び406)を受ける。
図4Bにおいて、パイプラインスロット(402〜406)の第1のパス420で、キャッシュバンク0はフロントスロット402を受ける。フェッチされるべき(フレームに関連付けられた複数のピクセルブロックに対応する)基準データが決定される。より具体的に言えば、複数のピクセルブロックを処理するために実装されるべき基準データが識別され、第1のキャッシュ106aにおいて及びそれに続いて第2のキャッシュ106bにおいて、基準データの存在がチェックされる。第1のキャッシュ106a及び第2のキャッシュ106bにおける基準データの利用不能性が決定されると、基準データはメモリ104からフェッチされることになる。メモリ104からフェッチされるべき基準データに対応する基準ピクセルブロック(例えば、図3CでMISSと記録された基準ピクセルブロック)は、キャッシュバンク0に割り当てられる。
一実施形態において、フェッチされるべき基準ピクセルブロックを収容するためにキャッシュバンク(例えば、キャッシュバンク0、キャッシュバンク1、又はキャッシュバンク2)内のスペースの利用可能性が、フェッチ動作を行なう前にチェックされる。基準ピクセルブロックを収容するのに十分なスペースがキャッシュバンクにおいて利用可能である場合、基準ピクセルブロックは、キャッシュバンクに割り振られ、既にキャッシュバンク内に存在する基準ピクセルブロックのグループと共に処理される。しかしながら、スペースが不十分であると決定された場合、基準ピクセルブロックは次の後続のパスにおいて新しいキャッシュバンクに割り振られる。一実施形態において、最大可能数の基準ピクセルブロックがキャッシュバンクに収容される。一実施形態において、フレームの4つのマクロブロックに対応する基準ピクセルブロックが、キャッシュバンクに割り振られる。一実施形態において、フレームのマクロブロックに対応するすべての基準ピクセルブロックが、単一のキャッシュバンクに含められ得る。一実施形態において、マクロブロックに対応するすべての基準ピクセルブロックが1つのキャッシュバンクに収容され得ない場合、そのマクロブロックに対応する基準ピクセルブロックは、パイプラインスロット(402〜406)の次のパスの間、次のキャッシュバンクに含められる。
図4Bに示されるように、第1のパス420の間、キャッシュバンク0はフロントスロット402を受ける。第2のパス422の間、キャッシュバンク1はフロントスロット402を受け、キャッシュバンク0はDMAスロット404を受ける。フロントスロット402の間定義されるすべてのピクセルブロック領域は、キャッシュバンクのキャッシュバンクアドレスに関連付けられるか又はタグ付けされる。一実施形態において、フレームの第1のブロック区画のピクセルブロックに対応する基準ピクセルブロックをキャッシュするために定義されるピクセルブロック領域は、キャッシュバンク0に関連付けられる。フレームの後続のブロック区画に対して定義されるすべてのピクセルブロック領域は、キャッシュバンク1に関連付けられ得る。
第3のパス424の間、キャッシュバンク2はフロントスロット402を受け、キャッシュバンク1はDMAスロット404を受け、キャッシュバンク0はバックスロット406(フィルタリング段)を受ける。第4のパス426でキャッシュバンク2がDMAスロット404を受ける前に、キャッシュバンク0に関連付けられたピクセルブロック領域が実装されず、キャッシュバンク1に関連付けられたピクセルブロック領域がキャッシュバンク2を処理するために保持されるため、キャッシュバンク0におけるすべてのピクセルブロック領域は無効化され削除される。例示の実施形態において、キャッシュバンク2は、基準フレーム内のピクセルブロックのローに関連付けられる基準ピクセルブロックに関連付けられたマルチメディアデータを含み得る。キャッシュバンク1は、基準ピクセルブロックのローにおける基準ピクセルブロックの左に1つ又は複数の基準ピクセルブロックが関連付けられたマルチメディアデータを含み得、キャッシュバンク0は、基準フレームにおける基準ピクセルブロックのローの上に位置する最上ローにおける1つ又は複数の基準ピクセルブロックに関連付けられたマルチメディアデータを含み得る。キャッシュバンク1の1つ又は複数の基準ピクセルブロックに関連付けられたマルチメディアデータは、キャッシュバンク2の基準ピクセルブロックを処理する一方で用いられ得るが、キャッシュバンク0の1つ又は複数の基準ピクセルブロックに関連付けられたマルチメディアデータは、キャッシュバンク0の1つ又は複数の基準ピクセルブロックが最上ローに属していることから、キャッシュバンク2の基準ピクセルブロックを処理する一方で用いられ得ない。したがって、マルチメディアデータの処理の間用いられ得る他の追加の基準データを収容するためのスペースを利用可能にするためにキャッシュバンク2を処理する一方で、キャッシュバンク0の1つ又は複数のピクセルブロック領域が無効化及び/又は削除され得る。一実施形態において、第5のパス428の間、キャッシュバンク2はバックスロット406を受ける。一実施形態において、複数のキャッシュバンクが同時にフロントスロット402、DMAスロット404、及び/又はバックスロット406を受ける。
図5は、一実施形態に従って、マルチメディアフレームに関連付けられる複数のピクセルブロックを処理するために基準データを検索する例示のプロセスを示す。図3A〜図3Cを参照して本明細書で説明するように、マルチメディアフレームのブロック区画に関連付けられるピクセルブロックを処理するために、各ブロック区画について基準領域が決定された後、それらの存在がチェックされる。すなわち、図1の第1のキャッシュ106aにおいて検索される。より具体的に言えば、各基準領域に対応する基準ピクセルブロックの存在が、第1のキャッシュ106aにおける1つ又は複数のピクセルブロック領域においてチェックされる。したがって、基準ピクセルブロックの範囲チェック502が行われ、範囲チェック502では、基準ピクセルブロックを含む可能性のあるピクセルブロック領域を識別するために、基準ピクセルブロックに関連付けられる参照番号(ref#)504及び位置座標(X,Y)506が、それぞれ、各ピクセルブロック領域に関連付けられるタグ情報における参照インデックス508及びスパン情報/ベースアドレス510と比較される。図3A〜図3Cを参照して本明細書で説明するように、基準領域はメモリ104に記憶された基準フレーム内で決定され、したがって、基準領域内の基準ピクセルブロックは、基準フレームに対応する参照番号(ref#)504及び基準フレーム内の局所性に対応する位置座標506でタグ付けされる。1つ又は複数のピクセルブロック領域の参照番号(ref#)504と参照インデックス508との比較を行なうために、第1の比較ブロック512(図5でCMP1と示される)が用いられる。さらに、位置座標506とスパン情報/ベースアドレス510との比較を行なうために、第2の比較ブロック514(図5でCMP2と示される)が用いられる。
一実施形態において、スパン情報は、各ピクセルブロック領域の長さ方向に沿った寸法(例えば、ピクセルブロック領域の高さ)及び幅方向に沿った寸法(例えば、ピクセルブロック領域の幅)を示す。比較の間、
X≧BA−X及び<BA−(X+ピクセルブロック領域の幅)、及び
Y≧BA−Y及び<BA−(Y+ピクセルブロック領域の高さ)
であるかどうかが決定される。ここで、BAは、1つ又は複数のピクセルブロック領域の各々のベースアドレスである。
2つの比較ブロック512及び514の出力に基づき、ブロック516で、ピクセルブロック領域が基準ピクセルブロックを含む可能性があると決定される。それに続いて、基準ピクセルブロックを含む可能性があると識別されたピクセルブロック領域内での基準ピクセルブロックの存在を決定するために、オフセットチェック518が行われる。オフセットチェック518で、基準ピクセルブロックの位置座標506(X,Y)に含まれるオフセット情報が、これらのピクセルブロック領域に含まれる要素(以前にピクセルブロック領域にフェッチ及びキャッシュされた基準ピクセルブロック)のオフセットとマッチングすると決定される。図5において、各ピクセルブロック領域が9つの要素を含むように示されているが、ピクセルブロック領域はこれより多いか又は少ない数の要素を含み得ることに留意されたい。基準ピクセルブロックを含む可能性があるピクセルブロック領域の各々内の要素522a〜522iのタグ情報を、基準ピクセルブロックのオフセット情報と比較するために、第3の比較器ブロック520が用いられる。第3の比較器ブロック520(図5でCMP3と示される)は、比較を並行して行なうために、ピクセルブロック領域における要素の最大数と同等の多数の比較器(図5のCMP3 520内で各々CMPと示される)を含むように示されている。決定されたあり得るオフセットに1つ又は複数の要素がある場合、その決定されたあり得るオフセットにおける要素に関連付けられる複数の利用可能性タグがチェックされる。一実施形態において、基準ピクセルブロックは、図1のシステム100の設計に従って、単一のピクセルブロック領域内に存在することができる。一実施形態において、基準ピクセルブロックが存在する場合、その要素に関連付けられた複数の利用可能性タグのうちの利用可能性タグがHIT524とマーク付けされ、存在しない場合、利用可能性タグはMISSとマーク付けされる。利用可能性タグが基準ピクセルブロックの存在を示す場合(例えばHIT524)、その要素のアドレス(例えばHITアドレス526)がアドレスエンコーダ528を介して符号化される。
利用可能性タグが基準ブロックの不在を示す場合、第4の比較器ブロック530(図5でCMP4と示される)において、現行キャッシュバンク識別タグ532を備える1つ又は複数のピクセルブロック領域を決定するために、(図4Bを参照して本明細書で説明するように)現行キャッシュバンク識別タグ532(BANK#)を、識別されたピクセルブロック領域に関連付けられた複数のキャッシュバンク識別タグ534の各々と比較することによって、バンクチェックが行われる。続いて、現行キャッシュバンク識別タグ534を備える決定されたピクセルブロック領域が、識別されたピクセルブロック領域において存在しない基準ピクセルブロックを割り振るためのスペースの利用可能性を有するかどうかがチェックされる。決定されたピクセルブロック領域内の決定されたあり得るオフセットでの要素の不在が、スペースの利用可能性を示し得る。決定されたあり得るオフセットでの要素の不在はまた、次のポインタ536の有効性によって示される。次のポインタ536は、第5の比較器ブロック538(図5でCMP5と示される)で、キャッシュバンクチェックの出力と比較される。キャッシュバンクチェックが出力を生成し、次のポインタ538が有効である場合、不在要素のアドレス(例えばMISSアドレス540)はエンコーダ542を用いて決定される。基準ピクセルブロックはメモリ104又は第2のキャッシュ106bから(例えば、図1の処理ユニット102を用いて)フェッチされ、識別されたピクセルブロック領域のうちの1つに(例えば、図1の処理ユニット102を用いて)割り当てられる。現行キャッシュバンク識別タグ532を備える識別されたピクセルブロック領域のいずれも、利用可能なスペースを有さない場合、メモリ104又は第2のキャッシュ106bからフェッチされた基準ピクセルブロックを割り当てるために新しいピクセルブロック領域が作成される。
一実施形態において、メモリからフェッチされるべき基準ピクセルブロックを収容するために、キャッシュバンク内のスペースの利用可能性が決定される。スペースの利用可能性を決定すると、基準ピクセルブロックはキャッシュバンクに割り振られる。一実施形態において、メモリ104からのデータフェッチの待ち時間を低減させるために、第1の基準領域に対応する基準ピクセルブロックが、単一のメモリフェッチコマンドを用いてメモリ104からフェッチされるように整合される1つ又は複数の追加の基準ピクセルブロックと組み合わせてフェッチされる。一実施形態において、基準ピクセルブロック及び1つ又は複数の追加の基準ピクセルブロックが基準フレーム内で互いに近接するように、基準ピクセルブロックと共にフェッチされるべき1つ又は複数の追加の基準ピクセルブロックが(例えば、図1の処理ユニット102を用いて)決定される。また、1つ又は複数の追加の基準ピクセルブロック及び基準ピクセルブロックが共に基準フレーム内に矩形領域(連続的領域)を形成するように、1つ又は複数の追加の基準ピクセルブロックが決定される。一実施形態において、1つ又は複数の追加の基準ピクセルブロック及び基準ピクセルブロックは、フレーム内の複数のブロック区画の中からのブロック区画に対応する。一実施形態において、基準ピクセルブロック及び1つ又は複数の追加の基準ピクセルブロックは、基準フレーム内の近接するブロック区画に属し得、基準フレーム内に矩形領域(連続的領域)を共に形成し得る。1つ又は複数の追加の基準ピクセルブロック及び基準ピクセルブロックは、単一のメモリフェッチコマンドに基づいてメモリ104から共にフェッチされ得る。
一実施形態において、ブロック区画の基準ピクセルブロック及び1つ又は複数の追加の基準ピクセルブロックは、フェッチされるように整合される一方で、近接するブロック区画の1つ又は複数の基準ピクセルブロックと共にマージされ得る。基準ピクセルブロック、1つ又は複数の追加の基準ピクセルブロック、及び1つ又は複数の基準ピクセルブロックは、矩形(連続的領域)を形成し得、単一のメモリフェッチコマンドに基づいてメモリ104からフェッチされ得る。1つ又は複数の追加の基準ピクセルブロック及び基準ピクセルブロックは、メモリ104からフェッチされるように整合される一方で、同じ又は異なるキャッシュバンクに割り振られ得る。一実施形態において、割り振られた基準ピクセルブロック及び1つ又は複数の追加の基準ピクセルブロックをメモリ104からフェッチするために、キャッシュバンクに対してメモリフェッチコマンドが(例えば、図1の処理ユニット102を用いて)作成され得る。割り振られた基準ピクセルブロック及び1つ又は複数の追加の基準ピクセルブロックは、作成されたメモリフェッチコマンドに基づいて、メモリ104から(例えば、図1の処理ユニット102を用いて)フェッチされ得る。基準ピクセルブロック及び1つ又は複数の追加の基準ピクセルブロックはメモリから共にフェッチされるため、メモリから基準データをフェッチするために用いられるタグの総数が削減され得、システム性能仕様への適合を促進する。
一実施形態において、第1のキャッシュ106aは、キャッシュユニット106及びシステム100の編成に起因して予測プリフェッチに関与し得ず、第1のキャッシュ106aにおいて利用不能な基準ピクセルブロックの各々は、メモリ104から別々にフェッチされることになる。基準ピクセルブロックの各々にタグが割り当てられ得る。いくつかのプラットフォーム(例えば、OMAP(商標))において、許容タグの数が制限され、基準ピクセルブロックの各々にタグが割り当てられるため、システム性能仕様を満たすことが困難になる。加えて、基準データフェッチのサイズが、システム100における許容最大バーストサイズ内に保たれる。一実施形態において、基準データフェッチのサイズを最大バーストサイズ内に保つために、機能停止論理(break down logic)が実装される。最大バーストサイズは、例えば8データ位相を含む。メモリ104からの基準データフェッチは、図6A〜図6Cでさらに説明する。
図6A〜図6Cは、一実施形態に従った、図1のシステム100におけるマルチメディアデータに関連付けられた基準フレーム内の互いに近接する基準ピクセルブロックの例示のフェッチを示す。図6Aは、基準フレームに関連付けられる2つの近接するブロック区画602a及び602bを示す。図6Aに示されるように、2つの近接するブロック区画602a及び602bの各々が16の基準ピクセルブロックを含む。ブロック区画602a及び602bに対応する1つ又は複数のピクセルブロックを処理するために基準データの検索を行なうと、基準ピクセルブロックの影付きグループ604a、604b、604c、及び604dは、キャッシュユニット106において利用不能な基準ピクセルブロックであり、図1のメモリ104からフェッチされべきると決定される。
図6Aに示されるように、基準ピクセルブロックの影付きグループ604a、604b、及び604cの各々が4つの基準ピクセルブロックを含み、基準ピクセルブロックの影付きグループ604dは基準ピクセルブロックのペアを含む。基準ピクセルブロックの各影付きグループ604a、604b、604c、及び604dにおける各基準ピクセルブロックに対して基準ピクセルブロックフェッチコマンドを生成する(結果的に、各々、基準ピクセルブロックの影付きグループ604a、604b、及び604cを処理するための4つの基準ピクセルブロックフェッチコマンドと、基準ピクセルブロックの影付きグループ604dを処理するための2つの基準ピクセルブロックフェッチコマンドとを生成する)代わりに、図6B及び図6Cを参照して本明細書で説明するように、基準ピクセルブロックフェッチコマンドが組み合わされ得る。
図6Bにおいて、ブロック区画における近接するピクセルブロックに対する基準ピクセルブロックフェッチが組み合わされ、それによって、システム容量が最適化され、性能が向上する。例えば、基準ピクセルブロックの影付きグループ604a、604b、604c、及び604dの各々に対して、1つの基準ピクセルブロックフェッチコマンドが生成され得る。基準ピクセルブロックフェッチコマンドは、図6Bに示されるように、基準ピクセルブロックの影付きグループ604a、604b、604c、及び604dにおける個別の基準ピクセルブロックに対する基準ピクセルブロックフェッチコマンドを組み合わせることによって生成される。例えば、基準ピクセルブロックの影付きグループ604aをフェッチするために、基準ピクセルブロックフェッチコマンド606aが用いられ得る。同様に、基準ピクセルブロックの影付きグループ604b、604c、及び604dをフェッチするために、基準ピクセルブロックフェッチコマンド606b、606c、及び606dが用いられ得る。それによって基準ピクセルブロックフェッチの数が14から4に削減され、それによってキャッシュ性能が向上する。
図6Cにおいて、(ブロック区画602a及び602bなどの)近接するブロック区画における近接するピクセルブロックに対する基準ピクセルブロックフェッチが組み合わされる。基準ピクセルブロックフェッチコマンド606a及び606dの生成に加えて、(近接するブロック区画602a及び602bにおける)近接する基準ピクセルブロックの影付きグループ604b及び604cに対する基準データフェッチが、基準ピクセルブロックの影付きグループ604b及び604cをフェッチするために単一の基準ピクセルブロックフェッチコマンド606eに組み合わされる。それによって基準ピクセルブロックフェッチの数が14から3に削減され、それによってキャッシュ性能がさらに向上する。
図7は、一実施形態に従った、マルチメディアデータ処理のための例示の方法700を示すフローチャートである。一実施形態において、方法700は、図1のシステム100などのシステムによって実装され得る。フローチャートの動作、及びフローチャートにおける動作の組み合わせは、ハードウェア、ファームウェア、プロセッサ、回路、及び/又は、1つ又は複数のコンピュータプログラム命令を含むソフトウェアの実行に関連付けられる他のデバイスなどの、様々な手段によって実装され得る。方法700の動作はシステム100を用いて説明される。しかしながら、この方法の動作は、任意の他のシステムを用いることによって説明及び/又は実施され得る。方法700は動作702で開始される。動作702で、図2を参照して本明細書で説明するピクセルブロック領域などの1つ又は複数のピクセルブロック領域が、基準データに対応する複数の基準ピクセルブロックをキャッシュするために、第1のキャッシュ(例えば、図1の第1のキャッシュ106a)において定義される。一実施形態において、基準データは、メモリ(例えば、図1のメモリ104)及び第2のキャッシュ(例えば、図1の第2のキャッシュ106b)の一方から、フェッチされ得る。一実施形態において、基準データは、メモリに記憶された1つ又は複数の基準フレームのうちの基準フレームに対応し得る。
図1を参照して本明細書で説明するように、各ピクセルブロック領域が、1つ又は複数の基準ピクセルブロックをキャッシュすることが可能な、第1のキャッシュ内の記憶スペースの割り振りとみなされ得る。1つ又は複数のこうした記憶スペースは、メモリからフェッチされた複数の基準ピクセルブロックをキャッシュするために、第1のキャッシュ内で(例えば、図1の処理ユニット102などの処理ユニットを用いて)定義され得る。一実施形態において、定義されるべきピクセルブロック領域の数は、ビデオ圧縮パラダイムに基づいて決定され得る。ビデオ圧縮パラダイムの例には、ビデオコーディング専門家グループ(VCEG)、H.120、H.261、動画像専門家グループ(MPEG)、MPEG−1 Part2、H.262又はMPEG−2 Part2、H.263、MPEG−4 Part2、H.264又はMPEG−4 AVC、VC−2(ディラック)、高効率ビデオコーディング(HEVC)などが含まれるが、これらに限定されない。
一実施形態において、各ピクセルブロック領域は、スパン情報、ベースアドレス、キャッシュバンク識別タグ、及び/又は参照インデックスを介して定義される。スパン情報は、各ピクセルブロック領域の長さ方向(例えば高さ)及び幅方向(例えば幅)に沿った寸法を示す。ベースアドレスは、基準フレームによって定義されるスペース内の事前に決定された起点からの各ピクセルブロック領域の左上アドレスのオフセットであり、基準フレームによって定義されるスペース内のピクセルブロック領域の局所性を示す。各ピクセルブロック領域のベースアドレスは、x及びy座標に関して表される。キャッシュバンク識別タグは、各ピクセルブロック領域が関連付けられるキャッシュバンクを示す。参照インデックスは、各ピクセルブロック領域に関連付けられる基準フレームを示す。例えば、メモリ104における基準データが32の基準フレームを含み、ピクセルブロック領域が32の基準フレームのうちの基準フレーム#5に関連付けられる場合、ピクセルブロック領域の参照インデックスは、ピクセルブロック領域に含まれる基準ピクセルブロックがフェッチされる基準フレームを示し得る。
動作704で、複数の基準ピクセルブロックの中からの基準ピクセルブロックが、所定の基準に基づいて、1つ又は複数のピクセルブロック領域の中からのピクセルブロック領域に割り当てられる。所定の基準は、基準フレーム内の基準ピクセルブロックの局所性、及び基準フレームによって定義されるスペース内のピクセルブロック領域の局所性を含むが、これらに限定されない。一実施形態において、単一の基準フレームに属する基準ピクセルブロックが、1つ又は複数のピクセルブロック領域の中からのピクセルブロック領域に割り当てられる。一実施形態において、ピクセルブロック領域が、疎に満たされ、少数基準ピクセルブロックエントリ(要素とも呼ばれる)を含む。一実施形態において、1つ又は複数のピクセルブロック領域の中からのピクセルブロック領域が9つの要素を含む。一実施形態において、ピクセルブロック領域に関連付けられる1つ又は複数の要素の各要素が、対応する基準フレームによって定義されるスペース内の各要素の局所性に基づいて、ピクセルブロック領域内の特定の位置に割り当てられる。一実施形態において、1つ又は複数のピクセルブロック領域の各々がその中に定義されるキャッシュバンクを示すために、キャッシュバンク識別タグが(前述のように)各ピクセルブロック領域に関連付けられる。動作706で、基準ピクセルブロックは、マルチメディアフレームに関連付けられる複数のピクセルブロックを処理するために基準データの検索を促進するように、ピクセルブロック領域に基づいてタグに関連付けられる。マルチメディアフレームの処理のための基準データの検索は、図8A〜図8Bで説明する。
図8A及び図8Bは、一実施形態に従って、マルチメディアフレームの処理を行なうための基準データ検索の例示の方法800を示すフローチャートを集合的に示す。一実施形態において、システム800は、図1のシステム100などのシステムによって実装され得る。フローチャートの動作、及びフローチャートにおける動作の組み合わせは、ハードウェア、ファームウェア、プロセッサ、回路、及び/又は、1つ又は複数のコンピュータプログラム命令を含むソフトウェアの実行に関連付けられる他のデバイスなどの、様々な手段によって実装され得る。方法800の動作は、システム100を用いて説明される。しかしながら、この方法の動作は、任意の他のシステムを用いることによって説明及び/又は実施され得る。方法800は動作802で開始される。動作802で、マルチメディアフレームにおける複数のブロック区画の中からのブロック区画における複数のピクセルブロックに対応する第1の基準領域が、マルチメディアフレームの処理のために決定される。例えば、マルチメディアフレームの4×4ピクセルブロックの場合、9×9基準領域(各側で5つの追加ピクセル、すなわち、左に3つ及び右に2つの追加ピクセル)が、動き補正の間の補間のために基準フレームからフェッチされると決定される。同様に、フレームの8×8ピクセルブロックの場合、13×13基準領域ブロックが基準フレームからフェッチされるべきであると決定され得る。図3A〜図3Cを参照して本明細書で説明するように、第1の基準領域は、メモリ(例えば、図1のメモリ104)に記憶された基準フレーム内で決定され、したがって、第1の基準領域内の基準ピクセルブロックは、基準フレームに対応する参照番号、及び基準フレーム内の局所性に対応する位置座標でタグ付けされる。動作804で、第1の基準領域に関連付けられたタグ情報を、各ピクセルブロック領域に関連付けられたスパン情報と比較することによって、第1の基準領域を含む可能性がある第1のキャッシュ(例えば、図1の第1のキャッシュ106a)の1つ又は複数のピクセルブロック領域の中からのピクセルブロック領域が識別される。第1の基準領域に関連付けられたタグ情報は、参照番号(例えば、図5のref#504)及び位置座標(例えば、図5の(X,Y)506)を含む。スパン情報は、各ピクセルブロック領域の長さ方向に沿った寸法(例えば高さ)及び幅方向に沿った寸法(例えば幅)を示す。比較の間、
X≧BA−X及び<BA−(X+ピクセルブロック領域の幅)、及び
Y≧BA−Y及び<BA−(Y+ピクセルブロック領域の高さ)
であるかどうかが決定される。ここで、BAは、1つ又は複数のピクセルブロック領域の各々のベースアドレスであり、(X,Y)は、第1の基準領域に関連付けられた位置座標である。
識別されたピクセルブロック領域内の基準ピクセルブロックの存在を決定するために、識別されたピクセルブロック領域についてオフセットチェックが行われる。オフセットチェックの間、識別されたピクセルブロック領域の各々に関連付けられたスパン情報、及び基準フレーム内の第1の基準領域の位置に基づいて、識別されたピクセルブロック領域の各々内の第1の基準領域の可能なオフセットが決定される。決定されたあり得るオフセットでの各基準ピクセルブロックに関連付けられる複数の利用可能性タグをチェックすることによって、識別されたピクセルブロック領域の各々における決定されたあり得るオフセットでの第1の基準領域の存在が決定される。動作806で、決定されたあり得るオフセットでの基準ピクセルブロックに関連付けられる複数の利用可能性タグをチェックすることによって、識別されたピクセルブロック領域の各々における決定されたあり得るオフセットでの第1の基準領域の存在が決定される。一実施形態において、基準ピクセルブロックが存在する場合、基準ピクセルブロックに関連付けられる利用可能性タグがHITとしてマーク付けされ、基準ピクセルブロックが存在しない場合、利用可能性タグはMISSとしてマーク付けされる。一実施形態において、利用可能性タグのマーク付けは、図3Cを参照して本明細書で説明するように行われ得る。
動作808で、第1の基準領域が第1のキャッシュのピクセルブロック領域に存在すると決定されるかどうかが検証される。第1のキャッシュのピクセルブロック領域に第1の基準領域が存在しない場合、動作810で、第2のキャッシュ(例えば、第2のキャッシュ106b)における第1の基準領域の存在が決定される。反対に、第1のキャッシュのピクセルブロック領域に第1の基準領域が存在すると決定されると、動作812が行われる。動作812では、マルチメディアフレームにおけるブロック区画における複数のピクセルブロックが、第1の基準領域に基づいて処理される。マルチメディアフレームの処理の例には、符号化/復号化目的でマルチメディアデータのフレームに対して動き補償を実行することが含まれ得る。動作810で第2のキャッシュにおける第1の基準領域の存在が決定されると、続いて動作814が行われる。動作814では、第1の基準領域が第2のキャッシュ内に存在すると決定されるかどうかが検証される。第1の基準領域が第2のキャッシュ内に存在すると決定された場合、動作816が行われる。動作816では、第1の基準領域に関連付けられた基準ピクセルブロックが、第2のキャッシュから第1のキャッシュにフェッチされる。
代替として、第1の基準領域が第2のキャッシュに存在しないと決定された場合、動作818で、第1の基準領域に関連付けられた基準ピクセルブロックをメモリからフェッチするために、メモリフェッチコマンドが生成される。一実施形態において、メモリフェッチコマンドは、第1のキャッシュに関連付けられる複数のキャッシュバンクのうちのキャッシュバンクに対して(例えば、図1の処理ユニット102を用いて)生成される。一実施形態において、1つ又は複数の追加の基準ピクセルブロックと、第1の基準領域に関連付けられた1つ又は複数の基準ピクセルブロックとが、基準フレーム内で互いに近接し、基準フレーム内で矩形領域(連続的領域)を形成するように、第1の基準領域と共にフェッチされるべき1つ又は複数の追加の基準ピクセルブロックが決定される。一実施形態において、図6A〜図6Cを参照して本明細書で説明するように第1の基準領域及び1つ又は複数の追加の基準ピクセルブロックをフェッチするために、メモリフェッチコマンドが生成される。一実施形態において、1つ又は複数の追加の基準ピクセルブロック及び第1の基準領域は、基準フレーム内の複数のブロック区画の中からのブロック区画に対応する。一実施形態において、1つ又は複数の追加の基準ピクセルブロック及び第1の基準領域は、基準フレーム内の近接するブロック区画に対応する。1つ又は複数の追加の基準ピクセルブロック及び第1の基準領域は、同じ又は異なるキャッシュバンクに関連付けられ得る。
動作820で、生成されたメモリフェッチコマンドに基づいて、第1の基準領域に関連付けられた基準ピクセルブロックがメモリからフェッチされる。一実施形態において、第1の基準領域は、生成されたメモリフェッチコマンドに基づいて、1つ又は複数の追加の基準ピクセルブロックと共にメモリからフェッチされる。メモリから第1の基準領域の各々をフェッチするための最小細分性が、メモリに関連付けられたプリフェッチバッファのサイズとマッチングする。基準ピクセルブロックは、図6A〜図6Cを参照して本明細書で説明するようにメモリからフェッチされ得る。基準ピクセルブロックがメモリ又は第1のキャッシュのいずれかからフェッチされると、動作822が行われる。
動作822では、フェッチされた基準ピクセルブロックが、所定の基準に基づいて、第1のキャッシュにおける1つ又は複数のピクセルブロック領域に割り当てられる。所定の基準は、基準フレームによって定義されたスペース内の基準ピクセルブロックの局所性を含むが、これに限定されない。割り当てられた基準ピクセルブロックに関連付けられるキャッシュバンクが、キャッシュバンクに関連付けられたすべての基準ピクセルブロックがキャッシュバンクから読み取られた時点で満了するように構成される。キャッシュバンクが満了すると、キャッシュバンクに関連付けられた基準ピクセルブロックは、第1のキャッシュから削除され、マルチメディアフレームに関連付けられる後続のピクセルブロックを処理するために第2のキャッシュに関連付けられたキャッシュバンクに割り当てられる。一実施形態において、フェッチされた1つ又は複数の基準ピクセルブロックをキャッシュするために、第2のキャッシュ内のスペースの利用可能性が決定される。スペースの利用可能性を決定すると、フェッチされた基準ピクセルブロックは第2のキャッシュにキャッシュされる。代替として、スペースの利用不能性を決定すると、第2のキャッシュに以前にキャッシュされた1つ又は複数の基準ピクセルブロックが削除され、フェッチされた基準ピクセルブロックをキャッシュするために第2のキャッシュの起点が所定のマージンだけシフトされる。第1のキャッシュに割り当てられた各基準ピクセルブロックが、動作824を受ける。動作824では、マルチメディアフレームの処理の間第1の基準領域の検索を促進するように、各基準ピクセルブロックがピクセルブロック領域に基づいてタグに関連付けられる。
本明細書で開示された例示の実施形態のうちの1つ又は複数の利点が、以下に記載の特許請求の範囲、その解釈又は適用をいかなる方式でも制限することなく、マルチメディアデータに関連付けられる、メモリ帯域幅消費の低減、及びその結果としてのメモリによる電力損失の低減及び再生時間の増加(例えば、再生時間は3時間増加する可能性がある)を含む。第1のキャッシュにおいてピクセルブロック領域を定義すること、及び、対応するピクセルブロック領域のベースアドレスからのオフセットとして基準ピクセルブロックにタグ付けすることで、タグ付け基準データのサイズが低減し、それによって比較コストが削減され、電力消費のかなりの節約につながる。また、第2のキャッシュから基準データをフェッチするために用いられる処理サイクルの数(例えば10処理サイクル)は、メモリから基準データをフェッチするために用いられる処理サイクルの数(例えば100処理サイクル)より少ないため、第2のキャッシュを用いることによって処理サイクルの総数が削減される。また、マルチメディアデータのフレームにおいて近接するピクセルブロックに関連付けられた基準ピクセルブロックをグループ化することによって、バースト当たりのデータ位相の数が、代替のキャッシュパラダイムでは1であるのに対して、約8まで増加される。バースト当たりのデータ位相が増加することは、相互接続及びメモリインターフェース電力の削減につながる。
加えて、基準データフェッチのサイズがメモリのプリフェッチバッファの最大サイズとマッチングするので、プリフェッチバッファと同等のサイズの1ピクセルブロック或いは1つ又は複数のピクセルブロックをフェッチするために等しい量の電力が損失されるため、システム内で電力が効率的に用いられる。本明細書で開示されるシステムは、効率的なメモリフェッチ動作(例えばDMA)を可能にするために、パイプライン様式で動作するように構成される。図4Bの詳細な説明で説明された3つのキャッシュバンクのパイプライン動作は、コヒーレンシを維持するための複雑な論理を排除し、様々な段の並列及び効率的な動作を可能にする。さらに、本技術において、結合性が高くなることでメモリ仕様が低下している。また、本明細書で開示される方法及びシステムは、毎秒120フレームに近いフレームレートの達成を可能にする。
本明細書に記載された様々なデバイス、モジュール、分析器、生成器などは、ハードウェア回路(例えば、相補型金属酸化物半導体(CMOS)ベースの論理回路)、ファームウェア、ソフトウェア、並びに/或いは、ハードウェア、ファームウェア、及び/又は(例えば、機械可読媒体において具現化される)ソフトウェアの組み合わせを用いて、可能化及び動作され得る。例えば、様々な電気的構造及び方法は、トランジスタ、論理ゲート、及び電気回路(例えば、特定用途向け集積回路(ASIC)回路、及び/又はデジタル信号プロセッサ(DSP)回路)を用いて具現化され得る。
特に、システム100、処理ユニット102、メモリ104、及びキャッシュユニット106は、ソフトウェアを用いて、及び/又は、トランジスタ、論理ゲート、及び電気回路(例えば、ASIC回路などの集積回路)を用いて可能とされ得る。本開示の様々な実施形態は、コンピュータ読み取り可能媒体上に記憶されるか又はその他の方式で具現化された、1つ又は複数のコンピュータプログラムを含み得、コンピュータプログラムは、プロセッサ又はコンピュータに1つ又は複数の動作を行わせるように構成される。コンピュータプログラム又は同様の言語を記憶する、具現化する、又はコンピュータプログラム又は同様の言語で符号化されるコンピュータ可読媒体が、プロセッサ又はコンピュータに1つ又は複数の動作を行わせるように構成された1つ又は複数のソフトウェアプログラムを記憶する有形データ記憶デバイスとして具現化され得る。こうした動作は、例えば、本明細書で説明されるステップ又は動作のいずれかであり得る。また、有形データ記憶デバイスが、1つ又は複数の揮発性メモリデバイス、1つ又は複数の不揮発性メモリデバイス、及び/又は、1つ又は複数の揮発性メモリデバイス及び不揮発性メモリデバイスの組み合わせとして、具現化され得る。
また、様々な実施形態において離散型又は分離型として説明及び例示された技法、デバイス、サブシステム、及び方法は、本技術の範囲から逸脱することなく、他のシステム、モジュール、技法、又は方法と組み合わされ得るか又は統合され得る。互いに直接的に結合されるか又は通信しているように図示又は説明される他のアイテムが、そのアイテムがもはや互いに直接的に結合されているとはみなされ得ないが、依然として間接的に結合され得、電気的、機械的、又はその他の方式で互いに通信し得るように、何らかのインターフェース又はデバイスを介して結合され得る。当業者によって確認され得る変更、置換、及び改変の他の例が、本明細書で開示される例示の実施形態を検討した時点又はその後に、本技術の趣旨及び範囲から逸脱することなく成され得る。加えて、例示の目的で、詳細な説明はフレームに関連付けられたピクセルブロックに言及しているが、本明細書で開示される方法及びシステムの範囲は、ピクセルブロックに限定されず、HEVCパラダイムに従ったコーディングユニットを含むように拡張され得る。
当業者であれば、本発明の特許請求の範囲内で、例示の実施形態に対してさらなる改変が成され得ること、及び多くの他の実施形態が存在することが理解されよう。

Claims (20)

  1. 方法であって、
    基準データに対応する複数の基準ピクセルブロックをキャッシュするように、第1のキャッシュにおいて1つ又は複数のピクセルブロック領域を定義すること、
    前記複数の基準ピクセルブロックの中からの基準ピクセルブロックを、所定の基準に基づいて、前記1つ又は複数のピクセルブロック領域の中からのピクセルブロック領域に割り当てること、及び、
    マルチメディアフレームに関連付けられる複数のピクセルブロックを処理するために前記基準データの検索を促進するように、前記基準ピクセルブロックを前記ピクセルブロック領域に基づいてタグに関連付けること、
    を含む、方法。
  2. 請求項1に記載の方法であって、
    前記ピクセルブロック領域が、前記ピクセルブロック領域の長さ方向及び幅方向に沿った寸法を示すスパン情報、ベースアドレス、前記ピクセルブロック領域に関連付けられる基準フレームを示す参照インデックス、及び、前記ピクセルブロック領域に関連付けられるキャッシュバンクを示すキャッシュバンク識別タグのうちの、少なくとも1つを介して定義される、方法。
  3. 請求項1に記載の方法であって、
    前記検索が、
    前記マルチメディアフレームにおける複数のブロック区画の中からの第1のブロック区画における前記複数のピクセルブロックに対応する第1の基準領域を決定すること、
    前記第1の基準領域に関連付けられるタグ情報を、前記1つ又は複数のピクセルブロック領域に関連付けられるスパン情報と比較することによって、前記第1の基準領域を含む可能性がある前記1つ又は複数のピクセルブロック領域の中から1つ又は複数のピクセルブロック領域を識別すること、及び、
    前記識別された1つ又は複数のピクセルブロック領域における前記第1の基準領域に関連付けられる1つ又は複数の基準ピクセルブロックの存在を決定すること、
    を含む、方法。
  4. 請求項3に記載の方法であって、
    前記1つ又は複数の基準ピクセルブロックの前記存在を決定することが、
    前記スパン情報、及び前記基準データに関連付けられる基準フレーム内の前記第1の基準領域の場所に基づいて、前記識別された1つ又は複数のピクセルブロック領域内の前記第1の基準領域のあり得るオフセットを決定すること、及び、
    前記決定されたあり得るオフセットでの前記1つ又は複数の基準ピクセルブロックに関連付けられる複数の利用可能性タグをチェックすることによって、前記識別された1つ又は複数のピクセルブロック領域内の決定されたあり得るオフセットでの前記第1の基準領域の存在を決定すること、
    を含む、方法。
  5. 請求項3に記載の方法であって、さらに、
    前記識別された1つ又は複数のピクセルブロック領域に前記第1の基準領域が存在しないと決定された場合、第2のキャッシュにおいて前記1つ又は複数の基準ピクセルブロックの存在を決定すること、及び、
    前記第1の基準領域が前記第2のキャッシュ内に存在すると決定された場合に前記第2のキャッシュ、及び
    前記第1の基準領域が前記第2のキャッシュ内に存在しないと決定された場合にメモリ、
    のうちの一方から、前記第1の基準領域に関連付けられた前記1つ又は複数の基準ピクセルブロックをフェッチすること、
    を含む、方法。
  6. 請求項5に記載の方法であって、さらに、前記マルチメディアフレームに関連付けられた前記複数のピクセルブロックを処理するために、前記フェッチされた1つ又は複数の基準ピクセルブロックを前記第1のキャッシュにキャッシュすることを含む、方法。
  7. 請求項6に記載の方法であって、さらに、前記マルチメディアフレームに関連付けられた後続のピクセルブロックを処理するために、前記1つ又は複数の基準ピクセルブロックが前記第1のキャッシュから読み取られると、前記フェッチされた1つ又は複数の基準ピクセルブロックを前記第2のキャッシュにキャッシュすることを含む、方法。
  8. 請求項7に記載の方法であって、
    前記フェッチされた1つ又は複数の基準ピクセルブロックを前記第2のキャッシュにキャッシュすることが、
    前記フェッチされた1つ又は複数の基準ピクセルブロックをキャッシュするために、前記第2のキャッシュ内のスペースの利用可能性を決定すること、及び
    前記第2のキャッシュ内で前記スペースが利用可能であると決定された場合、前記フェッチされた1つ又は複数の基準ピクセルブロックを前記第2のキャッシュにキャッシュすることと、
    前記第2のキャッシュ内で前記スペースが利用不能であると決定された場合、前記第2のキャッシュにおける1つ又は複数の以前にキャッシュされた基準ピクセルブロックを削除することであって、前記1つ又は複数の以前にキャッシュされた基準ピクセルブロックを削除すると、前記フェッチされた1つ又は複数の基準ピクセルブロックをキャッシュするために前記第2のキャッシュの起点が所定のマージンだけシフトされることと、
    のうちの一方を実行すること、
    を含む、方法。
  9. 請求項5に記載の方法であって、前記第1の基準領域に関連付けられた前記1つ又は複数の基準ピクセルブロックの中からの基準ピクセルブロックを前記メモリからフェッチするための最小細分性が、前記メモリに関連付けられるプリフェッチバッファにおけるキャッシュの最小細分性とマッチングする、方法。
  10. 請求項9に記載の方法であって、前記第1の基準領域に関連付けられた前記1つ又は複数の基準ピクセルブロックを前記メモリからフェッチすることが、前記第1の基準領域に関連付けられた前記1つ又は複数の基準ピクセルブロックと共にフェッチされるべき1つ又は複数の追加の基準ピクセルブロックを決定することを含み、前記1つ又は複数の追加の基準ピクセルブロック及び前記第1の基準領域が、前記基準フレーム内で互いに近接し、前記基準フレーム内に矩形領域を共に形成する、方法。
  11. 請求項10に記載の方法であって、前記1つ又は複数の追加の基準ピクセルブロック及び前記第1の基準領域が、前記基準フレーム内の複数のブロック区画の中からのブロック区画に対応する、方法。
  12. 請求項10に記載の方法であって、前記1つ又は複数の追加の基準ピクセルブロック及び前記第1の基準領域が、前記基準フレーム内の近接するブロック区画に対応する、方法。
  13. 請求項10に記載の方法であって、
    前記第1の基準領域に関連付けられた前記1つ又は複数の基準ピクセルブロックを前記メモリからフェッチすることが、さらに、
    前記1つ又は複数の追加の基準ピクセルブロック、及び前記第1の基準領域に関連付けられた前記1つ又は複数の基準ピクセルブロックを前記メモリからフェッチするように、メモリフェッチコマンドを生成すること、及び、
    前記生成されたメモリフェッチコマンドに基づいて、前記1つ又は複数の追加の基準ピクセルブロック、及び前記第1の基準領域に関連付けられた前記1つ又は複数の基準ピクセルブロックを前記メモリからフェッチすること、
    を含む、方法。
  14. システムであって、
    基準データに対応する1つ又は複数の基準フレームを記憶するように構成されるメモリ、
    前記メモリと通信可能に関連付けられ、第1のキャッシュ及び第2のキャッシュを含む、キャッシュユニット、及び
    前記メモリ及び前記キャッシュユニットと通信可能に関連付けられる処理ユニット、
    を含み、
    前記処理ユニットが、
    前記基準データに対応する複数の基準ピクセルブロックをキャッシュするよう前記第1のキャッシュにおいて1つ又は複数のピクセルブロック領域を定義するように、
    所定の基準に基づいて、前記複数の基準ピクセルブロックの中からの基準ピクセルブロックを、前記1つ又は複数のピクセルブロック領域の中からのピクセルブロック領域に割り当てるように、及び、
    マルチメディアフレームに関連付けられる複数のピクセルブロックを処理するために前記基準データの検索を促進するよう、前記基準ピクセルブロックを前記ピクセルブロック領域に基づいてタグに関連付けるように、
    構成される、
    システム。
  15. 請求項14に記載のシステムであって、
    前記処理ユニットがさらに、
    前記マルチメディアフレームにおける複数のブロック区画の中からの第1のブロック区画における前記複数のピクセルブロックに対応する第1の基準領域を決定するように、
    前記第1の基準領域に関連付けられるタグ情報を、前記1つ又は複数のピクセルブロック領域に関連付けられるスパン情報と比較することによって、前記第1の基準領域を含む可能性がある前記1つ又は複数のピクセルブロック領域の中から1つ又は複数のピクセルブロック領域を識別するように、及び、
    前記識別された1つ又は複数のピクセルブロック領域における前記第1の基準領域に関連付けられる1つ又は複数の基準ピクセルブロックの存在を決定するように、
    構成される、システム。
  16. 請求項15に記載のシステムであって、
    前記処理ユニットがさらに、
    前記識別された1つ又は複数のピクセルブロック領域に前記第1の基準領域が存在しないと決定された場合、前記第2のキャッシュにおいて前記1つ又は複数の基準ピクセルブロックの存在を決定するように、及び、
    前記第1の基準領域が前記第2のキャッシュに存在すると決定された場合の前記第2のキャッシュと、
    前記第1の基準領域が前記第2のキャッシュに存在しないと決定された場合のメモリと、
    のうちの一方から、前記第1の基準領域に関連付けられた前記1つ又は複数の基準ピクセルブロックをフェッチするように、
    構成される、システム。
  17. 請求項16に記載のシステムであって、前記第1の基準領域に関連付けられた前記1つ又は複数の基準ピクセルブロックを前記メモリからフェッチすることが、前記第1の基準領域に関連付けられた前記1つ又は複数の基準ピクセルブロックと共にフェッチされるべき1つ又は複数の追加の基準ピクセルブロックを決定することを含み、前記決定された1つ又は複数の基準ピクセルブロック及び前記第1の基準領域が、前記基準フレーム内の複数のブロック区画の中からのブロック区画及び近接するブロック区画のうちの1つに対応する、システム。
  18. 実行されるとき或る方法をコンピュータに行なわせる命令セットを記憶するコンピュータ可読媒体であって、この方法が、
    基準データに対応する複数の基準ピクセルブロックをキャッシュするように第1のキャッシュにおいて1つ又は複数のピクセルブロック領域を定義すること、
    前記複数の基準ピクセルブロックの中からの基準ピクセルブロックを、所定の基準に基づいて、前記1つ又は複数のピクセルブロック領域の中からのピクセルブロック領域に割り当てること、及び、
    マルチメディアフレームに関連付けられる複数のピクセルブロックを処理するために前記基準データの検索を促進するように、前記ピクセルブロック領域に基づいて前記基準ピクセルブロックをタグに関連付けること、
    を含む、コンピュータ可読媒体。
  19. 請求項18に記載のコンピュータ可読媒体であって、前記基準データの前記検索が、
    前記マルチメディアフレームにおける複数のブロック区画の中からの第1のブロック区画における前記複数のピクセルブロックに対応する第1の基準領域を決定すること、
    前記第1の基準領域に関連付けられるタグ情報を、前記1つ又は複数のピクセルブロック領域に関連付けられるスパン情報と比較することによって、前記第1の基準領域を含む可能性がある前記1つ又は複数のピクセルブロック領域の中から1つ又は複数のピクセルブロック領域を識別すること、及び、
    前記識別された1つ又は複数のピクセルブロック領域における前記第1の基準領域に関連付けられた1つ又は複数の基準ピクセルブロックの存在を決定すること、
    を含む、コンピュータ可読媒体。
  20. 請求項19に記載のコンピュータ可読媒体であって、さらに、
    前記識別された1つ又は複数のピクセルブロック領域に前記第1の基準領域が存在しないと決定された場合、第2のキャッシュにおいて前記1つ又は複数の基準ピクセルブロックの存在を決定すること、及び、
    前記第1の基準領域が前記第2のキャッシュに存在すると決定された場合の前記第2のキャッシュと、
    前記第1の基準領域が前記第2のキャッシュに存在しないと決定された場合のメモリと、
    のうちの一方から、前記第1の基準領域に関連付けられた前記1つ又は複数の基準ピクセルブロックをフェッチすること、
    を含む、コンピュータ可読媒体。
JP2015531281A 2012-09-07 2013-09-09 マルチメディアデータ処理のための方法及びシステム Active JP6263538B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/606,237 US20140071146A1 (en) 2012-09-07 2012-09-07 Methods and systems for multimedia data processing
US13/606,237 2012-09-07
PCT/US2013/058765 WO2014039969A1 (en) 2012-09-07 2013-09-09 Methods and systems for multimedia data processing

Publications (3)

Publication Number Publication Date
JP2015534169A true JP2015534169A (ja) 2015-11-26
JP2015534169A5 JP2015534169A5 (ja) 2016-10-27
JP6263538B2 JP6263538B2 (ja) 2018-01-17

Family

ID=50232825

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015531281A Active JP6263538B2 (ja) 2012-09-07 2013-09-09 マルチメディアデータ処理のための方法及びシステム

Country Status (4)

Country Link
US (2) US20140071146A1 (ja)
JP (1) JP6263538B2 (ja)
CN (1) CN104603834A (ja)
WO (1) WO2014039969A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021053948A1 (ja) * 2019-09-20 2021-03-25 ソニー株式会社 画像処理装置と画像処理方法およびプログラム

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10085016B1 (en) * 2013-01-18 2018-09-25 Ovics Video prediction cache indexing systems and methods
US20150193907A1 (en) * 2014-01-08 2015-07-09 Nvidia Corporation Efficient cache management in a tiled architecture
US9762919B2 (en) 2014-08-28 2017-09-12 Apple Inc. Chroma cache architecture in block processing pipelines
WO2016143336A1 (ja) * 2015-03-10 2016-09-15 日本電気株式会社 動画像符号化装置、動画像符号化方法及び動画像符号化プログラムを記憶する記録媒体
CN105323586B (zh) * 2015-04-07 2016-11-09 佛山世寰智能科技有限公司 一种用于多核并行视频编码和解码的共享内存接口
US10809928B2 (en) 2017-06-02 2020-10-20 Western Digital Technologies, Inc. Efficient data deduplication leveraging sequential chunks or auxiliary databases
CN107273310A (zh) * 2017-06-30 2017-10-20 浙江大华技术股份有限公司 一种多媒体数据的读取方法、装置、介质及设备
US10503608B2 (en) 2017-07-24 2019-12-10 Western Digital Technologies, Inc. Efficient management of reference blocks used in data deduplication
WO2019041222A1 (zh) * 2017-08-31 2019-03-07 深圳市大疆创新科技有限公司 编码方法、解码方法以及编码装置和解码装置
US10863190B2 (en) * 2018-06-14 2020-12-08 Tencent America LLC Techniques for memory bandwidth optimization in bi-predicted motion vector refinement
CN112862725B (zh) * 2021-03-12 2023-10-27 上海壁仞智能科技有限公司 用于计算的方法、计算设备和计算机可读存储介质

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04505818A (ja) * 1989-05-26 1992-10-08 マサチユセツツ・インスチチユート・オブ・テクノロジー 並列多重糸データ処理システム
US5960193A (en) * 1993-11-30 1999-09-28 Texas Instruments Incorporated Apparatus and system for sum of plural absolute differences
JP2003256275A (ja) * 2002-02-22 2003-09-10 Hewlett Packard Co <Hp> バンク競合決定
US20070176939A1 (en) * 2006-01-30 2007-08-02 Ati Technologies, Inc. Data replacement method and circuit for motion prediction cache
JP2007279829A (ja) * 2006-04-03 2007-10-25 Fuji Xerox Co Ltd 画像処理装置およびプログラム
JP2008512967A (ja) * 2004-09-09 2008-04-24 クゥアルコム・インコーポレイテッド 動画像の動き補償のためのキャッシング方法および装置
JP2010102623A (ja) * 2008-10-27 2010-05-06 Nec Electronics Corp キャッシュメモリ及びその制御方法
US20100118043A1 (en) * 2006-11-03 2010-05-13 Nvidia Corporation Reconfigurable high-performance texture pipeline with advanced filtering
US20110320729A1 (en) * 2010-06-23 2011-12-29 International Business Machines Corporation Cache bank modeling with variable access and busy times

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9137541B2 (en) * 2003-05-23 2015-09-15 Broadcom Corporation Video data cache
US7336284B2 (en) * 2004-04-08 2008-02-26 Ati Technologies Inc. Two level cache memory architecture
US20050286777A1 (en) * 2004-06-27 2005-12-29 Roger Kumar Encoding and decoding images
US20070008323A1 (en) * 2005-07-08 2007-01-11 Yaxiong Zhou Reference picture loading cache for motion prediction
US8510496B1 (en) * 2009-04-27 2013-08-13 Netapp, Inc. Scheduling access requests for a multi-bank low-latency random read memory device

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04505818A (ja) * 1989-05-26 1992-10-08 マサチユセツツ・インスチチユート・オブ・テクノロジー 並列多重糸データ処理システム
US5960193A (en) * 1993-11-30 1999-09-28 Texas Instruments Incorporated Apparatus and system for sum of plural absolute differences
JP2003256275A (ja) * 2002-02-22 2003-09-10 Hewlett Packard Co <Hp> バンク競合決定
JP2008512967A (ja) * 2004-09-09 2008-04-24 クゥアルコム・インコーポレイテッド 動画像の動き補償のためのキャッシング方法および装置
US20070176939A1 (en) * 2006-01-30 2007-08-02 Ati Technologies, Inc. Data replacement method and circuit for motion prediction cache
JP2007279829A (ja) * 2006-04-03 2007-10-25 Fuji Xerox Co Ltd 画像処理装置およびプログラム
US20100118043A1 (en) * 2006-11-03 2010-05-13 Nvidia Corporation Reconfigurable high-performance texture pipeline with advanced filtering
JP2010102623A (ja) * 2008-10-27 2010-05-06 Nec Electronics Corp キャッシュメモリ及びその制御方法
US20110320729A1 (en) * 2010-06-23 2011-12-29 International Business Machines Corporation Cache bank modeling with variable access and busy times

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021053948A1 (ja) * 2019-09-20 2021-03-25 ソニー株式会社 画像処理装置と画像処理方法およびプログラム

Also Published As

Publication number Publication date
US20150074318A1 (en) 2015-03-12
US20140071146A1 (en) 2014-03-13
CN104603834A (zh) 2015-05-06
US9612962B2 (en) 2017-04-04
JP6263538B2 (ja) 2018-01-17
WO2014039969A1 (en) 2014-03-13

Similar Documents

Publication Publication Date Title
JP6263538B2 (ja) マルチメディアデータ処理のための方法及びシステム
US20180084269A1 (en) Data caching method and apparatus for video decoder
JP4764807B2 (ja) 動きベクトル検出装置および動きベクトル検出方法
US8619862B2 (en) Method and device for generating an image data stream, method and device for reconstructing a current image from an image data stream, image data stream and storage medium carrying an image data stream
TW201620306A (zh) 在區塊處理管線中之色度快取架構
JP2008061156A (ja) 動画像処理装置
US10585803B2 (en) Systems and methods for addressing a cache with split-indexes
US20180054615A1 (en) Analytics Assisted Encoding
JP2010119084A (ja) 高速動き探索装置及びその方法
US8963809B1 (en) High performance caching for motion compensated video decoder
US10757430B2 (en) Method of operating decoder using multiple channels to reduce memory usage and method of operating application processor including the decoder
US20120147023A1 (en) Caching apparatus and method for video motion estimation and compensation
US10580107B2 (en) Automatic hardware ZLW insertion for IPU image streams
US20150055707A1 (en) Method and Apparatus for Motion Compensation Reference Data Caching
TW201824868A (zh) 視訊解碼系統、視訊解碼方法和相應地計算機存儲介質
CN103034455B (zh) 基于预先解码分析的数据信息缓存管理方法及系统
CN103327340B (zh) 一种整数搜索方法及装置
JP5020391B2 (ja) 復号化装置及び復号化方法
CN107797757B (zh) 影像处理系统中的快取存储器管理方法及装置
CN110800301A (zh) 编码设备的控制方法、装置及存储介质
US8908777B2 (en) Memory request ordering for a motion compensation process, implemented by a picture processing apparatus, a picture processing method, and a picture processing program
JP6740549B2 (ja) 動画像符号化装置、方法、プログラム、および動画像符号化システム
US20180052773A1 (en) Memory managing method and apparatus associated with cache in image processing system
Sanghvi 2D cache architecture for motion compensation in a 4K ultra-HD AVC and HEVC video codec system
TWI513282B (zh) 快取記憶體管理裝置及應用該快取記憶體管理裝置之動態影像系統及方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160903

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160903

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170517

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170606

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20170906

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170907

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171218

R150 Certificate of patent or registration of utility model

Ref document number: 6263538

Country of ref document: JP

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

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250