[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JPH06290262A - Processor for image codec - Google Patents

Processor for image codec

Info

Publication number
JPH06290262A
JPH06290262A JP7476493A JP7476493A JPH06290262A JP H06290262 A JPH06290262 A JP H06290262A JP 7476493 A JP7476493 A JP 7476493A JP 7476493 A JP7476493 A JP 7476493A JP H06290262 A JPH06290262 A JP H06290262A
Authority
JP
Japan
Prior art keywords
data
image
processing
stage
image codec
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
JP7476493A
Other languages
Japanese (ja)
Other versions
JP3401823B2 (en
Inventor
Eiji Iwata
英次 岩田
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.)
Sony Corp
Original Assignee
Sony 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 Sony Corp filed Critical Sony Corp
Priority to JP07476493A priority Critical patent/JP3401823B2/en
Publication of JPH06290262A publication Critical patent/JPH06290262A/en
Application granted granted Critical
Publication of JP3401823B2 publication Critical patent/JP3401823B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Complex Calculations (AREA)
  • Image Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Advance Control (AREA)

Abstract

PURPOSE:To provide the processor of a simple constitution for the image CODEC by regarding a microblock, consisting of plural blocks composed of mXn image data respectively, as one process unit, employing 'multiple data stream control by single instruction stream' processing adaptively to field image processing and frame image processing, and improving the parallelism of processors. CONSTITUTION:Mutually adjacent element processors 11-18 which are connected by data transfer lines 42-45 are provided corresponding to microblocks and a coefficient memory 51 which gives a coefficient to those element processors in common is provided. Further, a common adding circuit 41 which adds arithmetic results is provided at the output of the element processors 11-14 which perform the field processing and process image data in microblock units are inputted to the element processors 11-18 through buses 31-34; and the respective element processors perform pipeline processing in three stages, i.e., data input stage, calculation stage, and data output stage.

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【産業上の利用分野】本発明は、例えば、数値計算、画
像処理、グラフィックス処理等に用いられる計算機シス
テムにおける中央処理装置(プロセッサ)に関するもの
であり、特に画像コーデックのようなビデオ信号処理に
好適な信号処理装置に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a central processing unit (processor) in a computer system used for, for example, numerical calculation, image processing, graphics processing, etc., and particularly to video signal processing such as an image codec. The present invention relates to a suitable signal processing device.

【0002】[0002]

【従来の技術】まず、画像コーデック処理における画像
のマクロブロックおよびブロックの概念について述べ
る。ここでは、CCIR601フォーマットに基づく
(4:4:2)信号を例に挙げる。なお、本発明におけ
る画像コーデック処理とは、CCITT H.261勧
告やMPEG等の画像圧縮符号化/伸長復号化標準に代
表されるような(画像データ動き補償+離散コサイン変
換(DCT)処理)に基づくマクロブロックを処理単位
とする画像の符号化処理および復号化処理を意味する。
2. Description of the Related Art First, the concept of image macroblocks and blocks in image codec processing will be described. Here, a (4: 4: 2) signal based on the CCIR601 format is taken as an example. The image codec processing in the present invention means CCITT H.264. 261 recommendation and MPEG image compression encoding / decompression decoding standard represented by (image data motion compensation + discrete cosine transform (DCT) processing) based on a macroblock as an image encoding process and It means a decryption process.

【0003】1画像フレームは、720x480画素の
大きさの輝度成分(Y成分)と、横方向にサブサンプリ
ングされた360x480画素の大きさの2種の色差成
分、つまり、第1の色差成分(Cr成分)および第2の
色差成分(Cr成分)からなる。この画像フレームを、
輝度成分については16x16画素の正方形(矩形)領
域に分割し、2種の色差成分についてはそれぞれ8x1
6画素の矩形領域に分割する。この輝度成分における1
6x16画素の正方形領域と、その領域に位置的に対応
する2種の色差成分における8x16画素の矩形領域と
を合わせてマクロブロックと呼ぶ。また、輝度成分、色
差成分にかかわらず、8x8画素の正方形領域をブロッ
クと呼ぶ。したがって、1マクロブロックは、図6に示
したように、輝度(Y)成分4ブロック、色差成分4ブ
ロック(Cr成分2ブロック、Cb成分2ブロック)の
計8ブロックからなる。
One image frame includes a luminance component (Y component) having a size of 720 × 480 pixels and two kinds of color difference components sub-sampled in the horizontal direction having a size of 360 × 480 pixels, that is, a first color difference component (Cr Component) and the second color difference component (Cr component). This image frame
The luminance component is divided into square (rectangular) regions of 16 × 16 pixels, and each of the two types of color difference components is 8 × 1.
Divide into a rectangular area of 6 pixels. 1 in this luminance component
A square area of 6 × 16 pixels and a rectangular area of 8 × 16 pixels in two kinds of color difference components corresponding to the area positionally are collectively called a macro block. A square area of 8 × 8 pixels is called a block regardless of the luminance component and the color difference component. Therefore, as shown in FIG. 6, one macroblock consists of a total of 8 blocks of 4 blocks of luminance (Y) component and 4 blocks of color difference component (2 blocks of Cr component, 2 blocks of Cb component).

【0004】図7に示したように、マクロブロックを1
処理単位とする従来の画像コーデック用プロセッサ1
は、入力用データメモリ2、演算ユニット3、出力用デ
ータメモリ4で構成されており、画像コーデック処理対
象のマクロブロックを入力する「入力ステージ」、演算
ユニット3を用いて画像コーデック処理を行う「計算ス
テージ」、画像コーデック処理後のマクロブロックを出
力する「出力ステージ」の3ステージ構成でパイプライ
ン処理を行う。各ステージ間はそれぞれ、入力用データ
メモリ2、出力用データメモリ4と呼ぶダブルバッファ
構成(2個のメモリバンクを備えて処理単位毎に切り換
える構成)のデータメモリで結合されている。
As shown in FIG. 7, one macroblock is used.
Conventional image codec processor 1 as a processing unit
Is composed of an input data memory 2, an arithmetic unit 3, and an output data memory 4, and an "input stage" for inputting a macroblock to be image codec processed, and an image codec process using the arithmetic unit 3 " Pipeline processing is performed with a three-stage configuration including a “calculation stage” and an “output stage” that outputs a macroblock after image codec processing. The respective stages are connected by a data memory having a double buffer structure (a structure having two memory banks and switching for each processing unit) called an input data memory 2 and an output data memory 4.

【0005】以下、マクロブロックを1処理単位とする
従来の画像コーデック用プロセッサ1におけるパイプラ
イン処理を簡単に説明する。なお、以下に述べる係数k
は正の整数とする。 A.(2k)番目のマクロブロックが計算ステージにあ
る時 A1.入力ステージ (2k+1)番目のマクロブロックを図7に示した入力
用データメモリ2の第1のメモリバンク5(バンク0)
に書き込む。 A2.計算ステージ 入力用データメモリ2の第2のメモリバンク6(バンク
1)より2k番目のマクロブロックを取り込み、演算ユ
ニット3において画像コーデック処理を施した後、出力
用データメモリ4の第1のメモリバンク7(バンク0)
に書き込む。 A3.出力ステージ 出力用データメモリ4の第2のメモリバンク8(バンク
1)より(2k−1)番目の画像コーデック処理後のマ
クロブロックを出力する。
The pipeline processing in the conventional image codec processor 1 using macro blocks as one processing unit will be briefly described below. The coefficient k described below
Is a positive integer. A. When the (2k) th macroblock is in the calculation stage A1. Input stage (2k + 1) th macroblock is the first memory bank 5 (bank 0) of the input data memory 2 shown in FIG.
Write in. A2. Calculation stage The second memory bank 6 (bank 1) of the input data memory 2 is loaded with the 2k-th macroblock, the image codec processing is performed in the arithmetic unit 3, and then the first memory bank of the output data memory 4 is used. 7 (bank 0)
Write in. A3. Output stage Outputs the (2k-1) th image codec-processed macroblock from the second memory bank 8 (bank 1) of the output data memory 4.

【0006】B.(2k+1)番目のマクロブロックが
計算ステージにある時 B1.入力ステージ (2k+2)番目のマクロブロックを入力用データメモ
リ2の第2のメモリバンク6(バンク1)に書き込む。 B2.計算ステージ 入力用データメモリ2の第1のメモリバンク5(バンク
0)より(2k+1)番目のマクロブロックを取り込
み、演算ユニット3において画像コーデック処理を施し
た後、出力用データメモリ4の第2のメモリバンク8
(バンク1)に書き込む。 B3.出力ステージ 出力用データメモリ4の第1のメモリバンク(バンク
0)より2k番目の画像コーデック処理後のマクロブロ
ックを出力する。
B. When the (2k + 1) th macroblock is in the calculation stage B1. The (2k + 2) th input stage macroblock is written in the second memory bank 6 (bank 1) of the input data memory 2. B2. Calculation stage The (2k + 1) th macro block is fetched from the first memory bank 5 (bank 0) of the input data memory 2, the image codec processing is performed in the arithmetic unit 3, and then the second data block of the output data memory 4 is processed. Memory bank 8
Write to (bank 1). B3. Output stage Outputs the 2kth macroblock after the image codec processing from the first memory bank (bank 0) of the output data memory 4.

【0007】従来の画像コーデック用プロセッサは、上
記のように各ステージ間にダブルバッファ構成のデータ
メモリを設けているため、各ステージの動作周波数が異
なっていても問題ない。また、ステージ間におけるデー
タメモリへのアクセスの競合が発生しないので、各ステ
ージは完全に並列に動作可能である。
Since the conventional image codec processor has the double buffer data memory provided between the stages as described above, there is no problem even if the operating frequencies of the stages are different. Further, since there is no competition for access to the data memory between the stages, the stages can operate completely in parallel.

【0008】[0008]

【発明が解決しようとする課題】ところが、上述した画
像コーデック用プロセッサの構成では、演算ユニット3
を並列化して高速化を図ろうとすると、データメモリの
ポート数が増大し、演算ユニットとデータメモリとの間
の相互結合網が複雑化するという問題がある。例えば、
1個の演算ユニットのデータ入力数を2入力と仮定し、
4個の演算ユニットが4並列で動作するプロセッサを考
えた場合、4個全ての演算ユニットへマクロブロックの
任意のデータを毎クロックサイクル供給するためには、
入力用データメモリの1メモリバンクにつき8ポートの
マルチポートメモリが必要となる。また、演算ユニット
とデータメモリとの間の相互結合網についても、8個の
ポートの各々が演算ユニットの任意の入力端子へデータ
を供給する必要があるため、8x8のクロスバー網とい
う非常に複雑でハードウェア量の大きい相互結合網を構
成しなくてはならない。これは、マクロブロックのすべ
てのデータをデータメモリの1個のメモリバンクに格納
しているためである。
However, in the configuration of the image codec processor described above, the arithmetic unit 3 is used.
However, there is a problem that the number of ports of the data memory is increased and the interconnection network between the arithmetic unit and the data memory is complicated when the parallelization is performed to increase the speed. For example,
Assuming that the number of data inputs of one arithmetic unit is two,
Considering a processor in which four arithmetic units operate in four parallels, in order to supply arbitrary data of a macroblock to all four arithmetic units every clock cycle,
An 8-port multiport memory is required for each memory bank of the input data memory. Also, regarding the mutual coupling network between the arithmetic unit and the data memory, each of the eight ports needs to supply data to an arbitrary input terminal of the arithmetic unit, which is a very complicated 8x8 crossbar network. It is necessary to construct an interconnection network with a large amount of hardware. This is because all the data of the macro block is stored in one memory bank of the data memory.

【0009】そこで、データメモリのポート数を増やす
ことなく演算ユニットを並列化するアプローチが考えら
れる。このアプローチにおいては、データメモリをマク
ロブロック内に存在するブロック対応に分割し、その各
々のデータメモリに対応して演算ユニットを設ける。さ
らに、すべての演算ユニットについて対応するデータメ
モリ以外のデータメモリとのデータ転送を禁止する。例
えば、図6に図解した(4:2:2)信号を考えると、
マクロブロックは8個のブロックからなるので、データ
メモリを8個に分割し、その各々のデータメモリに対応
して8個の演算ユニットを設ける。この構成を採った場
合、1個の演算ユニットのデータ入力数を2入力と仮定
すると、入力用データメモリの1メモリバンクにつき高
々2ポートのマルチポートメモリでよく、演算ユニット
とデータメモリとの間の相互結合網も簡単になる。
Therefore, an approach is conceivable in which the arithmetic units are parallelized without increasing the number of data memory ports. In this approach, the data memory is divided into blocks corresponding to the blocks existing in the macroblock, and an arithmetic unit is provided corresponding to each data memory. Furthermore, data transfer to a data memory other than the corresponding data memory is prohibited for all arithmetic units. For example, considering the (4: 2: 2) signal illustrated in FIG.
Since the macro block consists of eight blocks, the data memory is divided into eight, and eight arithmetic units are provided corresponding to the respective data memories. In the case of adopting this configuration, assuming that the number of data inputs of one arithmetic unit is two, a multiport memory having at most two ports per one memory bank of the input data memory will suffice, and between the arithmetic unit and the data memory. The mutual connection network of is also simplified.

【0010】しかしながら、画像コーデック処理におい
ては、ブロック間にまたがってデータ依存関係が存在す
る要素処理が必要となる場合がある。つまり、ブロック
内のデータだけではなく、隣接ブロックのデータをも必
要とする要素処理が存在する。例として、符号化時にお
ける動きベクトル検出、および、MPEG2におけるフ
ィールド/フレーム適応形離散コサイン変換(DCT)
処理について順に説明する。
However, in the image codec processing, there are cases where element processing in which a data dependency exists across blocks is necessary. That is, there is an element process that requires not only the data in the block but also the data in the adjacent block. As an example, motion vector detection at the time of encoding, and field / frame adaptive discrete cosine transform (DCT) in MPEG2
The processing will be described in order.

【0011】まず、画像データの動きベクトル検出につ
いて説明する。動きベクトル検出において、ブロックマ
ッチングの全探索アルゴリズムを採用した場合、マクロ
ブロックの輝度成分 y i,j (0≦i <16,0≦j<16) について、以下のような演算を行う。
First, the motion vector detection of image data will be described. When the block matching full search algorithm is adopted in the motion vector detection, the following calculation is performed on the luminance component y i, j (0 ≦ i <16, 0 ≦ j <16) of the macroblock.

【0012】[0012]

【数1】 [Equation 1]

【0013】なお、上式におけるci,j は、候補ブロッ
クのデータを意味する(動きベクトル検出処理の詳細に
ついては、本出願人が先に出願した、平成4年10月2
8日出願、「演算回路」特願平4−311163号の明
細書、及び、図面に説明されている)。上式1から判る
ように、マクロブロックの輝度成分(4個のブロック)
のデータ全てを用いて、1個の差分絶対値和を求めてい
る。したがって、動きベクトル検出処理は、ブロック間
にまたがってデータ依存関係が存在する要素処理であ
る。また、符号化時における種々のモード決定処理にお
いても、このようなブロック間にまたがるデータ依存関
係が存在する。
Note that c i, j in the above equation means the data of the candidate block (for details of the motion vector detection processing, the applicant of the present application filed earlier, October 2, 1992).
8th application, the specification of "arithmetic circuit" Japanese Patent Application No. 4-311163 and drawings are described). As can be seen from Equation 1 above, the luminance component of the macroblock (4 blocks)
One sum of absolute differences is obtained by using all the data of. Therefore, the motion vector detection process is an element process in which there is a data dependency relationship between blocks. In addition, even in various mode determination processes at the time of encoding, there is a data dependency relationship that spans such blocks.

【0014】次に、MPEG2におけるフレーム/フィ
ールド適応形離散コサイン変換(DCT)処理について
説明する。MPEG2におけるフレーム/フィールド適
応形DCTでは、画像データの性質により、フレームD
CTとフィールドDCTを適応的に切り換える。この
際、図8に示すように、フレームDCTの場合は図6に
示すブロックの構成と同一であるが、図9に示すよう
に、フィールドDCTの場合はマクロブロックの縦方向
について交互にデータを抜き出してブロックを構成す
る。すなわち、フィールドDCTにおいては、図6にお
ける縦方向2個のブロック(例えば、ブロック0とブロ
ック1)にまたがるデータ依存関係が存在する。
Next, frame / field adaptive discrete cosine transform (DCT) processing in MPEG2 will be described. In the frame / field adaptive DCT in MPEG2, the frame D
Adaptively switch between CT and field DCT. At this time, as shown in FIG. 8, in the case of the frame DCT, the configuration is the same as that of the block shown in FIG. 6, but as shown in FIG. 9, in the case of the field DCT, data is alternately provided in the vertical direction of the macroblock. Extract and form blocks. That is, in the field DCT, there is a data dependency that extends over two blocks in the vertical direction in FIG. 6 (for example, block 0 and block 1).

【0015】上記のように、画像コーデック処理におい
ては、ブロック間にまたがってデータ依存関係が存在す
る要素処理があるため、データメモリをブロック対応に
分割し、演算ユニットをブロック対応に設けることが困
難であった。また、上述した従来の画像コーデック用プ
ロセッサの構成では、入力用と出力用に各々異なるデー
タメモリを用いているため、演算処理用のメモリバンク
が入力用と出力用の各々に独立して存在しており、デー
タメモリ容量が増大していた。1メモリバンクのメモリ
容量をmとすると、トータルで4mのメモリ容量が必要
となる。
As described above, in the image codec processing, there is an element processing in which there is a data dependency relationship between blocks, so it is difficult to divide the data memory into blocks and provide the arithmetic units in blocks. Met. Further, in the above-described configuration of the conventional image codec processor, since different data memories are used for input and output, memory banks for arithmetic processing exist independently for input and output. The data memory capacity has increased. If the memory capacity of one memory bank is m, a total memory capacity of 4 m is required.

【0016】[0016]

【課題を解決するための手段】上述した課題を解決する
ために、本発明では、画像コーデック処理でマクロブロ
ックを1処理単位として入力ステージ、計算ステージ、
出力ステージの3ステージ構成でパイプライン処理を行
うプロセッサにおいて、マクロブロックを構成する各ブ
ロック対応に設けられている要素プロセッサ内に、演算
ユニットおよびダブルバッファ構成のデータメモリを有
し、さらに、隣接する要素プロセッサの演算結果を加算
する回路を有し、また、隣接する要素プロセッサのデー
タメモリ間でデータ転送を可能とする回路を設ける。
In order to solve the above-mentioned problems, the present invention uses an input stage, a calculation stage, and a macro block as one processing unit in image codec processing.
In a processor that performs pipeline processing with a three-stage configuration of output stages, an element processor provided corresponding to each block that constitutes a macroblock has an arithmetic unit and a data memory of a double buffer configuration, and further adjoins each other. There is provided a circuit for adding operation results of the element processors, and a circuit for enabling data transfer between data memories of adjacent element processors.

【0017】したがって、本発明によれば、それぞれが
mxnの画像データで構成される複数のブロックからな
るマクロブロックを1処理単位として、複数のブロック
の画像データにまたがる信号処理と1つのブロック内の
画像データについての信号処理とを適応的に、単一の命
令ストリームで多重データストリーム制御処理する「単
一命令ストリーム・多重データストリーム:SIMD」
制御形画像コーデック用プロセッサにおいて、隣接要素
プロセッサ間データ転送路で接続されたそれぞれが隣接
する複数対の要素プロセッサが、前記マクロブロックに
対応して設けられ、これら複数の要素プロセッサに共通
に係数を提供する共通係数メモリが設けられ、前記複数
のブロックの画像データにまたがる信号処理を行う複数
対の要素プロセッサの出力にこれらの演算結果の加算を
行う共通の加算回路を設け、前記マクロブロック単位の
処理画像データが前記要素プロセッサに入力されること
を特徴とする画像コーデック用プロセッサが提供され
る。
Therefore, according to the present invention, a macroblock consisting of a plurality of blocks, each of which is composed of mxn image data, is used as one processing unit, and signal processing over the image data of a plurality of blocks and within one block are carried out. "Single instruction stream / multiple data stream: SIMD" that adaptively performs signal processing on image data and multiple data stream control processing with a single instruction stream
In the control type image codec processor, a plurality of pairs of adjacent element processors, which are connected by a data transfer path between adjacent element processors, are provided corresponding to the macroblocks, and a coefficient is shared by the plurality of element processors. A common coefficient memory to be provided is provided, and a common adder circuit that adds these operation results to the outputs of a plurality of pairs of element processors that perform signal processing across the image data of the plurality of blocks is provided. An image codec processor is provided, wherein processed image data is input to the element processor.

【0018】好適には、前記要素プロセッサのそれぞれ
が、データ入力ステージ、計算ステージ、および、デー
タ出力ステージからなる3ステージをパイプライン処理
するように構成されている。特定的には、前記要素プロ
セッサのそれぞれが、前記データ入力ステージ、計算ス
テージ、および、データ出力ステージからなる3ステー
ジに対応した3個のバンクを有するI/Oバッファと、
少なくとも交互に動作可能な並列的に配設された2つの
バンクを有する第1のデータメモリと、少なくとも交互
に動作可能な並列的に配設された2つのバンクを有する
第2のデータメモリと、これらのI/Oバッファ、第1
および第2のデータメモリを相互接続する相互結合網
と、該相互結合網に接続された演算ユニットとを有す
る。
[0018] Preferably, each of the element processors is configured to pipeline three stages consisting of a data input stage, a calculation stage, and a data output stage. Specifically, each of the element processors has an I / O buffer having three banks corresponding to three stages including the data input stage, the calculation stage, and the data output stage;
A first data memory having at least two banks arranged in parallel that are at least alternately operable, and a second data memory having at least two banks arranged in parallel that are at least alternately operable; These I / O buffers, first
And an interconnecting network interconnecting the second data memory and an arithmetic unit connected to the interconnecting network.

【0019】好適には、前記演算ユニットが、加算、減
算、各種論理演算、大小比較、差分絶対値演算およびバ
タフライ演算を行う2入力・2出力の拡張算術論理演算
処理ユニットと、前記係数メモリからの係数と、該拡張
算術論理演算処理ユニットの出力との乗算を行う乗算ユ
ニットと、該乗算結果を累積処理する累積ユニットとを
有する。さらに好適には、前記拡張算術論理演算処理ユ
ニットの後段にパイプラインレジスタと、前記乗算ユニ
ットの後段にパイプラインレジスタと、前記累積ユニッ
トの後段にパイプラインレジスタとが設けられ、前記デ
ータ入力ステージ、計算ステージ、および、データ出力
ステージからなる3ステージに対応したパイプライン処
理を行う。
Preferably, the arithmetic unit comprises a 2-input / 2-output extended arithmetic logical operation processing unit for performing addition, subtraction, various logical operations, magnitude comparison, difference absolute value operation and butterfly operation, and the coefficient memory. A multiplication unit that multiplies the output of the extended arithmetic logic operation processing unit, and an accumulating unit that cumulatively processes the multiplication result. Further preferably, a pipeline register is provided at a stage subsequent to the extended arithmetic logic operation processing unit, a pipeline register is provided at a stage subsequent to the multiplication unit, and a pipeline register is provided at a stage subsequent to the accumulating unit, and the data input stage is provided. Pipeline processing corresponding to three stages including a calculation stage and a data output stage is performed.

【0020】特定的には、前記複数のブロックの画像デ
ータにまたがる信号処理が、フィールド画像信号処理で
あり、前記1つのブロック内の画像データについての信
号処理が、フレーム画像処理である。
Specifically, the signal processing over the image data of the plurality of blocks is field image signal processing, and the signal processing for the image data in the one block is frame image processing.

【0021】また本発明によれば、画像コーデック処理
でマクロブロックを1処理単位とする画像コーデック用
プロセッサにおいて、マクロブロックを構成する各ブロ
ック対応に複数の要素プロセッサを有し、各マクロブロ
ックにおける画像コーデック処理を前記複数の要素プロ
セッサを用いて「単一命令ストリーム・多重データスト
リーム:SIMD」制御により並列に行うことを特徴と
する画像コーデック用プロセッサが提供される。
Further, according to the present invention, in the image codec processor in which the macroblock is one processing unit in the image codec processing, a plurality of element processors are provided for each block forming the macroblock, and the image in each macroblock is There is provided an image codec processor characterized in that codec processing is performed in parallel by "single instruction stream / multiple data stream: SIMD" control using the plurality of element processors.

【0022】また本発明によれば、画像コーデック処理
でマクロブロックを1処理単位として入力ステージ、計
算ステージ、出力ステージの3ステージ構成でパイプラ
イン処理を行う画像コーデック用プロセッサにおいて、
前記マクロブロックを構成する各ブロック対応に設けら
れている要素プロセッサ内に演算ユニットおよびダブル
バッファ構成のデータメモリを有し、各ブロックにおけ
る画像コーデック処理を複数の要素プロセッサを用いて
「単一命令ストリーム・多重データストリーム:SIM
D」制御により並列に行うことを特徴とする画像コーデ
ック用プロセッサが提供される。
Further, according to the present invention, in the image codec processor which performs pipeline processing in a three-stage configuration of an input stage, a calculation stage and an output stage with a macroblock as one processing unit in the image codec processing,
An element processor provided corresponding to each block forming the macro block has an arithmetic unit and a data memory having a double buffer structure, and image codec processing in each block is performed by using a plurality of element processors to obtain a “single instruction stream”.・ Multiple data streams: SIM
An image codec processor is provided which is characterized in that it is operated in parallel by "D" control.

【0023】さらに本発明によれば、画像コーデック処
理でマクロブロックを1処理単位として入力ステージ、
計算ステージ、出力ステージの3ステージ構成でパイプ
ライン処理を行う画像コーデック用プロセッサにおい
て、前記マクロブロックを構成する各ブロック対応に設
けられている要素プロセッサ内に、演算ユニットおよび
ダブルバッファ構成のデータメモリを有し、さらに、隣
接する要素プロセッサの演算結果を加算する回路を有
し、各ブロックにおける画像コーデック処理を複数の要
素プロセッサを用いて「単一命令ストリーム・多重デー
タストリーム:SIMD」制御により並列に行うことを
特徴とする画像コーデック用プロセッサが提供される。
Further, according to the present invention, in the image codec processing, the input stage is set with the macroblock as one processing unit,
In an image codec processor that performs pipeline processing with a three-stage configuration including a calculation stage and an output stage, an arithmetic unit and a data memory having a double buffer configuration are provided in an element processor provided corresponding to each block forming the macroblock. In addition, a circuit for adding operation results of adjacent element processors is provided, and image codec processing in each block is performed in parallel by a "single instruction stream / multiple data stream: SIMD" control using a plurality of element processors. An image codec processor is provided which is characterized by performing.

【0024】また本発明によれば、画像コーデック処理
でマクロブロックを1処理単位として入力ステージ、計
算ステージ、出力ステージの3ステージ構成でパイプラ
イン処理を行う画像コーデック用プロセッサにおいて、
前記マクロブロックを構成する各ブロック対応に設けら
れている要素プロセッサ内に、演算ユニットおよびダブ
ルバッファ構成のデータメモリを有し、さらに、隣接す
る要素プロセッサの演算結果を加算する回路を有し、ま
た、隣接する要素プロセッサのデータメモリ間でデータ
転送を可能とし、各ブロックにおける画像コーデック処
理を複数の要素プロセッサを用いて「単一命令ストリー
ム・多重データストリーム:SIMD」制御により並列
に行うことを特徴とする画像コーデック用プロセッサが
提供される。
Further, according to the present invention, in the image codec processor for performing pipeline processing in a three-stage configuration of an input stage, a calculation stage, and an output stage with a macroblock as one processing unit in the image codec processing,
An element processor provided corresponding to each block forming the macro block has an arithmetic unit and a data memory having a double buffer structure, and further has a circuit for adding the arithmetic results of the adjacent element processors, , Enables data transfer between the data memories of adjacent element processors, and performs image codec processing in each block in parallel by using "single instruction stream / multiple data stream: SIMD" control using a plurality of element processors. An image codec processor is provided.

【0025】[0025]

【作用】マクロブロックを構成する各ブロック対応に設
けられている要素プロセッサ内に、演算ユニットおよび
ダブルバッファ構成のデータメモリを有し、さらに、隣
接する要素プロセッサの演算結果を加算する回路を有
し、また、隣接する要素プロセッサのデータメモリ間で
データ転送を可能とすることにより、各ブロックにおけ
る画像コーデック処理を複数の要素プロセッサを用い
て、「単一命令ストリーム・多重データストリーム:S
IMD」制御により並列に行うことができる。
In the element processor provided corresponding to each block constituting the macroblock, the operation unit and the data memory having the double buffer structure are provided, and further, the operation results of the adjacent element processors are added. Further, by enabling data transfer between the data memories of the adjacent element processors, the image codec processing in each block is performed by using a plurality of element processors, “single instruction stream / multiple data stream: S
It can be done in parallel by "IMD" control.

【0026】加算回路は共通に1つ、係数メモリも共通
に1つ設けるだけでよい。
It is only necessary to provide one adder circuit in common and one coefficient memory in common.

【0027】[0027]

【実施例】以下、図面を参照して、本発明の画像コーデ
ック用プロセッサの実施例について詳述する。本発明の
実施例における画像コーデック用プロセッサは、アリス
メティク(算術)論理演算処理ユニット(ALU)、乗
算器、累算器等からなる演算ユニットを複数有し、それ
らの演算ユニットが単一の命令流により複数のデータを
並列に処理する「単一命令ストリーム・多重データスト
リーム:SIMD(Single Instruction stream Multip
le Data stream)」方式のプロセッサに基づく。なお、
「単一命令ストリーム・多重データストリーム:SIM
D」制御については、Yamauchi,et al,
“Architecture andImplemen
tation of a Highly Parall
elSingle:Chip Video DSP“,
IEEE TRANSACTIONS AND SYS
TEMS FOR VIDEO TECHNOLOG
Y, VOL.2,JUNE 1992,pp.207
−220を参照されたい。
Embodiments of the image codec processor of the present invention will now be described in detail with reference to the drawings. The image codec processor according to the embodiment of the present invention has a plurality of arithmetic units such as an arithmetic logic operation unit (ALU), a multiplier, and an accumulator, and these arithmetic units have a single instruction stream. SIMD (Single Instruction stream Multip) that processes multiple data in parallel by
le Data stream) ”type processor. In addition,
"Single instruction stream / multiple data streams: SIM
For "D" control, see Yamauchi, et al,
"Architure and Implement
station of a Highly Parallel
elSingle: Chip Video DSP ",
IEEE TRANSACTIONS AND SYS
TEMS FOR VIDEO TECHNOLOG
Y, VOL. 2, JUNE 1992, pp. 207
See -220.

【0028】さらに、このプロセッサの演算ユニット
は、演算器をパイプライン接続することが可能であり、
パイプライン演算処理も行う。つまり、本発明の画像コ
ーデック用プロセッサは、図1に示したように、マクロ
ブロック入力端子21、マクロブロック出力端子22、
フレームメモリのマクロブロック入出力端子23、フレ
ームメモリのマクロブロック入力端子24を有し、さら
に、これらの端子に接続された入力用データバス31、
出力用データバス32、および、データバス33,34
をさらに有する。さらに画像コーデック用プロセッサ
は、これらのバス31〜34を介して相互に接続される
複数個、この例では8個の要素プロセッサ(PE)11
〜18と、4個の要素プロセッサ11〜14の結果を加
算する1つの加算回路41と、各要素プロセッサのブロ
ック入力端子81(図2)に係数を印加する1つの係数
メモリ51とを有する。上記要素プロセッサ11〜18
は、上記バス31〜34で相互に接続される他、隣接す
る要素プロセッサ、つまり、PE0とPE1、PE2と
PE3、PE4とPE5、PE6とPE7とが相互に接
続されている。
Further, in the arithmetic unit of this processor, arithmetic units can be connected in pipeline,
It also performs pipeline arithmetic processing. That is, the image codec processor of the present invention, as shown in FIG. 1, has a macroblock input terminal 21, a macroblock output terminal 22,
It has a macro block input / output terminal 23 of the frame memory, a macro block input terminal 24 of the frame memory, and further has an input data bus 31 connected to these terminals,
Output data bus 32 and data buses 33 and 34
Further has. Further, a plurality of image codec processors, eight element processors (PE) 11 in this example, are connected to each other via these buses 31 to 34.
.About.18, one adder circuit 41 for adding the results of the four element processors 11 to 14, and one coefficient memory 51 for applying the coefficient to the block input terminal 81 (FIG. 2) of each element processor. The element processors 11 to 18
In addition to being connected to each other by the buses 31 to 34, adjacent element processors, that is, PE0 and PE1, PE2 and PE3, PE4 and PE5, PE6 and PE7 are connected to each other.

【0029】以下、本発明の1実施例における画像コー
デック用プロセッサについて、全体構成を説明した後、
演算ユニットおよびデータメモリのそれぞれの構成につ
いて説明する。 1.全体構成 図1は、本発明の1実施例としての画像コーデック用プ
ロセッサの全体構成図である。この画像コーデック用プ
ロセッサには、図6に示したマクロブロックの各ブロッ
ク対応に8個の要素プロセッサ11〜18(以下、一般
的に1k、但しk=1〜8と表すこともある)が設けら
れている。図2に要素プロセッサの内部構成を示す。k
番目の要素プロセッサは、演算ユニット6kと、入出力
(I/O)バッファ91、第1のフレームバッファ0
(92)、第2のフレームバッファ1(93)、およ
び、ワーキングバッファ94からなるデータメモリ7k
と、これらバッファ91〜94を接続する相互結合網9
5と、セレクタ111とを有している。
The overall structure of the image codec processor according to the first embodiment of the present invention will be described below.
The respective configurations of the arithmetic unit and the data memory will be described. 1. Overall Configuration FIG. 1 is an overall configuration diagram of an image codec processor as one embodiment of the present invention. This image codec processor is provided with eight element processors 11 to 18 (hereinafter, generally 1k, but may be expressed as k = 1 to 8) corresponding to each block of the macroblock shown in FIG. Has been. FIG. 2 shows the internal configuration of the element processor. k
The th element processor includes an arithmetic unit 6k, an input / output (I / O) buffer 91, and a first frame buffer 0.
(92), the second frame buffer 1 (93), and the data memory 7k including the working buffer 94.
And an interconnection network 9 connecting these buffers 91 to 94
5 and a selector 111.

【0030】以下、本発明の画像コーデック用プロセッ
サの動作を説明する。まず、画像コーデックの処理対象
となるマクロブロックは、図1に示したマクロブロック
入力端子21から画像データが1データずつ入力され
る。この際、マクロブロックの各ブロックは、自ブロッ
ク番号と同一の要素プロセッサ番号が付けられたk番目
の要素プロセッサのデータメモリ7kに入力用データバ
ス31を介して格納される。つまり、ブロック0は第1
の要素プロセッサ11(PE0)のデータメモリ71
に、ブロック1は第2の要素プロセッサ12(PE1)
のデータメモリ72、以下、同様に、ブロック7は第8
の要素プロセッサ18(PE7)のデータメモリ78に
格納される。また同時に、画像データの動き補償を行う
際に必要となる過去のフレームや未来のフレームのマク
ロブロックも、上記の入力動作と同様に、データバス3
3,34を介してフレームメモリのマクロブロック入出
力端子23あるいは入力端子24からk番目の要素プロ
セッサのデータメモリ7kに格納される。この入力動作
は、マクロブロックの予測モード、例えば、前方向予測
や両方向予測により異なる。つまり、画像コーデック処
理の対象となるマクロブロックが画像データの動き補償
を行わない場合は、この入力動作は行わない。また、前
方向予測あるいは後方向予測の動き補償を行う場合は、
フレームメモリのマクロブロック入力端子24のみを使
用して、過去あるいは未来のいずれかのフレームのマク
ロブロックのみを入力する。また、両方向予測の動き補
償を行う場合は、フレームメモリのマクロブロック入出
力端子23およびフレームメモリのマクロブロック入力
端子24を2個とも使用して両方のフレームのマクロブ
ロックを入力する。
The operation of the image codec processor of the present invention will be described below. First, the macroblock to be processed by the image codec receives image data one by one from the macroblock input terminal 21 shown in FIG. At this time, each block of the macro block is stored via the input data bus 31 in the data memory 7k of the kth element processor to which the same element processor number as the own block number is attached. That is, block 0 is the first
Data memory 71 of the element processor 11 (PE0) of
The block 1 is the second element processor 12 (PE1).
Data memory 72, hereafter, similarly, block 7 is the eighth
Is stored in the data memory 78 of the element processor 18 (PE7). At the same time, the macro blocks of the past frame and the future frame, which are necessary when performing the motion compensation of the image data, are processed by the data bus 3 similarly to the above input operation.
The data is stored in the data memory 7k of the k-th element processor from the macroblock input / output terminal 23 or the input terminal 24 of the frame memory via 3, 34. This input operation differs depending on the prediction mode of the macroblock, for example, forward prediction or bidirectional prediction. That is, if the macroblock that is the target of the image codec process does not perform the motion compensation of the image data, this input operation is not performed. Also, when performing motion compensation for forward prediction or backward prediction,
Only the macroblock input terminal 24 of the frame memory is used to input only the macroblock of either the past or the future frame. When performing bidirectional prediction motion compensation, the macroblock input / output terminal 23 of the frame memory and the macroblock input terminal 24 of the frame memory are both used to input the macroblocks of both frames.

【0031】これらの入力動作と並行して、k番目の要
素プロセッサPEの演算ユニット6kでは、「単一命令
ストリーム・多重データストリーム:SIMD」制御に
より離散コサイン変換(DCT)や量子化といった画像
コーデックの要素処理が並列に実行されている。なお、
上述した文献に記載されているように、「単一命令スト
リーム・多重データストリーム:SIMD」制御とは、
単一の命令で、多重(複数)のデータの流れを制御する
方法である。また、すべての画像コーデックの要素処理
を「単一命令ストリーム・多重データストリーム:SI
MD」制御で行うので、図1に示した係数メモリ51を
全ての要素プロセッサ11〜18で共有しており、係数
メモリ51を各要素プロセッサ11〜18内に持たなく
てすむ。さらに、これらの入力動作および計算動作と並
行して、画像コーデック処理後のマクロブロックがマク
ロブロック出力端子22から1データずつ出力される。
この際、マクロブロックの各ブロックは、自ブロック番
号と同一の要素プロセッサ番号を持つ要素プロセッサの
データメモリ7kから出力用データバス32を介してマ
クロブロック出力端子22へ出力される。すなわち、ブ
ロック0は要素プロセッサ11(PE0)のデータメモ
リ71から、ブロック1は要素プロセッサ12(PE
1)のデータメモリ72から、以下、同様に、ブロック
7は要素プロセッサ18(PE7)のデータメモリ78
から出力用データバス32を介してマクロブロック出力
端子22へ出力される。
In parallel with these input operations, in the arithmetic unit 6k of the kth element processor PE, an image codec such as discrete cosine transform (DCT) or quantization is performed by "single instruction stream / multiple data stream: SIMD" control. The element processing of is executed in parallel. In addition,
As described in the above-mentioned document, the “single instruction stream / multiple data stream: SIMD” control means
It is a method of controlling multiple (multiple) data flows with a single instruction. In addition, element processing of all image codecs is performed by "single instruction stream / multiple data stream: SI
Since the "MD" control is performed, the coefficient memory 51 shown in FIG. 1 is shared by all the element processors 11 to 18, and the coefficient memory 51 does not have to be provided in each of the element processors 11 to 18. Further, in parallel with these input operation and calculation operation, the macro block after the image codec processing is output from the macro block output terminal 22 one data at a time.
At this time, each block of the macro block is output from the data memory 7k of the element processor having the same element processor number as the own block number to the macro block output terminal 22 via the output data bus 32. That is, the block 0 is from the data memory 71 of the element processor 11 (PE0), and the block 1 is from the element processor 12 (PE
From the data memory 72 of 1), similarly, the block 7 is the data memory 78 of the element processor 18 (PE7).
Is output to the macroblock output terminal 22 via the output data bus 32.

【0032】また同時に、画像コーデック処理後のマク
ロブロックが他のマクロブロックの画像データ動き補償
を行う際に必要となる場合、上記の出力動作と同様にデ
ータバス33を介してk番目の要素プロセッサのデータ
メモリ7kからフレームメモリのマクロブロック入出力
端子23に出力される。なお、この画像コーデック処理
では、フレームメモリのマクロブロック入出力端子23
においてマクロブロックの入力および出力を同時に行う
必要は生じない。
At the same time, when the macroblock after the image codec processing is required for compensating the image data motion of another macroblock, the kth element processor via the data bus 33 as in the above output operation. Is output to the macro block input / output terminal 23 of the frame memory from the data memory 7k. In this image codec processing, the macro block input / output terminal 23 of the frame memory is
There is no need for simultaneous input and output of macroblocks in.

【0033】次に、図1における加算回路41について
説明する。上記「発明が解決しようとする課題」の項で
述べた画像データ動きベクトル検出やモード決定処理の
ようなブロック間データ依存関係は、各ブロック毎に求
めた演算結果をすべて加算できれば解決できる。例え
ば、画像データ動きベクトル検出で考えると、マクロブ
ロックの輝度成分(4個のブロック)の各ブロックにつ
いて差分絶対値和を求め、最後にそれら4個の差分絶対
値和を加算すればよい。このために、マクロブロックの
輝度成分を格納する4個の要素プロセッサ11〜14の
出力に加算回路41を設けた。この加算回路41は、4
個の演算結果がすべて加算できれば、どのような構成で
も構わない。加算結果は、制御回路のデータレジスタ
(図示省略)に書き込まれる。
Next, the adder circuit 41 in FIG. 1 will be described. The inter-block data dependency such as the image data motion vector detection and the mode determination processing described in the above-mentioned “Problems to be solved by the invention” can be solved if all the calculation results obtained for each block can be added. For example, considering image data motion vector detection, the sum of absolute differences may be obtained for each block of the luminance component (4 blocks) of the macroblock, and the sum of these four absolute differences may be added last. For this purpose, the adder circuit 41 is provided at the outputs of the four element processors 11 to 14 which store the luminance components of the macroblocks. This adder circuit 41
Any configuration may be used as long as all the calculation results can be added. The addition result is written in the data register (not shown) of the control circuit.

【0034】最後に、図1における隣接する要素プロセ
ッサ間のデータ転送路42〜45について説明する。上
記「発明が解決しようとする課題」の項で述べたフィー
ルドDCT処理における縦方向2個のブロックにまたが
るデータ依存関係は、隣接する2つの要素プロセッサ、
たとえば、PE0とPE1との間で8x8ブロックの半
分の32個のデータを交換することで解決できる。この
ために、フィールドDCT/逆DCT(IDCT)処理
時に隣接する要素プロセッサのデータメモリとのデータ
の交換を可能とする転送路42〜45を設ける。フィー
ルドDCT/IDCT処理時には、予めこれらの転送路
42〜45を用いてブロックの半分のデータを交換して
おいてからDCT/IDCT処理を実行すればよい。
Finally, the data transfer paths 42 to 45 between the adjacent element processors in FIG. 1 will be described. In the field DCT processing described in the above-mentioned "Problems to be solved by the invention", the data dependence that extends over two blocks in the vertical direction is caused by the two adjacent element processors.
For example, it can be solved by exchanging 32 pieces of data of half of the 8 × 8 block between PE0 and PE1. For this purpose, transfer paths 42 to 45 are provided to enable data exchange with the data memory of the adjacent element processor during the field DCT / inverse DCT (IDCT) processing. At the time of the field DCT / IDCT processing, it is sufficient to exchange the data of half the blocks using these transfer paths 42 to 45 in advance and then execute the DCT / IDCT processing.

【0035】演算ユニットの構成 図3に本発明の1実施例による演算ユニットの内部構成
を示す。この演算ユニットは、第1のセレクタ131、
第2のセレクタ132、拡張AL(EALU)121、
2つのパイプラインレジスタ141,142、第3のセ
レクタ133、乗算器122、パイプラインレジスタ1
43、第4のセレクタ134、第5のセレクタ135、
シフト機能付累算器123、パイプラインレジスタ14
4、第6のセレクタ136、および、パイプラインメモ
リ124を有している。
Arrangement of Arithmetic Unit FIG. 3 shows the internal arrangement of the arithmetic unit according to one embodiment of the present invention. This arithmetic unit includes a first selector 131,
The second selector 132, the extended AL (EALU) 121,
Two pipeline registers 141 and 142, third selector 133, multiplier 122, pipeline register 1
43, a fourth selector 134, a fifth selector 135,
Accumulator 123 with shift function, pipeline register 14
It has four and six selectors 136 and a pipeline memory 124.

【0036】拡張ALU121の構成 拡張ALU121は、正負反転器301、加算器30
2、減算器303、論理演算器304、正負判定器30
5、および、データセレクタ301、307が図示のご
とく接続されている。図3に示したデータセレクタ13
1の選択出力データがXとして印加され、データセレク
タ132の選択出力データがYとして印加されている。
論理演算器304は、否定、論理和、論理積、排他的論
理和などの論理演算を行う。正負反転器301は入力デ
ータXの極性を反転してデータセレクタ306に印加す
る。加算器302は、データセレクタ306から極性反
転されたデータ:−Xが出力されたときは入力データY
に極性反転したデータ:−Xを加算して、(Y−X)を
出力する。また、加算器302は、データセレクタ30
6から入力データXが出力されたときは、入力データY
と入力データXとの加算結果(Y+X)を出力する。減
算器303は、(X−Y)を計算する。論理演算器30
4は、データXとデータYとの論理演算を行う。正負判
定器305は入力されたデータの正負を判定する。
Configuration of Extended ALU 121 The extended ALU 121 includes a positive / negative inverter 301 and an adder 30.
2, subtractor 303, logical operation unit 304, positive / negative decision unit 30
5 and data selectors 301 and 307 are connected as shown. The data selector 13 shown in FIG.
The selected output data of 1 is applied as X, and the selected output data of the data selector 132 is applied as Y.
The logical operation unit 304 performs logical operations such as negation, logical sum, logical product, and exclusive logical sum. The positive / negative inverter 301 inverts the polarity of the input data X and applies it to the data selector 306. The adder 302 receives the input data Y when the polarity-inverted data: -X is output from the data selector 306.
The polarity-inverted data: -X is added, and (Y-X) is output. Further, the adder 302 includes the data selector 30.
When the input data X is output from 6, the input data Y
And the addition result (Y + X) of the input data X is output. The subtractor 303 calculates (X-Y). Logical operation unit 30
4 performs a logical operation on the data X and the data Y. The plus / minus determiner 305 determines whether the input data is positive or negative.

【0037】上述の拡張ALU121は、通常のALU
の機能である、加算、減算、論理演算の他に、大小比較
演算、差分絶対値演算、バタフライ演算を拡張機能とし
て備えている。以下、これらの機能を述べる。 (イ)加算 加算器302において、入力端子311,312に入力
されたデータXおよびYを加算する。この場合は入力デ
ータXが正負反転されずに加算器320に印加されるよ
うに、データセレクタ306を選択しておく。データセ
レクタ307から加算結果(X+Y)が出力される。こ
の加算結果Aは、出力端子313を介して図3に示した
パイプラインレジスタ141に印加される。 (ロ)減算 減算器303において、入力端子311,312に入力
されたデータXからYを減算する。この減算結果Bは、
出力端子314を介して図3に示したパイプラインレジ
スタ142に印加される。 (ハ)論理演算 論理演算器304において、入力端子311,312に
入力されたデータXおよびYの否定、論理和、論理積、
排他的論理和などの論理演算が行われ、データセレクタ
307および出力端子313を介して、パイプラインレ
ジスタ141に出力される。 (ニ)大小比較:min(X,Y)、max(X,Y) 入力端子311,312に入力されたデータXおよびY
について、正負反転器301、加算器302、減算器3
03、正負判定器305を用いて大小比較を行う。この
場合、データセレクタ306は正負反転器301で極性
反転したデータ(−X)が加算器302に入力されるよ
うに設定される。正負判定器305には、加算器302
から(Y−X)、減算器303から(X−Y)が入力さ
れ、正負判定器305は、 (a)最小値min(X,Y)として、 (Y−X)≧0のとき、X (X−Y)>0のとき、Y (b)最大値max(X,Y)として、 (Y−X)≧0のとき、Y (X−Y)>0のとき、X をデータセレクタ307および出力端子313を介して
出力する。ただし、最小値と最大値とは同時に出力でき
ない。 (ホ)差分絶対値演算:/X−Y/ 入力端子311,312に入力されたデータXおよびY
について、正負反転器301、加算器302、減算器3
03、および、正負判定器305を用いて差分絶対値演
算を行う。この場合、データセレクタ306は正負反転
器301で極性反転したデータ(−X)が加算器302
に入力されるように設定される。正負判定器305に
は、加算器302から(Y−X)、減算器303から
(X−Y)が入力され、正負判定器305は、 (Y−X)≧0のとき、(Y−X) (X−Y)>0のとき、(X−Y) をデータセレクタ307および出力端子313を介して
出力する。 (ヘ)バタフライ演算 入力端子311,312に入力されたデータXおよびY
について、加算器302、および、減算器303を用い
てバタフライ演算を行う。この場合、データセレクタ3
06は入力データXを加算器302に入力するように設
定される。データセレクタ307が出力端子313に加
算器302の加算結果(X+Y)を出力し、減算器30
3の減算結果(X−Y)が出力端子314に出力され
る。
The extended ALU 121 described above is a normal ALU.
In addition to the functions of addition, subtraction, and logical operation, which are the functions of (1) and (2), magnitude comparison operation, difference absolute value operation, and butterfly operation are provided as extended functions. These functions will be described below. (A) Addition In the adder 302, the data X and Y input to the input terminals 311 and 312 are added. In this case, the data selector 306 is selected so that the input data X is applied to the adder 320 without being inverted. The addition result (X + Y) is output from the data selector 307. The addition result A is applied to the pipeline register 141 shown in FIG. 3 via the output terminal 313. (B) Subtraction The subtractor 303 subtracts Y from the data X input to the input terminals 311 and 312. This subtraction result B is
It is applied to the pipeline register 142 shown in FIG. 3 through the output terminal 314. (C) Logical operation In the logical operation unit 304, the negation, logical sum, logical product of the data X and Y input to the input terminals 311 and 312,
A logical operation such as an exclusive OR is performed and the result is output to the pipeline register 141 via the data selector 307 and the output terminal 313. (D) Size comparison: min (X, Y), max (X, Y) data X and Y input to the input terminals 311 and 312
With respect to the positive / negative inverter 301, the adder 302, and the subtracter 3
03, the positive / negative determination unit 305 is used to compare the magnitude. In this case, the data selector 306 is set so that the data (−X) whose polarity is inverted by the positive / negative inverter 301 is input to the adder 302. The positive / negative determination unit 305 includes an adder 302.
From (Y−X) and (X−Y) from the subtractor 303, and the positive / negative determination unit 305 determines (a) as the minimum value min (X, Y), when (Y−X) ≧ 0, X When (X−Y)> 0, Y (b) As the maximum value max (X, Y), when (Y−X) ≧ 0, when Y (X−Y)> 0, X is set to the data selector 307. And output through the output terminal 313. However, the minimum value and the maximum value cannot be output at the same time. (E) Difference absolute value calculation: / XY / Data X and Y input to input terminals 311 and 312
With respect to the positive / negative inverter 301, the adder 302, and the subtracter 3
03 and the positive / negative determiner 305 are used to perform the difference absolute value calculation. In this case, in the data selector 306, the data (−X) whose polarity is inverted by the positive / negative inverter 301 is added by the adder 302.
Is set to be input to. (Y−X) is input from the adder 302 and (X−Y) is input from the subtractor 303 to the positive / negative determination unit 305, and the positive / negative determination unit 305 determines (Y−X) when (Y−X) ≧ 0. ) When (XY)> 0, (XY) is output via the data selector 307 and the output terminal 313. (F) Butterfly operation Data X and Y input to input terminals 311 and 312
With respect to, the butterfly operation is performed using the adder 302 and the subtractor 303. In this case, the data selector 3
06 is set so that the input data X is input to the adder 302. The data selector 307 outputs the addition result (X + Y) of the adder 302 to the output terminal 313, and the subtracter 30
The subtraction result (X−Y) of 3 is output to the output terminal 314.

【0038】次いで、図3に示した演算ユニットにおけ
るパイプライン処理の概要を図5を参照して述べる。簡
単な動作例として拡張ALU121が第1ステップ(ス
テージ)において加算動作を行い、乗算器122が第2
ステップにおいて乗算を行い、シフト機能付累算器12
3が第3ステップにおいて累算を行うとする。そして、
これら各ステップの動作は1クロックサイクル内に行わ
れるとする。拡張ALU121の後段にパイプラインレ
ジスタ141,142、乗算器122の後段にパイプラ
インレジスタ143、シフト機能付累算器123の後段
にパイプラインレジスタ144が設けられているから、
(k−2)クロックサイクルにおいて、拡張ALU12
1において加算を行い、その加算結果をパイプラインレ
ジスタ141に保存し、(k−1)クロックサイクルに
おいて、上記拡張ALU121における加算結果を保存
しているパイプラインレジスタ141を用いて乗算器1
22において乗算を行いパイプラインレジスタ143に
保存するとともに、拡張ALU121において新たな加
算を行いパイプラインレジスタ141に保存し、kクロ
ックサイクルにおいて、上記(k−1)クロックサイク
ルにおける乗算器122におけるパイプラインレジスタ
143に保存した乗算結果を用いてシフト機能付累算器
123において累積演算を行いパイプラインレジスタ1
44に保存し、(k−1)クロックサイクルにおける拡
張ALU121において加算したパイプラインレジスタ
141に保存されている加算結果について乗算器122
において乗算を行いパイプラインレジスタ143に保存
し、さらに拡張ALU121において新たな加算を行い
パイプラインレジスタ141に保存する。以下、同様に
同じクロックサイクルにおいて、加算、乗算、累積が同
時的に行われる。このように、演算ユニット内におい
て、加算、乗算、累積が順序をおって並列して行われ
る。
Next, the outline of pipeline processing in the arithmetic unit shown in FIG. 3 will be described with reference to FIG. As a simple operation example, the extended ALU 121 performs the addition operation in the first step (stage), and the multiplier 122 performs the second operation.
Accumulator with shift function 12
3 performs accumulation in the third step. And
It is assumed that the operation of each of these steps is performed within one clock cycle. Since the pipeline registers 141 and 142 are provided after the expanded ALU 121, the pipeline register 143 is provided after the multiplier 122, and the pipeline register 144 is provided after the shift function accumulator 123.
In the (k-2) clock cycle, the extended ALU 12
1, the addition result is stored in the pipeline register 141, and in the (k−1) clock cycle, the multiplier 1 using the pipeline register 141 storing the addition result in the extended ALU 121 is used.
22 performs the multiplication and saves it in the pipeline register 143, and the extended ALU 121 performs new addition and saves it in the pipeline register 141. In k clock cycles, the pipeline in the multiplier 122 in the above (k−1) clock cycle. Using the multiplication result stored in the register 143, cumulative operation is performed in the accumulator with shift function 123 and the pipeline register 1
The addition result stored in the pipeline register 141 stored in the extended register ALU 121 in the (k-1) clock cycle
In the pipeline register 141, the multiplication is performed and the result is stored in the pipeline register 143. Further, a new addition is performed in the extended ALU 121 and the result is stored in the pipeline register 141. Hereinafter, similarly, in the same clock cycle, addition, multiplication and accumulation are simultaneously performed. Thus, in the arithmetic unit, addition, multiplication and accumulation are performed in parallel in order.

【0039】この演算ユニットは、本件出願人が本件出
願と同時提出の『処理適応型演算パイプラインの構成』
に示した演算ユニットと以下の点を除いては同一構成
で、やはり画像コーデックの要素処理に適した構成とな
っている。相違点は、本発明においては、演算ユニット
内にパイプラインメモリ124を設け、1個の8x8ブ
ロックの離散コサイン変換/離散逆コサイン変換(DC
T/IDCT)処理を1演算ユニットのみを用いて行う
構成としていることである。これにより、すべての画像
コーデックの要素処理を「単一命令ストリーム・多重デ
ータストリーム:SIMD」制御で実現できる。
This arithmetic unit is constructed by the applicant of the present invention at the same time as the "processing adaptive arithmetic pipeline structure".
It has the same configuration as the arithmetic unit shown in (1) except for the following points, and is also suitable for the element processing of the image codec. The difference is that in the present invention, a pipeline memory 124 is provided in the arithmetic unit, and a discrete cosine transform / discrete inverse cosine transform (DC) of one 8 × 8 block is provided.
That is, the T / IDCT) processing is performed using only one arithmetic unit. As a result, element processing of all image codecs can be realized by "single instruction stream / multiple data stream: SIMD" control.

【0040】本件出願の発明者の分析によれば、画像コ
ーデックにおいて、乗算を連続して行う要素処理あるい
は乗算結果の和を求める要素処理の頻度は小さいことが
判ったので、演算ユニット間の結合をなくし、演算ユニ
ット間の配線の減少を図った。本発明においては、全て
の画像コーデックの要素処理を「単一命令ストリーム・
多重データストリーム:SIMD」制御で実現できるた
め、図1に示すように、係数メモリ51は全ての要素プ
ロセッサで共有する構成とする。
According to the analysis by the inventor of the present application, it is found that the frequency of the element processing for continuously performing multiplication or the element processing for obtaining the sum of multiplication results is small in the image codec. To eliminate wiring and reduce the wiring between arithmetic units. In the present invention, element processing of all image codecs is performed by "single instruction stream ...
Since it can be realized by "multiple data stream: SIMD" control, the coefficient memory 51 is shared by all the element processors as shown in FIG.

【0041】データメモリの構成 図2に本発明の1実施例によるデータメモリの構成を示
す。データメモリは、入出力(I/O)バッファ91、
第1のフレームバッファ0(92)、第2のフレームバ
ッファ1(93)、ワーキングバッファ94、および、
相互結合網95からなる。以下、それぞれについて説明
する。 (a)I/Oバッファ91 I/Oバッファ91は、バンク0,1,2(101,1
02,103)と呼ぶ3個のメモリバンクに分割されて
おり、各々が最低限1個の8x8ブロックを格納できる
メモリ容量を有する。画像コーデック処理によってはさ
らに大きなメモリ容量を要する場合がある。このI/O
バッファ91は、「従来の技術」の項で述べた入力用デ
ータメモリおよぶ出力用データメモリを兼用することに
より、メモリバンクの数を1個減らしたものである。す
なわち、計算ステージにおけるデータ入力用および出力
用のバッファを1個にまとめている。
Structure of Data Memory FIG. 2 shows the structure of the data memory according to one embodiment of the present invention. The data memory includes an input / output (I / O) buffer 91,
The first frame buffer 0 (92), the second frame buffer 1 (93), the working buffer 94, and
It comprises an interconnection network 95. Each will be described below. (A) I / O buffer 91 The I / O buffer 91 includes banks 0, 1, 2 (101, 1).
No. 02, 103), and each has a memory capacity capable of storing at least one 8 × 8 block. A larger memory capacity may be required depending on the image codec processing. This I / O
The buffer 91 is one in which the number of memory banks is reduced by using the input data memory and the output data memory described in the section "Prior Art" in common. That is, the data input and output buffers in the calculation stage are combined into one.

【0042】以下、I/Oバッファ91の動作を説明す
る。I/Oバッファ91においては、演算の処理単位で
あるマクロブロック毎に演算処理用のメモリバンク、入
力用のメモリバンクおよび出力用のメモリバンクを以下
のように切り替える。ここで、演算処理用のメモリバン
クは相互結合網95に接続され、入力用のメモリバンク
は入力用データバス31に接続され、出力用のメモリバ
ンクは出力用データバス32に接続される。
The operation of the I / O buffer 91 will be described below. In the I / O buffer 91, a memory bank for arithmetic processing, an input memory bank, and an output memory bank are switched as follows for each macroblock which is a processing unit of arithmetic. Here, the memory bank for arithmetic processing is connected to the interconnection network 95, the memory bank for input is connected to the input data bus 31, and the memory bank for output is connected to the output data bus 32.

【0043】[0043]

【表1】 表1 1.3k番目のマクロブロックの処理時 演算処理用のメモリバンク :バンク0(101) 入力用のメモリバンク :バンク1(102) 出力用のメモリバンク :バンク2(103) 2.(3k+1)番目のマクロブロックの処理時 演算処理用のメモリバンク :バンク1(102) 入力用のメモリバンク :バンク2(103) 出力用のメモリバンク :バンク0(101) 3.(3k+1)番目のマクロブロックの処理時 演算処理用のメモリバンク :バンク2(103) 入力用のメモリバンク :バンク0(101) 出力用のメモリバンク :バンク1(102)[Table 1] Table 1 1.3kth Macro Block Processing Memory bank for arithmetic processing: Bank 0 (101) Memory bank for input: Bank 1 (102) Memory bank for output: Bank 2 (103) 2. When processing the (3k + 1) th macroblock Memory bank for arithmetic processing: Bank 1 (102) Memory bank for input: Bank 2 (103) Memory bank for output: Bank 0 (101) 3. When processing the (3k + 1) th macroblock Memory bank for arithmetic processing: Bank 2 (103) Memory bank for input: Bank 0 (101) Memory bank for output: Bank 1 (102)

【0044】I/Oバッファ91が上記のように動作す
ることにより、入力ステージ、計算ステージ、出力ステ
ージの動作周波数が異なっていても問題ない。また、ス
テージ間におけるI/Oバッファ91へのアクセスの競
合が発生しないので、各ステージは完全に並列に動作可
能である。
Since the I / O buffer 91 operates as described above, there is no problem even if the operating frequencies of the input stage, calculation stage and output stage are different. Further, since there is no competition for access to the I / O buffer 91 between the stages, the stages can operate completely in parallel.

【0045】(b)第1のフレームバッファ0(92)
および第2のフレームバッファ1(93) 第1のフレームバッファ0(92)および第2のフレー
ムバッファ1(93)は、各々がバンク0,1(10
4:105、106:107)と呼ぶ2個のメモリバン
クに分割されており、各々が最低限1個の8x8ブロッ
クを格納できるメモリ容量を有する。画像コーデック処
理によっては、さらに大きなメモリ容量を要する場合が
ある。第1のフレームバッファ0(92)および第2の
フレームバッファ1(93)は、画像データの動き補償
を行う際に必要となる過去のフレームや将来のフレーム
のマクロブロックを格納する。これらのマクロブロック
は、データバス33、34を介してフレームメモリのマ
クロブロック入出力端子23あるいはマクロブロック入
力端子24から入力される。この際、フレームバッファ
0(92)、フレームバッファ1(93)はダブルバッ
ファ構成となっているので、入力ステージと計算ステー
ジの動作周波数が異なっていても問題ない。
(B) First frame buffer 0 (92)
And the second frame buffer 1 (93) The first frame buffer 0 (92) and the second frame buffer 1 (93) are respectively banks 0, 1 (10).
4: 105, 106: 107), each of which has a memory capacity capable of storing at least one 8 × 8 block. A larger memory capacity may be required depending on the image codec processing. The first frame buffer 0 (92) and the second frame buffer 1 (93) store macroblocks of past frames and future frames that are necessary when performing motion compensation of image data. These macroblocks are input from the macroblock input / output terminal 23 or the macroblock input terminal 24 of the frame memory via the data buses 33 and 34. At this time, since the frame buffer 0 (92) and the frame buffer 1 (93) have a double buffer structure, there is no problem even if the operating frequencies of the input stage and the calculation stage are different.

【0046】また、ステージ間におけるフレームバッフ
ァへのアクセスの競合が発生しないので、入力ステージ
と計算ステージは完全に並列に動作可能である。さら
に、第1のフレームバッファ0(92)は、画像コーデ
ック処理後のマクロブロックが他のマクロブロックの画
像データ動き補償を行う際に必要となる場合に、そのマ
クロブロックを格納する。さらに、データバス33を介
してフレームメモリのマクロブロック入出力端子23に
出力する。この際、第1のフレームバッファ0(92)
はダブルバッファ構成となっているので、計算ステージ
と出力ステージの動作周波数が異なっていても問題な
い。また、ステージ間におけるフレームバッファへのア
クセスの競合が発生しないので、計算ステージと出力ス
テージは完全に並列に動作可能である。
Further, since there is no competition for access to the frame buffer between the stages, the input stage and the calculation stage can operate completely in parallel. Furthermore, the first frame buffer 0 (92) stores a macroblock that has undergone the image codec processing when the macroblock is required for performing image data motion compensation of another macroblock. Further, the data is output to the macro block input / output terminal 23 of the frame memory via the data bus 33. At this time, the first frame buffer 0 (92)
Has a double-buffer structure, there is no problem even if the operating frequencies of the calculation stage and the output stage are different. Further, since there is no competition for accessing the frame buffer between the stages, the calculation stage and the output stage can operate in completely parallel.

【0047】(c)ワーキングバッファ94 ワーキングバッファ94は、演算中間結果格納用バッフ
ァであり、最低限1個の8x8ブロックを格納できるメ
モリ容量を有する。画像コーデック処理によっては、ワ
ーキングバッファ94はさらに大きなメモリ容量を要す
る場合がある。
(C) Working Buffer 94 The working buffer 94 is a buffer for storing intermediate calculation results, and has a memory capacity capable of storing at least one 8 × 8 block. The working buffer 94 may require a larger memory capacity depending on the image codec processing.

【0048】(d)相互結合網95 相互結合網95は、上記4種のバッファ、つまり、I/
Oバッファ91、第1のフレームバッファ0(92)、
第2のフレームバッファ1(93)およびワーキングバ
ッファ94と演算ユニット6kとを接続するネットワー
クである。相互結合網95としては、どのような構成で
もよいが、最低限、1クロックサイクル毎に2個のデー
タを任意のバッファ91〜94から演算ユニット6kに
供給可能とし、同時に1個のデータを演算ユニット6k
から任意のバッファ91〜94に格納可能とする。ま
た、最低限、1クロックサイクル毎に1個のデータを任
意のバッファ91〜94から演算ユニット6kに供給
し、同時に2個のデータを演算ユニット6kから任意の
バッファ91〜94に格納可能とする。なお、画像コー
デックの要素処理において、1クロックサイクル毎に、
第1のフレームバッファ0(92)および第2のフレー
ムバッファ1(93)の同一メモリバンク(バンク0,
1のいずれか)から2個のデータが供給されたり、第1
のフレームバッファ0(92)および第2のフレームバ
ッファ1(93)の同一メモリバンクへ2個のデータが
格納されることはない。したがって、第1のフレームバ
ッファ0(92)および第2のフレームバッファ1(9
3)のメモリバンクは、すべてシングルポート構成でよ
い。これに対し、I/Oバッファ91の各メモリバンク
およびワーキングバッファ94は、最低限2ポートのマ
ルチポート構成となる。
(D) Mutual Connection Network 95 The mutual connection network 95 is the above-mentioned four types of buffers, that is, I / I.
O buffer 91, first frame buffer 0 (92),
This is a network that connects the second frame buffer 1 (93) and the working buffer 94 to the arithmetic unit 6k. The mutual connection network 95 may have any configuration, but at a minimum, two pieces of data can be supplied from the arbitrary buffers 91 to 94 to the arithmetic unit 6k every clock cycle, and one piece of data can be calculated at the same time. Unit 6k
Can be stored in any of the buffers 91 to 94. Further, at a minimum, one data is supplied from the arbitrary buffers 91 to 94 to the arithmetic unit 6k every one clock cycle, and at the same time, two data can be stored from the arithmetic unit 6k to the arbitrary buffers 91 to 94. . In the element processing of the image codec, every clock cycle,
The same memory bank of the first frame buffer 0 (92) and the second frame buffer 1 (93) (bank 0,
2) is supplied from the
No two data are stored in the same memory bank of the frame buffer 0 (92) and the second frame buffer 1 (93). Therefore, the first frame buffer 0 (92) and the second frame buffer 1 (9
All the memory banks of 3) may have a single port configuration. On the other hand, each memory bank of the I / O buffer 91 and the working buffer 94 have at least a 2-port multiport configuration.

【0049】以上、本発明の1実施例としての画像コー
デック用プロセッサについて述べたが、本発明の実施に
際しては、上述した実施例に限定されず、上記同様の構
成および処理を行う他の構成にすることができる。
Although the image codec processor as one embodiment of the present invention has been described above, the embodiment of the present invention is not limited to the above-described embodiment, and other configurations for performing the same processing and processing as above may be used. can do.

【0050】[0050]

【発明の効果】本発明によれば、隣接する要素プロセッ
サの演算結果を加算する回路を有し、隣接する要素プロ
セッサPEのデータメモリ間でデータ転送を可能とする
ことにより、画像コーデックのブロック間にデータ依存
関係が存在する処理が実現できる。これにより、ブロッ
ク対応にダブルバッファ方式のデータメモリを有する要
素プロセッサを設けることが可能となる。この結果、従
来よりもデータメモリのポート数、相互結合網を複雑化
することなく並列度をあげることででき、処理性能が向
上する。
According to the present invention, a circuit for adding operation results of adjacent element processors is provided, and data transfer is possible between the data memories of adjacent element processors PE, so that blocks between image codecs can be transferred. It is possible to realize a process in which there is a data dependency relationship. As a result, it becomes possible to provide an element processor having a double buffer type data memory for each block. As a result, the number of ports of the data memory and the parallelism can be increased without complicating the mutual connection network, and the processing performance can be improved.

【0051】また、本発明によれば、データメモリ内の
I/Oバッファにおいて、従来の構成では入力データメ
モリと出力用データメモリで別々に存在していた演算処
理用のメモリバンクが兼用できるので、3メモリバンク
分のデータメモリがあればよい。したがって、1メモリ
バンクのデータメモリ容量をmとすると、トータルで3
mのデータメモリ容量となり、従来の構成と比べてデー
タメモリ容量を3/4に削減できる。
Further, according to the present invention, in the I / O buffer in the data memory, the memory banks for arithmetic processing, which are separately provided in the input data memory and the output data memory in the conventional configuration, can be used in common. It is sufficient to have data memory for three memory banks. Therefore, if the data memory capacity of one memory bank is m, the total is 3
Since the data memory capacity is m, the data memory capacity can be reduced to 3/4 compared to the conventional configuration.

【図面の簡単な説明】[Brief description of drawings]

【図1】本発明の実施例としての画像コーデック用プロ
セッサの構成図である。
FIG. 1 is a configuration diagram of an image codec processor as an embodiment of the present invention.

【図2】図1に示した要素プロセッサの構成図である。FIG. 2 is a configuration diagram of an element processor shown in FIG.

【図3】図1に示した演算ユニットの構成図である。FIG. 3 is a configuration diagram of an arithmetic unit shown in FIG.

【図4】図3に示した拡張ALUの構成図である。FIG. 4 is a configuration diagram of an extended ALU shown in FIG.

【図5】図3に示した演算ユニットにおけるパイプライ
ン処理を示すグラフである。
5 is a graph showing pipeline processing in the arithmetic unit shown in FIG.

【図6】CCIR601フォーマットに基づく(4:
2:2)信号におけるマクロブロックおよびブロックの
概念を示す図である。
FIG. 6 is based on the CCIR601 format (4:
FIG. 2 is a diagram showing the concept of macroblocks and blocks in a 2: 2) signal.

【図7】従来の画像コーデック用プロセッサの構成を示
す図である。
FIG. 7 is a diagram showing a configuration of a conventional image codec processor.

【図8】フレームDCT処理時のマクロブロック(輝度
成分のみ)を示す図である。
FIG. 8 is a diagram illustrating macroblocks (only luminance components) during frame DCT processing.

【図9】フィールドDCT処理時のマクロブロック(輝
度成分のみ)を示す図である。
FIG. 9 is a diagram showing macroblocks (only luminance components) during field DCT processing.

【符号の説明】[Explanation of symbols]

1k(11〜18)・・本発明の実施例の要素プロセッ
サ(PE) 21・・マクロブロック入力端子 22・・マクロブロック出力端子 23・・フレームメモリのマクロブロック入出力端子 24・・フレームメモリのマクロブロック入力端子 31・・入力用データバス 32・・出力用データバス 33,34・・データバス 41・・加算回路 42〜45・・隣接要素プロセッサ間データ転送路 51・・係数メモリ 6k(61〜68)・・演算ユニット 7k(71〜78)・・データメモリ 81・・ブロック入力端子 82・・ブロック出力端子 83・・フレームメモリのブロック入出力端子 84・・フレームメモリのブロック入力端子 91・・I/Oバッファ 92・・第1のフレームバッファ0 93・・第2のフレームバッファ1 94・・ワーキングバッファ 95・・相互結合網 101・・I/Oバッファのバンク0 102・・I/Oバッファのバンク1 103・・I/Oバッファのバンク2 104・・フレームバッファ0のバンク0 105・・フレームバッファ0のバンク1 106・・フレームバッファ1のバンク0 107・・フレームバッファ1のバンク1 111・・データセレクタ 121・・拡張論理演算ユニット(EALU) 122・・乗算器 123・・シフト機能付き累算器 124・・パイプラインメモリ 131〜136・・データセレクタ 141〜144・・パイプラインレジスタ
1k (11-18) ··· Element processor (PE) of the embodiment of the present invention 21 ·· Macroblock input terminal 22 · · Macroblock output terminal 23 · · Macroblock input / output terminal 24 of frame memory · · Macro block input terminal 31 ··· Input data bus 32 · · Output data bus 33, 34 · · Data bus 41 · · Adder circuit 42 to 45 · · Data transfer path between adjacent element processors 51 · · Coefficient memory 6k (61) -68) -Operation unit 7k (71-78) -Data memory 81-Block input terminal 82-Block output terminal 83-Frame memory block input / output terminal 84-Frame memory block input terminal 91- I / O buffer 92 first frame buffer 0 93 second frame buffer 19 Working buffer 95 Mutual interconnection network 101 I / O buffer bank 0 102 I / O buffer bank 1 103 I / O buffer bank 2 104 Frame buffer 0 bank 0 105 -Bank 1 of frame buffer 0 106-Bank 0 of frame buffer 1 107-Bank 1 of frame buffer 1 111-Data selector 121-Extended logical operation unit (EALU) 122-Multiplier 123-Shift Accumulator with function 124 ··· Pipeline memory 131 to 136 ·· Data selector 141 to 144 · · Pipeline register

───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.5 識別記号 庁内整理番号 FI 技術表示箇所 H04N 7/133 Z ─────────────────────────────────────────────────── ─── Continuation of the front page (51) Int.Cl. 5 Identification code Office reference number FI technical display location H04N 7/133 Z

Claims (16)

【特許請求の範囲】[Claims] 【請求項1】それぞれがmxnの画像データで構成され
る複数のブロックからなるマクロブロックを1処理単位
として、複数のブロックの画像データにまたがる信号処
理と1つのブロック内の画像データについての信号処理
とを適応的に、単一の命令ストリームで多重データスト
リーム制御処理する「単一命令ストリーム・多重データ
ストリーム:SIMD」制御形画像コーデック用プロセ
ッサにおいて、 隣接要素プロセッサ間データ転送路で接続されたそれぞ
れが隣接する複数対の要素プロセッサが、前記マクロブ
ロックに対応して設けられ、 これら複数の要素プロセッサに共通に係数を提供する共
通係数メモリが設けられ、 前記複数のブロックの画像データにまたがる信号処理を
行う複数対の要素プロセッサの出力にこれらの演算結果
の加算を行う共通の加算回路を設け、 前記マクロブロック単位の処理画像データが前記要素プ
ロセッサに入力されることを特徴とする画像コーデック
用プロセッサ。
1. A signal processing for processing image data of a plurality of blocks and a signal processing for image data in one block, with a macro block composed of a plurality of blocks each of which is composed of mxn image data as one processing unit. In a processor for a "single instruction stream / multiple data stream: SIMD" control type image codec that adaptively controls multiple data streams with a single instruction stream, each of them is connected by a data transfer path between adjacent element processors. A plurality of pairs of element processors adjacent to each other are provided corresponding to the macroblocks, and a common coefficient memory that provides a coefficient commonly to the plurality of element processors is provided, and signal processing across image data of the plurality of blocks is performed. The results of these operations on the outputs of multiple pairs of element processors that A common addition circuit for adding provided, the image codec processor, wherein the processed image data of the macro block is input to the element processor.
【請求項2】前記要素プロセッサのそれぞれが、データ
入力ステージ、計算ステージ、および、データ出力ステ
ージからなる3ステージをパイプライン処理するように
構成されている、請求項1記載の画像コーデック用プロ
セッサ。
2. The processor for an image codec according to claim 1, wherein each of the element processors is configured to pipeline three stages including a data input stage, a calculation stage, and a data output stage.
【請求項3】前記要素プロセッサのそれぞれが、 前記データ入力ステージ、計算ステージ、および、デー
タ出力ステージからなる3ステージに対応した3個のバ
ンクを有するI/Oバッファと、 少なくとも交互に動作可能な並列的に配設された2つの
バンクを有する第1のデータメモリと、 少なくとも交互に動作可能な並列的に配設された2つの
バンクを有する第2のデータメモリと、 これらのI/Oバッファ、第1および第2のデータメモ
リを相互接続する相互結合網と、 該相互結合網に接続された演算ユニットとを有する請求
項3記載の画像コーデック用プロセッサ。
3. Each of the element processors can operate at least alternately with an I / O buffer having three banks corresponding to the three stages including the data input stage, the calculation stage, and the data output stage. A first data memory having two banks arranged in parallel, a second data memory having at least two banks arranged in parallel that can operate alternately, and I / O buffers thereof 4. The image codec processor according to claim 3, further comprising: an interconnection network interconnecting the first and second data memories, and an arithmetic unit connected to the interconnection network.
【請求項4】前記演算ユニットが、 加算、減算、各種論理演算、大小比較、差分絶対値演算
およびバタフライ演算を行う2入力・2出力の拡張算術
論理演算処理ユニットと、 前記係数メモリからの係数と、該拡張算術論理演算処理
ユニットの出力との乗算を行う乗算ユニットと、 該乗算結果を累積処理する累積ユニットとを有する請求
項3記載の画像コーデック用プロセッサ。
4. A two-input / two-output extended arithmetic logic operation processing unit, wherein the operation unit performs addition, subtraction, various logic operations, magnitude comparison, difference absolute value operation and butterfly operation, and a coefficient from the coefficient memory. 4. The image codec processor according to claim 3, further comprising: a multiplication unit that multiplies the output of the extended arithmetic logic operation processing unit, and an accumulation unit that accumulates the multiplication result.
【請求項5】前記拡張算術論理演算処理ユニットの後段
にパイプラインレジスタと、 前記乗算ユニットの後段にパイプラインレジスタと前記
累積ユニットの後段にパイプラインレジスタとが設けら
れ、 前記データ入力ステージ、計算ステージ、および、デー
タ出力ステージからなる3ステージに対応したパイプラ
イン処理を行う請求項4記載の画像コーデック用プロセ
ッサ。
5. A pipeline register is provided after the extended arithmetic logic operation processing unit, a pipeline register is provided after the multiplication unit, and a pipeline register is provided after the accumulation unit, and the data input stage and the calculation are provided. The image codec processor according to claim 4, which performs pipeline processing corresponding to three stages including a stage and a data output stage.
【請求項6】前記複数のブロックの画像データにまたが
る信号処理が、フィールド画像信号処理であり、 前記1つのブロック内の画像データについての信号処理
が、フレーム画像処理である請求項5記載の画像コーデ
ック用プロセッサ。
6. The image according to claim 5, wherein the signal processing over the image data of the plurality of blocks is field image signal processing, and the signal processing for the image data in the one block is frame image processing. Codec processor.
【請求項7】画像コーデック処理でマクロブロックを1
処理単位とする画像コーデック用プロセッサにおいて、 前記マクロブロックを構成する各ブロック対応に複数の
要素プロセッサを有し、各マクロブロックにおける画像
コーデック処理を前記複数の要素プロセッサを用いて
「単一命令ストリーム・多重データストリーム:SIM
D」制御により並列に行うことを特徴とする画像コーデ
ック用プロセッサ。
7. A macroblock is set to 1 by image codec processing.
In the image codec processor as a processing unit, a plurality of element processors are provided for each block forming the macroblock, and the image codec processing in each macroblock is performed by using the plurality of element processors as a “single instruction stream. Multiple data streams: SIM
An image codec processor characterized in that it is performed in parallel by "D" control.
【請求項8】画像コーデック処理でマクロブロックを1
処理単位として入力ステージ、計算ステージ、出力ステ
ージの3ステージ構成でパイプライン処理を行う画像コ
ーデック用プロセッサにおいて、 前記マクロブロックを構成する各ブロック対応に設けら
れている要素プロセッサ内に演算ユニットおよびダブル
バッファ構成のデータメモリを有し、各ブロックにおけ
る画像コーデック処理を複数の要素プロセッサを用いて
「単一命令ストリーム・多重データストリーム:SIM
D」制御により並列に行うことを特徴とする画像コーデ
ック用プロセッサ。
8. A macro block is set to 1 by image codec processing.
In an image codec processor that performs pipeline processing with a three-stage configuration including an input stage, a calculation stage, and an output stage as a processing unit, an arithmetic unit and a double buffer are provided in an element processor provided corresponding to each block forming the macroblock. The image codec processing in each block is performed by using a plurality of element processors having a data memory having a configuration of “single instruction stream / multiple data stream: SIM
An image codec processor characterized in that it is performed in parallel by "D" control.
【請求項9】画像コーデック処理としてマクロブロック
を1処理単位として入力ステージ、計算ステージ、出力
ステージの3ステージ構成でパイプライン処理を行う画
像コーデック用プロセッサにおいて、 前記マクロブロックを構成する各ブロック対応に設けら
れている要素プロセッサ内に、演算ユニットおよびダブ
ルバッファ構成のデータメモリを有し、さらに、隣接す
る要素プロセッサの演算結果を加算する回路を有し、各
ブロックにおける画像コーデック処理を複数の要素プロ
セッサを用いて「単一命令ストリーム・多重データスト
リーム:SIMD」制御により並列に行うことを特徴と
する画像コーデック用プロセッサ。
9. An image codec processor for performing pipeline processing in a three-stage configuration of an input stage, a calculation stage, and an output stage with a macroblock as one processing unit for image codec processing, and corresponding to each block forming the macroblock. The element processor provided has an arithmetic unit and a data memory of a double buffer structure, and further has a circuit for adding the arithmetic results of the adjacent element processors, and the image codec processing in each block is performed by a plurality of element processors. An image codec processor characterized by performing "single instruction stream / multiple data stream: SIMD" control in parallel using.
【請求項10】画像コーデック処理としてマクロブロッ
クを1処理単位として入力ステージ、計算ステージ、出
力ステージの3ステージ構成でパイプライン処理を行う
画像コーデック用プロセッサにおいて、 前記マクロブロックを構成する各ブロック対応に設けら
れている要素プロセッサ内に、演算ユニットおよびダブ
ルバッファ構成のデータメモリを有し、さらに、隣接す
る要素プロセッサの演算結果を加算する回路を有し、ま
た、隣接する要素プロセッサのデータメモリ間でデータ
転送を可能とし、各ブロックにおける画像コーデック処
理を複数の要素プロセッサを用いて「単一命令ストリー
ム・多重データストリーム:SIMD」制御により並列
に行うことを特徴とする画像コーデック用プロセッサ。
10. An image codec processor for performing pipeline processing in a three-stage configuration of an input stage, a calculation stage, and an output stage with a macroblock as one processing unit for image codec processing, and corresponding to each block constituting the macroblock. The element processor provided has an arithmetic unit and a data memory having a double buffer structure, and further has a circuit for adding the arithmetic results of the adjacent element processors, and between the data memories of the adjacent element processors. An image codec processor characterized by enabling data transfer and performing image codec processing in each block in parallel by "single instruction stream / multiple data stream: SIMD" control using a plurality of element processors.
【請求項11】請求項7〜10いずれか記載の画像コー
デック用プロセッサにおいて、 前記要素プロセッサのそれぞれが、 前記データ入力ステージ、計算ステージ、および、デー
タ出力ステージからなる3ステージに対応した3個のバ
ンクを有するI/Oバッファと、 少なくとも交互に動作可能な並列的に配設された2つの
バンクを有する第1のデータメモリと、 少なくとも交互に動作可能な並列的に配設された2つの
バンクを有する第2のデータメモリと、 これらのI/Oバッファ、第1および第2のデータメモ
リを相互接続する相互結合網と、 該相互結合網に接続された演算ユニットとを有する画像
コーデック用プロセッサ。
11. The image codec processor according to claim 7, wherein each of said element processors has three stages corresponding to said data input stage, calculation stage, and data output stage. An I / O buffer having a bank, a first data memory having at least two banks arranged in parallel that can operate alternately, and at least two banks arranged in parallel that can operate alternately Processor for image codec having a second data memory having an I / O buffer, an interconnection network interconnecting the first and second data memories, and an arithmetic unit connected to the interconnection network .
【請求項12】前記演算ユニットが、 加算、減算、各種論理演算、大小比較、差分絶対値演算
およびバタフライ演算を行う2入力・2出力の拡張算術
論理演算処理ユニットと、 前記係数メモリからの係数と、該拡張算術論理演算処理
ユニットの出力との乗算を行う乗算ユニットと、 該乗算結果を累積処理する累積ユニットとを有する請求
項11記載の画像コーデック用プロセッサ。
12. An arithmetic arithmetic operation processing unit of 2 inputs and 2 outputs, wherein the arithmetic unit performs addition, subtraction, various logical operations, magnitude comparison, difference absolute value arithmetic and butterfly arithmetic, and a coefficient from the coefficient memory. The image codec processor according to claim 11, further comprising: a multiplication unit that multiplies the output of the extended arithmetic logic operation processing unit, and an accumulation unit that accumulates the multiplication result.
【請求項13】前記拡張算術論理演算処理ユニットの後
段にパイプラインレジスタと、 前記乗算ユニットの後段にパイプラインレジスタと前記
累積ユニットの後段にパイプラインレジスタとが設けら
れ、 前記データ入力ステージ、計算ステージ、および、デー
タ出力ステージからなる3ステージに対応したパイプラ
イン処理を行う請求項12記載の画像コーデック用プロ
セッサ。
13. A pipeline register is provided after the extended arithmetic logic operation processing unit, a pipeline register is provided after the multiplication unit, and a pipeline register is provided after the accumulation unit. The data input stage and the calculation are provided. 13. The image codec processor according to claim 12, which performs pipeline processing corresponding to three stages including a stage and a data output stage.
【請求項14】前記画像コーデック用プロセッサが、そ
れぞれがmxnの画像データで構成される複数のブロッ
クからなるマクロブロックを1処理単位として、複数の
ブロックの画像データにまたがる信号処理と1つのブロ
ック内の画像データについての信号処理とを適応的に、
単一の命令ストリームで多重データストリーム制御処理
する「単一命令ストリーム・多重データストリーム:S
IMD」制御を行う、請求項13記載の画像コーデック
用プロセッサ。
14. The image codec processor uses a macroblock consisting of a plurality of blocks each of which is composed of mxn image data as one processing unit, and performs signal processing over a plurality of blocks of image data and one block. Adaptively with the signal processing of the image data of
Controlling multiple data streams with a single instruction stream "Single instruction stream / multiple data stream: S
14. The image codec processor according to claim 13, which performs "IMD" control.
【請求項15】前記複数のブロックの画像データにまた
がる信号処理が、フィールド画像信号処理であり、 前記1つのブロック内の画像データについての信号処理
が、フレーム画像処理である請求項14記載の画像コー
デック用プロセッサ。
15. The image according to claim 14, wherein the signal processing over the image data of the plurality of blocks is field image signal processing, and the signal processing for the image data in the one block is frame image processing. Codec processor.
【請求項16】前記要素プロセッサの隣接する1対のも
のが、隣接要素プロセッサ間データ転送路で接続され、
前記マクロブロックに対応して設けられ、 これら複数の要素プロセッサに共通に係数を提供する共
通係数メモリが設けられ、 前記複数のブロックの画像データにまたがる信号処理を
行う複数対の要素プロセッサの出力にこれらの演算結果
の加算を行う共通の加算回路を設け、 前記マクロブロック単位の処理画像データが前記要素プ
ロセッサに入力される、請求項15記載の画像コーデッ
ク用プロセッサ。
16. A pair of adjacent element processors are connected by a data transfer path between adjacent element processors,
A common coefficient memory provided corresponding to the macroblocks and commonly providing coefficients to the plurality of element processors is provided, and is output to a plurality of pairs of element processors that perform signal processing across the image data of the plurality of blocks. 16. The image codec processor according to claim 15, further comprising a common adder circuit for adding these calculation results, wherein the processed image data in macro block units is input to the element processor.
JP07476493A 1993-03-31 1993-03-31 Processor for image codec Expired - Fee Related JP3401823B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP07476493A JP3401823B2 (en) 1993-03-31 1993-03-31 Processor for image codec

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP07476493A JP3401823B2 (en) 1993-03-31 1993-03-31 Processor for image codec

Publications (2)

Publication Number Publication Date
JPH06290262A true JPH06290262A (en) 1994-10-18
JP3401823B2 JP3401823B2 (en) 2003-04-28

Family

ID=13556680

Family Applications (1)

Application Number Title Priority Date Filing Date
JP07476493A Expired - Fee Related JP3401823B2 (en) 1993-03-31 1993-03-31 Processor for image codec

Country Status (1)

Country Link
JP (1) JP3401823B2 (en)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08307868A (en) * 1995-04-28 1996-11-22 Nec Corp Moving image decoder
US5929939A (en) * 1995-04-18 1999-07-27 Matsushita Electric Industrial Co., Ltd. Correlation degree operation apparatus, parallel correlation degree operation apparatus and correlation degree operation method
JP2002264406A (en) * 2001-03-08 2002-09-18 Ricoh Co Ltd Image processor
US6621523B2 (en) 1997-10-16 2003-09-16 Fujitsu Limited Video signal processing circuit and computer system
WO2005025230A1 (en) * 2003-08-28 2005-03-17 Hitachi Ulsi Systems Co., Ltd. Image processing device
JP2009505497A (en) * 2005-08-12 2009-02-05 マイクロソフト コーポレーション SIMD type overlap transform based digital media encoding / decoding
JP2009081596A (en) * 2007-09-26 2009-04-16 Sony Corp Image processor, and image processing method
US7779229B2 (en) 2002-02-18 2010-08-17 Nxp B.V. Method and arrangement for bringing together data on parallel data paths
US8275209B2 (en) 2008-10-10 2012-09-25 Microsoft Corporation Reduced DC gain mismatch and DC leakage in overlap transform processing
US8369638B2 (en) 2008-05-27 2013-02-05 Microsoft Corporation Reducing DC leakage in HD photo transform
US8447591B2 (en) 2008-05-30 2013-05-21 Microsoft Corporation Factorization of overlapping tranforms into two block transforms
JP2016506154A (en) * 2012-12-17 2016-02-25 エルジー エレクトロニクス インコーポレイティド Video encoding / decoding method and apparatus using the same

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5929939A (en) * 1995-04-18 1999-07-27 Matsushita Electric Industrial Co., Ltd. Correlation degree operation apparatus, parallel correlation degree operation apparatus and correlation degree operation method
JPH08307868A (en) * 1995-04-28 1996-11-22 Nec Corp Moving image decoder
US6621523B2 (en) 1997-10-16 2003-09-16 Fujitsu Limited Video signal processing circuit and computer system
USRE40327E1 (en) * 1997-10-16 2008-05-20 Toshiro Obitsu Video signal processing circuit and computer system
USRE42296E1 (en) 1997-10-16 2011-04-19 Dosa Advances Llc Video signal processing circuit and computer system
JP4495873B2 (en) * 2001-03-08 2010-07-07 株式会社リコー Image processing device
JP2002264406A (en) * 2001-03-08 2002-09-18 Ricoh Co Ltd Image processor
US7779229B2 (en) 2002-02-18 2010-08-17 Nxp B.V. Method and arrangement for bringing together data on parallel data paths
WO2005025230A1 (en) * 2003-08-28 2005-03-17 Hitachi Ulsi Systems Co., Ltd. Image processing device
JP2009505497A (en) * 2005-08-12 2009-02-05 マイクロソフト コーポレーション SIMD type overlap transform based digital media encoding / decoding
US8036274B2 (en) 2005-08-12 2011-10-11 Microsoft Corporation SIMD lapped transform-based digital media encoding/decoding
JP4906856B2 (en) * 2005-08-12 2012-03-28 マイクロソフト コーポレーション SIMD type overlap transform based digital media encoding / decoding
JP2009081596A (en) * 2007-09-26 2009-04-16 Sony Corp Image processor, and image processing method
US8369638B2 (en) 2008-05-27 2013-02-05 Microsoft Corporation Reducing DC leakage in HD photo transform
US8724916B2 (en) 2008-05-27 2014-05-13 Microsoft Corporation Reducing DC leakage in HD photo transform
US8447591B2 (en) 2008-05-30 2013-05-21 Microsoft Corporation Factorization of overlapping tranforms into two block transforms
US8275209B2 (en) 2008-10-10 2012-09-25 Microsoft Corporation Reduced DC gain mismatch and DC leakage in overlap transform processing
JP2016506154A (en) * 2012-12-17 2016-02-25 エルジー エレクトロニクス インコーポレイティド Video encoding / decoding method and apparatus using the same

Also Published As

Publication number Publication date
JP3401823B2 (en) 2003-04-28

Similar Documents

Publication Publication Date Title
US5594679A (en) Adaptive video signal processing apparatus
US6052706A (en) Apparatus for performing fast multiplication
US5719642A (en) Full-search block matching motion estimation processor
JP3401823B2 (en) Processor for image codec
Dutta et al. A flexible parallel architecture adapted to block-matching motion-estimation algorithms
TWI401958B (en) Programmable video signal processor for video compression and decompression
JPH04128982A (en) Processor element, processing unit, processor, and method of processing operation
US20020021842A1 (en) Circuit and method for performing a two-dimensional transform during the processing of an image
Lo et al. Improved SIMD architecture for high performance video processors
US7756351B2 (en) Low power, high performance transform coprocessor for video compression
Chouliaras et al. A multi-standard video accelerator based on a vector architecture
Furht Processor architectures for multimedia: a survey
JPH0879761A (en) Movement predicting device and movement vector computing device
Deng et al. An efficient VLSI implementation for MC interpolation of AVS standard
KR100225690B1 (en) Correlation degree arithmetic unit parallel correlation degree arithmetic unit, correlation degree arithmetic method
JPH07121687A (en) Processor for image codec and access pattern conversion method
Furht Processor architectures for multimedia
Fernández et al. A high-performance architecture with a macroblock-level-pipeline for MPEG-2 coding
Lai et al. VLSI implementation of the motion estimator with two-dimensional data-reuse
JP3004686B2 (en) Encoding circuit and image encoding device
WO2005025230A1 (en) Image processing device
Husemann et al. New integrated architecture for H. 264 Transform and Quantization hardware implementation
Lee et al. Reconfigurable interpolation architecture for multistandard video decoding
JP2673034B2 (en) Image coding method
Chang et al. An efficient design of H. 264 inter interpolator with bandwidth optimization

Legal Events

Date Code Title Description
FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080229

Year of fee payment: 5

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090228

Year of fee payment: 6

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100228

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees