JPH11112990A - Image compression processing unit - Google Patents
Image compression processing unitInfo
- Publication number
- JPH11112990A JPH11112990A JP27241697A JP27241697A JPH11112990A JP H11112990 A JPH11112990 A JP H11112990A JP 27241697 A JP27241697 A JP 27241697A JP 27241697 A JP27241697 A JP 27241697A JP H11112990 A JPH11112990 A JP H11112990A
- Authority
- JP
- Japan
- Prior art keywords
- motion compensation
- processing
- instruction
- image compression
- compensation processing
- 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.)
- Pending
Links
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
Description
【0001】[0001]
【発明の属する技術分野】本発明は、画像圧縮処理装
置、特に動き補償処理を含む画像圧縮処理を行う画像圧
縮処理装置に関する。The present invention relates to an image compression processing apparatus, and more particularly to an image compression processing apparatus for performing image compression processing including motion compensation processing.
【0002】[0002]
【従来の技術】撮像等により得られる画像情報は大きな
情報量を有しており、その伝送や管理が容易でないた
め、通信等に関しては、画像圧縮処理が行われる。2. Description of the Related Art Image information obtained by imaging or the like has a large amount of information, and transmission and management thereof are not easy. Therefore, image compression processing is performed for communication and the like.
【0003】画像圧縮処理として、一般的に使用されて
いる動画圧縮方式には、例えばHシリーズやMPEG等
がある。これらの標準的な画像圧縮処理において、動画
像を効率良く圧縮するための方法として動き補償処理が
ある。この動き補償処理は、一般的に、その処理負荷が
大きい。このため、動き補償処理を含む画像圧縮処理を
行う場合において、テレビ会議等の双方向通信、放送分
野等のリアルタイム処理の必要があるアプリケーション
分野では、専用ハードウェアを使用して画像圧縮処理を
行っている。[0003] As the image compression processing, moving picture compression methods generally used include, for example, H series and MPEG. In these standard image compression processes, there is a motion compensation process as a method for efficiently compressing a moving image. This motion compensation processing generally has a large processing load. For this reason, when performing image compression processing including motion compensation processing, image compression processing is performed using dedicated hardware in an application field that requires real-time processing such as two-way communication such as a video conference or a broadcast field. ing.
【0004】しかしながら、上述の従来技術には、以下
に示す問題点がある。この画像圧縮処理技術において
は、専用ハードウェアは画像圧縮アルゴリズムに専用に
作成されているため、対応する画像圧縮アルゴリズムの
みにしか使用できないという問題点がある。このため、
画像圧縮アルゴリズムに種々の改良や変更が生じると、
ハードウェアを作成し直す必要がある。この結果、画像
アルゴリズムの変更等に対して柔軟で迅速に対応するこ
とができなかった。[0004] However, the above-mentioned prior art has the following problems. In this image compression processing technology, there is a problem that the dedicated hardware is created exclusively for the image compression algorithm, so that it can be used only for the corresponding image compression algorithm. For this reason,
As various improvements and changes occur in the image compression algorithm,
You need to recreate the hardware. As a result, it has not been possible to respond flexibly and quickly to changes in image algorithms and the like.
【0005】そこで、汎用のMPUを使用した画像圧縮
処理技術がある。この技術においては、画像圧縮アルゴ
リズムの改良や変更に対してソフトウェアを置き換える
ことにより、どのような画像圧縮アルゴリズムに対して
も、画像圧縮処理が可能である。この技術は、主に、蓄
積系のデータ生成(CD−ROM,VOD)等の分野で
使用されている。Therefore, there is an image compression processing technology using a general-purpose MPU. In this technique, image compression processing can be performed for any image compression algorithm by replacing software for improvement or change of the image compression algorithm. This technique is mainly used in fields such as data generation (CD-ROM, VOD) of storage systems.
【0006】[0006]
【発明が解決しようとする課題】しかしながら、汎用の
MPUを使用した画像圧縮処理技術においては、画像圧
縮処理を全て汎用MPUで処理しているため、動き補償
処理のような負荷の重い処理に対しては、リアルタイム
の画像圧縮処理を行うことができなかった。However, in the image compression processing technology using a general-purpose MPU, all image compression processing is performed by a general-purpose MPU. Thus, real-time image compression processing cannot be performed.
【0007】本発明は、以上のような問題点を解決する
ためになされたものであり、その目的は、動き補償処理
を含む画像圧縮処理に対して、リアルタイムの処理を行
うことができると共に、画像圧縮処理アルゴリズムの変
更に対して迅速に対応することができる画像圧縮処理装
置を提供することにある。SUMMARY OF THE INVENTION The present invention has been made to solve the above problems, and an object of the present invention is to perform real-time processing on image compression processing including motion compensation processing. An object of the present invention is to provide an image compression processing device capable of promptly responding to a change in an image compression algorithm.
【0008】[0008]
【課題を解決するための手段】以上のような目的を達成
するために、第1の発明に係る画像圧縮処理装置は、複
数の画素からなる画像ブロックに対して、動き補償処理
を含む画像圧縮処理を行う画像圧縮処理装置において、
前記動き補償処理を指示する動き補償処理命令と、前記
画像圧縮処理のうち前記動き補償処理以外の処理を指示
する一般処理命令と、を含む画像圧縮処理命令が格納さ
れた命令格納手段と、前記一般処理命令を解読及び実行
するMPUと、前記動き補償処理命令を解読する動き補
償処理命令解読手段と、解読された動き補償処理命令
を、画像ブロックの各画素に対して、実行する動き補償
処理命令実行手段と、を有するものである。In order to achieve the above object, an image compression processing apparatus according to a first aspect of the present invention provides an image compression processing apparatus including a motion compensation process for an image block including a plurality of pixels. In an image compression processing device that performs processing,
A command storage unit in which an image compression processing instruction including a motion compensation processing instruction for instructing the motion compensation processing and a general processing instruction for instructing processing other than the motion compensation processing in the image compression processing is stored; MPU for decoding and executing general processing instructions, motion compensation processing instruction decoding means for decoding the motion compensation processing instructions, and motion compensation processing for executing the decoded motion compensation processing instructions for each pixel of an image block Instruction execution means.
【0009】第2の発明に係る画像圧縮処理装置は、第
1の発明において、前記画像圧縮処理装置は、画像ブロ
ックが格納されたフレームメモリを有し、前記追加ハー
ドウェア手段は、前記動き補償処理命令を解読する動き
補償処理命令解読手段と、前記フレームメモリ内の画像
ブロックを必要に応じて格納するブロックレジスタと、
前記動き補償処理命令を、画像ブロックの各画素に対し
て、実行する動き補償処理命令実行手段と、を有するも
のである。According to a second aspect of the present invention, in the image compression processing apparatus according to the first aspect, the image compression processing apparatus has a frame memory in which an image block is stored, and the additional hardware unit includes the motion compensation unit. Motion compensation processing instruction decoding means for decoding processing instructions, a block register for storing image blocks in the frame memory as needed,
Means for executing the motion compensation processing command for each pixel of the image block.
【0010】[0010]
【発明の実施の形態】以下、図面に基づいて本発明の好
適な実施の形態について説明する。図1は、本発明の実
施の形態である画像圧縮処理装置を示す模式図である。
画像圧縮処理装置1は、MPU2と追加ハードウェア部
4と命令格納部(図示せず)とを有する。Preferred embodiments of the present invention will be described below with reference to the drawings. FIG. 1 is a schematic diagram showing an image compression processing apparatus according to an embodiment of the present invention.
The image compression processing device 1 has an MPU 2, an additional hardware unit 4, and an instruction storage unit (not shown).
【0011】命令格納部には、動き補償処理を指示する
動き補償処理命令と、画像圧縮処理のうち上記動き補償
処理以外の処理を指示する一般処理命令と、を含む画像
圧縮処理命令が格納されている。この画像圧縮処理命令
は、例えばC言語で書かれたプログラムが機械語等に変
換されて、命令格納部に格納される。なお、上記プログ
ラムはC言語以外で書かれていてもよい。The instruction storage section stores an image compression processing instruction including a motion compensation processing instruction for instructing motion compensation processing and a general processing instruction for instructing processing other than the above-described motion compensation processing in image compression processing. ing. The image compression processing instruction is, for example, a program written in the C language, converted into a machine language or the like, and stored in the instruction storage unit. Note that the program may be written in a language other than C.
【0012】MPU2は、一般処理命令を解読及び実行
する。MPU2は、複数の常識的な算術演算が可能な3
2bitレジスタ(以下、汎用レジスタ)を複数個有す
る。また、MPU2は、レジスタ値アドレッシングや直
接値アドレッシング等のアドレッシングモードが可能で
あると仮定する。The MPU 2 decodes and executes general processing instructions. The MPU 2 is capable of performing a plurality of common-sense arithmetic operations.
It has a plurality of 2-bit registers (hereinafter, general-purpose registers). It is also assumed that the MPU 2 is capable of addressing modes such as register value addressing and direct value addressing.
【0013】追加ハードウェア部4は、動き補償処理命
令解読部と、動き補償処理命令実行部と、ブロックレジ
スタと、を有する。The additional hardware unit 4 has a motion compensation processing instruction decoding unit, a motion compensation processing instruction execution unit, and a block register.
【0014】ブロックレジスタは、フレームメモリに格
納された画像ブロックが必要に応じて格納される。動き
補償処理命令解読部は、動き補償処理命令を解読する。
動き補償処理命令実行部は、解読された動き補償処理命
令を、画像ブロックの各画素に対して実行する。なお、
追加ハードウェア部4には、専用レジスタが設けられて
いる。The block register stores the image blocks stored in the frame memory as needed. The motion compensation processing command decoding unit decodes the motion compensation processing command.
The motion compensation processing command execution unit executes the decoded motion compensation processing command for each pixel of the image block. In addition,
The additional hardware unit 4 is provided with a dedicated register.
【0015】このように構成された画像圧縮処理装置1
においては、先ず、プログラム10が命令格納部にロー
ドされて、機械語に変換された各命令が格納される。そ
して、一般命令はMPU2で解読、実行される。動き補
償処理命令は追加ハードウェア部4で解読、実行され
る。この際、ブロックレジスタには、フレーム1、2の
画像ブロックa,bが格納される。そして、動き補償処
理命令実行部により、上記画像ブロックa,bの各画素
に対して、動き補償処理を実行する。これにより、動き
補償に関する情報resultが出力される。The image compression processing apparatus 1 constructed as described above
In, first, the program 10 is loaded into an instruction storage unit, and each instruction converted into a machine language is stored. Then, the general instruction is decoded and executed by the MPU 2. The motion compensation processing instruction is decoded and executed by the additional hardware unit 4. At this time, the block registers store the image blocks a and b of the frames 1 and 2. Then, a motion compensation process is executed for each pixel of the image blocks a and b by the motion compensation process command execution unit. As a result, information "result" relating to motion compensation is output.
【0016】本実施の形態においては、画像圧縮処理を
指示する画像圧縮処理命令を、処理負荷の重さにより、
動き補償処理命令と、それ以外の一般処理命令と、に分
けて命令格納部に格納している。そして、処理負荷の重
い動き補償処理命令は、動き補償命令解読部及び動き補
償命令実行部により、解読及び実行している。即ち、こ
れらの動き補償命令解読部及び動き補償命令実行部が専
用ハードウェアとなる。このため、動き補償処理を含む
画像圧縮処理についてもリアルタイム処理が可能とな
る。In the present embodiment, an image compression processing command for instructing image compression processing is issued according to the weight of the processing load.
The motion compensation processing instruction and other general processing instructions are stored separately in the instruction storage unit. The motion compensation processing command having a heavy processing load is decoded and executed by the motion compensation command decoding unit and the motion compensation command execution unit. That is, the motion compensation command decoding unit and the motion compensation command execution unit are dedicated hardware. For this reason, real-time processing is also possible for image compression processing including motion compensation processing.
【0017】一方、処理負荷の軽い一般処理命令は、汎
用のMPU2により解読及び実行している。このため、
従来技術のように画像圧縮アルゴリズムを達成するため
のハードウェア構成を全てそのアルゴリズムに専用のも
のにしないで、動き補償命令解読部及び動き補償命令実
行部のみを専用のハードウェアとしている。これによ
り、ソフトウェアを変更して、動き補償処理命令と一般
処理命令とを適切に組み合わせ直すことにより、画像圧
縮アルゴリズムの変更に対しても、柔軟で迅速に対応す
ることができる。On the other hand, general processing instructions with a light processing load are decoded and executed by the general-purpose MPU 2. For this reason,
Unlike the prior art, the hardware configuration for achieving the image compression algorithm is not entirely dedicated to the algorithm, but only the motion compensation instruction decoding unit and the motion compensation instruction execution unit are dedicated hardware. Thus, by changing the software and appropriately recombining the motion compensation processing instruction and the general processing instruction, it is possible to flexibly and quickly respond to a change in the image compression algorithm.
【0018】なお、本実施の形態においては、動き補償
処理に必要な命令は、後述する追加命令セットに分類、
整理される。追加命令セットとは、追加ハードウェア部
4に対する命令である。この際、追加命令セットに必要
となる追加レジスタセットも分類、整理される。追加レ
ジスタセットとは、専用レジスタ及びブロックレジスタ
に対する命令である。以下、追加レジスタセット、追加
命令セットについて説明する。In the present embodiment, the instructions necessary for the motion compensation processing are classified into an additional instruction set described later.
Be organized. The additional instruction set is an instruction for the additional hardware unit 4. At this time, additional register sets required for the additional instruction set are also classified and arranged. The additional register set is an instruction for the dedicated register and the block register. Hereinafter, the additional register set and the additional instruction set will be described.
【0019】(追加レジスタセット及び追加命令セット
の説明)なお、以下で示す型char,short,intはそれぞれ
符号付きの8ビット、16ビット、32ビットの整数と
する。そして、これらの型char,short,intにそれぞれun
signedが付された場合、その同一の長さの符号がない整
数を意味するものとする。(Description of Additional Register Set and Additional Instruction Set) The types char, short, and int shown below are signed 8-bit, 16-bit, and 32-bit integers, respectively. And these types char, short, int respectively un
When signed, it means an unsigned integer of the same length.
【0020】先ず、追加レジスタセットについて説明す
る。なお、汎用レジスタは、Rx(x=0..mー1)
と記載する。First, the additional register set will be described. The general-purpose register is Rx (x = 0..m-1)
It is described.
【0021】[1]追加レジスタセット (1)専用レジスタセット 専用レジスタを指定する場合、プログラム上でCRx
(x=0..mー1)と記載する。そして、このCRx
を利用した命令として以下のものがある。[1] Additional register set (1) Dedicated register set When a dedicated register is designated, CRx
(X = 0 ... m-1). And this CRx
There are the following instructions that use.
【0022】(a)MODE(CR0) これは、ブロックレジスタの関連命令が同期的(0)/
非同期的(1)に動作するか否かを示す。型は、unsign
ed intである。(A) MODE (CR0) This is because the related instruction of the block register is synchronous (0) /
Indicates whether to operate asynchronously (1). Type is unsign
ed int.
【0023】(b)STAT(CR1) これは非同期モードで追加部分の動作(0)/動作中
(1)を示す。型はunsigned intである。(B) STAT (CR1) This indicates operation (0) / operation (1) of the additional part in the asynchronous mode. The type is unsigned int.
【0024】(c)PIX_SIZE(CR2) これは各画素のバイト単位での大きさ(1、2、4)を
示す。この型はunsigned intである。(C) PIX_SIZE (CR2) This indicates the size (1, 2, 4) of each pixel in byte units. This type is unsigned int.
【0025】(d)FRAME_WIDFH(CR3) ブロックの辺(正方形)の長さ(画素数)を示す。この
型はunsigned intである。(D) FRAME_WIDFH (CR3) Indicates the length (number of pixels) of the side (square) of the block. This type is unsigned int.
【0026】(e)BLOCK_SIZE(CR4) これはフレームメモリの水平方向の長さを示す。この型
はunsigned intである。(E) BLOCK_SIZE (CR4) This indicates the horizontal length of the frame memory. This type is unsigned int.
【0027】(2)ブロックレジスタセット ブロックレジスタを指定する場合、プログラム上でBL
OCKx(x=0..n−1)と記載する。これはフレ
ーム内のメモリを格納することを示し、型はint(16*
16)である。(2) Block register set When a block register is designated, BL
OCKx (x = 0 ... n-1). This indicates that the memory in the frame is stored, and the type is int (16 *
16).
【0028】次に、追加命令セットについて説明する。Next, the additional instruction set will be described.
【0029】[2]追加命令セット 以下において演算はC言語的に記載する。また、以下で
PIX_TYPE(PIX_SIZE)の型は以下の通り
である。[2] Additional instruction set In the following, operations are described in C language. In the following, the type of PIX_TYPE (PIX_SIZE) is as follows.
【0030】char (PIX_TYPEが1のと
き) short (PIX_TYPEが1のとき) int (PIX_TYPEが1のとき) (1)専用レジスタロード/ストア命令 (a)LD CRx,Ry (x=0...4,y=
0...m−1) これは汎用レジスタに格納されたデータ等を専用レジス
タに代入する命令である。この命令は、CRx=Ryで
C言語プログラム上に示される。Char (when PIX_TYPE is 1) short (when PIX_TYPE is 1) int (when PIX_TYPE is 1) (1) Dedicated register load / store instruction (a) LD CRx, Ry (x = 0 ... x) 4, y =
0. . . m-1) This is an instruction for substituting data or the like stored in a general-purpose register into a dedicated register. This instruction is indicated on the C language program by CRx = Ry.
【0031】(b)LD Ry,CRx (x=
0...4,y=0...m−1) この命令は専用レジスタに格納されたデータ等を汎用レ
ジスタに代入するものである。これは、Ry=CRxで
C言語プログラム上に示される。(B) LD Ry, CRx (x =
0. . . 4, y = 0. . . m-1) This instruction is for substituting data or the like stored in a dedicated register into a general-purpose register. This is indicated on the C language program with Ry = CRx.
【0032】(2)ブロックレジスタロード/ストア命
令 (a)LD BLOCKx, (addr) これはブロックレジスタにアドレスaddrからBLO
CK_SIZE*BLOCK_SIZE画素分のデータを
代入する命令である。これをC言語を用いた演算で示す
と、図2(a)に示すプログラムリストで示される。(2) Block register load / store instruction (a) LD BLOCKx, (addr) This is a block register from an address addr to BLO.
CK_SIZE * BLOCK_SIZE An instruction for substituting data for pixels. When this is shown by an operation using the C language, it is shown by a program list shown in FIG.
【0033】(b)LD BLOCKx, (Rx) これはブロックレジスタにRxで指定されたアドレスか
らBLOCK_SIZE*BLOCK_SIZE画素分の
データを代入する命令である。これをC言語を用いた演
算で示すと、図2(b)に示すプログラムリストで示さ
れる。(B) LD BLOCKx, (Rx) This is an instruction for substituting data for BLOCK_SIZE * BLOCK_SIZE pixels from the address specified by Rx into the block register. If this is shown by an operation using the C language, it is shown by a program list shown in FIG.
【0034】(c)ST (addr),BLOCKx これはブロックレジスタからアドレス addrへBL
OCK_SIZE*BLOCK_SIZE画素分のデータ
を代入する命令である。これをC言語を用いた演算で示
すと、図3(a)に示すプログラムリストで示される。(C) ST (addr), BLOCKx This is BL from the block register to the address addr.
OCK_SIZE * BLOCK_SIZE This is an instruction for substituting data for pixels. When this is shown by an operation using the C language, it is shown by a program list shown in FIG.
【0035】(d)ST (Rx),BLOCKx これはブロックレジスタからアドレス addrへBL
OCK_SIZE*BLOCK_SIZE画素分のデータ
を代入する命令である。これをC言語を用いた演算で示
すと、図3(b)に示すプログラムリストで示される。(D) ST (Rx), BLOCKx This is BL from the block register to the address addr.
OCK_SIZE * BLOCK_SIZE This is an instruction for substituting data for pixels. If this is shown by an operation using the C language, it is shown by a program list shown in FIG.
【0036】(e)PACK BLOCKx,(add
r) これはブロックレジスタにフレームメモリ内のアドレス
addrから辺の長さがBLOCK_SIZE(画素)
の画像ブロックのデータを代入する命令である。これを
C言語を用いた演算で示すと、図4(a)に示すプログ
ラムリストで示される。(E) PACK BLOCKx, (add
r) The length of the side is BLOCK_SIZE (pixel) from the address addr in the frame memory in the block register.
Is an instruction for substituting the data of the image block. When this is shown by an operation using the C language, it is shown by a program list shown in FIG.
【0037】(f)PACK BLOCKx,(Ry) これはブロックレジスタにフレームメモリ内のアドレス
Ryから辺の長さがBLOCK_SIZE(画素)の画
像ブロックのデータを代入する命令である。これをC言
語を用いた演算で示すと、図4(b)に示すプログラム
リストで示される。(F) PACK BLOCKx, (Ry) This is an instruction for substituting the data of the image block whose side length is BLOCK_SIZE (pixel) from the address Ry in the frame memory into the block register. If this is shown by an operation using the C language, it is shown by a program list shown in FIG.
【0038】(g)UNPACK (addr),BL
OCKx これはブロックレジスタからフレームメモリ内のアドレ
スaddrに辺の長さがBLOCK_SIZE(画素)
の画像ブロックのデータを代入する命令である。これを
C言語を用いた演算で示すと、図5(a)に示すプログ
ラムリストで示される。(G) UNPACK (addr), BL
OCKx This means that the side length is BLOCK_SIZE (pixel) from the block register to the address addr in the frame memory.
Is an instruction for substituting the data of the image block. When this is shown by an operation using the C language, it is shown by a program list shown in FIG.
【0039】(h)UNPACK (Ry),BLOC
Kx これはブロックレジスタからフレームメモリ内のアドレ
スRyに辺の長さがBLOCK_SIZE(画素)の画
像ブロックのデータを代入する命令である。これをC言
語を用いた演算で示すと、図5(b)に示すプログラム
リストで示される。(H) UNPACK (Ry), BLOC
Kx This is an instruction for substituting the data of the image block whose side length is BLOCK_SIZE (pixel) from the block register to the address Ry in the frame memory. When this is shown by an operation using the C language, it is shown by a program list shown in FIG.
【0040】(3)ブロックレジスタ演算処理命令セッ
ト 先ず、以下に示すプログラムリストにおいて示されるP
IX_TYPE(PIX_SIZE)の型、MAX,MI
Nの定義について示す。(3) Block register operation processing instruction set First, P shown in the following program list
IX_TYPE (PIX_SIZE) type, MAX, MI
The definition of N will be described.
【0041】PIX_TYPE(PIX_SIZE)の型
は以下の通りである。The type of PIX_TYPE (PIX_SIZE) is as follows.
【0042】char (PIX_TYPEが1のと
き) short (PIX_TYPEが2のとき) int (PIX_TYPEが4のとき) また、MAX,MINは、 (MIN、MAX)=(−128、127) ∴(PIX_TYPE=1のとき) (MIN、MAX)=(−32768、32767) ∴(PIX_TYPE=2のとき) (MIN、MAX)=(−2147483648、21
47483647) ∴(PIX_TYPE=4のとき) として、次のようにCLIP(x),UCLIP(x)
を定義する。Char (when PIX_TYPE is 1) short (when PIX_TYPE is 2) int (when PIX_TYPE is 4) MAX and MIN are (MIN, MAX) = (− 128, 127) ∴ (PIX_TYPE = (When 1) (MIN, MAX) = (− 32768, 32767) ∴ (when PIX_TYPE = 2) (MIN, MAX) = (− 2147483648, 21)
47483647) ∴ (when PIX_TYPE = 4) as CLIP (x), UCLIP (x) as follows:
Is defined.
【0043】#define CLIP(x):
(((x)>MAX)?MAX:(((x>MAX)?
MAX:(((X)<MIN)?MIN:(x))) #define UCLIP(x): (((x)>M
AX)?MAX:(x)) 次に、各ブロックレジスタ演算命令セットを以下に示
す。#Define CLIP (x):
(((X)> MAX)? MAX: (((x> MAX)?
MAX: (((X) <MIN)? MIN: (x))) #define UCLIP (x): (((x)> M
AX)? MAX: (x)) Next, each block register operation instruction set is shown below.
【0044】(a)DIFF BLOCKx,BLOC
Ky,BLOCKz これは画像ブロック間の差分を計算する命令である。こ
れをC言語を用いた演算で示すと、図6(a)に示すプ
ログラムリストで示される。(A) DIFF BLOCKx, BLOC
Ky, BLOCKz This is an instruction for calculating a difference between image blocks. When this is shown by an operation using the C language, it is shown by a program list shown in FIG.
【0045】(b)SQ BLOCKx,BLOCKy これは画像ブロックの各画素の2乗を計算する命令であ
る。これをC言語を用いた演算で示すと、図6(b)に
示すプログラムリストで示される。(B) SQ BLOCKx, BLOCKy This is an instruction for calculating the square of each pixel of the image block. If this is shown by an operation using the C language, it is shown by a program list shown in FIG.
【0046】(c)ABS BLOCKx,BLOCK
y これは画像ブロックの各画素の絶対値を計算する命令で
ある。これをC言語を用いた演算で示すと、図7(a)
に示すプログラムリストで示される。(C) ABS BLOCKx, BLOCK
y This is a command to calculate the absolute value of each pixel of the image block. If this is shown by an operation using the C language, FIG.
Is shown in the program list.
【0047】(d)SUM Rx,BLOCKy これは画像ブロック内の各画素の総和を計算する命令で
ある。これをC言語を用いた演算で示すと、図7(b)
に示すプログラムリストで示される。(D) SUM Rx, BLOCKy This is a command for calculating the sum of each pixel in the image block. If this is shown by an operation using the C language, FIG.
Is shown in the program list.
【0048】(e)ADDK BLOCKx BLOC
Ky Rz これは画像ブロック内の各画素に定数値を加える命令で
ある。これをC言語を用いた演算で示すと、図8(a)
に示すプログラムリストで示される。(E) ADDK BLOCKx BLOC
Ky Rz This is an instruction to add a constant value to each pixel in the image block. When this is shown by an operation using the C language, FIG.
Is shown in the program list.
【0049】なお、高速化のためには適切なフレームメ
モリに関するキャシング機構が必要である。ブロックレ
ジスタロード/ストア命令に関するアクセス順序は通常
ラスタスキャンの順番であると仮定できる。このため、
次にどのようなデータをブロックレジスタにLOAD,
PACKするかはある程度見当がつく(例えばブロック
のちょうど右側の部分や下の部分)。但し、PIX_S
IZE,FRAME_WIDTH,BLOCK_SIZE
に変更があれば、キャッシュはフラッシュされる必要が
ある。For speeding up, a caching mechanism for an appropriate frame memory is required. The access order for block register load / store instructions can usually be assumed to be the order of the raster scan. For this reason,
Next, what data is loaded into the block register,
You have some clue as to whether to PACK (e.g., just to the right or below the block). However, PIX_S
SIZE, FRAME_WIDTH, BLOCK_SIZE
If there is a change in the cache, the cache needs to be flushed.
【0050】以上のような各追加レジスタセット及び各
追加命令セットを用いることにより、動き補償処理を分
類及び整理できる。そして、これらの追加レジスタセッ
ト及び追加命令セットを用いた画像圧縮処理プログラム
を、命令格納部に格納して追加ハードウェア部4で解
読、実行することにより、動き補償処理を少ない命令数
で実行することが可能となる。By using each of the additional register sets and each of the additional instruction sets as described above, the motion compensation processing can be classified and arranged. Then, the image compression processing program using the additional register set and the additional instruction set is stored in the instruction storage unit, decoded and executed by the additional hardware unit 4, thereby executing the motion compensation processing with a small number of instructions. It becomes possible.
【0051】そして、上述の画像圧縮処理装置と、上述
の追加レジスタセット及び追加命令セットを使用した画
像圧縮処理プログラムと、を利用した動き補償処理例に
ついて以下に示す。An example of a motion compensation process using the above-described image compression processing device and an image compression processing program using the above-described additional register set and additional instruction set will be described below.
【0052】(動き補償処理例)H.261やMPEG
等における動き補償処理では、画像ブロックに対して符
号化しようとして何らかの検索アルゴリズムで何らかの
評価関数が(近似的に)最小になるように前のフレーム
で検索処理を行うものである。この際、検索アルゴリズ
ムは、現画像ブロックの位置に対応する前フレーム内で
の前画像ブロックの近傍の全画素数検索とし、評価関数
は絶対差分和とする。なお、本方式ではより複雑なサー
チアルゴリズム、評価関数を用いることも可能である。
図9は、上記検索アルゴリズムを適用したC言語プログ
ラムのリストを示す図であり、図10は、動き補償処理
に使用する現在フレーム及び1つ前のフレームを示す図
である。図9に示すプログラムで用いられている変数の
定義を以下に示す。(Example of motion compensation processing) 261 and MPEG
In the motion compensation processing in, for example, a search processing is performed in a previous frame so that an evaluation function is minimized (approximately) by a search algorithm in an attempt to encode an image block. At this time, the search algorithm is to search for the total number of pixels near the previous image block in the previous frame corresponding to the position of the current image block, and the evaluation function is the sum of absolute differences. In this method, a more complicated search algorithm and evaluation function can be used.
FIG. 9 is a diagram showing a list of C language programs to which the above search algorithm is applied, and FIG. 10 is a diagram showing a current frame and a previous frame used for the motion compensation processing. The definitions of the variables used in the program shown in FIG. 9 are shown below.
【0053】prev_frame:1つ前のフレームのアドレス curr_frame:現在のフレームのアドレス x,y:現在のブロックの左角の位置 x_min,y_min,x_max,y_max:前のフレームでのサーチ範
囲の上限、下限のx、y座標 R0,R1,R2:MPUの汎用レジスタで、今のところC言語
は使用していない。Prev_frame: the address of the previous frame curr_frame: the address of the current frame x, y: the position of the left corner of the current block x_min, y_min, x_max, y_max: the upper and lower limits of the search range in the previous frame X, y coordinates R0, R1, R2: General purpose registers of MPU, C language is not used at present.
【0054】width:フレームの幅 size:画像ブロックの幅 pixel_size:画素の大きさ e:画像ブロック間の差分値 上述の処理により、図9に示す位置x_pos,y_posに、そ
れぞれ、所定範囲内での絶対差分和値が最小となる位置
が算出される。Width: the width of the frame size: the width of the image block pixel_size: the size of the pixel e: the difference value between the image blocks By the above processing, the positions x_pos and y_pos shown in FIG. The position at which the sum of absolute differences is minimum is calculated.
【0055】本実施の形態においては、最も時間のかか
る動き補償処理の高速化を図ることができる。そして、
その他の処理については、MPUの一般処理命令で実行
するため、種々の画像圧縮処理アルゴリズムや画像圧縮
処理アルゴリズムの変更に対しても、柔軟で迅速に対応
可能となる。In this embodiment, it is possible to speed up the most time-consuming motion compensation processing. And
The other processing is executed by the general processing instruction of the MPU, so that it is possible to flexibly and quickly respond to various image compression processing algorithms and changes in the image compression processing algorithm.
【0056】[0056]
【発明の効果】請求項1に記載の発明によれば、処理負
荷の重い動き補償処理命令は、専用のハードウェアとし
ての追加ハードウェア手段により、解読及び実行してい
る。このため、動き補償処理を含む画像圧縮処理につい
てもリアルタイム処理が可能となる。一方、処理負荷の
軽い一般処理命令は、汎用のMPUにより解読及び実行
している。これにより、ソフトウェアを変更して、動き
補償処理命令と一般処理命令とを適切に組み合わせ直す
ことにより、画像圧縮アルゴリズムの変更に対しても、
柔軟で迅速に対応することができる。According to the first aspect of the present invention, a motion compensation processing instruction having a heavy processing load is decoded and executed by additional hardware means as dedicated hardware. For this reason, real-time processing is also possible for image compression processing including motion compensation processing. On the other hand, general processing instructions with a light processing load are decoded and executed by a general-purpose MPU. As a result, by changing the software and appropriately recombining the motion compensation processing instruction and the general processing instruction, it is possible to change the image compression algorithm.
It can be flexible and respond quickly.
【0057】また、請求項2に記載の発明によれば、追
加ハードウェア手段は、動き補償処理解読手段、動き補
償処理実行手段及びブロックレジスタに分けることがで
きる。これにより、画像圧縮アルゴリズムにおいて、例
えば動き補償処理解読に関する部分のみの変更の場合、
追加ハードウェア手段に関する部分を全部変更するので
はなく、補償処理解読に関する部分だけを変更すればよ
い。According to the second aspect of the present invention, the additional hardware means can be divided into a motion compensation processing decoding means, a motion compensation processing execution means, and a block register. Thus, in the image compression algorithm, for example, in the case of changing only the portion related to the motion compensation decoding,
Instead of changing all the parts relating to the additional hardware means, only the parts relating to the decoding of the compensation processing need be changed.
【図1】 本発明の実施の形態である画像圧縮処理装置
を示す模式図である。FIG. 1 is a schematic diagram showing an image compression processing apparatus according to an embodiment of the present invention.
【図2】 (a),(b)は追加命令セットのうち、ブ
ロックレジスタロード/ストア命令を示すプログラムリ
ストを示す図である。FIGS. 2A and 2B are diagrams showing a program list indicating a block register load / store instruction in an additional instruction set.
【図3】 同じく、(a),(b)は追加命令セットの
うち、ブロックレジスタロード/ストア命令を示すプロ
グラムリストを示す図である。FIGS. 3A and 3B are diagrams showing a program list indicating a block register load / store instruction in an additional instruction set.
【図4】 同じく、(a),(b)は追加命令セットの
うち、ブロックレジスタロード/ストア命令を示すプロ
グラムリストを示す図である。4A and 4B are diagrams showing a program list indicating a block register load / store instruction in an additional instruction set.
【図5】 同じく、(a),(b)は追加命令セットの
うち、ブロックレジスタロード/ストア命令を示すプロ
グラムリストを示す図である。FIGS. 5A and 5B are diagrams showing program lists indicating block register load / store instructions in an additional instruction set.
【図6】 (a)は、ブロックレジスタ演算命令セット
のうち、画像ブロック間の差分を計算する命令を示すプ
ログラムリストを示す図であり、(b)は同じくブロッ
クレジスタ演算命令セットのうち、画像ブロックの各画
素の2乗を計算する命令を示すプログラムリストを示す
図である。FIG. 6A is a diagram showing a program list indicating an instruction for calculating a difference between image blocks in the block register operation instruction set, and FIG. 6B is a diagram showing an image in the block register operation instruction set. FIG. 4 is a diagram illustrating a program list indicating an instruction for calculating a square of each pixel of a block.
【図7】 (a)は、ブロックレジスタ演算命令セット
のうち、画像ブロック間の各画素の絶対値を計算する命
令を示すプログラムリストを示す図であり、(b)は同
じくブロックレジスタ演算命令セットのうち、画像ブロ
ック内の各画素の総和を計算する命令を示すプログラム
リストを示す図である。FIG. 7A is a diagram showing a program list indicating an instruction for calculating an absolute value of each pixel between image blocks in a block register operation instruction set, and FIG. FIG. 6 is a diagram showing a program list indicating an instruction for calculating the sum of each pixel in an image block.
【図8】 ブロックレジスタ演算命令セットのうち、画
像ブロック内の各画素に定数値を加える命令を示すプロ
グラムリストを示す図である。FIG. 8 is a diagram showing a program list indicating an instruction of adding a constant value to each pixel in an image block in a block register operation instruction set.
【図9】 動き補償処理を行うためのプログラムリスト
を示す図である。FIG. 9 is a diagram showing a program list for performing a motion compensation process.
【図10】 動き補償処理に使用する現在フレーム及び
1つ前のフレームを示す図である。FIG. 10 is a diagram illustrating a current frame and a previous frame used for a motion compensation process.
1 画像圧縮処理装置、2 MPU、4 追加ハードウ
ェア部、10 プログラム。1 image compression processor, 2 MPU, 4 additional hardware units, 10 programs.
Claims (2)
て、動き補償処理を含む画像圧縮処理を行う画像圧縮処
理装置において、 前記動き補償処理を指示する動き補償処理命令と、前記
画像圧縮処理のうち前記動き補償処理以外の処理を指示
する一般処理命令と、を含む画像圧縮処理命令が格納さ
れた命令格納手段と、 前記一般処理命令を解読及び実行するMPUと、 前記動き補償処理命令を解読及び実行する追加ハードウ
ェア手段と、を有することを特徴とする画像圧縮処理装
置。An image compression processing apparatus for performing image compression processing including motion compensation processing on an image block including a plurality of pixels, comprising: a motion compensation processing instruction for instructing the motion compensation processing; An instruction storage unit storing an image compression processing instruction including a general processing instruction instructing processing other than the motion compensation processing, an MPU for decoding and executing the general processing instruction, and decoding the motion compensation processing instruction And an additional hardware means for executing the image compression processing apparatus.
が格納されたフレームメモリを有し、 前記追加ハードウェア手段は、前記動き補償処理命令を
解読する動き補償処理命令解読手段と、前記フレームメ
モリ内の画像ブロックを必要に応じて格納するブロック
レジスタと、前記動き補償処理命令を、画像ブロックの
各画素に対して、実行する動き補償処理命令実行手段
と、を有することを特徴とする請求項1に記載の画像圧
縮処理装置。2. The image compression processing device has a frame memory in which an image block is stored, wherein the additional hardware means is a motion compensation processing instruction decoding means for decoding the motion compensation processing instruction, and the frame memory. A block register for storing image blocks in the image block as needed, and a motion compensation processing instruction executing means for executing the motion compensation processing instruction for each pixel of the image block. 2. The image compression processing device according to 1.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP27241697A JPH11112990A (en) | 1997-10-06 | 1997-10-06 | Image compression processing unit |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP27241697A JPH11112990A (en) | 1997-10-06 | 1997-10-06 | Image compression processing unit |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH11112990A true JPH11112990A (en) | 1999-04-23 |
Family
ID=17513612
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP27241697A Pending JPH11112990A (en) | 1997-10-06 | 1997-10-06 | Image compression processing unit |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH11112990A (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100352295B1 (en) * | 2000-07-24 | 2002-09-11 | 주식회사 보람씨앤씨 | The system for realtime transfering multimedia data |
US6970642B1 (en) | 1999-09-12 | 2005-11-29 | Sony Computer Entertainment Inc. | Method and electronic device for decoding compressed image data and auxiliary recording device |
JP2006246631A (en) * | 2005-03-03 | 2006-09-14 | Shin Caterpillar Mitsubishi Ltd | Control circuit of electric hydraulic work machine |
-
1997
- 1997-10-06 JP JP27241697A patent/JPH11112990A/en active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6970642B1 (en) | 1999-09-12 | 2005-11-29 | Sony Computer Entertainment Inc. | Method and electronic device for decoding compressed image data and auxiliary recording device |
KR100352295B1 (en) * | 2000-07-24 | 2002-09-11 | 주식회사 보람씨앤씨 | The system for realtime transfering multimedia data |
JP2006246631A (en) * | 2005-03-03 | 2006-09-14 | Shin Caterpillar Mitsubishi Ltd | Control circuit of electric hydraulic work machine |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6310921B1 (en) | Media processing apparatus which operates at high efficiency | |
US6753866B2 (en) | Parallel processing processor and parallel processing method | |
US10554989B2 (en) | Efficient encoding of display data | |
US7162090B2 (en) | Image processing apparatus, image processing program and image processing method | |
US8749566B2 (en) | System and method for an optimized on-the-fly table creation algorithm | |
JP2009516938A (en) | Motion vector field retimer | |
US6335950B1 (en) | Motion estimation engine | |
US20150242996A1 (en) | Image processing apparatus and image processing method | |
US6901153B1 (en) | Hybrid software/hardware video decoder for personal computer | |
KR940025337A (en) | Image signal processing device and processing method | |
KR100464878B1 (en) | Method and apparatus for performing motion compensation in a texture mapping engine | |
JPH11112990A (en) | Image compression processing unit | |
JP3352931B2 (en) | Motion vector detection device | |
US7327873B2 (en) | Fast software rotation of video for portrait mode displays | |
JP3689620B2 (en) | Image processing apparatus and method | |
US7864858B2 (en) | Techniques for minimizing memory bandwidth used for motion compensation | |
US20040105500A1 (en) | Image processing system | |
JP6936641B2 (en) | Image processing device, image processing method | |
JP3692613B2 (en) | Information processing method and information processing apparatus | |
Barbosa et al. | Real-time MPEG encoding in shared-memory multiprocessors | |
KR920010514B1 (en) | Digital signal processing apparatus | |
US20050119870A1 (en) | Processor system with execution-reservable accelerator | |
JP2888152B2 (en) | Video coding device using warping motion compensation | |
JP3307856B2 (en) | Image processing device | |
CN117596388A (en) | Video encoding method, video encoding device, electronic equipment and computer readable storage medium |