(57)【特許請求の範囲】
【請求項１】
第１及び第２のバンクを含む複数のバンク（７０〜７３）を有し、同一バンクへ連続してアクセスする際には前後のアクセス間に所定数のクロックサイクル以上の間隔を空けることが要求されるメモリ（１）を対象とした、メモリアクセス方法であって、
前記メモリへ書き込むべき２次元画像データ（Ｄ２）は、一度のバースト転送によって転送可能なデータ量ごとに複数のデータ群に分割され、
前記メモリへの前記２次元画像データの書き込み動作は、同一バンクへの書き込みが連続しないよう、前記所定数のクロックサイクル内において、
（ａ）前記複数のデータ群に含まれる第１のデータ群（Ｄ２1）を、前記第１のバンクに書き込むステップと、
（ｂ）前記ステップ（ａ）の実行後に前記第１のデータ群に連続する第２のデータ群（Ｄ２2）を、前記第２のバンクに書き込むステップと
を有し、
前記第１のデータ群は、前記２次元画像データの第（２Ｎ＋１）（Ｎは０以上の整数）行におけるデータと、第（２Ｎ＋３）行におけるデータとを有し、
前記第２のデータ群は、前記第（２Ｎ＋２）行におけるデータと、前記第（２Ｎ＋４）行におけるデータとを有する、メモリアクセス方法。
【請求項２】
前記第１及び第２のデータ群はそれぞれ、前記メモリ内に格納された前記２次元画像データ内においては複数行に分割されて配置され、
前記第１のデータ群は奇数行に配置され、前記第２のデータ群は偶数行に配置される、請求項１に記載のメモリアクセス方法。
【請求項３】
前記複数のバンク（７０〜７３）は前記第１のバンクと前記第２のバンクと第３のバンクと第４のバンクとを有する４つのバンクであって、前記所定数のクロックサイクル内において、
（ｃ）前記ステップ（ｂ）の実行後に前記複数のデータ群に含まれる第３のデータ群（Ｄ２3）を、前記第３のバンクに書き込むステップと、
（ｄ）前記ステップ（ｃ）の実行後に前記第３のデータ群に連続する第４のデータ群（Ｄ２4）を、前記第４のバンクに書き込むステップと、
を更に有し、
前記第１ないし前記第４のデータ群を更新して前記ステップ（ａ）〜（ｄ）を繰り返して、前記２次元画像において行方向にデータを書き込んだ後に列方向にずらして再び行方向にデータを書き込み、
前記２次元画像データの、前記第（２Ｎ＋１）行における所定数のデータは前記第１のデータ群に含まれ、前記第（２Ｎ＋１）行において前記第１のデータ群と隣り合う所定数のデータは前記第３のデータ群に含まれ、前記（２Ｎ＋２）行における所定数のデータは前記第２のデータ群に含まれ、前記第（２Ｎ＋２）行において前記第２のデータ群と隣り合う所定数のデータは前記第４のデータ群に含まれる、請求項１または２に記載のメモリアクセス方法。
【請求項４】
第１及び第２のバンクを含む複数のバンク（７０〜７３）を有し、同一バンクへ連続してアクセスする際には前後のアクセス間に所定数のクロックサイクル以上の間隔を空けることが要求されるメモリ（１）を対象とした、メモリアクセス方法であって、
前記メモリ内に格納されている２次元画像データ（Ｄ４）は、一度のバースト転送によって転送可能なデータ量ごとに複数のデータ群に分割されて前記メモリから読み出され、
前記メモリからの前記２次元画像データの読み出し動作は、同一バンクからの読み出しが連続しないよう、前記所定数のクロックサイクル内において、
（ａ）前記複数のデータ群に含まれる第１のデータ群（Ｄ４1）を、前記第１のバンクから読み出すステップと、
（ｂ）前記ステップ（ａ）の実行後に前記第１のデータ群に連続する第２のデータ群（Ｄ４2）を、前記第２のバンクから読み出すステップと
を有し、
前記第１のデータ群は、前記２次元画像データの第（２Ｎ＋１）（Ｎは０以上の整数）行におけるデータと、第（２Ｎ＋３）行におけるデータとを有し、
前記第２のデータ群は、前記第（２Ｎ＋２）行におけるデータと、前記第（２Ｎ＋４）行におけるデータとを有する、メモリアクセス方法。
【請求項５】
前記複数のバンク（７０〜７３）は前記第１のバンクと前記第２のバンクと第３のバンクと第４のバンクとを有する４つのバンクであって、前記所定数のクロックサイクル内において、
（ｃ）前記ステップ（ｂ）の実行後に前記複数のデータ群に含まれる第３のデータ群（Ｄ２3）を、前記第３のバンクから読み出すステップと、
（ｄ）前記ステップ（ｃ）の実行後に前記第３のデータ群に連続する第４のデータ群（Ｄ２4）を、前記第４のバンクから読み出すステップと、
を更に有し、
前記第１ないし前記第４のデータ群を更新して前記ステップ（ａ）〜（ｄ）を繰り返して、前記２次元画像において行方向にデータを読み出した後に列方向にずらして再び行方向にデータを読み出し、
前記２次元画像データの、前記第（２Ｎ＋１）行における所定数のデータは前記第１のデータ群に含まれ、前記第（２Ｎ＋１）行において前記第１のデータ群と隣り合う所定数のデータは前記第３のデータ群に含まれ、前記（２Ｎ＋２）行における所定数のデータは前記第２のデータ群に含まれ、前記第（２Ｎ＋２）行において前記第２のデータ群と隣り合う所定数のデータは前記第４のデータ群に含まれる、請求項４に記載のメモリアクセス方法。
【請求項６】
前記２次元画像データ内の着目ブロック（ＢＬ０）の動きベクトルを抽出するために、前記着目ブロックの移動先と予想されるブロック（ＢＬ１）内に含まれる複数のデータ群と、前記ブロックに隣接して規定される複数のブロック（ＢＬ１ａ〜ＢＬ１ｈ）内に含まれる複数のデータ群とが、前記メモリから連続的に読み出される、請求項１ないし５のいずれかに記載のメモリアクセス方法。
【請求項７】
前記第１のバンクにアクセスしている途中に、前記第１のバンクに対する他のアクセス要求が発生した場合において、前記第２のバンクに対するアクセス要求も発生しているときには、前記他のアクセス要求に応じた前記第１のバンクへのアクセスよりも、前記第２のバンクへのアクセスが優先される、請求項１ないし６の何れか一つに記載のメモリアクセス方法。
【請求項８】
いずれも異なるバンクに対応するｎ個（ｎ：前記複数のバンクの個数）のデータ群が行方向に連続することによって構成されるデータ集合が、前記メモリ内に格納された前記２次元画像データの各行内において繰り返し配置されるように、前記２次元画像データを構成するデータ群が前記メモリに書き込まれる、請求項１ないし７の何れか一つに記載のメモリアクセス方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリアクセス方法に関し、特に、トランスコーダ処理装置に用いられるメモリへのアクセス方法に関する。
【背景技術】
【０００２】
画像符号化データを異なるビットレートに再符号化する従来のトランスコーダ処理装置が、下記特許文献１に開示されている。図２０は、下記特許文献１に示された従来のトランスコーダ処理装置の構成を示すブロック図である。図２０を参照して、復号器２０１は、画像符号化データを復号し、その小ブロック単位の第１の動きベクトルを抽出する機能手段を備える。変換処理部２０３は、第１の動きベクトルを縮小して第３の動きベクトルを算出する機能手段と、再符号化対象の小ブロックに含まれる第３の動きベクトルと周囲の第３の動きベクトルとのノルムの和が最小のものを第２の動きベクトルとする機能手段と、その最小値を評価値とする機能手段と、該評価値が表す動きベクトルの精度が高いほど狭くした再探索範囲を小ブロック毎に決定し、評価値又は再探索範囲に応じて優先度を決定する機能手段とを備える。再探索処理部２０４は、該優先度の順に該優先度に対応した再探索範囲で再探索し再符号化時の動きベクトルを求める。【０００３】
【特許文献１】特開２００２−３４４９７１号公報（要約書）
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記特許文献１に示された従来のトランスコーダ処理装置によると、復号器２０１から出力された復号画像データを格納しておくためのメモリとして、例えばＤＤＲ（Double Data Rate）メモリのような、同一バンクへ連続してアクセスする際には前後のアクセス間に所定数のクロックサイクル以上の間隔を空けることが要求されるメモリが採用された場合の対策がとられていないという問題がある。【０００５】
本発明はかかる問題を解決するために成されたものであり、同一バンクへ連続してアクセスする際には前後のアクセス間に所定数のクロックサイクル以上の間隔を空けることが要求されるメモリを対象として、アクセス間の空き時間を解消してパフォーマンスを向上し得る、メモリアクセス方法を得ることを目的とする。
【課題を解決するための手段】
【０００６】
第１の発明に係るメモリアクセス方法は、第１及び第２のバンクを含む複数のバンクを有し、同一バンクへ連続してアクセスする際には前後のアクセス間に所定数のクロックサイクル以上の間隔を空けることが要求されるメモリを対象とした、メモリアクセス方法であって、前記メモリへ書き込むべき２次元画像データは、一度のバースト転送によって転送可能なデータ量ごとに複数のデータ群に分割され、前記メモリへの前記２次元画像データの書き込み動作は、同一バンクへの書き込みが連続しないよう、前記所定数のクロックサイクル内において、（ａ）前記複数のデータ群に含まれる第１のデータ群を、前記第１のバンクに書き込むステップと、（ｂ）前記ステップ（ａ）の実行後に前記第１のデータ群に連続する第２のデータ群を、前記第２のバンクに書き込むステップとを有し、前記第１のデータ群は、前記２次元画像データの第（２Ｎ＋１）（Ｎは０以上の整数）行におけるデータと、第（２Ｎ＋３）行におけるデータとを有し、前記第２のデータ群は、前記第（２Ｎ＋２）行におけるデータと、前記第（２Ｎ＋４）行におけるデータとを有することを特徴とする。
【０００７】
第２の発明に係るメモリアクセス方法は、第１の発明に係るメモリアクセス方法において特に、前記第１及び第２のデータ群はそれぞれ、前記メモリ内に格納された前記２次元画像データ内においては複数行に分割されて配置され、前記第１のデータ群は奇数行に配置され、前記第２のデータ群は偶数行に配置されることを特徴とする。【０００８】
第３の発明に係るメモリアクセス方法は、第１又は第２の発明に係るメモリアクセス方法であって、複数のバンク（７０〜７３）は前記第１のバンクと前記第２のバンクと第３のバンクと第４のバンクとを有する４つのバンクであって、前記所定数のクロックサイクル内において、（ｃ）前記ステップ（ｂ）の実行後に前記複数のデータ群に含まれる第３のデータ群（Ｄ２3）を、前記第３のバンクに書き込むステップと、（ｄ）前記ステップ（ｃ）の実行後に前記第３のデータ群に連続する第４のデータ群（Ｄ２4）を、前記第４のバンクに書き込むステップと、を更に有し、前記第１ないし前記第４のデータ群を更新して前記ステップ（ａ）〜（ｄ）を繰り返して、前記２次元画像において行方向にデータを書き込んだ後に列方向にずらして再び行方向にデータを書き込み、前記２次元画像データの、前記第（２Ｎ＋１）行における所定数のデータは前記第１のデータ群に含まれ、前記第（２Ｎ＋１）行において前記第１のデータ群と隣り合う所定数のデータは前記第３のデータ群に含まれ、前記（２Ｎ＋２）行における所定数のデータは前記第２のデータ群に含まれ、前記第（２Ｎ＋２）行において前記第２のデータ群と隣り合う所定数のデータは前記第４のデータ群に含まれることを特徴とする。
第４の発明に係るメモリアクセス方法は、第１及び第２のバンクを含む複数のバンクを有し、同一バンクへ連続してアクセスする際には前後のアクセス間に所定数のクロックサイクル以上の間隔を空けることが要求されるメモリを対象とした、メモリアクセス方法であって、前記メモリ内に格納されている２次元画像データは、一度のバースト転送によって転送可能なデータ量ごとに複数のデータ群に分割されて前記メモリから読み出され、前記メモリからの前記２次元画像データの読み出し動作は、同一バンクからの読み出しが連続しないよう、前記所定数のクロックサイクル内において、（ａ）前記複数のデータ群に含まれる第１のデータ群を、前記第１のバンクから読み出すステップと、（ｂ）前記ステップ（ａ）の実行後に前記第１のデータ群に連続する第２のデータ群を、前記第２のバンクから読み出すステップとを有し、前記第１のデータ群は、前記２次元画像データの第（２Ｎ＋１）（Ｎは０以上の整数）行におけるデータと、第（２Ｎ＋３）行におけるデータとを有し、前記第２のデータ群は、前記第（２Ｎ＋２）行におけるデータと、前記第（２Ｎ＋４）行におけるデータとを有することを特徴とする。
第５の発明に係るメモリアクセス方法は、第４の発明に係るメモリアクセス方法であって、複数のバンク（７０〜７３）は前記第１のバンクと前記第２のバンクと第３のバンクと第４のバンクとを有する４つのバンクであって、前記所定数のクロックサイクル内において、（ｃ）前記ステップ（ｂ）の実行後に前記複数のデータ群に含まれる第３のデータ群（Ｄ２3）を、前記第３のバンクから読み出すステップと、（ｄ）前記ステップ（ｃ）の実行後に前記第３のデータ群に連続する第４のデータ群（Ｄ２4）を、前記第４のバンクから読み出すステップと、を更に有し、前記第１ないし前記第４のデータ群を更新して前記ステップ（ａ）〜（ｄ）を繰り返して、前記２次元画像において行方向にデータを読み出した後に列方向にずらして再び行方向にデータを読み出し、前記２次元画像データの、前記第（２Ｎ＋１）行における所定数のデータは前記第１のデータ群に含まれ、前記第（２Ｎ＋１）行において前記第１のデータ群と隣り合う所定数のデータは前記第３のデータ群に含まれ、前記（２Ｎ＋２）行における所定数のデータは前記第２のデータ群に含まれ、前記第（２Ｎ＋２）行において前記第２のデータ群と隣り合う所定数のデータは前記第４のデータ群に含まれることを特徴とする。
【０００９】
第６の発明に係るメモリアクセス方法は、第１ないし第５のいずれかの発明に係るメモリアクセス方法において特に、前記２次元画像データ内の着目ブロックの動きベクトルを抽出するために、前記着目ブロックの移動先と予想される参照ブロック内に含まれる複数のデータ群と、前記参照ブロックに隣接して規定される複数のブロック内に含まれる複数のデータ群とが、前記メモリから連続的に読み出されることを特徴とする。
【００１０】
第７の発明に係るメモリアクセス方法は、第１ないし第６のいずれかの発明に係るメモリアクセス方法において特に、前記第１のバンクにアクセスしている途中に、前記第１のバンクに対する他のアクセス要求が発生した場合において、前記第２のバンクに対するアクセス要求も発生しているときには、前記他のアクセス要求に応じた前記第１のバンクへのアクセスよりも、前記第２のバンクへのアクセスが優先されることを特徴とする。
【００１１】
第８の発明に係るメモリアクセス方法は、第１ないし第７のいずれかの発明に係るメモリアクセス方法において特に、いずれも異なるバンクに対応するｎ個（ｎ：前記複数のバンクの個数）のデータ群が行方向に連続することによって構成されるデータ集合が、前記メモリ内に格納された前記２次元画像データの各行内において繰り返し配置されるように、前記２次元画像データを構成するデータ群が前記メモリに書き込まれることを特徴とする。
【発明の効果】
【００１２】
第１，３の発明に係るメモリアクセス方法によれば、メモリへ２次元画像データを書き込む際に第１及び第２のバンクを切り換えることにより、第１及び第２のデータ群を連続して書き込むことができる。その結果、前後のアクセス間に生じる空き時間を回避又は低減でき、パフォーマンスの向上を図ることができる。
【００１３】
第２の発明に係るメモリアクセス方法によれば、メモリから第１のデータ群を読み出すことによって、２次元画像データのうちの奇数行のデータのみを読み出すことができ、メモリから第２のデータ群を読み出すことによって、２次元画像データのうちの偶数行のデータのみを読み出すことができる。その結果、インタレース方式の画像を容易に読み出すことが可能となる。【００１４】
第４の発明に係るメモリアクセス方法によれば、メモリから２次元画像データを読み出す際に第１及び第２のバンクを切り換えることにより、第１及び第２のデータ群を連続して読み出すことができる。その結果、前後のアクセス間に生じる空き時間を回避又は低減でき、パフォーマンスの向上を図ることができる。
【００１５】
第５，６の発明に係るメモリアクセス方法によれば、バースト転送によって高速なデータ転送が可能なメモリを使用した場合に、多数のブロック内に含まれる多数のデータ群を１回の動作で連続的に転送することにより、少数のデータ群を複数回に分けて転送する方法と比較すると、データ転送の効率を高めることができる。
【００１６】
第７の発明に係るメモリアクセス方法によれば、第１のバンクに対する前後のアクセス間に生じる空き時間を有効に利用することができ、他のアクセス要求に応じた第１のバンクへのアクセスが完了した後に第２のバンクへアクセスする場合と比較すると、全体として処理時間の短縮化を図ることができる。
【００１７】
第８の発明に係るメモリアクセス方法によれば、メモリ内に格納されている２次元画像データを行方向へのスキャンによって読み出す場合、いずれも異なるバンクに対応するｎ個のデータ群が順番に読み出される。その結果、行方向へのスキャンを行う場合にも、前後のアクセス間に生じる空き時間を回避又は低減でき、パフォーマンスの向上を図ることができる。
【００１８】
この発明の目的、特徴、局面、および利点は、以下の詳細な説明と添付図面とによって、より明白となる。
【図面の簡単な説明】
【００１９】
【図１】本発明の実施の形態に係るトランスコーダ処理装置の構成を示すブロック図である。
【図２】動き探索部における第１の動きベクトル抽出処理を説明するための模式図である。
【図３】動き探索部における第１の動きベクトル抽出処理を説明するための模式図である。
【図４】動き探索部における第１の動きベクトル抽出処理を説明するための模式図である。
【図５】動き探索部における第２の動きベクトル抽出処理を説明するための模式図である。
【図６】ＤＤＲ２の読み出し特性を説明するためのタイミングチャートである。
【図７】ＤＤＲ２の書き込み特性を説明するためのタイミングチャートである。
【図８】メモリへの復号データの書き込みシーケンスを説明するためのタイミングチャートである。
【図９】メモリへの復号データのマッピング方法を順に説明するための図である。
【図１０】メモリへの復号データのマッピング方法を順に説明するための図である。
【図１１】メモリへの復号データのマッピング方法を順に説明するための図である。
【図１２】メモリへの復号データのマッピング方法を順に説明するための図である。
【図１３】メモリへの復号データのマッピング方法を順に説明するための図である。
【図１４】メモリへの復号データのマッピング方法を順に説明するための図である。
【図１５】メモリへの復号データのマッピング方法を順に説明するための図である。
【図１６】メモリ内に格納されている２次元画像データを示す図である。
【図１７】メモリからのデータの読み出しシーケンスを説明するためのタイミングチャートである。
【図１８】メモリ内に格納されている２次元画像データの配置の変形例を示す図である。
【図１９】前後のアクセス間に空き時間が発生した場合の処理を説明するためのタイミングチャートである。
【図２０】従来のトランスコーダ処理装置の構成を示すブロック図である。
【発明を実施するための最良の形態】
【００２０】
以下、本発明の実施の形態について、図面を用いて詳細に説明する。なお、異なる図面において同一の符号を付した要素は、同一又は相当する要素を示すものとする。【００２１】
図１は、本発明の実施の形態に係るトランスコーダ処理装置の構成を示すブロック図である。本実施の形態に係るトランスコーダ処理装置では、一例として、ＭＰＥＧ２フォーマットで符号化された符号化データが、Ｈ．２６４フォーマットの符号化データに再符号化されるものとする。【００２２】
トランスコーダ処理装置は、メモリ１、復号器２、動き探索部３、及び符号器４を備えている。メモリ１は、複数のバンクを有し、同一バンクへ連続してアクセスする際には前後のアクセス間に所定数のクロックサイクル（以下「サイクル」と略す）以上の間隔を空けることが要求されるメモリである。本実施の形態に係るトランスコーダ処理装置では、メモリ１として、バス幅が３２ビットであり、バースト長が８であり、４個のバンク（第０バンク７０、第１バンク７１、第２バンク７２、及び第３バンク７３）を有するＤＤＲ２を想定している。バス幅が３２ビットで、バースト長が８であるため、一度のバースト転送で２５６（＝３２×８）ビットのデータを転送することが可能である。また、メモリ１の記憶領域の一部は、バッファ領域５，６として割り当てられている。【００２３】
ＭＰＥＧ２フォーマットで符号化された符号化データＤ１のビットストリームは、バッファ領域５に書き込まれる。本実施の形態に係るトランスコーダ処理装置では、符号化データＤ１は、一例として、８ビットのＹＵＶ４２０形式の画像データであるものとする。８ビットのＹＵＶ４２０形式の場合は、１ピクセルあたりのデータ量は１２ビットとなる。なお、本実施の形態に係るトランスコーダ処理装置は、８ビットのＹＵＶ４２０形式に限らず、他の任意の形式の画像データを処理することが可能である。【００２４】
復号器２は、バッファ領域５から読み出した符号化データＤ１のビットストリームを復号して、復号データＤ２を出力する。復号データＤ２はメモリ１に書き込まれ、これにより、メモリ１内に２次元画像データが格納される。メモリ１内に格納された２次元画像データ、及びメモリ１への復号データＤ２の書き込みシーケンスについては、後に詳述する。また、復号器２は、符号化データＤ１内に含まれている動きベクトルに関する情報を抽出して、データＤ３として動き探索部３に入力する。【００２５】
動き探索部３は、データＤ３に基づき、メモリ１内に格納されている２次元画像データの中から、参照ブロックに関するデータＤ４を読み出す。そして、ブロックマッチング法によって着目ブロックの動きベクトルを求め、データＤ５として符号器４に入力する。動き探索部３における処理については、後に詳述する。【００２６】
符号器４は、データＤ５に基づいて、Ｈ．２６４フォーマットで再符号化された符号化データＤ６を作成し、符号化データＤ６のビットストリームをバッファ領域６に書き込む。符号化データＤ６のビットストリームは、バッファ領域６から読み出される。【００２７】
なお、符号化データＤ１のビットストリームは、バッファ領域５を介さずに復号器２に直接入力されてもよいし、符号化データＤ６のビットストリームは、バッファ領域６を介さずに直接出力されてもよい。【００２８】
＜動き探索部３における第１の処理＞
図２〜４は、動き探索部３における第１の動きベクトル抽出処理を説明するための模式図である。図２を参照して、動き探索部３は、第ｎフレームの２次元画像データ内における着目ブロックＢＬ０（縦横各１６ピクセル）の位置と、復号器２から入力された動きベクトルＶ０に関するデータＤ３とに基づいて、第ｎ−１フレームの２次元画像データ内において着目ブロックＢＬ０の移動先と予想されるブロックＢＬ１（縦横各１６ピクセル）を割り出す。次に、動き探索部３は、ブロックＢＬ１を中心として、ブロックＢＬ１よりも縦方向及び横方向にそれぞれ±１ピクセル大きいサイズの参照ブロックＢＬ２（縦横各１８ピクセル）を規定する。そして、メモリ１内に格納されている第ｎ−１フレームの２次元画像データの中から、参照ブロックＢＬ２に対応する部分のデータＤ４を読み出す。メモリ１からのデータＤ４の読み出しシーケンスについては、後に詳述する。【００２９】
図３を参照して、次に、動き探索部３は、参照ブロックＢＬ２内で着目ブロックＢＬ０を順次移動させながら、各位置において類似度を判定し、参照ブロックＢＬ２内で着目ブロックＢＬ０に最も類似している箇所を求める。類似度の判定手法としては、周知のブロックマッチング法を用い、着目ブロックＢＬ０内の各ピクセルと参照ブロックＢＬ２内の各ピクセルとの画素値の差分を求め、差分の絶対値の総和によって類似度を判定する。ここでは、図３に示した着目ブロックＢＬ０の箇所（参照ブロックＢＬ２の左上隅）で、類似度が最も高かったものとする。【００３０】
次に、動き探索部３は、参照ブロックＢＬ２の左上隅の着目ブロックＢＬ０を中心として、その着目ブロックＢＬ０よりも縦方向及び横方向にそれぞれ±１ピクセル大きいサイズの参照ブロックＢＬ３（縦横各１８ピクセル）を規定する。そして、メモリ１内に格納されている第ｎ−１フレームの２次元画像データの中から、参照ブロックＢＬ３に対応する部分のデータＤ４を読み出す。そして、上記と同様に、ブロックマッチング法によって、参照ブロックＢＬ３内で着目ブロックＢＬ０に最も類似している箇所を求める。図４には、参照ブロックＢＬ３内で着目ブロックＢＬ０に最も類似している箇所を、ブロックＢＬ４（縦横各１６ピクセル）として抜き出して示している。【００３１】
図４を参照して、次に、動き探索部３は、ブロックＢＬ４を４個の小ブロックＢＬ４ａ〜４ｄ（いずれも縦横各８ピクセル）に区切り、その後、小ブロックＢＬ４ａを中心として、小ブロックＢＬ４ａよりも縦方向及び横方向にそれぞれ±１ピクセル大きいサイズの参照ブロックＢＬ５（縦横各１０ピクセル）を規定する。そして、メモリ１内に格納されている第ｎ−１フレームの２次元画像データの中から、参照ブロックＢＬ５に対応する部分のデータＤ４を読み出す。そして、上記と同様にブロックマッチング法によって類似判定を行うことにより、小ブロックＢＬ４ａに関する最適動きベクトルを求める。小ブロックＢＬ４ｂ〜ＢＬ４ｄについても同様の処理を行い、小ブロックＢＬ４ｂ〜ＢＬ４ｄに関する最適動きベクトルをそれぞれ求める。【００３２】
＜動き探索部３における第２の処理＞
図５は、動き探索部３における第２の動きベクトル抽出処理を説明するための模式図である。まず、動き探索部３は、第ｎフレームの２次元画像データ内における着目ブロックＢＬ０の位置と、復号器２から入力された動きベクトルＶ０に関するデータＤ３とに基づいて、第ｎ−１フレームの２次元画像データ内において着目ブロックＢＬ０の移動先と予想されるブロックＢＬ１を割り出す。次に、動き探索部３は、上下左右方向及び斜め方向でブロックＢＬ１に隣接するブロックＢＬ１ａ〜ＢＬ１ｈ（いずれも縦横各１６ピクセル）を規定する。これにより、ブロックＢＬ１を中心とした、縦横各４８ピクセルの領域ＲＡが規定される。但し、領域ＲＡのサイズは縦横各４８ピクセルに限らず、ブロックＢＬ１ａ〜ＢＬ１ｈのサイズを変更することにより、任意のサイズに設定することが可能である。【００３３】
次に、動き探索部３は、メモリ１内に格納されている第ｎ−１フレームの２次元画像データの中から、領域ＲＡに対応する部分のデータＤ４を連続的に読み出す。そして、領域ＲＡ内で着目ブロックＢＬ０を順次移動させながら、各位置においてブロックマッチング法によって類似度を判定することにより、領域ＲＡ内で着目ブロックＢＬ０に最も類似している箇所を探索する。次に、図４に示した処理と同様に、領域ＲＡ内で着目ブロックＢＬ０に最も類似しているブロックを４個の小ブロックに区切り、各小ブロックに関する最適動きベクトルをそれぞれ求める。【００３４】
＜ＤＤＲ２の読み出し特性及び書き込み特性＞
以下、図１に示したメモリ１として使用されるＤＤＲ２の読み出し特性及び書き込み特性について説明する。図６は、ＤＤＲ２の読み出し特性を説明するためのタイミングチャートである。図６では、この順に読み出すべきデータＤ４1，Ｄ４2が、いずれも第０バンク７０に書き込まれている場合を想定している。ＤＤＲ２では、例えば１２サイクルで同一バンクからのデータの読み出しが可能である。つまり、図６に示した例では、データＤ４1の読み出しがクロックＣ０の立ち上がりから開始されているため、続くデータＤ４2の読み出しは、クロックＣ１２の立ち上がりから開始されることとなる。その結果、バースト長が８であることを考慮すると、データＤ４1の読み出しが終了してからデータＤ４2の読み出しが開始されるまでの間に、例えば８サイクルの空き時間が発生してしまう。【００３５】
図７は、ＤＤＲ２の書き込み特性を説明するためのタイミングチャートである。図７では、この順に書き込むべきデータＤ２1，Ｄ２2を、いずれも第０バンク７０に書き込む場合を想定している。ＤＤＲ２では、例えば１５サイクルで同一バンクへのデータの書き込みが可能である。つまり、図７に示した例では、データＤ２1の書き込みがクロックＣ０の立ち上がりから開始されているため、続くデータＤ２2の書き込みは、クロックＣ１５の立ち上がりから開始されることとなる。その結果、バースト長が８であることを考慮すると、データＤ２1の書き込みが終了してからデータＤ２2の書き込みが開始されるまでの間に、例えば１１サイクルの空き時間が発生してしまう。【００３６】
また、図６，７には示していないが、ＤＤＲ２では、同一バンクに対する読み出しアクセス及び書き込みアクセスをこの順に連続させる場合には、例えば７サイクルの空き時間が発生してしまい、同一バンクに対する書き込みアクセス及び読み出しアクセスをこの順に連続させる場合には、例えば１２サイクルの空き時間が発生してしまう。【００３７】
そこで、本実施の形態に係るトランスコーダ処理装置では、前後のアクセス間に空き時間が発生しないように、メモリ１への復号データＤ２の書き込みシーケンス、及びメモリ１からのデータＤ４の読み出しシーケンスを、以下のように規定する。【００３８】
＜メモリ１への書き込みシーケンス＞
まず、復号器２からメモリ１への復号データＤ２の書き込みシーケンスについて説明する。図８は、メモリ１への復号データＤ２の書き込みシーケンスを説明するためのタイミングチャートである。図１，８を参照して、本実施の形態に係るトランスコーダ処理装置では、この順に書き込むべきデータＤ２1，Ｄ２2，Ｄ２3，Ｄ２4，Ｄ２5，・・・が、それぞれ第０バンク７０、第１バンク７１、第２バンク７２、第３バンク７３、第０バンク７０、・・・に書き込まれる。異なるバンクへの連続アクセスであるため、データＤ２1とデータＤ２2との間、データＤ２2とデータＤ２3との間、データＤ２3とデータＤ２4との間、及びデータＤ２4とデータＤ２5との間には、いずれも空き時間は発生しない。また、データＤ２1，Ｄ２5はいずれも第０バンク７０へ書き込まれるが、データＤ２1〜Ｄ２4のバースト長がいずれも８であるため、データＤ２1の書き込みが開始されてからデータＤ２5の書き込みが開始されるまでの間には、１５サイクル以上の１６サイクルの間隔が空いている。従って、データＤ２1の書き込みが終了してからデータＤ２5の書き込みが開始されるまでの間にも、空き時間は発生しない。【００３９】
このように本実施の形態に係るトランスコーダ処理装置によれば、メモリ１としてＤＤＲ２を用いた場合であっても、復号器２からメモリ１へ復号データＤ２を書き込む際に生じる空き時間を回避又は低減できるため、パフォーマンスの向上を図ることができる。【００４０】
図９〜１５は、メモリ１への復号データＤ２のマッピング方法を順に説明するための図である。ここでは図面の簡略化のため、２行×３列の合計６個のマクロブロックＭＢ１１〜ＭＢ１３，ＭＢ２１〜ＭＢ２３（いずれも縦横各１６ピクセル）を代表的に示している。なお、一度のバースト転送で２５６ビットのデータを転送可能であり、１ピクセルあたりのデータ量は１２ビットであるため、一度のバースト転送で最大２１ピクセル分のデータを転送可能である。しかし、偶数個のピクセルのほうが扱いが容易であるため、本実施の形態に係るトランスコーダ処理装置では、一度のバースト転送で２０ピクセル分のデータが転送されるものとする。【００４１】
図９を参照して、まず、第０バンク７０に書き込まれる２０ピクセル分のデータＤ２1が、１０ピクセル単位で２つに分割されて、マクロブロックＭＢ１１の第１行第１〜１０列と第３行第１〜１０列とに、それぞれ配置される。なお、各ピクセル内に付した数字は、そのピクセルのデータが書き込まれるバンクの番号を意味する。【００４２】
図１０を参照して、次に、第１バンク７１に書き込まれる２０ピクセル分のデータＤ２2が、同様に１０ピクセル単位で２つに分割されて、マクロブロックＭＢ１１の第２行第１〜１０列と第４行第１〜１０列とに配置される。【００４３】
バンクを切り換えながら下方向に向かって書き込みが進行し、データＤ２1，Ｄ２2と同様の処理がデータＤ２3〜Ｄ２8についても繰り返されることにより、図１１に示すように、マクロブロックＭＢ１１の第１〜１６行第１〜１０列までの配置が完了する。【００４４】
図１２を参照して、第２バンク７２に書き込まれる２０ピクセル分のデータＤ２9が、同様に１０ピクセル単位で２つに分割されて、マクロブロックＭＢ１１の第１行第１１〜１６列と第３行第１１〜１６列とに、それぞれ配置される。なお、マクロブロックＭＢ１２にマスク処理を施すことによって、×印を付した部分のデータＤ２9がマクロブロックＭＢ１２に書き込まれることが防止される。【００４５】
データＤ２9と同様の処理をデータＤ２10〜Ｄ２16についても繰り返すことにより、図１３に示すように、マクロブロックＭＢ１１の第１〜１６行第１１〜１６列までの配置が完了する。つまり、マクロブロックＭＢ１１へのデータの書き込みが完了する。【００４６】
図１４を参照して、次に、データＤ２9〜Ｄ２16と同様の処理をデータＤ２17〜Ｄ２24についても繰り返すことにより、図１４に示すように、マクロブロックＭＢ１２の第１〜１６行第１〜４列までの配置が完了する。なお、マクロブロックＭＢ１１にマスク処理を施すことによって、×印を付した部分のデータＤ２17〜Ｄ２24がマクロブロックＭＢ１１に書き込まれることが防止される。【００４７】
その後は、上記と同様の処理が繰り返されることにより、マクロブロックＭＢ１２，ＭＢ１３，ＭＢ２１，ＭＢ２２，ＭＢ２３の順で書き込みが進行し、図１５に示した２次元画像データが得られる。【００４８】
＜メモリ１からの読み出しシーケンス＞
次に、動き探索部３によるメモリ１からのデータＤ４の読み出しシーケンスについて説明する。図１６は、メモリ１内に格納されている２次元画像データを示す図であり、図１５に示した２次元画像データに対応する。以下、図１６中に一点鎖線で示した箇所に参照ブロックＢＬ２が規定されたものと仮定する。また、以下では、動き探索部３が第１の動きベクトル抽出処理（図２〜４参照）を行う場合の読み出し動作について説明するが、第２の動きベクトル抽出処理（図５参照）を行う場合であっても、基本的な動作の内容は同様である。【００４９】
まず、メモリブロックＭＢ１２の第９行第５〜１４列及び第１１行第５〜１４列に配置されている２０ピクセル分のデータＤ４1が、第０バンク７０から読み出される。次に、メモリブロックＭＢ１２の第１０行第５〜１４列及び第１２行第５〜１４列に配置されている２０ピクセル分のデータＤ４2が、第１バンク７１から読み出される。同様に、バンクを切り換えながら下方向に向かって読み出しが進行することにより、データＤ４3，Ｄ４4，Ｄ４5，・・・，Ｄ４10の順に読み出しが行われる。その後、列を切り換えて、データＤ４11〜Ｄ４20がこの順に読み出され、さらに列を切り換えて、データＤ４21〜Ｄ４30がこの順に読み出される。【００５０】
図１７は、メモリ１からのデータＤ４の読み出しシーケンスを説明するためのタイミングチャートである。本実施の形態に係るトランスコーダ処理装置では、この順に読み出されるべきデータＤ４1，Ｄ４2，Ｄ４3，Ｄ４4，Ｄ４5，・・・が、それぞれ第０バンク７０、第１バンク７１、第２バンク７２、第３バンク７３、第０バンク７０、・・・に書き込まれている。従って、読み出しの際には異なるバンクへの連続アクセスとなるため、データＤ４1とデータＤ４2との間、データＤ４2とデータＤ４3との間、データＤ４3とデータＤ４4との間、及びデータＤ４4とデータＤ４5との間には、いずれも空き時間は発生しない。また、データＤ４1，Ｄ４5はいずれも第０バンク７０から読み出されるが、データＤ４1〜Ｄ４4のバースト長がいずれも８であるため、データＤ４1の読み出しが開始されてからデータＤ４5の読み出しが開始されるまでの間には、１２サイクル以上の１６サイクルの間隔が空いている。従って、データＤ４1の読み出しが終了してからデータＤ４5の読み出しが開始されるまでの間にも、空き時間は発生しない。【００５１】
このように本実施の形態に係るトランスコーダ処理装置によれば、メモリ１としてＤＤＲ２を用いた場合であっても、動き探索部３がメモリ１からデータＤ４を読み出す際に生じる空き時間を回避又は低減できるため、パフォーマンスの向上を図ることができる。【００５２】
なお、図１６を参照して、インタレース方式の参照ブロックＢＬ２が必要な場合には、データＤ４1，Ｄ４3，Ｄ４5，・・・，Ｄ４29の順に読み出しを行えばよい。例えばデータＤ４1は、１０ピクセル単位で２つに分割され、１０ピクセル分のデータが２次元画像データの奇数行に配置されている。従って、データＤ４1を読み出すことによって奇数２行分のデータが自動的に読み出されるため、インタレース方式の参照ブロックＢＬ２を容易に得ることができる。【００５３】
また、データＤ４1〜Ｄ４30のうち図１６において砂地のハッチングを付した部分は、参照ブロックＢＬ２の外に配置されているため、本来ならば読み出しが不要なデータである。しかし、本実施の形態に係るトランスコーダ処理装置は、２０ピクセル分のデータ群を一単位としたバースト転送を想定しているため、これらの不要なデータもメモリ１から読み出されて動き探索部３に転送される。【００５４】
参照ブロックＢＬ２のデータを読み出す場合と同様に、図３に示した参照ブロックＢＬ３のデータをメモリ１から読み出す場合にも、動き探索部３への不要なデータの転送が行われる。従って、図２〜４に示した方法によると、メモリ１から動き探索部３へ転送されるデータの全転送量のうち、不要なデータの転送量が占める割合が大きくなる。【００５５】
一方、図５に示した方法によると、互いに隣接するブロックＢＬ１，ＢＬ１ａ〜ＢＬ１ｈ同士の境界では不要なデータは発生せず、領域ＲＡの外周部分でしか不要なデータは発生しない。そのため、メモリ１から動き探索部３へ転送されるデータの全転送量のうち、不要なデータの転送量が占める割合は、図２〜４に示した方法よりも少なくなる。【００５６】
また、ＤＤＲ２ではバースト転送によって高速なデータ転送が可能であるため、少量のデータを複数回に分けて転送する図２〜４に示した方法よりも、多量のデータを１回で転送する図５に示した方法のほうがデータ転送の効率が高い。【００５７】
＜２次元画像データの配置の変形例＞
図１８は、メモリ１内に格納されている２次元画像データの配置の変形例を示す図である。図１５に示した例では、２次元画像データ内の全領域において、奇数行が第０バンク７０及び第２バンク７２に対応し、偶数行が第１バンク７１及び第３バンク７３に対応していた。これに対し、図１８に示した２次元画像データでは、全列中の半分の列において、行の奇偶とバンク番号との対応関係が、図１５に示した２次元画像データとは逆になっている。図１８に示した例によると、メモリブロックＭＢ１２，ＭＢ２２の第５〜１６列、及びメモリブロックＭＢ１３，ＭＢ２３の第１〜８列においては、図１５に示した例とは逆に、奇数行が第１バンク７１及び第３バンク７３に対応し、偶数行が第０バンク７０及び第２バンク７２に対応している。【００５８】
その結果、図１８に示した２次元画像データの例えば第１行を参照すると、左端のピクセルを含む最初の１０列分が第０バンク７０に対応し、次の１０列分が第２バンク７２に対応し、さらに次の１０列分が第１バンク７１に対応し、さらに次の１０列分が第３バンク７３に対応している。つまり、１行内で連続する４０列分のデータ集合の中に、第０バンク７０から第３バンク７３までの全てのバンクに対応するデータが含まれている。そして、実際にはマクロブロックの個数は多数であるため、この１行×４０列分のデータ集合（つまり、全てのバンクに対応するデータを含むデータ集合）が、２次元画像データの第１行内において繰り返し配置されることになる。以上では２次元画像データの第１行を例にとり説明したが、第２行以降の全ての行についても同様である。【００５９】
図１８に示した２次元画像データをラスタスキャンによって読み出す場合、例えば２次元画像データの第１行を左端から右方向に走査する場合には、第０バンク７０、第２バンク７２、第１バンク７１、第３バンク７３、・・・の順にアクセスされる。つまり、４個のバンクが順番にアクセスされて読み出しが行われる。そのため、図１７に示した例と同様に、ラスタスキャンを行う場合にも前後のアクセス間に空き時間は発生しない。従って、図１８に示した２次元画像データは、メモリ１内に格納されている２次元画像データをラスタスキャンしてディスプレイ（図示しない）に表示する等の用途がある場合に、特に有効となる。【００６０】
＜空き時間が生じた場合の割り込み処理＞
図１９は、前後のアクセス間に空き時間が発生した場合の処理を説明するためのタイミングチャートである。ここでは、データＤ２Ｗ0の書き込みのために第０バンク７０へアクセスしている途中に、第０バンク７０からデータＤ４Ｒ0を読み出すためのアクセス要求が発生した場合を想定している。上記の通り、ＤＤＲ２では、同一バンクに対する書き込みアクセス及び読み出しアクセスをこの順に連続させる場合には、１２サイクルの空き時間が発生してしまう。つまり、図１９に示した例では、データＤ２Ｗ0の書き込みがクロックＣ０の立ち上がりから開始されているため、データＤ４Ｒ0の読み出しは、クロックＣ１６の立ち上がりから開始されることとなる。【００６１】
このような場合において、データＤ４Ｒ0を読み出すための第０バンク７０へのアクセス要求のほかに、他のバンクへのアクセス要求も発生している場合には、当該他のバンクへのアクセス要求を優先して処理する。例えば、データＤ２Ｗ1の書き込みのために第１バンク７１へのアクセス要求が発生している場合には、図１９に示したように、第０バンク７０へのデータＤ２Ｗ0の書き込みが終了した後、第１バンク７１へのデータＤ２Ｗ1の書き込みを行い、その後に、第０バンク７０からのデータＤ４Ｒ0の読み出しを行う。【００６２】
これにより、空き時間を有効に利用することができ、データＤ４Ｒ0を読み出した後にデータＤ２Ｗ1を書き込む場合と比較すると、全体として処理時間の短縮化を図ることができる。【００６３】
以上では、同一バンクに対する書き込みアクセス及び読み出しアクセスをこの順に連続させる場合の空き時間の有効利用について説明したが、同一バンクに対する複数の書き込みアクセスを連続させる場合、同一バンクに対する複数の読み出しアクセスを連続させる場合、又は、同一バンクに対する読み出しアクセス及び書き込みアクセスをこの順に連続させる場合についても、上記と同様に他のバンクへのアクセス要求を優先して処理することによって、空き時間を有効利用することが可能である。【００６４】
以下、空き時間が発生した場合に優先して実行する処理内容及び優先順位について説明する。【００６５】
本実施の形態に係るトランスコーダ処理装置は、メモリ１内に格納されている２次元画像データを読み出して、ディスプレイ（図示しない）に画像を表示する機能を有している。画像を表示するために２次元画像データを読み出す処理にはリアルタイム性が要求されるため、空き時間が発生した場合には、この処理（表示のための２次元画像データの読み出し処理）を最優先に実行する。つまり、表示のための２次元画像データの読み出し処理の優先順位を１番とする。【００６６】
動き探索部３がメモリ１から読み出す参照ブロックＢＬ２，ＢＬ３（図３参照）や領域ＲＡ（図５参照）のデータＤ４は、データ量が多い。また、動き探索部３が速やかに処理を進めるためには、メモリ１から動き探索部３へデータＤ４を素早く転送する必要がある。そこで、空き時間が発生した場合には、データＤ４の読み出し処理を、上記表示のための２次元画像データの読み出し処理に次いで優先して実行する。つまり、データＤ４の読み出し処理の優先順位を２番とする。【００６７】
図１を参照して、符号化データＤ１はＭＰＥＧ２フォーマットで符号化されたデータであるため、データ量は少ない。また、メモリ１に対する読み出しアクセスと書き込みアクセスとの切り換え回数は、なるべく抑える必要がある。そこで、空き時間が発生した場合には、バッファ領域５からの符号化データＤ１の読み出し処理を、上記データＤ４の読み出し処理に次いで優先して実行する。つまり、符号化データＤ１の読み出し処理の優先順位を３番とする。【００６８】
同様に、符号化データＤ６はＨ．２６４フォーマットで符号化されたデータであるため、データ量は少ない。また、メモリ１に対する読み出しアクセスと書き込みアクセスとの切り換え回数は、なるべく抑える必要がある。そこで、空き時間が発生した場合には、バッファ領域６からの符号化データＤ６の読み出し処理を、上記符号化データＤ１の読み出し処理に次いで優先して実行する。つまり、符号化データＤ６の読み出し処理の優先順位を４番とする。【００６９】
復号器２からメモリ１に書き込まれる復号データＤ２は、符号化データＤ１が復号されたものであるため、データ量が多い。そこで、空き時間が発生した場合には、メモリ１への復号データＤ２の書き込み処理を、上記符号化データＤ６の読み出し処理に次いで優先して実行する。つまり、復号データＤ２の書き込み処理の優先順位を５番とする。【００７０】
上記の通り、符号化データＤ１はＭＰＥＧ２フォーマットで符号化されたデータであるため、データ量は少ない。そこで、空き時間が発生した場合には、バッファ領域５への符号化データＤ１の書き込み処理を、上記データＤ２の書き込み処理に次いで優先して実行する。つまり、符号化データＤ１の書き込み処理の優先順位を６番とする。【００７１】
同様に、符号化データＤ６はＨ．２６４フォーマットで符号化されたデータであるため、データ量は少ない。そこで、空き時間が発生した場合には、バッファ領域６への符号化データＤ６の書き込み処理を、上記符号化データＤ１の書き込み処理に次いで優先して実行する。つまり、符号化データＤ６の書き込み処理の優先順位を７番とする。【００７２】
なお、以上で説明した各処理の優先順位は一例であり、任意に変更することが可能である。【００７３】
この発明は詳細に説明されたが、上記した説明は、すべての局面において、例示であって、この発明がそれに限定されるものではない。例示されていない無数の変形例が、この発明の範囲から外れることなく想定され得るものと解される。
【図１】
0005147102.tif 000002
【図２】
0005147102.tif 000003
【図３】
0005147102.tif 000004
【図４】
0005147102.tif 000005
【図５】
0005147102.tif 000006
【図６】
0005147102.tif 000007
【図７】
0005147102.tif 000008
【図８】
0005147102.tif 000009
【図９】
0005147102.tif 000010
【図１０】
0005147102.tif 000011
【図１１】
0005147102.tif 000012
【図１２】
0005147102.tif 000013
【図１３】
0005147102.tif 000014
【図１４】
0005147102.tif 000015
【図１５】
0005147102.tif 000016
【図１６】
0005147102.tif 000017
【図１７】
0005147102.tif 000018
【図１８】
0005147102.tif 000019
【図１９】
0005147102.tif 000020
【図２０】
0005147102.tif 000021