JP2007274224A - Image processor - Google Patents
Image processor Download PDFInfo
- Publication number
- JP2007274224A JP2007274224A JP2006095952A JP2006095952A JP2007274224A JP 2007274224 A JP2007274224 A JP 2007274224A JP 2006095952 A JP2006095952 A JP 2006095952A JP 2006095952 A JP2006095952 A JP 2006095952A JP 2007274224 A JP2007274224 A JP 2007274224A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- transfer
- macroblock
- memory area
- information
- 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.)
- Withdrawn
Links
Images
Landscapes
- Image Input (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
Abstract
Description
本発明は画像処理装置に関し、特に画像信号をマクロブロック単位に符号化/復号化処理する画像処理装置に関する。 The present invention relates to an image processing apparatus, and more particularly to an image processing apparatus that encodes / decodes an image signal in units of macroblocks.
近年、画像符号化/復号化方式は、PVR(Personal Video Recorder)やカムコーダなどに応用され、これらディジタル家電の市場は拡大を続けている。市場が要求する高解像度かつ低コストな製品を実現するためには、LSIやFPGA(Field Programmable Gate Array)などのハードウェアによる実現が不可欠であるが、動画像の符号化/復号化は多大な処理量を必要とし、消費電力が大きくなるため、消費電力を低減できるよう、回路規模の削減や適切な信号制御などが求められる。 In recent years, image encoding / decoding systems have been applied to PVRs (Personal Video Recorders), camcorders, etc., and the market for these digital home appliances continues to expand. In order to realize a high-resolution and low-cost product required by the market, it is indispensable to use hardware such as LSI and FPGA (Field Programmable Gate Array), but the encoding / decoding of moving images is enormous. Since a processing amount is required and power consumption is increased, circuit scale reduction and appropriate signal control are required so that power consumption can be reduced.
一方、画像符号化方式では、一般に空間的な相関性を用いて情報量圧縮を行うため、符号化対象のマクロブロックに隣接する、すでに符号化済みのマクロブロックのマクロブロック情報を参照して符号化する方式が多用されている。マクロブロック情報としては、符号化のモード、Inter予測の際の動きベクトル値、DCT(Discrete Cosine Transform)後の有効係数個数などがあげられる。 On the other hand, in the image coding method, since the amount of information is generally compressed using spatial correlation, the coding is performed by referring to the macroblock information of an already coded macroblock adjacent to the macroblock to be coded. Many methods are used. Examples of the macroblock information include a coding mode, a motion vector value in inter prediction, and the number of effective coefficients after DCT (Discrete Cosine Transform).
マクロブロック情報の量は画面サイズに比例して大きくなるが、特に高精細テレビジョン等の大画面を備える装置で、マクロブロック情報をSRAM(Static Random Access Memory)のような高速メモリのみで保持しようとすると、回路規模が増加することになる。そこで、通常は、SRAMと比べると低速ではあるが大容量のDRAM(Dynamic RAM)も併用して、マクロブロック情報を保持することが一般的に行われている。 The amount of macroblock information increases in proportion to the screen size. In particular, in a device with a large screen such as a high-definition television, keep the macroblock information only with a high-speed memory such as SRAM (Static Random Access Memory). Then, the circuit scale increases. Therefore, in general, macroblock information is generally held by using a large-capacity DRAM (Dynamic RAM) together with a slower speed than an SRAM.
図14はDRAMとSRAMを含む画像処理装置の概略構成を示す図である。画像処理装置100は、符号化/復号化回路101、DP(dual port)−SRAM102a、102b、転送回路103、DRAM104から構成される。DP−SRAM102a、102bは、デュアルポートを有して、書き出しと読み込みとを独立に行えるSRAMである。
FIG. 14 is a diagram showing a schematic configuration of an image processing apparatus including a DRAM and an SRAM. The image processing apparatus 100 includes an encoding /
符号化/復号化回路101は、マクロブロックの符号化処理または復号化処理を行う度に、処理の結果得られたマクロブロック情報をDP−SRAM102aに出力する。また、必要に応じてDP−SRAM102bから、処理済のマクロブロックのマクロブロック情報を取り出し、マクロブロックの符号化/復号化処理に用いる。
The encoding /
転送回路103は、DP−SRAM102aがオーバーフローせず、かつDP−SRAM102bに、符号化/復号化処理に必要となる隣接のマクロブロック情報が常時存在しているように、マクロブロック情報をDP−SRAM102aからDRAM104へ、DRAM104からDP−SRAM102bへと、FIFO(First-In/First-Out)形式で適宜転送する。
The
このように、画像処理装置100のメモリ周辺構成としては、主記憶にはDRAM104等の低速メモリを使い、レイテンシ(遅延時間)隠蔽のために、符号化/復号化回路101とのインターフェース部分のみDP−SRAM102a、102bの高速メモリを用いるのが一般的な構成である。
As described above, as the memory peripheral configuration of the image processing apparatus 100, a low-speed memory such as the
なお、画像処理のメモリ容量の低減化を図った従来の技術としては、1つのマクロブロックを4つのサブブロックに分割して処理することによって、多重ランダムアクセス可能な共有メモリシステムを使用しなくても並列処理を行う技術が提案されている(例えば、特許文献1)。
図14に示す従来の画像処理装置100の構成では、処理速度を優先するために2個のデュアルポートのSRAMが用いられているが、低消費電力化のためには、SRAMの個数を削減し、シングルポートSRAMを採択した方が望ましい。 In the configuration of the conventional image processing apparatus 100 shown in FIG. 14, two dual-port SRAMs are used to prioritize the processing speed. However, in order to reduce power consumption, the number of SRAMs is reduced. It is desirable to adopt a single port SRAM.
このとき、1つのシングルポートのSRAMを使用して、図14と同じような動作を実現する装置を構成しようとした場合、SRAMの1つのポートに対するアクセスを、時分割によって調停制御する装置構成が考えられる。 At this time, if one single-port SRAM is used to configure a device that realizes the same operation as in FIG. 14, the device configuration that controls arbitration by time division of access to one port of the SRAM is as follows. Conceivable.
図15はシングルポートSRAMを用いた構成を示す図である。画像処理装置110は、符号化/復号化回路111、SRAM112、転送回路113、DRAM114、調停回路115から構成される。
FIG. 15 is a diagram showing a configuration using a single port SRAM. The image processing apparatus 110 includes an encoding /
調停回路115は、SRAM112に対する4つのアクセスを調停する。4つのアクセスとは、符号化/復号化回路111からSRAM112への書き込みアクセス、SRAM112から符号化/復号化回路111への読み出しアクセス、転送回路113を介してのDRAM114からSRAM112への書き込みアクセス、転送回路113を介してのSRAM112からDRAM114への読み出しアクセスの4つである。調停回路115は、これらのアクセスに対して、SRAM112の1つのポートを時分割で、符号化/復号化回路111及び転送回路113で利用させるように調停制御を行う。
The
一方、リアルタイム処理を実現するにあたり、1マクロブロックあたりの処理時間は画面サイズ、フレームレートにより制約される。H.264ではマクロブロックは16×16画素のサイズであるので、フルハイビジョン(1080画素)では約2μsしか1マクロブロックの処理に充てられないことになる。 On the other hand, when realizing real-time processing, the processing time per macroblock is limited by the screen size and the frame rate. H. In H.264, the size of a macroblock is 16 × 16 pixels, and in full high-definition (1080 pixels), only about 2 μs can be used for processing of one macroblock.
したがって、図15のように、シングルポートSRAMを用いて、単に時分割によるアクセス調停を行う構成に変更しただけでは、アクセスが競合したときの調停待ち時間が頻繁に発生することになるので、図14で示した4ポート独立のメモリ構成に比べて、その調停待ち時間の分だけ処理時間の増加を招いてしまうといった問題があった。 Therefore, as shown in FIG. 15, by simply changing to a configuration that performs access arbitration by time division using a single-port SRAM, arbitration waiting time when access conflicts frequently occurs. Compared to the 4-port independent memory configuration shown in FIG. 14, there is a problem that the processing time is increased by the arbitration waiting time.
また、符号化/復号化回路111は、その処理内容によってはマクロブロック毎の圧縮率の違い等によって処理時間も変動する。図15のように、時分割処理によりポートを利用する構成では、ごく短時間で符号化/復号化処理が終わっても、転送回路113がポートを使用中であれば符号化/復号化回路111は、ポートが空くのを待たねばならない。このポートの空き待ち時間は、そのまま全体の処理時間の増加を招くことになる。
In addition, the encoding /
本発明はこのような点に鑑みてなされたものであり、メモリへのアクセス時間を低減し、かつ高速メモリまたは低速メモリに対して、適切なアクセス分配を行って、少ない回路規模で高速な画像処理を行う画像処理装置を提供することを目的とする。 The present invention has been made in view of these points, and reduces the access time to the memory, and performs appropriate access distribution to the high-speed memory or the low-speed memory, so that a high-speed image can be obtained with a small circuit scale. An object of the present invention is to provide an image processing apparatus that performs processing.
本発明では上記課題を解決するために、図1に示すような、画像信号を符号化/復号化処理する画像処理装置10において、処理済みのマクロブロックのマクロブロック情報を格納する第1のメモリ11と、第1のメモリ11から転送されたマクロブロック情報を格納しておく取得用メモリ領域12aと、第1のメモリ11へ転送して第1のメモリ11に格納させるべきマクロブロック情報を格納しておく退避用メモリ領域12bとでメモリ領域が2つに分割されたシングルポートの第2のメモリ12と、マクロブロック情報を格納する保持メモリ13aと、保持メモリ13aからマクロブロック情報を読み出して参照して、処理対象のマクロブロックの符号化/復号化処理を行い、処理完了後に得られたマクロブロック情報を保持メモリ13aに格納する符号化/復号化処理部13bと、符号化/復号化処理が完了した際に、保持メモリ13aにあるマクロブロック情報を、退避用メモリ領域12bへ転送するための退避用メモリ領域転送要求Aを出力し、符号化/復号化処理を開始する際に、取得用メモリ領域12aにあるマクロブロック情報を保持メモリ13aへ転送するための保持メモリ取り込み転送要求Bを出力する転送要求判定部13cと、退避用メモリ領域転送要求Aまたは保持メモリ取り込み転送要求Bに対する許可応答があれば、マクロブロック情報の転送制御を行うマクロブロック情報転送部13dと、から構成される画像処理部13と、第1のメモリ11の占有量を監視し、第1のメモリ11に空きがあれば、退避用メモリ領域12bから第1のメモリ11へマクロブロック情報の転送を行うための第1のメモリ転送要求Cを出力し、第1のメモリ11にマクロブロック情報が格納されている場合は、第1のメモリ11から取得用メモリ領域12aへマクロブロック情報の転送を行う取得用メモリ領域転送要求Dを出力し、第1のメモリ転送要求Cまたは取得用メモリ領域転送要求Dに対する許可応答があれば、マクロブロック情報の転送制御を行うメモリ転送制御部14と、退避用メモリ領域転送要求A、保持メモリ取り込み転送要求B、第1のメモリ転送要求C、取得用メモリ領域転送要求Dを受信して、転送可能な場合は許可応答を出力して、第2のメモリ12のポートアクセスの調停制御を行い、調停制御を行う際は、画像処理部13からの退避用メモリ領域転送要求A及び保持メモリ取り込み転送要求Bを最優先とし、退避用メモリ領域12bと取得用メモリ領域12aのオーバーフロー/アンダーフローを発生させないように、メモリ転送制御部14からの第1のメモリ転送要求C及び取得用メモリ領域転送要求Dを次に優先させるメモリアクセス調停部15と、を有することを特徴とする画像処理装置10が提供される。
In the present invention, in order to solve the above-described problem, a first memory for storing macroblock information of a processed macroblock in an
ここで、第1のメモリ11は、処理済みのマクロブロックのマクロブロック情報を格納する。第2のメモリ12は、第1のメモリ11から転送されたマクロブロック情報を格納しておく取得用メモリ領域12aと、第1のメモリ11へ転送して格納させるべきマクロブロック情報を格納しておく退避用メモリ領域12bとでメモリ領域が分割されたシングルポートのメモリである。保持メモリ13aは、マクロブロック情報を格納する。符号化/復号化処理部13bは、保持メモリ13aからマクロブロック情報を読み出して参照して、処理対象のマクロブロックの符号化/復号化処理を行い、処理完了後のマクロブロック情報を保持メモリ13aに格納する。転送要求判定部13cは、符号化/復号化処理が完了した際に、保持メモリ13aにあるマクロブロック情報を、退避用メモリ領域12bへ転送するための退避用メモリ領域転送要求Aを出力し、符号化/復号化処理を開始する際に、取得用メモリ領域12aにあるマクロブロック情報を保持メモリ13aへ転送するための保持メモリ取り込み転送要求Bを出力する。マクロブロック情報転送部13dは、退避用メモリ領域転送要求Aまたは保持メモリ取り込み転送要求Bに対する許可応答があれば、マクロブロック情報の転送制御を行う。メモリ転送制御部14は、第1のメモリ11の占有量を監視し、第1のメモリ11に空きがあれば、退避用メモリ領域12bから第1のメモリ11へマクロブロック情報の転送を行うための第1のメモリ転送要求Cを出力し、第1のメモリ11にマクロブロック情報が格納されている場合は、第1のメモリ11から取得用メモリ領域12aへマクロブロック情報の転送を行う取得用メモリ領域転送要求Dを出力し、第1のメモリ転送要求Cまたは取得用メモリ領域転送要求Dに対する許可応答があれば、マクロブロック情報の転送制御を行う。メモリアクセス調停部15は、退避用メモリ領域転送要求A、保持メモリ取り込み転送要求B、第1のメモリ転送要求C、取得用メモリ領域転送要求Dを受信して、転送可能な場合は許可応答を出力して、第2のメモリ12に対するポートアクセスの調停制御を行い、調停制御を行う際は、画像処理部13からの退避用メモリ領域転送要求A及び保持メモリ取り込み転送要求Bを最優先とし、退避用メモリ領域12bと取得用メモリ領域12aのオーバーフロー/アンダーフローを発生させないように、メモリ転送制御部14からの第1のメモリ転送要求C及び取得用メモリ領域転送要求Dを次に優先させる。
Here, the
本発明の画像処理装置は、第1のメモリと、取得用メモリ領域と退避用メモリ領域とでメモリ領域が2つに分割されたシングルポートの第2のメモリと、保持メモリとを有し、保持メモリからマクロブロック情報を退避用メモリ領域へ転送するための退避用メモリ領域転送要求、取得用メモリ領域にあるマクロブロック情報を保持メモリへ転送するための保持メモリ取り込み転送要求、退避用メモリ領域から第1のメモリへマクロブロック情報の転送を行うための第1のメモリ転送要求、第1のメモリから取得用メモリ領域へマクロブロック情報の転送を行う取得用メモリ領域転送要求を生成して、退避用メモリ領域転送要求及び保持メモリ取り込み転送要求を最優先とし、第1のメモリ転送要求及び取得用メモリ領域転送要求を次に優先させて調停制御を行う構成とした。これにより、メモリへのアクセス時間を低減し、かつ高速メモリまたは低速メモリに対して、適切なアクセス分配を行って、少ない回路規模で高速な画像処理を行うことが可能になる。 An image processing apparatus according to the present invention includes a first memory, a single-port second memory in which a memory area is divided into two parts by an acquisition memory area and a save memory area, and a holding memory. Save memory area transfer request to transfer macroblock information from the holding memory to the save memory area, hold memory capture transfer request to transfer macroblock information in the acquisition memory area to the hold memory, save memory area Generating a first memory transfer request for transferring the macroblock information from the first memory to the first memory, and an acquisition memory area transfer request for transferring the macroblock information from the first memory to the acquisition memory area, The evacuation memory area transfer request and the retention memory fetch transfer request are given top priority, and the first memory transfer request and acquisition memory area transfer request are given priority next. It was configured to perform the arbitration control Te. Thereby, it is possible to reduce the access time to the memory and perform high-speed image processing with a small circuit scale by performing appropriate access distribution to the high-speed memory or the low-speed memory.
以下、本発明の実施の形態を図面を参照して説明する。図1は画像処理装置の原理図である。第1の実施の形態の画像処理装置10は、第1のメモリ11、第2のメモリ12、画像処理部13、メモリ転送制御部14、メモリアクセス調停部15から構成される。
Hereinafter, embodiments of the present invention will be described with reference to the drawings. FIG. 1 is a principle diagram of an image processing apparatus. The
画像処理装置10は、MPEG4、H.264などの画像符号化/復号化処理をハードウェアでリアルタイムに行う際に、処理対象のマクロブロックに隣接する、すでに符号化/復号化済みのマクロブロックのマクロブロック情報を参照して、符号化/復号化処理を行う装置である。
The
マクロブロック情報とは、例えば、符号化のモード、Inter予測の際の動きベクトル値、DCT後の有効係数個数等を含み、画像信号をマクロブロック単位で符号化した際の符号化処理結果の情報、または画像信号をマクロブロック単位で復号化した際の復号化処理結果の情報のことであり、このマクロブロック情報は、次に符号化/復号化処理される処理対象のマクロブロックの参照情報として用いられるものである。 The macroblock information includes, for example, an encoding mode, a motion vector value at the time of Inter prediction, the number of effective coefficients after DCT, and the like, and information on an encoding process result when an image signal is encoded in units of macroblocks. Or the decoding process result information when the image signal is decoded in units of macroblocks. This macroblock information is used as reference information for a processing target macroblock to be encoded / decoded next. It is used.
第1のメモリ11は、低速メモリであるDRAMに該当し、処理(符号化/復号化処理)済みのマクロブロックのマクロブロック情報を格納する。以下、第1のメモリ11をDRAM11と呼ぶ。
The
第2のメモリ12は、高速メモリであるSRAMに該当し、DRAM11から転送されたマクロブロック情報を格納しておく取得用メモリ領域12aと、DRAM11へ転送して格納させるべきマクロブロック情報を一旦格納しておく退避用メモリ領域12bとでメモリ領域が分割されたシングルポートのメモリである。以下、第2のメモリ12をSRAM12と呼ぶ。
The
画像処理部13は、保持メモリ13a(以下、保持メモリは保持FFと呼ぶ)、符号化/復号化処理部13b、転送要求判定部13c、マクロブロック情報転送部13dから構成される。保持FF13aは、マクロブロック情報を一時格納するメモリである。
The
符号化/復号化処理部13bは、保持FF13aからマクロブロック情報を読み出して参照して、処理対象のマクロブロックの符号化/復号化処理を行い、処理完了後のマクロブロック情報を保持FF13aに格納する。
The encoding /
転送要求判定部13cは、符号化/復号化処理が完了した際に、保持FF13aにあるマクロブロック情報を、退避用メモリ領域12bへ転送するための退避用メモリ領域転送要求Aを出力する。
When the encoding / decoding process is completed, the transfer
また、符号化/復号化処理を開始する際には、取得用メモリ領域12aにあるマクロブロック情報を保持FF13aへ転送して取り込むための保持FF取り込み転送要求Bを出力する。
When the encoding / decoding process is started, a holding FF fetch transfer request B for transferring and fetching macroblock information in the
マクロブロック情報転送部13dは、退避用メモリ領域転送要求Aまたは保持FF取り込み転送要求Bによる許可応答にもとづき、保持FF13a内のマクロブロック情報を退避用メモリ領域12bに転送したり、取得用メモリ領域12a内のマクロブロック情報を保持FF13aに転送したりする。
The macroblock
メモリ転送制御部14は、DRAM11の占有量を監視し、DRAM11に空きがあれば、退避用メモリ領域12bからDRAM11へマクロブロック情報の転送を行うための第1のメモリ転送要求C(以下、DRAM転送要求Cと呼ぶ)を出力する。また、DRAM11にマクロブロック情報が格納されている場合は、DRAM11から取得用メモリ領域12aへマクロブロック情報の転送を行う取得用メモリ領域転送要求Dを出力する。さらにDRAM転送要求Cまたは取得用メモリ領域転送要求Dに対する許可応答があれば、マクロブロック情報の転送制御を行う。
The memory
メモリアクセス調停部15は、退避用メモリ領域転送要求A、保持FF取り込み転送要求B、第1のメモリ転送要求C、取得用メモリ領域転送要求Dを受信して、転送可能な場合は許可応答を出力して、SRAM12に対するポートアクセスの調停制御を行う。この場合、画像処理部13からの退避用メモリ領域転送要求A及び保持FF取り込み転送要求Bを最優先とし、退避用メモリ領域12bと取得用メモリ領域12aのオーバーフロー/アンダーフローを発生させないように、メモリ転送制御部14からのDRAM転送要求C及び取得用メモリ領域転送要求Dを次に優先させて、調停制御を行う。
The memory
ここで、処理対象のマクロブロックに対して、どのマクロブロックのマクロブロック情報をメモリに格納するかに関するメモリ格納処理について説明する。図2はマクロブロック情報を取得する際の隣接マクロブロックを示す図である。符号化処理時、画面内のマクロブロックをラスタ順(図の点線矢印方向)に処理していくが、現在の処理対象のマクロブロックをマクロブロックMB0とすると、マクロブロックMB0周辺の符号化済み隣接マクロブロックは、マクロブロックMB0の1ライン左上、1ライン真上、1ライン右上、同一ライン左横に位置するマクロブロックMBr1〜MBr4の4つとなる。 Here, a memory storing process related to which macroblock information of a macroblock to be stored in the memory for the macroblock to be processed will be described. FIG. 2 is a diagram illustrating adjacent macroblocks when macroblock information is acquired. During the encoding process, the macroblocks in the screen are processed in the raster order (in the direction of the dotted arrow in the figure). If the current macroblock to be processed is the macroblock MB0, the encoded neighboring areas around the macroblock MB0 are encoded. There are four macro blocks, macro blocks MBr1 to MBr4, which are located on the upper left of the macro block MB0, on the upper left of the line, on the upper right of the line, on the upper right of the line, and on the left of the same line.
したがって、マクロブロックMB0の符号化を行う場合は、これらマクロブロックMBr1〜MBr4それぞれからの符号化情報を用いることになる。また、この場合、マクロブロックMBr3以降からマクロブロックMBr4の左手前に位置するマクロブロック(図の点線枠で示すマクロブロックグループg1)までのマクロブロック情報は、マクロブロックMB0以降で処理するマクロブロック情報として、今後の処理のために用いられるものなので、マクロブロックグループg1のマクロブロック情報は、マクロブロックMB0を処理する時点で保持しておく必要がある。すなわち、現時点で参照しているマクロブロックMBr1〜MBr4のマクロブロック情報の分と合わせて、図の点線枠で示す各マクロブロックのマクロブロック情報も、メモリに保持しておくことになる。 Therefore, when encoding macroblock MB0, the encoding information from each of these macroblocks MBr1-MBr4 is used. In this case, the macroblock information from the macroblock MBr3 onward to the macroblock located in front of the macroblock MBr4 (the macroblock group g1 indicated by the dotted frame in the figure) is the macroblock information processed after the macroblock MB0. Therefore, the macroblock information of the macroblock group g1 needs to be held at the time of processing the macroblock MB0 because it is used for future processing. That is, together with the macro block information of the macro blocks MBr1 to MBr4 referenced at the present time, the macro block information of each macro block indicated by the dotted frame in the figure is also held in the memory.
マクロブロックMB0の処理後は、次はマクロブロックMB1が処理対象となり、このとき、マクロブロックMBr2、MBr3、MBr5、MB0のそれぞれのマクロブロック情報が参照されることになる。 After the processing of the macro block MB0, the macro block MB1 is the next processing target, and at this time, the macro block information of the macro blocks MBr2, MBr3, MBr5, and MB0 is referred to.
図2を使って、画像処理装置10におけるマクロブロック情報の流れの一例について説明すると、符号化/復号化処理部13bでマクロブロックMB0の符号化/復号化処理の開始時には、保持FF13aは、最低でもマクロブロックMBr1〜MBr4のそれぞれのマクロブロック情報を保持していることになる。
An example of the flow of macroblock information in the
保持FF13aが、マクロブロックMBr1〜MBr4のそれぞれのマクロブロック情報を保持していると仮定すると、マクロブロックMB0の処理が終了した後、マクロブロックMB0のマクロブロック情報は、保持FF13aに格納される。また、マクロブロックMBr4のマクロブロック情報は、退避用メモリ領域12bに転送され(退避用メモリ領域転送要求Aの許可応答があった場合)、その後、DRAM11へ転送されて格納される。さらに、次のマクロブロックMB1の処理に備えて、取得用メモリ領域12aからはマクロブロックMBr5のマクロブロック情報が、保持FF13aに転送されて(保持FF取り込み転送要求Bの許可応答があった場合)格納されることになる(マクロブロックMBr5のマクロブロック情報だけでなく、マクロブロックグループg1の中のより多くのマクロブロック情報を保持FF13aに転送しておいてもよい)。なお、メモリ間のマクロブロック情報の流れ及びメモリ調停の詳細については図4〜図7で後述する。
Assuming that the holding
次に第1の実施の形態の画像処理装置10の構成及び動作について詳しく説明する。図3は画像処理装置10の構成を示す図である。第1の実施の形態の画像処理装置10は、DRAM11、SRAM12、画像処理部13、DRAM転送制御部14(図1のメモリ転送制御部14に該当)、メモリアクセス調停部15から構成され、メモリアクセス調停部15において、SRAM12のポートアクセスの優先度判定を行う装置である。
Next, the configuration and operation of the
なお、図1で上述した構成要素の説明は省略する。また、退避用メモリ領域転送要求A、保持FF取り込み転送要求B、DRAM転送要求C、取得用メモリ領域転送要求Dのそれぞれを、以降では単に転送要求A、B、C、Dとも表記する。 The description of the components described above with reference to FIG. In addition, each of the save memory area transfer request A, the holding FF fetch transfer request B, the DRAM transfer request C, and the acquisition memory area transfer request D is hereinafter also simply referred to as transfer requests A, B, C, and D.
画像処理部13は、保持FF13a、符号化/復号化処理部13b、転送要求判定部13c、転送回路13d−1、13d−2を含む。転送回路13d−1、13d−2は、図1のマクロブロック情報転送部13dに含まれる。
The
転送要求判定部13cは、メモリアクセス調停部15から送信される、退避用メモリ領域転送要求Aの許可応答を受信すると、転送指示を転送回路13d−1に与える。転送回路13d−1は、転送指示にもとづき、保持FF13a上のマクロブロック情報を、SRAM12の退避用メモリ領域12bへ転送し、SRAM12は、退避用メモリ領域12b内に、そのマクロブロック情報を格納する。
When the transfer
また、転送要求判定部13cは、メモリアクセス調停部15から送信される、保持FF取り込み転送要求Bの許可応答を受信すると、転送指示を転送回路13d−2に与える。転送回路13d−2は、転送指示にもとづき、SRAM12の取得用メモリ領域12aに格納されているマクロブロック情報を読み出して、保持FF13aへ転送し、保持FF13aは、そのマクロブロック情報を格納する。
When the transfer
DRAM転送制御部14は、転送要求判定部14a、占有量監視回路14b、転送回路14c−1、14c−2を含む。占有量監視回路14bは、DRAM11のメモリ占有量を監視して、監視結果を転送要求判定部14aへ送信する。転送要求判定部14aは、図1で上述したように、占有量の状態にもとづいて、DRAM転送要求Cまたは取得用メモリ領域転送要求Dを送信する。
The DRAM
転送要求判定部14aは、メモリアクセス調停部15から送信される、DRAM転送要求Cの許可応答を受信すると、転送指示を転送回路14c−2に与える。転送回路14c−2は、転送指示にもとづき、SRAM12の退避用メモリ領域12bに格納されているマクロブロック情報を読み出して、DRAM11(DRAM11内の退避用メモリ領域)へ転送し、DRAM11は、そのマクロブロック情報を格納する。
When the transfer
また、転送要求判定部14aは、メモリアクセス調停部15から送信される、取得用メモリ領域転送要求Dの許可応答を受信すると、転送指示を転送回路14c−1に与える。転送回路14c−1は、転送指示にもとづき、DRAM11上のマクロブロック情報を、SRAM12の取得用メモリ領域12aへ転送し、SRAM12は、取得用メモリ領域12a内に、そのマクロブロック情報を格納する。
When the transfer
メモリアクセス調停部15は、調停制御部15a、占有量監視回路15b−1、15c−1を含む。占有量監視回路15b−1は、退避用メモリ領域12bのメモリ占有量を監視して、監視結果である占有量通知b1を出力し、占有量監視回路15c−1は、取得用メモリ領域12aのメモリ占有量を監視して、監視結果である占有量通知c1を出力する。
The memory
調停制御部15aは、占有量通知b1から退避用メモリ領域12bに空きがあることを認識し、かつ退避用メモリ領域転送要求Aを受信した場合には、退避用メモリ領域転送要求Aに対する許可応答を画像処理部13へ送信する。
When the
また、占有量通知c1から取得用メモリ領域12aにマクロブロック情報が格納されていることを認識し、かつ保持FF取り込み転送要求Bを受信した場合には、保持FF取り込み転送要求Bに対する許可応答を画像処理部13へ送信する。
Further, when it is recognized from the occupation amount notification c1 that the macro block information is stored in the
さらに、調停制御部15aは、占有量通知b1から退避用メモリ領域12bにマクロブロック情報が格納されていることを認識し、かつDRAM転送要求Cを受信した場合には、DRAM転送要求Cに対する許可応答をDRAM転送制御部14へ送信する。
Further, the
さらにまた、占有量通知c1から取得用メモリ領域12aに空きがあることを認識し、かつ取得用メモリ領域転送要求Dを受信した場合には、取得用メモリ領域転送要求Dに対する許可応答をDRAM転送制御部14へ送信する。
Furthermore, when it is recognized from the occupation amount notification c1 that the
調停制御部15aでは、上記の4つのアクセス要求に対し、基本はラウンドロビンによる処理(アクセス要求を巡回させての処理)を行うが、画像処理部13からの要求があった場合にはこれを最優先とし、また、取得用メモリ領域12aと退避用メモリ領域12bの各領域のoverflow/underflowを発生させないようにアクセス要求を処理することを2番目に高い優先度として調停制御を行うものである。
The
次に第1の実施の形態の画像処理装置10の具体的な調停動作についてタイムチャートを用いて説明する。図4は画像処理装置10の調停動作を示すタイムチャートである。画像処理装置10の動作例として、符号化/復号化処理が短い場合をタイムチャートで示したものである。要求信号のネゲートは、応答信号をアサートすることで生じるのではなく、転送処理完了にてネゲートされるプロトコルとする。
Next, a specific arbitration operation of the
なお、図4に示す各サイクルの状態がわかりやすいように、図5〜図7に各サイクルの状態を表す状態遷移図を示す(実際にはメモリアクセス調停部15、DRAM転送制御部14を介して調停制御が行われるが図では省略している)。図5〜図7中の実線矢印は、転送要求A〜Dが許可されることによりマクロブロック情報が流れる様子を示し、点線矢印は、転送要求A〜Dのアサート状態(アサートしているだけでマクロブロック情報は流れていない状態)を示す。
In order to make the state of each cycle shown in FIG. 4 easy to understand, FIGS. 5 to 7 show state transition diagrams showing the state of each cycle (in practice, via the memory
〔CYC1〕
(初期状態)符号化/復号化処理部13bは、1マクロブロックの符号化/復号化処理が完了した直後とする。その処理結果のマクロブロック情報が保持FF13a上にあり、それを退避するために転送要求A(保持FF13a→退避用メモリ領域12b)を調停制御部15aにアサートする。この状態では、退避用メモリ領域12bは空であり、取得用メモリ領域12aは満杯であるとする。DRAM転送制御部14は、退避/取得共に制御は不要な状態であるので何も転送要求は発しない。
[CYC1]
(Initial state) The encoding /
(展開)調停制御部15aは、転送要求Aを受信して転送を許可する。符号化/復号化処理部13bは、保持FF13aから退避用メモリ領域12bへマクロブロック情報を転送する。転送完了により、転送要求Aはネゲートされる。
(Development) The
〔CYC2〕
(初期状態)符号化/復号化処理部13bは、次マクロブロックの符号化/復号化処理を行うために転送要求B(取得用メモリ領域12a→保持FF13a)を調停制御部15aにアサートする。退避用メモリ領域12bはCYC1での転送により空ではなくなっている。DRAM転送制御部14は、退避用メモリ領域12b内のマクロブロック情報のDRAM11退避のために転送要求C(退避用メモリ領域12b→DRAM11)をアサートする(DRAM11上の退避用領域が満杯ではない状況を想定)。
[CYC2]
(Initial state) The encoding /
(展開)調停制御部15aは、優先度の高い転送要求Bを受信し、その転送を許可する。符号化/復号化処理部13bは、取得用メモリ領域12aから保持FF13aへの転送を行う。転送完了により、転送要求Bはネゲートされる。
(Development) The
〔CYC3〕
(初期状態)符号化/復号化処理部13bは、CYC2で取得用メモリ領域12aから転送されたマクロブロック情報を用いて符号化/復号化処理を行う。処理中であるので、転送要求は発生しない。また、DRAM転送制御部14からの転送要求Cはアサートされたままである。加えて、CYC2での取得用メモリ領域12a→保持FF13aへの転送により、取得用メモリ領域12aは満杯ではなくなっているので、その空き領域に新たなDRAM11上のマクロブロック情報を取り込むための転送要求D(DRAM11→取得用メモリ領域12a)をアサートする(DRAM11上の退避用メモリ領域が空ではない状況を想定)。
[CYC3]
(Initial state) The encoding /
(展開)調停制御部15aは、ラウンドロビンにより転送要求Cを受信し、その転送を許可する。これにより、DRAM転送制御部14は、退避用メモリ領域12bからDRAM11への転送を行う。
(Development) The
〔CYC4〕
(初期状態)符号化/復号化処理部13bは、1マクロブロックの符号化/復号化処理が完了し、転送要求A(保持FF13a→退避用メモリ領域12b)をアサートする。DRAM転送制御部14による、退避用メモリ領域12bからDRAM11への転送はCYC3から続いている。転送要求C、Dはアサートされたままである。
[CYC4]
(Initial state) The encoding /
(展開)CYC3からの退避用メモリ領域12bからDRAM11への転送が引き続き行われているので、調停制御部15aは転送要求A(保持FF13a→退避用メモリ領域12b)、転送要求D(DRAM11→取得用メモリ領域12a)共に放置したままとする。転送完了により、転送要求Cはネゲートされる。
(Development) Since the transfer from the
〔CYC5〕
(初期状態)符号化/復号化処理部13bは、引き続き転送要求Aをアサートしており、DRAM転送制御部14は、引き続き転送要求Dをアサートしている。CYC3、4の転送により退避用メモリ領域12bは空になっているので、転送要求Cは発生しない。
[CYC5]
(Initial state) The encoding /
(展開)調停制御部15aは、優先度の高い転送要求Aを受信し、その転送を許可する。符号化/復号化処理部13bは、保持FF13aから退避用メモリ領域12bへの転送を行う。転送完了により、転送要求Aはネゲートされる。
(Development) The
〔CYC6〕
(初期状態)符号化/復号化処理部13bは、次マクロブロックの符号化/復号化処理を行うために転送要求Bをアサートする。DRAM転送制御部14は、引き続き転送要求Dをアサートしている。加えて、退避用メモリ領域12bはCYC5での転送により空ではなくなっており、退避用メモリ領域12bに格納されているマクロブロック情報のDRAM11退避のために転送要求Cをアサートする。
[CYC6]
(Initial state) The encoding /
(展開)調停制御部15aは、優先度の高い転送要求Bを受信し、その転送を許可する。符号化/復号化処理部13bは、取得用メモリ領域12aから保持FF13aへの転送を行う。転送完了により、転送要求Bはネゲートされる。
(Development) The
〔CYC7〕
(初期状態)符号化/復号化処理部13bは、CYC6で取得用メモリ領域12aから保持FF13aへ転送したマクロブロック情報を用いて符号化/復号化処理を行う。処理中であるので、転送要求は発生しない。DRAM転送制御部14は、引き続き転送要求C、Dをアサートしている。
[CYC7]
(Initial state) The encoding /
(展開)調停制御部15aは、ラウンドロビンにより転送要求Dを受信し、その転送を許可する。DRAM転送制御部14は、DRAM11から取得用メモリ領域12aへの転送を行う。
(Development) The
〔CYC8〕
(初期状態)符号化/復号化処理部13bは、1マクロブロックの符号化/復号化処理が完了し、転送要求Aをアサートする。DRAM転送制御部14によるDRAM11から取得用メモリ領域12aへの転送はCYC7から続いている。転送要求C、Dはアサートされたままである。
[CYC8]
(Initial state) The encoding /
(展開)CYC7からの転送が引き続き行われているので、調停制御部15aは転送要求A、C共に放置したままとする。転送完了により、転送要求Dはネゲートされる。
〔CYC9〕
(初期状態)符号化/復号化処理部13bは、引き続き、転送要求Aをアサートしている。DRAM転送制御部14は、引き続き、転送要求Cをアサートしている。加えて、CYC2にて発生した取得用メモリ領域12aの空の分しかCYC7、8では転送(DRAM11から取得用メモリ領域12aへの転送)されておらず、CYC6で発生した分の空き(取得用メモリ領域12aから保持FF13aへ転送した際にできた取得用メモリ領域12a上の空き)に、新たなDRAM11上のマクロブロック情報を取り込むための転送要求Dを再度アサートする。
(Development) Since the transfer from the CYC 7 continues, the
[CYC9]
(Initial state) The encoding /
(展開)調停制御部15aは、優先度の高い転送要求Aを受信し、その転送を許可する。符号化/復号化処理部13bは、保持FF13aから退避用メモリ領域12bへの転送を行う。転送完了により、転送要求Aはネゲートされる。
(Development) The
〔CYC10〕
(初期状態)符号化/復号化処理部13bは、次マクロブロックの符号化/復号化処理を行うために転送要求Bをアサートする。DRAM転送制御部14は、引き続き、転送要求C、Dをアサートしている。
[CYC10]
(Initial state) The encoding /
(展開)調停制御部15aは、優先度の高い転送要求Bを受信し、その転送を許可する。符号化/復号化処理部13bは、取得用メモリ領域12aから保持FF13aへの転送を行う。転送完了により、転送要求Bはネゲートされる。
(Development) The
上記の制御の結果、符号化/復号化処理部13bのマクロブロック処理時間がある程度の長さで、DRAM11への退避に要する時間と、DRAM11からの取得に要する時間の和と同程度である状況であれば、マクロブロック処理期間にSRAM12とDRAM11の間の転送が行われるという最も安定した状態となる。
As a result of the above control, the macroblock processing time of the encoding /
反対に、符号化/復号化処理部13bのマクロブロック処理時間が極端に短い場合は、SRAM12上の退避用メモリ領域12bと取得用メモリ領域12aの各領域が破綻しない限り、マクロブロック処理期間にはSRAM12とDRAM11の間の転送は退避か取得かどちらかのみが許可される。
On the other hand, if the macroblock processing time of the encoding /
以上説明したように、第1の実施の形態の構成によれば、符号化/復号化処理部13bから出力されるマクロブロック情報は、マクロブロック処理期間中は適宜、保持FF13aに書き込まれていき、全てが確定した時点でSRAM12への書き込みを行う。また、符号化/復号化処理部13bが使用するマクロブロック情報は、マクロブロック処理開始前にSRAM12から保持FF13aに一括して読み込まれ、符号化/復号化処理部13bはマクロブロック処理期間中にはその保持FF13a上の値を適宜参照して処理を行うこととした。このような構成にすることにより、符号化/復号化処理部13b側からのSRAM12のポートへのアクセス時間を短縮することが可能になる。
As described above, according to the configuration of the first embodiment, the macroblock information output from the encoding /
次に第2の実施の形態の画像処理装置について説明する。第2の実施の形態は、画像処理部とDRAM転送制御部とでポート使用権をやりとりしながら、SRAMへのポートアクセスを行うものである。 Next, an image processing apparatus according to a second embodiment will be described. In the second embodiment, port access to the SRAM is performed while exchanging port usage rights between the image processing unit and the DRAM transfer control unit.
図8は画像処理装置の原理図である。画像処理装置20は、DRAM(第1のメモリ)21、SRAM(第2のメモリ)22、画像処理部23、メモリ転送制御部24から構成される。
FIG. 8 is a principle diagram of the image processing apparatus. The
DRAM21は、処理(符号化/復号化処理)済みのマクロブロックのマクロブロック情報を格納する。SRAM22は、DRAM21から転送されたマクロブロック情報を格納しておく取得用メモリ領域22aと、DRAM21へ転送して、DRAM21に格納させるべきマクロブロック情報を格納しておく退避用メモリ領域22bとでメモリ領域が2つに分割されたシングルポートのメモリである。
The
画像処理部23は、保持FF(保持メモリ)23a、符号化/復号化処理部23b、画像処理側ポート使用権管理部23c、画像処理側マクロブロック情報転送部23dから構成される。
The
保持FF23aは、マクロブロック情報を一時格納するメモリである。符号化/復号化処理部23bは、保持FF23aからマクロブロック情報を読み出して参照して、処理対象のマクロブロックの符号化/復号化処理を行う。また、処理完了後に得られたマクロブロック情報を保持FF23aに格納する。
The holding
画像処理側マクロブロック情報転送部23dは、メモリ側ポート使用権譲渡通知Bが与えられていて(画像処理側ポート使用権管理部23cがメモリ側ポート使用権譲渡通知Bを受信して)、画像処理部23がSRAM22へアクセス可能なポート使用権を有する場合であって、符号化/復号化処理部23bの符号化/復号化処理が完了した際には、保持FF23aにあるマクロブロック情報を、退避用メモリ領域22bへ転送し、符号化/復号化処理部23bが符号化/復号化処理を開始する際には、取得用メモリ領域22aにあるマクロブロック情報を保持FF23aへ転送する。
The image processing side macroblock
画像処理側ポート使用権管理部23cは、取得用メモリ領域22aから保持FF23aへのマクロブロック情報の転送完了時に、ポート使用権を相手先(メモリ転送制御部24)へ譲渡するための画像処理側ポート使用権譲渡通知Aを出力する。また、符号化/復号化処理の完了時に、ポート使用権が画像処理部23側にない場合は、ポート使用権を強制的に要求するためのポート使用権要求通知Cを出力する。
The image processing side port usage
メモリ転送制御部24は、メモリ側ポート使用権管理部24aとメモリ側マクロブロック情報転送部24cから構成される。メモリ側マクロブロック情報転送部24cは、画像処理側ポート使用権譲渡通知Aが与えられて(メモリ側ポート使用権管理部24aが画像処理側ポート使用権譲渡通知Aを受信して)、メモリ転送制御部24がポート使用権を有する場合であって、退避用メモリ領域22bからDRAM21へマクロブロック情報の転送を行い、DRAM21から取得用メモリ領域22aへマクロブロック情報の転送を行う。
The memory transfer control unit 24 includes a memory side port usage
メモリ側ポート使用権管理部24aは、DRAM21から取得用メモリ領域22aへのマクロブロック情報の転送完了時、またはポート使用権要求通知Cを受信した場合には、メモリ側ポート使用権譲渡通知Bを出力して、ポート使用権を画像処理部23へ譲渡する。
The memory-side port usage
図9は画像処理装置20の構成を示す図である。なお、図8で上述した構成要素と同じ構成要素の説明は省略する。また、画像処理側ポート使用権譲渡通知A、メモリ側ポート使用権譲渡通知B、ポート使用権要求通知Cのそれぞれは、以下単に、譲渡通知A、譲渡通知B、要求通知Cとも表記する。
FIG. 9 is a diagram showing the configuration of the
画像処理部23は、保持FF23a、符号化/復号化処理部23b、使用権管理部23c(図8の画像処理側ポート使用権管理部23cに該当)、転送回路23d−1、23d−2を含む。転送回路23d−1、23d−2は、図8の画像処理側マクロブロック情報転送部23dに含まれる。
The
使用権管理部23cは、メモリ側ポート使用権譲渡通知Bを受信すると、ポート使用権を取得する。このとき、符号化/復号化処理部23bの符号化/復号化処理が完了した場合には、転送指示を転送回路23d−1に与える。転送回路23d−1は、転送指示にもとづき、保持FF23a上のマクロブロック情報を、SRAM22の退避用メモリ領域22bへ転送し、SRAM22は、退避用メモリ領域22b内に、そのマクロブロック情報を格納する。
When the usage
また、符号化/復号化処理部23bが符号化/復号化処理を開始する場合には、転送指示を転送回路23d−2に与える。転送回路23d−2は、転送指示にもとづき、SRAM22の取得用メモリ領域22aに格納されているマクロブロック情報を読み出して、保持FF23aへ転送し、保持FF23aは、そのマクロブロック情報を格納する。
When the encoding /
一方、DRAM転送制御部24(図8のメモリ転送制御部24に該当)は、使用権管理部24a−1、転送判定部24a−2、転送回路24c−1、24c−2、占有量監視回路24b−1〜24b−3から構成される。使用権管理部24a−1と転送判定部24a−2は、図8のメモリ側ポート使用権管理部24aに含まれ、転送回路24c−1、24c−2は、図8のメモリ側マクロブロック情報転送部24cに含まれる。
On the other hand, the DRAM transfer control unit 24 (corresponding to the memory transfer control unit 24 in FIG. 8) includes a usage
占有量監視回路24b−1は、DRAM21のメモリ占有量を監視して、監視結果b1を転送判定部24a−2へ送信する。占有量監視回路24b−2は、取得用メモリ領域22aのメモリ占有量を監視して、監視結果b2を転送判定部24a−2へ送信する。占有量監視回路24b−3は、退避用メモリ領域22bのメモリ占有量を監視して、監視結果b3を転送判定部24a−2へ送信する。
The occupation
使用権管理部24a−1は、画像処理側ポート使用権譲渡通知Aを受信すると、ポート使用権を取得したことを転送判定部24a−2へ通知する。このとき、転送判定部24a−2は、監視結果b1からDRAM21にマクロブロック情報があり、監視結果b2から取得用メモリ領域22aに空きがあることを認識した場合には、転送指示を転送回路24c−1へ送信する。転送回路24c−1は、転送指示にもとづいて、DRAM21上のマクロブロック情報を、SRAM22の取得用メモリ領域22aへ転送し、SRAM22は、取得用メモリ領域22a内に、そのマクロブロック情報を格納する。
When the usage
また、転送判定部24a−2は、監視結果b1からDRAM21に空きがあり、監視結果b3から退避用メモリ領域22bにマクロブロック情報があることを認識した場合には、転送指示を転送回路24c−2へ送信する。転送回路24c−2は、転送指示にもとづいて、退避用メモリ領域22b上のマクロブロック情報を、DRAM21へ転送し、DRAM21はそのマクロブロック情報を格納する。
When the
ここで、SRAM22のポートの使用権は、画像処理部23とDRAM転送制御部24との間で交互に受け渡されるが、DRAM転送制御部24がSRAM22とDRAM21間でのマクロブロック情報の転送を行うか否かは、占有量監視回路24b−1〜24b−3で監視を行ったDRAM21、取得用メモリ領域22a、退避用メモリ領域22bのメモリ格納状態に依存する。
Here, the right to use the port of the
画像処理部23においては、マクロブロック処理開始前に、「取得用メモリ領域22aの隣接マクロブロック情報の保持FF23aへの取り込み(隣接マクロブロックが存在する場合のみ)」を行い、マクロブロック処理を開始する。そして、取得用メモリ領域22aから保持FF23aへのマクロブロック情報の転送完了時に(マクロブロック処理開始時と同様)、画像処理側ポート使用権譲渡通知Aを出力して、ポート使用権をDRAM転送制御部24に渡す。
The
画像処理部23では、その後、ポート使用権がDRAM転送制御部24から戻ってくるのを待って(メモリ側ポート使用権譲渡通知Bが送信されるのを待って)、ポート使用権を得ると、「マクロブロック処理完了時点の保持FF23a上の現マクロブロック情報を退避用メモリ領域22bへの書き出し」を行う。
After that, the
一方、DRAM転送制御部24においては、ポート使用権を取得すると、退避用メモリ領域22bに適切な量のマクロブロック情報があり、かつDRAM21に空きがあれば「退避用メモリ領域22bからDRAM21への転送」を行う。続いて、DRAM21が空でなく、かつ取得用メモリ領域22aに空きがあれば「DRAM21から取得用メモリ領域22aへの転送」が行われる。
On the other hand, when the DRAM transfer control unit 24 obtains the port usage right, if there is an appropriate amount of macroblock information in the
これらの動作の後、メモリ側ポート使用権譲渡通知Bを出力して、ポート使用権を画像処理部23に渡す。なお、例外として、メモリ側ポート使用権譲渡通知Bを出力する以前に、画像処理部23でマクロブロックの符号化/復号化処理が終わっている場合には、画像処理部23は、ポート使用権要求通知Cを出力する。
After these operations, the memory side port usage right transfer notice B is output, and the port usage right is transferred to the
この場合、DRAM転送制御部24によるSRAM22からDRAM21への転送が完了した時点で、取得用メモリ領域22aに次のマクロブロック処理のために必要なマクロブロック情報が存在しているのであれば、画像処理部23内の符号化/復号化処理部23bの処理待ち状態を解消するべく、DRAM転送制御部24は、DRAM21からSRAM22への転送は行わずに、メモリ側ポート使用権譲渡通知Bを出力して、ポート使用権を画像処理部23に渡す。
In this case, when the transfer from the
ここで、図2を使って、画像処理装置20におけるマクロブロック情報の流れの一例について説明すると、符号化/復号化処理部23bでマクロブロックMB0の符号化/復号化処理の開始時には、保持FF23aは、最低でもマクロブロックMBr1〜MBr4のそれぞれのマクロブロック情報を保持していることになる。
Here, an example of the flow of macroblock information in the
保持FF23aが、マクロブロックMBr1〜MBr4のそれぞれのマクロブロック情報を保持していると仮定すると、マクロブロックMB0の処理が終了した後、マクロブロックMB0のマクロブロック情報は、保持FF23aに格納される。また、マクロブロックMBr4のマクロブロック情報は、退避用メモリ領域22bに転送され(ポート使用権がある場合)、その後、DRAM21へ転送されて格納される。さらに、次のマクロブロックMB1の処理に備えて、取得用メモリ領域22aからはマクロブロックMBr5のマクロブロック情報が、保持FF23aに転送されて(ポート使用権がある場合)格納されることになる(マクロブロックMBr5のマクロブロック情報だけでなく、マクロブロックグループg1の中のより多くのマクロブロック情報を保持FF23aに転送しておいてもよい)。なお、メモリ間のマクロブロック情報の流れ及びメモリ調停の詳細については以降の図10〜図13で後述する。
Assuming that the holding
次に第2の実施の形態の画像処理装置20の動作をタイムチャートを用いて説明する。図10は画像処理装置20の調停動作を示すタイムチャートである。なお、図10に示す各サイクルの状態がわかりやすいように、図11〜図13に各サイクルの状態を表す状態遷移図を示す(実際にはDRAM転送制御部24を介して調停制御が行われるが図では省略している)。実線矢印はマクロブロック情報の流れ、点線矢印は譲渡通知Aまたは譲渡通知Bを表し、図13の太線矢印は要求通知Cを表す。
Next, the operation of the
〔CYC1〕
(ポート使用権)画像処理部23
(展開)画像処理部23は、1マクロブロックの符号化/復号化処理が完了した直後とする。その処理結果のマクロブロック情報が保持FF23a上にあり、それを退避するために保持FF23aから退避用メモリ領域22bへの転送を行う。
[CYC1]
(Port usage right)
(Development) The
〔CYC2〕
(ポート使用権)画像処理部23
(展開)画像処理部23は、次マクロブロックの符号化/復号化処理を行うために、取得用メモリ領域22aから保持FF23aへの転送を行う。転送完了時点で、画像処理側ポート使用権譲渡通知Aをアサートする。
[CYC2]
(Port usage right)
(Development) The
〔CYC3〕
(ポート使用権)DRAM転送制御部24
(展開)CYC1での転送で、退避用メモリ領域22bは空ではなくなっているので、DRAM転送制御部24は退避用メモリ領域22bからDRAM21への転送を行う(DRAM21上の退避用領域が満杯ではない状況を想定)。
[CYC3]
(Port usage right) DRAM transfer control unit 24
(Development) Since the saving
〔CYC4〕
(ポート使用権)DRAM転送制御部24
(展開)CYC2での転送で、取得用メモリ領域22aは満杯ではなくなっているので、DRAM転送制御部24はDRAM21から取得用メモリ領域22aへの転送を行う(DRAM21上の退避用領域が空ではない状況を想定)。転送完了時点で、メモリ側ポート使用権譲渡通知Bをアサートする。
[CYC4]
(Port usage right) DRAM transfer control unit 24
(Development) Since the
〔CYC5〕
(ポート使用権)画像処理部23
(展開)画像処理部23は、マクロブロックの符号化/復号化処理を行っている状態であり、何も転送は行われない。
[CYC5]
(Port usage right)
(Development) The
〔CYC6〕
(ポート使用権)画像処理部23
(展開)画像処理部23は、1マクロブロックの符号化/復号化処理が完了し、保持FF23aから退避用メモリ領域22bへの転送を行う。
[CYC6]
(Port usage right)
(Development) The
〔CYC7〕
(ポート使用権)画像処理部23
(展開)画像処理部23は、次マクロブロックの符号化/復号化処理を行うために取得用メモリ領域22aから保持FF23aへの転送を行う。転送完了時点で、画像処理側ポート使用権譲渡通知Aをアサートする。
[CYC7]
(Port usage right)
(Development) The
〔CYC8〕
(ポート使用権)DRAM転送制御部24
(展開)CYC6での転送で、退避用メモリ領域22bは空ではなくなっているので、DRAM転送制御部24は退避用メモリ領域22bからDRAM21への転送を行う。その途中で、画像処理部23の1マクロブロックの符号化/復号化処理が完了し、ポート使用権要求通知Cがアサートされる。DRAM転送制御部24は、退避用メモリ領域22bからDRAM21への転送が完了した時点で、取得用メモリ領域22aの残データ量が次マクロブロック処理に必要な量存在するかを判定する。必要量存在すると判定されると、DRAM21から取得用メモリ領域22aへの転送が可能か否かに関わらず、その転送は実行せずに、メモリ側ポート使用権譲渡通知Bをアサートする。
[CYC8]
(Port usage right) DRAM transfer control unit 24
(Development) Since the saving
〔CYC9〕
(ポート使用権)画像処理部23
(展開)画像処理部23は、1マクロブロックの符号化/復号化処理が完了し、保持FF23aから退避用メモリ領域22bへの転送を行う。
[CYC9]
(Port usage right)
(Development) The
〔CYC10〕
(ポート使用権)画像処理部23
(展開)画像処理部23は、次マクロブロックの符号化/復号化処理を行うために取得用メモリ領域22aから保持FF13aへの転送を行う。転送完了時点で、ポート使用権譲渡通知Aをアサートする。
[CYC10]
(Port usage right)
(Development) The
以上説明したように、第2の実施の形態では、符号化/復号化処理がごく短時間で完了した場合、SRAM22からDRAM21への書き出し及びDRAM21からSRAM22への読み込みが必須でない状況であれば、DRAM21とSRAM22間とのアクセスよりも、符号化/復号化処理側とSRAM22とのアクセスを優先するようにした。これにより、符号化/復号化処理は待たされずに、次マクロブロック処理を開始でき、処理時間の不要な増加を抑止することが可能になる。
As described above, in the second embodiment, when the encoding / decoding process is completed in a very short time, writing from the
なお、上記では主にH.264で定められた16×16画素のマクロブロック単位で符号化/復号化処理を行うこととして説明したが、本発明の技術内容からわかるように、特にブロックサイズに限定されるものではなく、N画素×M画素といった任意のブロック単位で符号化/復号化処理を行ってもよい。また、上記の第1、第2の実施の形態におけるDRAM、SRAM、保持メモリの間で行われるマクロブロック情報の転送制御はすべて、符号化/復号化処理での必要量として、オーバーフロー/アンダーフローが生じないように、適切な量のマクロブロック情報がメモリ間で転送されるものである。 In the above, mainly H.264 is used. The encoding / decoding process has been described as being performed in units of 16 × 16 pixel macroblocks defined in H.264. However, as can be understood from the technical contents of the present invention, the block size is not particularly limited. You may perform an encoding / decoding process by arbitrary block units, such as a pixel x M pixel. In addition, the macroblock information transfer control performed between the DRAM, SRAM, and holding memory in the first and second embodiments described above is an overflow / underflow as a necessary amount in the encoding / decoding process. Therefore, an appropriate amount of macroblock information is transferred between the memories.
10 画像処理装置
11 第1のメモリ
12 第2のメモリ
12a 取得用メモリ領域
12b 退避用メモリ領域
13 画像処理部
13a 保持メモリ
13b 符号化/復号化処理部
13c 転送要求判定部
13d マクロブロック情報転送部
14 メモリ転送制御部
15 メモリアクセス調停部
A 退避用メモリ領域転送要求
B 保持メモリ取り込み転送要求
C 第1のメモリ転送要求
D 取得用メモリ領域転送要求
DESCRIPTION OF
Claims (5)
処理済みのマクロブロックのマクロブロック情報を格納する第1のメモリと、
前記第1のメモリから転送された前記マクロブロック情報を格納しておく取得用メモリ領域と、前記第1のメモリへ転送して前記第1のメモリに格納させるべき前記マクロブロック情報を格納しておく退避用メモリ領域とでメモリ領域が2つに分割されたシングルポートの第2のメモリと、
前記マクロブロック情報を一時格納する保持メモリと、前記保持メモリから前記マクロブロック情報を読み出して参照して、処理対象のマクロブロックの符号化/復号化処理を行い、処理完了後に得られた前記マクロブロック情報を前記保持メモリに格納する符号化/復号化処理部と、前記符号化/復号化処理が完了した際に、前記保持メモリにある前記マクロブロック情報を、前記退避用メモリ領域へ転送するための退避用メモリ領域転送要求を出力し、前記符号化/復号化処理を開始する際に、前記取得用メモリ領域にある前記マクロブロック情報を前記保持メモリへ転送するための保持メモリ取り込み転送要求を出力する転送要求判定部と、前記退避用メモリ領域転送要求または前記保持メモリ取り込み転送要求に対する許可応答があれば、前記マクロブロック情報の転送制御を行うマクロブロック情報転送部と、から構成される画像処理部と、
前記第1のメモリの占有量を監視し、前記第1のメモリに空きがあれば、前記退避用メモリ領域から前記第1のメモリへ前記マクロブロック情報の転送を行うための第1のメモリ転送要求を出力し、前記第1のメモリに前記マクロブロック情報が格納されている場合は、前記第1のメモリから前記取得用メモリ領域へ前記マクロブロック情報の転送を行う取得用メモリ領域転送要求を出力し、前記第1のメモリ転送要求または前記取得用メモリ領域転送要求に対する許可応答があれば、前記マクロブロック情報の転送制御を行うメモリ転送制御部と、
前記退避用メモリ領域転送要求、前記保持メモリ取り込み転送要求、前記第1のメモリ転送要求、前記取得用メモリ領域転送要求を受信して、転送可能な場合は前記許可応答を出力して、前記第2のメモリのポートアクセスの調停制御を行い、前記調停制御を行う際は、前記画像処理部からの前記退避用メモリ領域転送要求及び前記保持メモリ取り込み転送要求を最優先とし、前記退避用メモリ領域と前記取得用メモリ領域のオーバーフロー/アンダーフローを発生させないように、前記メモリ転送制御部からの前記第1のメモリ転送要求及び前記取得用メモリ領域転送要求を次に優先させるメモリアクセス調停部と、
を有することを特徴とする画像処理装置。 In an image processing apparatus for encoding / decoding an image signal,
A first memory for storing macroblock information of processed macroblocks;
An acquisition memory area for storing the macroblock information transferred from the first memory; and the macroblock information to be transferred to the first memory and stored in the first memory. A second memory of a single port in which the memory area is divided into two by a save memory area to be stored;
A holding memory for temporarily storing the macroblock information; and reading and referring to the macroblock information from the holding memory to perform encoding / decoding processing of the macroblock to be processed, and the macro obtained after the processing is completed An encoding / decoding processor that stores block information in the holding memory, and when the encoding / decoding process is completed, transfers the macroblock information in the holding memory to the save memory area. A storage memory fetch transfer request for transferring the macroblock information in the acquisition memory area to the holding memory when the encoding / decoding process is started. A transfer request determination unit that outputs a permission response to the save memory area transfer request or the retained memory capture transfer request. In a constructed image processing unit from, and the macro block information transfer unit for transferring control of the macro block information,
A first memory transfer for monitoring the occupation amount of the first memory and transferring the macroblock information from the save memory area to the first memory if the first memory is available Output a request, and if the macroblock information is stored in the first memory, an acquisition memory area transfer request for transferring the macroblock information from the first memory to the acquisition memory area Output, if there is a permission response to the first memory transfer request or the acquisition memory area transfer request, a memory transfer control unit that performs transfer control of the macroblock information;
Receiving the save memory area transfer request, the holding memory fetch transfer request, the first memory transfer request, and the acquisition memory area transfer request, and outputting the permission response if transfer is possible, When performing arbitration control of the port access of the memory 2 and performing the arbitration control, the save memory area transfer request and the hold memory fetch transfer request from the image processing unit are given top priority, and the save memory area And a memory access arbitration unit that prioritizes the first memory transfer request and the acquisition memory region transfer request from the memory transfer control unit so as not to cause an overflow / underflow of the acquisition memory region,
An image processing apparatus comprising:
処理済みのマクロブロックのマクロブロック情報を格納する第1のメモリと、
前記第1のメモリから転送された前記マクロブロック情報を格納しておく取得用メモリ領域と、前記第1のメモリへ転送して前記第1のメモリに格納させるべき前記マクロブロック情報を格納しておく退避用メモリ領域とでメモリ領域が2つに分割されたシングルポートの第2のメモリと、
前記マクロブロック情報を格納する保持メモリと、前記保持メモリから前記マクロブロック情報を読み出して参照して、処理対象のマクロブロックの符号化/復号化処理を行い、処理完了後に得られた前記マクロブロック情報を前記保持メモリに格納する符号化/復号化処理部と、メモリ側ポート使用権譲渡通知を受けて、前記第2のメモリへアクセス可能なポート使用権を有する場合であって、前記符号化/復号化処理が完了した際には、前記保持メモリにある前記マクロブロック情報を、前記退避用メモリ領域へ転送し、前記符号化/復号化処理を開始する際には、前記取得用メモリ領域にある前記マクロブロック情報を前記保持メモリへ転送する画像処理側マクロブロック情報転送部と、前記取得用メモリ領域から前記保持メモリへの前記マクロブロック情報の転送完了時に、前記ポート使用権を相手先へ譲渡するための画像処理側ポート使用権譲渡通知を出力する画像処理側ポート使用権管理部と、から構成される画像処理部と、
前記画像処理側ポート使用権譲渡通知を受けて、前記ポート使用権を有する場合であって、前記退避用メモリ領域から前記第1のメモリへ前記マクロブロック情報の転送を行い、前記第1のメモリから前記取得用メモリ領域へ前記マクロブロック情報の転送を行うメモリ側マクロブロック情報転送部と、前記第1のメモリから前記取得用メモリ領域への前記マクロブロック情報の転送完了時、前記メモリ側ポート使用権譲渡通知を出力して、前記ポート使用権を前記画像処理部へ譲渡するメモリ側ポート使用権管理部と、から構成されるメモリ転送制御部と、
を有することを特徴とする画像処理装置。 In an image processing apparatus for encoding / decoding an image signal,
A first memory for storing macroblock information of processed macroblocks;
An acquisition memory area for storing the macroblock information transferred from the first memory; and the macroblock information to be transferred to the first memory and stored in the first memory. A second memory of a single port in which the memory area is divided into two by a save memory area to be stored;
A holding memory for storing the macroblock information, and the macroblock information obtained by reading and referring to the macroblock information from the holding memory, performing encoding / decoding processing of the macroblock to be processed, and completing the processing An encoding / decoding processing unit for storing information in the holding memory, and a port usage right accessible to the second memory in response to a memory side port usage right transfer notification, wherein the encoding is performed When the decoding / decoding process is completed, the macroblock information in the holding memory is transferred to the save memory area, and when the encoding / decoding process is started, the acquisition memory area An image processing-side macroblock information transfer unit that transfers the macroblock information in the storage memory to the storage memory from the acquisition memory area An image processing side port usage right management unit that outputs an image processing side port usage right transfer notice for transferring the port usage right to the other party upon completion of transfer of the macroblock information; ,
In the case of receiving the port usage right transfer notification upon receipt of the image processing side port usage right transfer notification, the macro block information is transferred from the save memory area to the first memory, and the first memory is transferred. A memory-side macroblock information transfer unit for transferring the macroblock information from the first memory to the acquisition memory area, and when the transfer of the macroblock information from the first memory to the acquisition memory area is completed, the memory-side port A memory transfer control unit configured to output a usage right transfer notification and transfer the port usage right to the image processing unit;
An image processing apparatus comprising:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006095952A JP2007274224A (en) | 2006-03-30 | 2006-03-30 | Image processor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006095952A JP2007274224A (en) | 2006-03-30 | 2006-03-30 | Image processor |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007274224A true JP2007274224A (en) | 2007-10-18 |
Family
ID=38676579
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006095952A Withdrawn JP2007274224A (en) | 2006-03-30 | 2006-03-30 | Image processor |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007274224A (en) |
-
2006
- 2006-03-30 JP JP2006095952A patent/JP2007274224A/en not_active Withdrawn
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6167475A (en) | Data transfer method/engine for pipelining shared memory bus accesses | |
US6058459A (en) | Video/audio decompression/compression device including an arbiter and method for accessing a shared memory | |
JP4357604B2 (en) | Electronic system and computer | |
US8327046B1 (en) | System and method of video decoding using hybrid buffer | |
KR100881539B1 (en) | Image data structure for direct memory access | |
JP2008054222A (en) | Image data buffer apparatus and image transfer processing system | |
JP2009267837A (en) | Decoding device | |
JP5378344B2 (en) | System for video processing | |
JPH08223571A (en) | Image decoder | |
TW201423403A (en) | Efficient processing of access requests for a shared resource | |
US20170371564A1 (en) | Method and apparatus for memory efficiency improvement by providing burst memory access control | |
KR20070082835A (en) | Apparatus and method for controlling direct memory access | |
EP0772159B1 (en) | Memory sharing in a MPEG decoder | |
JP2008172410A (en) | Imaging apparatus, image processing apparatus, image processing method, program for image processing method, and recording medium recorded with program for image processing method | |
JP2007274224A (en) | Image processor | |
US9372817B2 (en) | High perfomance DMA controller for video processors | |
US20130329137A1 (en) | Video Encoding in Video Analytics | |
US20060041690A1 (en) | Software communication between MPEG layer and servo layer | |
TWI603616B (en) | On die/off die memory management | |
JP2000092469A (en) | Digital reception terminal | |
KR20110065335A (en) | System for video processing | |
CN1220377C (en) | Equipment for procesing data by means of multi processor | |
JP2006115168A (en) | Image decoding apparatus and image display apparatus | |
Hyun et al. | A synchronous DRAM controller for an H. 264/AVC encoder | |
Hilgenstock et al. | A single-chip video signal processing system with embedded DRAM |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20090602 |