しかしながら、上記特許文献1に開示された画像処理装置によると、動き探索部とフレームメモリとの間で大量のデータを授受する必要がある。しかも、フレームメモリは、動作速度の遅いSDRAMによって構成されている。従って、動き探索部がフレームメモリにアクセスする際に待ち時間が発生する可能性が高く、その結果、全体として動き探索の所要時間が長くなるという問題がある。
本発明はかかる問題を解決するために成されたものであり、簡易な構成によって動き探索を高速に行うことが可能な画像処理装置を得ることを目的とする。
本発明の第1の態様に係る画像処理装置は、外部メモリに格納されている第1画像を参照して動き探索を行う画像処理装置であって、前記第1画像内の所定範囲の第2画像を格納する、前記外部メモリよりも高速にアクセス可能な第1の内部メモリと、前記第2画像内の所定範囲の画像を前記第1の内部メモリから読み出し、当該画像に基づいて粗探索用の第3画像を作成する画像作成部と、前記画像作成部によって作成された前記第3画像を格納する、前記外部メモリよりも高速にアクセス可能な第2の内部メモリと、前記第2の内部メモリから前記第3画像を読み出し、当該第3画像に基づいて第1の動き探索を行う第1の探索処理部と、前記第1の探索処理部による探索結果に基づいて前記第2画像内の所定範囲の第4画像を前記第1の内部メモリから読み出し、当該第4画像に基づいて前記第1の動き探索よりも詳細な第2の動き探索を行う第2の探索処理部と、を備え、前記第2画像は輝度データ及び色差データを含み、前記第1の内部メモリの単位記憶領域には、画素空間における8列×2行分の輝度データに相当する単位輝度データ、又は画素空間における8列×4行分の色差データに相当する単位色差データが格納され、前記第1の内部メモリは複数のメモリバンクを有し、列方向に2個かつ行方向に4個並ぶ8個の単位輝度データは、異なるメモリバンクに格納され、列方向に1個かつ行方向に8個並ぶ8個の単位輝度データは、異なるメモリバンクに格納されることを特徴とするものである。
第1の態様に係る画像処理装置によれば、画像作成部は、第1の内部メモリから読み出した画像に基づいて第3画像を作成する。また、第1の探索処理部は、第2の内部メモリから読み出した第3画像に基づいて第1の動き探索を行う。また、第2の探索処理部は、第1の内部メモリから読み出した第4画像に基づいて第2の動き探索を行う。ここで、第1及び第2の内部メモリはいずれも、外部メモリよりも高速にアクセス可能なメモリである。従って、画像作成部、第1の探索処理部、及び第2の探索処理部が外部メモリから画像を読み出す場合と比較すると、読み出しの所要時間が短縮されるため、全体として動き探索を高速に行うことが可能となる。
また、第1の態様に係る画像処理装置によれば、第1の内部メモリの単位記憶領域には、画素空間における8列×2行分の輝度データに相当する単位輝度データ、又は画素空間における8列×4行分の色差データに相当する単位色差データが格納される。従って、第2の内部メモリの単位記憶領域に格納すべき8列×2行分の単位輝度データ、及び第3の内部メモリの単位記憶領域に格納すべき4列×4行分の単位輝度データを、第1の内部メモリの単位記憶領域に格納されている単位輝度データに基づいて容易に作成することが可能となる。
また、第1の態様に係る画像処理装置によれば、列方向に2個かつ行方向に4個並ぶ8個の単位輝度データは、第1の内部メモリの異なるメモリバンクに格納される。従って、これら8個の単位輝度データを、第1の内部メモリに同時に書き込むことができるとともに、第1の内部メモリから同時に読み出すことができる。
また、第1の態様に係る画像処理装置によれば、列方向に1個かつ行方向に8個並ぶ8個の単位輝度データは、第1の内部メモリの異なるメモリバンクに格納される。従って、これら8個の単位輝度データを、第1の内部メモリに同時に書き込むことができるとともに、第1の内部メモリから同時に読み出すことができる。
本発明の第2の態様に係る画像処理装置は、第1の態様に係る画像処理装置において特に、前記第1の内部メモリは複数のメモリバンクを有し、列方向に2個かつ行方向に4個並ぶ8個の単位色差データは、異なるメモリバンクに格納されることを特徴とするものである。
第2の態様に係る画像処理装置によれば、列方向に2個かつ行方向に4個並ぶ8個の単位色差データは、第1の内部メモリの異なるメモリバンクに格納される。従って、これら8個の単位色差データを、第1の内部メモリに同時に書き込むことができるとともに、第1の内部メモリから同時に読み出すことができる。
本発明の第3の態様に係る画像処理装置は、第1又は第2の態様に係る画像処理装置において特に、前記第1の内部メモリは複数のメモリバンクを有し、列方向に1個かつ行方向に4個並ぶ4個の単位輝度データ、及び当該4個の単位輝度データに対応する画像箇所において列方向に1個かつ行方向に2個並ぶ2個の単位色差データは、異なるメモリバンクに格納されることを特徴とするものである。
第3の態様に係る画像処理装置によれば、列方向に1個かつ行方向に4個並ぶ4個の単位輝度データ、及び当該4個の単位輝度データに対応する画像箇所において列方向に1個かつ行方向に2個並ぶ2個の単位色差データは、第1の内部メモリの異なるメモリバンクに格納される。従って、これら4個の単位輝度データ及び2個の単位色差データを、第1の内部メモリに同時に書き込むことができるとともに、第1の内部メモリから同時に読み出すことができる。
本発明の第4の態様に係る画像処理装置は、第1〜第3のいずれか一つの態様に係る画像処理装置において特に、前記第1の内部メモリは複数のメモリバンクを有し、列方向に2個かつ行方向に2個並ぶ4個の単位輝度データ、及び当該4個の単位輝度データに対応する画像箇所において列方向に2個かつ行方向に1個並ぶ2個の単位色差データは、異なるメモリバンクに格納されることを特徴とするものである。
第4の態様に係る画像処理装置によれば、列方向に2個かつ行方向に2個並ぶ4個の単位輝度データ、及び当該4個の単位輝度データに対応する画像箇所において列方向に2個かつ行方向に1個並ぶ2個の単位色差データは、第1の内部メモリの異なるメモリバンクに格納される。従って、これら4個の単位輝度データ及び2個の単位色差データを、第1の内部メモリに同時に書き込むことができるとともに、第1の内部メモリから同時に読み出すことができる。
本発明の第5の態様に係る画像処理装置は、第1〜第4のいずれか一つの態様に係る画像処理装置において特に、前記外部メモリよりも高速にアクセス可能な第3の内部メモリと、前記第2の探索処理部による探索結果に基づいて前記第2画像内の所定範囲の第5画像を前記第1の内部メモリから読み出し、当該第5画像を前記第3の内部メモリに格納する転送処理部と、前記第3の内部メモリから前記第5画像を読み出し、当該第5画像に基づいて前記第2の動き探索よりも詳細な第3の動き探索を行う第3の探索処理部と、をさらに備えることを特徴とするものである。
第5の態様に係る画像処理装置によれば、転送処理部は、第1の内部メモリから読み出した第5画像を第2の内部メモリに格納する。また、第3の探索処理部は、第3の内部メモリから読み出した第5画像に基づいて第3の動き探索を行う。ここで、第3の内部メモリは、外部メモリよりも高速にアクセス可能なメモリである。従って、転送処理部及び第3の探索処理部が外部メモリから画像を読み出す場合と比較すると、読み出しの所要時間が短縮されるため、全体として動き探索を高速に行うことが可能となる。
本発明の第6の態様に係る画像処理装置は、第1〜第5のいずれか一つの態様に係る画像処理装置において特に、画素空間内における単位輝度データ及び単位色差データの位置座標に基づいて、前記第1の内部メモリが有する複数のメモリバンクのうち、各単位輝度データ及び各単位色差データを格納すべきメモリバンクを設定する第1のアドレス設定部をさらに備えることを特徴とするものである。
第6の態様に係る画像処理装置によれば、第1のアドレス設定部は、画素空間内における単位輝度データ及び単位色差データの位置座標に基づいて、第1の内部メモリが有する複数のメモリバンクのうち、各単位輝度データ及び各単位色差データを格納すべきメモリバンクを設定する。従って、各単位輝度データ及び各単位色差データを、適切なメモリバンクに格納することが可能となる。
本発明の第7の態様に係る画像処理装置は、第6の態様に係る画像処理装置において特に、前記第1のアドレス設定部はさらに、画素空間内における単位輝度データ及び単位色差データの位置座標に基づいて、各単位輝度データ及び各単位色差データを格納するメモリバンク内のアドレスを設定することを特徴とするものである。
第7の態様に係る画像処理装置によれば、第1のアドレス設定部は、画素空間内における単位輝度データ及び単位色差データの位置座標に基づいて、各単位輝度データ及び各単位色差データを格納するメモリバンク内のアドレスを設定する。従って、各単位輝度データ及び各単位色差データを、メモリバンク内の適切なアドレスに格納することが可能となる。
本発明の第8の態様に係る画像処理装置は、第1〜第7のいずれか一つの態様に係る画像処理装置において特に、前記第1の内部メモリに対するデータの読み出し及び書き込みは、時分割で行われることを特徴とするものである。
第8の態様に係る画像処理装置によれば、第1の内部メモリに対するデータの読み出し及び書き込みは、時分割で行われる。従って、シングルポートのRAMを用いて第1の内部メモリを構成できるため、回路規模を削減することが可能となる。
本発明の第9の態様に係る画像処理装置は、第1〜第8のいずれか一つの態様に係る画像処理装置において特に、行方向に関する前記第2画像のサイズを所定の行数単位で設定することにより、前記第1の内部メモリ内に一又は複数の前記第2画像を格納可能であることを特徴とするものである。
第9の態様に係る画像処理装置によれば、行方向に関する前記第2画像のサイズを所定の行数単位で設定することにより、第1の内部メモリ内に一又は複数の第2画像を格納可能である。従って、一の参照画像を用いた動き探索のみならず、複数の参照画像を用いた動き探索を行うことが可能となる。
本発明の第10の態様に係る画像処理装置は、第1〜第9のいずれか一つの態様に係る画像処理装置において特に、あるカレントマクロブロックを対象とする動き探索が行われている期間内に、次のカレントマクロブロックを対象とする処理において必要となる領域の輝度データ及び色差データが、前記第1の内部メモリに書き込まれることを特徴とするものである。
第10の態様に係る画像処理装置によれば、あるカレントマクロブロックを対象とする動き探索が行われている期間内に、次のカレントマクロブロックを対象とする処理において必要となる領域の輝度データ及び色差データが、第1の内部メモリに書き込まれる。従って、あるカレントマクロブロックを対象とする動き探索が完了した後に、次のカレントマクロブロックを対象とする処理を、滞りなく開始することが可能となる。
本発明の第11の態様に係る画像処理装置は、第1〜第10のいずれか一つの態様に係る画像処理装置において特に、前記画像作成部は、前記第1の内部メモリ内において列方向に2個かつ行方向に2個並ぶ4個の単位輝度データに基づいて、画素空間における8列×2行分の1個の単位輝度データを作成し、当該単位輝度データを前記第2の内部メモリの単位記憶領域に格納することを特徴とするものである。
第11の態様に係る画像処理装置によれば、画像作成部は、第1の内部メモリ内において列方向に2個かつ行方向に2個並ぶ4個の単位輝度データに基づいて、画素空間における8列×2行分の1個の単位輝度データを作成する。従って、第1の内部メモリに格納されている画像を1/4に縮小した縮小画像を、簡易に作成することが可能となる。
本発明の第12の態様に係る画像処理装置は、第11の態様に係る画像処理装置において特に、前記第2の内部メモリは複数のメモリバンクを有し、列方向に2個かつ行方向に4個並ぶ8個の単位輝度データは、異なるメモリバンクに格納されることを特徴とするものである。
第12の態様に係る画像処理装置によれば、列方向に2個かつ行方向に4個並ぶ8個の単位輝度データは、第2の内部メモリの異なるメモリバンクに格納される。従って、これら8個の単位輝度データを、第2の内部メモリに同時に書き込むことができるとともに、第1の内部メモリから同時に読み出すことができる。
本発明の第13の態様に係る画像処理装置は、第11又は第12の態様に係る画像処理装置において特に、前記第2の内部メモリは複数のメモリバンクを有し、列方向に1個かつ行方向に8個並ぶ8個の単位輝度データは、異なるメモリバンクに格納されることを特徴とするものである。
第13の態様に係る画像処理装置によれば、列方向に1個かつ行方向に8個並ぶ8個の単位輝度データは、第2の内部メモリの異なるメモリバンクに格納される。従って、これら8個の単位輝度データを、第2の内部メモリに同時に書き込むことができるとともに、第1の内部メモリから同時に読み出すことができる。
本発明の第14の態様に係る画像処理装置は、第11〜第13のいずれか一つの態様に係る画像処理装置において特に、画素空間内における単位輝度データの位置座標に基づいて、前記第2の内部メモリが有する複数のメモリバンクのうち、各単位輝度データを格納すべきメモリバンクを設定する第2のアドレス設定部をさらに備えることを特徴とするものである。
第14の態様に係る画像処理装置によれば、第2のアドレス設定部は、画素空間内における単位輝度データの位置座標に基づいて、第2の内部メモリが有する複数のメモリバンクのうち、各単位輝度データを格納すべきメモリバンクを設定する。従って、各単位輝度データを、適切なメモリバンクに格納することが可能となる。
本発明の第15の態様に係る画像処理装置は、第14の態様に係る画像処理装置において特に、前記第2のアドレス設定部はさらに、画素空間内における単位輝度データの位置座標に基づいて、各単位輝度データを格納するメモリバンク内のアドレスを設定することを特徴とするものである。
第15の態様に係る画像処理装置によれば、第2のアドレス設定部は、画素空間内における単位輝度データの位置座標に基づいて、各単位輝度データを格納するメモリバンク内のアドレスを設定する。従って、各単位輝度データを、メモリバンク内の適切なアドレスに格納することが可能となる。
本発明の第16の態様に係る画像処理装置は、第11〜第15のいずれか一つの態様に係る画像処理装置において特に、前記第2の内部メモリに対するデータの読み出し及び書き込みは、時分割で行われることを特徴とするものである。
第16の態様に係る画像処理装置によれば、第2の内部メモリに対するデータの読み出し及び書き込みは、時分割で行われる。従って、シングルポートのRAMを用いて第2の内部メモリを構成できるため、回路規模を削減することが可能となる。
本発明の第17の態様に係る画像処理装置は、第11〜第16のいずれか一つの態様に係る画像処理装置において特に、行方向に関する前記第3画像のサイズを所定の行数単位で設定することにより、前記第2の内部メモリ内に一又は複数の前記第3画像を格納可能であることを特徴とするものである。
第17の態様に係る画像処理装置によれば、行方向に関する前記第3画像のサイズを所定の行数単位で設定することにより、第2の内部メモリ内に一又は複数の第3画像を格納可能である。従って、一の参照画像を用いた動き探索のみならず、複数の参照画像を用いた動き探索を行うことが可能となる。
本発明の第18の態様に係る画像処理装置は、第11〜第17のいずれか一つの態様に係る画像処理装置において特に、あるカレントマクロブロックを対象とする動き探索が行われている期間内に、次のカレントマクロブロックを対象とする処理において必要となる領域の輝度データが、前記第2の内部メモリに書き込まれることを特徴とするものである。
第18の態様に係る画像処理装置によれば、あるカレントマクロブロックを対象とする動き探索が行われている期間内に、次のカレントマクロブロックを対象とする処理において必要となる領域の輝度データが、第2の内部メモリに書き込まれる。従って、あるカレントマクロブロックを対象とする動き探索が完了した後に、次のカレントマクロブロックを対象とする処理を、滞りなく開始することが可能となる。
本発明の第19の態様に係る画像処理装置は、第5の態様に係る画像処理装置において特に、前記転送処理部は、前記第1の内部メモリ内において列方向に1個かつ行方向に2個並ぶ8列×2行分の2個の単位輝度データに基づいて、画素空間における4列×4行分の2個の単位輝度データを生成し、当該単位輝度データを前記第3の内部メモリの単位記憶領域に格納することを特徴とするものである。
第19の態様に係る画像処理装置によれば、転送処理部は、第1の内部メモリ内において列方向に1個かつ行方向に2個並ぶ2個の単位輝度データに基づいて、画素空間における4列×4行分の2個の単位輝度データを生成する。従って、8列×2行分の単位輝度データから4列×4行分の単位輝度データへの変換を簡易に行うことが可能となる。
本発明の第20の態様に係る画像処理装置は、第19の態様に係る画像処理装置において特に、前記第3の内部メモリは複数のメモリバンクを有し、列方向に4個かつ行方向に4個並ぶ16個の単位輝度データは、異なるメモリバンクに格納されることを特徴とするものである。
第20の態様に係る画像処理装置によれば、列方向に4個かつ行方向に4個並ぶ16個の単位輝度データは、第3の内部メモリの異なるメモリバンクに格納される。従って、これら16個の単位輝度データを、第3の内部メモリに同時に書き込むことができるとともに、第3の内部メモリから同時に読み出すことができる。
本発明の第21の態様に係る画像処理装置は、第19又は第20の態様に係る画像処理装置において特に、画素空間内における単位輝度データの位置座標に基づいて、前記第3の内部メモリが有する複数のメモリバンクのうち、各単位輝度データを格納すべきメモリバンクを設定する第3のアドレス設定部をさらに備えることを特徴とするものである。
第21の態様に係る画像処理装置によれば、第3のアドレス設定部は、画素空間内における単位輝度データの位置座標に基づいて、第3の内部メモリが有する複数のメモリバンクのうち、各単位輝度データを格納すべきメモリバンクを設定する。従って、各単位輝度データを、適切なメモリバンクに格納することが可能となる。
本発明の第22の態様に係る画像処理装置は、第21の態様に係る画像処理装置において特に、前記第3のアドレス設定部はさらに、画素空間内における単位輝度データの位置座標に基づいて、各単位輝度データを格納するメモリバンク内のアドレスを設定することを特徴とするものである。
第22の態様に係る画像処理装置によれば、第3のアドレス設定部は、画素空間内における単位輝度データの位置座標に基づいて、各単位輝度データを格納するメモリバンク内のアドレスを設定する。従って、各単位輝度データを、メモリバンク内の適切なアドレスに格納することが可能となる。
本発明の第23の態様に係る画像処理装置は、第20〜第22のいずれか一つの態様に係る画像処理装置において特に、前記第3の内部メモリが有する複数のメモリバンクには、第1セットに属する複数のメモリバンクと、第2セットに属する複数のメモリバンクとが含まれ、前記第1セット及び前記第2セットの各々に対するデータの読み出し及び書き込みは、時分割で行われることを特徴とするものである。
第23の態様に係る画像処理装置によれば、第3の内部メモリが有する第1セット及び第2セットの各々に対するデータの読み出し及び書き込みは、時分割で行われる。従って、シングルポートのRAMを用いて第3の内部メモリを構成できるため、回路規模を削減することが可能となる。
本発明の第24の態様に係る画像処理装置は、第23の態様に係る画像処理装置において特に、あるカレントマクロブロックを対象とする動き探索を行うために前記第1セット及び前記第2セットの一方からデータの読み出しが行われている期間内に、次のカレントマクロブロックを対象とする動き探索を行うために必要となるデータが、前記第1セット及び前記第2セットの他方に書き込まれることを特徴とするものである。
第24の態様に係る画像処理装置によれば、あるカレントマクロブロックを対象とする動き探索を行うために第1セット及び第2セットの一方からデータの読み出しが行われている期間内に、次のカレントマクロブロックを対象とする動き探索を行うために必要となるデータが、第1セット及び第2セットの他方に書き込まれる。従って、あるカレントマクロブロックを対象とする動き探索が完了した後に、次のカレントマクロブロックを対象とする処理を、滞りなく開始することが可能となる。
本発明の第25の態様に係る画像処理装置は、第19〜第24のいずれか一つの態様に係る画像処理装置において特に、前記第2の探索処理部による探索結果に含まれるマクロブロックパートモードに応じて、所定数の単位輝度データが前記第3の内部メモリに格納されることを特徴とするものである。
第25の態様に係る画像処理装置によれば、第2の探索処理部による探索結果に含まれるマクロブロックパートモードに応じて、所定数の単位輝度データが第3の内部メモリに格納される。従って、マクロブロックパートモードに応じて、第3の探索処理部による動き探索を適切に行うことが可能となる。
本発明の第26の態様に係る画像処理装置は、第19〜第25のいずれか一つの態様に係る画像処理装置において特に、前記第3の内部メモリには、画素空間内におけるカレントマクロブロックの位置に基づいて、Skip/Directベクトル用参照画像、及び(0,0)ベクトル用参照画像がさらに格納されることを特徴とするものである。
第26の態様に係る画像処理装置によれば、第3の内部メモリには、Skip/Directベクトル用参照画像、及び(0,0)ベクトル用参照画像がさらに格納される。従って、第3の探索処理部による動き探索の精度を向上することが可能となる。
本発明によれば、簡易な構成によって動き探索を高速に行うことが可能な画像処理装置を得ることができる。
以下、本発明の実施の形態について、図面を用いて詳細に説明する。なお、異なる図面において同一の符号を付した要素は、同一又は相応する要素を示すものとする。
図1は、本発明の実施の形態に係るエンコーダ1の構成を示す図である。エンコーダ1は、H.264規格に準拠した画像処理装置であり、外部メモリとしてのフレームメモリ2に接続されている。フレームメモリ2は、例えばDRAM(Dynamic Random Access Memory)によって構成されており、一又は複数の参照画像を格納可能である。図1の接続関係で示すように、エンコーダ1は、動き探索部4、動き補償部5、デブロッキングフィルタ6、処理部7、及びエントロピー符号化部8を備えて構成されている。処理部7は、直交変換、量子化、及び逆量子化等の処理を行う。
図2は、図1に示した動き探索部4の内部構成を示す図である。図2の接続関係で示すように、動き探索部4は、内部メモリとしての3個のSRAM(Static Random Access Memory)を備えて構成されている。本実施の形態では、区別を容易にするために、3個のSRAMをそれぞれ「LSRAM11」、「MSRAM13」、及び「SSRAM17」と称する。LSRAM11、MSRAM13、及びSSRAM17は、フレームメモリ2よりも高速にアクセス可能である。また、動き探索部4は、画像作成部12、探索処理部14,15,18、及び転送処理部16を備えて構成されている。
LSRAM11には、DMA(Direct Memory Access)制御によって、フレームメモリ2に格納されている参照画像(第1画像)内の所定範囲の輝度及び色差の画像(第2画像)が書き込まれる。画像作成部12は、第2画像内の所定範囲の輝度の画像をLSRAM11から読み出し、当該画像に対して1/4のリサイズ処理を行うことにより粗探索用の縮小画像(第3画像)を作成する。画像作成部12によって作成された第3画像は、MSRAM13に格納される。探索処理部14は、MSRAM13から第3画像を読み出し、当該第3画像に基づいて動き探索(縮小画素探索)を行う。探索処理部14による縮小画素探索の結果は探索処理部15に入力される。探索処理部15は、入力された探索結果に基づいて、第2画像内の所定範囲の輝度の画像(第4画像)をLSRAM11から読み出し、当該第4画像に基づいて縮小画素探索よりも詳細な動き探索(整数精度画素探索)を行う。探索処理部15による整数精度画素探索の結果は転送処理部16及び探索処理部18に入力される。転送処理部16は、入力された探索結果に基づいて、第2画像内の所定範囲の輝度の画像(第5画像)をLSRAM11から読み出し、当該第5画像をSSRAM17に格納する。探索処理部18は、SSRAM17から第5画像を読み出し、当該第5画像に基づいて整数精度画素探索よりも詳細な動き探索(小数精度画素探索)を行う。また、探索処理部18は、補完用の色差の画像をLSRAM11から読み出す。なお、探索処理部14による縮小画素探索と、探索処理部15による整数精度画素探索と、探索処理部18による小数精度画素探索とは、マクロブロックパイプライン処理によって実行される。
図3は、LSRAM11の構成を示す図である。LSRAM11は、複数のメモリバンクに分割されており、この例では第0バンク220〜第7バンク227の合計8個のメモリバンクによって構成されている。また、アドレス生成部23を有する入出力インタフェース21が、各メモリバンクに接続されている。LSRAM11は、フレームメモリ2からの画像の書き込み動作、画像作成部12への画像の読み出し動作、探索処理部15への画像の読み出し動作、転送処理部16への画像の読み出し動作、及び探索処理部18への画像の読み出し動作を、時分割で切り替えて実行する。異なるメモリバンクには同時にアクセスすることが可能であり、メモリバンクの分割数は、これらの時分割での書き込み動作及び読み出し動作を遅滞なく実行可能な数に設定される。
図4は、LSRAM11に格納される画像の第1の例を示す図である。図中太線の格納領域36として示すように、LSRAM11には、1920列×1080行の参照画像30のうち、1920列×160行分の画像データ(輝度データ及び色差データ)が格納される。格納領域36には、カレントマクロブロック31を中心とするサーチウインドウ32と、マクロブロックパイプライン処理の遅延分に相当するオーバーラップ領域33と、次のマクロブロック処理時間で使用する画像のリサイズ処理に必要なアップデート領域34とが含まれる。また、領域35は、カレントマクロブロックの更新に備えてフレームメモリ2からLSRAM11に書き込まれる画像データである。
図5は、LSRAM11に格納される画像の第2の例を示す図である。サーチウインドウ32の高さ(行方向のサイズ)は、最大値を160行として8行単位で任意に設定可能である。従って、複数の参照画像(図5の例では2個の参照画像301,302)が存在する場合には、その個数に応じてサーチウインドウ32の高さを設定することにより、参照画像301内の格納領域361と、参照画像302内の格納領域362とをLSRAM11に格納することができる。
図6は、LSRAM11に格納する輝度データの配置ルールを説明するための図である。図6の(A)は画像内の16列×4行分の画素空間を示しており、図6の(B)はLSRAM11内の4ワード分の記憶領域(つまり4個の単位記憶領域)を示している。図6に示すように、LSRAM11の単位記憶領域には、画素空間における8列×2行分の輝度データに相当する単位輝度データ(以下「8×2パックワード」と称す)が格納される。本実施の形態の例において各輝度データは8ビットであるため、8×2パックワード及びLSRAM11の1ワードはいずれも128ビットである。
図7は、LSRAM11に格納する色差データの配置ルールを説明するための図である。図7の(A)は画像内の16列×4行分の画素空間を示しており、図7の(B)はLSRAM11内の2ワード分の記憶領域(つまり2個の単位記憶領域)を示している。図7に示すように、LSRAM11の単位記憶領域には、画素空間における8列×4行分の色差データに相当する単位色差データが格納される。本実施の形態の例ではYUV420フォーマットの画像データを扱うため、輝度相当で8列×4行分の画素空間の中には16個(128ビット)の色差データが存在する。
図8は、LSRAM11における輝度データのメモリバンクへの振り分けを説明するための図である。図8には、32列×32行分の画素空間に含まれる64個の8×2パックワードを示している。図中の数字は、第0バンク220〜第7バンク227の各メモリバンクに付されるバンクインデックスを表している。図8に示したように輝度データを各メモリバンクに振り分けることにより、列方向に1個かつ行方向に8個並ぶ任意の8個の単位輝度データは異なるメモリバンクに格納され、また、列方向に2個かつ行方向に4個並ぶ任意の8個の単位輝度データは異なるメモリバンクに格納される。
図9は、LSRAM11における色差データのメモリバンクへの振り分けを説明するための図である。図9には、輝度相当で32列×32行分の画素空間に含まれる32個の8×2パックワードを示している。図中の数字はバンクインデックスを表している。図9に示したように色差データを各メモリバンクに振り分けることにより、列方向に2個かつ行方向に4個並ぶ任意の8個の単位色差データは異なるメモリバンクに格納される。
図10は、図8に示した輝度データと図9に示した色差データとを並べて示す図である。領域R1に含まれる8個の単位輝度データ(列方向に1個×行方向に8個)は、LSRAM11に対して同時に読み出し又は書き込みが可能である。また、領域R2に含まれる8個の単位輝度データ(列方向に2個×行方向に4個)は、LSRAM11に対して同時に読み出し又は書き込みが可能である。また、領域R3に含まれる8個の単位色差データ(列方向に2個×行方向に4個)は、LSRAM11に対して同時に読み出し又は書き込みが可能である。また、領域R4に含まれる4個の単位輝度データ(列方向に2個×行方向に2個)と2個の単位色差データ(列方向に2個×行方向に1個)とは、LSRAM11に対して同時に読み出し又は書き込みが可能である。また、領域R5に含まれる4個の単位輝度データ(列方向に1個×行方向に4個)と2個の単位色差データ(列方向に1個×行方向に2個)とは、LSRAM11に対して同時に読み出し又は書き込みが可能である。
図11は、アドレス生成部23による輝度データのバンクインデックスの設定手法を説明するための図である。アドレス生成部23は、画素空間におけるパックワード単位での列方向の座標(x座標)及び行方向の座標(y座標)に基づいて、各パックワードのバンクインデックスを設定する。なお、図中の「%」は剰余を求める演算を意味している。また、除算の剰余は切り捨てる。例えば、ある輝度データのパックワードをLSRAM11に書き込むにあたり、y座標を「4」で除算した値をさらに「2」で除算した際の剰余が「0」で、y座標を「4」で除算した際の剰余が「0」で、x座標を「2」で除算した際の剰余が「0」である場合には、そのパックワードにはバンクインデックスBI=「0」が設定され、当該パックワードはLSRAM11の第0バンク220に格納される。
図11に示した関係を式で表すと、
BI=((x%2)^((y/4)%2))*4+(y%4)
となる。なお、式中の「^」は排他的論理和を求める演算を意味している。
図12は、アドレス生成部23による色差データのバンクインデックスの設定手法を説明するための図である。アドレス生成部23は、画素空間におけるパックワード単位でのx座標及びy座標に基づいて、各パックワードのバンクインデックスを設定する。例えば、ある色差データのパックワードをLSRAM11に書き込むにあたり、y座標を「2」で除算した値をさらに「4」で除算した際の剰余が「1」で、x座標を「2」で除算した際の剰余が「0」である場合には、そのパックワードにはバンクインデックスBI=「4」が設定され、当該パックワードはLSRAM11の第4バンク224に格納される。
図12に示した関係を式で表すと、
BI=((((y/4)%2)==(x%2))<<2)+((〜((y/2)%2))<<1)+((y/4)%2)
となる。なお、式中の「〜」はビット単位の反転を意味している。
また、アドレス生成部23は、画素空間におけるパックワード単位でのx座標及びy座標に基づいて、各パックワードを格納するメモリバンク内のアドレス(バンクアドレスBA)を設定する。各メモリバンクにおいて、前半2/3の領域(BA=「0」〜「2559」には輝度データが格納され、後半1/3の領域(BA=「2560」〜「3839」)には色差データが格納される。
輝度データのバンクアドレスを設定するための式は、
BA=(x/2)+(y/4)*128
となる。
色差データのバンクアドレスを設定するための式は、
BA=(x/2)+(y/8)*128+2560
となる。
図13〜16は、フレームメモリ2からLSRAM11に書き込まれる画像データの更新ルールを説明するための図である。現在のカレントマクロブロックを対象とする動き探索が行われている期間内に、次のカレントマクロブロックを対象とする処理において必要となる領域の画像データが、フレームメモリ2からLSRAM11に書き込まれる。
図13を参照して、処理開始時には、カレントマクロブロック31は参照画像30の左上隅に位置している。この場合、サーチウインドウ32と参照画像30との重複範囲(斜線を付した領域)の画像データが、フレームメモリ2からLSRAM11に書き込まれる。
図14を参照して、カレントマクロブロック31が参照画像30の上辺に接している時には、参照画像30内でサーチウインドウ32の右辺に接している領域35の画像データが、フレームメモリ2からLSRAM11に書き込まれる。
図15を参照して、サーチウインドウ32の右辺が参照画像30の右辺に接している時には、サーチウインドウ32の下辺より1マクロブロックライン下で参照画像30の左辺に接している1マクロブロック相当の領域35の画像データが、フレームメモリ2からLSRAM11に書き込まれる。
図16を参照して、カレントマクロブロック31が参照画像30の中央部に位置している通常更新時には、サーチウインドウ32の右下隅に接している1マクロブロック相当の領域35の画像データが、フレームメモリ2からLSRAM11に書き込まれる。
図17は、MSRAM13の構成を示す図である。MSRAM13は、複数のメモリバンクに分割されており、この例では第0バンク420〜第7バンク427の合計8個のメモリバンクによって構成されている。また、アドレス生成部43を有する入出力インタフェース41が、各メモリバンクに接続されている。MSRAM13は、画像作成部12からの画像の書き込み動作、及び探索処理部14への画像の読み出し動作を、時分割で切り替えて実行する。異なるメモリバンクには同時にアクセスすることが可能であり、メモリバンクの分割数は、これらの時分割での書き込み動作及び読み出し動作を遅滞なく実行可能な数に設定される。
図18は、MSRAM13に格納される画像の第1の例を示す図である。図中太線の格納領域51として示すように、MSRAM13には、サーチウインドウ32及びアップデート領域34の画像を1/4(行及び列の各方向に1/2ずつ)に縮小した輝度データが格納される。
図19は、MSRAM13に格納される画像の第2の例を示す図である。MSRAM13に関しては、サーチウインドウ32の高さは、最大値を80行として4行単位で任意に設定可能である。従って、複数の参照画像(図19の例では2個の参照画像301,302)が存在する場合には、その個数に応じてサーチウインドウ32の高さを設定することにより、参照画像301内の格納領域511と、参照画像302内の格納領域512とをMSRAM13に格納することができる。
図20は、画像作成部12による画像のリサイズ処理を示す図である。図20に示すように、画像作成部12は、画素空間内で列方向に2個かつ行方向に2個並ぶ4個の8×2パックワードをLSRAM11から読み出し、これら4個の8×2パックワードに対してフィルタリング又は画素間引き等の処理を行うことにより、1/4に縮小された1個の8×2パックワードを作成する。そして、作成した8×2パックワードをMSRAM13の単位記憶領域に格納する。
図21は、MSRAM13における輝度データのメモリバンクへの振り分けを説明するための図である。図21には、32列×32行分の画素空間に含まれる64個の8×2パックワードを示している。図中の数字は、第0バンク420〜第7バンク427の各メモリバンクに付されるバンクインデックスを表している。アドレス生成部43は、画素空間におけるパックワード単位でのx座標及びy座標に基づいて、各パックワードのバンクインデックスを設定する。図21に示したように輝度データを各メモリバンクに振り分けることにより、列方向に1個かつ行方向に8個並ぶ任意の8個の単位輝度データは異なるメモリバンクに格納され、また、列方向に2個かつ行方向に4個並ぶ任意の8個の単位輝度データは異なるメモリバンクに格納される。
図22は、図21に示した輝度データを示す図である。領域R11に含まれる8個の単位輝度データ(列方向に1個×行方向に8個)は、MSRAM13に対して同時に読み出し又は書き込みが可能である。また、領域R12に含まれる8個の単位輝度データ(列方向に2個×行方向に4個)は、MSRAM13に対して同時に読み出し又は書き込みが可能である。
また、アドレス生成部43は、画素空間におけるパックワード単位でのx座標及びy座標に基づいて、各パックワードを格納するメモリバンク内のバンクアドレスBAを設定する。
図23は、MSRAM13におけるバンクアドレスBAの設定例を示す図である。図23には、図21と同様の64個の8×2パックワードを示している。図中の数字はバンクアドレスBAを表している。この例では、列方向に1個かつ行方向に8個並ぶ8個のパックワードに対して、共通のバンクアドレスBAが設定されている。例えば、左上の8個のパックワードに対してBA=0が設定され、その右隣の8個のパックワードに対してBA=1が設定されている。
図24〜28は、画像作成部12からMSRAM13に書き込まれる画像データの更新ルールを説明するための図である。現在のカレントマクロブロックを対象とする動き探索が行われている期間内に、次のカレントマクロブロックを対象とする処理において必要となる領域の画像データが、画像作成部12からMSRAM13に書き込まれる。
図24を参照して、処理開始時には、カレントマクロブロック31は参照画像30の左上隅に位置している。この場合、サーチウインドウ32と参照画像30との重複範囲(斜線を付した領域)の画像データが、画像作成部12からMSRAM13に書き込まれる。
図25を参照して、カレントマクロブロック31が参照画像30の上辺に接している時には、参照画像30内でサーチウインドウ32の右辺に接している領域34の画像データが、画像作成部12からMSRAM13に書き込まれる。
図26を参照して、サーチウインドウ32の右辺が参照画像30の右辺に接している時には、サーチウインドウ32及びその下辺より1マクロブロックライン下で参照画像30の左辺に接している領域34の画像データが、画像作成部12からMSRAM13に書き込まれる。
図27を参照して、カレントマクロブロック31が参照画像30の中央部に位置している通常更新時には、サーチウインドウ32の右辺に接している領域34の画像データが、画像作成部12からMSRAM13に書き込まれる。
図28を参照して、カレントマクロブロック31が参照画像30の下辺に接している時には、参照画像30内でサーチウインドウ32の右辺に接している領域34の画像データが、画像作成部12からMSRAM13に書き込まれる。
図29は、SSRAM17の構成を示す図である。SSRAM17は、複数のメモリバンクに分割されており、この例では第1セット74に属する第0バンク720〜第15バンク72fと第2セット75に属する第0バンク730〜第15バンク73fとの合計32個のメモリバンクによって構成されている。第1セット74及び第2セット75の各々は、転送処理部16からの画像の書き込み動作、及び探索処理部18への画像の読み出し動作を、時分割で切り替えて実行する。異なるメモリバンクには同時にアクセスすることが可能であり、メモリバンクの分割数は、これらの時分割での書き込み動作及び読み出し動作を遅滞なく実行可能な数に設定される。
第1セット74に属する第0バンク720〜第15バンク72fへの画像データの書き込みと、第2セット75に属する第0バンク730〜第15バンク73fからの画像データの読み出しとを、同時に行うことが可能である。同様に、第1セット74に属する第0バンク720〜第15バンク72fからの画像データの読み出しと、第2セット75に属する第0バンク730〜第15バンク73fへの画像データの書き込みとを、同時に行うことが可能である。第1のカレントマクロブロックを対象とする動き探索を行うために探索処理部18が第1セット74のメモリバンクから参照画像を読み出している期間内に、続く第2のカレントマクロブロックを対象とする動き探索で使用する参照画像が転送処理部16から第2セット75のメモリバンクに書き込まれる。次に、第2のカレントマクロブロックを対象とする動き探索を行うために探索処理部18が第2セット75のメモリバンクから参照画像を読み出している期間内に、続く第3のカレントマクロブロックを対象とする動き探索で使用する参照画像が転送処理部16から第1セット74のメモリバンクに書き込まれる。
各メモリバンクは32ワード分の記憶領域を有しており、前半の16ワードは前方予測用の画像データの格納に使用され、後半の16ワードは後方予測用の画像データの格納に使用される。また、アドレス生成部76を有する入出力インタフェース71が、各メモリバンクに接続されている。
図30は、SSRAM17に格納される画像の例を示す図である。SSRAM17には、参照マクロブロック81及びその周辺の格納領域82の輝度データが格納される。参照マクロブロック81は、探索処理部15による整数精度画素探索の結果として得られた動きベクトルMVで示されるマクロブロックである。
探索処理部15は、16列×16行のブロックを1個用いたマクロブロックパートモード1、16列×8行のブロックを2個用いたマクロブロックパートモード2、8列×16行のブロックを2個用いたマクロブロックパートモード3、及び4列×4行のブロックを4個用いたマクロブロックパートモード4のそれぞれについて動き探索を行い、その中で類似度の最も高い一つのモードの動きベクトルを探索結果として出力する。従って、探索処理部15による探索結果にマクロブロックパートモード1の動きベクトルが含まれる場合には格納領域82は1個となり、マクロブロックパートモード2又はマクロブロックパートモード3の動きベクトルが含まれる場合には格納領域82は2個となり、マクロブロックパートモード4の動きベクトルが含まれる場合には格納領域82は4個となる。
また、図30には示さないが、SSRAM17には、Skip/Directベクトル用参照画像、及び(0,0)ベクトル用参照画像が格納される。Skip/Directベクトルは、H.264規格で定義されているSkip/Directマクロブロックモードの動きベクトルの総称であり、カレントマクロブロックに隣接する複数のブロックに関する情報に基づいて生成される。また、(0,0)ベクトルは、参照画像内でカレントマクロブロックと同じ位置のマクロブロックの動きベクトルである。
図31は、転送処理部16によるパックワード変換を示す図である。図31に示すように、転送処理部16は、LSRAM11からSSRAM17に画素データを転送する際に、画素空間における8列×2行分の輝度データに相当する8×2パックワードを、画素空間における4列×4行分の輝度データに相当する単位輝度データ(以下「4×4パックワード」と称す)に変換する。具体的には、画素空間内で列方向に1個かつ行方向に2個並ぶ2個の8×2パックワードをLSRAM11から読み出し、2個のパックワードの境界を変更することにより、画素空間内で列方向に2個かつ行方向に1個並ぶ2個の4×4パックワードに変換する。そして、作成した各4×4パックワードをSSRAM17の単位記憶領域に格納する。
図32は、SSRAM17における輝度データのメモリバンクへの振り分けを説明するための図である。図32には、64列×64行分に相当する画素空間に含まれる256個の4×4パックワードを示している。枠内の左側の数字はバンクインデックスBIを表しており、右側の数字はバンクアドレスBAを表している。
16個のメモリバンクの16ワード分の記憶領域の集合は、バンクアドレスBAが「0」「1」「2」「4」「5」「6」「8」「9」「a」であるグループG1と、バンクアドレスBAが「3」「7」「b」「c」であるグループG2と、バンクアドレスBAが「d」であるグループG3と、バンクアドレスBAが「e」「f」であるグループG4とに分類される。グループG1には、探索処理部15による整数精度画素探索の結果に基づく小数精度画素探索用の参照画像が格納される。グループG2には、Skip/Directベクトル用参照画像が格納される。グループG3には、(0,0)ベクトル用参照画像が格納される。グループG4は使用されていない予備の領域である。アドレス生成部76は、画素空間におけるパックワード単位でのx座標及びy座標に基づいて、各パックワードを格納すべきバンクインデックスBI及びバンクアドレスBAを設定する。図32に示したように輝度データを各メモリバンクに振り分けることにより、列方向に4個かつ行方向に4個並ぶ任意の16個の単位輝度データは異なるメモリバンクに格納される。
図33は、図32に示した輝度データを示す図である。グループG1内の領域R21に含まれる任意の16個の単位輝度データ(列方向に4個×行方向に4個)は、SSRAM17に対して同時に読み出し又は書き込みが可能である。同様に、グループG2内の領域R22に含まれる任意の16個の単位輝度データ、及びグループG3内の領域R23に含まれる16個の単位輝度データは、SSRAM17に対して同時に読み出し又は書き込みが可能である。
図34〜39は、SSRAM17内における参照画像の格納領域をそれぞれ示す図である。
図34には、探索処理部15による探索結果にマクロブロックパートモード1の動きベクトルが含まれる場合の例を示している。この場合、16列×16行のサイズの画像に対する1/4画素精度の画像を6タップフィルタによって作成するためには、21列×21行のサイズの整数精度画像が必要となる。1ワードに4列×4行分の画素データが格納されているため、列方向に6個×行方向に6個の格納領域があれば、任意の座標位置から21列×21行のサイズの整数精度画像を得ることができる。また、±1.0の範囲での探索を考慮して、図中太線で示す列方向に7個×行方向に7個分の格納領域に参照画像を格納する。この場合、探索処理部18は、参照画像の格納領域に対して13列×13行単位での画素データの読み出しを4回行うことにより、SSRAM17から参照画像を読み出す。そして、16列×16行のブロックに対する動き探索を行う際に、その16列×16行のブロックに内在する16列×8行、8列×16行、及び8列×8行の各ブロックに対しても評価を行うことにより、マクロブロックパートモード1、マクロブロックパートモード2、マクロブロックパートモード3、及びマクロブロックパートモード4の各モードでの動き探索を併せて行う。
図35には、探索処理部15による探索結果にマクロブロックパートモード2の動きベクトルが含まれる場合の例を示している。この場合、16列×8行のサイズの画像に対する1/4画素精度の画像を6タップフィルタによって作成するためには、21列×13行のサイズの整数精度画像が必要となる。1ワードに4列×4行分の画素データが格納されているため、列方向に6個×行方向に4個の格納領域があれば、任意の座標位置から16列×8行のサイズの整数精度画像を得ることができる。また、±1.0の範囲での探索を考慮して、図中太線で示す列方向に7個×行方向に5個分の2個の格納領域に参照画像をそれぞれ格納する。この場合、探索処理部18は、参照画像の2個の格納領域の各々に対して13列×13行単位での画素データの読み出しを2回行うことにより、SSRAM17から参照画像を読み出す。そして、16列×8行のブロックに対する動き探索を行う際に、その16列×8行のブロックに内在する8列×8行の各ブロックに対しても評価を行うことにより、マクロブロックパートモード2及びマクロブロックパートモード4の各モードでの動き探索を併せて行う。
図36には、探索処理部15による探索結果にマクロブロックパートモード3の動きベクトルが含まれる場合の例を示している。この場合、8列×16行のサイズの画像に対する1/4画素精度の画像を6タップフィルタによって作成するためには、13列×21行のサイズの整数精度画像が必要となる。1ワードに4列×4行分の画素データが格納されているため、列方向に4個×行方向に6個の格納領域があれば、任意の座標位置から8列×16行のサイズの整数精度画像を得ることができる。また、±1.0の範囲での探索を考慮して、図中太線で示す列方向に5個×行方向に7個分の2個の格納領域に参照画像をそれぞれ格納する。この場合、探索処理部18は、参照画像の2個の格納領域の各々に対して13列×13行単位での画素データの読み出しを2回行うことにより、SSRAM17から参照画像を読み出す。そして、8列×16行のブロックに対する動き探索を行う際に、その8列×16行のブロックに内在する8列×8行の各ブロックに対しても評価を行うことにより、マクロブロックパートモード3及びマクロブロックパートモード4の各モードでの動き探索を併せて行う。
図37には、探索処理部15による探索結果にマクロブロックパートモード4の動きベクトルが含まれる場合の例を示している。この場合、8列×8行のサイズの画像に対する1/4画素精度の画像を6タップフィルタによって作成するためには、13列×13行のサイズの整数精度画像が必要となる。1ワードに4列×4行分の画素データが格納されているため、列方向に4個×行方向に4個の格納領域があれば、任意の座標位置から8列×8行のサイズの整数精度画像を得ることができる。また、±1.0の範囲での探索を考慮して、図中太線で示す列方向に5個×行方向に5個分の4個の格納領域に参照画像をそれぞれ格納する。この場合、探索処理部18は、参照画像の4個の格納領域の各々に対して13列×13行単位での画素データの読み出しを1回行うことにより、SSRAM17から参照画像を読み出す。そして、その8列×8行の各ブロックに対してマクロブロックパートモード4での動き探索を行う。
図38には、Skip/Directベクトル用参照画像の格納領域を示している。この場合、16列×16行のサイズの画像に対する1/4画素精度の画像を6タップフィルタによって作成するためには、21列×21行のサイズの整数精度画像が必要となる。1ワードに4列×4行分の画素データが格納されているため、列方向に6個×行方向に6個の格納領域があれば、任意の座標位置から21列×21行のサイズの整数精度画像を得ることができる。従って、図中太線で示す列方向に6個×行方向に6個分の格納領域に参照画像を格納する。
図39には、(0,0)ベクトル用参照画像の格納領域を示している。この場合は1/4画素精度の画像の生成は不要であるため、16列×16行のサイズの画像を得るためには、16列×16行のサイズの整数精度画像があればよい。また、任意の座標位置からの画素選択も不要であるため、図中太線で示す列方向に4個×行方向に4個分の格納領域に参照画像を格納する。
このように本実施の形態に係る動き探索部4によれば、画像作成部12は、LSRAM11から読み出した画像に基づいて粗探索用の縮小画像を作成する。また、探索処理部14は、MSRAM13から読み出した縮小画像に基づいて縮小画素探索を行う。また、探索処理部15は、LSRAM11から読み出した画像に基づいて整数精度画素探索を行う。ここで、LSRAM11及びMSRAM13はいずれも、フレームメモリ2よりも高速にアクセス可能なメモリである。従って、画像作成部12、探索処理部14、及び探索処理部15がフレームメモリ2から画像を読み出す場合と比較すると、読み出しの所要時間が短縮されるため、全体として動き探索を高速に行うことが可能となる。
また、本実施の形態に係る動き探索部4によれば、転送処理部16は、LSRAM11から読み出した画像をSSRAM17に格納する。また、探索処理部18は、SSRAM17から読み出した画像に基づいて小数精度画素探索を行う。ここで、SSRAM17は、フレームメモリ2よりも高速にアクセス可能なメモリである。従って、転送処理部16及び探索処理部18がフレームメモリ2から画像を読み出す場合と比較すると、読み出しの所要時間が短縮されるため、全体として動き探索を高速に行うことが可能となる。
また、本実施の形態に係る動き探索部4によれば、LSRAM11の単位記憶領域には、画素空間における8列×2行分の輝度データに相当する単位輝度データ、又は画素空間における8列×4行分の色差データに相当する単位色差データが格納される。従って、MSRAM13の単位記憶領域に格納すべき8列×2行分の単位輝度データ、及びSSRAM17の単位記憶領域に格納すべき4列×4行分の単位輝度データを、LSRAM11の単位記憶領域に格納されている単位輝度データに基づいて容易に作成することが可能となる。
また、本実施の形態に係る動き探索部4によれば、列方向に2個かつ行方向に4個並ぶ8個の単位輝度データは、LSRAM11の異なるメモリバンクに格納される。従って、これら8個の単位輝度データを、LSRAM11に同時に書き込むことができるとともに、LSRAM11から同時に読み出すことができる。
また、本実施の形態に係る動き探索部4によれば、列方向に1個かつ行方向に8個並ぶ8個の単位輝度データは、LSRAM11の異なるメモリバンクに格納される。従って、これら8個の単位輝度データを、LSRAM11に同時に書き込むことができるとともに、LSRAM11から同時に読み出すことができる。
また、本実施の形態に係る動き探索部4によれば、列方向に2個かつ行方向に4個並ぶ8個の単位色差データは、LSRAM11の異なるメモリバンクに格納される。従って、これら8個の単位色差データを、LSRAM11に同時に書き込むことができるとともに、LSRAM11から同時に読み出すことができる。
また、本実施の形態に係る動き探索部4によれば、列方向に1個かつ行方向に4個並ぶ4個の単位輝度データ、及び列方向に1個かつ行方向に2個並ぶ2個の単位色差データは、LSRAM11の異なるメモリバンクに格納される。従って、これら4個の単位輝度データ及び2個の単位色差データを、LSRAM11に同時に書き込むことができるとともに、LSRAM11から同時に読み出すことができる。
また、本実施の形態に係る動き探索部4によれば、列方向に2個かつ行方向に2個並ぶ4個の単位輝度データ、及び列方向に2個かつ行方向に1個並ぶ2個の単位色差データは、LSRAM11の異なるメモリバンクに格納される。従って、これら4個の単位輝度データ及び2個の単位色差データを、LSRAM11に同時に書き込むことができるとともに、LSRAM11から同時に読み出すことができる。
また、本実施の形態に係る動き探索部4によれば、アドレス生成部23は、画素空間内における単位輝度データ及び単位色差データの位置座標に基づいて、LSRAM11が有する複数のメモリバンクのうち、各単位輝度データ及び各単位色差データを格納すべきメモリバンクを設定する。従って、各単位輝度データ及び各単位色差データを、適切なメモリバンクに格納することが可能となる。
また、本実施の形態に係る動き探索部4によれば、アドレス生成部23は、画素空間内における単位輝度データ及び単位色差データの位置座標に基づいて、各単位輝度データ及び各単位色差データを格納するメモリバンク内のアドレスを設定する。従って、各単位輝度データ及び各単位色差データを、メモリバンク内の適切なアドレスに格納することが可能となる。
また、本実施の形態に係る動き探索部4によれば、LSRAM11に対するデータの読み出し及び書き込みは、時分割で行われる。従って、シングルポートのRAMを用いてLSRAM11を構成できるため、回路規模を削減することが可能となる。
また、本実施の形態に係る動き探索部4によれば、行方向に関するサーチウインドウ32のサイズを所定の行数単位で設定することにより、LSRAM11内に一又は複数の参照画像を格納可能である。従って、一の参照画像を用いた動き探索のみならず、複数の参照画像を用いた動き探索を行うことが可能となる。
また、本実施の形態に係る動き探索部4によれば、あるカレントマクロブロックを対象とする動き探索が行われている期間内に、次のカレントマクロブロックを対象とする処理において必要となる領域の輝度データ及び色差データが、LSRAM11に書き込まれる。従って、あるカレントマクロブロックを対象とする動き探索が完了した後に、次のカレントマクロブロックを対象とする処理を、滞りなく開始することが可能となる。
また、本実施の形態に係る動き探索部4によれば、画像作成部12は、LSRAM11内において列方向に2個かつ行方向に2個並ぶ4個の単位輝度データに基づいて、画素空間における8列×2行分の1個の単位輝度データを作成する。従って、LSRAM11に格納されている画像を1/4に縮小した縮小画像を、簡易に作成することが可能となる。
また、本実施の形態に係る動き探索部4によれば、列方向に2個かつ行方向に4個並ぶ8個の単位輝度データは、MSRAM13の異なるメモリバンクに格納される。従って、これら8個の単位輝度データを、MSRAM13に同時に書き込むことができるとともに、MSRAM13から同時に読み出すことができる。
また、本実施の形態様に係る動き探索部4によれば、列方向に1個かつ行方向に8個並ぶ8個の単位輝度データは、MSRAM13の異なるメモリバンクに格納される。従って、これら8個の単位輝度データを、MSRAM13に同時に書き込むことができるとともに、MSRAM13から同時に読み出すことができる。
また、本実施の形態に係る動き探索部4によれば、アドレス生成部43は、画素空間内における単位輝度データの位置座標に基づいて、MSRAM13が有する複数のメモリバンクのうち、各単位輝度データを格納すべきメモリバンクを設定する。従って、各単位輝度データを、適切なメモリバンクに格納することが可能となる。
また、本実施の形態に係る動き探索部4によれば、アドレス生成部43は、画素空間内における単位輝度データの位置座標に基づいて、各単位輝度データを格納するメモリバンク内のアドレスを設定する。従って、各単位輝度データを、メモリバンク内の適切なアドレスに格納することが可能となる。
また、本実施の形態に係る動き探索部4によれば、MSRAM13に対するデータの読み出し及び書き込みは、時分割で行われる。従って、シングルポートのRAMを用いてMSRAM13を構成できるため、回路規模を削減することが可能となる。
また、本実施の形態に係る動き探索部4によれば、行方向に関するサーチウインドウ32のサイズを所定の行数単位で設定することにより、MSRAM13内に一又は複数の参照画像を格納可能である。従って、一の参照画像を用いた動き探索のみならず、複数の参照画像を用いた動き探索を行うことが可能となる。
また、本実施の形態に係る動き探索部4によれば、あるカレントマクロブロックを対象とする動き探索が行われている期間内に、次のカレントマクロブロックを対象とする処理において必要となる領域の輝度データが、MSRAM13に書き込まれる。従って、あるカレントマクロブロックを対象とする動き探索が完了した後に、次のカレントマクロブロックを対象とする処理を、滞りなく開始することが可能となる。
また、本実施の形態に係る動き探索部4によれば、転送処理部16は、LSRAM11内において列方向に1個かつ行方向に2個並ぶ8列×2行分の2個の単位輝度データに基づいて、画素空間における4列×4行分の2個の単位輝度データを生成する。従って、8列×2行分の単位輝度データから4列×4行分の単位輝度データへの変換を簡易に行うことが可能となる。
また、本実施の形態に係る動き探索部4によれば、列方向に4個かつ行方向に4個並ぶ16個の単位輝度データは、SSRAM17の異なるメモリバンクに格納される。従って、これら16個の単位輝度データを、SSRAM17に同時に書き込むことができるとともに、SSRAM17から同時に読み出すことができる。
また、本実施の形態に係る動き探索部4によれば、アドレス生成部76は、画素空間内における単位輝度データの位置座標に基づいて、SSRAM17が有する複数のメモリバンクのうち、各単位輝度データを格納すべきメモリバンクを設定する。従って、各単位輝度データを、適切なメモリバンクに格納することが可能となる。
また、本実施の形態に係る動き探索部4によれば、アドレス生成部76は、画素空間内における単位輝度データの位置座標に基づいて、各単位輝度データを格納するメモリバンク内のアドレスを設定する。従って、各単位輝度データを、メモリバンク内の適切なアドレスに格納することが可能となる。
また、本実施の形態に係る動き探索部4によれば、SSRAM17が有する第1セット74及び第2セット75の各々に対するデータの読み出し及び書き込みは、時分割で行われる。従って、シングルポートのRAMを用いてSSRAM17を構成できるため、回路規模を削減することが可能となる。
また、本実施の形態に係る動き探索部4によれば、あるカレントマクロブロックを対象とする動き探索を行うために第1セット74及び第2セット75の一方からデータの読み出しが行われている期間内に、次のカレントマクロブロックを対象とする動き探索を行うために必要となるデータが、第1セット74及び第2セット75の他方に書き込まれる。従って、あるカレントマクロブロックを対象とする動き探索が完了した後に、次のカレントマクロブロックを対象とする処理を、滞りなく開始することが可能となる。
また、本実施の形態に係る動き探索部4によれば、探索処理部15による探索結果に含まれるマクロブロックパートモードに応じて、所定数の単位輝度データがSSRAM17に格納される。従って、マクロブロックパートモードに応じて、探索処理部18による動き探索を適切に行うことが可能となる。
また、本実施の形態に係る動き探索部4によれば、SSRAM17には、Skip/Directベクトル用参照画像、及び(0,0)ベクトル用参照画像がさらに格納される。従って、探索処理部18による動き探索の精度を向上することが可能となる。