JP2555937B2 - 離散コサイン変換回路 - Google Patents

離散コサイン変換回路

Info

Publication number
JP2555937B2
JP2555937B2 JP5167580A JP16758093A JP2555937B2 JP 2555937 B2 JP2555937 B2 JP 2555937B2 JP 5167580 A JP5167580 A JP 5167580A JP 16758093 A JP16758093 A JP 16758093A JP 2555937 B2 JP2555937 B2 JP 2555937B2
Authority
JP
Japan
Prior art keywords
multiplier
output
input
cos
adder
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP5167580A
Other languages
English (en)
Other versions
JPH0721153A (ja
Inventor
直哉 林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
Nippon Electric Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Electric Co Ltd filed Critical Nippon Electric Co Ltd
Priority to JP5167580A priority Critical patent/JP2555937B2/ja
Publication of JPH0721153A publication Critical patent/JPH0721153A/ja
Application granted granted Critical
Publication of JP2555937B2 publication Critical patent/JP2555937B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Image Processing (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Complex Calculations (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、画像のデータ量の圧縮
あるいは伸長方法でよく使われる離散コサイン変換回路
に関し、特に8点逆離散コサイン変換が可能な8点離散
コサイン変換回路に関する。
【0002】
【従来の技術】画像信号はデータ量が非常に多いため、
しばしば圧縮して伝送あるいは記録し、受信あるいは再
生側で伸長するという処理をする。このような圧縮/伸
長は符号化/複号化とも呼ばれ、図7に示すような方式
が知られている。
【0003】図7はカラー静止画符号化国際標準方式
(JPEG方式とも呼ばれる)で採用されている方式
で、離散コサイン変換(以下DCTという)を用いる方
式である。この方式においては、符号化器10は、DC
T11、量子化器12、ハフマン符号化器13からな
り、符号化器10に入力された画像は水平方向8画素×
垂直方向8画素のブロックに分割され、各ブロック毎に
DCT11の出力は量子化器12で、低周波成分を細か
く、高周波成分を粗く量子化し、高周波成分がほとんど
0となる。その結果入力画像信号の情報が多少失われる
か、これらは人の目につきにくい情報であり問題はな
い。
【0004】この量子化器12の出力は、ハフマン符号
化器13で統計的な性質を利用してさらに圧縮され、伝
送路14を通して復号化器18に送信される。復号化器
18はハフマン復号化器15、逆量子化器16、逆DC
T17から構成される。まずハフマン復号化器15によ
り、量子化器12の出力が忠実に復号される。
【0005】次に、逆量子化器16により、量子化と逆
の操作がされ、DCT11の出力に近い信号に変換され
る。そして逆DCT17により水平方向8点×垂直方向
8点の2次元逆離散コサイン変換され、ブロックが復元
される。こうして復号したブロックを並べて画像を再生
する。そのようにして圧縮/伸長した画像は、量子化器
12及びDCT11、逆DCT17の変換誤差により、
入力した画像と同じ画像とはならないが、一般に1/1
0〜1/20に圧縮しても良好な画像が伸長できる。
【0006】このような画像の伝送システムにおいて、
双方向通信を行うには双方で符号化器、復号化器をとも
に備えなければならない。同様に画像の記録システムで
も圧縮して記録した画像を記録側でも再生できることが
望ましい。これを実現するために回路規模の大きくなる
DCT11と逆DCT17とを共用する試みがなされて
いる。DCT11の処理である水平方向8点×垂直方向
8点の2次元離散コサイン変換と逆DCT17の処理で
ある水平方向8点×垂直方向8点の2次元逆離散コサイ
ン変換は、それぞれ2回の8点(1次元)離散コサイン
変換及び8点(1次元)逆離散コサイン変換に分解でき
ることが知られているので、8点離散コサイン変換と8
点逆離散コサイン変換をともに実現する回路が実用上重
要である。
【0007】まず、8点の1次元離散コサイン変換(以
下8点DCTという)及び8点の1次元逆離散コサイン
変換(以下8点逆DCTという)について従来の技術を
説明する。8点の原信号をxi(i=0〜7)とすると
8点DCTの変換式は(1)式で表される。
【0008】
【0009】ここで変換により得られる8点のYj(j
=0〜7)はDCT係数と呼ばれる。この(1)式を行
列で表すと次の(2)式で表わすことができ、また
(2)式は(3),(4)式のように簡単化できる。た
だし、Ck=cos[kπ/16]である。
【0010】
【0011】さらに、(3)式は(5),(6)式のよ
うに、また(5)式は(7),(8)式のように簡単化
できる。
【0012】
【0013】また、Yjは次の(9)式で表される8点
逆DCTにより原信号xjに逆変換することができ、こ
の(9)式は(10)のように行列で表すことができ
る。
【0014】
【0015】前述を同様に、(10)式は(11),
(12)式に、また(11)式は(13),(14)式
に、(13)式は(15),(16)式のように簡単化
される。
【0016】
【0017】このような8点DCTおよび8点逆DCT
をともに実現する従来例としては、8個の原信号xi
(i=0〜7)または8個のDCT係数Yj(j=0〜
7)をシリアル入力する構成の特開平2−173870
号公報に記載の離散コサイン変換・逆変換装置がある。
また、このほかに、8個の原信号xi(i=0〜7)ま
たは8個のDCT係数Yj(j=0〜7)をパラレル入
力することによりさらに高速処理が可能な図8に示す回
路がある。
【0018】この回路は、特開昭64−19887号公
報の変換符号化を用いたテレビジョン転送システムに示
された8点DCT、8点逆DCTのシグナルフローを基
に、実現するようにしたものである。なお実際の回路で
は、上式のコサイン係数Ck(k=1〜7)との乗算を
有限語長で丸め誤差無く行なうのは困難なため、原信号
のDCT係数を逆離散コサイン変換しても正確な原信号
は復元できない。しかし、以下では便宜上DCT係数を
逆離散コサイン変換して得られる信号に原信号という名
称を使って説明する。
【0019】図8に示す8点DCT回路は、8点DCT
を行う場合に入力端子I0〜I7に8個の原信号を並列
に与えて出力端子01,02にDCT係数を2つずつ出
力し、また8点逆DCTを行う場合には入力端子I0〜
I8に8個のDCT係数を並列に与えて出力端子01,
02に原信号を2つずつ出力する回路である。どちらの
場合でも出力信号は2つずつしか得られないので8個の
全出力信号を得るまでに内部のセレクタを4回切り替え
て動作させる必要がある。
【0020】しかし、上式に示す簡単な計算方法を取り
入れ、必要な7種のコサイン係数との乗算をそれぞれ1
つずつの乗算器(以下これらをコサイン係数乗算器とい
う)により行い、これらの乗算器を8点DCTと8点逆
DCTで共用するので、素子の利用効率が高いという特
徴がある。
【0021】図8の回路は、加算器A0〜A4、減算器
S0〜S4、加減算器B0〜B4及びB7〜B9、乗算
器C1〜C7及びM0、M1で構成されている。これら
は、の入力にセレクタを備え、入力を切替えることがで
きる。このうち減算器は−の符号を付している入力の符
号を反転して加算する。加減算器は加算あるいは減算を
行ない、減算の場合は(−)の符号を付している入力の
符号を反転して加算する。
【0022】乗算器C1〜C7はそれぞれ入力に上式の
Ck=cos[kπ/16](k=1〜7)を乗じる。
また乗算器M0、M1は入力を1/2にして出力する1
/(2のべき乗)乗算器で、例えば最も右のビットがL
SB(最小重みビット)の固定小数点演算の場合には、
1ビット右シフトとなるように配線を置き換え、また小
数点が左に1ビット移動したものとみなして処理を続け
るだけでもよい。こらの他にセレクタを切替えるタイ
ミングを発生する制御回路があるが、図示してはいな
い。以下に8点DCTと8点逆DCTを行う場合に必要
なセレクタの切り替えとともにその動作を説明する。 (1)8点DCTの場合 入力端子I0〜I7にそれぞれ原信号x0〜x7を与え
る。加算器A0〜A3、減算器S0〜S3の入力にある
セレクタ入力端子I8ではない方の入力を選ぶ。従っ
て、これらの出力は、 A0出力=x0+x7 S0出力=x0−x7 A1出力=x3+x4 S1出力=x3−x4 A2出力=x1+x6 S2出力=x1−x6 A3出力=x2+x5 S3出力=x2−x5・・・(17) のようになる。
【0023】また、入力端子I9には0を与え、減算器
S4の−側入力及び加算器A4の入力にあるセレクタは
入力端子I9の方を選ぶ。従って減算器F4は+側入力
をそのまま出力し、加算器A4は加減算器B4の出力を
そのまま出力する。以下DCT係数Y0とY1を出力す
る場合、Y2とY3を出力する場合、Y4とY5を出力
する場合、Y6とY7を出力する場合の4つに分けて説
明する。・Y0とY1を出力する場合は次の動作をする
ようセレクタを切り替える。
【0024】
【0025】したがって出力端子O1には(7)式より
次のようにY0が得られ、また出力端子O2にも(4)
式より次のようにY1が得られる。
【0026】
【0027】Y2とY3を出力する場合は次の動作をす
るようセレクタを切り替える。
【0028】
【0029】したがって出力端子O1およびO2には
(6)式、(4)式により次のようにY2、Yが得ら
れる。
【0030】
【0031】Y4とY5を出力する場合は次の動作をす
るようセレクタを切り替える。
【0032】
【0033】したがって出力端子O1,O2には(8)
式より次のようにY4,Y5が得られる。
【0034】
【0035】Y6とY7を出力す場合は次の動作をする
ようセレクタを切り替える。
【0036】
【0037】したがって出力端子O1,O2には(6)
式、(4)式により次のようにY6,Y7が得られる。
【0038】
【0039】(2)8点逆DCTの場合 入力端子I0〜I7にそれぞれDCT係数Y0〜Y7を
与える。加算器A0〜A3、減算器S0〜Sの入力にあ
るセレクタは入力端子I8の方の入力を選び、I8には
0を与える。従ってこれらの出力は、 A0出力=Y0 S0出力=−Y7 A1出力=Y4 S1出力=−Y3 A2出力=Y6 S2出力P−Y1 A3出力=Y2 S3出力=−Y5・・・(18) のようになる。
【0040】また、減算器の−側入力及び加算器A4の
入力にあるセレクタは入力端子I9ではない方を選ぶ。
以下x0とx7を出力する場合、x1とx6を出力する
場合、x2とx5を出力する場合、x3とx4を出力す
る場合に分けて説明する。
【0041】・x0とx7を出力する場合は次の動作を
するようセレクタを切り替える。
【0042】
【0043】よって出力端子O1には(15)式、(1
6)式、(14)式、(12)式より次のようにx0が
得られ、出力端子O2には(15)式、(16)式、
(14)式、(12)式より次のx7が得られる。
【0044】
【0045】・x1とx6を出力する場合は次の動作を
するようセレクタを切替える。
【0046】
【0047】よって出力端子O1には(15)式、(1
6)式、(14)式、(12)式より次のx6が得られ
る。
【0048】
【0049】・x2とx5を出力する場合は次の動作を
するようセレクタを切替える。
【0050】
【0051】よって出力端子O1には(15)式、(1
6)式、(14)式、(12)式より次x2が得られ、
出力端子O2には(15)式、(16)式、(14)
式、(12)式より次のx5が得られる。
【0052】
【0053】・x3とx4を出力する場合は次の動作を
するようセレクタを切替える。
【0054】
【0055】よって出力端子O1には(15)式、(1
6)式、(14)式、(12)式より次のx3が得ら
れ、出力端子O2には(15)式、(16)式、(1
4)式、(12)式より次のようにx4が得られる。
【0056】
【0057】以上説明したように図8では、8点DCT
の場合にY0とY1、Y2とY3、Y4とY5またはY
6とY7を力することができ、また8点逆DCTの場
合にx0とx7、x1とx6、x2とx5またはx3と
x4を出力することができる。
【0058】
【発明が解決しようとする課題】このように図8に示す
従来の回路で8点DCT及び8点逆DCTが実行でき
る。しかしこの従来例で、乗算器Ck(k=1〜7)の
入力と入力端子Ik(k=0〜7)の入力と入力端子I
k(k=0〜7)の間の加算器、減算器あるいは加減算
器の段数を数えると、8点DCTを行う場合の乗算器C
4の入力と入力端子間だけが合わせて3段となってい
る。すななち、他の乗算器Ck(k=1〜3、5〜7)
の入力と入力端子間、及び8点逆DCTを行なう場合で
の乗算器C4の入力と入力端子は合わせて2段以下であ
る。
【0059】また同様に、乗算器Ck(k=1〜7)の
出力と出力端子O1、O2の間の加算器、減算器及び加
減算器の段数を数えると、8点DCTをおこなう場合の
乗算器C4の出力と出力端子間だけが1段となってい
る。すななち他の乗算器Ck(K=1〜3、5〜7)の
出力と出力端子間、及び8点逆DCTをおこなう場合で
の乗算器C4の出力と出力端子間は合わせて2段または
3段である。したがって乗算器Ck(k=1〜7)のな
かで乗算器C4が最も出力端子側に位置している。この
ことは、この8点DCT回路を高速に動作させようとす
る場合に問題となる。
【0060】一般に、高速動作が必要な場合、データパ
スの途中に何段かのラッチを入れてデータパスを細かく
区切り、各ラッチ間を並列に処理することによる高速動
作、いわゆるパイプライン動作をさせることが多い。す
なわちラッチ間の処理が減るので、パイプライン1段あ
たりの処理時間(サイクル)を短くすることが可能で、
その結果全体の処速度を上げることができる。このよう
なラッチを以下ではパイプラインレジスタと呼ぶ。
【0061】このような場合パイプラインレジスタのビ
ット幅は小さい方が素子数が少なくてすむ。また逆にパ
イプラインレジスタ間の処理に要する時間がなるべく均
等になるように置かなければ、処理時間の長い部分が全
体の処理時間を制約し、処理速度の十分に上げられない
こともある。このようにパイプラインレジスタを置く位
置は素子数、動作速度のうえで重要になる。
【0062】この従来例の回路をパイプライン動作させ
る場合、セレクタや1/2乗算器は遅延時間が短いの
で、それより遅延時間の大きい加算器、減算器及び乗算
器Ck(k=1〜7)の遅延時間を考慮してパイプライ
ンレジスタを入れる位置を決めればよい。ところで加算
器、減算器、加減算器は2入力1出力で、入力にパイプ
ラインレジスタを置く場合は両方の入力に置かなければ
ならない。従って入力両方のビット幅を合わせると出力
のビット幅より大きくなり、パイプラインレジスタは入
力より出力に置く方が有利となる。また乗算器Ck(K
=1〜7)は1入力1出力であり、普通何段かの加算
器、減算器で構成される。これらの内部のビット幅は入
力ビット幅より大きいことも多く、下位ビットを切り捨
てて出力する場合では出力ビット幅よりも大きくなって
いることもある。よって乗算器内部よりは入力か出力に
パイプラインレジスタを置く方がビット幅が小さくてす
む。
【0063】この従来例でビット幅が小さくすむのは、
例えば乗算器Ck(k=1〜7)の入力、出力である。
ここにパイプラインレジスタを置いた例を図9に示す。
図9では入力端子I0〜I7に入力した信号をラッチす
るパイプラインレジスタ、2は図8の入力端子から乗算
器Ck(k=1〜7)までの間にある加算器A0〜A
3、減算器S0〜S3、加減算器B0、B1、B7をま
とめて表した組み合わせ回路23,24はそれぞれ乗算
器Ck(k=1〜7)の出力から出力端子O1、O2ま
での間にある加算器A4、減算器S4、加減算器B2〜
B4、B9、1/2乗算器M0、M1をまとめて表した
組み合わせ回路であり、26は出力信号をラッチするパ
イプラインレジスタである。
【0064】なお入力端子I8、I9は常に0を与えて
おけばよく、ラッチする必要はないので、それぞれ組合
回路22,25の入力端子としている。図8の従来例で
パイプラインレジスタを図9に示す位置に挿入し、クロ
ックの立上がりで各パイプラインレジスタが信号をラッ
チし、クロックの立ち下がりで組合回路22,25内の
セレクタを切替える場合の、8点DCTを行なう動作は
図10のタイミング図のようになる。すななち、入力端
子の信号をパイプラインレジスタ21がラッチしてから
3クロック後にY0とY1が出力され、4クロック後に
Y2とY3が出力され、5クロック後にY4とY5が出
力され、6クロック後に最後のY6とY7が出力され
る。
【0065】この図9のように区切ってパイプライン動
作させた場合、図10のタイミング図のように8点DC
Tを行う場合の入力端子から乗算器C4までの加算器、
加減算器の段数だけが合わせて3段なので、組合回路2
2はこれら3段分の処理時間が必要になり、クロック周
波数すななち動作速度を上げる支障となる。また乗算器
C4の出力端子O1の間だけ減算器が1段なので、組合
回路25のなかで、この区間だけ処理時間が他より小さ
く、処理時間が均等とはいえない。
【0066】また、図8の従来例で、図9とは異なる位
置にパイプラインレジスタを置いて動作速度を上げるこ
とを考えると、乗算器C4の入力ではなく乗算器C6、
C2と同様に加算器、加減算器が2段の位置にパイプラ
インレジスタを置くとことが考えられる。この場合に
は、図8の加減算器B7の入力両方にパイプラインレジ
スタを置かなけらばならない。従って入力両方のビット
幅を合わせると乗算器C4の入力に置くよりビット幅が
大きくなり、結局素子数が増えることになる。
【0067】そのように図8の従来例は、乗算器Ck
(k=1〜7)のなかで乗算器C4が最も出力端子側に
位置しているため、高速動作をさせる場合にパイプライ
ンレジスタを置く位置にいくつか制約がつき、素子数あ
るいは動作速度に悪影響を及ぼすことがある。また加減
算器B7は8点DCTでは使われるが、8点逆DCTで
は使われないので、素子をあまり有効に使っているとは
いえない。
【0068】本発明の目的は、乗算器C6と乗算器C4
の動作を切り替えて実行する乗算器を用いて、乗算器C
4の位置を従来例より加減算器1段分だけ入力端子側に
移すことにより、入力端子からコサイン係数乗算器まで
の加算器、減算器、加減算器の段数を従来例より1段少
なくして2段位下に抑え、高速動作させる場合にパイプ
ラインレジスタを置く位置の制約を少なくしさらに、加
減算器を削除して素子の利用効率をよくしたDCT回路
を提供することにある。
【0069】
【課題を解決するための手段】本発明の構成は、8点の
信号xi(i=0〜7)から次式
【0070】
【0071】に従って8点の離散コサイン変換係数Yj
(j=0〜7)を求める離散コサイン変換回路におい
て、入力信号にcos[4π/16]を乗じる第1の乗
算器と、力信号にcos[6π/16]を乗じる第2
の乗算器と、力信号にcos[2π/16]を乗じる
第1の動作モードと入力信号にcos[4π/16]を
乗じる第2の動作モードのどちらか一方を選択可能な第
3の乗算器と、前記xiを選択的に加算して求めた(x
0+x7)+(x3+x4)を前記第1の乗算器に入力
して得られる第1の出力と前記xiを加算して求めた
(x1+x6)+(x2+x5)を前記第2の動作モー
ドを選択した前記第3の乗算器に入力して得られる第2
の出力とを加えた信号より前記離散コサイン変換係数Y
0を求め、前記第1の出力から前記第2の出力を減じた
信号より前記離散コサイン変換係数Y4を求め、前記x
を選択的に加減算して求めた(x0+x7)−(x3
+x4)を前記第1の動作モードを選択し前記第3の乗
算器に入力して得られる出力と前記xiを選択的に加減
算して求めた(x1+x6)−(x2+x5)を前記第
2の乗算器に入力して得られる出力とを加えた信号より
前記離散コサイン変換係数Y2を求め、前記(x0+x
7)−(x3+x4)を前記第2の乗算器に入力して得
られる出力から前記(x1+x6)−(x2+x5)を
前記第1の動作モードを選択した前記第3の乗算器に入
力して得られる出力を減じた信号より前記離散コサイン
変換係数Y6を求めるようにしたセレクタにより切替え
られる加減算回路を有することを特徴とする。
【0072】
【実施例】図1は本発明の8点DCTの第1の実施例の
ブロック図を示す。これは図4の破線で囲まれた部分を
図1のの破線で囲まれた部分に変更したものであり、そ
の他の部分は図8の従来例と同じ動作をするので説明を
省略する。本実施例は図8と同じ乗算器C4及びC6
と、入力とC2=cos[2π/16]との乗算の他に
入力とC4=cos[4π/16]との乗算が可能で、
これらの一方の動作を切替えて実行できる乗算器C10
(C4/C2)、そして加減算器B5、B6から構成さ
れる。乗算器C10の入力と加減算器B6の両入力はセ
レクタを備えている。これを従来例の部分と比較する
と、従来例より加減算器が1個少なく、乗算器C4の位
置が加減算器1段分入力端子側に移っているという特徴
がある。
【0073】図2は乗算器C10の1例のブロックであ
る。まず乗算器C4/C2の動作を説明する。この乗算
器C10は、C2,cos[2π/16]のC4=co
s[4π/16]を小数点以下1ビットで近似した場合
の例である。このときC2、C4は次のように固定小数
点表示できる。
【0074】
【0075】この乗算器C10は、減算器S10、S1
1、加算器A10及び乗算器M3〜M8で構成される。
減算器S10、S11、加減算器A10は入力にセレク
タを備え、このセレクタを切替えることにより入力とC
2との乗算あるいは入力とC4との乗算のどちらが一方
の動作をする。乗算器M3〜M8はいずれも1/2(2
のべき乗)の乗算なので、M0、M1と同じく右ビット
シフトに相当する処理をすればよい。入力端子I10に
与えられる入力をZで表すとC2との乗算は、 O3=A10出力=M8出力+Z M8出力=1/16・S11出力=1/16・(M6出
力M−Z) M6出力=1/4・S10出力=1/4・(M4出力−
Z) M4出力=1/8・Z により実現できる。
【0076】従ってO3には次のように、 O3=1/6{1/4(1/8・Z−Z)−Z}+Z=
Z・[1+1/16{−1/4{1−1/8)−1}]
=C2・Z ZとC2との乗算として得られる。
【0077】C4との乗算は次のように、 O3=S11出力=(M7出力−S10出力) M7出力=1/16・A10出力=1/16・(M5出
力+S10出力) M5出力=1/16・Z S10出力=M3出力−Z=(1/4・Z−Z) 実現できる。
【0078】したがってO3には次のようにZとC4の
乗算として、 O3=1/16{(1/16・Z+(1/4・Z−
Z)}−(1/4・Z−Z)=Z・[(1−1/4)+
1/16{−(1−1/4)+1/16}]=C4・Z 得られる。
【0079】このように図2に示す乗算器C10は、セ
レクタを切替えることによりC2との乗算あるいはC4
との乗算のどちらか一方の動作ができる。またこのビッ
ト精度ではC2との乗算にも加算器A10、減算器S1
0、S11が必要である。従って、従来例の乗算器C2
に比べてセレクタが増える程度なので、素子数は従来例
に用いる乗算器C2からあまり増えることはない。
【0080】次に本実施例での8点DCTおよび8点逆
DCTの動作を説明する。本実施例と従来例と異なる点
は図2の破線で囲まれた部分のみで、破線部への入力と
なる加減算器B0、B1及び加算器A2A3の出力は従
来例と等しく、加減算器B4の出力も従来例と等しいの
で説明を省略する。 (1)8点DCTの場合 従来例と同様に入力端子I0〜I7にそれぞれ原信号x
0〜x7を与える。加算器A0〜I3、減算器S0〜S
3の入力にあるセレクタは入力端子I8ではない方の入
力を選ぶ。したがってこれらの出力は(17)式と等し
い。また入力端子I9には0を与え、減算器S4の−側
入力及び加算器A4の入力にあるセレクタはI9の方を
選ぶ。この減算器S4は+側入力すななち加減算器B6
の出力をそのまま出力し、加算器A4は加減算器B4の
出力をそのまま出力するので、加減算器B6の出力は出
力端子O2に影響を与えない。従って出力端子O1側す
なわちY0、Y2、Y4、Y6を得る動作のみを説明す
る。・Y0を出力する場合は次の動作をするようセレク
タを切替える。ここで乗算器C10は入力とC4との乗
算を行い、出力端子O1には(5)式、(17)式より
次のようにY0が得られる。
【0081】
【0082】・Y2を出力する場合は次の動作をするよ
うセレクタを切り替える。ここで乗算器C10は入力と
C2との乗算をおこなう。従って出力端子O1には
(6)式、(17)式より次のようにY2が得られる。
【0083】
【0084】・Y4を出力する場合は次の動作をするよ
うセレクタを切り替える。ここで乗算器C10は入力と
C4との乗算をおこなう。従って出力端子O1には
(5)式、(17)式より次のようにA4が得られる。
【0085】
【0086】・Y6を出力する場合は次の動作をするよ
うセレクタを切り替える。ここで乗算器C10は入力と
C2との乗算をおこなう。従って端子O1には(6)
式、(17)式より次のようにY6が得られる。
【0087】
【0088】(2)8点逆DCTの場合 従来例と同様に入力端子I0〜I7にそれぞれDCT係
数Y0〜Y7を与える。加算器A0〜A3、減算器S0
〜S3の入力にあるセレクタは入力端子I8のの方の入
力を選びI8には0を与える。したがってこれらの出力
は(18)式と等しい。
【0089】また同様に、減算器S4の−側入力及び加
算器A4の入力にあるセレクタは入力端子I9ではない
方を選ぶ。したがって加減算器B6の出力が、図2の加
算器S4の+側の入力と等しければ、出力端子O1、O
2に得られる出力も従来例と等しい。
【0090】8点逆DCTを行う場合、従来例ではこの
加算器S4の+側の入力は加減算器B9の出力に固定さ
れており、加減算器B9の一方の入力である乗算器C4
の+側の入力は加減算器B0に固定されている。またも
う一方の加減算器B8についても、その入力である乗算
器C6、C2の入力は加算器A2あるいはA3のどちら
かである。したがって本実施例で従来例と同じ接続がで
きれば、従来例と同じ動作ができる。
【0091】図1を参照すると、加減算器B6は、従来
例の加減算器B9と同様に、乗算器C4の出力と、従来
例の加減算器B8と同じ動作をする加減算器B5の出力
を入力とすることができる。そして乗算器C4の入力は
従来例と同様に加減算器B0に固定されている。また加
減算器B5の入力は乗算器C6の出力と乗算器C10の
出力を入力とすることが可能で、乗算器C6及び乗算器
C10の入力は従来例と同様にそれぞれ加算器A2、A
3の出力を入力とすることができる。したがって本実施
例の乗算器C10の動作をC2と乗算に固定しておけ
ば、従来例とまったく同じ動作すなわち8点逆DCTが
できる。このように本実施例は従来例と同様に8点DC
T及び8点逆DCTが可能である。
【0092】本実施例では、従来例で問題となった乗算
器C4の位置が加減算器1段分入力端子側に移ってお
り、他のコサイン係数乗算器の位置は従来例と変わって
いないので、高速動作させる場合にパイプライン用レジ
スタを置く位置の制約が従来例より少なくなっている。
また本実施例の乗算器C10は従来例の乗算器C2を、
入力とC4の乗算もできるように変更しているが、この
変更によりセレクタが増えるだけなのでそれほど素子数
は増えない。よって従来例の加減算器B7が不要になる
分、素子数が少なくなる。
【0093】次に本発明の第2の実施例として乗算器C
10のビット精度を小数点以下15ビットに近似した場
合を説明する。この場合、乗算器C10は、図3に示す
ように減算器を用いずに加算器だけで構成できる。この
ときC2、C4は次式のように固定小数点表示できる。
【0094】
【0095】この回路は、加算器A11,A13,A1
4,A16,A17は入力にセレクタを備え、このセレ
クタを切替えることにより入力とC2との乗算あるいは
入力とC4との乗算のどちらか一方の動作ができる。こ
のセレクタの一方は入力端子I12に接続され、ここに
は「0」が与えられる。乗算器M9〜M17はいずれも
1/(2のべき乗)の乗算なので、M0,M1と同じく
右ビットシフトに相当する処理をすればよい。以下入力
端子I11に与えられる入力をZとして説明する。
【0096】C2との乗算は加算器A13,A16入力
のセレクタを入力端子I12側に接続してすることで次
のように実現できる。 O4=A18出力=A17出力+M17出力 =A15出力+M16出力+M17出力 =A11出力+M11出力+M13出力+M14出力+M16出力 +M17出力 =M8出力+M10出力+M11出力+M13出力+M14出力 +M16出力+M17出力 =(1/2+1/4+4/8+1/32/1/64+1/512 +1/16384)・Z =C2・Z C4との乗算は加算器A11,A14,A17入力のセ
レクタを入力端子I12側に接続することで次のように
実現できる。 O4=出力=A17出力+M17出力 =A15出力+M15出力+M17出力 =A11出力+M11出力+M12出力+M14出力+M15出力+M17 出力 =M9出力+M11出力+M12出力+M14出力+M15出力 +M17出力 =(1/2+1/8+1/16+1/256+1/16384)・Z =C4・Z このように図3に示す乗算器C10は、セレクタを切替
えることにより入力とC2との乗算と入力とC4との乗
算の切替えができ、このビット精度でC2との乗算に必
要な加算器はA11,A12,A14,A15,A1
7,A18である。従って、C4との乗算機能を付加え
たため、加算器A13,A16及びセレクタなどが必要
になる。この乗算器C10は図2の乗算器C10と同じ
働きをする。
【0097】図4は本発明の8点DCT回路の第3の実
施例のブロック図を示す。これも図8の従来例の破線で
囲まれた部分を変更したものである。この部分は、図1
と同じ乗算器C4及びC2と、入力とC6=cos[6
π/16]との乗算のほかに入力とC4=cos[4π
/16]との乗算が可能で、そのどちらか一方の動作を
切替えて実行できる乗算器C11と、加減算器B5,B
6から構成される。乗算器C11の入力と加減算器B6
の両入力はセレクタを備えている。この部分は、従来例
より加減算器が1個少なく、乗算器C4の位置が加減算
器1段分入力端子側に移っているという特徴がある。
【0098】図5は乗算器C11の内部構成の1例のブ
ロック図を示す。この回路は、入力端子I10及び出力
端子O3がそれぞれ図4の乗算器C11の入力端子及び
出力端子に相当する。この乗算器C11は、C6=co
s[6π/16]とC4=cos[4π/16]を小数
点以下11ビットで近似した場合の例である。このとき
コサイン係数C6,C4は次のように固定小数点表示で
きる。
【0099】
【0100】この乗算器C11は減算器C20,S2
1,加算器A20及び乗算器M20〜M24で構成され
る。加算器A20及び出力端子O3には入力にセレクタ
があり、このセレクタを切替えることにより入力とC6
との乗算あるいは入力とC4との乗算のどちらか一方の
動作をする。M20〜M24はいずれも1/(2のべき
乗)の乗算なので、図4のM0,M1と同じく右ビット
シフトに相当する処理をすればよい。入力端子I10に
与えられる入力をZで表すとC6との乗算は次のように
実現され、O3がZとC6の乗算として得られる。 O3=M14出力=1/2・A10出力 A10出力=S10出力+M12出力 S10出力=Z−M10出力=(1−1/4)・Z M12出力=1/64・Z O3=1/2{(1−1/4)・Z+1/64・Z}=
C6・Z またC4との乗算も次のように実現できる。 O3=A10出力=S10出力+M13出力 M13出力=1/16・S11出力=1/16・(M1
1出力−S10出力) M11出力=1/16・Z O3=(1−1/4)・Z+1/16{1/16・Z−
(1−1/4)・Z}=C4・Z 図5に示す乗算器C11は、セレクタを切替えることに
より入力とC6=cos[6π/16]との乗算あるい
は入力とC4=cos[4/16]との乗算のどちらか
一方の動作ができる。またこのビット精度での乗算器C
6はA20,S20,M22,M24が必要で、これを
乗算器C11にするために加える主な素子は減算器C2
1のみである。次に本実施例での8点DCTおよび8点
逆DCTの動作を説明する。 (1)8点DCTの場合 入力端子I0〜I7にそれぞれ原信号x0〜x7を与
え、加算器A0〜A3、減算器S0〜S3の入力にある
セレクタは、8点DCTをおこなう場合と同じ方の入力
を選ぶと、これらの出力は(17)式と等しくなる。ま
た入力端子I9には0を与え、減算器S4の−側入力及
び加算器A4の入力にあるセレクタはI9の方を選ぶ
と、減算器S4は+側入力すなわち加減算器B6の出力
をそのまま出力し、加算器A4は加減算器B4の出力を
そのまま出力するので、加減算器B6の出力は出力端子
O2に影響を与えない。そのため出力端子O1側すなわ
ちY0,Y2,4,Y6を得る動作を説明する。・Y0
を出力する場合は次の動作をするようセレクタを切替え
る。ここで乗算器C11は入力とC4との乗算を行い、
出力端子O1には(5)式、(17)式より次のように
Y0が得られる。
【0101】
【0102】・Y2を出力する場合は次の動作をするよ
うセレクタを切替える。ここで乗算器C11は入力とC
6との乗算を行う。従って出力端子O1には(6)式、
(17)式より次のようにY2が得られる。
【0103】
【0104】・Y4を出力する場合は次の動作をするよ
うセレクタを切替える。ここで乗算器C11は入力とC
4との乗算を行う。従って出力端子O1には(5)式、
(17)式より次のようにY4が得られる。
【0105】
【0106】・Y6を出力する場合は次の動作をするよ
うセレクタを切り替える。ここで乗算器C11は入力と
C6との乗算をおこなう。従って出力端子O1には
(6)式、(17)式より次のようにY6が得られる。
【0107】
【0108】(2)8点逆DCTの場合 入力端子I0〜I7にそれぞれDCT係数Y0〜Y7を
与え、加算器A0〜A3、減算器S0〜S3の入力にあ
るセレクタは、8点逆DCTを行なう場合と同じ方の入
力を選び、I8には0を与えると、これらの出力は(1
8)式と等しくなる。また同様に減算器S4の−側入力
及び加算器A4の入力にあるセレクタは入力端子I9で
はない方を選ぶと、加減算器B6の出力が、図8の加算
器S4の+側の入力と等しければ出力端子O1,O2に
得られる出力も従来例と等しい。8点逆DCTを行う場
合従来例では加算器S4の+側の入力は加減算器B9の
出力に固定され、もう一方の入力の加減算器B8も、そ
の入力の乗算器C6,C2の入力は加算器A2あるいは
A3のどちらかである。本実施例で従来例と同じ接続が
できれは、従来例と同じ動作ができることになる。
【0109】本実施例の加減算器B6は、図8の加減算
器B9と同様に乗算器C4の出力と、従来例の加減算器
B8と同じ動作をする加減算器B5の出力を入力とする
ことができる。乗算器C4の入力は加減算器B0に固定
されまた加減算器B5の入力は乗算器C11の出力と乗
算器C2の出力を入力とすることが可能で、乗算器C1
1及び乗算器C2の入力は従来例と同様にそれぞれ加算
器A2,A3の出力を入力とすることができる。本実施
例の乗算器C11の動作を入力とC6=cos[6π/
16]との乗算に固定しておけば、8点逆DCTができ
ることは明らかである。従って、従来例と同様に8点D
CT及び8点逆DCTが可能である。
【0110】また本実施例は、従来例に対し乗算器C4
の位置が加減算器1段分入力端子側に移っており、他の
コサイン係数乗算器の位置は従来例と変っていないの
で、図9のようにパイプラインレジスタを置いて高速動
作させる場合でも、組合せ回路22では加減算器2段分
の処理時間を有するためであり、組合せ回路23ではY
2,Y6を計算するパスと同様に加減算器1段と減算器
1段となり、処理時間は従来例と均等に近くなってい
る。よって 高速動作させる場合にパイプラインレジス
タを置く位置の制約が従来例より少なくなる。また本実
施例の乗算器C11は、この従来例の乗算器C6を、入
力とC4=cos[4π/16]との乗算もできるよう
にしたが、この変更により減算器が1個増える程度なの
で、加減算器B7が不要になる分と相殺して従来例と同
程度の素子数ですむ。
【0111】次に本発明の第4の実施例として図5の乗
算器Ck(k=1〜3、5〜7)、C11に図6に示す
ような汎用の乗算器×1を用いる場合を説明する。乗算
器Ck(k=1〜3、5〜7)では一方の入力にそれぞ
れ係数Ck(k=1〜3、5〜7)では一方の入力にそ
れぞれ係数Ck(k=1〜3,5〜7)を与え、乗算器
C11では係数C6またはC4を与えて実現する。この
例は同じ汎用の乗算器×1を7個並べるため、素子数と
しては7個別々に用意するより増えるが全く同じレイア
ウトを用いるため実現しやすい場合がある。特に半導体
集積回路では素子のレイアウトに多大な時間と費用がか
かるためしばしば用いられる。
【0112】この回路は、汎用の乗算器X1の一方の入
力にセレクタを設け、C6=cos[6π/16]とC
4=cos[4π/16]のどちらか一方を入力するよ
うにすればよい。この汎用の乗算器X1を乗算器Ck
(k=1〜7)すべてに使用した場合、第1の実施例と
同様に、乗算器C4の位置が加減算器1段分入力端子側
に移っており、高速動作させる場合にパイプラインレジ
スタを置く位置の制約が従来例より少なくなっている。
また本実施例の乗算器C11は従来例の乗算器C6を、
入力とC4=cos[4π/16]との乗算もできるよ
うに変更したものだが、変更によりセレクタが1個増え
るだけなので、加減算器B7が不要になる分、従来例よ
り回路規模が小さくできる。
【0113】
【発明の効果】以上説明したように本発明の離散コサイ
ン変換回路は、2個の乗算器の動作を切替えて実行する
1個の乗算器を用いることにより、乗算器の位置を加減
算器1段分だけ入力端子側に移すことができるので、入
力端子からコサイン係数乗算器までの加算器、減算器、
加減算器の段数を従来例より1段少なくして2段以下に
抑え、高速動作させる場合のパイプラインレジスタの位
置の制約を少くでき、さらに8点DCTを行う場合のみ
使われた加減算器を削除できるので、従来例より素子数
を少なくできるという効果もある。
【図面の簡単な説明】
【図1】本発明の一実施例のブロック図。
【図2】図1の乗算器C10のブロック図。
【図3】本発明の第2の実施例に用いた乗算器C10の
ブロック図。
【図4】本発明の第3の実施例のブロック図。
【図5】図4の乗算器C11のブロック図。
【図6】本発明の第4の実施例に用いた乗算器C11の
ブロック図。
【図7】一般のカラー静止画符号化方式を説明するブロ
ック図。
【図8】従来例の8点離散コサイン変換(DCT)回路
のブロック図。
【図9】図8によるパイプライン動作を説明するブロッ
ク図。
【図10】図9の動作を説明するタイミング図。
【符号の説明】
I0〜I12 入力端子 O1〜O4 出力端子 A0〜A18,A20 加算器 S0〜S11,S20,S21 減算器 B0〜B9 加減算器 C1〜C7,C10,C11 乗算器 M0〜M17,M20〜M24 1/(2のべき乗)
の乗算器 X1 汎用乗算器 21,23,24,26 パイプラインレジスタ 22,25 組合せ回路 10 符号化器 11 DCT 12 量子化器 13 ハフマン符号化器 14,24 伝送路 15 ハフマン復号化器 16 逆量子化器 17 逆DCT 18 復号化器

Claims (4)

    (57)【特許請求の範囲】
  1. 【請求項1】 8点の信号xi(i=0〜7)をそれぞ
    れ入力し次式 に従って8点の離散コサイン変換係数Yj(j=0〜
    7)を求める離散コサイン変換回路において、入力信号
    にcos[4π/16]を乗じる第1の乗算器と、
    信号にcos[6π/16]を乗じる第2の乗算器と、
    力信号にcos[2π/16]を乗じる第1の動作モ
    ードと入力信号にcos[4π/16]を乗じる第2の
    動作モードのどちらか一方を選択可能な第3の乗算器
    と、前記xiを選択的に加算して求めた(x0+x7)
    +(x3+x4)を前記第1の乗算器に入力して得られ
    る第1の出力と前記xiを加算して求めた(x1+x
    6)+(x2+x5)を前記第2の動作モードを選択し
    た前記第3の乗算器に入力して得られる第2の出力とを
    加えた信号より前記離散コサイン変換係数Y0を求め、
    前記第1の出力から前記第2の出力を減じた信号より前
    記離散コサイン変換係数Y4を求め、前記xiを選択的
    に加減算して求めた(x0+x7)−(x3+x4)を
    前記第1の動作モードを選択し前記第3の乗算器に入力
    して得られる出力と前記xiを選択的に加減算して求め
    た(x1+x6)−(x2+x5)を前記第2の乗算器
    に入力して得られる出力とを加えた信号より前記離散コ
    サイン変換係数Y2を求め、前記(x0+x7)−(x
    3+x4)を前記第2の乗算器に入力して得られる出力
    から前記(x1+x6)−(x2+x5)を前記第1の
    動作モードを選択した前記第3の乗算器に入力して得ら
    れる出力を減じた信号より前記離散コサイン変換係数Y
    6を求めるようにしたセレクタにより切替えられる加減
    回路とを有することを特徴とする離散コサイン変換回
    路。
  2. 【請求項2】 第1の乗算器が入力信号にcos[4π
    /16]の近似値を乗じる乗算器であり、第2の乗算器
    が入力信号にcos[6π/16]の近似値を乗じる乗
    算器であり、第3の乗算器が、入力信号にcos[2π
    /16]の近似値を上じる第1の動作モードと入力信号
    にcos[4π/16]の近似値を乗じる第2の動作モ
    ードのどちらか一方を選択可能な乗算器である請求項1
    記載の離散コサイン変換回路。
  3. 【請求項3】 第2の乗算器が入力信号にcos[2π
    /16]を乗じる乗算器からなり、第3の乗算器が入
    信号にcos[6π/16]を乗じる第1の動作モード
    と入力信号にcos[4π/16]を乗じる第2の動作
    モードのどちらか一方を選択可能の乗算器からなる請求
    項1記載の離散コサイン変換回路。
  4. 【請求項4】 1の乗算器が入力信号にcos[4π
    /16]の近似値を乗じる乗算器であり、第2の乗算器
    が入力信号にcos[2π/16]の近似値を乗じる乗
    算器であり、第3の乗算器が入力信号にcos[6π/
    16]の近似値を乗じる第1の動作モードと入力信号に
    cos[4π/16]の近似値を乗じる第2の動作モー
    ドのどちらか一方を選択可能な乗算器である請求項3記
    載の離散コサイン変換回路。
JP5167580A 1993-07-07 1993-07-07 離散コサイン変換回路 Expired - Lifetime JP2555937B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5167580A JP2555937B2 (ja) 1993-07-07 1993-07-07 離散コサイン変換回路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5167580A JP2555937B2 (ja) 1993-07-07 1993-07-07 離散コサイン変換回路

Publications (2)

Publication Number Publication Date
JPH0721153A JPH0721153A (ja) 1995-01-24
JP2555937B2 true JP2555937B2 (ja) 1996-11-20

Family

ID=15852390

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5167580A Expired - Lifetime JP2555937B2 (ja) 1993-07-07 1993-07-07 離散コサイン変換回路

Country Status (1)

Country Link
JP (1) JP2555937B2 (ja)

Also Published As

Publication number Publication date
JPH0721153A (ja) 1995-01-24

Similar Documents

Publication Publication Date Title
RU2460129C2 (ru) Структура преобразования с масштабированными и немасштабированными интерфейсами
CN100379292C (zh) 对具有n和m维数的媒体数据块进行转换的方法和装置
JP5113067B2 (ja) 信号およびデータ処理のための効率的な無乗算計算
JP5004987B2 (ja) データ変換装置及びその制御方法
US5649077A (en) Modularized architecture for rendering scaled discrete cosine transform coefficients and inverse thereof for rapid implementation
JPH07274174A (ja) デジタル信号デコーダ・システム
JPH11501420A (ja) Jpeg画像圧縮標準を実現するvlsi回路構造体
JP3796432B2 (ja) フィルタ処理装置およびフィルタ処理方法
JP4688988B2 (ja) ビデオデータの圧縮方法並びに装置、及び伸張方法並びに装置
JPH09212484A (ja) 離散コサイン変換方法
KR100377084B1 (ko) 이산코사인변환회로,이산코사인역변환회로,mpeg비디오인코더및mpeg비디오디코더
JP2555937B2 (ja) 離散コサイン変換回路
JP2001346213A (ja) 離散コサイン変換装置及びその離散コサイン変換方法
US7451170B2 (en) Rapid and low cost of inverse discrete cosine transform system and method thereof
US5784011A (en) Multiplier circuit for performing inverse quantization arithmetic
US20030133507A1 (en) Adaptive inverse transformation device
US6420979B1 (en) Method for compressing and decompressing image signals and apparatus for compressing and decompressing image signals
US8107767B2 (en) Data transform apparatus and control method thereof
KR101219411B1 (ko) 데이터 변환장치 및 그 제어 방법
JP2003283840A (ja) フィルタ処理装置およびフィルタ処理方法
JP4266512B2 (ja) データ処理装置
US7430332B2 (en) Approximations used in performance sensitive transformations which contain sub-transforms
JP2002152045A (ja) 画像データ用フィルタ処理装置及びその制御方法
KR100392969B1 (ko) 영상 신호 압축 및 압축해제 장치 및 방법
JP2003067360A (ja) 積和演算方法および積和演算装置

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: 19960709