JP3092536B2 - Parallel pixel value interpolation method - Google Patents
Parallel pixel value interpolation methodInfo
- Publication number
- JP3092536B2 JP3092536B2 JP712297A JP712297A JP3092536B2 JP 3092536 B2 JP3092536 B2 JP 3092536B2 JP 712297 A JP712297 A JP 712297A JP 712297 A JP712297 A JP 712297A JP 3092536 B2 JP3092536 B2 JP 3092536B2
- Authority
- JP
- Japan
- Prior art keywords
- bit
- pixel value
- values
- result
- value interpolation
- 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 - Fee Related
Links
Landscapes
- Complex Calculations (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Description
【0001】[0001]
【発明の属する技術分野】本発明は、圧縮された動画像
データを伸長する画素値補間方式に関し、特に、複数組
の画素値を並列に処理する並列画素値補間方式に関す
る。The present invention relates to a pixel value interpolation method for expanding compressed moving image data, and more particularly to a parallel pixel value interpolation method for processing a plurality of sets of pixel values in parallel.
【0002】[0002]
【従来の技術】従来、高品質な動画像データを蓄積した
り通信したりするための圧縮および伸長装置には、特別
に設計されたハードウエアが用いられていた。それは、
国際標準方式として、MPEG(Moving Picture codin
g Experts Group )と呼ばれる方式が定められており、
このMPEGの規格に準拠して圧縮された動画像データ
をリアルタイムに伸長するためには、膨大な計算量を必
要とするためである。しかし、最近のマイクロプロセッ
サの高性能化により、特別なハードウエアなしで通常の
マイクロプロセッサのソフトウエアだけで実現すること
が可能となりつつある。2. Description of the Related Art Conventionally, specially designed hardware has been used for compression and decompression devices for storing and communicating high-quality moving image data. that is,
MPEG (Moving Picture codin) is an international standard
g Experts Group).
This is because a huge amount of calculation is required to decompress moving image data compressed in accordance with the MPEG standard in real time. However, due to the recent high performance of microprocessors, it is becoming possible to realize the microprocessor only with ordinary microprocessor software without special hardware.
【0003】MPEGの圧縮および伸長アルゴリズムに
ついては、例えば「1991年4月、コミュニケーショ
ンズ・オブ・ザ・エーシーエム、第34巻、第4号(Co
mmunications of the ACM,Vol.34,No.4,April,1991)」
に詳しく述べられている。MPEGの伸長アルゴリズム
は、おおまかに可変長符号の復号処理、逆量子化処理、
逆離散コサイン変換処理、および動き補償処理から成
る。このうち、動き補償処理は動画像の時間的冗長性を
利用したもので、前に伸長されたフレームから画像の一
部を切り出してきて画像を復元する処理である。切り出
す画像の位置は動きベクトルと呼ばれるパラメータによ
って決定される。The compression and decompression algorithms of MPEG are described, for example, in "Communications of the ABCM, Vol. 34, No. 4, April 1991 (Co.
mmunications of the ACM, Vol. 34, No. 4, April, 1991)
Is described in detail. MPEG decompression algorithms are roughly the decoding processing of variable length codes, inverse quantization processing,
It consists of an inverse discrete cosine transform process and a motion compensation process. Among them, the motion compensation process utilizes temporal redundancy of a moving image, and is a process of extracting a part of an image from a previously expanded frame and restoring the image. The position of the image to be clipped is determined by a parameter called a motion vector.
【0004】切り出されて復元される画像は、縦16画
素/横16画素からなるマクロブロックと呼ばれる正方
形の領域であり、各画素の値は8ビットで表現されてい
る。このとき、画素値補間処理が必要になることがあ
る。この処理は、2つの縦16画素/横16画素の正方
形の画像について、対応する位置の画素同士の平均値を
計算することに等しい。An image that is cut out and restored is a square area called a macroblock consisting of 16 pixels in the vertical direction and 16 pixels in the horizontal direction, and the value of each pixel is represented by 8 bits. At this time, pixel value interpolation processing may be required. This processing is equivalent to calculating the average value of the pixels at the corresponding positions in two square images each having 16 pixels vertically and 16 pixels horizontally.
【0005】従来、通常のマイクロプロセッサのソフト
ウエアによって画素値の補間処理を行う場合、1画素毎
に計算が行われていた。図5のフローチャートを用いて
従来の計算手順を説明する。2つの8ビットからなる画
素値x0とy0の平均値を計算するために、まずメモリ
から2つの値をレジスタに読み込み(501および50
2)、その和であるsumを求めて(503)、丸めの
ために定数1を加算して(504)、右へ1ビットシフ
トしてa0を得る(505)。以上の手順で平均値a0
が求まるので、これをメモリへ格納する(506)。こ
こでは簡単のためにメモリのアドレス計算のステップは
省略している。以上説明したように従来の計算手順によ
れば、6ステップで2つの画素値の補間処理を実行する
ことができる。Conventionally, when pixel value interpolation processing is performed by software of an ordinary microprocessor, calculation is performed for each pixel. A conventional calculation procedure will be described with reference to the flowchart of FIG. In order to calculate an average value of two 8-bit pixel values x0 and y0, first, two values are read from a memory into a register (501 and 50).
2) The sum sum is obtained (503), a constant 1 is added for rounding (504), and a bit is shifted right by one bit to obtain a0 (505). By the above procedure, the average value a0
Is stored in the memory (506). Here, the step of calculating the address of the memory is omitted for simplicity. As described above, according to the conventional calculation procedure, the interpolation processing of two pixel values can be executed in six steps.
【0006】[0006]
【発明が解決しようとする課題】しかしながら上記の通
り、従来の計算手順では画素値補間処理を1画素毎に実
行していたため、マイクロプロセッサのソフトウエアで
実行するためにかかるステップ数は膨大となる。However, as described above, in the conventional calculation procedure, since the pixel value interpolation processing is executed for each pixel, the number of steps required to execute the software by the microprocessor becomes enormous. .
【0007】本発明は、画素値補間処理をより少ないス
テップ数で実現する並列画素値補間方式を提供すること
を目的とする。SUMMARY OF THE INVENTION It is an object of the present invention to provide a parallel pixel value interpolation system which realizes a pixel value interpolation process with a smaller number of steps.
【0008】[0008]
【課題を解決するための手段】かかる目的を達成するた
め、本発明の並列画素値補間方式は、所定の画像データ
の4組の8ビット値からなる32ビットの値XおよびY
を読み込む32ビットデータ読み込み手段と、XとYの
同じ位置にある8ビット値同士を加算した結果が奇数に
なるか否かを検出する奇数和検出手段と、この検出した
結果を基にXとYの同じ位置にある8ビット値同士を加
算し、加算した結果が偶数になるようにXとYを補正し
て#Xと#Yを生成するビット補正手段と、#Xと#Y
を加算し、加算された結果とそのキャリーを含めて右に
1ビットシフトすることによって4画素分の画素値補間
処理を一括して実行するキャリー付きシフト手段とを有
することを特徴としている。In order to achieve this object, a parallel pixel value interpolation method according to the present invention employs a 32-bit value X and Y consisting of four sets of 8-bit values of predetermined image data.
A 32-bit data reading means for reading the data, an odd sum detecting means for detecting whether or not the result of adding the 8-bit values at the same position of X and Y becomes an odd number, and X and X based on the detected result. Bit correction means for adding 8-bit values at the same position of Y and correcting X and Y to generate #X and #Y so that the addition result is an even number; #X and #Y
, And a shift means with a carry that collectively executes pixel value interpolation processing for four pixels by shifting one bit to the right including the added result and the carry thereof.
【0009】[0009]
【発明の実施の形態】次に添付図面を参照して本発明に
よる並列画素値補間方式の実施の形態を詳細に説明す
る。図1〜図4を参照すると本発明の並列画素値補間方
式の一実施形態が示されている。以下に本発明を、MP
EGの規格に準拠して圧縮された動画像データを伸長す
る復号化器の動き補償部において、画素値補間処理を行
う場合に適用した一実施形態について述べる。DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Next, an embodiment of a parallel pixel value interpolation system according to the present invention will be described in detail with reference to the accompanying drawings. 1 to 4, there is shown an embodiment of the parallel pixel value interpolation method according to the present invention. Hereinafter, the present invention is described as MP
One embodiment applied to a case where a pixel value interpolation process is performed in a motion compensation unit of a decoder that expands moving image data compressed in accordance with the EG standard will be described.
【0010】図1は、本実施形態における画素値補間方
式の機能構成を示したブロック図である。ここにおい
て、画面上の隣接する画素の値は、メモリ上の連続した
アドレスに配置されていると仮定する。FIG. 1 is a block diagram showing a functional configuration of a pixel value interpolation system according to the present embodiment. Here, it is assumed that the values of adjacent pixels on the screen are arranged at consecutive addresses on the memory.
【0011】図1中の32ビットデータ(X)読み込み
手段101と32ビットデータ(Y)読み込み手段10
2は、メモリの連続したアドレスに格納されている4組
の8ビット値からなる32ビットの値Xと4組の8ビッ
ト値からなる32ビットの値Yを、それぞれレジスタに
ロードするデータ読み込み手段である。The 32-bit data (X) reading means 101 and the 32-bit data (Y) reading means 10 shown in FIG.
2 is a data reading means for loading a register with a 32-bit value X consisting of four sets of 8-bit values and a 32-bit value Y consisting of four sets of 8-bit values stored in consecutive addresses of a memory, respectively. It is.
【0012】奇数和検出手段103は、読み込まれた2
つの32ビットの値XとYの同じ位置にある8ビット値
同士を加算した結果が、奇数になるか否かを検出する奇
数和の検出手段である。The odd sum detecting means 103 reads the 2
This is an odd sum detecting means for detecting whether or not the result of adding the 8-bit values at the same position of the two 32-bit values X and Y becomes an odd number.
【0013】ビット補正手段104と105とは、奇数
和検出手段103の結果を基に、XとYの同じ位置にあ
る8ビット値同士を加算した結果が、偶数になるように
XとYを補正するビット値の補正手段である。補正前の
XとYの補正後のそれぞれに対応する結果を、#Xと#
Yと表記する。The bit correction means 104 and 105 calculate the values of X and Y based on the result of the odd number sum detection means 103 so that the result of adding the 8-bit values at the same positions of X and Y becomes an even number. This is a means for correcting a bit value to be corrected. The results corresponding to the uncorrected X and Y after the correction are #X and #
Notated as Y.
【0014】加算手段106は、補正された値#Xと#
Yを加算する手段である。キャリー付きシフト手段10
7は、加算手段106で加算された結果とそのキャリー
を含めて右に1ビットシフトするキャリー付きのシフト
手段である。よって、この手段によれば「2」で除算さ
れた結果が得られる。平均値格納手段108は、計算さ
れた平均値をメモリへ格納する平均値の格納手段であ
る。The adding means 106 calculates the corrected values #X and #X
This is a means for adding Y. Shift means with carry 10
Reference numeral 7 denotes a shift unit with a carry that shifts one bit to the right, including the result added by the adder 106 and its carry. Therefore, according to this means, a result obtained by dividing by "2" is obtained. The average storage unit 108 is a storage unit for storing the calculated average in a memory.
【0015】図2を用いて本実施形態における画素値補
間方式の動作原理を説明する。32ビット幅のレジスタ
と32ビット幅の演算器を備えるマイクロプロセッサに
おいて、2つの4組の8ビット値(x3、x2、x1、
x0)と(y3、y2、y1、y0)が、それぞれ32
ビット幅のレジスタ201と202に格納されている。
この場合に、8ビット値x3とy3の平均値と、8ビッ
ト値x2とy2の平均値と、8ビット値x1とy1の平
均値と、8ビット値x0とy0の平均値とを計算する手
順について説明する。ここでは8ビット値x3とy3の
平均値と、8ビット値x2とy2の平均値の計算だけに
注目することにする。The principle of operation of the pixel value interpolation method according to this embodiment will be described with reference to FIG. In a microprocessor having a 32-bit wide register and a 32-bit wide arithmetic unit, four sets of 8-bit values (x3, x2, x1,.
x0) and (y3, y2, y1, y0) are 32
It is stored in registers 201 and 202 having a bit width.
In this case, the average value of the 8-bit values x3 and y3, the average value of the 8-bit values x2 and y2, the average value of the 8-bit values x1 and y1, and the average value of the 8-bit values x0 and y0 are calculated. The procedure will be described. Here, only the calculation of the average value of the 8-bit values x3 and y3 and the average value of the 8-bit values x2 and y2 will be focused.
【0016】まず、4組の8ビット値(x3、x2、x
1、x0)と4組の8ビット値(y3、y2、y1、y
0)を、通常のALUで加算するときの、8ビット値x
3とy3の和の値と8ビット値x2とy2の和の値につ
いて考える。8ビット値x2とy2の和は、加算結果2
08に示すように9ビットの値となる。First, four sets of 8-bit values (x3, x2, x
1, x0) and four sets of 8-bit values (y3, y2, y1, y
0) with an ordinary ALU, an 8-bit value x
Consider the value of the sum of 3 and y3 and the value of the sum of the 8-bit values x2 and y2. The sum of the 8-bit values x2 and y2 is the addition result 2
As shown in 08, it is a 9-bit value.
【0017】8ビット値x3とy3の和も同様に、レジ
スタ211に示すように9ビットの値となる。しかし、
ここで加算結果208の最上位ビット210が「1」の
場合、レジスタ211の最下位ビット212と位置が重
なるために、もしレジスタ211の最下位ビット212
が「1」ならば、桁上りが生じることで、8ビット値x
3とy3の和が破壊されてしまう可能性がある。Similarly, the sum of the 8-bit values x3 and y3 is a 9-bit value as shown in the register 211. But,
Here, when the most significant bit 210 of the addition result 208 is “1”, since the position overlaps with the least significant bit 212 of the register 211, if the least significant bit 212 of the register 211
Is “1”, a carry occurs, resulting in an 8-bit value x
The sum of 3 and y3 may be destroyed.
【0018】もし、8ビット値x3とy3の和を記憶す
るレジスタ211の最下位ビット212が、常に「0」
であればそのような問題は起きない。よって、常に加算
結果224の最下位ビット225が「0」になるよう
に、あらかじめ8ビット値x3とy3の最下位ビット
を、補正した#x3と#y3としておくことができれ
ば、通常のALUで4組の補正後の8ビット値(#x
3、#x2、#x1、#x0)と4組の補正後の8ビッ
ト値(#y3、#y2、#y1、#y0)を加算した場
合に、補正後の8ビット値#x2と#y2の和の値が補
正後の8ビット値#x3と#y3の和の値を破壊するこ
とがない。If the least significant bit 212 of the register 211 storing the sum of the 8-bit values x3 and y3 is always "0"
Then such a problem does not occur. Therefore, if the least significant bits of the 8-bit values x3 and y3 can be set as corrected # x3 and # y3 in advance so that the least significant bit 225 of the addition result 224 is always "0", a normal ALU is used. Four sets of corrected 8-bit values (#x
3, # x2, # x1, # x0) and four sets of the corrected 8-bit values (# y3, # y2, # y1, # y0), the corrected 8-bit values # x2 and # x2 The value of the sum of y2 does not destroy the value of the sum of the corrected 8-bit values # x3 and # y3.
【0019】加算結果227は、4組の補正後の8ビッ
ト値(#x3、#x2、#x1、#x0)と4組の補正
後の8ビット値(#y3、#y2、#y1、#y0)を
加算した結果を表している。ここで最上位ビット229
はキャリーとして保存されていて、それ以外の32ビッ
トはレジスタに格納されている。加算結果227の33
ビット値を右に1ビットシフトすれば、キャリー付き右
1ビットシフトした結果が格納されている32ビットレ
ジスタ230に示すように、(#x3+#y3)/2と
(#x2+#y2)/2と(#x1+#y1)/2と
(#x0+#y0)/2が得られる。The addition result 227 includes four sets of corrected 8-bit values (# x3, # x2, # x1, # x0) and four sets of corrected 8-bit values (# y3, # y2, # y1,. # Y0). Where the most significant bit 229
Are stored as carry, and the other 32 bits are stored in registers. 33 of the addition result 227
If the bit value is shifted right by one bit, as shown in the 32-bit register 230 storing the result of shifting right by one bit with carry, (# x3 + # y3) / 2 and (# x2 + # y2) / 2 And (# x1 + # y1) / 2 and (# x0 + # y0) / 2 are obtained.
【0020】補正後の8ビット値#x3および#y3の
最下位ビットは、x3とy3の最下位ビットを比較して
どちらか片方が「1」ならば両方が「1」となるように
補正する。こうすることで補正後の8ビット値#x3と
#y3の和の最下位ビットは常に「0」となり、かつ
(x3+y3)/2と(#x3+#y3)/2の結果は
一致する。補正後の8ビット値#x2と#y2、#x1
と#y1、#x0と#y0についても同様である。The least significant bits of the corrected 8-bit values # x3 and # y3 are compared with the least significant bits of x3 and y3 such that if either one is "1", both are "1". I do. By doing so, the least significant bit of the sum of the corrected 8-bit values # x3 and # y3 is always "0", and the result of (x3 + y3) / 2 matches the result of (# x3 + # y3) / 2. 8-bit values # x2, # y2, # x1 after correction
And # y1 and # x0 and # y0.
【0021】図3のフローチャートは、本実施形態の並
列画素値補間方式における処理手順を示している。ま
ず、メモリから32ビットのデータXおよびデータYを
レジスタに読み込む(301および302)。ここでデ
ータXとYの各ビットを以下のように表す。FIG. 3 is a flowchart showing a processing procedure in the parallel pixel value interpolation method according to the present embodiment. First, 32-bit data X and data Y are read from a memory into registers (301 and 302). Here, each bit of the data X and Y is represented as follows.
【0022】X=x3 7,...,x3 1,x3 0,x2 7,...,x2 1,x2 0,x1
7,...,x1 1,x1 0,x0 7,...,x0 1,x0 0 Y=y3 7,...,y3 1,y3 0,y2 7,...,y2 1,y2 0,y1 7,...,y1 1,y1
0,y0 7,...,y0 1,y0 0 X = x 3 7 , ..., x 3 1 , x 3 0 , x 2 7 , ..., x 2 1 , x 2 0 , x 1
7 , ..., x 1 1 , x 1 0 , x 0 7 , ..., x 0 1 , x 0 0 Y = y 3 7 , ..., y 3 1 , y 3 0 , y 2 7 , ..., y 2 1 , y 2 0 , y 1 7 , ..., y 1 1 , y 1
0 , y 0 7 , ..., y 0 1 , y 0 0
【0023】XとYにはともに4組の8ビット値が格納
されている。画素値データは8ビットからなり、隣接し
た位置の画素値はメモリ上の隣接したアドレスに格納さ
れているので、このように4つの画素値を1ステップで
メモリからレジスタに読み込むことができる。次に、X
とYからビット補正のための32ビットの値#mask
を算出する(304)。ここで#maskの各ビットを
以下のように表す。X and Y each store four sets of 8-bit values. The pixel value data is composed of 8 bits, and the pixel values at adjacent positions are stored at adjacent addresses on the memory. Thus, the four pixel values can be read from the memory to the register in one step. Next, X
32-bit value #mask for bit correction from Y and Y
Is calculated (304). Here, each bit of #mask is represented as follows.
【0024】#mask=m3 7,...,m3 1,m3 0,m2 7,...,m2
1,m2 0,m1 7,...,m1 1,m1 0,m0 7,...,m0 1,m0 0 [0024] # mask = m 3 7, ... , m 3 1, m 3 0, m 2 7, ..., m 2
1 , m 2 0 , m 1 7 , ..., m 1 1 , m 1 0 , m 0 7 , ..., m 0 1 , m 0 0
【0025】#maskの各ビットは、以下の式を満た
す。 mi j=xi j XOR yi j もしj=0ならば =0 それ以外Each bit of #mask satisfies the following equation. If m i j = x i j XOR y i j if j = 0 = 0 otherwise
【0026】すなわち、XとYの対応する位置にある画
素値の最下位ビット同士を比較したときに、どちらか片
方が「1」ならば#maskの対応する位置のビットが
「1」となる。Xと#maskのビット毎論理和を計算
することでビット補正された#Xを算出し(306)、
Yと#maskのビット毎論理和を計算することでビッ
ト補正された#Yを算出し(307)、#Xと#Yの和
sumを算出し(308)、sumを計算したときに生
じたキャリービットを含めてsumを右に1ビットシフ
トしてaverageを算出し(309)、avera
geをメモリへ格納する(310)。That is, when the least significant bits of the pixel values at the positions corresponding to X and Y are compared with each other, if either one is "1", the bit at the corresponding position of #mask becomes "1". . A bit-corrected #X is calculated by calculating a bitwise OR of X and #mask (306),
A bit-corrected #Y is calculated by calculating a bitwise OR of Y and #mask (307), a sum sum of #X and #Y is calculated (308), and the sum is calculated. The sum is shifted right by one bit including the carry bit to calculate average (309), and average is calculated.
ge is stored in the memory (310).
【0027】図4は、図3のステップ303における#
maskの値の算出法を詳細に説明したものである。レ
ジスタ401と402は読み込まれた32ビットのデー
タXとYを表す。レジスタ401と402のビット毎に
排他的論理和を算出した結果がレジスタ403である。
レジスタ403を8ビット毎に区切った時のそれぞれの
最下位ビットだけを取り出すために、16進数表記で0
x01010101となるレジスタ404の値とビット
毎論理積をとると、レジスタ404に#maskが得ら
れる。FIG. 4 is a flowchart showing the operation of # in step 303 of FIG.
This is a detailed description of a method of calculating a mask value. Registers 401 and 402 represent the read 32-bit data X and Y. The result of calculating the exclusive OR for each bit of the registers 401 and 402 is the register 403.
In order to extract only the least significant bit when the register 403 is divided every 8 bits, 0 is expressed in hexadecimal notation.
When the value of the register 404 that is x01010101 and the logical AND for each bit are taken, #mask is obtained in the register 404.
【0028】すなわち、[従来の技術]の欄で説明した
ように、従来技術では1画素分の画素値補間に6ステッ
プを要していたが、本実施形態における画素値補間方式
を用いれば、4画素分の処理が9ステップで実行でき
る。よって、1画素分に2.25ステップしか要しない
ことになる。故に、従来の技術に比べて2倍以上高速化
される。本実施形態のために必要となる演算は加算、ビ
ット毎論理演算およびキャリー付きビットシフトだけな
ので、一般的な32ビットレジスタを持つマイクロプロ
セッサで実行可能である。That is, as described in the section of [Prior Art], in the related art, six steps were required for pixel value interpolation for one pixel, but if the pixel value interpolation method in the present embodiment is used, Processing for four pixels can be executed in nine steps. Therefore, only 2.25 steps are required for one pixel. Therefore, the speed is twice or more as compared with the conventional technology. The operations required for the present embodiment are only addition, bit-by-bit logical operation, and bit shift with carry, and can be executed by a general microprocessor having a 32-bit register.
【0029】さらに、ここで述べた方式を64ビットの
レジスタを持つマイクロプロセッサにおいて適用すれ
ば、8画素分の画素値補間処理が9ステップで実行でき
る。Further, if the method described here is applied to a microprocessor having a 64-bit register, pixel value interpolation processing for eight pixels can be executed in nine steps.
【0030】上記の実施形態では、マイクロプロセッサ
が有する32ビット幅のレジスタを有効に用いて、4画
素分の画素値補間処理を並列に実行する。4組の8ビッ
トデータを32ビットレジスタにまとめて格納すること
は容易である。しかしその32ビットデータ同士を通常
のマイクロプロセッサのALUで加算して、8ビットデ
ータ同士の加算結果を得ようとすると、下位側に格納さ
れている8ビットデータの加算結果の桁上りが上位側に
格納されている8ビットデータの加算結果を破壊してし
まい、正しい結果が得られない。本実施形態では、予め
加算前のデータを補正しておくことによって桁上りの影
響が上位に伝搬しない。さらに丸めのための補正処理も
同時に行う。これにより、画素値補間処理の1画素当り
の計算にかかるステップ数を大幅に削減することが可能
となる。In the above-described embodiment, the pixel value interpolation processing for four pixels is executed in parallel by effectively using the 32-bit width register of the microprocessor. It is easy to collectively store four sets of 8-bit data in a 32-bit register. However, if the 32-bit data are added together by the normal microprocessor ALU to obtain the addition result of the 8-bit data, the carry of the addition result of the 8-bit data stored in the lower bit is changed to the upper bit. Will destroy the addition result of the 8-bit data stored in, and a correct result cannot be obtained. In the present embodiment, the effect of carry does not propagate to the higher order by correcting data before addition in advance. Further, a correction process for rounding is performed at the same time. As a result, the number of steps required for calculation per pixel in the pixel value interpolation processing can be significantly reduced.
【0031】尚、上述の実施形態は本発明の好適な実施
の一例ではあるがこれに限定されるものではなく、本発
明の要旨を逸脱しない範囲において種々変形実施可能で
ある。Although the above embodiment is an example of a preferred embodiment of the present invention, the present invention is not limited to this embodiment, and various modifications can be made without departing from the gist of the present invention.
【0032】[0032]
【発明の効果】以上の説明より明らかなように、本発明
の並列画素値補間方式は、所定の画像データの4組の8
ビット値からなる32ビットの値XおよびYを読み込
み、読み込んだXとYの同じ位置にある8ビット値同士
を加算した結果が奇数になるか否かを検出する。この検
出した結果を基にXとYの同じ位置にある8ビット値同
士を加算し、加算した結果が偶数になるようにXとYを
補正して#Xと#Yを生成する。さらに、#Xと#Yを
加算し、加算された結果とそのキャリーを含めて右に1
ビットシフトすることによって4画素分の画素値補間処
理を一括して実行する。よって、予め加算前のデータを
補正しておき、さらに丸めのための補正処理も同時に行
う。As is apparent from the above description, the parallel pixel value interpolation method of the present invention employs four sets of eight image data of predetermined image data.
The 32-bit values X and Y consisting of bit values are read, and it is detected whether or not the result of adding the 8-bit values at the same position of the read X and Y becomes an odd number. Based on the detected result, 8-bit values at the same position of X and Y are added together, and X and Y are corrected so that the added result becomes an even number to generate #X and #Y. Further, #X and #Y are added, and 1 is added to the right including the added result and its carry.
By performing bit shifting, pixel value interpolation processing for four pixels is collectively executed. Therefore, data before addition is corrected in advance, and a correction process for rounding is also performed at the same time.
【0033】これにより、桁上りの影響が上位に伝搬し
ない。また、4画素分の画素値補間処理を一括して行う
ために従来の計算手順に比べて半分以下のステップ数で
実行可能である。すなわち、MPEGに準拠して圧縮さ
れた動画像データの伸長処理のうち動き補償処理にかか
る計算ステップ数、画素値補間処理の1画素当りの計算
にかかるステップ数、を大幅に削減することが可能とな
る。As a result, the influence of carry does not propagate to higher places. In addition, since the pixel value interpolation processing for four pixels is performed collectively, the number of steps can be reduced to less than half of the conventional calculation procedure. In other words, it is possible to greatly reduce the number of calculation steps required for motion compensation processing and the number of steps required for calculation per pixel in pixel value interpolation processing in the decompression processing of moving image data compressed in accordance with MPEG. Becomes
【図1】本発明の並列画素値補間方式の実施形態の機能
構成を示すブロック図である。FIG. 1 is a block diagram showing a functional configuration of an embodiment of a parallel pixel value interpolation method according to the present invention.
【図2】動作原理を示す説明図である。FIG. 2 is an explanatory diagram showing an operation principle.
【図3】計算手順例を示すフローチャートである。FIG. 3 is a flowchart illustrating an example of a calculation procedure.
【図4】図1の奇数和検出手段の動作例を示す説明図で
ある。FIG. 4 is an explanatory diagram showing an operation example of the odd sum detecting means of FIG. 1;
【図5】従来の画素値補間方式の計算手順例を示すフロ
ーチャートである。FIG. 5 is a flowchart illustrating an example of a calculation procedure of a conventional pixel value interpolation method.
101、102 32ビットデータ読み込み手段 103 奇数和検出手段 104、105 ビット補正手段 106 加算手段 107 キャリー付きシフト手段 108 平均値格納手段 201、202 32ビットレジスタ 203、205、208、209 加算結果 213、214 ビット補正された値が格納されている
32ビットレジスタ 215、218、221、224 加算結果 227 加算結果 230 キャリー付き右1ビットシフトした結果が格納
されている32ビットレジスタ 301、302 32ビットデータ読み込み処理 303 #mask算出処理 306、307 ビット補正処理 308 加算処理 309 キャリー付き右1ビットシフト処理 310 平均値格納処理 401、402 データXとYが格納されている32ビ
ットレジスタ 403 maskが格納されている32ビットレジスタ 404 16進数0x010101が格納されている3
2ビットレジスタ 405 #maskが格納されている32ビットレジス
タ101, 102 32-bit data reading means 103 Odd sum detection means 104, 105 Bit correction means 106 Addition means 107 Shift means with carry 108 Average value storage means 201, 202 32-bit registers 203, 205, 208, 209 Addition results 213, 214 32-bit registers 215, 218, 221 and 224 storing bit-corrected values Addition result 227 Addition result 230 32-bit registers 301 and 302 storing the result of shifting right by one bit with carry 32-bit data read processing 303 #mask calculation processing 306, 307 Bit correction processing 308 Addition processing 309 Right 1-bit shift processing with carry 310 Average value storage processing 401, 402 32-bit register in which data X and Y are stored 403 32-bit register storing mask 404 3 storing hexadecimal 0x010101
2-bit register 405 32-bit register in which #mask is stored
Claims (1)
らなる32ビットの値XおよびYを読み込む32ビット
データ読み込み手段と、 前記XとYの同じ位置にある8ビット値同士を加算した
結果が奇数になるか否かを検出する奇数和検出手段と、 該検出した結果を基に前記XとYの同じ位置にある8ビ
ット値同士を加算し、該加算した結果が偶数になるよう
にXとYを補正して#Xと#Yを生成するビット補正手
段と、 前記#Xと#Yを加算し、該加算された結果とそのキャ
リーを含めて右に1ビットシフトすることによって4画
素分の画素値補間処理を一括して実行するキャリー付き
シフト手段とを有することを特徴とする並列画素値補間
方式。1. 32-bit data reading means for reading 32-bit values X and Y consisting of four sets of 8-bit values of predetermined image data, and adding 8-bit values at the same position of X and Y to each other An odd sum detecting means for detecting whether or not the result is an odd number; and adding the 8-bit values at the same positions of X and Y based on the detected result so that the added result becomes an even number.
A bit correcting means for correcting X and Y to generate #X and #Y, adding #X and #Y, and shifting right by one bit including the added result and its carry. A parallel pixel value interpolation method comprising: a shift unit with a carry that collectively executes pixel value interpolation processing for four pixels.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP712297A JP3092536B2 (en) | 1997-01-20 | 1997-01-20 | Parallel pixel value interpolation method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP712297A JP3092536B2 (en) | 1997-01-20 | 1997-01-20 | Parallel pixel value interpolation method |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH10207864A JPH10207864A (en) | 1998-08-07 |
JP3092536B2 true JP3092536B2 (en) | 2000-09-25 |
Family
ID=11657280
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP712297A Expired - Fee Related JP3092536B2 (en) | 1997-01-20 | 1997-01-20 | Parallel pixel value interpolation method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3092536B2 (en) |
-
1997
- 1997-01-20 JP JP712297A patent/JP3092536B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH10207864A (en) | 1998-08-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5838964A (en) | Dynamic numeric compression methods | |
KR100261072B1 (en) | Digital signal processing system | |
US8218635B2 (en) | Systolic-array based systems and methods for performing block matching in motion compensation | |
JP3161217B2 (en) | Image encoding recording device and recording / reproducing device | |
JP2532712B2 (en) | Method for encoding and transmitting video signal as global motion vector and local motion vector | |
EP1283640B1 (en) | Image processor and image processing program, and image processing method | |
US6744928B1 (en) | Variable-length decoding method and apparatus employing code length and a recording medium | |
JP3540855B2 (en) | Block distortion corrector | |
JP3031152B2 (en) | Motion prediction processor and motion prediction device | |
US20040005006A1 (en) | Image processing apparatus, image processing program and image processing method | |
US5736944A (en) | Image decoding apparatus | |
JP4796228B2 (en) | Apparatus and method for restoring compression constant in encoding region | |
JPH11225334A (en) | Dispersion value calculation accelerator for mpeg-2 image decoder | |
WO2013089264A1 (en) | Image quantization apparatus, method and program, and image inverse quantization apparatus, method and program | |
US6160850A (en) | Motion estimator employing a three-step hierachical search block-matching algorithm | |
JPH08181984A (en) | Image compressor and image compression method | |
US6665340B1 (en) | Moving picture encoding/decoding system, moving picture encoding/decoding apparatus, moving picture encoding/decoding method, and recording medium | |
JPH10215457A (en) | Moving image decoding method and device | |
JP3092536B2 (en) | Parallel pixel value interpolation method | |
JP3123496B2 (en) | Motion compensation processing method and system, and recording medium recording the processing program | |
JP5845202B2 (en) | Image compression apparatus and image processing system | |
JP3692613B2 (en) | Information processing method and information processing apparatus | |
JP2815510B2 (en) | Motion vector calculation circuit for color difference signal | |
US5771079A (en) | Apparatus and method for predicting pixel data of dynamic image using a half pixel pitch | |
JPH05260461A (en) | Motion compensation prediction device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20000627 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20070728 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080728 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090728 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100728 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110728 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110728 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120728 Year of fee payment: 12 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120728 Year of fee payment: 12 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130728 Year of fee payment: 13 |
|
LAPS | Cancellation because of no payment of annual fees |