JPH1091614A - Method for converting idct into integer - Google Patents
Method for converting idct into integerInfo
- Publication number
- JPH1091614A JPH1091614A JP8242926A JP24292696A JPH1091614A JP H1091614 A JPH1091614 A JP H1091614A JP 8242926 A JP8242926 A JP 8242926A JP 24292696 A JP24292696 A JP 24292696A JP H1091614 A JPH1091614 A JP H1091614A
- Authority
- JP
- Japan
- Prior art keywords
- sft
- bits
- substituted
- substituting
- sftd
- 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
- Complex Calculations (AREA)
Abstract
Description
【0001】[0001]
【発明の属する技術分野】本発明は、IDCT演算用の
回路におけるIDCTの整数化法に関するものである。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a method for converting an IDCT into an integer in an IDCT operation circuit.
【0002】[0002]
【従来の技術】従来の8点IDCT演算方法(Y.Ar
ai他,Trans IEICE,E71,pp.10
95−1097,Nov‘88)を図2に示す。2. Description of the Related Art A conventional 8-point IDCT calculation method (Y.Ar
Ai et al., Trans IEICE, E71, pp. 10
95-1097, Nov'88) is shown in FIG.
【0003】図2(a)において、プリスケーリング部
201では、DCT係数x(i)と定数c(i)の積算
を行いp(i)を得、これを演算部202に入力する。
ここで、iを0〜7の整数とし、c(i)は(数1)で
定義された実数である。In FIG. 2A, a prescaling section 201 multiplies a DCT coefficient x (i) and a constant c (i) to obtain p (i), and inputs this to an arithmetic section 202.
Here, i is an integer from 0 to 7, and c (i) is a real number defined by (Equation 1).
【0004】[0004]
【数1】 (Equation 1)
【0005】(数1)において、SQRT(2)を2の
平方根とする。In equation (1), SQRT (2) is a square root of 2.
【0006】演算部202の詳細を図2(b)に示す。
ここで、黒丸は和算器、四角形は中に記述した定数との
積算を行う積算器を示す。b1〜b5は(数2)〜(数
6)で定義された定数である。FIG. 2B shows the details of the arithmetic unit 202.
Here, black circles indicate adders, and squares indicate integrators that perform integration with constants described therein. b1 to b5 are constants defined by (Equation 2) to (Equation 6).
【0007】[0007]
【数2】 (Equation 2)
【0008】[0008]
【数3】 (Equation 3)
【0009】[0009]
【数4】 (Equation 4)
【0010】[0010]
【数5】 (Equation 5)
【0011】[0011]
【数6】 (Equation 6)
【0012】該アルゴリズムを整数演算のみで実行する
場合、積算を整数化すればよい。即ち、各積算器におい
て、Mbを整数とし、b1〜b5に2のMb乗を掛けた
値を四捨五入整数化し、定数B1〜B5を予め用意す
る。積算を実行するとき、まず、該定数との積算をし、
その結果をMbビットの丸め機能付き右シフト演算する
ことにより、整数化できる。When the algorithm is executed only by an integer operation, the integral may be converted to an integer. That is, in each integrator, Mb is an integer, and a value obtained by multiplying b1 to b5 by 2 to the power of Mb is rounded to an integer to prepare constants B1 to B5 in advance. When performing integration, first, integration with the constant is performed,
The result can be converted to an integer by performing a right shift operation with a rounding function of Mb bits.
【0013】次に、一般的な画像の復号化方法を図2
(c)に示す。ハフマン復号部203において、入力ビ
ット列をハフマン復号してh(i)を得、逆量子化部2
04にてh(i)とスケールファクタQ(i)の掛け算
によりDCT係数x(i)を得る。Q(i)が初期値Q
0(i)と変数αの積で表される場合、Q0(i)にc
(i)を掛けた値を予め用意しておけば、図2(a)の
プリスケーリング部での積算をなくすことができる。よ
って、8点IDCTの計算が積算5回、和算29回のみ
で実行できるので、この方法は最も演算量の少なく、高
速化されたものとして知られている。Next, a general image decoding method will be described with reference to FIG.
It is shown in (c). In the Huffman decoding unit 203, the input bit sequence is Huffman decoded to obtain h (i), and the inverse quantization unit 2
At 04, a DCT coefficient x (i) is obtained by multiplying h (i) by the scale factor Q (i). Q (i) is the initial value Q
0 (i) and the variable α, when Q0 (i) is c
If the value multiplied by (i) is prepared in advance, the integration in the pre-scaling unit in FIG. 2A can be eliminated. Therefore, since the calculation of the eight-point IDCT can be performed only by 5 times of integration and 29 times of addition, this method is known to have the least amount of calculation and to be speeded up.
【0014】これを8×8点に拡張したものを図2
(d)に示す。FIG. 2 shows an extension of this to 8 × 8 points.
(D).
【0015】プリスケーリング部205においてx
(i,j)とc(i)×c(j)の積p(i,j)を求
め、これをi行毎に分割する。kを0〜7の整数とし、
i行の8個の要素p(i,k)を演算部206に入力す
る。In the pre-scaling unit 205, x
The product p (i, j) of (i, j) and c (i) × c (j) is obtained, and this is divided for every i rows. k is an integer from 0 to 7,
The eight elements p (i, k) in the i-th row are input to the arithmetic unit 206.
【0016】演算部206ではp(i,k)をp(k)
に代入し、図2(b)と同様の処理を実行する。出力y
(k)をpr(i,k)代入し、8行全てにつきこれを
繰り返し、64個のpr(i,j)を得る。pr(i,
j)をj列毎に分割し、j列の8個の要素pr(k,
j)を演算部207に入力する。The arithmetic unit 206 converts p (i, k) into p (k)
And performs the same processing as in FIG. Output y
(K) is substituted for pr (i, k), and this is repeated for all eight rows to obtain 64 pr (i, j). pr (i,
j) is divided into j columns, and eight elements pr (k,
j) is input to the arithmetic unit 207.
【0017】演算部207ではpr(k,j)をp
(k)に代入し、図2(b)と同様の処理を実行する。
出力y(k)をY(k,j)に代入し、8列全てにつき
これを繰り返し、64個のY(i、j)を出力するもの
である。The arithmetic unit 207 calculates pr (k, j) as p
(K) and execute the same processing as in FIG. 2 (b).
The output y (k) is substituted for Y (k, j), and this is repeated for all eight columns to output 64 Y (i, j).
【0018】一方、画像復号化処理をプロセッサにて実
行する動きが、近年、活発化し、画像処理用の特殊命令
を備えた製品が開発されている。その中に、64ビット
演算用のプロセッサを用いて、16ビット演算を4並列
同時に実行できるものも計画されている。On the other hand, the movement of executing a picture decoding process by a processor has recently become active, and products provided with special instructions for picture processing have been developed. Among them, a processor capable of simultaneously executing four 16-bit operations in parallel using a 64-bit operation processor is also planned.
【0019】上記8×8IDCTが16ビット演算で実
行できれば、4並列処理が可能となり、さらに高速化す
ることができる。If the above-mentioned 8 × 8 IDCT can be executed by 16-bit operation, 4-parallel processing becomes possible and the speed can be further increased.
【0020】また、MPEG2(Moving Pic
ture Experts Group part2)
で定めるIDCTの規格が‘95年11月に修正された
(Technical Corrigendum 2
for ISO/IEC 13818ー2,ISO/I
EC DIS 13818ー4)。これは、IDCTの
実行結果が、(ー256)以下(ー384)以上のとき
(ー256)を出力し、255以上384未満のとき
(255)を出力し、ー385以下、または、384以
上の場合、出力値を規定しないというものである。Also, MPEG2 (Moving Pic)
cure Experts Group part2)
Was revised in November 1995 (Technical Corrigendum 2
for ISO / IEC 13818-2, ISO / I
EC DIS 13818-4). This means that when the execution result of the IDCT is (−256) or less (−384) or more, (−256) is output, and when it is 255 or more and less than 384 (255), −385 or less or 384 or more is output. In the case of, the output value is not specified.
【0021】この規格を上記8×8IDCTに適用する
と、図2(d)の演算部206への入力p(i、j)の
ビット数がMpビットの場合、演算部206、及び演算
部207での和算、及び積算には、最大で(Mp+2)
ビット必要となる。When this standard is applied to the 8 × 8 IDCT, if the number of bits of the input p (i, j) to the arithmetic unit 206 in FIG. 2D is Mp bits, the arithmetic unit 206 and the arithmetic unit 207 (Mp + 2)
A bit is needed.
【0022】[0022]
【発明が解決しようとする課題】しかし、IEEEのI
DCT演算の精度基準(Std1180−1990,D
ec6‘90)を満足するためには、p(i,j)は最
低でも16ビット必要である。これは、演算部206、
207において、最大18ビット必要とすることを意味
し、4並列処理に適さないという問題が生じる。However, the IEEE I
DCT calculation accuracy criterion (Std1180-1990, D
To satisfy (ec6'90), p (i, j) needs at least 16 bits. This is the operation unit 206,
In 207, it means that a maximum of 18 bits are required, which causes a problem that it is not suitable for 4-parallel processing.
【0023】[0023]
【課題を解決するための手段】上記問題を解決するため
に、図2(b)において演17ビット以上の算結果を出
力する演算器については、該演算器への入力値の大きさ
により、桁下げするか否かの判定をする。その結果、桁
下げを要する場合は、予め入力を桁下げした後に演算を
実行する。これにより、演算結果を常に16ビット以内
の値にすることが可能となる。In order to solve the above problem, in FIG. 2 (b), for an arithmetic unit which outputs a calculation result of 17 bits or more, the size of the input value to the arithmetic unit is determined by the following formula. It is determined whether to carry down. As a result, if a carry is required, the calculation is performed after the carry is previously carried out. This makes it possible to always set the operation result to a value within 16 bits.
【0024】図1に本発明の構成を示す。FIG. 1 shows the configuration of the present invention.
【0025】図1(a)は、8×8IDCTの行アルゴ
リズム部を示す。入力p(k)、途中の演算の結果を示
すd1〜d31、s0〜s7、出力y(k)は16ビッ
ト以内の整数である。ここで、kは0〜7の整数とす
る。FIG. 1A shows a row algorithm section of the 8 × 8 IDCT. The input p (k), d1 to d31 and s0 to s7 indicating the result of the intermediate operation, and the output y (k) are integers of 16 bits or less. Here, k is an integer of 0 to 7.
【0026】行アルゴリズム部における全ての和算に
は、図3に示すクリップ演算を使用する。The clip operation shown in FIG. 3 is used for all the additions in the row algorithm section.
【0027】図3において、z1,z2を16ビット以
内の整数とし、sft(z1)、sft(z2)をz
1,z2の現在にいたるまでの桁下げ数とする。In FIG. 3, z1 and z2 are integers within 16 bits, and sft (z1) and sft (z2) are z
1, z2, the number of carry down to the present.
【0028】比較部301はsft(z1)とsft
(z2)の大きい方をsftMに代入する。次にsft
d(z1)、sftd(z2)を(数7)により求め
る。The comparison unit 301 calculates sft (z1) and sft (z1).
The larger of (z2) is substituted for sftM. Then sft
d (z1) and sftd (z2) are obtained by (Equation 7).
【0029】[0029]
【数7】 (Equation 7)
【0030】判定部302は、z1をsftd(z1)
ビット、z2をsftd(z2)ビット右シフトしたも
ののいずれかが16ビットのとき、sftd(z1)、
sftd(z2)、sftMに1を加算する。The determination unit 302 converts z1 into sftd (z1)
When any of the bits z2 shifted right by sftd (z2) bits is 16 bits, sftd (z1),
1 is added to sftd (z2) and sftM.
【0031】桁下げ部303は、z1を(sftd(z
1)ビット)丸め機能付き右シフト演算したものをZ1
に、z2を(sftd(z2)ビット)丸め機能付き右
シフト演算したものをZ2に代入する。演算部304
は、Z1とZ2の和算をした結果z3を出力する。The carry unit 303 converts z1 into (sftd (z
1) Bit) The result of right shift operation with rounding function is Z1
Then, the value obtained by performing z2 (sftd (z2) bits) right shift operation with a rounding function is assigned to Z2. Arithmetic unit 304
Outputs the result z3 of the sum of Z1 and Z2.
【0032】経歴加算部305はsft(z3)にsf
tMを代入する。The history adding unit 305 adds sf (z3) to sf (z3).
Substitute tM.
【0033】図3において、z3=z1+z2を得る場
合は、z1、z2の極性が同じであるときのみ判定部3
02を動作させる。また、z3=z1ーz2を得る場合
は、z1、z2の極性が異なるときのみ判定部302を
動作させる。この演算をクリップ演算と定義する。In FIG. 3, when z3 = z1 + z2 is obtained, the determination unit 3 only determines when the polarities of z1 and z2 are the same.
02 is operated. When z3 = z1−z2 is obtained, the determination unit 302 is operated only when the polarities of z1 and z2 are different. This operation is defined as a clip operation.
【0034】また、常に判定部302を動作させずに実
行する和算を経歴付き和算と定義する。Further, the summation executed without operating the determination unit 302 is defined as summation with history.
【0035】図1(a)において、クリップ演算により
d1〜d8を求めるとき、sft(p(k))に0を代
入しておく。In FIG. 1A, when d1 to d8 are obtained by clipping, 0 is substituted for sft (p (k)).
【0036】次に行アルゴリズム部における積算部10
1〜105について記述する。図1(a)の積算部10
1の詳細を図4に示す。Next, the integrating section 10 in the row algorithm section
1 to 105 will be described. Integrator 10 of FIG.
4 is shown in FIG.
【0037】図4の定数部401において、(数2)で
定義した定数b1と2のMb1乗を積算し、四捨五入し
たものを定数B1とする。B1とd6の積算結果をD1
6とし、桁下げ部402において、これをsf(d1
6)ビットの丸め機能付き右シフト演算しd16を得
る。ここで、sf(d16)は判定部403において得
られる値である。判定部403において、sf(d1
6)の初期値としてMb1を代入しておく。また、d1
6を得るまでに桁下げしたビット数をsft(d16)
とし、初期値としてsft(d6)代入しておく。d6
を表し得るビット数を求め、該ビット数が16で、且
つ、sft(d6)が0の場合、sf(d16)、sf
t(d16)に1を加算する。In the constant section 401 of FIG. 4, the constant b1 defined by (Equation 2) is multiplied by 2 to the power of Mb1, and the result is rounded to obtain a constant B1. The integration result of B1 and d6 is D1
6, and the carry-down unit 402 sets this to sf (d1
6) Right shift operation with bit rounding function is performed to obtain d16. Here, sf (d16) is a value obtained in the determination unit 403. In the determination unit 403, sf (d1
Mb1 is substituted as the initial value of 6). Also, d1
Sft (d16) is the number of bits lowered to obtain 6.
And sft (d6) is substituted as an initial value. d6
Is obtained, and when the number of bits is 16 and sft (d6) is 0, sf (d16), sf
One is added to t (d16).
【0038】図1(a)の積算部102において、図4
のb1を(数3)で定義したb2に、Mb1をMb2
に、入力d6をd4に置き換え、B2、D15を求め
る。また、sf(d15)にMb2を、sft(d1
5)にsft(d4)を初期値として代入する。判定部
403は、d4が16ビット且つsft(d4)が0の
場合には、2をsf(d15)、sft(d15)に加
算し、d4が16ビット且つsft(d4)が1の場
合、または、d4が15ビットの場合には、1をsf
(d15)、sft(d15)に加算する。桁下げ部4
02はD15をsf(d15)ビットの丸め機能付き右
シフト演算しd15を得る。In the integrating section 102 shown in FIG.
Is changed to b2 defined by (Equation 3), and Mb1 is changed to Mb2.
Then, the input d6 is replaced with d4, and B2 and D15 are obtained. Also, Mb2 is set in sf (d15), and sft (d1
5) Substitute sft (d4) as an initial value. When d4 is 16 bits and sft (d4) is 0, the determination unit 403 adds 2 to sf (d15) and sft (d15), and when d4 is 16 bits and sft (d4) is 1, Alternatively, when d4 is 15 bits, 1 is set to sf
(D15), and added to sft (d15). Carring part 4
02 performs a right shift operation on D15 with a rounding function of sf (d15) bits to obtain d15.
【0039】積算部103において、図4のb1を(数
4)で定義したb3に、Mb1をMb3に、入力d6を
d14に置き換え、B3、D22を求める。また、sf
(d22)にMb3を、sft(d22)にsft(d
14)を初期値として代入する。判定部403は、d1
4が16ビットの場合には、1をsf(d22)、sf
t(d22)に加算する。桁下げ部402はD22をs
f(d22)ビットの丸め機能付き右シフト演算しd2
2を得る。In the integrating unit 103, B3 and D22 are obtained by replacing b1 in FIG. 4 with b3 defined by (Equation 4), Mb1 with Mb3, and input d6 with d14. Also, sf
(D22) is Mb3, and sft (d22) is sft (d
14) is assigned as an initial value. The determination unit 403 calculates d1
If 4 is 16 bits, 1 is sf (d22), sf
Add to t (d22). The carry unit 402 sets D22 to s
right shift operation with round function of f (d22) bits and d2
Get 2.
【0040】積算部104において、図4のb1を(数
5)で定義したb4に、Mb1をMb4に、入力d6を
d3に置き換え、B4、D12を求める。また、sf
(d12)にMb4を、sft(d12)にsft(d
3)を初期値として代入する。判定部403の判定動作
は積算部101と同じで、桁下げ部402はD12をs
f(d12)ビットの丸め機能付き右シフト演算しd1
2を得る。In the integrating unit 104, B4 and D12 are obtained by replacing b1 in FIG. 4 with b4 defined by (Equation 5), Mb1 with Mb4, and input d6 with d3. Also, sf
(D12) is Mb4, and sft (d12) is sft (d
3) is substituted as an initial value. The determining operation of determining section 403 is the same as that of integrating section 101, and carry-down section 402 sets D12 to s
right shift operation with round function of f (d12) bits and d1
Get 2.
【0041】積算部105において、図4のb1を(数
6)で定義したb5に、Mb1をMb5に、入力d6を
d13に置き換え、B5、D22を求める。また、sf
(d22)にMb5を、sft(d22)にsft(d
13)を初期値として代入する。このとき、判定部40
3は判定動作を行わず、sf(d22)、sft(d2
2)を更新しない。桁下げ部402はD22をsf(d
22)ビットの丸め機能付き右シフト演算しd22を得
る。In the integrating section 105, B5 and D22 are obtained by replacing b1 in FIG. 4 with b5 defined by (Equation 6), Mb1 with Mb5, and input d6 with d13. Also, sf
(D22) is Mb5, and sft (d22) is sft (d
13) is assigned as an initial value. At this time, the determination unit 40
No. 3 performs no determination operation, and sf (d22) and sft (d2
Do not update 2). The carry unit 402 sets D22 to sf (d
22) Right shift operation with bit rounding function is performed to obtain d22.
【0042】行アルゴリズムの出力y(k)は、各々s
ft(y(k))ビットの桁下げされている。よって、
列アルゴリズム部に入力する前に、sft(y(k))
ビットの左シフト演算を行う。The output y (k) of the row algorithm is s
ft (y (k)) bits have been carried down. Therefore,
Before inputting to the column algorithm section, sft (y (k))
Performs a bit left shift operation.
【0043】図1(b)は8×8IDCTの列アルゴリ
ズム部を示す。FIG. 1B shows an 8 × 8 IDCT column algorithm unit.
【0044】p(k)、d0〜d31,s0〜s7、y
(k)は16ビット以内の整数である。ここで、kを0
〜7の整数とする。P (k), d0-d31, s0-s7, y
(K) is an integer within 16 bits. Where k is 0
It is assumed to be an integer of up to 7.
【0045】和算について、d1〜d5、d7,d8、
s1,s0,s2,s4,s6を求めるときは通常の和
算を使用し、sft(d1)〜sft(d5)、sft
(d7)、sft(d8)、sft(s1)、sft
(s0)、sft(s2)、sft(s4)、sft
(s6)に0を代入する。 d6,d13,d14,d
24,d31には行アルゴリズム部で記述したクリップ
演算、d23,s3,s5,s7には経歴付き和算を使
用する。For the addition, d1 to d5, d7, d8,
When obtaining s1, s0, s2, s4, and s6, normal addition is used, and sft (d1) to sft (d5), sft
(D7), sft (d8), sft (s1), sft
(S0), sft (s2), sft (s4), sft
Substitute 0 for (s6). d6, d13, d14, d
The clip operation described in the row algorithm section is used for 24 and d31, and the summation with history is used for d23, s3, s5, and s7.
【0046】桁上げ部111において、d23は、sf
t(d23)ビットの左シフト演算により更新される。In the carry unit 111, d23 is sf
It is updated by a left shift operation of t (d23) bits.
【0047】桁上げ部112において、s7は、sft
(s7)ビットの左シフト演算により更新される。In the carry section 112, s7 is sft
(S7) The bit is updated by a left shift operation.
【0048】桁上げ部113において、s3は、sft
(s3)ビットの左シフト演算により更新される。In the carry unit 113, s3 is sft
Updated by (s3) bit left shift operation.
【0049】桁上げ部114において、s5は、sft
(s5)ビットの左シフト演算により更新される。In the carry section 114, s5 is sft
It is updated by a left shift operation of (s5) bits.
【0050】y(k)を求めるときには通常の和算を使
用する。When obtaining y (k), ordinary addition is used.
【0051】積算について、積算部106は積算部10
1と同じ処理によりd16を出力し、積算部110は積
算部105と同じ処理によりd21を出力する。Regarding the multiplication, the multiplication unit 106
D16 is output by the same processing as in 1, and the integrating section 110 outputs d21 by the same processing as the integrating section 105.
【0052】積算部107において、判定動作以外は積
算部102と同じ処理によりd15を出力する。このと
きの判定動作は、d4が16ビットの場合には、2をs
f(d15)、sft(d15)に加算し、d4が15
ビットの場合には、1をsf(d15)、sft(d1
5)に加算するものである。The integrating section 107 outputs d15 by the same processing as that of the integrating section 102 except for the judging operation. At this time, when d4 is 16 bits, 2 is determined as s.
f (d15) and sft (d15), and d4 becomes 15
In the case of a bit, 1 is set to sf (d15) and sft (d1
5) is added.
【0053】積算部108において、判定動作以外は積
算部103と同じ処理によりd22を出力する。このと
きの判定動作は、d14が16ビットで、且つ、sft
(d14)が0の場合、sf(d22)、sft(d2
2)に1を加算するものである。The accumulator 108 outputs d22 by the same processing as that of the accumulator 103 except for the determination operation. The determination operation at this time is that d14 is 16 bits and sft
When (d14) is 0, sf (d22) and sft (d2
1 is added to 2).
【0054】積算部109において、判定動作以外は積
算部104と同じ処理によりd12を出力する。このと
きの判定動作は、d3が16ビットの場合、sf(d1
2)、sft(d12)に1を加算するものである。The accumulator 109 outputs d12 by the same processing as that of the accumulator 104 except for the determination operation. At this time, when d3 is 16 bits, sf (d1
2), 1 is added to sft (d12).
【0055】[0055]
【発明の実施の形態】図5に本発明の第1の実施例を示
す。FIG. 5 shows a first embodiment of the present invention.
【0056】図5(a)において、まず、8×8の行列
で示される12ビットのDCT係数x(i、j)をプリ
スケーリング部501に入力する。ここで、i、jは0
〜7の整数とする。In FIG. 5A, first, a 12-bit DCT coefficient x (i, j) represented by an 8 × 8 matrix is input to the pre-scaling unit 501. Here, i and j are 0
It is assumed to be an integer of up to 7.
【0057】プリスケーリング部501において、最大
値検出部502はx(i,j)の各i行の最大値を検出
し、これを表し得るビット数が12であるとき、桁上げ
数SCL(i)に0を代入し、11であるとき1を、1
0ビット以内のとき2を代入する。In prescaling section 501, maximum value detecting section 502 detects the maximum value of each i row of x (i, j), and when the number of bits that can represent this is 12, carry number SCL (i ) Is substituted for 0, and when it is 11, 1 is set to 1
If it is within 0 bits, 2 is substituted.
【0058】積算部503において、(c(i)×c
(j))に2の17乗を掛けた値を四捨五入整数化した
ものを定数C(i、j)とし、x(i,j)との積算結
果をX(i,j)とする。ここで、c(n)は(数1)
で定義される定数である。In the integrating section 503, (c (i) × c
A value obtained by multiplying (j)) by 2 to the 17th power is rounded to an integer, and the result is a constant C (i, j), and the result of integration with x (i, j) is X (i, j). Here, c (n) is (Equation 1)
Is a constant defined by
【0059】桁下げ部504において、X(i,j)を
(11ーSCL(i)ーCr(i))ビットの丸め機能
付き右シフト演算により16ビットにした結果をPr
(i,j)とする。ここで、Cr(i)を、Cr(7)
=2、Cr(6)=1、それ以外0である整数とする。
次に、Pr(i,j)の64個の要素をi行毎に分割
し、列方向の8個の要素Pr(i,k)を行アルゴリズ
ム部505に入力する。The result of converting X (i, j) to 16 bits by a right shift operation with a rounding function of (11-SCL (i) -Cr (i)) bits in the carry unit 504 is Pr
(I, j). Here, Cr (i) is replaced by Cr (7)
= 2, Cr (6) = 1, otherwise 0.
Next, 64 elements of Pr (i, j) are divided for every i rows, and eight elements Pr (i, k) in the column direction are input to the row algorithm unit 505.
【0060】行アルゴリズム部505の詳細を図5
(b)に示し、各i行毎の要素Pr(i,k)をp
(k)に代入する。ここで、kを0〜7の整数とする。The details of the row algorithm unit 505 are shown in FIG.
(B), the element Pr (i, k) for each i-th row is represented by p
Substitute (k). Here, k is an integer of 0 to 7.
【0061】和算については、d1〜d31、s0〜s
7を求めるときには、前述したクリップ演算を使用す
る。ここで、d5,d6を求めるとき、桁下げの判定に
はp(2)のみを使用する。d1,d3を求めるときも
同様に、p(1)のみで判定する。For the addition, d1 to d31, s0 to s
7 is obtained by using the above-described clip operation. Here, when determining d5 and d6, only p (2) is used for the determination of carry-down. Similarly, when obtaining d1 and d3, determination is made only with p (1).
【0062】s0〜s7を求めた後に1ビットの丸め機
能付き右シフト演算をし、sft(s0)〜sft(s
7)に1を加算する。y(0)〜y(7)は経歴付き和
算により求める。After obtaining s0 to s7, a right shift operation with a 1-bit rounding function is performed, and sft (s0) to sft (sft)
Add 1 to 7). y (0) to y (7) are obtained by summing with a history.
【0063】積算については、積算部509〜513
は、前述した図1(a)の積算部101〜105と同じ
動作をする。ここで、Mb1〜Mb5を13とする。For the integration, the integration units 509 to 513
Performs the same operation as the integration units 101 to 105 in FIG. Here, Mb1 to Mb5 are set to 13.
【0064】行アルゴリズム部505の出力y(k)、
sft(y(k))は、桁下げ部506に入力される。The output y (k) of the row algorithm unit 505,
sft (y (k)) is input to the carry unit 506.
【0065】桁下げ部506において、i行の8個の要
素y(k)に対し、(SCL(i)+Cr(i)ーsf
t(y(k)))ビットの丸め機能付き右シフト演算し
た結果をPr2(i,k)とする。8行すべての結果で
ある64個のPr2(i,j)を求め、これをj列毎に
分割し、行方向の8個の要素Pr2(k,j)を列アル
ゴリズム部507に入力する。In the carry unit 506, (SCL (i) + Cr (i) -sf) is applied to the eight elements y (k) in the i-th row.
The result of the right shift operation with the rounding function of (t (y (k))) bits is defined as Pr2 (i, k). 64 Pr2 (i, j), which are the results of all eight rows, are obtained, divided into j columns, and eight elements Pr2 (k, j) in the row direction are input to the column algorithm unit 507.
【0066】列アルゴリズム部507の詳細を図1
(b)に示す。まず、各j列毎の要素Pr2(k,j)
をp(k)に代入する。d6を前述したクリップ演算に
より求めるとき、桁下げの判定にはp(2)のみを使用
する。それ以外の演算は前述した列アルゴリズム部と同
じであり、Mb1〜Mb5を13とする。y(k)を求
めた後、Pc(k,j)に代入し、桁下げ部508に入
力する。FIG. 1 shows details of the column algorithm unit 507.
(B). First, an element Pr2 (k, j) for each j column
To p (k). When d6 is obtained by the above-described clipping operation, only p (2) is used for the determination of carry-down. Other operations are the same as those of the column algorithm unit described above, and Mb1 to Mb5 are set to 13. After obtaining y (k), it substitutes for Pc (k, j) and inputs it to the carry unit 508.
【0067】桁下げ部508において、全ての列のPc
(k,j)に対し、6ビットの丸め機能付き右シフト演
算をする。該結果がー256以下の場合はー256に、
255以上の場合は255にクリッピングすることによ
り9ビットにし、8×8IDCTの結果であるY(i,
j)を得る。In carry-down section 508, Pc of all columns
A right shift operation with a 6-bit rounding function is performed on (k, j). If the result is -256 or less, the result is -256,
If it is 255 or more, it is clipped to 255 to make it 9 bits, and Y (i,
j) is obtained.
【0068】次に、本発明の第2の実施例を図6に示
す。Next, a second embodiment of the present invention is shown in FIG.
【0069】図6(a)において、まず、8×8の行列
で示される12ビットのDCT係数x(i、j)をプリ
スケーリング部601に入力する。ここで、i、jは0
〜7の整数である。In FIG. 6A, first, a 12-bit DCT coefficient x (i, j) represented by an 8 × 8 matrix is input to a pre-scaling unit 601. Here, i and j are 0
-7.
【0070】プリスケーリング部601において、最大
値検出部602はx(i,j)の64個の要素の最大値
を検出する。この値を表し得るビット数が8以下である
とき、8から該ビット数を引いた値をSCL_Bとす
る。In the prescaling section 601, the maximum value detecting section 602 detects the maximum value of 64 elements of x (i, j). When the number of bits that can represent this value is 8 or less, a value obtained by subtracting the number of bits from 8 is set as SCL_B.
【0071】最大値検出部603は、各i行毎の8個の
要素x(i,k)をSCL_Bビット左シフトしたもの
の中の最大値を検出する。ここで、kは0〜7の整数で
ある。この値を表し得るビット数をnとし、n>9であ
るときSCL(i)=12ーnとし、10>n>7であ
るときSCL(i)=11ーnとする。The maximum value detecting section 603 detects the maximum value among the eight elements x (i, k) for each i row shifted left by SCL_B bits. Here, k is an integer of 0-7. The number of bits that can represent this value is n, SCL (i) = 12−n when n> 9, and SCL (i) = 11−n when 10>n> 7.
【0072】積算部604において、(c(i)×c
(j))に2の17乗を掛けた値を四捨五入整数化した
ものを定数C(i、j)とし、x(i,j)との積算結
果X(i,j)を出力する。ここで、c(n)は(数
1)で定義される定数である。In the integrating section 604, (c (i) × c
A value obtained by multiplying (j)) by 2 to the 17th power is converted to a rounded integer to obtain a constant C (i, j), and an integration result X (i, j) with x (i, j) is output. Here, c (n) is a constant defined by (Equation 1).
【0073】桁下げ部605において、X(i,j)を
(11ーSCL_B−SCL(i)ーCr(i))ビッ
トの丸め機能付き右シフト演算により16ビットにした
ものをPr(i,j)とする。ここで、Cr(i)を、
Cr(7)=2、Cr(6)=1、それ以外0である整
数とする。次に、Pr(i,j)の64個の要素をi行
毎に分割し、列方向の8個の要素Pr(i,k)を行ア
ルゴリズム部606に入力する。The carry-down unit 605 converts X (i, j) to 16 bits by a right shift operation with a rounding function of (11-SCL_B-SCL (i) -Cr (i)) bits to Pr (i, j). j). Here, Cr (i) is
Cr (7) = 2, Cr (6) = 1, and other integers of 0. Next, the 64 elements of Pr (i, j) are divided every i rows, and the eight elements Pr (i, k) in the column direction are input to the row algorithm unit 606.
【0074】行アルゴリズム部606の詳細を図1
(a)に示す。各i行の要素Pr(i,k)をp(k)
に代入する。d5,d6,d1,d3は第1の実施例の
行アルゴリズムと同じ方法で求める。それ以外は前述し
た行アルゴリズムと同じであり、Mb1〜Mb5を13
とし、y(k)、sft(y(k))を出力する。The details of the row algorithm unit 606 are shown in FIG.
(A). The element Pr (i, k) of each i-th row is p (k)
Substitute for d5, d6, d1 and d3 are obtained by the same method as the row algorithm of the first embodiment. Otherwise, it is the same as the row algorithm described above, and Mb1 to Mb5 are 13
And y (k) and sft (y (k)) are output.
【0075】桁下げ部607において、sft(y
(k))の中の最大値を求め、これをsftMに代入す
る。sftMが(SCL(i)+Cr(i))以上の場
合は、y(k)を(sftM−sft(y(k)))ビ
ットの丸め機能付き右シフト演算し、上記以外の場合は
丸め機能の無い右シフト演算したものをPr2(i,
k)に代入する。また、SCL(i)からsftMを減
算し、SCL(i)を更新する。これを8行全てにつき
実行し、64個のPr2(i,j)、8個の更新された
SCL(i)を求める。その後、Pr2(i,j)をj
列毎に分割し、行方向の8個の要素Pr2(k,j)と
8個のSCL(k)を最大値検出部608に入力する。In the carry-down section 607, sft (y
The maximum value in (k)) is obtained, and this is substituted for sftM. If sftM is equal to or more than (SCL (i) + Cr (i)), y (k) is right-shifted with (sftM-sft (y (k))) bits rounding function, otherwise rounding function To the right shift operation without Pr2 (i,
k). Also, sftM is subtracted from SCL (i) to update SCL (i). This is performed for all eight rows to find 64 Pr2 (i, j) and eight updated SCL (i). Then, Pr2 (i, j) is changed to j
Each column is divided, and eight elements Pr2 (k, j) in the row direction and eight SCL (k) are input to the maximum value detection unit 608.
【0076】最大値検出部608において、各j列につ
いて、8個の要素Pr2(k,j)を(SCL(k)+
Cr(k)+2)ビット右シフトした値のうちの最大値
を求める。この値を表し得るビット数を14から差し引
いたものをSCL_c(j)とし、これが2以上のとき
は2とする。これを8列すべてにつき実行し、8個のS
CL_c(j)を求める。In the maximum value detecting section 608, for each j column, eight elements Pr2 (k, j) are converted into (SCL (k) +
The maximum value among the values shifted right by Cr (k) +2) bits is obtained. A value obtained by subtracting the number of bits that can represent this value from 14 is set as SCL_c (j), and is set to 2 when the number is 2 or more. This is performed for all eight columns, and eight S
Find CL_c (j).
【0077】桁下げ部609において、各j列につき、
Pr2(k,j)を(2+SCL(k)+Cr(k)ー
SCL_c(j))ビット丸め機能付きの右シフト演算
したものをPc(k,j)に代入する。In the lowering section 609, for each j column,
Pr2 (k, j) is right-shifted with (2 + SCL (k) + Cr (k) -SCL_c (j)) bit rounding function, and is substituted for Pc (k, j).
【0078】列アルゴリズム部610において、Pc
(k,j)をp(k)に代入する。列アルゴリズム部の
詳細を図6(b)に示す。In the column algorithm section 610, Pc
Substitute (k, j) for p (k). FIG. 6B shows the details of the column algorithm unit.
【0079】和算については、d1〜d23,s1,s
0,s2,s4,s6を求めるときは通常の和算をし、
sft(d1)〜sft(d23)、sft(s1),
sft(s0)、sft(s2),sft(s4),s
ft(s6)に0を代入する。d24,d31には前述
したクリップ演算を使用する。s3,s5,s7、には
前述した経歴付き和算を使用する。For the addition, d1 to d23, s1, s
When obtaining 0, s2, s4, and s6, perform normal addition,
sft (d1) to sft (d23), sft (s1),
sft (s0), sft (s2), sft (s4), s
Substitute 0 for ft (s6). The clip operation described above is used for d24 and d31. For s3, s5, and s7, the above-described summation with history is used.
【0080】桁上げ部626において、s7は、sft
(s7)ビットの左シフト演算により更新される。In the carry section 626, s7 is sft
(S7) The bit is updated by a left shift operation.
【0081】桁上げ部627において、s3は、sft
(s3)ビットの左シフト演算により更新される。In the carry section 627, s3 is sft
Updated by (s3) bit left shift operation.
【0082】桁上げ部628において、s5は、sft
(s5)ビットの左シフト演算により更新される。In carry section 628, s5 is sft
It is updated by a left shift operation of (s5) bits.
【0083】積算について、積算部621は、前述した
図1(a)の積算部101から判定動作を除いた処理に
よりd16を出力する。積算部624も図1(a)の積
算部104から判定動作を除いた処理によりd12を出
力する。Regarding the integration, the integrating section 621 outputs d16 by the processing except for the judging operation from the integrating section 101 of FIG. 1A described above. The accumulating section 624 also outputs d12 by the processing excluding the determining operation from the accumulating section 104 of FIG.
【0084】積算部622は、判定動作以外は図1
(a)の積算部102と同じ処理によりd15を出力す
る。このときの判定動作は、d4が15ビット以上の場
合には、sf(d15)、sft(d15)に1を加算
するものである。The accumulator 622 operates as shown in FIG.
D15 is output by the same processing as that of the integrating unit 102 in (a). The determination operation at this time is to add 1 to sf (d15) and sft (d15) when d4 is 15 bits or more.
【0085】積算部623は、判定動作以外は図1
(b)の積算部108と同じ処理によりd22を出力す
る。このときの判定動作は、d14が16ビットの場合
には、sf(d22)、sft(d22)に1を加算す
るものである。The accumulator 623 operates as shown in FIG.
D22 is output by the same process as the integration unit 108 in (b). The determination operation at this time is to add 1 to sf (d22) and sft (d22) when d14 is 16 bits.
【0086】積算部625は、図1(a)の積算部10
5と同じ処理によりd21を出力する。y(k)を求め
た後、これをPc2(k,j)に代入し、桁下げ部61
1に入力する。The accumulating section 625 corresponds to the accumulating section 10 shown in FIG.
D21 is output by the same processing as in step 5. After obtaining y (k), it is substituted for Pc2 (k, j),
Enter 1
【0087】桁下げ部611において、各j列の8個の
要素Pc2(k,j)を(4+SCL_B+SCL_c
(j))ビットの丸め機能付き右シフト演算する。該結
果がー256以下の場合はー256に、255以上の場
合は255にクリッピングすることにより9ビットにし
たものをY(k,j)に代入する。8列全てにつきこれ
を実行し、8×8IDCTの64個の出力結果であるY
(i,j)を得る。In the carry unit 611, the eight elements Pc2 (k, j) in each j column are converted to (4 + SCL_B + SCL_c
(J)) Right shift operation with bit rounding function is performed. If the result is less than or equal to -256, the result is clipped to -256, and if it is more than 255, 255 is substituted into Y (k, j). This is performed for all eight columns, and 64 output results of 8 × 8 IDCT, Y
(I, j) is obtained.
【0088】次に、本発明の第3の実施例を図7に示
す。本実施例では、演算器への入力値の大きさにより桁
下げ数を決定する機能、及び、演算アルゴリズムの途中
での丸め機能を除くことを前提とし、この場合に必要と
されるビット数の削減方法を示す。よって、演算には1
6ビット以上の整数を使用する。Next, a third embodiment of the present invention is shown in FIG. In this embodiment, it is assumed that the function of determining the number of carry-downs according to the magnitude of the input value to the arithmetic unit and the rounding function in the middle of the arithmetic algorithm are excluded, and the number of bits required in this case is reduced. The method of reduction is shown. Therefore, 1
Use an integer of 6 bits or more.
【0089】図7(a)において、まず、8×8の行列
で示される12ビットのDCT係数x(i、j)をプリ
スケーリング部701に入力する。ここで、i、jは0
〜7までの整数とする。積算部702において、(c
(i)×c(j))に2の16乗を掛けた値を四捨五入
整数化したものを定数C(i、j)とし、x(i,j)
との積算結果X(i,j)を出力する。ここで、c
(n)は(数1)で定義される定数である。桁下げ部7
03において、X(i,j)を5ビットの右シフト演算
した値をPr(i,j)とする。Pr(i,j)は21
ビットの整数である。次に、Pr(i,j)の64個の
要素をi行毎に分割し、 列方向の8個の要素Pr
(i,k)を行アルゴリズム部704に入力する。ここ
で、kは0〜7までの整数とする。In FIG. 7A, first, a 12-bit DCT coefficient x (i, j) represented by an 8 × 8 matrix is input to the pre-scaling unit 701. Here, i and j are 0
It is assumed to be an integer of up to 7. In the integrating unit 702, (c
A value obtained by multiplying (i) × c (j)) by 2 to the 16th power is rounded to an integer C (i, j), and x (i, j)
And outputs the integration result X (i, j). Where c
(N) is a constant defined by (Equation 1). Carrying part 7
In 03, a value obtained by right-shifting X (i, j) by 5 bits is set to Pr (i, j). Pr (i, j) is 21
It is a bit integer. Next, 64 elements of Pr (i, j) are divided every i rows, and 8 elements Pr in the column direction
(I, k) is input to the row algorithm unit 704. Here, k is an integer from 0 to 7.
【0090】行アルゴリズム部704の詳細を図7
(b)に示す。まず、各i行の要素Pr(i,k)をp
(k)に代入する。ここで、黒丸は和算器を示す。積算
器706、積算器708は、362との積算結果を8ビ
ットの右シフト演算した値を出力する。積算器707
は、669との積算結果を8ビットの右シフト演算した
値を出力する。積算器709は、277との積算結果を
8ビットの右シフト演算した値を出力する。積算器71
0は、196との積算結果を8ビットの右シフト演算し
た値を出力する。桁下げ部711は2ビットの右シフト
演算により19ビットのy(k)を得、これをPc
(i,k)に代入する。行アルゴリズムにおける全ての
和算、積算には最低でも23ビットを必要とする。The details of the row algorithm unit 704 are shown in FIG.
(B). First, the element Pr (i, k) of each i row is p
Substitute (k). Here, black circles indicate adders. The integrators 706 and 708 output a value obtained by performing an 8-bit right shift operation on the result of integration with 362. Integrator 707
Outputs a value obtained by performing an 8-bit right shift operation on the result of integration with 669. The integrator 709 outputs a value obtained by performing an 8-bit right shift operation on the result of integration with 277. Integrator 71
0 outputs a value obtained by performing an 8-bit right shift operation on the result of integration with 196. The carry unit 711 obtains 19-bit y (k) by a 2-bit right shift operation,
Substitute (i, k). All additions and accumulations in the row algorithm require at least 23 bits.
【0091】8行全てにつき行アルゴリズムを実行した
後、Pc(i,j)をj列毎に分割し、行方向の8個の
要素Pc(k,j)を列アルゴリズム部705に入力す
る。After executing the row algorithm for all eight rows, Pc (i, j) is divided into j columns, and eight elements Pc (k, j) in the row direction are input to the column algorithm unit 705.
【0092】列アルゴリズム部705の詳細を図7
(c)に示す。まず、各j列の要素Pc(k,j)をp
(k)に代入する。ここで、黒丸は和算器を示す。桁下
げ部712は1ビットの右シフト演算を実行する。積算
器713〜積算器717は図7(b)の積算器706〜
積算器710と同じ動作をする。桁下げ部718は8ビ
ットの丸め機能付き右シフト演算を行う。該結果がー2
56以下の場合はー256に、255以上の場合は25
5にクリッピングすることにより9ビットのy(k)を
得る。さらに、これをY(k,j)に代入する。列アル
ゴリズム部におけるすべての和算、積算には最低でも2
0ビットを必要とする。The details of the column algorithm unit 705 are shown in FIG.
It is shown in (c). First, the element Pc (k, j) of each j column is p
Substitute (k). Here, black circles indicate adders. The carry unit 712 performs a 1-bit right shift operation. The integrators 713 to 717 correspond to the integrators 706 to 706 in FIG.
The same operation as that of the integrator 710 is performed. The carry unit 718 performs an 8-bit right shift operation with a rounding function. The result is -2
If it is 56 or less, -256; if it is 255 or more, it is 25.
By clipping to 5, 9-bit y (k) is obtained. Further, this is substituted for Y (k, j). At least 2 for all addition and multiplication in the column algorithm section
Requires 0 bits.
【0093】8列全て対し列アルゴリズムを実行し、8
×8IDCTの64個の出力結果Y(i、j)を得る。The column algorithm is executed for all eight columns, and
The 64 output results Y (i, j) of the × 8 IDCT are obtained.
【0094】[0094]
【発明の効果】本発明によれば、8×8IDCTを16
ビットの整数演算で実行できるので、16ビット演算を
4並列同時に実行できるような、特殊命令を備えた64
ビットプロセッサで処理できる。この場合のIDCTの
演算量は約1/4に減少する。According to the present invention, the 8 × 8 IDCT is 16
Since it can be executed by an integer operation of bits, it is possible to execute four 16-bit operations in parallel at the same time.
Can be processed by a bit processor. In this case, the computation amount of the IDCT is reduced to about 1/4.
【0095】また、演算に必要とするビット数を削減で
きる点から、本アルゴリズムを使用した8×8IDCT
を専用LSIで構成する場合、配線数、フリップフロッ
プ数を削減でき、LSIの面積を削減できる。Also, since the number of bits required for the operation can be reduced, the 8 × 8 IDCT
Is composed of a dedicated LSI, the number of wirings and the number of flip-flops can be reduced, and the area of the LSI can be reduced.
【図1】本発明による8×8IDCTの行アルゴリズ
ム、及び列アルゴリズムの構成を示す図。FIG. 1 is a diagram showing a configuration of a row algorithm and a column algorithm of 8 × 8 IDCT according to the present invention.
【図2】従来のIDCTアルゴリズムを示す図。FIG. 2 is a diagram showing a conventional IDCT algorithm.
【図3】本発明における、結果を常に16ビット以内の
値とする和算部の構成を示す図。FIG. 3 is a diagram illustrating a configuration of a summing unit according to the present invention that always sets a result to a value within 16 bits.
【図4】本発明における、結果を常に16ビット以内の
値とする積算部の構成を示す図。FIG. 4 is a diagram illustrating a configuration of an integrating unit that always sets a result to a value within 16 bits according to the present invention.
【図5】本発明の第1の実施例を示す図。FIG. 5 is a diagram showing a first embodiment of the present invention.
【図6】本発明の第2の実施例を示す図。FIG. 6 is a diagram showing a second embodiment of the present invention.
【図7】本発明の第3の実施例を示す図。FIG. 7 is a diagram showing a third embodiment of the present invention.
101〜110・・・積算部、111〜114・・・桁
上げ部、201・・・プリスケーリング部、202・・
・演算部、203・・・ハフマン復号部、204・・・
逆量子化部、205・・・プリスケーリング部、20
6,207・・・演算部、301・・・比較部、302
・・・判定部、303・・・桁下げ部、304・・・演
算部、305・・・経歴加算部、401・・・定数部、
402・・・桁下げ部、403・・・判定部、501・
・・プリスケーリング部、502・・・最大値検出部、
503・・・積算部、504,506,508・・・桁
下げ部、505・・・行アルゴリズム部、507・・・
列アルゴリズム部、509〜513・・・積算部、60
1・・・プリスケーリング部、602,603,608
・・・最大値検出部、604・・・積算部、605,6
07,609,611・・・桁下げ部、606・・・行
アルゴリズム部、610・・・列アルゴリズム部、62
1〜625・・・積算部、626〜628・・・桁上げ
部、701・・・プリスケーリング部、702・・・積
算部、703・・・桁下げ部、704・・・行アルゴリ
ズム部、705・・・列アルゴリズム部、706〜71
0,713〜717・・・積算部、711,712,7
18・・・桁下げ部。························ 101 to 110 ······················
-Operation unit, 203 ... Huffman decoding unit, 204 ...
Inverse quantization unit, 205... Prescaling unit, 20
6,207: arithmetic unit, 301: comparison unit, 302
··· Judgment unit, 303 ··· Carry down unit, 304 ··· Operation unit, 305 ··· History adding unit, 401 ··· Constant unit,
402: carry-down unit, 403: judgment unit, 501
..Pre-scaling section, 502... Maximum value detecting section,
503: accumulation unit, 504, 506, 508: carry unit, 505: row algorithm unit, 507 ...
Column algorithm part, 509 to 513...
1: Prescaling unit, 602, 603, 608
... Maximum value detector, 604 ... Integrator, 605,6
07, 609, 611: carry-down unit, 606: row algorithm unit, 610: column algorithm unit, 62
1 to 625: accumulation unit, 626 to 628: carry unit, 701: prescaling unit, 702: accumulation unit, 703: carry unit, 704: row algorithm unit, 705... Column algorithm section, 706 to 71
0, 713 to 717: integrating section, 711, 712, 7
18 ... Carry-down part.
Claims (3)
で表されたDCT係数x(i,j)をプリスケーリング
部に入力し、該プリスケーリング部において、nを1〜
7の整数、SQRT(2)を2の平方根とし、 c(n)を(1/2×cos(n×π/16))、 c(0)をSQRT(2)/4とし、x(i,j)と
(c(i)×c(j))の乗算結果pr(i,j)を出
力し、該64個のPr(i,j)をi行毎に分割し、各
i行に対し、kを0〜7の整数とし、8個の列要素pr
(i,k)をp(k)に代入し、p(k)を行アルゴリ
ズム部に入力し、該行アルゴリズム部において、kが偶
数のときの演算について、 p(2)+p(6)をd5,p(2)−p(6)をd
6、 p(0)+p(4)をd7,p(0)−p(4)をd8
とし、 b1をSQRT(2)とし、b1×d6をd16とし、 d5ーd16をd23とし、 d7+d5をs0、d7ーd5をs6、d8−d23を
s4、d8+d23をs2とし、kが奇数のときの演算
について、 p(1)+p(7)をd1,p(1)−p(7)をd
3、 p(5)+p(3)をd2,p(5)−p(3)をd4
とし、 d1ーd2をd14、d1+d2をs1、d4−d3を
d13とし、 b2を(1/(cos(6π/16))とし、b2×d
4をd15とし、 b4を(1/(cos(2π/16))とし、b4×d
3をd12とし、 b3をSQRT(2)とし、b3×d14をd22と
し、 b5を(SQRT(2)/(2×cos(2π/1
6))とし、 b5×d13をd21とし、 d21−d15をd31,d12−d21をd24と
し、 s1−d24をs5、s5+d22をs3,s3+d3
1をs7とし、kの偶数部、奇数部それぞれの演算結果
について、 s0+s1をy(0)、s0−s1をy(7)、 s4+s5をy(6)、s4−s5をy(1)、 s2+s3をy(2)、s2ーs3をy(5)、 s6+s7をy(4)、s6ーs7をy(3)とし、行
アルゴリズムの出力結果y(k)を得、各i行毎のy
(k)をpc(i,k)に代入し、8行すべてにつきこ
れを繰り返し、64個のpc(i,j)を求めた後、該
pc(i,j)をj列毎に分割し、j列の8個の行方向
の要素pc(k,j)をp(k)に代入し、p(k)を
列アルゴリズム部に入力し、該列アルゴリズム部におい
て、行方向と同じアルゴリズムを実行しy(k)を得、
各j列毎のy(k)をyc(k,j)に代入し、8列す
べてにつきこれを繰り返しyc(i、j)を求めるID
CTアルゴリズムにおいて、 プリスケーリング部において、Mを16または17と
し、(c(i)×c(j))に2のM乗を掛けた値を四
捨五入整数化したものをC(i、j)とし、各i行につ
いての桁上げ数をSCL(i)とし、Cr(i)を、C
r(7)は0以上2以下の整数、Cr(6)は0以上1
以下の整数、それ以外0である整数とし、(x(i,
j)×C(i,j))を(M−6ーSCL(i)ーCr
(i))ビットの丸め機能付き右シフト演算した結果P
r(i,j)を出力し、これをi行毎に分割し、i行の
Pr(i,k)をp(k)に代入し、これを行アルゴリ
ズム部に入力し、 行アルゴリズム部での和算において、 16ビット以内の整数z1とz2の和算について、z
1,z2の現在にいたるまでの桁下げビット数をsft
(z1)、sft(z2)とし、両者の大きい方をsf
tMとし、 sftd(z1)を(sftM−sft(z1))、 sftd(z2)を(sftMーsft(z2))と
し、 z1をsftd(z1)ビット、z2をsftd(z
2)ビットの丸め機能付き右シフト演算したものをZ
1,Z2とし、Z1とZ2の和算を実行した結果をz3
とし、sft(z3)にsftMを代入する演算を、経
歴付き和算とし、 これを使用して、(z1+z2)、(z1−z2)の結
果であるz3を常に16ビット以内にするとき、 z3=z1+z2を得る場合、z1、z2の極性が同じ
であり、且つ、 z1をsftd(z1)ビット、z2をsftd(z
2)ビット右シフトしたもののいずれかが16ビットの
とき、 z1を(sftd(z1)+1)ビット、 z2を(sftd(z1)+1)ビット丸め機能付きの
右シフト演算した値をZ1,Z2に代入し、(Z1+Z
2)を実行して、常に16ビット以内の整数であるz3
を得、sft(z3)に(sftM+1)を代入する演
算を行い、 z1,z2の極性が同じであり、且つ、z1をsftd
(z1)ビット、z2をsftd(z2)ビット右シフ
トしたものが両者とも15ビット以下のとき、 または、z1,z2の極性が異なるときは、 z1をsftd(z1)ビット、z2をsftd(z
2)ビット丸め機能付きの右シフト演算した値をZ1,
Z2に代入し、(Z1+Z2)を実行しz3を得、sf
t(z3)にsftMを代入し、 z3=z1ーz2を得る場合、z1、z2の極性が異な
り、且つ、 z1をsftd(z1)ビット、z2をsftd(z
2)ビット右シフトしたもののいずれかが16ビットの
とき、 z1を(sftd(z1)+1)ビット、 z2を(sftd(z2)+1)ビット丸め機能付きの
右シフト演算した値をZ1,Z2に代入し、(Z1ーZ
2)を実行して、常に16ビット以内の整数であるz3
を得、sft(z3)に(sftM+1)を代入する演
算を行い、 z1,z2の極性が異なり、且つ、z1をsftd(z
1)ビット、z2をsftd(z2)ビット右シフトし
たものが両者とも15ビット以下のとき、 または、z1,z2の極性が同じであるときは、 z1をsftd(z1)ビット、z2をsftd(z
2)ビット丸め機能付きの右シフト演算した値をZ1,
Z2に代入し、(Z1ーZ2)を実行しz3を得、sf
t(z3)にsftMを代入する演算方法をクリップ演
算とし、 sft(p(k))に0を代入し、行アルゴリズム部に
おける全ての和算をクリップ演算で実行し、 行アルゴリズム部での積算において、b1に2のMb1
乗を掛けた値を四捨五入整数化したものをB1とし、
(d6×B1)をD16、b2に2のMb2乗を掛けた
値を四捨五入整数化したものをB2とし、(d4×B
2)をD15、b3に2のMb1乗を掛けた値を四捨五
入整数化したものをB3とし、(d14×B3)をD2
2、b4に2のMb4乗を掛けた値を四捨五入整数化し
たものをB4とし、(d3×B4)をD12、b5に2
のMb5乗を掛けた値を四捨五入整数化したものをB5
とし、(d13×B5)をD21とし、 d12を求めるとき、sf(d12)にMb4、sft
(d12)にsft(d3)を代入し、d3が16ビッ
トで、且つ、sft(d3)が0の場合、sf(d1
2)、sft(d12)に1を加算し、d12に、D1
2をsf(d12)ビット丸め機能付き右シフト演算し
たものを代入し、 d15を求めるとき、sf(d15)にMb2,sft
(d15)にsft(d4)を代入し、 d4が16ビットで、且つ、sft(d4)が0の場
合、sf(d15)、sft(d15)に2を加算し、 d4が16ビットで、且つ、sft(d4)が1の場
合、または、d4が15ビットの場合 sf(d15)、sft(d15)に1を加算し、d1
5に、D15をsf(d15)ビット丸め機能付き右シ
フト演算したものを代入し、 d16を求めるとき、sf(d16)にMb1、sft
(d16)にsft(d6)を代入し、d6が16ビッ
トで、且つ、sft(d6)が0の場合、sf(d1
6)、sft(d16)に1を加算し、d16に、D1
6をsf(d16)ビット丸め機能付き右シフト演算し
たものを代入し、 d21を求めるとき、sf(d21)にMb5、sft
(d21)にsft(d13)を代入し、d21に、D
21をsf(d21)ビット丸め機能付き右シフト演算
したものを代入し、 d22を求めるとき、sf(d22)にMb3、sft
(d22)にsft(d14)を代入し、d14が16
ビットの場合、sf(d22)、sft(d22)に1
を加算し、d22に、D22をsf(d22)ビット丸
め機能付き右シフト演算したものを代入し、 y(k)を求めた後、y(k)を(SCL(i)+Cr
(i)ーsft(y(k)))ビットの丸め機能付き右
シフト演算をしたものをPc(i,k)に代入し、8行
すべてにつきこれを繰り返し、64個のPc(i,j)
を求めた後、該Pc(i,j)をj列毎に分割し、j列
の8個の要素Pc(k,j)をp(k)に代入し、これ
を列アルゴリズム部に入力し、 列アルゴリズム部において、 和算については、d1〜d5、d7,d8、s1,s
0,s2,s4,s6を求めるときは通常の和算をし、
sft(d1)〜sft(d5)、sft(d7),s
ft(d8)、sft(s1),sft(s0)、sf
t(s2)、sft(s4)、sft(s6)に0を代
入し、d6,d13,d14,d24,d31には、行
アルゴリズム部で記述したクリップ演算、d23,s
3,s5,s7には経歴付き和算を使用し、d23に
は、自らをsft(d23)ビット左シフト演算したも
のを代入し、s0〜s7に、自らをsft(s0)〜s
ft(s7)ビットの左シフト演算したものを代入し、
y(k)を求めるときには通常の和算を使用し、 積算について、Mb1〜Mb5、B1〜B5、D16、
D15、D22,D12、D21の定義を行アルゴリズ
ムで記述したもと同じとし、d16,d21は行アルゴ
リズムと同様に求め、 d12を求めるとき、sf(d12)にMb4を、sf
t(d12)に0を代入し、d3が16ビットの場合、
sf(d12)、sft(d12)に1を加算し、d1
2に、D12をsf(d12)ビット丸め機能付き右シ
フト演算したものを代入し、 d15を求めるとき、sf(d15)にMb2を、sf
t(d15)に0を代入し、d4が16ビットの場合、
sf(d15)、sft(d15)に2を加算し、d4
が15ビットの場合、sf(d15)、sft(d1
5)に1を加算し、d15に、D15をsf(d15)
ビット丸め機能付き右シフト演算したものを代入し、 d22を求めるとき、sf(d22)にMb3、sft
(d22)にsft(d14)を代入し、d14が16
ビットで、且つ、sft(d14)が0の場合、sf
(d22)、sft(d22)に1を加算し、d22
に、D22をsf(d22)ビット丸め機能付き右シフ
ト演算したものを代入し、 y(k)を求めた後、y(k)を6ビットの丸め機能付
き右シフト演算し、その結果がー256以下の場合はー
256に、255以上の場合は255にクリッピングし
たものをY(i,k)に代入し、8列すべてにつきこれ
を繰り返し、Y(i、j)を求めることを特徴としたI
DCTの整数化法。1. A DCT coefficient x (i, j) represented by an 8 × 8 matrix is input to a pre-scaling unit, where i and j are integers from 0 to 7, and n is 1 in the pre-scaling unit. ~
An integer of 7, SQRT (2) is a square root of 2, c (n) is (1/2 × cos (n × π / 16)), c (0) is SQRT (2) / 4, and x (i , J) and (c (i) × c (j)) are output, and the 64 Pr (i, j) are divided into i rows, and On the other hand, k is an integer of 0 to 7 and eight column elements pr
(I, k) is substituted for p (k), and p (k) is input to a row algorithm unit. In the row algorithm unit, p (2) + p (6) is calculated for an operation when k is an even number. d5, p (2) -p (6) is d
6, p (0) + p (4) is d7, p (0) -p (4) is d8
When b1 is SQRT (2), b1 × d6 is d16, d5−d16 is d23, d7 + d5 is s0, d7−d5 is s6, d8−d23 is s4, d8 + d23 is s2, and k is an odd number. , P (1) + p (7) is d1, and p (1) -p (7) is d
3, p (5) + p (3) is d2, p (5) -p (3) is d4
D1−d2 is d14, d1 + d2 is s1, d4−d3 is d13, b2 is (1 / (cos (6π / 16)), b2 × d
4 as d15, b4 as (1 / (cos (2π / 16)), b4 × d
3 as d12, b3 as SQRT (2), b3 × d14 as d22, and b5 as (SQRT (2) / (2 × cos (2π / 1)
6)), b5 × d13 is d21, d21-d15 is d31, d12-d21 is d24, s1-d24 is s5, s5 + d22 is s3, s3 + d3
Let 1 be s7, and for the calculation results of the even and odd parts of k, s0 + s1 is y (0), s0-s1 is y (7), s4 + s5 is y (6), s4-s5 is y (1), s2 + s3 is y (2), s2-s3 is y (5), s6 + s7 is y (4), s6-s7 is y (3), and the output result y (k) of the row algorithm is obtained. y
(K) is substituted for pc (i, k), and this is repeated for all eight rows. After obtaining 64 pc (i, j), the pc (i, j) is divided into j columns. , J, the eight row-directional elements pc (k, j) of column j are substituted for p (k), and p (k) is input to the column algorithm unit. To get y (k),
ID for substituting y (k) for each j column into yc (k, j) and repeating this for all eight columns to obtain yc (i, j)
In the CT algorithm, in the pre-scaling unit, M is set to 16 or 17, and a value obtained by multiplying (c (i) × c (j)) by 2 to the power of M is rounded to C (i, j). , The carry number for each i row is SCL (i), and Cr (i) is
r (7) is an integer of 0 to 2; Cr (6) is 0 to 1
The following integers, and other integers that are 0, (x (i,
j) × C (i, j)) by (M-6-SCL (i) -Cr
(I) Result P of right shift operation with bit rounding function
r (i, j) is output, this is divided for every i rows, Pr (i, k) of the i rows is substituted for p (k), and this is input to the row algorithm section. In addition of integers z1 and z2 within 16 bits, z
Sft is the number of carry bits of 1, z2 up to the present
(Z1) and sft (z2), and the larger of the two is sf
tM, sftd (z1) is (sftM-sft (z1)), sftd (z2) is (sftM-sft (z2)), z1 is sftd (z1) bits, and z2 is sftd (z
2) The result of right shift operation with bit rounding function is Z
1, Z2, and the result of executing the addition of Z1 and Z2 is z3
When the operation of substituting sftM for sft (z3) is a sum with history, and using this, z3, which is the result of (z1 + z2) and (z1-z2), is always within 16 bits, z3 = Z1 + z2, the polarities of z1 and z2 are the same, z1 is sftd (z1) bits, and z2 is sftd (z
2) When any of the right-shifted bits is 16 bits, z1 is (sftd (z1) +1) bits, and z2 is the right-shifted value with rounding function of (sftd (z1) +1) bits to Z1 and Z2. Substituting, (Z1 + Z
2) is performed, and z3 which is always an integer within 16 bits
And perform an operation of substituting (sftM + 1) for sft (z3). The polarities of z1 and z2 are the same, and z1 is sftd
When both (z1) bits and z2 shifted right by sftd (z2) bits are 15 bits or less, or when the polarities of z1 and z2 are different, z1 is sftd (z1) bits, and z2 is sftd (z
2) The right-shifted value with the bit rounding function is Z1,
Substituting into Z2, executing (Z1 + Z2) to obtain z3, sf
When sftM is substituted for t (z3) to obtain z3 = z1−z2, the polarities of z1 and z2 are different, z1 is sftd (z1) bits, and z2 is sftd (z
2) When any of the right-shifted bits is 16 bits, z1 is (sftd (z1) +1) bits, z2 is (sftd (z2) +1) bits, and the right-shifted values with the rounding function are added to Z1 and Z2. Substituting, (Z1-Z
2) is performed, and z3 which is always an integer within 16 bits
And perform an operation of substituting (sftM + 1) for sft (z3). The polarities of z1 and z2 are different, and z1 is changed to sftd (z
1) bits and z2 shifted right by sftd (z2) bits are both 15 bits or less, or when the polarities of z1 and z2 are the same, z1 is sftd (z1) bits, and z2 is sftd ( z
2) The right-shifted value with the bit rounding function is Z1,
Substituting into Z2, executing (Z1-Z2) to obtain z3, sf
The operation method of substituting sftM for t (z3) is a clip operation, substituting 0 for sft (p (k)), performing all the additions in the row algorithm unit by the clip operation, and integrating in the row algorithm unit. , Where b1 is 2 Mb1
B1 is a value obtained by rounding the value obtained by multiplying the power to an integer,
(D6 × B1) is D16, the value obtained by multiplying b2 by 2 Mb2 and rounded to an integer is B2, and (d4 × B
2) is D15, a value obtained by multiplying b3 by 2 to the power of Mb1 and rounded to an integer is B3, and (d14 × B3) is D2.
The value obtained by multiplying 2 and b4 by 2 to the power of Mb4 is rounded to an integer, and the resulting value is B4, and (d3 × B4) is calculated by dividing D12 and b5 by 2
The value obtained by multiplying the value obtained by multiplying the power of
When (d13 × B5) is D21 and d12 is obtained, sf (d12) is Mb4, sft
Substituting sft (d3) for (d12), if d3 is 16 bits and sft (d3) is 0, sf (d1
2), 1 is added to sft (d12), and D1 is added to d12.
2 is substituted with the result of right shift operation with sf (d12) bit rounding function. When d15 is obtained, Mb2 and sft are used for sf (d15).
Substituting sft (d4) for (d15), if d4 is 16 bits and sft (d4) is 0, add 2 to sf (d15) and sft (d15), and d4 is 16 bits, When sft (d4) is 1 or when d4 is 15 bits, 1 is added to sf (d15) and sft (d15), and d1
5 is substituted with the value obtained by performing a right shift operation with sf (d15) bit rounding function on D15. When d16 is obtained, Mb1 and sft are used for sf (d16).
Substituting sft (d6) for (d16), if d6 is 16 bits and sft (d6) is 0, sf (d1
6), 1 is added to sft (d16), and D1 is added to d16.
6 is substituted with the result of right shift operation with sf (d16) bit rounding function, and when d21 is obtained, sf (d21) is Mb5, sft
Substituting sft (d13) for (d21), D21 for d21
21 is substituted with the result of right shift operation with sf (d21) bit rounding function, and when d22 is obtained, sf (d22) is Mb3, sft
Substituting sft (d14) for (d22), d14 becomes 16
In the case of bits, sf (d22) and sft (d22) are 1
Is added to d22, and the value obtained by performing a right shift operation with sf (d22) bit rounding function on D22 is substituted for d22. After obtaining y (k), y (k) is converted to (SCL (i) + Cr
(I) -sft (y (k))) A right-shift operation with a rounding function of bits is substituted for Pc (i, k), and this operation is repeated for all eight rows to obtain 64 Pc (i, j). )
Is obtained, the Pc (i, j) is divided into j columns, and the eight elements Pc (k, j) in the j columns are substituted for p (k), which is input to the column algorithm unit. , In the column algorithm section, regarding the addition, d1 to d5, d7, d8, s1, s
When obtaining 0, s2, s4, and s6, perform normal addition,
sft (d1) to sft (d5), sft (d7), s
ft (d8), sft (s1), sft (s0), sf
0 is substituted into t (s2), sft (s4), and sft (s6), and d6, d13, d14, d24, and d31 are clip operations described in the row algorithm section, d23, s
3, s5, and s7 are used as summations with a history, and d23 is substituted with sft (d23) bits left-shifted, and sft (s0) to s0 are substituted for s0 to s7.
ft (s7) -bit left-shifted operation is substituted,
When obtaining y (k), normal summation is used. For integration, Mb1 to Mb5, B1 to B5, D16,
The definitions of D15, D22, D12, and D21 are the same based on the description of the row algorithm, and d16 and d21 are obtained in the same manner as the row algorithm. When d12 is obtained, Mb4 is set to sf (d12), and sf
Substituting 0 into t (d12), and when d3 is 16 bits,
One is added to sf (d12) and sft (d12), and d1
2 is substituted with a value obtained by performing a right shift operation with sf (d12) bit rounding function on D12, and when d15 is obtained, Mb2 is set to sf (d15) and sf
Substituting 0 into t (d15), and when d4 is 16 bits,
2 is added to sf (d15) and sft (d15), and d4
Is 15 bits, sf (d15), sft (d1
Add 1 to 5), and add d15 to d15 as sf (d15)
Substituting the result of the right shift operation with the bit rounding function to obtain d22, Mb3 and sft are used for sf (d22).
Substituting sft (d14) for (d22), d14 becomes 16
Bit and sft (d14) is 0, sf
(D22), 1 is added to sft (d22), and d22
Is substituted for sf (d22) bits with a right shift operation with a rounding function, and after calculating y (k), y (k) is right shifted with a 6-bit rounding function. If it is less than 256, it is substituted by -256, and if it is more than 255, the value clipped to 255 is substituted into Y (i, k), and this is repeated for all eight columns to obtain Y (i, j). I
Integer method of DCT.
和算に関し、d1〜d31、s0〜s7を求めるときに
クリップ演算を使用し、s0〜s7を求めた後に1ビッ
トの丸め機能付き右シフト演算をし、sft(s0)〜
sft(s7)に1を加算し、y(0)〜y(7)を経
歴付き和算により求めることを特徴としたIDCTの整
数化法。2. The method according to claim 1, wherein the summation in the row algorithm section uses a clipping operation when obtaining d1 to d31 and s0 to s7, and after obtaining s0 to s7, a 1-bit right with rounding function. After performing a shift operation, sft (s0) ~
An IDCT integerization method characterized in that 1 is added to sft (s7) and y (0) to y (7) are obtained by summing with a history.
(k)を求めた後、sft(y(k))の中の最大値を
求め、これをsftMに代入し、sftMが(SCL
(i)+Cr(i))以上のとき、y(k)を(sfM
−sft(y(k)))ビットの丸め機能付き右シフト
演算し、上記以外のとき丸め機能の無い右シフト演算
し、該結果をPc(i,k)に代入し、SCL(i)か
らsftMを減算し、8行すべてにつきこれを繰り返
し、64個のPc(i,j)、8個の更新されたSCL
(i)を求めた後、 Pc(i,j)をj列毎に分割し、各j列の8個の要素
Pc(k,j)を(SCL(k)+Cr(k)+2)ビ
ット右シフトした値のうちの最大値を求め、14からこ
れを表し得るビット数を差し引いた値をSCL_c
(j)とし、これが2以上の場合2とし、Pc(k,
j)に自らを(2+SCL(k)+Cr(k)ーSCL
_c(j))ビット丸め機能付きの右シフト演算したも
のを代入し、これを列アルゴリズム部に入力し、 列アルゴリズム部において、和算については、d1〜d
23、s0,s1,s2,s4、s6を求めるときは通
常の和算をし、sft(d1)〜sft(d23)、s
ft(s0),sft(s1),sft(s2),sf
t(s4),sft(s6)に0を代入し、d31,d
24にはクリップ演算、s5,s3,s7には経歴付き
和算を使用し、s3に自らをsft(s3)ビットの左
シフト演算したものを代入し、s5に自らをsft(s
5)ビットの左シフト演算したものを代入し、s7に自
らをsft(s7)ビットの左シフト演算したものを代
入し、y(k)を求めるときには通常の和算を使用し、
積算については、D16をMb1ビット、D12をM
b4ビット,D21をMb5ビット丸め機能付き右シフ
ト演算したものをd16,d12,d21とし、sft
(d16),sft(d12),sft(d21)に0
を代入し、 d15を求めるとき、sf(d15)にMb2を、sf
t(d15)に0を代入し、d4が15ビット以上の場
合、sf(d15)、sft(d15)に1を加算し、
d15に、D15をsf(d15)ビット丸め機能付き
右シフト演算したものを代入し、 d22を求めるとき、sf(d22)にMb3を、sf
t(d22)に0を代入し、d14が16ビットの場
合、sf(d22)、sft(d22)に1を加算し、
d22に、D22をsf(d22)ビット丸め機能付き
右シフト演算したものを代入し、 y(k)を求めた後、y(k)を(4+SCL_c
(j))ビットの丸め機能付き右シフト演算し、その結
果がー256以下の場合ー256に、255以上の場合
255にクリッピングしたものをY(k,j)に代入
し、8列すべてにつきこれを繰り返し、Y(i、j)を
求めることを特徴としたIDCTの整数化法。3. The method according to claim 1, wherein y
After obtaining (k), the maximum value of sft (y (k)) is obtained, and this is substituted for sftM.
(I) + Cr (i)), y (k) is set to (sfM
−sft (y (k))) Right shift operation with a rounding function of bits, and in other cases, a right shift operation without a rounding function is performed, and the result is substituted into Pc (i, k), and the result is substituted from SCL (i). Subtract sftM and repeat for all 8 rows, 64 Pc (i, j), 8 updated SCL
After calculating (i), Pc (i, j) is divided into j columns, and the eight elements Pc (k, j) in each j column are shifted right by (SCL (k) + Cr (k) +2) bits. The maximum value of the shifted values is obtained, and the value obtained by subtracting the number of bits that can represent this from 14 is SCL_c.
(J), and when this is 2 or more, 2 and Pc (k,
j) by itself (2 + SCL (k) + Cr (k) -SCL
_C (j)) to which the right-shifted operation with the bit rounding function is substituted and input to the column algorithm unit.
When obtaining 23, s0, s1, s2, s4, and s6, normal addition is performed, and sft (d1) to sft (d23), s
ft (s0), sft (s1), sft (s2), sf
Substituting 0 into t (s4) and sft (s6) to obtain d31, d
24, a clipping operation is used, and s5, s3, and s7 use a history-added operation. Substitute s3 with the sft (s3) -bit left-shifted operation, and substitute s5 with sft (s
5) Substitute a left-shifted operation of bits, substitute itself for s7 with a left-shifted operation of sft (s7) bits, and use ordinary addition when obtaining y (k).
For integration, D16 is Mb1 bit, D12 is M
b4 bits and D21 are right-shifted with Mb5 bits rounding function as d16, d12 and d21, and sft
(D16), 0 for sft (d12), and sft (d21)
To obtain d15, Mb2 is substituted for sf (d15), and sf
Substituting 0 into t (d15), and when d4 is 15 bits or more, adding 1 to sf (d15) and sft (d15),
Substitute the value obtained by performing a right shift operation with sf (d15) bit rounding function on D15 for d15. When obtaining d22, Mb3 is set to sf (d22) and sf
Substituting 0 into t (d22), and when d14 is 16 bits, adding 1 to sf (d22) and sft (d22),
Substitute the right-shift operation of D22 with the sf (d22) bit rounding function for d22 into d22, obtain y (k), and then convert y (k) to (4 + SCL_c
(J)) A right shift operation with a bit rounding function is performed, and if the result is -256 or less, the result obtained by clipping to -256 and 255 to 255 is substituted into Y (k, j). This method is repeated to obtain Y (i, j), which is an IDCT integer conversion method.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP8242926A JPH1091614A (en) | 1996-09-13 | 1996-09-13 | Method for converting idct into integer |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP8242926A JPH1091614A (en) | 1996-09-13 | 1996-09-13 | Method for converting idct into integer |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH1091614A true JPH1091614A (en) | 1998-04-10 |
Family
ID=17096277
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP8242926A Pending JPH1091614A (en) | 1996-09-13 | 1996-09-13 | Method for converting idct into integer |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH1091614A (en) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007122711A (en) * | 2001-09-18 | 2007-05-17 | Microsoft Corp | Image and video coding method |
US7242713B2 (en) | 2002-05-02 | 2007-07-10 | Microsoft Corporation | 2-D transforms for image and video coding |
US7487193B2 (en) | 2004-05-14 | 2009-02-03 | Microsoft Corporation | Fast video codec transform implementations |
US7689052B2 (en) | 2005-10-07 | 2010-03-30 | Microsoft Corporation | Multimedia signal processing using fixed-point approximations of linear transforms |
US8942289B2 (en) | 2007-02-21 | 2015-01-27 | Microsoft Corporation | Computational complexity and precision control in transform-based digital media codec |
-
1996
- 1996-09-13 JP JP8242926A patent/JPH1091614A/en active Pending
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4560027B2 (en) * | 2001-09-18 | 2010-10-13 | マイクロソフト コーポレーション | Image and video coding methods |
JP4560028B2 (en) * | 2001-09-18 | 2010-10-13 | マイクロソフト コーポレーション | Image and video coding methods |
JP2007151131A (en) * | 2001-09-18 | 2007-06-14 | Microsoft Corp | Method for decoding data or video or image |
US8971405B2 (en) | 2001-09-18 | 2015-03-03 | Microsoft Technology Licensing, Llc | Block transform and quantization for image and video coding |
US7881371B2 (en) | 2001-09-18 | 2011-02-01 | Microsoft Corporation | Block transform and quantization for image and video coding |
JP4560033B2 (en) * | 2001-09-18 | 2010-10-13 | マイクロソフト コーポレーション | Method for decoding video or image data |
JP2007122710A (en) * | 2001-09-18 | 2007-05-17 | Microsoft Corp | Image and video coding method |
US7773671B2 (en) | 2001-09-18 | 2010-08-10 | Microsoft Corporation | Block transform and quantization for image and video coding |
US7839928B2 (en) | 2001-09-18 | 2010-11-23 | Microsoft Corporation | Block transform and quantization for image and video coding |
JP2007122711A (en) * | 2001-09-18 | 2007-05-17 | Microsoft Corp | Image and video coding method |
US7242713B2 (en) | 2002-05-02 | 2007-07-10 | Microsoft Corporation | 2-D transforms for image and video coding |
US7487193B2 (en) | 2004-05-14 | 2009-02-03 | Microsoft Corporation | Fast video codec transform implementations |
US7689052B2 (en) | 2005-10-07 | 2010-03-30 | Microsoft Corporation | Multimedia signal processing using fixed-point approximations of linear transforms |
US8942289B2 (en) | 2007-02-21 | 2015-01-27 | Microsoft Corporation | Computational complexity and precision control in transform-based digital media codec |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6369725B1 (en) | Method for binary to decimal conversion | |
CN112506880B (en) | Data processing method and related equipment | |
US5610850A (en) | Absolute difference accumulator circuit | |
JP3736741B2 (en) | Data processing unit | |
KR100847934B1 (en) | Floating-point operations using scaled integers | |
JPH1091614A (en) | Method for converting idct into integer | |
JP2001222410A (en) | Divider | |
JPH1195982A (en) | Circuit, method and system for arithmetic processing | |
JPH04291418A (en) | Pre-processor for division circuit | |
JP4279626B2 (en) | Remainder calculation system, scaling calculator, scaling calculation method, program thereof and recording medium | |
US5710732A (en) | Calculating the average of four integer numbers rounded away from zero in a single instruction cycle | |
US5917739A (en) | Calculating the average of four integer numbers rounded towards zero in a single instruction cycle | |
JP7247418B2 (en) | Computing unit, method and computer program for multiplication | |
US6007232A (en) | Calculating the average of two integer numbers rounded towards zero in a single instruction cycle | |
US5751617A (en) | Calculating the average of two integer numbers rounded away from zero in a single instruction cycle | |
JP2010102431A (en) | Floating decimal point arithmetic circuit, floating decimal point arithmetic method, and servo-controlled system | |
JP2645422B2 (en) | Floating point processor | |
JP3515462B2 (en) | Remainder arithmetic device and method | |
JPH1083387A (en) | Integer converting operation method | |
JP3415569B2 (en) | Decimal data division method and program recording medium therefor | |
US6256656B1 (en) | Apparatus and method for extending computational precision of a computer system having a modular arithmetic processing unit | |
JP3257278B2 (en) | Normalizer using redundant shift number prediction and shift error correction | |
US20100030836A1 (en) | Adder, Synthesis Device Thereof, Synthesis Method, Synthesis Program, and Synthesis Program Storage Medium | |
JP2777265B2 (en) | High radix square root arithmetic unit | |
CN118915997A (en) | Execution method of modular multiplication operation and processor |