JP2014035617A - Image processing interface circuit - Google Patents

Image processing interface circuit Download PDF

Info

Publication number
JP2014035617A
JP2014035617A JP2012175841A JP2012175841A JP2014035617A JP 2014035617 A JP2014035617 A JP 2014035617A JP 2012175841 A JP2012175841 A JP 2012175841A JP 2012175841 A JP2012175841 A JP 2012175841A JP 2014035617 A JP2014035617 A JP 2014035617A
Authority
JP
Japan
Prior art keywords
read
data
write
image processing
input
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2012175841A
Other languages
Japanese (ja)
Other versions
JP6117494B2 (en
JP2014035617A5 (en
Inventor
Shogo Iwai
祥悟 岩井
Kazuma Takahashi
一真 高橋
Nobuhiro Minami
信広 南
Kensuke Uchida
健介 内田
Toru Miyakoshi
徹 宮越
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nikon Corp
MegaChips Corp
Original Assignee
Nikon Corp
MegaChips Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nikon Corp, MegaChips Corp filed Critical Nikon Corp
Priority to JP2012175841A priority Critical patent/JP6117494B2/en
Priority to US13/854,340 priority patent/US9552619B2/en
Publication of JP2014035617A publication Critical patent/JP2014035617A/en
Publication of JP2014035617A5 publication Critical patent/JP2014035617A5/ja
Application granted granted Critical
Publication of JP6117494B2 publication Critical patent/JP6117494B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

PROBLEM TO BE SOLVED: To provide a technology for improving efficiency of a bus band.SOLUTION: An image processing interface circuit 6R is connected to a module core 5 that executes predetermined processing. A read buffer 110 stores data read from an image supplying memory connected to a bus. A read management part 130 manages data transfer from the image supplying memory to the read buffer 110. A core input management part 150 supplies the data stored in the read buffer 110 to the module core 5 in the unit of an input block of a predetermined size. The read management part 130 manages reading of input image data to be processed in the module core 5 so that a plurality of input blocks are stored in the read buffer 110, and decides a read area on the image supplying memory according to a predetermined read condition so that the input image data is burst-transferred.

Description

本発明は、所定の画像処理を実行するモジュールコアに接続される画像処理インターフェース回路に関する。   The present invention relates to an image processing interface circuit connected to a module core that executes predetermined image processing.

従来より、画像処理装置では、画像処理モジュールコアとDRAM(Dynamic Random Access Memory)との間のデータ転送に、DMAC(Direct Memory Access Controller)が利用されている。例えば、モジュールコアのそれぞれに専用のDMACが接続され、各DMACがそれぞれバスに直接接続される。   Conventionally, in an image processing apparatus, a DMAC (Direct Memory Access Controller) is used for data transfer between an image processing module core and a DRAM (Dynamic Random Access Memory). For example, a dedicated DMAC is connected to each module core, and each DMAC is directly connected to the bus.

また、画像処理をいわゆるマクロブロック単位で行うモジュールコアが知られている。例えばH.264では、16×16画素、16×8画素、8×16画素、8×8画素、8×4画素、4×8画素、4×4画素から、マクロブロックのサイズを選択可能である。そのような画像処理モジュールコアは、DRAMに対するアクセス、すなわち読み出しおよび書き込みをマクロブロック単位で行う。   A module core that performs image processing in units of so-called macroblocks is also known. For example, H.C. In H.264, a macroblock size can be selected from 16 × 16 pixels, 16 × 8 pixels, 8 × 16 pixels, 8 × 8 pixels, 8 × 4 pixels, 4 × 8 pixels, and 4 × 4 pixels. Such an image processing module core performs access to the DRAM, that is, reading and writing in units of macroblocks.

特開2007−74412号公報JP 2007-74412 A

しかし、モジュールコアのそれぞれに専用のDMACを設ける構成では、多くのDMACが存在することでチップ面積の増大を招いてしまう。   However, in a configuration in which a dedicated DMAC is provided for each module core, the presence of many DMACs increases the chip area.

また、DRAMに対するアクセスをマクロブロック単位で行うと、メモリアクセスの効率が低い。例えば8ビットYUV422の4×4画素のマクロブロックでは1ラインが8バイトしかないので、わずか8バイトの読み出しでDRAMのROWアドレスを切り替えなければならない。また、マクロブロックの1ラインずつ読み出し要求を発行すると、多くの要求発行によってバス帯域の消費が大きくなってしまう。これらの点は書き込みについても同様である。   In addition, when the DRAM is accessed in units of macro blocks, the memory access efficiency is low. For example, in a macro block of 4 × 4 pixels of 8-bit YUV422, one line has only 8 bytes, so the DRAM ROW address must be switched by reading only 8 bytes. Also, if a read request is issued line by line in a macroblock, the bus bandwidth is increased due to the issue of many requests. The same applies to writing.

本発明は、DMACの個数抑制、バス帯域の効率化、等を実現可能な技術を提供することを目的とする。   An object of the present invention is to provide a technique capable of realizing the number control of DMAC, the efficiency improvement of a bus band, and the like.

本発明の第1の態様に係る画像処理インターフェース回路は、所定の画像処理を実行するモジュールコアに接続される画像処理インターフェース回路であって、バスに接続された画像供給元メモリから読み出したデータを格納するための読み出しバッファと、前記画像供給元メモリから前記読み出しバッファへのデータ転送を管理する読み出し管理部と、前記読み出しバッファ内の格納データを所定サイズの入力ブロック単位で前記モジュールコアへ供給するコア入力管理部とを備え、前記読み出し管理部は、前記読み出しバッファに複数の入力ブロックが格納されるように、前記モジュールコアで処理する入力画像データの読み出しを管理すると共に、前記入力画像データがバースト転送されるように前記画像供給元メモリ上の読み出し対象領域を所定の読み出し条件に従って決定する。   An image processing interface circuit according to a first aspect of the present invention is an image processing interface circuit connected to a module core that executes predetermined image processing, and reads data read from an image supply source memory connected to a bus. A read buffer for storing, a read manager for managing data transfer from the image supply source memory to the read buffer, and supplying stored data in the read buffer to the module core in units of input blocks of a predetermined size A core input management unit, wherein the read management unit manages reading of the input image data processed by the module core so that a plurality of input blocks are stored in the read buffer, and the input image data Read-out pairs on the image source memory so as to be burst transferred. It determines an area in accordance with a predetermined read condition.

本発明の第2の態様に係る画像処理インターフェース回路は、上記の第1の態様に係る画像処理インターフェース回路であって、前記入力画像データは、それぞれが画素ラインまたは画素ライン群に対応する複数の入力画像データ列を含み、前記入力ブロックは、前記複数の入力画像データ列のうちのN個(Nは2以上の整数)の入力画像データ列を対象にして設定され、前記読み出しバッファは、前記入力ブロックが設定された前記N個の入力画像データ列がそれぞれ入力されるN個の読み出しラインFIFO部を含み、前記所定の読み出し条件は、前記N個の入力画像データ列を循環的に選択する旨の循環選択条件と、入力画像データ列の先頭の側から順に前記読み出し対象領域を設定する旨の列内順序条件と、各入力画像データ列に対する前記読み出し対象領域の設定は、選択される度に1回とする旨の回数条件とを含む。   An image processing interface circuit according to a second aspect of the present invention is the image processing interface circuit according to the first aspect, wherein the input image data includes a plurality of pixels each corresponding to a pixel line or a pixel line group. An input image data sequence, and the input block is set for N input image data sequences (N is an integer of 2 or more) of the plurality of input image data sequences, and the read buffer It includes N read line FIFO units to which the N input image data sequences set with input blocks are respectively input, and the predetermined read condition cyclically selects the N input image data sequences. A circular selection condition indicating that the read target area is set in order from the top of the input image data string, and each input image data string. That setting of the reading target area, and a count condition to the effect that once each time it is selected.

本発明の第3の態様に係る画像処理インターフェース回路は、上記の第1の態様に係る画像処理インターフェース回路であって、前記入力画像データは、それぞれが画素ラインまたは画素ライン群に対応する複数の入力画像データ列を含み、前記入力ブロックは、前記複数の入力画像データ列のうちの1個の入力画像データ列を対象にして設定され、前記読み出しバッファは、前記入力ブロックが設定された前記1個の入力画像データ列が入力される1個の読み出しラインFIFO部を含み、前記所定の読み出し条件は、入力画像データ列の先頭の側から順に前記読み出し対象領域を設定する旨の列内順序条件を含む。   An image processing interface circuit according to a third aspect of the present invention is the image processing interface circuit according to the first aspect described above, wherein the input image data includes a plurality of pixels each corresponding to a pixel line or a pixel line group. Including the input image data sequence, the input block is set for one input image data sequence of the plurality of input image data sequences, and the read buffer is the 1 in which the input block is set In-column order condition that includes one read-line FIFO unit to which one input image data string is input, and that the predetermined read condition is to set the read target area in order from the head side of the input image data string including.

本発明の第4の態様に係る画像処理インターフェース回路は、上記の第1ないし第3の態様のうちのいずれか1つに係る画像処理インターフェース回路であって、前記所定の読み出し条件は、前記読み出し対象領域の終了アドレスを前記画像供給元メモリのアドレスアライメント境界に合わせる旨の読み出しアライメント条件を含む。   An image processing interface circuit according to a fourth aspect of the present invention is the image processing interface circuit according to any one of the first to third aspects, wherein the predetermined readout condition is the readout A read alignment condition for matching the end address of the target area with the address alignment boundary of the image source memory is included.

本発明の第5の態様に係る画像処理インターフェース回路は、上記の第4の態様に係る画像処理インターフェース回路であって、前記所定の読み出し条件は、前記読み出し対象領域が前記入力画像データ列の始端を含む場合、前記読み出し対象領域のデータ量が前記バスのバス幅の倍数になるように前記読み出し対象領域の開始アドレスを設定する旨の読み出しサイズ条件を含む。   An image processing interface circuit according to a fifth aspect of the present invention is the image processing interface circuit according to the fourth aspect described above, wherein the predetermined read condition is that the read target area is the start of the input image data sequence. , A read size condition for setting the start address of the read target area so that the amount of data in the read target area is a multiple of the bus width of the bus is included.

本発明の第6の態様に係る画像処理インターフェース回路は、上記の第5の態様に係る画像処理インターフェース回路であって、前記所定の読み出し条件は、前記入力画像データ列中の未読み出し部分が1回のバースト転送で設定可能な最大転送量を超過している場合、且つ、その超過量が前記読み出しサイズ条件の下で設定された前記開始アドレスと前記入力画像データ列の先頭アドレスとの差分よりも大きい場合、前記読み出し対象領域の終了アドレスを前記バースト転送の前記最大転送量に合わせて設定する旨の第1の終了アドレス条件と、前記超過量が前記差分以下である場合、前記読み出し対象領域の前記終了アドレスを前記入力画像データ列の終端アドレスに設定する旨の第2の終了アドレス条件とを含む。   An image processing interface circuit according to a sixth aspect of the present invention is the image processing interface circuit according to the fifth aspect, wherein the predetermined read condition is that an unread portion in the input image data string is 1 When the maximum transfer amount that can be set in one burst transfer is exceeded, and the excess amount is based on the difference between the start address set under the read size condition and the start address of the input image data sequence Is larger, the first end address condition for setting the end address of the read target area according to the maximum transfer amount of the burst transfer, and the read target area when the excess amount is equal to or less than the difference And a second end address condition for setting the end address to the end address of the input image data sequence.

本発明の第7の態様に係る画像処理インターフェース回路は、上記の第1ないし第6の態様のうちのいずれか1つに係る画像処理インターフェース回路であって、前記所定の読み出し条件は、前記入力画像データ列中の未読み出し部分が前記バースト転送の前記最大転送量以下である場合、前記読み出し対象領域の終了アドレスを前記入力画像データ列の終端アドレスに設定する旨の第3の終了アドレス条件を含む。   An image processing interface circuit according to a seventh aspect of the present invention is the image processing interface circuit according to any one of the first to sixth aspects, wherein the predetermined read condition is the input When an unread portion in the image data sequence is equal to or less than the maximum transfer amount of the burst transfer, a third end address condition is set to set the end address of the read target region as the end address of the input image data sequence. Including.

本発明の第8の態様に係る画像処理インターフェース回路は、上記の第1ないし第7の態様のうちのいずれか1つに係る画像処理インターフェース回路であって、前記読み出しバッファは、前記バースト転送の前記最大転送量の1倍よりも大きく且つ2倍よりも小さい容量を有した読み出しラインFIFO部を少なくとも1つ含み、前記読み出し管理部は、前記読み出しラインFIFO部内において前記モジュールコアに対する供給済みデータが前記最大転送量以上になった場合、前記供給済みデータに替えて前記画像供給元メモリから読み出した新しいデータを前記読み出しラインFIFO部に格納する。   An image processing interface circuit according to an eighth aspect of the present invention is the image processing interface circuit according to any one of the first to seventh aspects, wherein the read buffer is configured to perform the burst transfer. The read management unit includes at least one read line FIFO unit having a capacity larger than 1 times and smaller than 2 times the maximum transfer amount, and the read management unit includes data already supplied to the module core in the read line FIFO unit. When the maximum transfer amount is exceeded, new data read from the image supply source memory is stored in the read line FIFO unit instead of the supplied data.

本発明の第9の態様に係る画像処理インターフェース回路は、所定の画像処理を実行するモジュールコアに接続される画像処理インターフェース回路であって、前記モジュールコアから出力されるコア出力データを格納するための書き込みバッファと、前記コア出力データの前記書き込みバッファへの入力を管理するコア出力管理部と、前記書き込みバッファ内の格納データを、バスに接続された画像格納先メモリへ転送することを管理する書き込み管理部とを備え、前記書き込みバッファは、1回のバースト転送で設定可能な最大転送量よりも大きい容量を有した書き込みラインFIFO(First In First Out)部を少なくとも1つ含み、前記書き込み管理部は、前記書き込みラインFIFO部ごとに、前記書き込みラインFIFO部内のデータのうちで前記バースト転送の対象にする書き込み対象データと、前記画像格納先メモリ上の書き込み先領域とを、所定の書き込み条件に従って決定する。   An image processing interface circuit according to a ninth aspect of the present invention is an image processing interface circuit connected to a module core that executes predetermined image processing, and stores core output data output from the module core. A write buffer, a core output management unit that manages input of the core output data to the write buffer, and transfer of storage data in the write buffer to an image storage destination memory connected to a bus A write management unit, wherein the write buffer includes at least one write line FIFO (First In First Out) unit having a capacity larger than a maximum transfer amount that can be set in one burst transfer, and the write management unit For each write line FIFO unit, the data in the write line FIFO unit And write target data to be subjected to the burst transfer out, a write destination area on the image storage destination memory, to determine according to a predetermined write conditions.

本発明の第10の態様に係る画像処理インターフェース回路は、上記の第9の態様に係る画像処理インターフェース回路であって、前記所定の書き込み条件は、前記書き込み対象データを前記バースト転送の前記最大転送量に設定する旨の書き込みサイズ条件と、前記書き込み先領域を前記画像格納先メモリのアドレスアライメント境界に合わせる旨の書き込みアライメント条件とのうちの少なくとも一方を含む。   An image processing interface circuit according to a tenth aspect of the present invention is the image processing interface circuit according to the ninth aspect, wherein the predetermined write condition is the maximum transfer of the burst transfer of the write target data. At least one of a write size condition for setting the amount and a write alignment condition for aligning the write destination area with the address alignment boundary of the image storage destination memory.

本発明の第11の態様に係る画像処理インターフェース回路は、上記の第9または第10の態様に係る画像処理インターフェース回路であって、前記所定の書き込み条件は、前記モジュールコアから出力される出力画像の画素ラインまたは画素ライン群の終端に対応する前記コア出力データまでの範囲で以て前記書き込み対象データを区切ると共に、その区切られた範囲に対応して前記書き込み先領域を設定する旨のライン終端条件を含む。   An image processing interface circuit according to an eleventh aspect of the present invention is the image processing interface circuit according to the ninth or tenth aspect, wherein the predetermined write condition is an output image output from the module core. A line end indicating that the write target data is delimited by a range up to the core output data corresponding to the end of the pixel line or pixel line group, and the write destination area is set corresponding to the delimited range Includes conditions.

本発明の第12の態様に係る画像処理インターフェース回路は、上記の第9ないし第11の態様のうちのいずれか1つ係る画像処理インターフェース回路であって、前記書き込みラインFIFO部は、前記バースト転送の前記最大転送量の1倍よりも大きく且つ2倍よりも小さい容量を有し、前記書き込み管理部は、前記書き込みラインFIFO部内において前記画像格納先メモリに対する転送済みデータが前記最大転送量以上になった場合、前記転送済みデータに替えて新しいコア出力データを前記書き込みラインFIFO部に格納する。   An image processing interface circuit according to a twelfth aspect of the present invention is the image processing interface circuit according to any one of the ninth to eleventh aspects, wherein the write line FIFO unit includes the burst transfer. The write management unit has a capacity that is greater than 1 and less than 2 times the maximum transfer amount, and the write management unit has transferred data for the image storage destination memory that is greater than or equal to the maximum transfer amount in the write line FIFO unit. If it does, new core output data is stored in the write line FIFO unit in place of the transferred data.

上記の第1ないし第8の態様によれば、複数回分の入力ブロックを事前にバッファに読み出しておき、且つ、その読み出しにバースト転送を利用する。したがって、モジュールコアで必要となる度に入力ブロックを読み出す構成に比べて、読み出し要求の頻度を抑制可能である。それにより、バス帯域を効率良く利用できる。   According to the first to eighth aspects described above, a plurality of input blocks are read in advance into a buffer, and burst transfer is used for the reading. Therefore, the frequency of read requests can be suppressed as compared with a configuration in which an input block is read each time it is required by the module core. Thereby, the bus bandwidth can be used efficiently.

上記の第2ないし第8の態様によれば、N個の入力画像データ列が部分的且つ並行的に読み出され、又、そのような読み出しがN個の入力画像データ列の先頭側から順に進行する。このため、一の入力画像データ列を先頭から終端まで読み出しその後に他の入力画像データ列の読み出しを開始する場合に比べて、モジュールコアへのデータ供給に遅延を生じにくい。すなわち、後者の場合、例えば最も先頭側に設定された入力ブロックをモジュールコアに供給するのに要する時間は、N個の入力画像データ列全体を読み出す時間にほぼ等しい。これに対し、上記の部分的且つ並行的な読み出しによれば、N個の入力画像データ列全体の読み出しを待たなくても、最も先端側の入力ブロックをモジュールコアに供給し終えることができる。また、上記の部分的且つ並行的な読み出しによれば、読み出しバッファの容量を小さくできる。   According to the second to eighth aspects, the N input image data strings are read out partially and in parallel, and such reading is sequentially performed from the head side of the N input image data strings. proceed. For this reason, compared to the case where one input image data string is read from the beginning to the end and then reading of the other input image data string is started, delay in supplying data to the module core is less likely to occur. That is, in the latter case, for example, the time required to supply the input block set at the headmost side to the module core is substantially equal to the time for reading the entire N input image data strings. On the other hand, according to the partial and parallel reading described above, it is possible to finish supplying the most input block to the module core without waiting for reading of the entire N input image data strings. Further, according to the partial and parallel reading described above, the capacity of the read buffer can be reduced.

上記の第4ないし第8の態様によれば、読み出し対象領域が画像供給元メモリのアドレスアライメント境界を跨ぐ場合に比べて、画像供給元メモリを効率良く動作させることが可能である。それにより、データ転送効率の向上、省電力化等に資する。   According to the fourth to eighth aspects, it is possible to operate the image supply source memory more efficiently than when the read target region crosses the address alignment boundary of the image supply source memory. Thereby, it contributes to improvement of data transfer efficiency and power saving.

上記の第5ないし第8の態様によれば、特に読み出し対象領域が入力画像データ列の始端を含む場合に、入力画像データにとって有意なデータを受信ビット列内において後ろ詰めにすることができる。換言すれば、読み出し対象領域の開始アドレスの調整は、不要なデータを受信ビット列中に含ませることになるが、そのような不要データを意図的に、受信ビット列の前方に配置することができる。したがって、バッファへ読み出した入力画像データ中に不要データが割り込むのを回避できる。このため、上記不要データの管理および除去が容易になる。具体的には、モジュールコアへのデータ供給の際、バッファの出力データのうちで読み出し開始アドレスの調整量に応じた先頭データを無視すれば済む。   According to the fifth to eighth aspects, data that is significant for the input image data can be left-justified in the received bit string, particularly when the read target area includes the start of the input image data string. In other words, adjustment of the start address of the read target area includes unnecessary data in the received bit string, but such unnecessary data can be intentionally arranged in front of the received bit string. Therefore, unnecessary data can be prevented from interrupting the input image data read to the buffer. This facilitates management and removal of the unnecessary data. Specifically, when data is supplied to the module core, the head data corresponding to the read start address adjustment amount in the output data of the buffer may be ignored.

上記の第6ないし第8の態様によれば、1回の読み出し要求で以て、転送可能な最大データ量を確保可能である。このため、読み出し要求の回数増加が抑制されることで、データ転送を効率的に行うことができる。また、データ転送の効率化に伴って読み出し要求の頻度が抑制される。   According to the sixth to eighth aspects, the maximum data amount that can be transferred can be secured by one read request. For this reason, the data transfer can be performed efficiently by suppressing the increase in the number of read requests. In addition, the frequency of read requests is reduced as data transfer becomes more efficient.

また、上記の第6ないし第8の態様によれば、入力画像データ列中の未読み出し部分がバースト転送の最大転送量を超過している場合、且つ、その超過量が上記読み出しサイズ条件の下で設定された開始アドレスと入力画像データ列の先頭アドレスとの差分以下である場合には、読み出し対象領域の終了アドレスを入力画像データ列の終端アドレスに設定する。これにより、各入力画像データ列について読み出し要求の回数が揃う。このため、かかる点からも、読み出し要求の頻度の抑制を図ることができる。   According to the sixth to eighth aspects, when the unread portion in the input image data sequence exceeds the maximum transfer amount of burst transfer, and the excess amount is under the read size condition. If the difference is less than or equal to the difference between the start address set in step 1 and the start address of the input image data sequence, the end address of the read target area is set as the end address of the input image data sequence. As a result, the number of read requests for each input image data string is uniform. For this reason, also from this point, it is possible to suppress the frequency of read requests.

上記の第7ないし第8の態様によれば、入力画像データ列の終端側部分の読み出しについて、不要な転送動作を抑制できる。したがって、バス帯域を効率良く利用できる。   According to the seventh to eighth aspects, an unnecessary transfer operation can be suppressed for reading of the terminal side portion of the input image data sequence. Therefore, the bus bandwidth can be used efficiently.

上記の第8の態様によれば、読み出しバッファの容量を小さくできる。それにより、チップ面積の削減、装置の小型化、省電力化等を図ることができる。   According to the eighth aspect, the capacity of the read buffer can be reduced. Thereby, the chip area can be reduced, the apparatus can be reduced in size, and the power can be saved.

上記の第9ないし第12の態様によれば、複数個の出力ブロックをバッファに蓄積しておき、且つ、それらを纏めて画像格納先メモリへバースト転送させる。したがって、モジュールコアから出力ブロックが出力される度にその出力ブロックを画像格納先メモリへ転送する構成に比べて、書き込み要求の頻度を抑制可能である。それにより、バス帯域を効率良く利用できる。   According to the ninth to twelfth aspects, a plurality of output blocks are accumulated in the buffer, and they are collectively transferred to the image storage destination memory. Therefore, the frequency of write requests can be suppressed as compared with the configuration in which each time an output block is output from the module core, the output block is transferred to the image storage destination memory. Thereby, the bus bandwidth can be used efficiently.

上記の第10ないし第12の態様によれば、書き込みサイズ条件により、1回の書き込み要求で以て最大データ量を書き込み可能である。このため、データ転送を効率的に行うことができる。また、データ転送の効率化に伴って書き込み要求の頻度が抑制される。また、書き込みアライメント条件により、書き込み先領域が画像格納先メモリのアドレスアライメント境界を跨ぐ場合に比べて、画格納先メモリを効率良く動作させることが可能である。それにより、データ転送効率の向上、省電力化等に資する。   According to the tenth to twelfth aspects, the maximum amount of data can be written with a single write request according to the write size condition. For this reason, data transfer can be performed efficiently. In addition, the frequency of write requests is reduced as data transfer becomes more efficient. Further, the image storage destination memory can be operated more efficiently than the case where the write destination region crosses the address alignment boundary of the image storage destination memory depending on the write alignment condition. Thereby, it contributes to improvement of data transfer efficiency and power saving.

上記の第11ないし第12の態様によれば、ライン終端側部分の書き込みについて、不要な転送動作を抑制できる。したがって、バス帯域を効率良く利用できる。   According to the eleventh to twelfth aspects, it is possible to suppress unnecessary transfer operations for writing at the line end side portion. Therefore, the bus bandwidth can be used efficiently.

上記の第12の態様によれば、書き込みバッファの容量を小さくできる。それにより、チップ面積の削減、装置の小型化、省電力化等を図ることができる。   According to the twelfth aspect, the capacity of the write buffer can be reduced. Thereby, the chip area can be reduced, the apparatus can be reduced in size, and the power can be saved.

本発明の目的、特徴、局面、および利点は、以下の詳細な説明と添付図面とによって、より明白となる。   The objects, features, aspects and advantages of the present invention will become more apparent from the following detailed description and the accompanying drawings.

画像処理装置を例示するブロック図である。It is a block diagram which illustrates an image processing device. 画素および画素ラインを説明する図である。It is a figure explaining a pixel and a pixel line. マクロブロックおよびブロックラインを説明する図である。It is a figure explaining a macroblock and a block line. マクロブロックおよびブロック内画素ラインを説明する図である。It is a figure explaining a macroblock and a pixel line in a block. 読み出しI/F回路を例示するブロック図である。3 is a block diagram illustrating a read I / F circuit. FIG. 読み出しI/F回路のバッファを例示する図である。It is a figure which illustrates the buffer of a read I / F circuit. ダブルバッファ構成における書き込みおよび読み出しを例示する図である。It is a figure which illustrates the writing and reading in a double buffer structure. 画像供給元メモリからのデータの読み出しを例示する図である。It is a figure which illustrates reading of the data from an image supply source memory. 画像供給元メモリからのデータの読み出しを例示する図である。It is a figure which illustrates reading of the data from an image supply source memory. 画像供給元メモリからのデータの読み出しを例示する図である。It is a figure which illustrates reading of the data from an image supply source memory. 読み出し対象領域がバス幅の倍数でない場合の問題を説明する図である。It is a figure explaining the problem in case a read object area | region is not a multiple of a bus width. 読み出し対象領域がバス幅の倍数でない場合の解決策を説明する図である。It is a figure explaining the solution in case a read object area | region is not a multiple of a bus width. 画像供給元メモリからのデータの読み出しを例示する図である。It is a figure which illustrates reading of the data from an image supply source memory. 読み出しI/F回路を例示するブロック図である。3 is a block diagram illustrating a read I / F circuit. FIG. 書き込みバッファへのデータ入力を例示する図である。It is a figure which illustrates the data input to a write buffer. 書き込みバッファからのデータ取り出しを例示する図である。It is a figure which illustrates the data extraction from a write buffer.

<全体構成>
図1に、実施の形態に係る画像処理装置1のブロック図を例示する。図1の例によれば、画像処理装置1は、複数の画像処理モジュール部2と、モジュールアービタ部3と、DMAC(Direct Memory Access Controller)部4と、バス10と、メモリ11と、CPU12とを含んでいる。なお、ここでは3つの画像処理モジュール部2を例示するが、この例に限定されるものではない。また、3つの処理モジュール部2を区別する場合、符号2a,2b,2cを用いることにする。かかる表記法は他の要素についても用いる場合がある。
<Overall configuration>
FIG. 1 illustrates a block diagram of an image processing apparatus 1 according to the embodiment. 1, the image processing apparatus 1 includes a plurality of image processing module units 2, a module arbiter unit 3, a DMAC (Direct Memory Access Controller) unit 4, a bus 10, a memory 11, and a CPU 12. Is included. In addition, although the three image processing module parts 2 are illustrated here, it is not limited to this example. Further, when distinguishing the three processing module units 2, reference numerals 2a, 2b, and 2c are used. Such notation may also be used for other elements.

画像処理モジュール部2aは、モジュールコア5aと、読み出し用の画像処理インターフェース回路である読み出しインターフェース(I/F)回路6Raと、書き込み用の画像処理インターフェース回路である書き込みインターフェース(I/F)回路6Waとを含んでいる。同様に、画像処理モジュール部2b,2cは、モジュールコア5b,5cと、読み出しI/F回路6Rb,6Rcと、書き込みI/F回路6Wb,6Wcとをそれぞれ含んでいる。また、モジュールアービタ部3は、読み出しアービタ3Rと、書き込みアービタ3Wとを含んでいる。また、DMAC部4は、読み出しDMAC4Rと、書き込みDMAC4Wとを含んでいる。   The image processing module unit 2a includes a module core 5a, a read interface (I / F) circuit 6Ra that is an image processing interface circuit for reading, and a write interface (I / F) circuit 6Wa that is an image processing interface circuit for writing. Including. Similarly, the image processing module units 2b and 2c include module cores 5b and 5c, read I / F circuits 6Rb and 6Rc, and write I / F circuits 6Wb and 6Wc, respectively. The module arbiter unit 3 includes a read arbiter 3R and a write arbiter 3W. The DMAC unit 4 includes a read DMAC 4R and a write DMAC 4W.

図1に示すように、モジュールコア5aは読み出しI/F回路6Raに接続され、同様にモジュールコア5b,5cは読み出しI/F回路6Rb,6Rcにそれぞれ接続されている。3つの読み出しI/F回路6Ra,6Rb,6Rcはいずれも読み出しアービタ3Rに接続されている。読み出しアービタ3Rは読み出しDMAC4Rに接続され、読み出しDMAC4Rはバス10に接続されている。   As shown in FIG. 1, the module core 5a is connected to the read I / F circuit 6Ra, and similarly, the module cores 5b and 5c are connected to the read I / F circuits 6Rb and 6Rc, respectively. All of the three read I / F circuits 6Ra, 6Rb, 6Rc are connected to the read arbiter 3R. The read arbiter 3R is connected to the read DMAC 4R, and the read DMAC 4R is connected to the bus 10.

また、モジュールコア5aは書き込みI/F回路6Waに接続され、同様にモジュールコア5b,5cは書き込みI/F回路6Wb,6Wcにそれぞれ接続されている。3つの書き込みI/F回路6Wa,6Wb,6Wcはいずれも書き込みアービタ3Wに接続されている。書き込みアービタ3Wは書き込みDMAC4Wに接続され、書き込みDMAC4Wはバス10に接続されている。   The module core 5a is connected to the write I / F circuit 6Wa. Similarly, the module cores 5b and 5c are connected to the write I / F circuits 6Wb and 6Wc, respectively. The three write I / F circuits 6Wa, 6Wb, and 6Wc are all connected to the write arbiter 3W. The write arbiter 3W is connected to the write DMAC 4W, and the write DMAC 4W is connected to the bus 10.

すなわち、3つの画像処理モジュール部2a,2b,2cがモジュールアービタ部3に接続され、モジュールアービタ部3はDMAC部4に接続され、DMAC部4はバス10に接続されている。この場合、DMAC部4はモジュールアービタ部3とバス10との間に接続されている。   That is, three image processing module units 2 a, 2 b and 2 c are connected to the module arbiter unit 3, the module arbiter unit 3 is connected to the DMAC unit 4, and the DMAC unit 4 is connected to the bus 10. In this case, the DMAC unit 4 is connected between the module arbiter unit 3 and the bus 10.

モジュールコア5は、入力画像データに対して所定の画像処理(例えば圧縮、伸長、アフィン変換、各種補正等)を実行し、処理後のデータを出力画像データとして出力する。換言すれば、モジュールコア5は、所定の画像処理によって、入力画像データから出力画像データを生成する。   The module core 5 performs predetermined image processing (for example, compression, expansion, affine transformation, various corrections, etc.) on the input image data, and outputs the processed data as output image data. In other words, the module core 5 generates output image data from the input image data by predetermined image processing.

モジュールコア5は、入力画像データを所定サイズの入力ブロック単位で受け付け、受け付けた入力ブロックに対して画像処理を実行し、処理済みデータをコア出力データとして出力する。なお、コア出力データを、入力ブロックに対応させて、出力ブロックとも称することにする。なお、入力ブロックは1つのデータ列で構成される場合もあれば、複数のデータ列の集合体として構成される場合もある。出力ブロックについても同様である。   The module core 5 receives input image data in units of input blocks of a predetermined size, executes image processing on the received input blocks, and outputs processed data as core output data. The core output data is also referred to as an output block corresponding to the input block. Note that the input block may be configured by one data string or may be configured as an aggregate of a plurality of data strings. The same applies to the output block.

モジュールコア5a,5b,5cの画像処理内容は互いに異なっていてもよいし、あるいはモジュールコア5a,5b,5cのうちの2つ以上が同じ種類または同じ内容の画像処理を行うコアであってもよい。なお、モジュールコア5として、既存のモジュールコア、例えばいわゆるIP(Intellectual Property)コアとして提供されるモジュールコアを利用可能である。   The image processing contents of the module cores 5a, 5b, and 5c may be different from each other, or two or more of the module cores 5a, 5b, and 5c may be cores that perform image processing of the same type or the same contents. Good. As the module core 5, an existing module core, for example, a module core provided as a so-called IP (Intellectual Property) core can be used.

読み出しI/F回路6Rは、モジュールコア5で処理する入力画像データをメモリ11から読み出し、その入力画像データを入力ブロック単位でモジュールコア5へ供給するための読み出し処理を行う。また、書き込みI/F回路6Wは、モジュールコア5から出力ブロックを受け取り、それらの出力ブロックを出力画像データとしてメモリ11へ書き込むための書き込み処理を行う。   The read I / F circuit 6R reads input image data to be processed by the module core 5 from the memory 11, and performs read processing for supplying the input image data to the module core 5 in units of input blocks. The write I / F circuit 6W receives output blocks from the module core 5 and performs a write process for writing these output blocks to the memory 11 as output image data.

モジュールアービタ部3は、画像処理モジュール部2a,2b,2cがメモリ11に対してアクセスするのを調停する。   The module arbiter unit 3 arbitrates access to the memory 11 by the image processing module units 2a, 2b, and 2c.

具体的には、読み出しアービタ3Rは、3つの読み出しI/F回路6Rから、メモリ11に対する読み出し要求を受け付け、それらを所定の調停方式に従って調停し、調停によって選択された読み出し要求を読み出しDMAC4Rへ引き渡す。なお、読み出し要求には、メモリ11上の読み出し対象領域を特定するための情報が付随する。   Specifically, the read arbiter 3R receives read requests for the memory 11 from the three read I / F circuits 6R, arbitrates them according to a predetermined arbitration method, and passes the read request selected by the arbitration to the read DMAC 4R. . The read request is accompanied by information for specifying the read target area on the memory 11.

また、書き込みアービタ3Wは、3つの書き込みI/F回路6Wから、メモリ11に対する書き込み要求を受け付け、それらを所定の調停方式に従って調停し、調停によって選択された書き込み要求を書き込みDMAC4Wへ引き渡す。なお、書き込み要求には、書き込み対象データと、メモリ11上の書き込み先領域を特定するための情報とが付随する。   The write arbiter 3W receives write requests for the memory 11 from the three write I / F circuits 6W, arbitrates them according to a predetermined arbitration method, and delivers the write request selected by the arbitration to the write DMAC 4W. The write request is accompanied by data to be written and information for specifying a write destination area on the memory 11.

以下では、読み出し対象領域を開始アドレスおよび終了アドレスで特定する場合を例示し、書き込み先領域についても同様に例示する。但し、この例に限定されるものではない。例えば開始アドレスおよびその領域長さによって、読み出し対象領域および書き込み先領域を特定することも可能である。   In the following, a case where the read target area is specified by the start address and the end address is illustrated, and the write destination area is similarly illustrated. However, it is not limited to this example. For example, the read target area and the write destination area can be specified by the start address and the area length.

アービタ3R,3Wによる調停方式として、ここでは、ラウンドロビン方式を例示する。ラウンドロビン方式では、画像処理モジュール部2a,2b,2cのメモリアクセス要求(RQa,RQb,RQcと表記することにする)間に複数種類の優先順位付けが予め準備される。そして、いずれか1つの優先順位付けに基づいて調停を行ったならば、使用する優先順位付けを切り替える。   Here, as an arbitration method using the arbiters 3R and 3W, a round robin method is exemplified. In the round robin method, multiple types of prioritization are prepared in advance between memory access requests (denoted as RQa, RQb, and RQc) of the image processing module units 2a, 2b, and 2c. If arbitration is performed based on any one of the prioritizations, the prioritization to be used is switched.

より具体的には、例えば(i)RQa>RQb>RQc、(ii)RQb>RQc>RQa、(iii)RQc>RQa>RQbという3種類の優先順位付けが予め準備される。なお、例えばRQa>RQbはRQaの方がRQbよりも優先順位が高いことを表すものとする。上記(i)の優先順位付けが有効である状態において、RQa,RQcが競合したとする。この場合、上記(i)に従って、優先順位の高いRQaが選択される。そして、選択されたRQaが最下位に規定されている優先順位付け、すなわち上記(ii)が次の調停において有効とされる。   More specifically, for example, three types of prioritization are prepared in advance: (i) RQa> RQb> RQc, (ii) RQb> RQc> RQa, and (iii) RQc> RQa> RQb. For example, RQa> RQb indicates that RQa has a higher priority than RQb. Assume that RQa and RQc compete in a state where the prioritization in (i) is valid. In this case, RQa having a higher priority is selected according to (i) above. Then, the prioritization in which the selected RQa is defined at the bottom, that is, the above (ii) is made effective in the next arbitration.

アービタ3R,3Wに他の調停方式を採用してもよい。但し、ラウンドロビン方式は簡易なアルゴリズムの一例であり、そのためアービタ3R,3Wを小規模に構成可能である。   Other arbitration methods may be adopted for the arbiters 3R and 3W. However, the round robin method is an example of a simple algorithm, and therefore the arbiters 3R and 3W can be configured on a small scale.

DMAC部4は、モジュールアービタ部3による調停結果に係るメモリアクセスを実行する。   The DMAC unit 4 executes memory access related to the arbitration result by the module arbiter unit 3.

具体的には、読み出しDMAC4Rは、所定のバス仕様(換言すればバスプロトコル)に準拠したバスインターフェース(I/F)を有している。読み出しDMAC4Rは、当該バスI/Fを、読み出しアービタ3Rから引き渡された読み出し要求に従って制御する。それにより、読み出し要求で指定された、メモリ11の読み出し対象領域から、データが読み出される。読み出しDMAC4Rは、読み出したデータを、その読み出し要求を発行した読み出しI/F回路6Rへ転送する。   Specifically, the read DMAC 4R has a bus interface (I / F) conforming to a predetermined bus specification (in other words, a bus protocol). The read DMAC 4R controls the bus I / F according to a read request delivered from the read arbiter 3R. As a result, data is read from the read target area of the memory 11 specified by the read request. The read DMAC 4R transfers the read data to the read I / F circuit 6R that issued the read request.

また、書き込みDMAC4Wも同様にバスI/Fを有しており、書き込みDMAC4Wは当該バスI/Fを、書き込みアービタ3Wから引き渡された書き込み要求に従って制御する。より具体的には、書き込みDMAC4Wは、書き込み要求に係る書き込み対象データが、書き込み要求で指定された書き込み先領域に格納されるように、バスI/Fを制御する。   Similarly, the write DMAC 4W has a bus I / F, and the write DMAC 4W controls the bus I / F according to the write request delivered from the write arbiter 3W. More specifically, the write DMAC 4W controls the bus I / F so that write target data related to the write request is stored in the write destination area specified by the write request.

ここでは、説明のため、DMAC4R,4WのバスI/FがAXI(Advanced eXtensible Interface)に準拠している場合を例示する。但し、この例に限定されるものではない。AXIによれば、バースト転送が可能である。AXIの転送制御情報は、バースト長、バーストサイズ、等を含む。具体的には、バースト長は1回のバースト転送で行うデータ転送の回数であり、仕様上は基本的に1〜16回のいずれかを設定可能である。また、バーストサイズは1回のバースト転送中の各データ転送における最大転送量であり、仕様上は1,2,4,8,16,32,64,128バイトのいずれかを設定可能である。   Here, for the sake of explanation, a case where the bus I / F of the DMAC 4R, 4W conforms to AXI (Advanced eXtensible Interface) is illustrated. However, it is not limited to this example. According to AXI, burst transfer is possible. The AXI transfer control information includes a burst length, a burst size, and the like. Specifically, the burst length is the number of data transfers performed in one burst transfer, and can basically be set to any one of 1 to 16 times in terms of specifications. The burst size is the maximum transfer amount in each data transfer during one burst transfer, and can be set to any one of 1, 2, 4, 8, 16, 32, 64, and 128 bytes in the specification.

バス10は例えば、データバス、アドレスバス、制御バス等を含んでいる。ここではデータバスが128ビット幅である場合を例示する。この場合、設定可能な最大バーストサイズは16バイト(128ビット)である。なお、AXIではバスをチャネルと称する場合がある。   The bus 10 includes, for example, a data bus, an address bus, a control bus, and the like. Here, the case where the data bus is 128 bits wide is illustrated. In this case, the maximum burst size that can be set is 16 bytes (128 bits). In AXI, the bus may be referred to as a channel.

メモリ11は、画像処理モジュール部2へ入力する画像データ、画像処理モジュール部2から出力された画像データ、等を格納する。このため、メモリ11は、入力画像データを供給する画像供給元メモリとして機能すると共に、出力画像データを格納する画像格納先メモリとしても機能する。なお、画像供給元メモリと画像格納先メモリとを別々の部品で構成してもよい。   The memory 11 stores image data input to the image processing module unit 2, image data output from the image processing module unit 2, and the like. Therefore, the memory 11 functions as an image supply source memory that supplies input image data, and also functions as an image storage destination memory that stores output image data. Note that the image supply source memory and the image storage destination memory may be configured by separate components.

ここでは、メモリ11がDRAM(Dynamic Random Access Memory)である場合を例示し、以下ではメモリ11をDRAM11とも称する。また、DRAM11が32バイトでアラインされている場合、換言すればDRAM11が32バイト境界を有する場合を例示する。但し、これらの例に限定されるものではない。   Here, a case where the memory 11 is a DRAM (Dynamic Random Access Memory) is illustrated, and the memory 11 is also referred to as a DRAM 11 below. Further, the case where the DRAM 11 is aligned with 32 bytes, in other words, the case where the DRAM 11 has a 32-byte boundary is illustrated. However, it is not limited to these examples.

CPU12は、画像処理装置1の全体的な制御を行う。例えば、CPU12は、画像処理モジュール部2に対して、画像処理の実行の指示、および、その実行に必要な情報の提供を行う。   The CPU 12 performs overall control of the image processing apparatus 1. For example, the CPU 12 provides the image processing module unit 2 with an instruction to execute image processing and information necessary for the execution.

なお、バス10に、他のモジュール、例えば外部接続用(外部記憶媒体用、表示装置用等)のインターフェースを提供するモジュールが接続されていてもよい。   Note that another module, for example, a module that provides an interface for external connection (for an external storage medium, a display device, etc.) may be connected to the bus 10.

また、画像処理装置1は1チップに集積された画像集積回路として提供可能であるが、その例に限定されるものではない。また、画像処理装置1は種々に変形可能である。例えば、CPU12を画像処理装置1内から省き、外部のCPUを画像処理装置1に接続するように変形可能である。また、CPU12の替わりにあるいはCPU12と共に、メモリ11とバス10の一方または両方を画像処理装置1内から省いてもよい。   The image processing apparatus 1 can be provided as an image integrated circuit integrated on one chip, but is not limited to this example. The image processing apparatus 1 can be variously modified. For example, the CPU 12 can be modified so that the CPU 12 is omitted from the image processing apparatus 1 and an external CPU is connected to the image processing apparatus 1. Further, instead of the CPU 12 or together with the CPU 12, one or both of the memory 11 and the bus 10 may be omitted from the image processing apparatus 1.

画像処理装置1によれば、3つの画像処理モジュール部2a,2b,2cがDMAC部4を共用する。このため、画像処理モジュール部2a,2b,2cのそれぞれに対してDMAC部4を設けた構成に比べて、DMAC部4の数が削減される。それにより、チップ面積を削減可能である。その結果、装置の小型化、省電力化等を図ることができる。   According to the image processing apparatus 1, the three image processing module units 2a, 2b, and 2c share the DMAC unit 4. Therefore, the number of DMAC units 4 is reduced as compared with the configuration in which the DMAC unit 4 is provided for each of the image processing module units 2a, 2b and 2c. Thereby, the chip area can be reduced. As a result, it is possible to reduce the size and power consumption of the device.

<画像等の説明>
画像処理装置1をより具体的に例示する前に、画像等を説明する。図2には四角形の画像Gを例示しており、説明を分かりやすくするために当該四角形の直交する2辺を水平方向(換言すれば横方向)Hおよび垂直方向(換言すれば縦方向)Vにそれぞれ対応させている。画像Gは図2の例とは違えて縦長であってもよい。なお、画像Gの水平方向HがDRAM11のROWライン方向に対応するものとする。
<Description of images etc.>
Before illustrating the image processing apparatus 1 more specifically, images and the like will be described. FIG. 2 illustrates a quadrangular image G, and in order to make the explanation easy to understand, two orthogonal sides of the quadrilateral are horizontal (in other words, horizontal) H and vertical (in other words, vertical) V. It corresponds to each. Unlike the example of FIG. 2, the image G may be vertically long. It is assumed that the horizontal direction H of the image G corresponds to the ROW line direction of the DRAM 11.

図2に示すように、画像Gは画素PXの集合体として把握される。図2では、画素PXが水平方向Hおよび垂直方向Vのいずれにも整列している。すなわち、マトリクス状に画素PXが配置されている。   As shown in FIG. 2, the image G is grasped as an aggregate of the pixels PX. In FIG. 2, the pixels PX are aligned in both the horizontal direction H and the vertical direction V. That is, the pixels PX are arranged in a matrix.

ここで、水平方向Hに並んだ画素PXの群を画素ラインPLと称することにする。この場合、画像Gにおいて、それぞれの画素ラインPLは水平方向Hに延在しており、複数の画素ラインPLが垂直方向Vに並んでいる。また、画像Gにおいて、画素ラインPLは同じ長さを有し(すなわち画素数が同じ)を有し、画素ラインPLの始端(ここでは左端とする)の位置が揃っており、終端(ここでは右端とする)の位置も揃っている。   Here, a group of pixels PX arranged in the horizontal direction H is referred to as a pixel line PL. In this case, in the image G, each pixel line PL extends in the horizontal direction H, and a plurality of pixel lines PL are arranged in the vertical direction V. Further, in the image G, the pixel lines PL have the same length (that is, the number of pixels is the same), the positions of the start ends (here, left ends) of the pixel lines PL are aligned, and the end (here, The right end) is also aligned.

図3および図4に示すように、画像Gに対して、画素PXの群であるマクロブロックMBが設定される。ここでは、図4の例では、マクロブロックMBが水平方向Hに連続する8画素×垂直方向Vに連続する8画素で構成されている。但し、マクロブロックMBのサイズはこの例に限定されるものではない。例えばH.264では、16×16、16×8、8×16、8×4、4×8、4×4からマクロブロックサイズを選択可能である。   As shown in FIGS. 3 and 4, a macroblock MB that is a group of pixels PX is set for the image G. Here, in the example of FIG. 4, the macroblock MB is composed of 8 pixels continuous in the horizontal direction H × 8 pixels continuous in the vertical direction V. However, the size of the macroblock MB is not limited to this example. For example, H.C. In H.264, the macroblock size can be selected from 16 × 16, 16 × 8, 8 × 16, 8 × 4, 4 × 8, and 4 × 4.

図3に示すように、マクロブロックMBは、画像Gの左上隅を起点(換言すれば原点)にして互いに隣接するように設定される。これにより、画像Gに対してマトリクス状にマクロブロックMBが設定される。   As shown in FIG. 3, the macro blocks MB are set to be adjacent to each other with the upper left corner of the image G as a starting point (in other words, the origin). As a result, the macroblock MB is set in a matrix for the image G.

ここで、マクロブロックMB内において水平方向Hに並んだ画素PXの群、換言すれば画素ラインPLのうちでマクロブロックMB内に存在する部分を、ブロック内画素ラインML(図4参照)と称することにする。また、水平方向Hに並んだマクロブロックMBの群をブロックラインBL(図3参照)と称することにする。   Here, a group of pixels PX arranged in the horizontal direction H in the macroblock MB, in other words, a portion existing in the macroblock MB in the pixel line PL is referred to as an intra-block pixel line ML (see FIG. 4). I will decide. A group of macroblocks MB arranged in the horizontal direction H is referred to as a block line BL (see FIG. 3).

なお、説明を簡単にするため、画像Gの幅(水平方向Hに沿ったサイズ)および高さ(垂直方向Vに沿ったサイズ)は、マクロブロックMBのそれらの倍数である場合を例示する。すなわち、マクロブロックMBが幅8画素×高さ8画素のサイズを有するとの例示において、画像Gの水平方向Hおよび垂直方向Vの画素数はいずれも8の倍数であるとする。   In order to simplify the description, the case where the width (size along the horizontal direction H) and the height (size along the vertical direction V) of the image G are multiples of those of the macroblock MB is exemplified. That is, in the illustration that the macroblock MB has a size of 8 pixels wide × 8 pixels high, it is assumed that the number of pixels in the horizontal direction H and the vertical direction V of the image G is a multiple of 8.

なお、水平方向Hと垂直方向Vの一方または両方において画像Gの画素数が8の倍数でない場合、画像GをマクロブロックMB単位で分割すると、マクロブロックMBのサイズに満たない小画像が生じる。そのような小画像は、例えば、ダミーデータのパディングによってマクロブロックMBのサイズに拡大して画像処理に供される。   When the number of pixels of the image G is not a multiple of 8 in one or both of the horizontal direction H and the vertical direction V, when the image G is divided in units of the macroblock MB, a small image less than the size of the macroblock MB is generated. For example, such a small image is enlarged to the size of the macroblock MB by padding dummy data and used for image processing.

上記のように画像Gが画素PXの集合体として把握される場合、画像Gのデータは画素PXごとの画像データ(すなわち画素データ)の集合体として管理可能である。   When the image G is grasped as an aggregate of the pixels PX as described above, the data of the image G can be managed as an aggregate of image data (that is, pixel data) for each pixel PX.

これに対し、画素データが他の所定形式のデータに変換され、そのような変換後のデータによって画像データが構成される場合がある。例えば圧縮処理が施された画像データが挙げられる。   On the other hand, pixel data may be converted into data of another predetermined format, and image data may be constituted by such converted data. For example, image data that has been subjected to compression processing can be used.

圧縮処理は画素に対して(換言すれば画素データに対して)設定されたマクロブロックMB単位で行われ、各マクロブロックMBについてストリームデータ(換言すればシーケンシャルデータ)が生成される。このため、圧縮等が施された画像データは、そのようなストリームデータの集合体として把握され、例えば図3において各マクロブロックMBをストリームデータに見立てた構成として把握される。   The compression processing is performed in units of macroblocks MB set for pixels (in other words, for pixel data), and stream data (in other words, sequential data) is generated for each macroblock MB. For this reason, the compressed image data is grasped as an aggregate of such stream data, for example, as a configuration in which each macroblock MB is regarded as stream data in FIG.

ここで、画像データが画素データで構成されている場合、水平方向Hに並んだ画素データから成るデータ列は、1本の画素ラインPLに対応する。また、画像データが所定のストリームデータで構成されている場合、水平方向Hに並んだストリームデータから成るデータ列は、所定本数(マクロブロックMBに含まれていた本数)の画素ラインPL、すなわち画素ラインPLの群に対応する。   Here, when the image data is composed of pixel data, a data string composed of pixel data arranged in the horizontal direction H corresponds to one pixel line PL. In addition, when the image data is composed of predetermined stream data, a data string composed of stream data arranged in the horizontal direction H is a predetermined number (the number included in the macroblock MB) of pixel lines PL, that is, pixels. Corresponds to the group of lines PL.

<複数ラインモードと1ラインモード>
ここで、モジュールコア5の入力ブロックがマクロブロックMBである場合、すなわち入力ブロックが複数の画素ラインPLに対して設定されることにより複数のデータ列(それぞれが画素ラインPLに対応する)を含む場合を、複数ラインモードと称することにする。
<Multi-line mode and 1-line mode>
Here, when the input block of the module core 5 is the macro block MB, that is, the input block is set for the plurality of pixel lines PL, thereby including a plurality of data strings (each corresponding to the pixel line PL). This case is referred to as a multiple line mode.

一方、モジュールコア5の入力ブロックが所定のストリームデータである場合、すなわち入力ブロックが1つのデータ列で構成される場合を、1ラインモードと称することにする。   On the other hand, the case where the input block of the module core 5 is predetermined stream data, that is, the case where the input block is composed of one data string is referred to as a one-line mode.

モジュールコア5の出力ブロックについても同様に、複数ラインモードおよび1ラインモードが定義される。   Similarly, for the output block of the module core 5, a multi-line mode and a one-line mode are defined.

以下に読み出しI/F回路6Rおよび書き込みI/F回路6Wの具体例を説明するが、主に、モジュールコア5の入力と出力の両方が複数ラインモードである場合を例に挙げる。例えば画素値の補正、画像のリサイズ等の処理がこれにあたる。入力が複数ラインモードであり且つ出力が1ラインモードの場合(例えば圧縮処理)と、入力が1ラインモードであり且つ出力が複数ラインモードの場合(例えば伸長処理)についても、以下の説明から十分に理解される。   Specific examples of the read I / F circuit 6R and the write I / F circuit 6W will be described below, but a case where both the input and output of the module core 5 are in the multi-line mode is mainly given as an example. For example, processing such as pixel value correction and image resizing corresponds to this. The case where the input is a multi-line mode and the output is a single-line mode (for example, compression processing) and the case where the input is a single-line mode and the output is a multi-line mode (for example, decompression processing) are sufficient from the following description. To be understood.

<読み出しI/F回路6R>
図5に、読み出しI/F回路6Rのブロック図を例示する。図5の例によれば、読み出しI/F回路6Rは、コア側入出力部100と、読み出しバッファ110と、読み出し管理部130と、コア入力管理部150とを含んでいる。
<Read I / F circuit 6R>
FIG. 5 illustrates a block diagram of the read I / F circuit 6R. According to the example of FIG. 5, the read I / F circuit 6 </ b> R includes a core side input / output unit 100, a read buffer 110, a read management unit 130, and a core input management unit 150.

<コア側入力部100>
コア側入出力部100は、読み出しI/F回路6Rの動作クロックが読み出しアービタ3Rのそれと同期している一方、モジュールコア5の動作クロックとは非同期であるとの例に応じて、設けられている。このため、読み出しI/F回路6Rの動作クロックがモジュールコア5のそれと同期している場合には、コア側入出力部100は省略可能である。図3の例によれば、コア側入出力部100は、入力用の非同期FIFO(First In First Out)部101と、出力用の非同期FIFO部102とを含んでいる。
<Core side input unit 100>
The core side input / output unit 100 is provided in accordance with an example in which the operation clock of the read I / F circuit 6R is synchronized with that of the read arbiter 3R, but is not synchronized with the operation clock of the module core 5. Yes. For this reason, when the operation clock of the read I / F circuit 6R is synchronized with that of the module core 5, the core-side input / output unit 100 can be omitted. According to the example of FIG. 3, the core-side input / output unit 100 includes an asynchronous FIFO (First In First Out) unit 101 for input and an asynchronous FIFO unit 102 for output.

<読み出しバッファ110>
読み出しバッファ110は、DRAM11から読み出したデータを一時的に格納するのに利用される。図6の例では、読み出しバッファ110は8個の読み出しラインFIFO部111を有している。8個の読み出しラインFIFO部111は、マクロブロックMB(すなわち入力ブロック)が設定された8本の画素ラインPLにそれぞれ割り当てられている。具体的には、i=0〜7として、マクロブロックMB内で上から数えて第i番目の画素ラインPLのデータは、第i番目の読み出しラインFIFO部111に格納される。
<Read buffer 110>
The read buffer 110 is used to temporarily store data read from the DRAM 11. In the example of FIG. 6, the read buffer 110 has eight read line FIFO units 111. The eight readout line FIFO units 111 are respectively assigned to the eight pixel lines PL in which the macro block MB (that is, the input block) is set. Specifically, assuming that i = 0 to 7, the data of the i-th pixel line PL counted from the top in the macroblock MB is stored in the i-th readout line FIFO unit 111.

ここで、ラインFIFO部111の個数は、マクロブロックMBが設定される画素ラインPLの本数と同数またはそれ以上である。例えば16個のラインFIFO部111を設ければ、最大16本の画素ラインPLに対応可能であり、そのうちの所定の8個のラインFIFO部111を使って例えば8本の画素ラインPL分のマクロブロックMBに対応可能である。また、1ラインモードの場合も同様である。   Here, the number of line FIFO units 111 is equal to or more than the number of pixel lines PL in which the macroblock MB is set. For example, if 16 line FIFO units 111 are provided, a maximum of 16 pixel lines PL can be supported, and a predetermined 8 line FIFO units 111 are used, for example, a macro for 8 pixel lines PL. The block MB can be supported. The same applies to the 1-line mode.

各ラインFIFO部111は、32個の格納領域112を有している。ラインFIFO部111の1個あたりの格納領域112の個数は、1回のバースト転送で設定可能なデータ転送の最大回数(AXIでは16回)のZ倍に選定されている。ここではZ=2であるが、これに限定されるものではない(後述する)。   Each line FIFO unit 111 has 32 storage areas 112. The number of storage areas 112 per line FIFO unit 111 is selected to be Z times the maximum number of data transfers (16 times in AXI) that can be set in one burst transfer. Here, Z = 2, but is not limited to this (described later).

また、1個の格納領域112の容量は、基本的には、データバス幅(換言すれば、ハードウェア設計上、設定可能な最大バーストサイズ)と同じ16バイト(128ビット)に選定されている。この場合、1つのラインFIFO部111は最大で、バースト転送2回分のデータを格納可能である。なお、後述の例では、1個の格納領域112の容量が132ビット(=128ビット+4ビット)に拡張される。   The capacity of one storage area 112 is basically selected to be 16 bytes (128 bits), which is the same as the data bus width (in other words, the maximum burst size that can be set in terms of hardware design). . In this case, one line FIFO unit 111 can store data for two burst transfers at maximum. In the example described later, the capacity of one storage area 112 is expanded to 132 bits (= 128 bits + 4 bits).

ここで、8ビットYUV422の場合、8画素分の画像データ量、すなわちブロック内画素ラインML分の1本分の画像データ量は、16バイトである。したがって、1個の格納領域112にブロック内画素ラインMLの1本分のデータを格納可能であり、8個の格納領域112(第0〜7番目のラインFIFO部111のそれぞれにおいて1個の格納領域112を使用)に、マクロブロックMBの1個分のデータを格納可能である。つまり、読み出しバッファ110の全体で32個のマクロブロックMBのデータを格納可能である。   Here, in the case of 8-bit YUV422, the amount of image data for 8 pixels, that is, the amount of image data for one pixel line in the block ML is 16 bytes. Therefore, data for one pixel line ML in the block can be stored in one storage area 112, and one storage area 112 (one storage in each of the 0th to 7th line FIFO units 111). The data for one macroblock MB can be stored in the area 112). That is, 32 macroblock MB data can be stored in the entire read buffer 110.

ここでは、読み出しバッファ110が2つのSRAM(Static Random Access Memory)113,114で構成される場合、すなわちダブルバッファ構成を採用する場合を例示する。但し、読み出しバッファ110を1つのSRAMまたは3つ以上のSRAMで構成することも可能であるし、又、SRAM以外のメモリを利用することも可能である。   Here, a case where the read buffer 110 is configured with two SRAMs (Static Random Access Memory) 113 and 114, that is, a case where a double buffer configuration is adopted is illustrated. However, the read buffer 110 can be configured by one SRAM or three or more SRAMs, or a memory other than the SRAM can be used.

SRAM113,114の1つのアドレスに1つの格納領域112が割り当てられており、このため1つのアドレスに16バイトのデータを格納可能である。1アドレス分のデータは一括で読み書きされる。この場合、SRAM113,114のワード長は16バイトである。   One storage area 112 is allocated to one address of the SRAMs 113 and 114, so that 16 bytes of data can be stored in one address. Data for one address is read and written at a time. In this case, the word length of the SRAMs 113 and 114 is 16 bytes.

また、各ラインFIFO部111は、SRAM113中の16個の格納領域112(これらのアドレスは連続している)と、SRAM114中の16個の格納領域112(SRAM113中の上記16個の格納領域112と同じアドレスが用意されている)とによって、構成されている。SRAM113中の上記16個の格納領域112に対する書き込みはアドレスが小さい方から順番に且つ循環的に行われ、読み出しも同様である。これによりFIFOが実現される。SRAM114中の上記16個の格納領域112についても同様である。   Each line FIFO unit 111 includes 16 storage areas 112 in the SRAM 113 (these addresses are continuous) and 16 storage areas 112 in the SRAM 114 (the 16 storage areas 112 in the SRAM 113). And the same address are prepared). Writing to the 16 storage areas 112 in the SRAM 113 is performed cyclically in order from the smallest address, and reading is the same. Thereby, FIFO is realized. The same applies to the 16 storage areas 112 in the SRAM 114.

SRAM113に対するアクセスと、SRAM114に対するアクセスとは、独立に実行可能である。このため、例えば、SRAM113,114のうちの一方のSRAMに対して書き込みを行いつつ、他方のSRAMに対して読み出しを行うことが可能である。なお、同じSRAMに対してアクセスが衝突した場合、例えば書き込みを優先させ読み出しを1サイクル待たせればよい。   Access to the SRAM 113 and access to the SRAM 114 can be executed independently. Therefore, for example, it is possible to read data from one SRAM among the SRAMs 113 and 114 while reading data from the other SRAM. Note that when accesses collide with the same SRAM, for example, writing may be prioritized and reading may be waited for one cycle.

図7には、SRAM113,114を交互に切り替えながらデータを書き込む例を示している。すなわち、0番目のデータD0をSRAM113に書き込み、1番目のデータD1をSRAM114に書き込み、2番目のデータD2をSRAM113に書き込み、3番目のデータD3をSRAM114に書き込む。これによれば、例えば、SRAM114にデータD1を書き込みつつ、SRAM113からデータD0を読み出すことが可能である。   FIG. 7 shows an example in which data is written while the SRAMs 113 and 114 are alternately switched. That is, the 0th data D0 is written to the SRAM 113, the first data D1 is written to the SRAM 114, the second data D2 is written to the SRAM 113, and the third data D3 is written to the SRAM 114. According to this, for example, it is possible to read the data D0 from the SRAM 113 while writing the data D1 to the SRAM 114.

もちろん、SRAM113の16個の格納領域112に連続的に書き込み、その後、書き込み先をSRAM114に切り替えることも可能である。   Of course, it is also possible to write continuously to the 16 storage areas 112 of the SRAM 113 and then switch the write destination to the SRAM 114.

<読み出し管理部130>
読み出し管理部130は、DRAM11メモリから読み出しバッファ110へのデータ転送を管理する。図5の例によれば、読み出し管理部130は、アドレス変換部131と、同期FIFO部132,133と、終了判定部134とを含んでいる。
<Read manager 130>
The read management unit 130 manages data transfer from the DRAM 11 memory to the read buffer 110. According to the example of FIG. 5, the read management unit 130 includes an address conversion unit 131, synchronous FIFO units 132 and 133, and an end determination unit 134.

アドレス変換部131は、入力画像データの読み出しに必要な情報(以下、読み出し基本情報と称する)をモジュールコア5から非同期FIFO部101を介して取得する。読み出し基本情報は、例えば、DRAM11において入力画像データが格納されている領域の開始アドレスおよび終了アドレス、マクロブロックMB(すなわちモジュールコア5の入力ブロック)のサイズ、画像水平方向HにおけるマクロブロックMBの個数、等である。   The address conversion unit 131 acquires information necessary for reading input image data (hereinafter, referred to as read basic information) from the module core 5 via the asynchronous FIFO unit 101. The basic read information includes, for example, the start address and end address of the area where the input image data is stored in the DRAM 11, the size of the macro block MB (that is, the input block of the module core 5), and the number of macro blocks MB in the image horizontal direction H. , Etc.

アドレス変換部131は、取得した読み出し基本情報に基づいて、DRAM11上の読み出し対象領域(より具体的には、その領域の開始アドレスおよび終了アドレス)を決定する。この際、読み出し対象領域は、入力画像データが読み出しバッファ110へバースト転送されるように、所定の読み出し条件に従って決定される。その決定手法については後に詳述する。   The address conversion unit 131 determines a read target area (more specifically, a start address and an end address of the area) on the DRAM 11 based on the acquired basic read information. At this time, the read target area is determined according to a predetermined read condition so that the input image data is burst transferred to the read buffer 110. The determination method will be described in detail later.

アドレス変換部131は、読み出し対象領域の開始アドレスおよび終了アドレスを、読み出し要求と共に、読み出しアービタ3Rへ入力する。その後、読み出しDMAC4Rが、読み出しアービタ3Rを介して取得した、読み出し対象領域の開始アドレスおよび終了アドレスに基づいて、その読み出し対象領域のデータをDRAM11から読み出しアービタ3Rを介して読み出しバッファ110へ、バースト転送する。   The address conversion unit 131 inputs the start address and end address of the read target area together with the read request to the read arbiter 3R. Thereafter, based on the start address and end address of the read target area acquired by the read DMAC 4R via the read arbiter 3R, the data in the read target area is burst transferred from the DRAM 11 to the read buffer 110 via the read arbiter 3R. To do.

また、アドレス変換部131は、各回の読み出し要求について、読み出しバッファ110に対する書き込み制御を発行する。かかる書き込み制御は、同期FIFO部132に入力され、対応する読み出し要求に係るデータを読み出しバッファ110に格納する際に利用される。これにより、例えばマクロブロックMB内の第i番目の画素ラインPLのデータを、対応する第i番目のラインFIFO部111に格納することが可能になる。   Further, the address conversion unit 131 issues write control for the read buffer 110 for each read request. Such write control is input to the synchronous FIFO unit 132 and used when data related to a corresponding read request is stored in the read buffer 110. Thereby, for example, the data of the i-th pixel line PL in the macro block MB can be stored in the corresponding i-th line FIFO unit 111.

また、アドレス変換部131は、各回の読み出し要求について、読み出し対象領域のデータサイズを、同期FIFO部133へ入力する。かかるデータサイズは、終了判定部134において、各回の読み出し要求に係る読み出しの終了を検出するのに利用される。具体的には、終了判定部134は、DRAM11から読み出しアービタ3Rを介して読み出しバッファ110へ入力されるデータのバイト数をカウントしており、そのカウント値が同期FIFO部133に入力されたデータサイズと一致したことを以て、所望の読み出し対象領域の読み出しが終了したと判断し、その通知を読み出しアービタ3Rへ入力する。   Further, the address conversion unit 131 inputs the data size of the read target area to the synchronous FIFO unit 133 for each read request. The data size is used by the end determination unit 134 to detect the end of reading related to each read request. Specifically, the end determination unit 134 counts the number of bytes of data input from the DRAM 11 to the read buffer 110 via the read arbiter 3R, and the count value is the data size input to the synchronous FIFO unit 133. Therefore, it is determined that the reading of the desired reading target area has been completed, and the notification is input to the reading arbiter 3R.

また、アドレス変換部131が、決定した読み出し対象領域の終了アドレスが入力画像データの終了アドレスに到達したと判断した場合、その判断結果を同期FIFO部133へ入力する。終了判定部134は、その判断結果を同期FIFO部133から取得したことを以て、入力画像データ全体について読み出しが終了することを知り、その通知を読み出しアービタ3Rへ入力する。   When the address conversion unit 131 determines that the determined end address of the read target area has reached the end address of the input image data, the determination result is input to the synchronous FIFO unit 133. The end determination unit 134 knows that reading of the entire input image data is completed by obtaining the determination result from the synchronous FIFO unit 133, and inputs the notification to the read arbiter 3R.

<コア入力管理部150>
コア入力管理部150は、読み出しバッファ110内の格納データを入力ブロック単位(ここではマクロブロック単位)で、モジュールコア5へ供給する。図5の例によれば、コア入力管理部150は、アドレス計算部151と、フォーマット変換部152とを含んでいる。
<Core input management unit 150>
The core input management unit 150 supplies the data stored in the read buffer 110 to the module core 5 in units of input blocks (here, in units of macro blocks). According to the example of FIG. 5, the core input management unit 150 includes an address calculation unit 151 and a format conversion unit 152.

アドレス計算部151は、モジュールコア5から上記読み出し基本情報を取得し、当該基本情報に基づいて読み出しバッファ110からのデータ読み出しを制御する。具体的には、第0番目〜第7番目のラインFIFO部111を循環的に選択しつつ、選択したラインFIFO部111からブロック内画素ラインMLの1個分のバイト数のデータが読み出されるように、読み出しバッファ110内のアドレスを指定する。   The address calculation unit 151 acquires the read basic information from the module core 5 and controls data reading from the read buffer 110 based on the basic information. Specifically, while the 0th to 7th line FIFO units 111 are cyclically selected, the data of the number of bytes corresponding to one pixel line ML in the block is read from the selected line FIFO unit 111. The address in the read buffer 110 is designated.

ラインFIFO部111の各格納領域112は、基本的には、読み出し操作が1回行われれば、その格納データを破棄または上書きすることが可能になる。但し、所望のデータが2つの格納領域112に跨る場合があり、そのような場合に備える必要がある。具体的には、所望データの後ろ側部分を格納している格納領域112は、まだ読み出されていないデータの一部も一緒に保持している可能性がある。このため、例えば、格納領域112内のデータのうちで読み出し済みの部分だけを削除するようにすればよい。   In each storage area 112 of the line FIFO unit 111, basically, if a read operation is performed once, the stored data can be discarded or overwritten. However, in some cases, desired data may straddle the two storage areas 112, and it is necessary to prepare for such a case. Specifically, there is a possibility that the storage area 112 that stores the rear portion of the desired data also holds a part of the data that has not been read yet. For this reason, for example, only the read portion of the data in the storage area 112 may be deleted.

フォーマット変換部152は、読み出しバッファ110から読み出したデータを、モジュールコア5の入力に適した所定のフォーマットに変換する。例えば、読み出しバッファ110から出力される128ビットのデータを所定のビット幅に切り分ける処理が行われる。フォーマット変換部152からの出力データが、非同期FIFO部102を介してモジュールコア5へ供給される。   The format conversion unit 152 converts the data read from the read buffer 110 into a predetermined format suitable for the input of the module core 5. For example, a process of dividing 128-bit data output from the read buffer 110 into a predetermined bit width is performed. Output data from the format conversion unit 152 is supplied to the module core 5 via the asynchronous FIFO unit 102.

<読み出しI/F回路6Rによる効果>
読み出しI/F回路6Rによれば、複数回分の入力ブロックを事前に読み出しバッファ110に読み出しておき、それらの入力ブロックを順次、モジュールコア5へ供給する。しかも、入力ブロックの読み出しにバースト転送が利用されるように、DRAM11の読み出し対象領域を決定する。したがって、モジュールコア5で必要となる度に入力ブロックを読み出す構成に比べて、各画像処理モジュール部2による読み出し要求の頻度を抑制可能である。それにより、バス帯域を効率良く利用できる。
<Effects of Read I / F Circuit 6R>
According to the read I / F circuit 6R, input blocks for a plurality of times are read to the read buffer 110 in advance, and these input blocks are sequentially supplied to the module core 5. In addition, the read target area of the DRAM 11 is determined so that burst transfer is used for reading the input block. Therefore, the frequency of read requests by the image processing module units 2 can be suppressed as compared with the configuration in which the input block is read each time it is required by the module core 5. Thereby, the bus bandwidth can be used efficiently.

また、各画像処理モジュール部2による読み出し要求の頻度抑制に伴って、読み出しアービタ3Rに、既存のいわゆるバスアービタ(バスに接続され当該バスの使用権を調停するアービタ)で行われる帯域調整を行わせる必要性が低くなる。したがって、読み出しアービタ3Rにはバスアービタに比べて簡易なアルゴリズムを採用可能であり、その結果、読み出しアービタ3Rを小規模に構成可能である。   Further, as the frequency of read requests by each image processing module unit 2 is suppressed, the read arbiter 3R is caused to perform band adjustment performed by an existing so-called bus arbiter (arbiter connected to the bus and arbitrating the right to use the bus). Less need. Therefore, a simpler algorithm can be adopted for the read arbiter 3R than the bus arbiter, and as a result, the read arbiter 3R can be configured on a small scale.

<読み出しI/F回路6Rによるデータの読み出し>
図8に、読み出しI/F回路6RがDRAM11からデータを読み出す様子を模式的に示す。図8および図9に例示するように、読み出しI/F回路6Rは、マクロブロックMBの群であるブロックラインBLを対象にして、読み出しを行う。
<Reading Data by Read I / F Circuit 6R>
FIG. 8 schematically shows how the read I / F circuit 6 </ b> R reads data from the DRAM 11. As illustrated in FIGS. 8 and 9, the read I / F circuit 6 </ b> R performs reading on a block line BL that is a group of macroblocks MB.

具体的には、ブロックラインBL中の各画素ラインPLを始端(ここでは左端)から終端(ここでは右端)へ向けて、バースト転送を繰り返す。特に、図8に対応する図9に示すように、上から数えて第0番目の画素ラインPLの始端からバースト転送を行い、次は第1番目の画素ラインPLの始端からバースト転送を行う。その後、第2番目〜第7番目の画素ラインPLを順番に選択し、各画素ラインPLの始端からバースト転送する。そして、第0番目の画素ラインPLに戻り、読み出しが済んでいない部分の先頭からバースト転送を行う。次に、第1番目の画素ラインPLのうちで読み出しが済んでいない部分の先頭からバースト転送を行う。以下同様にして、ブロックラインBL全体について読み出しを行う。   Specifically, burst transfer is repeated for each pixel line PL in the block line BL from the start end (here, the left end) toward the end (here, the right end). In particular, as shown in FIG. 9 corresponding to FIG. 8, burst transfer is performed from the beginning of the 0th pixel line PL counted from the top, and then burst transfer is performed from the beginning of the first pixel line PL. Thereafter, the second to seventh pixel lines PL are selected in order, and burst transfer is performed from the beginning of each pixel line PL. Then, returning to the 0th pixel line PL, burst transfer is performed from the head of the portion where reading has not been completed. Next, burst transfer is performed from the beginning of the portion of the first pixel line PL that has not been read out. In the same manner, reading is performed on the entire block line BL.

なお、図8では3回のバースト転送によって1本の画素ラインPL分の画素データの読み出しが完了する場合を例示しているが、この例に限定されるものではない。   Although FIG. 8 illustrates a case where reading of pixel data for one pixel line PL is completed by three burst transfers, the present invention is not limited to this example.

この際、1回のバースト転送は、基本的に、設定可能な最大の転送量に設定される。画像処理装置1の場合、16バイト(128ビット)のバーストサイズおよび16回のバースト長で以て、最大256バイトのデータ転送が可能である。   At this time, one burst transfer is basically set to the maximum transfer amount that can be set. In the case of the image processing apparatus 1, data transfer of a maximum of 256 bytes is possible with a burst size of 16 bytes (128 bits) and a burst length of 16 times.

各回のバースト転送の対象、すなわちDRAM11における読み出し対象領域は、上記のように読み出し管理部130(より具体的にはアドレス変換部131)によって設定される。この際、読み出し管理部130は、次のような読み出し条件に従うことによって、図8および図9に例示した読み出しを行う。   The target of each burst transfer, that is, the read target area in the DRAM 11 is set by the read management unit 130 (more specifically, the address conversion unit 131) as described above. At this time, the read management unit 130 performs the read illustrated in FIGS. 8 and 9 by following the following read conditions.

すなわち、ブロックラインBL内の8本の画素ラインPLに対応する8個の入力画像データ列を循環的に選択する旨の条件(循環選択条件)と、上記入力画像データ列の先頭の側から順に読み出し対象領域を設定する旨の条件(列内順序条件)と、各入力画像データ列に対する読み出し対象領域の設定は、選択される度に1回とする旨の条件(回数条件)とに従って、読み出し管理部130は読み出し対象領域を順次、決定していく。   That is, a condition for cyclically selecting eight input image data strings corresponding to eight pixel lines PL in the block line BL (circular selection condition), and in order from the top of the input image data string Reading is performed in accordance with a condition for setting a reading target area (in-column order condition) and a setting for setting the reading target area for each input image data string once (selection condition). The management unit 130 sequentially determines the read target area.

図8および図9に例示した読み出し手法によれば、8本の画素ラインPLに対応する8個の入力画像データ列が部分的且つ並行的に読み出され、又、そのような読み出しが8個の入力画像データ列の先頭側から順に進行する。   According to the readout method illustrated in FIGS. 8 and 9, eight input image data strings corresponding to the eight pixel lines PL are read out partially and in parallel, and eight such readouts are performed. The process proceeds in order from the beginning of the input image data sequence.

このため、一の画素ラインPLを先頭から終端まで読み出しその後に他の画素ラインPLの読み出しを開始する場合に比べて、モジュールコア5へのデータ供給に遅延を生じにくい。すなわち、後者の場合、例えば最も先頭側に設定されたマクロブロックMBをモジュールコア5に供給するのに要する時間は、8本の画素ラインPL全体、すなわちブロックラインBL全体を読み出す時間にほぼ等しい。   For this reason, compared with the case where one pixel line PL is read from the head to the end and then reading of the other pixel lines PL is started, the data supply to the module core 5 is less likely to be delayed. That is, in the latter case, for example, the time required to supply the macro block MB set at the most leading side to the module core 5 is substantially equal to the time required to read the entire eight pixel lines PL, that is, the entire block line BL.

これに対し、図8および図9の示した部分的且つ並行的な読み出しによれば、8本の画素ラインPL全体の読み出しを待たなくても、最も先端側のマクロブロックMBをモジュールコア5に供給し終えることができる。   On the other hand, according to the partial and parallel readout shown in FIGS. 8 and 9, the most macro block MB is transferred to the module core 5 without waiting for the readout of the entire eight pixel lines PL. You can finish supplying.

また、そのような部分的且つ並行的な読み出しによれば、読み出しバッファ110の容量を小さくできる。   Further, according to such partial and parallel reading, the capacity of the read buffer 110 can be reduced.

ここで、読み出し対象領域の設定に際し、DRAM11のアドレスアライメントに配慮するのが好ましい。DRAM11の動作を効率化できるからである。この点に関する読み出し条件として、読み出し対象領域の終了アドレスをDRAM11のアドレスアライメント境界(ここでは32バイト境界)に合わせる旨の条件(読み出しアライメント条件)が採用される。   Here, it is preferable to consider the address alignment of the DRAM 11 when setting the read target area. This is because the operation of the DRAM 11 can be made efficient. As a read condition relating to this point, a condition (read alignment condition) is adopted in which the end address of the read target area is aligned with the address alignment boundary (32-byte boundary here) of the DRAM 11.

かかる読み出しアライメント条件によれば、或る開始アドレスが与えられた場合、終了アドレスは{(開始アドレス&0x1f)+255バイト}によって算出可能である。 According to the read alignment condition, when a certain starting address is given, the end address can be calculated by {(start address & ~ 0x1f) +255 bytes}.

読み出しアライメント条件の採用により、読み出し対象領域がDRAM11のアドレスアライメント境界を跨ぐ場合に比べて、DRAM11を効率良く動作させることが可能である。それにより、データ転送効率の向上、省電力化等に資する。   By adopting the read alignment condition, it is possible to operate the DRAM 11 more efficiently than when the read target region crosses the address alignment boundary of the DRAM 11. Thereby, it contributes to improvement of data transfer efficiency and power saving.

ところで、読み出しアライメント条件によって読み出し対象領域の終了アドレスを調整すると、図10に示すように画素ラインPLの最初のバースト転送および最後のバースト転送では、読み出し対象領域が256バイトよりも短くなる場合がある。そのような場合は、例えば、読み出しDMAC4Rによってバースト長の設定が調整される。   By the way, if the end address of the read target area is adjusted according to the read alignment condition, the read target area may be shorter than 256 bytes in the first burst transfer and the last burst transfer of the pixel line PL as shown in FIG. . In such a case, for example, the setting of the burst length is adjusted by the read DMAC 4R.

また、読み出し対象領域が短くなった結果、読み出し対象領域がバス幅(ここでは128ビット)の倍数にならない場合が生じうる。読み出しI/F回路6Rはバス10からバス幅単位でデータを受信する点に鑑みると、読み出し対象領域がバス幅の倍数でない場合、図11に示すように、読み出し対象領域として意図していない不要データも一緒にバス10から拾うことになる。特にそのような不要データは受信ビット列の末端部分に含まれることになるので、そのまま読み出しバッファ110へ入力すると、図11に示すように、次の読み出し対象領域のデータとの間に不要データが割り込むことになる。コア入力管理部150(より具体的にはアドレス計算部151)がそのような不要データをモジュールコア5へ供給しないようにすればよいが、そのためには不要データの位置とサイズを管理する必要があり煩雑である。   In addition, as a result of the shortening of the read target area, the read target area may not be a multiple of the bus width (here 128 bits). In view of the point that the read I / F circuit 6R receives data from the bus 10 in units of bus width, when the read target area is not a multiple of the bus width, as shown in FIG. Data will be picked up from the bus 10 together. In particular, since such unnecessary data is included in the end portion of the received bit string, if it is input to the read buffer 110 as it is, unnecessary data interrupts with the next read target area data as shown in FIG. It will be. The core input management unit 150 (more specifically, the address calculation unit 151) may be configured not to supply such unnecessary data to the module core 5, but in order to do so, it is necessary to manage the position and size of the unnecessary data. It is complicated.

そこで、読み出し管理部130は、読み出し対象領域が画素ラインPLの始端を含む場合、読み出し対象領域のデータ量がバス幅の倍数になるように読み出し対象領域の開始アドレスを設定する旨の条件(読み出しサイズ条件)を利用する。これによれば、図12に示すように、不要データを受信ビット列内において前詰めすることができる。換言すれば、入力画像データにとって有意なデータを受信ビット列内において後ろ詰めにすることができる。すなわち、読み出し対象領域の開始アドレスの調整は、不要なデータを受信ビット列中に含ませることになるが、そのような不要データを意図的に、受信ビット列の前方に配置することができる。   Therefore, when the readout target area includes the start end of the pixel line PL, the readout management unit 130 sets a condition that the start address of the readout target area is set so that the data amount of the readout target area is a multiple of the bus width (read out). Size size). According to this, as shown in FIG. 12, unnecessary data can be left-justified in the received bit string. In other words, data significant for input image data can be left-justified in the received bit string. That is, adjustment of the start address of the read target area includes unnecessary data in the received bit string, but such unnecessary data can be intentionally arranged in front of the received bit string.

したがって、図12に示すように、1本の画素ラインPLに対応するデータ列中に不要データが割り込むのを回避できる。このため、不要データの管理および除去が容易になる。具体的には、コア入力管理部150が、各画素ラインPLに対応するデータ列のうちで、読み出し開始アドレスの調整量に応じた先頭データを無視すれば済む。なお、上記調整量は、読み出しアライメント条件に従って上記の0x1fによってマスクされた量、換言すれば読み出しアライメント条件を適用する前の開始アドレスの下位5ビットで与えられる。 Therefore, as shown in FIG. 12, it is possible to avoid unnecessary data from being interrupted in the data string corresponding to one pixel line PL. This facilitates management and removal of unnecessary data. Specifically, the core input management unit 150 may ignore head data corresponding to the adjustment amount of the read start address in the data string corresponding to each pixel line PL. The adjustment amount is given by the amount masked by ~ 0x1f according to the read alignment condition, in other words, the lower 5 bits of the start address before the read alignment condition is applied.

より具体的には、ラインFIFO部111の格納領域112に、読み出したデータを格納するための128ビットの前に、読み出し開始アドレスの調整量を格納するための4ビットを設ける。コア入力管理部150では、アドレス計算部151またはフォーマット変換部152が、各格納領域112の先頭4ビットを参照することで、不要データの有無と、不要データのサイズ(すなわち、続く128ビットのうちでモジュールコア5へ供給しないデータ量)とを判別可能である。   More specifically, the storage area 112 of the line FIFO unit 111 is provided with 4 bits for storing the read start address adjustment amount before 128 bits for storing the read data. In the core input management unit 150, the address calculation unit 151 or the format conversion unit 152 refers to the first 4 bits of each storage area 112, so that the presence / absence of unnecessary data and the size of unnecessary data (that is, of the following 128 bits) The amount of data not supplied to the module core 5) can be determined.

なお、図12に示すように、画素ラインPLの終端側においても、読み出し対象領域が短くなった結果、読み出し対象領域がバス幅の倍数にならない場合が生じうる。但し、画素ラインPLの終端側については、受信ビット列の末端部分に不要データが存在しても特に問題にならない。なぜならば、例えばモジュールコア5への供給データ量が画素ラインPLの1本分に到達した段階で、その格納領域112から出力される後続ビットは無視すればよく、その結果、不要データを自動的に除去することが可能になるからである。   As shown in FIG. 12, the read target area may not be a multiple of the bus width as a result of the shortened read target area even on the terminal side of the pixel line PL. However, regarding the end side of the pixel line PL, there is no particular problem even if unnecessary data exists at the end portion of the received bit string. This is because, for example, when the amount of data supplied to the module core 5 reaches one line of the pixel line PL, the subsequent bits output from the storage area 112 may be ignored. This is because it can be removed.

次に、読み出し対象領域の終了アドレスの設定に関連した条件(終了アドレス条件)を説明する。読み出し対象領域の終了アドレスは、基本的には、開始アドレス+255バイトに設定される。但し、上記のように、読み出しアライメント条件の下では、DRAM11のアドレスアライメント境界に配慮して、終了アドレスは{(開始アドレス&0x1f)+255バイト}で与えられる。 Next, conditions (end address conditions) related to setting the end address of the read target area will be described. The end address of the read target area is basically set to (start address + 255 bytes). However, as described above, under the read alignment condition, in consideration of the address alignment boundary of DRAM 11, the end address is given by {(the start address & ~ 0x1f) +255 bytes}.

また、画素ラインPL中の未読み出し部分がバースト転送の最大転送量(ここでは256バイト)以下である場合、読み出し対象領域の終了アドレスを画素ラインPLの終端アドレスに設定する。すなわち、図8および図9では画素ラインPLの最後の読み出し対象領域も上記最大転送量に相当する例を図示しているが、特に最後の読み出し対象領域が上記最大転送量よりも小さい場合には、その読み出し対象領域のサイズに合わせて終了アドレスを設定すればよい。これによれば、画素ラインPLの終端側部分の読み出しについて、不要な転送動作を抑制できる。したがって、バス帯域を効率良く利用できる。   When the unread portion in the pixel line PL is equal to or less than the maximum transfer amount (256 bytes in this case) of burst transfer, the end address of the read target region is set as the end address of the pixel line PL. That is, FIG. 8 and FIG. 9 illustrate an example in which the last read target area of the pixel line PL also corresponds to the maximum transfer amount, but particularly when the last read target area is smaller than the maximum transfer amount. The end address may be set in accordance with the size of the read target area. According to this, an unnecessary transfer operation can be suppressed for reading of the terminal side portion of the pixel line PL. Therefore, the bus bandwidth can be used efficiently.

これに対し、画素ラインPLの未読み出し部分が1回のバースト転送で設定可能な最大転送量よりも大きい場合であっても、読み出し対象領域の終了アドレスを画素ラインPLの終端アドレスに設定するのが好ましい場合がある。具体的には、図10に示すように、画素ラインPLの最後の読み出し対象領域が小さい場合、その小さい領域を読み出すために読み出し要求を発行するのは効率が悪い。特に、そのような小さい領域が多く存在する場合には、効率低下は大きくなる。   In contrast, even if the unread portion of the pixel line PL is larger than the maximum transfer amount that can be set in one burst transfer, the end address of the read target region is set as the end address of the pixel line PL. May be preferred. Specifically, as shown in FIG. 10, when the last read target area of the pixel line PL is small, it is inefficient to issue a read request to read the small area. In particular, when there are many such small regions, the reduction in efficiency becomes large.

そこで、画素ラインPL中の未読み出し部分が1回のバースト転送で設定可能な最大転送量を超過している場合、且つ、その超過量が上記読み出しサイズ条件の下で設定された開始アドレスと画素ラインPLの先頭アドレスとの差分よりも大きい場合には、上記の基本的な終了アドレス条件と同様に、読み出し対象領域の終了アドレスを上記最大転送量に合わせて設定する。なお、上記差分は、読み出しアライメント条件下における開始アドレスの上記調整量にあたる。   Therefore, when the unread portion in the pixel line PL exceeds the maximum transfer amount that can be set by one burst transfer, the excess amount is set to the start address and the pixel set under the read size condition. If the difference from the head address of the line PL is larger than the basic end address condition, the end address of the read target area is set in accordance with the maximum transfer amount. The difference corresponds to the adjustment amount of the start address under the read alignment condition.

これによれば、1回の読み出し要求で以て、転送可能な最大データ量を確保可能である。このため、読み出し要求の回数増加が抑制されることで、データ転送を効率的に行うことができる。また、データ転送の効率化に伴って読み出し要求の頻度が抑制されるので、読み出しアービタの処理負荷を低減可能である。   According to this, it is possible to secure the maximum amount of data that can be transferred with a single read request. For this reason, the data transfer can be performed efficiently by suppressing the increase in the number of read requests. In addition, since the frequency of read requests is suppressed as data transfer becomes more efficient, the processing load on the read arbiter can be reduced.

これに対し、上記超過量が上記差分以下である場合、読み出し対象領域の終了アドレスを画素ラインPLの終端アドレスに設定する。これによれば、図13に示すように、上記のような小さい領域が生じるのを回避できる。また、この場合、バースト転送可能な最大データ量に加え、上記の小さい領域のデータも、1回の読み出し要求で以て確保可能である。また、図13に示すように、各画素ラインPLについて読み出し要求の回数が揃うことになる。その結果、読み出し要求の回数増加が抑制されることで、データ転送を効率的に行うことができる。また、データ転送の効率化に伴って読み出し要求の頻度が抑制されるので、読み出しアービタの処理負荷を低減可能である。   On the other hand, when the excess amount is equal to or less than the difference, the end address of the read target area is set as the end address of the pixel line PL. According to this, as shown in FIG. 13, it is possible to avoid the occurrence of such a small region. In this case, in addition to the maximum amount of data that can be burst transferred, the data in the small area can be secured by a single read request. In addition, as shown in FIG. 13, the number of read requests is equalized for each pixel line PL. As a result, an increase in the number of read requests is suppressed, so that data transfer can be performed efficiently. In addition, since the frequency of read requests is suppressed as data transfer becomes more efficient, the processing load on the read arbiter can be reduced.

なお、上記超過量が上記差分以下である場合の終了アドレス条件によれば、1回のバースト転送で設定可能なデータ量を超えて、読み出し要求を行うことになる。このような場合でも、読み出しDMAC4Rによって2回以上のバースト転送に分割される。一方、読み出したデータを格納するためには、ラインFIFO部111において17個以上の格納領域112が受け入れ可能になっている必要がある。このため、かかる終了アドレス条件は、ラインFIFO部111の空き具合の確認と共に、利用すればよい。   According to the end address condition when the excess amount is equal to or less than the difference, a read request is made exceeding the data amount that can be set by one burst transfer. Even in such a case, it is divided into two or more burst transfers by the read DMAC 4R. On the other hand, in order to store the read data, the line FIFO unit 111 needs to be able to accept 17 or more storage areas 112. For this reason, the end address condition may be used together with confirmation of the availability of the line FIFO unit 111.

<書き込みI/F回路6W>
図14に、書き込みI/F回路6Wのブロック図を例示する。図14の例によれば、書き込みI/F回路6Wは、コア側入出力部200と、書き込みバッファ210と、書き込み管理部230と、コア出力管理部250とを含んでいる。
<Write I / F circuit 6W>
FIG. 14 illustrates a block diagram of the write I / F circuit 6W. According to the example of FIG. 14, the write I / F circuit 6 </ b> W includes a core-side input / output unit 200, a write buffer 210, a write management unit 230, and a core output management unit 250.

<コア側入力部200>
コア側入出力部200は、読み出しI/F回路6Rのコア側入出力部100(図5参照)と同様の目的で設けられている。図14の例によれば、コア側入出力部200は、入力用に非同期FIFO部201,202および非同期パルス部203を含んでいる。
<Core-side input unit 200>
The core side input / output unit 200 is provided for the same purpose as the core side input / output unit 100 (see FIG. 5) of the read I / F circuit 6R. According to the example of FIG. 14, the core side input / output unit 200 includes asynchronous FIFO units 201 and 202 and an asynchronous pulse unit 203 for input.

<書き込みバッファ210>
書き込みバッファ210は、モジュールコア5から出力されるコア出力データ(換言すれば出力ブロック)を一時的に格納するのに利用される。ここでは書き込みバッファ210が、読み出しI/F回路6Rの読み出しバッファ110と同様に、8個の書き込みラインFIFO部が2つのSRAMで構成されている場合を例示する。この場合、読み出しバッファ110と同様に、8個の書き込みラインFIFO部は、出力ブロックに含まれる8本の画素ラインPLにそれぞれ割り当てられている。
<Write buffer 210>
The write buffer 210 is used to temporarily store core output data (in other words, an output block) output from the module core 5. Here, as an example, the write buffer 210 is configured with eight write line FIFO units composed of two SRAMs, like the read buffer 110 of the read I / F circuit 6R. In this case, similarly to the read buffer 110, the eight write line FIFO units are respectively assigned to the eight pixel lines PL included in the output block.

ここでは、出力ブロックに含まれる画素ラインPLの本数が、入力ブロックが設定される画素ラインPLの本数と同じである場合を例示するが、例えばモジュールコア5が画像を垂直方向Vに縮小するリサイズ処理を行う場合、出力ブロックに対応する画素ラインPLの本数は、入力ブロックに対応する画素ラインPLの本数よりも少ない。逆に、画像を垂直方向Vに拡大するリサイズ処理では、出力ブロックに対応する画素ラインPLの本数は、入力ブロックに対応する画素ラインPLの本数よりも多い。   In this example, the number of pixel lines PL included in the output block is the same as the number of pixel lines PL in which the input block is set. For example, the module core 5 performs resizing so that the image is reduced in the vertical direction V. When processing is performed, the number of pixel lines PL corresponding to the output block is smaller than the number of pixel lines PL corresponding to the input block. On the contrary, in the resizing process for enlarging the image in the vertical direction V, the number of pixel lines PL corresponding to the output block is larger than the number of pixel lines PL corresponding to the input block.

<コア出力管理部250>
コア出力管理部250は、コア出力データの書き込みバッファ210への入力を管理する。図14の例によれば、コア出力管理部250は、アドレス計算部251と、フォーマット変換部252とを含んでいる。
<Core output management unit 250>
The core output management unit 250 manages input of core output data to the write buffer 210. According to the example of FIG. 14, the core output management unit 250 includes an address calculation unit 251 and a format conversion unit 252.

コア出力データは、モジュールコア5から非同期FIFO部202を介してフォーマット変換部252へ入力される。フォーマット変換部252は、所定のフォーマットで構成されたコア出力データを、書き込みバッファ210の入力に適したフォーマットに変換する。例えば、コア出力データのビット列を、書き込みバッファ210の1ワード(128ビット)単位に変換する。   The core output data is input from the module core 5 to the format conversion unit 252 via the asynchronous FIFO unit 202. The format conversion unit 252 converts the core output data configured in a predetermined format into a format suitable for input to the write buffer 210. For example, the bit string of the core output data is converted into one word (128 bits) unit of the write buffer 210.

アドレス計算部251は、フォーマット変換部252の出力データを書き込みバッファ210のどのアドレスに格納するのかについて制御する。具体的には、アドレス計算部251は、出力画像データをDRAM11へ書き込むために必要な情報(以下、書き込み基本情報と称する)をモジュールコア5から非同期FIFO部201を介して取得する。書き込み基本情報は、例えば、DRAM11において出力画像データの格納先領域の開始アドレスおよび終了アドレス、モジュールコア5の出力ブロック(換言すれば出力側におけるマクロブロックMB)のサイズ、画像水平方向Hにおける出力ブロックの個数、等である。   The address calculation unit 251 controls in which address of the write buffer 210 the output data of the format conversion unit 252 is stored. Specifically, the address calculation unit 251 acquires information necessary for writing output image data to the DRAM 11 (hereinafter referred to as write basic information) from the module core 5 via the asynchronous FIFO unit 201. The basic write information includes, for example, the start address and end address of the output image data storage destination area in the DRAM 11, the size of the output block of the module core 5 (in other words, the macroblock MB on the output side), and the output block in the image horizontal direction H Number of the like, etc.

なお、画像水平方向Hにおける出力ブロックの個数の情報は画素ラインPLの終端位置の指標となるが、例えばモジュールコア5が、画素ラインPLの終端のデータを出力する際に、その通知を非同期パルス部203を介してアドレス計算部251へ出力してもよい。   The information on the number of output blocks in the image horizontal direction H serves as an index of the end position of the pixel line PL. For example, when the module core 5 outputs data at the end of the pixel line PL, the notification is sent as an asynchronous pulse. The data may be output to the address calculation unit 251 via the unit 203.

<書き込み管理部230>
書き込み管理部230は、書き込みバッファ210内の格納データのDRAM11への転送を管理する。図14の例によれば、書き込み管理部230は、アドレス変換部231と、同期FIFO部232,233と、終了判定部234とを含んでいる。
<Write manager 230>
The write management unit 230 manages the transfer of data stored in the write buffer 210 to the DRAM 11. According to the example of FIG. 14, the write management unit 230 includes an address conversion unit 231, synchronous FIFO units 232 and 233, and an end determination unit 234.

アドレス変換部231は、モジュールコア5から上記書き込み基本情報を取得する。上記のように、画像水平方向Hにおける出力ブロックの個数の情報の代わりに、例えばモジュールコア5が画素ラインPLの終端のデータを出力する際に発行する通知を、非同期パルス部203を介して取得してもよい。   The address conversion unit 231 acquires the write basic information from the module core 5. As described above, instead of information on the number of output blocks in the image horizontal direction H, for example, a notification issued when the module core 5 outputs data at the end of the pixel line PL is acquired via the asynchronous pulse unit 203. May be.

そして、アドレス変換部231は、取得した基本情報に基づいて、書き込みバッファ210からのデータ読み出しを制御する。具体的には、アドレス変換部231は、図15に示すように書き込みラインFIFO部に格納された各回の出力ブロックのデータを、図16に示すようにバースト転送のために纏める。また、アドレス変換部231は、そのように纏められた書き込み対象データの格納先である、DRAM11上の書き込み先領域の開始アドレスおよび終了アドレスを設定する。   Then, the address conversion unit 231 controls reading of data from the write buffer 210 based on the acquired basic information. Specifically, the address conversion unit 231 collects the output block data stored in the write line FIFO unit as shown in FIG. 15 for burst transfer as shown in FIG. Further, the address conversion unit 231 sets a start address and an end address of a write destination area on the DRAM 11 which is a storage destination of the write target data collected in this way.

書き込み対象データおよび書き込み先領域は、書き込み要求と共に、書き込みアービタ3Wへ入力される。その後、書き込みDMAC4Wが、書き込みアービタ3Wを介して取得した書き込み先領域へ、書き込み対象データをバースト転送する。   The write target data and the write destination area are input to the write arbiter 3W together with the write request. Thereafter, the write DMAC 4W performs burst transfer of the write target data to the write destination area acquired via the write arbiter 3W.

書き込み管理部231は、書き込み対象データおよび書き込み先領域を、書き込みラインFIFO部ごとに決定し、その決定は所定の書き込み条件に従って行われる。書き込み条件については後述する。   The write management unit 231 determines write target data and a write destination area for each write line FIFO unit, and the determination is performed according to a predetermined write condition. Write conditions will be described later.

また、アドレス変換部231は、各回の書き込み要求について、書き込みバッファ210に対する読み出し制御を発行する。かかる読み出し制御は、同期FIFO部232に入力され、書き込み対象データを書き込みバッファ210から取り出す際に利用される。   Further, the address conversion unit 231 issues a read control to the write buffer 210 for each write request. Such read control is input to the synchronous FIFO unit 232 and used when taking out write target data from the write buffer 210.

また、アドレス変換部231は、各回の書き込み要求について、書き込み先領域のデータサイズを、同期FIFO部233へ入力する。かかるデータサイズは、終了判定部234において、各回の書き込み要求に係る書き込みの終了を検出するのに利用される。具体的には、終了判定部234は、書き込みバッファ210から書き込みアービタ3Wを介してDRAM11へ転送されるデータのバイト数をカウントしており、そのカウント値が同期FIFO部233に入力されたデータサイズと一致したことを以て、所望の書き込み対象データの書き込みが終了したと判断し、その通知を書き込みアービタ3Wへ入力する。   In addition, the address conversion unit 231 inputs the data size of the write destination area to the synchronous FIFO unit 233 for each write request. The data size is used by the end determination unit 234 to detect the end of writing related to each write request. Specifically, the end determination unit 234 counts the number of bytes of data transferred from the write buffer 210 to the DRAM 11 via the write arbiter 3W, and the count value is input to the synchronous FIFO unit 233. Therefore, it is determined that the writing of the desired write target data has been completed, and the notification is input to the write arbiter 3W.

また、アドレス変換部231が、出力画像データの全てのデータについて書き込み要求を発行したと判断した場合、その判断結果を同期FIFO部233へ入力する。終了判定部234は、その判断結果を同期FIFO部233から取得したことを以て、出力画像データ全体について書き込みが終了することを知り、その通知を書き込みアービタ3Wへ入力する。   If the address conversion unit 231 determines that a write request has been issued for all the output image data, the determination result is input to the synchronous FIFO unit 233. The end determination unit 234 knows that writing has been completed for the entire output image data by acquiring the determination result from the synchronous FIFO unit 233, and inputs the notification to the write arbiter 3W.

<書き込みI/F回路6Wによる効果>
書き込みI/F回路6Wによれば、複数個の出力ブロックを書き込みバッファ210に蓄積しておき、且つ、それらを纏めてDRAM11へバースト転送させる。したがって、モジュールコア5から出力ブロックが出力される度にその出力ブロックをDRAM11へ転送する構成に比べて、各画像処理モジュール部2による書き込み要求の頻度を抑制可能である。それにより、バス帯域を効率良く利用できる。
<Effects of write I / F circuit 6W>
According to the write I / F circuit 6W, a plurality of output blocks are accumulated in the write buffer 210, and are collectively transferred to the DRAM 11 in a burst manner. Therefore, the frequency of write requests by each image processing module unit 2 can be suppressed as compared with the configuration in which the output block is transferred to the DRAM 11 each time an output block is output from the module core 5. Thereby, the bus bandwidth can be used efficiently.

また、各画像処理モジュール部2による書き込み要求の頻度抑制に伴って、書き込みアービタ3Wに、既存のいわゆるバスアービタで行われる帯域調整を行わせる必要性が低くなる。したがって、書き込みアービタ3Wにはバスアービタに比べて簡易なアルゴリズムを採用可能であり、その結果、書き込みアービタ3Wを小規模に構成可能である。   Further, as the frequency of write requests by each image processing module unit 2 is suppressed, it is less necessary for the write arbiter 3W to perform band adjustment performed by an existing so-called bus arbiter. Therefore, a simpler algorithm can be employed for the write arbiter 3W than the bus arbiter, and as a result, the write arbiter 3W can be configured on a small scale.

<書き込みI/F回路6Wによるデータの書き込み>
書き込みI/F回路6Wでは、書き込みラインFIFO部ごとに未書き込みデータ(DRAM11への書き込みが済んでいないデータ)の蓄積量が所定閾値を超えたか否かを監視し、未書き込みデータの蓄積量が所定閾値を超えた時点で、その未書き込みデータを書き込み対象データに選定して書き込み要求を発行する。
<Data writing by write I / F circuit 6W>
The write I / F circuit 6W monitors whether or not the accumulated amount of unwritten data (data not yet written to the DRAM 11) exceeds a predetermined threshold for each write line FIFO unit, and the accumulated amount of unwritten data is When the predetermined threshold value is exceeded, the unwritten data is selected as write target data and a write request is issued.

上記所定閾値は、基本的には、1回のバースト転送で設定可能な最大転送量である。すなわち、書き込み対象データを上記最大転送量に設定する旨の条件(書き込みサイズ条件)が適用される。かかる書き込みサイズ条件によれば、データ転送を効率的に行うことができる。また、データ転送の効率化に伴って書き込み要求の頻度が抑制されるので、書き込みアービタ3Wの処理負荷を低減可能である。   The predetermined threshold is basically the maximum transfer amount that can be set by one burst transfer. That is, a condition (write size condition) for setting the write target data to the maximum transfer amount is applied. According to the write size condition, data transfer can be performed efficiently. In addition, since the frequency of write requests is suppressed as data transfer becomes more efficient, the processing load on the write arbiter 3W can be reduced.

但し、未書き込みデータが、モジュールコア5から出力される出力画像において画素ラインの終端に到達した場合には、その終端に対応するコア出力データまでの範囲で以て書き込み対象データを区切り、その区切られた範囲(換言すれば、その書き込み対象データのサイズ)に応じた書き込み先領域を設定するのが好ましい(ライン終端条件)。これによれば、ライン終端側部分の書き込みについて、不要な転送動作を抑制できる。したがって、バス帯域を効率良く利用できる。   However, when unwritten data reaches the end of the pixel line in the output image output from the module core 5, the data to be written is divided within the range up to the core output data corresponding to the end, It is preferable to set a write destination area in accordance with the range (in other words, the size of the write target data) (line termination condition). According to this, an unnecessary transfer operation can be suppressed for writing at the line end side portion. Therefore, the bus bandwidth can be used efficiently.

また、読み出しI/F回路6Rと同様に、DRAM11のアドレスアライメントに配慮するのが好ましい。具体的には、DRAM11中の書き込み先領域をDRAM11のアドレスアライメント境界に合わせる旨の条件(書き込みアライメント条件)が採用される。書き込みアライメント条件によれば、書き込み先領域がDRAM11のアドレスアライメント境界を跨ぐ場合に比べて、DRAM11を効率良く動作させることが可能である。それにより、データ転送効率の向上、省電力化等に資する。   Further, like the read I / F circuit 6R, it is preferable to consider the address alignment of the DRAM 11. Specifically, a condition (write alignment condition) that the write destination area in the DRAM 11 is aligned with the address alignment boundary of the DRAM 11 is employed. According to the write alignment condition, it is possible to operate the DRAM 11 more efficiently than when the write destination region crosses the address alignment boundary of the DRAM 11. Thereby, it contributes to improvement of data transfer efficiency and power saving.

<変形例1>
さて、上記では、各ラインFIFO部111において、格納領域112の個数が、1回のバースト転送で設定可能なデータ転送の最大回数(AXIでは16回)の2倍である場合を例示した。しかし、この例に限定されるものではない。
<Modification 1>
In the above, the case where the number of the storage areas 112 in each line FIFO unit 111 is twice the maximum number of data transfers that can be set by one burst transfer (16 times in AXI). However, it is not limited to this example.

具体的には、各ラインFIFO部111の格納領域112の個数は、1回のバースト転送で設定可能なデータ転送の最大回数(AXIでは16回)の1倍よりも多く且つ2倍よりも少なくてもよい。なお、この場合、各ラインFIFO部111の容量は、1回のバースト転送で設定可能な最大転送量の1倍よりも大きく且つ2倍よりも小さい。   Specifically, the number of storage areas 112 of each line FIFO unit 111 is more than one time and less than twice the maximum number of data transfers that can be set in one burst transfer (16 times in AXI). May be. In this case, the capacity of each line FIFO unit 111 is larger than one time and smaller than twice the maximum transfer amount that can be set by one burst transfer.

そのような設計であっても、各ラインFIFO部111内において、モジュールコア5に対する供給済みデータがバースト転送の上記最大転送量以上になったことを以て、その供給済みデータに替えてDRAM11から読み出した新しいデータをラインFIFO部111に格納すればよい。この例によれば、読み出しバッファ110の容量を小さくできる。その結果、チップ面積の削減、装置の小型化、省電力化等を図ることができる。   Even in such a design, in each line FIFO unit 111, data supplied to the module core 5 is read from the DRAM 11 in place of the supplied data because the data transferred to the module core 5 exceeds the maximum transfer amount of burst transfer. New data may be stored in the line FIFO unit 111. According to this example, the capacity of the read buffer 110 can be reduced. As a result, it is possible to reduce the chip area, downsize the device, save power, and the like.

かかる変形は書き込みバッファ210に対しても適用可能である。   Such a modification can also be applied to the write buffer 210.

<変形例2>
上記では、マクロブロックMBが8本の画素ラインPLに対して設定され、読み出しバッファ110が8個のラインFIFO部111で構成され、バースト長が16回である場合を例示した。これに対し、例えばマクロブロックMBが16本の画素ラインPLに対応する場合、各ラインFIFO部111を2分割して利用することにより、16個のラインFIFO部111を用意することが可能である。但し、この場合、バースト長は最大8回に制限される。このような手法によれば、読み出しバッファ110の容量を増加させることなく、各種サイズのマクロブロックMBに柔軟に対応することができる。
<Modification 2>
In the above, the case where the macroblock MB is set for the eight pixel lines PL, the read buffer 110 is configured by the eight line FIFO units 111, and the burst length is 16 times is illustrated. On the other hand, for example, when the macro block MB corresponds to 16 pixel lines PL, it is possible to prepare 16 line FIFO units 111 by dividing each line FIFO unit 111 into two. . However, in this case, the burst length is limited to a maximum of 8 times. According to such a method, it is possible to flexibly cope with macroblocks MB of various sizes without increasing the capacity of the read buffer 110.

かかる変形は書き込みバッファ210に対しても適用可能である。   Such a modification can also be applied to the write buffer 210.

<変形例3>
上記では1つの画像データを処理対象とする場合を例示した。これに対し、複数の画像データを切り替えながら並列的に処理することも可能である。例えば、Y、U、Vの成分ごとの画像データを切り替えながら、画像上で同じ位置に設定された共通のマクロブロックMBを並列的に処理する例が挙げられる。
<Modification 3>
In the above, the case where one image data is a processing target is illustrated. On the other hand, it is also possible to process in parallel while switching a plurality of image data. For example, there is an example in which common macroblocks MB set at the same position on the image are processed in parallel while switching the image data for each of the Y, U, and V components.

<変形例4>
本発明は詳細に説明されたが、上記した説明は、すべての局面において、例示であって、本発明がそれに限定されるものではない。例示されていない無数の変形例が、本発明の範囲から外れることなく想定され得るものと解される。
<Modification 4>
Although the present invention has been described in detail, the above description is illustrative in all aspects, and the present invention is not limited thereto. It is understood that countless variations that are not illustrated can be envisaged without departing from the scope of the present invention.

本発明に係る画像処理装置等は例えばデジタルカメラに搭載可能である。但し、この例に限定されるものではない。   The image processing apparatus according to the present invention can be mounted on, for example, a digital camera. However, it is not limited to this example.

1 画像処理装置
2,2a〜2c 画像処理モジュール部
3 モジュールアービタ部
3R 読み出しアービタ
3W 書き込みアービタ
4 DMAC部
4R 読み出しDMAC
4W 書き込みDMAC
5,5a〜5c モジュールコア
6R,6Ra〜6Rc 読み出しI/F回路(画像処理インターフェース回路)
6W,6Wa〜6Wb 書き込みI/F回路(画像処理インターフェース回路)
10 バス
11 メモリ(画像供給元メモリ、画像格納先メモリ)
110 読み出しバッファ
130 読み出し管理部
150 コア入力管理部
210 書き込みバッファ
230 書き込み管理部
250 コア出力管理部
PX 画素
PL 画素ライン
MB マクロブロック
BL ブロックライン
DESCRIPTION OF SYMBOLS 1 Image processing apparatus 2,2a-2c Image processing module part 3 Module arbiter part 3R Read arbiter 3W Write arbiter 4 DMAC part 4R Read DMAC
4W write DMAC
5, 5a to 5c Module core 6R, 6Ra to 6Rc Read I / F circuit (image processing interface circuit)
6W, 6Wa ~ 6Wb Write I / F circuit (image processing interface circuit)
10 buses 11 memory (image supply source memory, image storage destination memory)
DESCRIPTION OF SYMBOLS 110 Read buffer 130 Read management part 150 Core input management part 210 Write buffer 230 Write management part 250 Core output management part PX Pixel PL Pixel line MB Macroblock BL Block line

Claims (12)

所定の画像処理を実行するモジュールコアに接続される画像処理インターフェース回路であって、
バスに接続された画像供給元メモリから読み出したデータを格納するための読み出しバッファと、
前記画像供給元メモリから前記読み出しバッファへのデータ転送を管理する読み出し管理部と、
前記読み出しバッファ内の格納データを所定サイズの入力ブロック単位で前記モジュールコアへ供給するコア入力管理部と
を備え、
前記読み出し管理部は、前記読み出しバッファに複数の入力ブロックが格納されるように、前記モジュールコアで処理する入力画像データの読み出しを管理すると共に、前記入力画像データがバースト転送されるように前記画像供給元メモリ上の読み出し対象領域を所定の読み出し条件に従って決定する、
画像処理インターフェース回路。
An image processing interface circuit connected to a module core that executes predetermined image processing,
A read buffer for storing data read from the image supply source memory connected to the bus;
A read manager that manages data transfer from the image source memory to the read buffer;
A core input management unit that supplies storage data in the read buffer to the module core in units of input blocks of a predetermined size;
The read management unit manages reading of input image data to be processed by the module core so that a plurality of input blocks are stored in the read buffer, and the image so that the input image data is burst transferred. Determining a read target area on the source memory according to a predetermined read condition;
Image processing interface circuit.
請求項1に記載の画像処理インターフェース回路であって、
前記入力画像データは、それぞれが画素ラインまたは画素ライン群に対応する複数の入力画像データ列を含み、
前記入力ブロックは、前記複数の入力画像データ列のうちのN個(Nは2以上の整数)の入力画像データ列を対象にして設定され、
前記読み出しバッファは、前記入力ブロックが設定された前記N個の入力画像データ列がそれぞれ入力されるN個の読み出しラインFIFO部を含み、
前記所定の読み出し条件は、
前記N個の入力画像データ列を循環的に選択する旨の循環選択条件と、
入力画像データ列の先頭の側から順に前記読み出し対象領域を設定する旨の列内順序条件と、
各入力画像データ列に対する前記読み出し対象領域の設定は、選択される度に1回とする旨の回数条件と
を含む、画像処理インターフェース回路。
The image processing interface circuit according to claim 1,
The input image data includes a plurality of input image data strings each corresponding to a pixel line or a pixel line group,
The input block is set for N input image data strings (N is an integer of 2 or more) among the plurality of input image data strings,
The read buffer includes N read line FIFO units to which the N input image data strings in which the input blocks are set are respectively input.
The predetermined read condition is:
A cyclic selection condition for cyclically selecting the N input image data strings;
An in-column order condition for setting the read target region in order from the top of the input image data sequence;
The image processing interface circuit, wherein the setting of the read target area for each input image data string includes a number condition that the read target area is set to be once for each selection.
請求項1に記載の画像処理インターフェース回路であって、
前記入力画像データは、それぞれが画素ラインまたは画素ライン群に対応する複数の入力画像データ列を含み、
前記入力ブロックは、前記複数の入力画像データ列のうちの1個の入力画像データ列を対象にして設定され、
前記読み出しバッファは、前記入力ブロックが設定された前記1個の入力画像データ列が入力される1個の読み出しラインFIFO部を含み、
前記所定の読み出し条件は、
入力画像データ列の先頭の側から順に前記読み出し対象領域を設定する旨の列内順序条件
を含む、画像処理インターフェース回路。
The image processing interface circuit according to claim 1,
The input image data includes a plurality of input image data strings each corresponding to a pixel line or a pixel line group,
The input block is set for one input image data sequence of the plurality of input image data sequences,
The read buffer includes one read line FIFO unit to which the one input image data string in which the input block is set is input,
The predetermined read condition is:
An image processing interface circuit including an in-column ordering condition for setting the read target area in order from the head of the input image data sequence.
請求項1ないし請求項3のうちのいずれか1項に記載の画像処理インターフェース回路であって、
前記所定の読み出し条件は、前記読み出し対象領域の終了アドレスを前記画像供給元メモリのアドレスアライメント境界に合わせる旨の読み出しアライメント条件を含む、画像処理インターフェース回路。
An image processing interface circuit according to any one of claims 1 to 3,
The image processing interface circuit, wherein the predetermined read condition includes a read alignment condition for matching an end address of the read target area with an address alignment boundary of the image supply source memory.
請求項4に記載の画像処理インターフェース回路であって、
前記所定の読み出し条件は、前記読み出し対象領域が前記入力画像データ列の始端を含む場合、前記読み出し対象領域のデータ量が前記バスのバス幅の倍数になるように前記読み出し対象領域の開始アドレスを設定する旨の読み出しサイズ条件を含む、画像処理インターフェース回路。
The image processing interface circuit according to claim 4,
When the read target area includes the start end of the input image data sequence, the predetermined read condition is that the start address of the read target area is set such that the data amount of the read target area is a multiple of the bus width of the bus. An image processing interface circuit including a read size condition for setting.
請求項5に記載の画像処理インターフェース回路であって、
前記所定の読み出し条件は、
前記入力画像データ列中の未読み出し部分が1回のバースト転送で設定可能な最大転送量を超過している場合、且つ、その超過量が前記読み出しサイズ条件の下で設定された前記開始アドレスと前記入力画像データ列の先頭アドレスとの差分よりも大きい場合、前記読み出し対象領域の終了アドレスを前記バースト転送の前記最大転送量に合わせて設定する旨の第1の終了アドレス条件と、
前記超過量が前記差分以下である場合、前記読み出し対象領域の前記終了アドレスを前記入力画像データ列の終端アドレスに設定する旨の第2の終了アドレス条件と
を含む、画像処理インターフェース回路。
The image processing interface circuit according to claim 5,
The predetermined read condition is:
When the unread portion in the input image data sequence exceeds the maximum transfer amount that can be set by one burst transfer, and the excess amount is the start address set under the read size condition A first end address condition that sets an end address of the read target area in accordance with the maximum transfer amount of the burst transfer when greater than a difference from a start address of the input image data sequence;
And a second end address condition for setting the end address of the read target area to the end address of the input image data sequence when the excess amount is equal to or less than the difference.
請求項1ないし請求項6のうちのいずれか1項に記載の画像処理インターフェース回路であって、
前記所定の読み出し条件は、前記入力画像データ列中の未読み出し部分が前記バースト転送の前記最大転送量以下である場合、前記読み出し対象領域の終了アドレスを前記入力画像データ列の終端アドレスに設定する旨の第3の終了アドレス条件を含む、画像処理インターフェース回路。
An image processing interface circuit according to any one of claims 1 to 6,
When the unread portion in the input image data sequence is less than or equal to the maximum transfer amount of the burst transfer, the predetermined read condition sets the end address of the read target area as the end address of the input image data sequence An image processing interface circuit including a third end address condition to that effect.
請求項1ないし請求項7のうちのいずれか1項に記載の画像処理インターフェース回路であって、
前記読み出しバッファは、前記バースト転送の前記最大転送量の1倍よりも大きく且つ2倍よりも小さい容量を有した読み出しラインFIFO部を少なくとも1つ含み、
前記読み出し管理部は、前記読み出しラインFIFO部内において前記モジュールコアに対する供給済みデータが前記最大転送量以上になった場合、前記供給済みデータに替えて前記画像供給元メモリから読み出した新しいデータを前記読み出しラインFIFO部に格納する、
画像処理インターフェース回路。
An image processing interface circuit according to any one of claims 1 to 7,
The read buffer includes at least one read line FIFO unit having a capacity that is greater than 1 and less than 2 times the maximum transfer amount of the burst transfer,
The read management unit reads the new data read from the image supply source memory in place of the supplied data when the supplied data for the module core exceeds the maximum transfer amount in the read line FIFO unit. Store in the line FIFO section,
Image processing interface circuit.
所定の画像処理を実行するモジュールコアに接続される画像処理インターフェース回路であって、
前記モジュールコアから出力されるコア出力データを格納するための書き込みバッファと、
前記コア出力データの前記書き込みバッファへの入力を管理するコア出力管理部と、
前記書き込みバッファ内の格納データを、バスに接続された画像格納先メモリへ転送することを管理する書き込み管理部と
を備え、
前記書き込みバッファは、1回のバースト転送で設定可能な最大転送量よりも大きい容量を有した書き込みラインFIFO(First In First Out)部を少なくとも1つ含み、
前記書き込み管理部は、前記書き込みラインFIFO部ごとに、前記書き込みラインFIFO部内のデータのうちで前記バースト転送の対象にする書き込み対象データと、前記画像格納先メモリ上の書き込み先領域とを、所定の書き込み条件に従って決定する、
画像処理インターフェース回路。
An image processing interface circuit connected to a module core that executes predetermined image processing,
A write buffer for storing core output data output from the module core;
A core output management unit that manages input of the core output data to the write buffer;
A write management unit that manages the transfer of data stored in the write buffer to an image storage destination memory connected to the bus;
The write buffer includes at least one write line FIFO (First In First Out) portion having a capacity larger than a maximum transfer amount that can be set in one burst transfer,
The write management unit determines, for each write line FIFO unit, write target data to be subjected to burst transfer among data in the write line FIFO unit and a write destination area in the image storage destination memory. Determine according to the writing conditions of
Image processing interface circuit.
請求項9に記載の画像処理インターフェース回路であって、
前記所定の書き込み条件は、
前記書き込み対象データを前記バースト転送の前記最大転送量に設定する旨の書き込みサイズ条件と、
前記書き込み先領域を前記画像格納先メモリのアドレスアライメント境界に合わせる旨の書き込みアライメント条件と
のうちの少なくとも一方を含む、画像処理インターフェース回路。
An image processing interface circuit according to claim 9,
The predetermined write condition is:
Write size condition for setting the write target data to the maximum transfer amount of the burst transfer,
An image processing interface circuit including at least one of a write alignment condition for aligning the write destination area with an address alignment boundary of the image storage destination memory.
請求項9または請求項10に記載の画像処理インターフェース回路であって、
前記所定の書き込み条件は、前記モジュールコアから出力される出力画像の画素ラインまたは画素ライン群の終端に対応する前記コア出力データまでの範囲で以て前記書き込み対象データを区切ると共に、その区切られた範囲に対応して前記書き込み先領域を設定する旨のライン終端条件を含む、画像処理インターフェース回路。
The image processing interface circuit according to claim 9 or 10, wherein:
The predetermined write condition divides the write target data in a range up to the core output data corresponding to the end of the pixel line or pixel line group of the output image output from the module core, and An image processing interface circuit including a line termination condition for setting the writing destination area corresponding to a range.
請求項9ないし請求項11のうちのいずれか1項に記載の画像処理インターフェース回路であって、
前記書き込みラインFIFO部は、前記バースト転送の前記最大転送量の1倍よりも大きく且つ2倍よりも小さい容量を有し、
前記書き込み管理部は、前記書き込みラインFIFO部内において前記画像格納先メモリに対する転送済みデータが前記最大転送量以上になった場合、前記転送済みデータに替えて新しいコア出力データを前記書き込みラインFIFO部に格納する、
画像処理インターフェース回路。
An image processing interface circuit according to any one of claims 9 to 11,
The write line FIFO unit has a capacity that is greater than 1 and less than 2 times the maximum transfer amount of the burst transfer,
When the transferred data for the image storage destination memory exceeds the maximum transfer amount in the write line FIFO unit, the write management unit sends new core output data to the write line FIFO unit instead of the transferred data. Store,
Image processing interface circuit.
JP2012175841A 2012-08-08 2012-08-08 Image processing interface circuit Active JP6117494B2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012175841A JP6117494B2 (en) 2012-08-08 2012-08-08 Image processing interface circuit
US13/854,340 US9552619B2 (en) 2012-08-08 2013-04-01 Image processing apparatus and image processing interface circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012175841A JP6117494B2 (en) 2012-08-08 2012-08-08 Image processing interface circuit

Publications (3)

Publication Number Publication Date
JP2014035617A true JP2014035617A (en) 2014-02-24
JP2014035617A5 JP2014035617A5 (en) 2015-09-10
JP6117494B2 JP6117494B2 (en) 2017-04-19

Family

ID=50284592

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012175841A Active JP6117494B2 (en) 2012-08-08 2012-08-08 Image processing interface circuit

Country Status (1)

Country Link
JP (1) JP6117494B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018036860A (en) * 2016-08-31 2018-03-08 株式会社メガチップス Image processing apparatus, first adjustment circuit, and second adjustment circuit

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06266612A (en) * 1993-03-17 1994-09-22 Toshiba Corp Dma controller
JPH10326342A (en) * 1997-05-27 1998-12-08 Canon Inc Memory control circuit
JP2005196786A (en) * 2004-01-09 2005-07-21 Samsung Electronics Co Ltd Image converter, direct memory access device for image conversion, and camera interface for supporting image conversion
JP2006139803A (en) * 2002-12-26 2006-06-01 Canon Inc Image processing apparatus and image processing method
JP2008299519A (en) * 2007-05-30 2008-12-11 Ricoh Co Ltd Image processor
JP2012146032A (en) * 2011-01-07 2012-08-02 Konica Minolta Business Technologies Inc Image memory control apparatus and image processing apparatus

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06266612A (en) * 1993-03-17 1994-09-22 Toshiba Corp Dma controller
JPH10326342A (en) * 1997-05-27 1998-12-08 Canon Inc Memory control circuit
JP2006139803A (en) * 2002-12-26 2006-06-01 Canon Inc Image processing apparatus and image processing method
JP2005196786A (en) * 2004-01-09 2005-07-21 Samsung Electronics Co Ltd Image converter, direct memory access device for image conversion, and camera interface for supporting image conversion
JP2008299519A (en) * 2007-05-30 2008-12-11 Ricoh Co Ltd Image processor
JP2012146032A (en) * 2011-01-07 2012-08-02 Konica Minolta Business Technologies Inc Image memory control apparatus and image processing apparatus

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018036860A (en) * 2016-08-31 2018-03-08 株式会社メガチップス Image processing apparatus, first adjustment circuit, and second adjustment circuit

Also Published As

Publication number Publication date
JP6117494B2 (en) 2017-04-19

Similar Documents

Publication Publication Date Title
US9552619B2 (en) Image processing apparatus and image processing interface circuit
US10241721B2 (en) Image processing device and image processing method
TWI544751B (en) Reformatting data to decrease bandwidth between a video encoder and a buffer
JP7142741B2 (en) Data transfer device and data transfer method
US9262314B2 (en) Data transfer device
JP6732534B2 (en) Data processing device and data processing method
US10803589B2 (en) Image processing device
JP6210743B2 (en) Data processing device and data transfer control device
JP6117495B2 (en) Image processing device
JP6117494B2 (en) Image processing interface circuit
US7773817B2 (en) JPEG image processing circuit
JP5721970B2 (en) Real-time streaming apparatus and bus control method
JP2007018222A (en) Memory access control circuit
KR20170049191A (en) Image processing apparatus and Image processing method
JP5739758B2 (en) Memory controller and SIMD processor
US9544475B2 (en) Data transfer apparatus and data transfer method
US20220210454A1 (en) Video decoding and display system and memory accessing method thereof
JP5360594B2 (en) DMA transfer apparatus and method
US9372817B2 (en) High perfomance DMA controller for video processors
US20120144150A1 (en) Data processing apparatus
JP2014035619A5 (en)
JP2010287058A (en) Memory system
JP2020035263A (en) Memory controller
US20100328539A1 (en) Method and apparatus for memory reuse in image processing
Hyun et al. A synchronous DRAM controller for an H. 264/AVC encoder

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150722

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150722

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160624

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160726

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160921

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170228

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170323

R150 Certificate of patent or registration of utility model

Ref document number: 6117494

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250