JP4516020B2 - Image processing device - Google Patents
Image processing device Download PDFInfo
- Publication number
- JP4516020B2 JP4516020B2 JP2005508742A JP2005508742A JP4516020B2 JP 4516020 B2 JP4516020 B2 JP 4516020B2 JP 2005508742 A JP2005508742 A JP 2005508742A JP 2005508742 A JP2005508742 A JP 2005508742A JP 4516020 B2 JP4516020 B2 JP 4516020B2
- Authority
- JP
- Japan
- Prior art keywords
- simd
- processors
- image processing
- computer
- control unit
- 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.)
- Expired - Lifetime
Links
- 230000015654 memory Effects 0.000 claims description 35
- 239000000872 buffer Substances 0.000 claims description 30
- 238000013139 quantization Methods 0.000 claims description 30
- 238000001514 detection method Methods 0.000 claims description 29
- 230000005540 biological transmission Effects 0.000 claims description 4
- 238000000034 method Methods 0.000 description 30
- 230000006835 compression Effects 0.000 description 19
- 238000007906 compression Methods 0.000 description 19
- 238000004364 calculation method Methods 0.000 description 14
- 230000006837 decompression Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 7
- 238000004422 calculation algorithm Methods 0.000 description 6
- 239000011159 matrix material Substances 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 101000969688 Homo sapiens Macrophage-expressed gene 1 protein Proteins 0.000 description 1
- 102100021285 Macrophage-expressed gene 1 protein Human genes 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003278 mimic effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 210000003061 neural cell Anatomy 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Description
本発明は、画像処理装置に関し、特に、MPEG画像圧縮伸張に適用して有効な技術に関するものである。 The present invention relates to an image processing apparatus, and more particularly to a technique effective when applied to MPEG image compression / decompression.
本発明者が検討した技術として、例えば、MPEG(Moving Picture Experts Group)画像圧縮伸張においては、次の技術が考えられる。
ISO/IEC14496−2(MPEG4)、ISO/IEC13818−2(MPEG2)、ISO/IEC11172−2(MPEG1)などの動画圧縮規格では、デジタル化された画像をブロック分割してブロックごとに動きベクトル検出、離散コサイン変換(DCT;Discrete Cosine Transform)、量子化、AC/DC予測を実施し、ハフマン符号化して画像データを圧縮する。
このうち、動きベクトル検出は、画像フレーム中の16×16画素のマクロブロック(シフトブロック)に対して、時間的に前あるいは後の画像フレームのマクロブロック範囲から、現在のフレームと差分がもっとも小さい16×16画素の位置を検出する。そして、その位置ベクトルと差分(フレーム差)を用いて、以後のDCT、量子化、AC/DC予測、ハフマン符号化を実施することにより、高動画圧縮が可能となる。
また、圧縮データの伸張処理は、前記の圧縮と逆の手順、すなわち、ハフマン復号化、AC/DC予測、逆量子化、逆DCTおよび動きベクトル情報から補償画を生成することにより実現する。
また、動画圧縮を含めた画像処理は、比較的単純な計算アルゴリズムの反復が多く、同一命令に対するデータ並列性が大きい。そのため、画像処理の高速化にはSIMD(Single Instruction Multiple Data stream;単一命令複数データ流)型並列計算手法が適することが多い。
SIMD型並列計算アーキテクチャの実現例としては、例えば、汎用型ニューロコンピュータがある。このコンピュータのアーキテクチャは、複数のプロセッサと1つの制御系からなり、制御系が全プロセッサへ共通の命令とデータをブロードキャストして動作する。各プロセッサは、ローカルメモリと演算器(乗算器、ALU、シフタなど)を備えている。制御系は、書き換え可能なプログラムメモリとグローバルメモリを備えている。そして、制御系から全プロセッサにデータを伝達するブロードキャストデータバスと、アドレス信号で指定する任意1つのプロセッサがトライステートバッファを介して制御系にデータを伝達する共通バスとによって、制御系・プロセッサ間のデータの授受が行われる。
制御系がブロードキャストデータバスを介して全プロセッサに伝達するデータとしては、制御系内のメモリ上のデータ、または制御系が共通バスを介して任意の1つのプロセッサから受け取ったデータのうちどちらかを選択することができる。
また、制御系からの命令は、アドレス信号で指定する1つのプロセッサだけを指定して実行させることも可能である。これにより、制御系は各プロセッサのローカルメモリを初期設定することが可能となり、制御系・プロセッサ間の1対N(Nは任意の自然数)のデータ伝送が可能となる。
汎用型ニューロコンピュータにおいて、制御系からブロードキャストされる単一の命令で制御される複数のプロセッサの個々がニューロン(神経細胞)の模倣単位となる。そして、制御系を介して全プロセッサへブロードキャストされる入力データに対して、各プロセッサが個々に持つローカルメモリ内の重み値データを演算することで、ニューラルネットワークの動作を模倣する。すなわち、制御系のプロブラムを書き換えることによって、バックプロパゲーション(誤差逆伝搬)に代表されるニューロアルゴリズムやその他のニューロアルゴリズムなど、あるいはニューロ以外のアルゴリズムを汎用的に並列計算することが可能となる。
前記汎用型ニューロコンピュータを画像処理における動きベクトル検出に適用すると、複数のプロセッサをシフトブロックの計算単位とすることができる。すなわち、1フレーム前の画像上にある動きベクトル検出範囲のシフトブロック(16×16画素の複数)をプロセッサ(複数)のローカルメモリに初期設定する。現フレームの動きベクトル検出画像(16×16画素のマクロブロック)を制御系から全プロセッサへブロードキャストする。各プロセッサは、ブロードキャストされたデータとローカルメモリ内のデータとのフレーム差を演算する。制御系は、全プロセッサのフレーム差を比較することで、最小となるプロセッサに設定したシフトブロックの画像位置を動きベクトル位置として検出することができる。As a technique studied by the present inventor, for example, the following technique can be considered in MPEG (Moving Picture Experts Group) image compression / decompression.
In moving image compression standards such as ISO / IEC14496-2 (MPEG4), ISO / IEC13818-2 (MPEG2), and ISO / IEC11172-2 (MPEG1), a digitized image is divided into blocks, and a motion vector is detected for each block. Discrete cosine transform (DCT), quantization, and AC / DC prediction are performed, and Huffman coding is performed to compress the image data.
Among them, the motion vector detection has the smallest difference from the current frame from the macroblock range of the previous or subsequent image frame with respect to the 16 × 16 pixel macroblock (shift block) in the image frame. A position of 16 × 16 pixels is detected. Then, using the position vector and the difference (frame difference), the subsequent DCT, quantization, AC / DC prediction, and Huffman coding are performed, thereby enabling high video compression.
Further, the decompression process of the compressed data is realized by generating a compensation image from a procedure reverse to the above-described compression, that is, Huffman decoding, AC / DC prediction, inverse quantization, inverse DCT, and motion vector information.
In addition, image processing including moving image compression often involves a relatively simple calculation algorithm, and data parallelism for the same instruction is large. Therefore, a SIMD (Single Instruction Multiple Data stream) type parallel calculation method is often suitable for speeding up image processing.
As an implementation example of the SIMD type parallel computing architecture, for example, there is a general-purpose neuro computer. This computer architecture comprises a plurality of processors and one control system, and the control system operates by broadcasting common instructions and data to all processors. Each processor includes a local memory and an arithmetic unit (multiplier, ALU, shifter, etc.). The control system includes a rewritable program memory and a global memory. A broadcast data bus that transmits data from the control system to all the processors, and a common bus in which any one processor specified by the address signal transmits data to the control system via the tristate buffer, between the control system and the processor. Data exchange is performed.
The data transmitted from the control system to all the processors via the broadcast data bus is either the data on the memory in the control system or the data received by the control system from any one processor via the common bus. You can choose.
In addition, it is possible to execute a command from the control system by designating only one processor designated by an address signal. As a result, the control system can initialize the local memory of each processor, and 1 to N (N is an arbitrary natural number) data transmission between the control system and the processor.
In a general-purpose neurocomputer, each of a plurality of processors controlled by a single command broadcast from a control system is a mimic unit of a neuron (neural cell). The operation of the neural network is imitated by calculating weight value data in the local memory of each processor for input data broadcast to all the processors via the control system. In other words, by rewriting the control system program, it becomes possible to perform general-purpose parallel computation of a neuro-algorithm represented by backpropagation (error back-propagation), other neuro-algorithms, or other algorithms.
When the general-purpose neurocomputer is applied to motion vector detection in image processing, a plurality of processors can be used as calculation units for shift blocks. That is, the motion vector detection range shift block (16 × 16 pixels plural) on the image one frame before is initialized in the local memory of the processor (plurality). The motion vector detection image (16 × 16 pixel macroblock) of the current frame is broadcast from the control system to all processors. Each processor calculates a frame difference between the broadcast data and the data in the local memory. The control system can detect the image position of the shift block set in the smallest processor as a motion vector position by comparing the frame differences of all the processors.
ところで、前記のようなMPEG画像圧縮伸張の技術について、本発明者が検討した結果、以下のようなことが明らかとなった。
MPEG画像圧縮伸張における動きベクトル検出およびDCT・逆DCTのための演算処理量は非常に膨大である。動きベクトル検出において、もっとも単純な「動き補償フレーム間符号化」では、1フレーム前のマクロブロックの周り±15画素が検出範囲とされ、現フレームのマクロブロックとの比較対照となるシフトブロックは961個存在する。したがって、VGA(画素サイズ;640×480画素)についての演算量は278メガ回以上、1秒間に30フレームの処理で換算すると8ギガ回/秒必要となる。また、DCTおよび逆DCTにおいても、VGAサイズ毎秒30フレーム処理換算で0.8ギガ回/秒が必要となる。
以上の処理を半導体集積回路装置の単一の演算器で行う場合、10ギガオーダの動作周波数が必要となり、そのままデジタルビデオカメラなどの低消費電力で駆動する携帯型家電に実装することは非常に困難である。
また、前記汎用型ニューロコンピュータのアーキテクチャを用いて動き検出を行う場合、各プロセッサのローカルメモリにマクロブロックに対する比較画情報を記憶しておき、マクロブロック情報をブロードキャストし、ローカルメモリ内の情報との差分演算を行えば、各プロセッサで並列動作が実現できる。
また、DCT・逆DCT処理においては、各プロセッサのローカルメモリにブロック単位の差分情報を記憶しておき、DCT・逆DCT係数をブロードキャストすることにより、演算の並列化を実現できる。
しかし、上記の動き検出とDCT処理を1つのSIMD型並列計算機のみで実現する場合、動きを検出したプロセッサの差分ブロック情報結果をDCT処理のために他のプロセッサへ移動する必要が生じ、全体の処理性能が低下する。また、動き検出ではプロセッサ内に差分絶対値演算器が必要であり、DCTでは乗算器が必要となる。したがって、動き検出とDCTを1つのSIMD型並列計算機で処理した場合、差分絶対値演算器と乗算器の両方をプロセッサに内蔵して構成する必要があり、全体のゲート規模が増加する。
そこで、本発明の目的は、MPEG画像圧縮伸張などの画像処理において、回路構成が小規模で、かつ高速に動作させることができる画像処理装置を提供するものである。
本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。
すなわち、本発明による画像処理装置は、少なくとも差分演算器とローカルメモリとを含む複数のプロセッサが第1の制御ユニットからの単一命令で動作し、第1の制御ユニットから全プロセッサへデータを伝送するブロードキャストデータバスを備えた第1のSIMD型計算機と、少なくとも乗算器を含む複数のプロセッサが第2の制御ユニットからの単一命令で動作する1つ以上の第2のSIMD型計算機とを接続し、第1のSIMD型計算機は画像処理における動き検出の処理を行い、1つまたは複数の第2のSIMD型計算機は画像処理におけるDCT、逆DCT、量子化または逆量子化の処理を行うものである。
また、上記構成において、第1のSIMD型計算機の演算結果は、第2のSIMD型計算機内のプロセッサへ、バッファを介して並列に伝送され、プロセッサは、それぞれ画像のブロック単位で並列に処理を行う。
また、ブロック単位のデータ伝送ごとに、ブロックの属性を示すヘッダ情報(ブロックのずれのベクトル情報、I・P・Bフレーム情報など)を付加することにより、第2のSIMD型計算機の各プロセッサは各ヘッダ情報を判別してブロックに適した処理を効率的に行える構成とする。
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば、以下のとおりである。
(1)MPEG動画圧縮において、動き検出処理およびDCT・量子化などの処理を各々別のSIMD型計算機で処理するため、各処理に最小限必要な演算器およびローカルメモリで構成することができ、それぞれの処理に必要な性能に見合ったプロセッサ数で画像圧縮処理を実現できる。
(2)動き検出やDCT・量子化などを処理ごとにパイプライン動作で行えるため、性能の向上が図れる。
(3)プロセッサ数が比較的小規模のSIMD型計算機の構成で、MPEGに代表される動画圧縮・伸張などの画像処理が実時間で処理可能となるため、例えばデジタルビデオカメラなどの低消費電力駆動の携帯型家電に実装可能な半導体集積回路(電子部品)で、従来に比べて画素密度の大きい画像処理機能を実現することが可能となる。By the way, as a result of the study of the MPEG image compression / decompression technique as described above, the following has been clarified.
The amount of calculation processing for motion vector detection and DCT / inverse DCT in MPEG image compression / decompression is very large. In the simplest “motion-compensated interframe coding” in motion vector detection, ± 15 pixels around a macroblock one frame before is set as a detection range, and a shift block as a comparison with the macroblock of the current frame is 961. There are. Therefore, the amount of calculation for VGA (pixel size: 640 × 480 pixels) is 278 megatimes or more, and 8 gigaseconds / second is required when converted with processing of 30 frames per second. Also in DCT and inverse DCT, 0.8 giga times / second is required in terms of processing of 30 frames per second for VGA size.
When the above processing is performed by a single arithmetic unit of a semiconductor integrated circuit device, an operating frequency of 10 gigahertz is required, and it is very difficult to mount it directly on a portable home appliance driven with low power consumption such as a digital video camera. It is.
In addition, when motion detection is performed using the architecture of the general-purpose neurocomputer, comparison image information for a macroblock is stored in the local memory of each processor, the macroblock information is broadcast, and the information in the local memory is If the difference calculation is performed, parallel operation can be realized in each processor.
In the DCT / inverse DCT processing, difference information in units of blocks is stored in the local memory of each processor, and the parallel operation can be realized by broadcasting the DCT / inverse DCT coefficients.
However, when the above motion detection and DCT processing are realized by only one SIMD type parallel computer, it becomes necessary to move the difference block information result of the processor that detected the motion to another processor for the DCT processing. Processing performance decreases. In addition, the motion detection requires an absolute difference calculator in the processor, and DCT requires a multiplier. Therefore, when motion detection and DCT are processed by one SIMD type parallel computer, it is necessary to configure both the absolute difference calculator and the multiplier in the processor, which increases the overall gate size.
SUMMARY OF THE INVENTION An object of the present invention is to provide an image processing apparatus capable of operating at a high speed with a small circuit configuration in image processing such as MPEG image compression / decompression.
The above and other objects and novel features of the present invention will be apparent from the description of this specification and the accompanying drawings.
Of the inventions disclosed in the present application, the outline of typical ones will be briefly described as follows.
That is, in the image processing apparatus according to the present invention, a plurality of processors including at least a difference calculator and a local memory operate with a single command from the first control unit, and transmit data from the first control unit to all the processors. Connecting a first SIMD type computer having a broadcast data bus to one or more second SIMD type computers in which a plurality of processors including at least a multiplier operate with a single instruction from a second control unit The first SIMD computer performs motion detection processing in image processing, and one or more second SIMD computers perform DCT, inverse DCT, quantization, or inverse quantization processing in image processing. It is.
In the above configuration, the calculation result of the first SIMD type computer is transmitted in parallel to the processor in the second SIMD type computer via the buffer, and the processor performs processing in parallel in units of image blocks. Do.
In addition, by adding header information (block shift vector information, I / P / B frame information, etc.) indicating block attributes for each block-based data transmission, each processor of the second SIMD computer can Each header information is discriminated and a process suitable for the block can be efficiently performed.
Of the inventions disclosed in the present application, effects obtained by typical ones will be briefly described as follows.
(1) In MPEG video compression, since motion detection processing and processing such as DCT / quantization are processed by separate SIMD type computers, it can be configured with a minimum required arithmetic unit and local memory for each processing, Image compression processing can be realized with the number of processors corresponding to the performance required for each processing.
(2) Since motion detection and DCT / quantization can be performed by pipeline operation for each process, the performance can be improved.
(3) With a configuration of a SIMD computer having a relatively small number of processors, image processing such as moving picture compression / decompression represented by MPEG can be performed in real time, so that, for example, low power consumption of a digital video camera or the like With a semiconductor integrated circuit (electronic component) that can be mounted on a driving portable home appliance, it is possible to realize an image processing function having a higher pixel density than conventional ones.
図1は本発明の一実施の形態の画像処理装置の構成を示すブロック図である。
図2は本発明の一実施の形態の画像処理装置に含まれるSIMD型計算機100の内部構成を示すブロック図である。
図3は本発明の一実施の形態の画像処理装置において、SIMD型計算機100における動き検出処理手順を示す説明図である。
図4は本発明の一実施の形態の画像処理装置において、SIMD型計算機200におけるDCT・量子化処理手順を示す説明図である。
図5は本発明の一実施の形態の画像処理装置において、SIMD型計算機300における逆DCT・逆量子化処理手順を示す説明図である。
図6は本発明の一実施の形態の画像処理装置を応用したビューアーシステムの構成を示すブロック図である。FIG. 1 is a block diagram showing a configuration of an image processing apparatus according to an embodiment of the present invention.
FIG. 2 is a block diagram showing an internal configuration of the
FIG. 3 is an explanatory diagram showing a motion detection processing procedure in the
FIG. 4 is an explanatory diagram showing a DCT / quantization processing procedure in the
FIG. 5 is an explanatory diagram showing an inverse DCT / inverse quantization process procedure in the
FIG. 6 is a block diagram showing a configuration of a viewer system to which the image processing apparatus according to the embodiment of the present invention is applied.
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一部材には同一の符号を付し、その繰り返しの説明は省略する。
まず、図1により、本発明の一実施の形態の画像処理装置の構成の一例を説明する。図1は本発明の一実施の形態の画像処理装置の構成を示すブロック図である。本実施の形態の画像処理装置は、例えば、画像圧縮システムとされ、SIMD型計算機100、SIMD型計算機200、SIMD型計算機300、バッファ401〜406,501〜506,601〜606などから構成されている。
SIMD型計算機100は、演算器(例えば差分演算器)とローカルメモリとを含む複数のプロセッサ101〜116からなるプロセッサアレイ130と、制御ユニット140などから構成されている。
SIMD型計算機200は、演算器(例えば乗算器)とローカルメモリとを含む複数のプロセッサ201〜206からなるプロセッサアレイ230と、制御ユニット240などから構成されている。
SIMD型計算機300は、演算器(例えば乗算器)とローカルメモリとを含む複数のプロセッサ301〜306からなるプロセッサアレイ330と、制御ユニット340などから構成されている。
SIMD型計算機100とSIMD型計算機200とは複数のバッファ401〜406を介して電気的に接続され、SIMD型計算機100内の制御ユニット140の出力が複数のバッファ401〜406に並列に入力し、バッファ401〜406の出力がSIMD型計算機200内の複数のプロセッサ201〜206に並列に入力している。SIMD型計算機200とSIMD型計算機300とは、複数のバッファ501〜506を介して電気的に接続され、SIMD型計算機200内の複数のプロセッサ201〜206の出力が複数のバッファ501〜506に並列に入力し、バッファ501〜506の出力がSIMD型計算機300内の複数のプロセッサ301〜306に並列に入力している。SIMD型計算機300内の複数のプロセッサ301〜306の出力が複数のバッファ601〜606に入力している。また、バッファ501〜506の出力は、AC/DC予測およびハフマン処理へ、バッファ601〜606の出力は補償画生成処理へ伝送されている。
SIMD型計算機100において、プロセッサアレイ130内の各プロセッサ101〜116と制御ユニット140とは、命令バス150、ブロードキャストデータバス160、プロセッサデータ出力共通バス170などにより電気的に接続されている。SIMD型計算機200において、各プロセッサ201〜206と制御ユニット240とは、命令バス250などにより電気的に接続されている。SIMD型計算機300において、各プロセッサ301〜306と制御ユニット340とは、命令バス350などにより電気的に接続されている。
なお、図1では、SIMD型計算機100〜300は3段で構成されているが、2段または4段以上の構成であってもよい。また、SIMD型計算機100内のプロセッサ101〜116の個数は、16個であるが、いくつであってもよい。また、SIMD型計算機200,300内のプロセッサ201〜206,301〜306並びにバッファ401〜406,501〜506,601〜606はそれぞれ6つ並列であるが、並列個数はいくつであってもよい。
図2に、SIMD型計算機100の詳細な構成を示す。SIMD型計算機100は、制御ユニット140、プロセッサアレイ130の他に複数のメモリユニット121〜129などから構成されている。プロセッサ101〜116内のローカルメモリおよびメモリユニット121〜129は、RAM(メモリ)から構成されている。
プロセッサアレイ130内において、各プロセッサ101〜116はマトリクス状に配置され、各プロセッサ101〜116内のローカルメモリは上下左右の他のプロセッサと接続され、演算データを前後左右へシフトできるようになっている。また、プロセッサアレイ130の端に位置するプロセッサ104,108,112,113,114,115,116のローカルメモリは、プロセッサアレイ130の周りに配置されたメモリユニット121〜129と接続され、メモリユニット121〜129とも演算データをシフトできるようになっている。制御ユニット140と全プロセッサ101〜116内の演算器は、命令バス150およびブロードキャストデータバス160を介して接続され、制御ユニット140から全プロセッサ101〜116へ命令およびデータが出力されるようになっている。全プロセッサ101〜116内の演算器の出力は、トライステートバッファとプロセッサデータ出力共通バス170を介して制御ユニット140と接続され、各プロセッサ101〜116内の演算器の演算データが制御ユニット140へ出力されるようになっている。
各メモリユニット121〜129は隣接する他のメモリユニットと接続され、メモリユニット間でデータをシフトできるようになっている。また、各メモリユニット121〜129と制御ユニット140は、メモリ共通バス180を介して接続されている。
さらに、制御ユニット140は、外部制御(メインCPU)および外部メモリ(画像データ)と接続されている。
次に、図1により、本実施の形態の画像処理装置の動作を説明する。まず、SIMD型計算機100では、画像処理における動き検出処理を行う。そして、SIMD型計算機100は、動き検出処理の結果であるブロックごとの差分情報および動きベクトル情報をブロック単位でバッファ401〜406へ出力する。差分情報および動きベクトル情報をバッファ401〜406へ出力した後、SIMD型計算機100は、次のマクロブロックに対する動き検出処理を行う。
SIMD型計算機200では、プロセッサ201〜206により、画像処理におけるDCT演算を並列に行う。この時、プロセッサ201〜206は、バッファ401〜406内のブロックごとの差分情報を取り込み、DCT演算を行う。次に、その演算結果を基に、SIMD型計算機200はプロセッサ201〜206により量子化の処理を並列に行う。各ブロックのDCT演算および量子化処理終了後、プロセッサ201〜206は、動きベクトル情報とともにバッファ501〜506へ処理結果を並列に出力する。バッファ501〜506内の各ブロックの動きベクトル情報および量子化処理後のデータは、AC/DC処理とハフマン処理が行われ、圧縮データとして出力される。
また、バッファ501〜506の各ブロックの動きベクトル情報および量子化処理後のデータは、補償画生成のためにSIMD型計算機300へ出力される。SIMD型計算機300では、プロセッサ301〜306が各ブロックに対して逆量子化の処理を並列に行う。次に、その処理結果を基に、プロセッサ301〜306は、逆DCT演算を並列に行う。各ブロックの逆量子化処理および逆DCT演算終了後、プロセッサ301〜306は、動きベクトル情報とともにバッファ601〜606へ処理結果を並列に出力する。バッファ601〜606内の各ブロックの動きベクトル情報および逆DCT演算後のデータは、補償画生成処理に使用される。
SIMD型計算機100,200,300では、それぞれの処理(動き検出、DCT演算、量子化、逆量子化、逆DCT演算)がバッファ401〜406,501〜506,601〜606を介して行われるため、パイプライン並行処理が可能であり、全体の処理が高速化される。
なお、本実施の形態では、SIMD型計算機200でDCT演算および量子化処理を行い、SIMD型計算機300で逆量子化処理および逆DCT演算を行っているが、1つのSIMD型計算機でDCT演算、量子化処理、逆量子化処理および逆DCT演算を行ってもよく、あるいは、3つ以上のSIMD型計算機でそれぞれの処理を分担して実行させてもよい。
また、バッファ401〜406,501〜506,601〜606には、演算処理結果やブロックのベクトル情報だけではなく、ブロックごとの属性、例えば比較画と差分処理を行ったか否かなどの情報を書き込むことができ、各プロセッサにてその情報を判断して、それぞれ異なる演算処理を実施することが可能となる。
次に、図3により、SIMD型計算機100における動き検出処理の手順を説明する。図3(a)は全体画像に対するマクロブロック単位の動き検出処理順序を示し、図3(b)はマクロブロックごとの処理フローを示す。
図3(a)に示すように、全体画像(現画像)は、マクロブロック(16×16画素)に分割され、マクロブロックごとに処理される。
図3(b)に示すように、マクロブロックは、輝度(Y0,Y1,Y2,Y3)と色差(U,V)とで構成される。また、Y0,Y1,Y2,Y3,U,Vは、それぞれ8×8色要素で構成される。
マクロブロックに分割した後、マクロブロックごとに動き検出処理を実施する。動き検出処理は、比較画との差分を検出することにより行われる。
したがって、比較画との動き検出処理後の情報は、ブロックY0,Y1,Y2,Y3,U,Vごとの差分値情報(Y0’,Y1’,Y2’,Y3’,U’,V’)と動きベクトル情報となる。
上記のブロック情報は、バッファ401〜406へ出力される。
次に図4により、SIMD型計算機200におけるDCT演算および量子化処理の手順を説明する。
各ブロックY0,Y1,Y2,Y3,U,Vの差分値情報(Y0’,Y1’,Y2’,Y3’,U’,V’)と動きベクトル情報は、バッファ401〜406からプロセッサ201〜206へ並列に入力され、並列に演算処理され、処理結果がバッファ501〜506へ並列に出力される。
次に、図5により、SIMD型計算機300における逆量子化処理および逆DCT演算の手順を説明する。
各ブロックY0,Y1,Y2,Y3,U,Vの処理結果と動きベクトル情報は、バッファ501〜506からプロセッサ301〜306へ並列に入力され、並列に演算処理され、処理結果がバッファ601〜606へ並列に出力される。
次に、図6により、本実施の形態の画像処理装置の応用例を説明する。図6は、本実施の形態の画像処理装置をビューアーシステムへ応用した例である。本システムは、例えば、本実施の形態の画像処理装置700、AC/DC予測ハフマン701、画像メモリ702、表示回路703、モニタ704、ROM705、RAM706、CPU707、IF(インターフェイス)回路708などから構成されている。
画像処理装置700は、画像メモリ702およびAC/DC予測ハフマン701と接続され、画像メモリ702は表示回路703と接続され、表示回路703はモニタ704と接続されている。また、AC/DC予測ハフマン701、ROM705、RAM706、CPU707、IF回路708はそれぞれバスを介して接続されている。IF回路708はメモリカード709と接続されている。
本システムは、デジタルムービーカメラなどで撮影したMPEG画像をモニタやTVへ表示するシステムである。
本システムは、MPEGの伸張のみの処理のため、図1で示した前記実施の形態の画像処理装置のうち、SIMD型計算機300のみの構成で逆量子化と逆DCTを処理する。動き検出、DCT、量子化、逆量子化および逆DCTの処理をそれぞれのSIMD型計算機で別々に処理するため、必要な部分のみのSIMD型計算機で画像処理装置を構成することができ、小型化、低消費電力化が可能となる。
したがって、前記実施の形態の画像処理装置によれば、MPEG動画圧縮では、動き検出およびDCT・量子化などの処理を各々別々のSIMD型計算機で処理するため、各処理に必要な演算器およびローカルメモリで構成することができ、それぞれの処理に必要な性能に見合ったプロセッサ数で画像圧縮処理を実現することができる。また、動き検出やDCT・量子化などを処理ごとにパイプライン動作で行うことができるため、性能の向上を図ることができる。
また、プロセッサ数が比較的小規模のSIMD型計算機の構成で、MPEGに代表される動画圧縮・伸張などの画像処理が実時間で処理可能になるため、従来に比べて画素密度の大きい画像処理機能をデジタルビデオカメラなどの低消費電力で駆動する携帯型家電に実装可能な半導体集積回路装置(電子部品)により実現することが可能となる。
以上、本発明者によってなされた発明をその実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
例えば、前記実施の形態においては、MPEGの動画圧縮・伸張について説明したが、これに限定されるものではなく、他の画像圧縮・伸張についても適用可能である。
以上の説明では、主として本発明者によってなされた発明をその属する技術分野である画像処理に適用した場合について説明したが、これに限定されるものではなく、例えば、その他の画像処理、音声処理を始めとする行列演算を含む計算アルゴリズムを処理する電子機器全般などに適用することも可能である。Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings. Note that in all the drawings for explaining the embodiments, the same members are denoted by the same reference numerals, and the repeated explanation thereof is omitted.
First, an example of the configuration of an image processing apparatus according to an embodiment of the present invention will be described with reference to FIG. FIG. 1 is a block diagram showing a configuration of an image processing apparatus according to an embodiment of the present invention. The image processing apparatus according to the present embodiment is, for example, an image compression system, and includes an
The
The
The
The
In the
In FIG. 1, the
FIG. 2 shows a detailed configuration of the
In the
Each
Further, the
Next, the operation of the image processing apparatus according to the present embodiment will be described with reference to FIG. First, the
In the
Further, the motion vector information and the quantized data of each block in the
In the
In this embodiment, the
In addition, in the buffers 401 to 406, 501 to 506, and 601 to 606, not only the calculation processing result and the block vector information but also information for each block, for example, whether or not the difference processing with the comparison image has been performed is written. Each processor can judge the information and perform different arithmetic processing.
Next, the procedure of the motion detection process in the
As shown in FIG. 3A, the entire image (current image) is divided into macroblocks (16 × 16 pixels) and processed for each macroblock.
As shown in FIG. 3B, the macroblock is composed of luminance (Y0, Y1, Y2, Y3) and color difference (U, V). Y0, Y1, Y2, Y3, U, and V are each composed of 8 × 8 color elements.
After dividing into macro blocks, motion detection processing is performed for each macro block. The motion detection process is performed by detecting a difference from the comparison image.
Therefore, the information after the motion detection process with the comparison image is the difference value information (Y0 ′, Y1 ′, Y2 ′, Y3 ′, U ′, V ′) for each block Y0, Y1, Y2, Y3, U, V. And motion vector information.
The block information is output to the buffers 401 to 406.
Next, referring to FIG. 4, the procedure of DCT calculation and quantization processing in the
The difference value information (Y0 ′, Y1 ′, Y2 ′, Y3 ′, U ′, V ′) and motion vector information of each block Y0, Y1, Y2, Y3, U, V is sent from the buffers 401-406 to the processors 201-201. The data is input to 206 in parallel, processed in parallel, and the processing result is output to the
Next, the procedure of inverse quantization processing and inverse DCT calculation in the
The processing results and motion vector information of each block Y0, Y1, Y2, Y3, U, V are input in parallel from the
Next, an application example of the image processing apparatus according to the present embodiment will be described with reference to FIG. FIG. 6 shows an example in which the image processing apparatus according to the present embodiment is applied to a viewer system. This system includes, for example, the
The
This system is a system for displaying MPEG images taken by a digital movie camera or the like on a monitor or TV.
Since this system only performs MPEG decompression processing, the inverse quantization and inverse DCT are processed with the configuration of only the
Therefore, according to the image processing apparatus of the above embodiment, in MPEG video compression, processing such as motion detection and DCT / quantization is processed by separate SIMD type computers. The image compression processing can be realized with the number of processors corresponding to the performance required for each processing. In addition, since motion detection, DCT / quantization, and the like can be performed by pipeline operation for each process, performance can be improved.
In addition, with the configuration of a SIMD computer with a relatively small number of processors, image processing such as moving image compression / decompression represented by MPEG can be performed in real time, so that image processing with a higher pixel density than in the past is possible. The function can be realized by a semiconductor integrated circuit device (electronic component) that can be mounted on a portable home appliance driven with low power consumption such as a digital video camera.
As mentioned above, the invention made by the present inventor has been specifically described based on the embodiment. However, the invention is not limited to the embodiment, and various modifications can be made without departing from the scope of the invention. Needless to say.
For example, in the above embodiment, MPEG video compression / decompression has been described. However, the present invention is not limited to this, and other image compression / decompression can also be applied.
In the above description, the case where the invention mainly made by the present inventor is applied to the image processing that is the technical field to which the present invention is applied has been described. However, the present invention is not limited to this. For example, other image processing and audio processing are performed. The present invention can also be applied to all electronic devices that process calculation algorithms including matrix operations such as the beginning.
以上のように、本発明にかかる画像処理装置は、例えば、デジタルビデオカメラ、ビデオデッキ、情報端末などの動画圧縮・伸張を行う電子機器に用いるのに適している。また、その他の画像処理、音声処理を始めとする行列演算を含む計算アルゴリズムを処理する電子機器全般に応用可能である。 As described above, the image processing apparatus according to the present invention is suitable for use in electronic equipment that performs moving picture compression / decompression, such as a digital video camera, a video deck, and an information terminal. Further, the present invention can be applied to all electronic devices that process calculation algorithms including matrix operations including other image processing and audio processing.
Claims (3)
乗算器を含む複数の第2のプロセッサと、前記第2のプロセッサを制御する第2の制御ユニットと、を有する一つまたは複数の第2のSIMD型計算機と、
前記第1のSIMD型計算機の演算結果を前記第2のSIMD型計算機内の複数の前記第2のプロセッサへ並列に転送し、それぞれがパイプライン並行処理を行う構成に前記第1のSIMD型計算機と前記第2のSIMD型計算機とを接続する複数のバッファと、を備え、
前記第1のSIMD型計算機は、前記第1の制御ユニットからの単一命令により複数の前記第1のプロセッサが並列に動作し、画像処理における動き検出の処理を行い、
前記第2のSIMD型計算機は、前記第2の制御ユニットからの単一命令により複数の前記第2のプロセッサが並列に動作し、画像処理における離散コサイン変換、逆離散コサイン変換、量子化または逆量子化の処理を行うことを特徴とする画像処理装置。A plurality of first processors including a difference calculator and a local memory, a first control unit that controls the first processor, and data transmission from the first control unit to all the first processors A first SIMD computer having a broadcast data bus,
One or a plurality of second SIMD type computers having a plurality of second processors including a multiplier and a second control unit for controlling the second processor;
The first SIMD type computer is configured to transfer the operation result of the first SIMD type computer to the plurality of second processors in the second SIMD type computer in parallel, and each of them performs pipeline parallel processing. And a plurality of buffers for connecting the second SIMD type computer ,
In the first SIMD type computer, a plurality of the first processors operate in parallel by a single instruction from the first control unit, and perform motion detection processing in image processing.
In the second SIMD type computer, a plurality of the second processors operate in parallel by a single instruction from the second control unit, and discrete cosine transform, inverse discrete cosine transform, quantization or inverse in image processing is performed. An image processing apparatus that performs quantization processing.
乗算器を含む複数の第2のプロセッサと、前記第2のプロセッサを制御する第2の制御ユニットと、を有する複数の第2のSIMD型計算機と、
前段の前記第2のSIMD型計算機の演算結果を後段の前記第2のSIMD型計算機内の前記第2のプロセッサへ並列に転送し、前記第1のSIMD型計算機と複数の前記第2のSIMD型計算機がそれぞれパイプライン並行処理を行う構成に前記第1のSIMD型計算機と複数の前記第2のSIMD型計算機とを接続する複数のバッファと、を備え、
前記第1のSIMD型計算機は、前記第1の制御ユニットからの単一命令により複数の前記第1のプロセッサが並列に動作し、画像処理における動き検出の処理を行い、
前記第2のSIMD型計算機は、前記第2の制御ユニットからの単一命令により複数の前記第2のプロセッサが並列に動作し、画像処理における離散コサイン変換、逆離散コサイン変換、量子化または逆量子化の処理を行うことを特徴とする画像処理装置。 A plurality of first processors including a difference calculator and a local memory, a first control unit that controls the first processor, and data transmission from the first control unit to all the first processors A first SIMD computer having a broadcast data bus,
A plurality of second SIMD type computers having a plurality of second processors including a multiplier and a second control unit for controlling the second processor;
The operation result of the second SIMD type computer at the front stage is transferred in parallel to the second processor in the second SIMD type computer at the rear stage , and the first SIMD type computer and the plurality of second SIMD types are transferred. A plurality of buffers for connecting the first SIMD computer and the plurality of second SIMD computers in a configuration in which each type computer performs pipeline parallel processing;
In the first SIMD type computer, a plurality of the first processors operate in parallel by a single instruction from the first control unit, and perform motion detection processing in image processing.
In the second SIMD type computer, a plurality of the second processors operate in parallel by a single instruction from the second control unit, and discrete cosine transform, inverse discrete cosine transform, quantization or inverse in image processing is performed. An image processing apparatus that performs quantization processing.
前記第1のSIMD型計算機と1つまたは複数の前記第2のSIMD型計算機の間で転送されるデータには、ブロック単位のデータ転送ごとにブロックの属性を示すヘッダ情報が付加されていることを特徴とする画像処理装置。The image processing apparatus according to any one of claims 1 and 2 ,
The data transferred between the first SIMD type computer and one or a plurality of the second SIMD type computers is added with header information indicating the attribute of the block for each block-based data transfer. An image processing apparatus.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2003/010977 WO2005025230A1 (en) | 2003-08-28 | 2003-08-28 | Image processing device |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2005025230A1 JPWO2005025230A1 (en) | 2006-11-16 |
JP4516020B2 true JP4516020B2 (en) | 2010-08-04 |
Family
ID=34260082
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005508742A Expired - Lifetime JP4516020B2 (en) | 2003-08-28 | 2003-08-28 | Image processing device |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP4516020B2 (en) |
WO (1) | WO2005025230A1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20180058655A (en) * | 2015-10-23 | 2018-06-01 | 가부시키가이샤 한도오따이 에네루기 켄큐쇼 | Semiconductor device and electronic device |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007166192A (en) * | 2005-12-13 | 2007-06-28 | Toshiba Corp | Information processing device, control method, and program |
KR100863515B1 (en) * | 2006-10-13 | 2008-10-15 | 연세대학교 산학협력단 | Method and Apparatus for decoding video signal |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH117432A (en) * | 1997-06-16 | 1999-01-12 | Hitachi Ltd | Information processor and semiconductor device |
WO2000031658A1 (en) * | 1998-11-26 | 2000-06-02 | Matsushita Electric Industrial Co., Ltd. | Processor and image processing device |
WO2000043868A1 (en) * | 1999-01-20 | 2000-07-27 | Hitachi, Ltd. | Data processor and device for arithmetic operation |
JP2001309386A (en) * | 2000-04-19 | 2001-11-02 | Mitsubishi Electric Corp | Image processor |
JP2002112258A (en) * | 2000-09-27 | 2002-04-12 | Sony Corp | Noise reduction device and its method, and image recording and reproducing device |
JP2002532810A (en) * | 1998-12-15 | 2002-10-02 | インテンシス・コーポレーション | Programmable parallel computer for image processing functions and control |
JP2003125415A (en) * | 2001-07-09 | 2003-04-25 | Samsung Electronics Co Ltd | Image processor, and motion estimation method |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3546437B2 (en) * | 1993-03-31 | 2004-07-28 | ソニー株式会社 | Adaptive video signal processing unit |
JP3401823B2 (en) * | 1993-03-31 | 2003-04-28 | ソニー株式会社 | Processor for image codec |
JPH07121687A (en) * | 1993-10-20 | 1995-05-12 | Sony Corp | Processor for image codec and access pattern conversion method |
JP3631868B2 (en) * | 1996-12-20 | 2005-03-23 | 株式会社東芝 | Motion vector detection apparatus and method |
JPH11252549A (en) * | 1998-02-27 | 1999-09-17 | Toshiba Corp | Image coding/decoding device |
JP2003189312A (en) * | 2001-12-20 | 2003-07-04 | Oki Electric Ind Co Ltd | Moving picture encoder and moving picture decoder |
-
2003
- 2003-08-28 WO PCT/JP2003/010977 patent/WO2005025230A1/en active Application Filing
- 2003-08-28 JP JP2005508742A patent/JP4516020B2/en not_active Expired - Lifetime
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH117432A (en) * | 1997-06-16 | 1999-01-12 | Hitachi Ltd | Information processor and semiconductor device |
WO2000031658A1 (en) * | 1998-11-26 | 2000-06-02 | Matsushita Electric Industrial Co., Ltd. | Processor and image processing device |
JP2002532810A (en) * | 1998-12-15 | 2002-10-02 | インテンシス・コーポレーション | Programmable parallel computer for image processing functions and control |
WO2000043868A1 (en) * | 1999-01-20 | 2000-07-27 | Hitachi, Ltd. | Data processor and device for arithmetic operation |
JP2001309386A (en) * | 2000-04-19 | 2001-11-02 | Mitsubishi Electric Corp | Image processor |
JP2002112258A (en) * | 2000-09-27 | 2002-04-12 | Sony Corp | Noise reduction device and its method, and image recording and reproducing device |
JP2003125415A (en) * | 2001-07-09 | 2003-04-25 | Samsung Electronics Co Ltd | Image processor, and motion estimation method |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20180058655A (en) * | 2015-10-23 | 2018-06-01 | 가부시키가이샤 한도오따이 에네루기 켄큐쇼 | Semiconductor device and electronic device |
KR102477518B1 (en) * | 2015-10-23 | 2022-12-15 | 가부시키가이샤 한도오따이 에네루기 켄큐쇼 | Semiconductor device and electronic device |
KR20230004899A (en) * | 2015-10-23 | 2023-01-06 | 가부시키가이샤 한도오따이 에네루기 켄큐쇼 | Module and electronic device |
KR102609997B1 (en) * | 2015-10-23 | 2023-12-06 | 가부시키가이샤 한도오따이 에네루기 켄큐쇼 | Module and electronic device |
Also Published As
Publication number | Publication date |
---|---|
WO2005025230A1 (en) | 2005-03-17 |
JPWO2005025230A1 (en) | 2006-11-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8396122B1 (en) | Video codec facilitating writing an output stream in parallel | |
JP4336678B2 (en) | Semiconductor device | |
AU2019101272A4 (en) | Method and apparatus for super-resolution using line unit operation | |
KR20130130695A (en) | Method and system for encoding video frames using a plurality of processors | |
CA2192532C (en) | Hybrid software/hardware video decoder for personal computer | |
BR102012025882A2 (en) | METHOD AND DEVICE FOR DETERMINING A BALANCE VALUE OF A BLOCK OF A PREDICTIVE BLOCK VIDEO CODED IN A DATA FLOW | |
US8879629B2 (en) | Method and system for intra-mode selection without using reconstructed data | |
CN111052738B (en) | System and method for delayed post-processing in video coding | |
JP4516020B2 (en) | Image processing device | |
US8861600B2 (en) | Method and system for dynamically configurable DCT/IDCT module in a wireless handset | |
JPH0923422A (en) | Picture encoding and decoding method | |
US7330595B2 (en) | System and method for video data compression | |
Jilani et al. | JPEG image compression using FPGA with Artificial Neural Networks | |
Kim et al. | A real-time MPEG encoder using a programmable processor | |
US10873745B1 (en) | Early intra coding decision (PPH) | |
JP3653799B2 (en) | Image encoding device | |
Asbun et al. | Real-time error concealment in digital video streams using digital signal processors | |
JP2006236325A (en) | Data processor | |
JPH08289290A (en) | Image reproducing device | |
Siddiqui et al. | Investigation of a novel common subexpression elimination method for low power and area efficient DCT architecture | |
JP2005312054A (en) | Image compression apparatus generating and using assistant images for deblocking processing and method thereof | |
CN117939161A (en) | Image decoding method, device, electronic equipment and readable storage medium | |
CN114584779A (en) | Video coding method, device, equipment and medium based on H264 coding algorithm | |
JP4476032B2 (en) | Image compression apparatus, image expansion apparatus, and image processing apparatus | |
JP2005157783A (en) | Processor system equipped with accelerator capable of reserving execution |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060810 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100202 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100405 |
|
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: 20100420 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20100513 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4516020 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130521 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130521 Year of fee payment: 3 |
|
EXPY | Cancellation because of completion of term |