(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-19
(45)【発行日】2023-12-27
(54)【発明の名称】参照画像キャッシュ、削除先決定方法及びコンピュータプログラム
(51)【国際特許分類】
H04N 19/433 20140101AFI20231220BHJP
【FI】
H04N19/433
(21)【出願番号】P 2020078789
(22)【出願日】2020-04-28
【審査請求日】2022-07-28
(73)【特許権者】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(73)【特許権者】
【識別番号】504157024
【氏名又は名称】国立大学法人東北大学
(74)【代理人】
【識別番号】110001634
【氏名又は名称】弁理士法人志賀国際特許事務所
(72)【発明者】
【氏名】大森 優也
(72)【発明者】
【氏名】大西 隆之
(72)【発明者】
【氏名】岩崎 裕江
(72)【発明者】
【氏名】清水 淳
(72)【発明者】
【氏名】江川 隆輔
(72)【発明者】
【氏名】佐藤 雅之
(72)【発明者】
【氏名】小林 広明
【審査官】田中 純一
(56)【参考文献】
【文献】特表2014-513883(JP,A)
【文献】特開2011-097198(JP,A)
【文献】特開2000-347941(JP,A)
【文献】特表2008-512967(JP,A)
【文献】特開2012-015686(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 7/12
H04N 19/00 - 19/98
IEEE Xplore
(57)【特許請求の範囲】
【請求項1】
符号化対象ブロックが参照する参照領域を示す情報を格納する参照画像キャッシュであって、
前記参照画像キャッシュに格納されている前記参照領域の候補である参照領域候補の中から削除する参照領域候補を選択して削除する削除部を有し、
前記削除する参照領域候補は、少なくとも、前記符号化対象ブロックの符号化対象画像における位置と、前記参照領域候補の参照画像における位置とに基づいて決定され
、
前記削除部は、前記符号化対象ブロックの符号化対象画像における位置と、前記参照領域候補の前記参照画像における位置と、の距離が大きい前記参照領域候補ほど削除する対象として選択する、参照画像キャッシュ。
【請求項2】
前記削除部は、前記符号化対象ブロックの符号化対象画像における位置と、前記参照領域候補の前記参照画像における位置とのノルムをそれぞれ計算することによって複数の幾何学的距離長を算出し、前記幾何学的距離長と、前記参照領域候補に対するアクセス履歴の順番とを加重平均することによって優先度指標値を算出し、算出した前記優先度指標値が第1の閾値以上となる前記参照領域候補を削除する対象として選択する、請求項
1に記載の参照画像キャッシュ。
【請求項3】
前記削除部は、前記符号化対象ブロックの符号化対象画像における位置と、前記参照領域候補の前記参照画像における位置とのノルムをそれぞれ計算することによって複数の幾何学的距離長を算出し、算出した前記複数の幾何学的距離長において幾何学的距離長が大きい順番に値を割り当て、前記割り当てた値と、前記参照領域候補に対するアクセス履歴の順番とを加重平均することによって優先度指標値を算出し、算出した前記優先度指標値が第1の閾値以上となる前記参照領域候補を削除する対象として選択する、請求項1に記載の参照画像キャッシュ。
【請求項4】
前記削除部は、前記符号化対象ブロックの符号化対象画像における位置と、前記参照領域候補の前記参照画像における位置とのノルムをそれぞれ計算することによって複数の幾何学的距離長を算出し、指定された第2の閾値よりも大きい前記幾何学的距離長が存在しない場合には、前記参照領域候補に対するアクセス履歴の順番が第3の閾値以上となる前記参照領域候補を削除する対象として選択し、指定された前記第2の閾値よりも大きい前記幾何学的距離長が存在する場合には、前記第2の閾値よりも幾何学的距離長が大きく、かつ、前記参照領域候補に対するアクセス履歴の順番が前記第3の閾値以上となる前記参照領域候補を削除する対象として選択する、請求項1に記載の参照画像キャッシュ。
【請求項5】
符号化対象ブロックが参照する参照領域を示す情報を格納する参照画像キャッシュが行う削除先決定方法であって、
前記参照画像キャッシュに格納されている前記参照領域の候補である参照領域候補の中から削除する参照領域候補を選択して削除する削除ステップを有し、
前記削除する参照領域候補は、少なくとも、前記符号化対象ブロックの符号化対象画像における位置と、前記参照領域候補の参照画像における位置とに基づいて決定され
、
前記削除ステップにおいて、前記符号化対象ブロックの符号化対象画像における位置と、前記参照領域候補の前記参照画像における位置と、の距離が大きい前記参照領域候補ほど削除する対象として選択する、削除先決定方法。
【請求項6】
符号化対象ブロックが参照する参照領域を示す情報を格納する参照画像キャッシュとして機能するコンピュータに対し、
前記参照画像キャッシュに格納されている前記参照領域の候補である参照領域候補の中から削除する参照領域候補を選択して削除する削除ステップを実行させ、
前記削除する参照領域候補は、少なくとも、前記符号化対象ブロックの符号化対象画像における位置と、前記参照領域候補の参照画像における位置とに基づいて決定され
、
前記削除ステップにおいて、前記符号化対象ブロックの符号化対象画像における位置と、前記参照領域候補の前記参照画像における位置と、の距離が大きい前記参照領域候補ほど削除する対象として選択する、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、参照画像キャッシュ、削除先決定方法及びコンピュータプログラムに関する。
【背景技術】
【0002】
映像符号化の技術には、MPEG(Moving Picture Experts Group)-2、MPEG-4、MPEG-4/AVC等の映像符号化方式が多く用いられている。最近では、次世代の映像符号化規格であるHEVC(High Efficiency Video Coding)が規格化され、今後の普及が見込まれている。HEVCは、従来の映像符号化方式であるMPEG-4/AVCの約2倍の符号化効率を達成する。符号化効率の向上に伴い、4K(3840画素×2160ライン)・8K(7680画素×4320ライン)といった空間解像度の高い映像についても符号化処理として扱われるようになっている。
【0003】
HEVC等の符号化規格では、別フレームとの動きを探索・推定し、補償するフレーム間符号化を行うことで符号化効率向上を図っている。フレーム間符号化では、入力画像と参照画像(特定フレームの符号化済画像)との間で、画素単位での差分累積値等が最も小さくなる座標を探索モジュールにおいて探索して動きベクトルを決定する。映像符号化装置では、決定された動きベクトルにしたがって、動きベクトル先の参照画像を用いて現符号化対象ブロックの画像を生成する動き補償処理を実行する。
【0004】
動き探索処理や動き補償処理で必要となる参照画像は、過去の符号化済画像群であるため全データサイズが非常に大きい。このため、映像符号化用LSI(Large-Scale Integrated circuit;大規模集積回路)の場合、LSIの内部に全ての参照画像データを格納することはできず、外部のメインメモリにデータを格納する必要がある。一方で、LSI演算処理に比べて外部のメインメモリは高速動作性能に劣る。そのため、データリクエスト時のアクセスレイテンシによって符号化演算性能に影響を与えうる。このため、LSIとメインメモリとの性能差を埋めるべく、キャッシュメモリと呼ばれる小容量の高速動作が可能な一時記憶装置をLSI内部に実装することが考えられる。
【0005】
LSI内部に参照画像データ専用のキャッシュメモリを実装することで、将来再利用されうる参照画像データを事前にキャッシュメモリに保持し、メモリアクセスレイテンシを隠蔽することが可能となる(例えば、非特許文献1参照)。動き探索処理や動き補償処理等の各機能ブロックが参照画像データを要求する場合、参照画像用のキャッシュメモリ内に要求データがあるか否か判定される。一般的に、参照画像用のキャッシュメモリ内に要求データがある場合にはヒットと呼ばれ、参照画像用のキャッシュメモリ内に要求データがない場合にはミスと呼ばれる。ヒットの場合には、キャッシュメモリから要求データが機能ブロックに転送される。一方で、ミスの場合には、メインメモリから各機能ブロックに転送されるが、この時、キャッシュメモリ内に存在するあるデータブロック(ライン)が要求データで置換される。
【0006】
キャッシュメモリの構成方式として様々なものが提案されているが、その一つとしてLRU(Least Recently Used)アルゴリズムを用いたセットアソシアティブキャッシュが知られている。セットアソシアティブキャッシュとは、キャッシュミス時にキャッシュメモリ内のラインを置換する際に、置換先候補をキャッシュ上のn通りの候補にのみ限定する方式であり、n-wayセットアソシアティブキャッシュと呼ばれる。LRUとは、n通りの置換先候補の中で、アクセスされてから最も長い時間経ったものを置換するアルゴリズムである。同一データは短期間内で再度利用される可能性が高いため、LRU置換アルゴリズムはデータの時間的局所性を利用してキャッシュヒット率向上を図っている。
【先行技術文献】
【非特許文献】
【0007】
【文献】“Cache (computing)”、[online]、[令和1年8月28日検索]、インターネット<URL: https://en.wikipedia.org/wiki/Cache_(computing) >
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかしながら、従来のLRU置換を用いたセットアソシアティブキャッシュでは、時間的局所性から今後のキャッシュヒット可能性を予測するため、利用可能性の高い参照画像データであっても、アクセスされてからある程度期間が空いた場合には置換される可能性が高い。また、従来のキャッシュ機構では、外部メモリ上のデータをある程度大きな単位でキャッシュに順次格納していくことでメモリアドレス上の空間局所性を利用している。このアドレス空間局所性の利用により、メモリアドレスの近いデータブロックがキャッシュに格納され、今後のキャッシュヒット率向上を図っている。一方で、画像データの場合にはアドレス空間上の近さだけでなく、画像の二次元上の幾何学的な近さが今後の利用可能性と密接な関係がある。しかしながら、従来のキャッシュ機構では、このような幾何学的空間局所性を反映したデータリプレースを行うことができない。そのため、画像データの場合には、参照画像データ用キャッシュのヒット率が低下してしまうという問題があった。
【0009】
上記事情に鑑み、本発明は、参照画像データ用キャッシュのヒット率を向上させることができる技術の提供を目的としている。
【課題を解決するための手段】
【0010】
本発明の一態様は、符号化対象ブロックが参照する参照領域を示す情報を格納する参照画像キャッシュであって、前記参照画像キャッシュに格納されている前記参照領域の候補である参照領域候補の中から削除する参照領域候補を選択して削除する削除部を有し、前記削除する参照領域候補は、少なくとも、前記符号化対象ブロックの符号化対象画像における位置と、前記参照領域候補の参照画像における位置とに基づいて決定される、参照画像キャッシュである。
【0011】
本発明の一態様は、上記の参照画像キャッシュであって、前記削除部は、前記符号化対象ブロックの符号化対象画像における位置と、前記参照領域候補の前記参照画像における位置と、の距離が大きい前記参照領域候補ほど削除する対象として選択する。
【0012】
本発明の一態様は、上記の参照画像キャッシュであって、前記削除部は、前記符号化対象ブロックの符号化対象画像における位置と、前記参照領域候補の前記参照画像における位置とのノルムをそれぞれ計算することによって複数の幾何学的距離長を算出し、前記幾何学的距離長と、前記参照領域候補に対するアクセス履歴の順番とを加重平均することによって優先度指標値を算出し、算出した前記優先度指標値が第1の閾値以上となる前記参照領域候補を削除する対象として選択する。
【0013】
本発明の一態様は、上記の参照画像キャッシュであって、前記削除部は、前記符号化対象ブロックの符号化対象画像における位置と、前記参照領域候補の前記参照画像における位置とのノルムをそれぞれ計算することによって複数の幾何学的距離長を算出し、算出した前記複数の幾何学的距離長において幾何学的距離長が大きい順番に値を割り当て、前記割り当てた値と、前記参照領域候補に対するアクセス履歴の順番とを加重平均することによって優先度指標値を算出し、算出した前記優先度指標値が第1の閾値以上となる前記参照領域候補を削除する対象として選択する。
【0014】
本発明の一態様は、上記の参照画像キャッシュであって、前記削除部は、前記符号化対象ブロックの符号化対象画像における位置と、前記参照領域候補の前記参照画像における位置とのノルムをそれぞれ計算することによって複数の幾何学的距離長を算出し、指定された第2の閾値よりも大きい前記幾何学的距離長が存在しない場合には、前記参照領域候補に対するアクセス履歴の順番が第3の閾値以上となる前記参照領域候補を削除する対象として選択し、指定された前記第2の閾値よりも大きい前記幾何学的距離長が存在する場合には、前記第2の閾値よりも幾何学的距離長が大きく、かつ、前記参照領域候補に対するアクセス履歴の順番が前記第3の閾値以上となる前記参照領域候補を削除する対象として選択する。
【0015】
本発明の一態様は、符号化対象ブロックが参照する参照領域を示す情報を格納する参照画像キャッシュが行う削除先決定方法であって、前記参照画像キャッシュに格納されている前記参照領域の候補である参照領域候補の中から削除する参照領域候補を選択して削除する削除ステップを有し、前記削除する参照領域候補は、少なくとも、前記符号化対象ブロックの符号化対象画像における位置と、前記参照領域候補の参照画像における位置とに基づいて決定される、削除先決定方法である。
【0016】
本発明の一態様は、符号化対象ブロックが参照する参照領域を示す情報を格納する参照画像キャッシュとして機能するコンピュータに対し、前記参照画像キャッシュに格納されている前記参照領域の候補である参照領域候補の中から削除する参照領域候補を選択して削除する削除ステップを実行させ、前記削除する参照領域候補は、少なくとも、前記符号化対象ブロックの符号化対象画像における位置と、前記参照領域候補の参照画像における位置とに基づいて決定される、コンピュータプログラムである。
【発明の効果】
【0017】
本発明により、参照画像データ用キャッシュのヒット率を向上させることが可能となる。
【図面の簡単な説明】
【0018】
【
図1】第1の実施形態における映像符号化装置の内部構成を表す構成図である。
【
図2】第1の実施形態におけるメモリ置換制御部の内部構成を示す図である。
【
図3】あるタイミングにおける置換決定用データ格納部の内部状態を表す図である。
【
図4】第1の実施形態における各wayデータのフレーム内位置関係を表す図である。
【
図5】更新後の置換決定用データ格納部の内部状態を表す図である。
【
図6】第1の実施形態における映像符号化装置の流れを示すフローチャートである。
【
図7】第1の実施形態における置換先ウェイ決定部による置換先決定処理の流れを示すフローチャートである。
【
図8】第1の実施形態における自ブロックと参照画像のブロックとのフレーム内位置関係を表す図である。
【
図9】第2の実施形態における置換先ウェイ決定部による置換先決定処理の流れを示すフローチャートである。
【
図10】第2の実施形態における自ブロックと参照画像のブロックとのフレーム内位置関係を表す図である。
【
図11】第3の実施形態における置換先ウェイ決定部による置換先決定処理の流れを示すフローチャートである。
【
図12】第3の実施形態における自ブロックと参照画像のブロックとのフレーム内位置関係を表す図である。
【
図13】変形例における映像符号化装置の構成を示す図である。
【
図14】変形例におけるメモリ置換制御部の内部構成を示す図である。
【発明を実施するための形態】
【0019】
以下、本発明の一実施形態を、図面を参照しながら説明する。
(第1の実施形態)
図1は、第1の実施形態における映像符号化装置10の内部構成を表す構成図である。以下で用いる「符号化対象ブロック」については、MPEG-2やH.264/AVC規格ではマクロブロックの事を示し、HEVCについてはコーディングユニット(CU)又はプレディクションユニット(PU)の事を指し示すものとする。
【0020】
映像符号化装置10は、映像符号化LSI50及び外部メモリ900を備える。映像符号化LSI50と外部メモリ900とはバスを介して接続される。
映像符号化LSI50は、符号化対象の映像原信号を符号化規格に則って符号化処理を行う。
外部メモリ900は、映像符号化LSI50において用いられる参照画像データを始めとした各種データを格納する。
【0021】
映像符号化LSI50は、符号化演算部100及び参照画像データ用キャッシュメモリ200を備える。
符号化演算部100は、動き探索や動き補償等の実際の符号化演算処理を行う。符号化演算部100は、並列動作する複数のコア(core_1,…,core_M)で構成される。各コアは、少なくとも事前動き探索処理部、動き探索処理部、マージ探索処理部及び動き補償処理部等である。処理中に参照画像データが必要となるコア(以下「参照画像利用コア」という。)の場合、参照画像利用コアは参照画像データ用キャッシュメモリ200に接続されている。各コアは、必要となる参照画像データに関して、参照先のフレーム番号、参照先の色空間YUVの指定及び参照先のフレーム内の位置座標等の情報を含む詳細情報を参照画像データ用キャッシュメモリ200に出力する。
【0022】
参照画像データ用キャッシュメモリ200は、データの時間的局所性と幾何学的空間局所性の両方を利用したデータ置換アルゴリズムを実現するn-wayセットアソシエイティブキャッシュメモリである。ここで、時間的局所性とは、ある時点で参照されたリソースが近い将来にも再び参照される可能性が高いといった性質である。幾何学的空間局所性とは、あるリソースが参照されたとき、その近傍のリソースが参照される可能性が高いといった性質である。このように、本実施形態における参照画像データ用キャッシュメモリ200は、従来のように時間的局所性のみを利用するのではなく、時間的局所性と幾何学的空間局所性の両方を利用したデータ置換を行う。
【0023】
参照画像データ用キャッシュメモリ200には、アドレス変換部300、メモリ部400、データ決定部500及びメモリ置換制御部600が備えられる。
アドレス変換部300は、要求された参照画像データの詳細情報から、外部メモリ900のどのアドレスのデータを要求しているかを算出する。アドレス変換部300は、参照画像データの要求が各コアから並列で出力されるが、参照画像情報からアドレス情報への変換を逐次的に行い、要求データのアドレスを順番に出力する。
【0024】
メモリ部400は、データアレイ410とタグアレイ420とで構成される。データアレイ410は、実際のラインデータを格納している。このラインデータは、符号化対象ブロックが参照する参照領域を示す情報である。タグアレイ420は、データアレイ410内の各ラインデータに対応するタグデータを格納している。データアレイ410及びタグアレイ420の中の特定のラインを指定するために、インデックスが用いられる。インデックスはアドレスデコーダによって変換され、データアレイ410及びタグアレイ420内のアドレス指定として用いられる。N-wayの場合、同一のインデックスアドレスを持つラインがn個存在する。
【0025】
データ決定部500は、データ選択部510とタグ比較部520とで構成される。タグ比較部520は、タグアレイ420から読み出されたn個のタグと、要求アドレスのタグとを比較し、n個の各セット内のどのwayにヒットしたか、あるいは全てミスしたかを示す比較結果をデータ選択部510に出力する。要求アドレスは、上位ビットのタグと、下位ビットのインデックスに分離される。インデックスは、メモリ部400内のどのセットに要求データが存在する可能性があるかを示し、タグはインデックスで示されたある特定のセット(n個のラインデータ)の中に要求データが存在するかどうかを検索するためのキーとして使用される。データ選択部510は、タグ比較部520から出力された比較結果としてのwayのラインデータを、符号化演算部100に出力する。データ選択部510から出力されたラインデータは要求元のコアへと伝達される。
【0026】
メモリ置換制御部600は、キャッシュミスが生じて外部メモリ900から該当する要求データを転送する際に、データアレイ410のどのラインデータを要求データで置換するかを決定する。すなわち、メモリ置換制御部600は、キャッシュミスが生じて外部メモリ900から該当する要求データを転送する際に、データアレイ410のどのラインデータを削除するのかを決定する。このように、メモリ置換制御部600は、参照画像データ用キャッシュメモリ200に格納されている参照領域の候補である参照領域候補の中から削除する参照領域候補を選択して削除する。なお、削除する参照領域候補は、少なくとも、符号化対象ブロックの符号化対象画像における座標位置と、参照領域候補の参照画像における座標位置とに基づいて決定される。N-wayの場合、メモリ置換制御部600は、n個の各セット内のどのwayを置換するのかを決定する。メモリ置換制御部600は、置換先を決定するためのデータを内部に保持しており、ヒット時にはどのwayがヒットしたかの情報をタグ比較部520から受け取り、要求アドレスのインデックスも合わせて受け取ることで、内部データ更新を行っていく。
【0027】
メモリ置換制御部600は、ミス時には内部データの状況をもとに、特定ルーチンに従ってどのwayを置換すべきかを決定し、置換先way番号をメモリ部400に出力する。これにより、メモリ部400は、要求アドレスのインデックスと、メモリ置換制御部600から出力された置換先way番号とに基づいて、データアレイ410及びタグアレイ420内の特定のラインを新規データで置換する。
【0028】
上記のように、参照画像データ用キャッシュメモリ200は、通常のキャッシュメモリと同様に、要求されるアドレス情報にしたがってデータがメモリ部400に存在するか否かを判定する。そして、参照画像データ用キャッシュメモリ200は、ヒットした場合はメモリ部400内の対象となる参照画像データを符号化演算部100の各コアに出力する。一方で、ミスした場合には外部メモリ900から各機能ブロックへと要求データの転送がなされるが、その際にメモリ部400内のあるデータブロックが要求データによって置換される。
【0029】
図2は、第1の実施形態におけるメモリ置換制御部600の内部構成を示す図である。メモリ置換制御部600は、置換決定用データ格納部610と、置換先ウェイ決定部620を備える。
置換決定用データ格納部610は、キャッシュミス時に置換先のway番号を決定するための内部データを格納する。
置換先ウェイ決定部620は、置換決定用データ格納部610を用いて具体的な置換先way番号を決定する。
【0030】
置換決定用データ格納部610は、使用履歴順データ格納部611と参照画像座標データ格納部612を持つ。使用履歴順データ格納部611には、あるインデックスに相当するn個のラインデータが、過去どの順番で使用されたかを示すアクセス履歴の順番が記述される。インデックス毎に0~(n-1)の値が振られる。参照画像座標データ格納部612は、メモリ部400に格納された参照画像データの各ラインに対し、フレーム内での座標位置が二次元で記述される。
【0031】
メモリ置換制御部600は、アドレス変換部300との間で、要求された参照画像データにおけるフレーム内の座標位置を出力する信号線と、要求した各コアで符号化中の符号化対象ブロック(以下「現符号化対象ブロック」という。)におけるフレーム内の座標位置を出力する信号線とを介して接続されている。キャッシュがヒットした際は、ヒットしたway番号を使用履歴順データ格納部611が受け取り、使用履歴順データ格納部611は指定インデックスにおけるアクセス履歴の順番を表す内部データを更新する。キャッシュミスした場合は、指定インデックスにおけるそれぞれn個の使用履歴順データ及びフレーム内座標データを、置換決定用データ格納部610は置換先ウェイ決定部620に対して出力する。
【0032】
置換先ウェイ決定部620は、置換決定用データ格納部610から受信した使用履歴順データ及びフレーム内座標データと、アドレス変換部300から受信した現符号化対象ブロックのフレーム内座標位置をもとに置換先のwayを決定する。そして、置換先ウェイ決定部620が、way番号をメモリ部400に出力することにより、外部メモリ900からのデータによるメモリ部400の更新が行われる。キャッシュミスにより置換が行われる際には、置換先way番号は同時に参照画像座標データ格納部612にも出力され、該当インデックス・該当way番号に対して、アドレス変換部300から受信した要求参照画像データのフレーム内座標位置のデータで書き換える。
【0033】
一例として、4-wayの場合における処理を説明する。
図3は、あるタイミングにおける置換決定用データ格納部610の内部状態を表す図である。該当インデックスにおいて、各way0,1,2,3は過去にway2→way1→way0→way3の順に直近で使用されたため、使用履歴順データ格納部611にはそれぞれway0,1,2,3には2,1,0,3の値が格納されている。参照画像座標データ格納部612には、格納された参照領域の参照画像データにおけるフレーム内座標が二次元で記述されている。
図3の参照画像座標データ格納部612のような値となっている場合、各wayデータのフレーム内位置関係は
図4のようになる。
【0034】
参照画像座標データ格納部612には、各ラインデータに相当する参照画像ブロックの中心座標を記述しているが、ブロックの右上座標などを記述してもよい。
図3及び
図4の状態でデータリクエストを受け、該当インデックスのあるwayがキャッシュヒットした場合には、メモリ置換制御部600は使用履歴順データ格納部611だけを更新する。一例としてway0がヒットした場合には、置換決定用データ格納部610の内部状態は
図5のように更新される。
図5に示すように、way0,1,2,3に格納されていたアクセス順を表す値(2,1,0,3)が、way0,1,2,3の順に0,2,1,3と更新されている。また、上記の例では参照画像座標データ格納部612に整数精度の座標位置を格納しているが、参照画像座標データ格納部612のメモリ削減、および下記のデータ置換処理の演算量削減のため、座標位置の下位ビットを削減した縮小画像相当の座標位置として格納することが現実的である。
【0035】
図6は、第1の実施形態における映像符号化装置10の流れを示すフローチャートである。
アドレス変換部300は、符号化演算部100から要求された参照画像データの詳細情報から、外部メモリ900のどのアドレスのデータを要求しているかを算出する(ステップS101)。タグ比較部520は、要求されたデータが、メモリ部400内に存在する否かを判定する(ステップS102)。要求されたデータがメモリ部400内に存在する場合(ステップS102-YES)、データ選択部510は要求されたデータをメモリ部400から読み出し、符号化演算部100のコアに出力する(ステップS103)その後、メモリ置換制御部600は、使用履歴順データ格納部611を更新する(ステップS104)。
【0036】
一方、要求されたデータがメモリ部400内に存在しない場合(ステップS102-NO)、データ選択部510は要求されたデータを外部メモリ900から読み出し、符号化演算部100のコアに出力する(ステップS105)。その後、置換先ウェイ決定部620は、置換先決定処理を行う(ステップS106)。置換先決定処理は、外部メモリ900から読み出されたデータで、メモリ部400内のデータを置換する際の置換先を決定する処理である。メモリ部400は、置換先ウェイ決定部620において決定された置換先のデータを外部メモリ900から読み出されたデータで置換する(ステップS107)。
【0037】
図7は、第1の実施形態における置換先ウェイ決定部620による置換先決定処理の流れを示すフローチャートである。
置換先ウェイ決定部620は、参照画像座標データ格納部612における各座標データと現符号化対象ブロックの座標データから、各wayにおける幾何学的距離長を算出する(ステップS201)。一例として、
図3及び
図4の状態でキャッシュミスが発生した場合を考える。ミス発生時に置換先ウェイ決定部620に入力された自ブロック中心座標が(288、160)であった場合、相対的位置関係は
図8のようになる。ここで、相対的位置関係とは、符号化対象画像における符号化対象ブロックの座標をそのまま参照画像にマップし、マップされた符号化対象ブロックの座標と、各wayに格納されている座標との位置関係を表す。より具体的には、相対的位置関係とは、
図8に示す例では、参照画像上で4つのway0、way1、way2、way3に含まれる4つのデータに相当する4つの二次元座標位置と、原画像(=符号化対象画像)上の現符号化対象ブロックの二次元座標位置を同時にマッピングした位置関係を表す。このとき、自ブロックに対する参照画像ブロックの位置ベクトルは、way0,1,2,3それぞれで(144,-112),(-144,-48),(16,176),(80,16)となる。幾何学的距離長は、位置ベクトルのL1ノルムやL2ノルムを利用できる。L1ノルムを幾何学的距離長とした場合、way0,1,2,3それぞれの幾何学的距離長は、256,192,208,96となる。
【0038】
置換先ウェイ決定部620は、使用履歴順データ格納部611に格納された使用履歴順と、算出した幾何学的距離長とを加重平均することで置換優先度指標値を算出する(ステップS202)。置換先ウェイ決定部620は、置換優先度指標値が閾値以上となるwayを、置換先way番号と決定する(ステップS203)。例えば、置換先ウェイ決定部620は、置換優先度指標値が最大のwayを、置換先way番号と決定する。一例として、(置換優先度指標値)=(使用履歴順)+(幾何学的距離長)>>4という加重計算式の場合、way0,1,2,3それぞれの置換優先度指標値は、18,13,13,9となる。置換先way番号は、置換優先度指標値が最大であるway0となる。このように、置換先ウェイ決定部620は、符号化対象ブロックの符号化対象画像における座標位置と、参照領域候補の参照画像における座標位置と、の距離が大きい参照領域候補(way)ほど削除する対象として選択されやすくなる。このような処理フローとすることで、使用履歴の順序だけでなく自ブロックからの近さを加味したデータ置換を行うことができる。置換先ウェイ決定部620は、決定した結果を、メモリ部400に出力する。
【0039】
以上のように構成された第1の実施形態における映像符号化装置10によれば、参照画像データ用キャッシュのヒット率を向上させることが可能になる。具体的には、上記の例では、通常のLRUでは使用履歴が最も古いway3が新規データにより置換されるが、way3は自ブロックとの幾何学的位置が近いため本処理フローでは置換優先度指標値が最大にはならず、置換されない。映像符号化処理においては、自ブロックとの幾何学的位置が近い参照画像データは再利用率が高い傾向にあるため、本実施形態における映像符号化装置10では、LRUによるデータ置換アルゴリズムに、参照画像座標データ格納部612における各座標データと現符号化対象ブロックの座標データとの相対的位置関係を反映させることで、置換対象となるメモリ部400内の参照画像を決定する。これにより、幾何学的位置の近い参照画像データが置換されにくくなる。そのため、幾何学的空間局所性の活用によるキャッシュヒット率を向上させることが可能になる。
【0040】
(第2の実施形態)
第2の実施形態では、置換先ウェイ決定部620による置換先決定処理が第1の実施形態と異なる。第2の実施形態の基本的構成は第1の実施形態と同様である。そのため、以下の説明では、第1の実施形態との相違点についてのみ説明する。
【0041】
図9は、第2の実施形態における置換先ウェイ決定部620による置換先決定処理の流れを示すフローチャートである。
図9において、
図7と同様の処理については
図7と同様の符号を付して説明を省略する。
ステップS201の処理において、置換先ウェイ決定部620は、参照画像座標データ格納部612における各座標データと現符号化対象ブロックの座標データから、各wayにおける幾何学的距離長をL1ノルムやL2ノルムにより算出する。その後、置換先ウェイ決定部620は、幾何学的距離長の大きさの順番に、n個のwayに0から(n-1)までの整数値を幾何学的距離順として決定する(ステップS301)。
図10に示す例では、way0,1,2,3それぞれの幾何学的距離長が256,192,208,96であるため、幾何学的距離順はそれぞれ3,1,2,0となる。
【0042】
置換先ウェイ決定部620は、決定した幾何学的距離順と、使用履歴順データ格納部611に格納された使用履歴順とを加重平均することで置換優先度指標値を算出する(ステップS302)。その後、置換先ウェイ決定部620は、置換優先度指標値の最大のwayを、置換先way番号と決定する(ステップS303)。一例として、(置換優先度指標値)=(使用履歴順)+(幾何学的距離長)という単純和の場合、way0,1,2,3それぞれの置換優先度指標値は、5,2,2,3となる。置換先way番号は、置換優先度指標値が最大であるway0となる。置換先ウェイ決定部620は、決定した結果を、メモリ部400に出力する。
【0043】
以上のように、第1の実施形態では、使用履歴順が0から(n-1)の等間隔の整数値であるのに対し幾何学的距離長は様々な値をとりうる。このため、幾何学的距離長が他のwayに対して非常に大きい特定のwayが存在する場合、使用履歴順や他のwayの幾何学的距離長の値にかかわらず、前記特定のwayが置換対象として選択されてしまうことが考えられる。それに対して第2の本実地形態では、幾何学的距離長を0から(n-1)の等間隔の整数値である幾何学的距離順に変換した上で加重平均している。したがって、時間的局所性と幾何学的空間局所性を同一の指標で考慮可能なキャッシュ置換アルゴリズムとなっている。そのため、キャッシュヒット率を向上させることが可能になる。
【0044】
(第3の実施形態)
第3の実施形態では、置換先ウェイ決定部620による置換先決定処理が第1の実施形態及び第2の実施形態と異なる。第3の実施形態の基本的構成は第1の実施形態及び第2の実施形態と同様である。そのため、以下の説明では、第1の実施形態及び第2の実施形態との相違点についてのみ説明する。
【0045】
図11は、第3の実施形態における置換先ウェイ決定部620による置換先決定処理の流れを示すフローチャートである。
図11において、
図7と同様の処理については
図7と同様の符号を付して説明を省略する。
ステップS201の処理において、置換先ウェイ決定部620は、参照画像座標データ格納部612における各座標データと現符号化対象ブロックの座標データから、各wayにおける幾何学的距離長をL1ノルムやL2ノルムにより算出する。その後、置換先ウェイ決定部620は、算出された幾何学的距離長と、事前に設定された距離長閾値との、大小を比較する(ステップS401)。例として、
図10において距離長閾値が128の場合は、
図12のような位置関係になる。way0,1,2の幾何学的距離長は距離長閾値よりも大きく、way3の幾何学的距離長は距離長閾値よりも小さい。
【0046】
置換先ウェイ決定部620は、幾何学的距離長と、事前に設定された距離長閾値との比較結果に基づいて置換先way番号を決定する(ステップS402)。具体的には、置換先ウェイ決定部620は、幾何学的距離長が距離長閾値よりも小さい(幾何学的距離長<距離長閾値)wayは置換先way対象から外し、幾何学的距離長が距離長閾値以上(幾何学的距離長≧距離長閾値)wayの中で使用履歴順が最も古いwayを、置換先way番号と決定する。置換先ウェイ決定部620は、決定結果をメモリ部400に出力する。全てのwayで幾何学的距離長が距離長閾値より小さい場合、置換先ウェイ決定部620は通常のLRU同様に使用履歴順が最も古いwayを、置換先way番号と決定する。
図12の場合、幾何学的距離長が距離長閾値よりも小さいway0,1,2の中で、使用履歴順が最も古いway0が、置換先way番号として決定される。
【0047】
以上のように、映像符号化処理においては、動き探索における探索範囲設定などが起因となり、参照距離が自ブロックから離れるにつれて再利用可能性がなだらかに減少していくのではなく、撮像された被写体におけるテクスチャの境界を超えるような場合など、自ブロックから一定距離の範囲内かどうかで再利用可能性がドラスティックに変化することが起こりうる。そこで、第3の実施形態における映像符号化装置10では、参照画像との距離が自ブロックから一定内のデータについては置換対象から外すことによって、再利用可能性が非常に高いであろう近距離の参照画像データをより精度よく保護することができる。そのため、キャッシュヒット率を向上させることが可能になる。
【0048】
以下、第1の実施形態から第3の実施形態に共通する変形例について説明する。
第1の実施形態から第3の実施形態では、アドレス変換部300が要求された参照画像データのフレーム内座標位置をメモリ置換制御部600に出力し、メモリ置換制御部600内の置換決定用データ格納部610に座標データを保持している。これに対し、外部メモリ900上のアドレスがわかれば一意に座標位置へ逆変換できるため、逆変換を行う場合には参照画像座標データ格納部612を不要としてもよい。以下、このように構成される場合の映像符号化装置10の構成について説明する。
【0049】
図13は、変形例における映像符号化装置10aの構成を示す図である。映像符号化装置10aは、参照画像データ用キャッシュメモリ200aが、アドレス変換部300及びメモリ置換制御部600に代えてアドレス変換部300a及びメモリ置換制御部600aを備える点で映像符号化装置10と構成が異なる。映像符号化装置10aのその他の構成については、映像符号化装置10と同様である。そのため、映像符号化装置10a全体の説明は省略してアドレス変換部300a及びメモリ置換制御部600aについて説明する。
【0050】
アドレス変換部300aは、要求された参照画像データの詳細情報から、外部メモリ900のどのアドレスのデータを要求しているかを算出する。アドレス変換部300aは、自ブロックのフレーム内座標位置の情報をメモリ置換制御部600aに出力する。
メモリ置換制御部600aは、キャッシュミスが生じて外部メモリ900から該当する要求データを転送する際に、データアレイ410のどのラインデータを要求データで置換するかを決定する。
図14は、変形例におけるメモリ置換制御部600aの内部構成を示す図である。
図14に示すように、メモリ置換制御部600aは置換決定用データ格納部610aとして使用履歴順データ格納部611のみを備える。
【0051】
キャッシュミスの場合は、置換先ウェイ決定部620は、使用履歴順データ格納部611から指定インデックスにおけるn個の使用履歴順データを受け取るとともに、タグアレイ420から指定インデックスにおけるn個のタグを受け取る。続いて置換先ウェイ決定部620は、指定インデックスとn個のタグからn個の外部メモリ900上アドレスを復元した上で、アドレス変換部300の逆変換を行い、n個の外部メモリ900上アドレスをn個の参照画像上座標位置へと逆変換する。置換先ウェイ決定部620は、n個の使用履歴順データと、逆変換で算出したn個の参照画像上座標位置と、アドレス変換部300から受け取る自ブロックの座標位置を用いて、上記第1の実施形態から第3の実施形態のいずれかと同様の方法で置換先ウェイ番号を決定する。このような処理とした場合、参照画像座標データ格納部612が不要となるためデータ格納用メモリの削減を行えるが、一方で、キャッシュミス時に逆変換処理が必要となるため、レイテンシ増大の可能性がある。
【0052】
上述の実施形態のような処理フローとすることで、画像データの時間的局所性と幾何学的空間局所性の両方を加味した参照画像データ用キャッシュメモリ200を構成し、参照画像データ用キャッシュのヒット率を向上させることができる。
【0053】
上述した実施形態における映像符号化装置10、10a、参照画像データ用キャッシュメモリ200及び200aをコンピュータで実現するようにしてもよい。その場合、この機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現してもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。
【0054】
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD-ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでもよい。また上記プログラムは、前述した機能の一部を実現するためのものであってもよく、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよく、FPGA(Field Programmable Gate Array)等のプログラマブルロジックデバイスを用いて実現されるものであってもよい。
【0055】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【産業上の利用可能性】
【0056】
本発明は、映像符号化における参照画像データを格納するキャッシュに適用可能である。
【符号の説明】
【0057】
10…映像符号化装置, 50…映像符号化LSI, 100…符号化演算部, 200、200a…参照画像データ用キャッシュメモリ(参照画像キャッシュ), 300、300a…アドレス変換部, 400…メモリ部, 410…データアレイ, 420…タグアレイ, 500…データ決定部, 510…データ選択部, 520…タグ比較部, 600、600a…メモリ置換制御部(削除部), 610…置換決定用データ格納部, 611…使用履歴順データ格納部, 612…参照画像座標データ格納部, 620…置換先ウェイ決定部, 900…外部メモリ