JP3577325B2 - Data processing method by discrete cosine transform (DCT), DCT method, and DCT data processing circuit - Google Patents
Data processing method by discrete cosine transform (DCT), DCT method, and DCT data processing circuit Download PDFInfo
- Publication number
- JP3577325B2 JP3577325B2 JP25974092A JP25974092A JP3577325B2 JP 3577325 B2 JP3577325 B2 JP 3577325B2 JP 25974092 A JP25974092 A JP 25974092A JP 25974092 A JP25974092 A JP 25974092A JP 3577325 B2 JP3577325 B2 JP 3577325B2
- Authority
- JP
- Japan
- Prior art keywords
- memory
- product
- values
- given
- par
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/14—Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
- G06F17/147—Discrete orthonormal transforms, e.g. discrete cosine transform, discrete sine transform, and variations therefrom, e.g. modified discrete cosine transform, integer transforms approximating the discrete cosine transform
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Mathematical Analysis (AREA)
- Data Mining & Analysis (AREA)
- Computational Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Theoretical Computer Science (AREA)
- Discrete Mathematics (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Algebra (AREA)
- Complex Calculations (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Image Processing (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
Description
【0001】
【技術分野】
この発明は、いわゆる「離散余弦変換」(DCT)を達成するためのディジタル信号処理のための方法および回路に関する。
【0002】
【背景技術】
この型の変換はディジタル出力値または係数のマトリックス(またはブロック)と、ディジタル入力値のマトリックスとの間に対応を生じさせる。この変換はもし対応する信号が変換なしに伝送されれば可能であろう速度より速い速度で伝送されるように画像を圧縮するために特に有用である。
【0003】
余弦変換はそれ自体は何らデータ圧縮を達成することはなく、この圧縮は変換回路の下流に位置決めされたエンコーダによって行なわれる。しかしながら、変換回路は容易に圧縮され得る入力データをエンコーダで与えることによって圧縮をより容易にする。この変換回路は黒および白または色画像のディジタル伝送に非常によく使用され、この例を参照することによってこの発明を説明することにする。したがって、ディジタル入力値のマトリックスはピクセルマトリックスに対応するであろう。余弦変換を達成するために、伝送されるべき画像または枠はn行およびn列のブロックに配列され、各ブロック点はディジタル値、たとえば、8−ビットの符号化された値によって表わされるピクセルに対応する。この値は、たとえばピクセルの輝度またはクロミナンス成分に対応する。
【0004】
余弦変換はnxnピクセルのブロックとnxn係数のブロックとの間に対応を生じさせる。ブロックの座標xおよびyを有するピクセルの値をf(x,y)と呼ぶ。F(u,v)は余弦変換に従って計算され、かつ変換されたブロックにおいて線uと列vとの交点に位置決めされる係数を示す。最も一般的な場合において、n=8ならびにx、y、uおよびvは0から7の範囲であろう。
【0005】
以下の説明では、8x8ピクセルブロックのこの具体例のみを考慮することにする。当業者はnxnピクセルブロックに対する対応する公式を容易に計算するまたは専門文献で見つけることが可能であろう。このように、考慮される具体例において、余弦変換は以下の関係によって示される。
【0006】
【数5】
【0007】
この公式において、
Kは2の積分ベキとして表わされる標準化係数であり、
x、yは開始ブロックのピクセルの空間座標であり、
uおよびvは変換されたブロックの係数の空間座標であり、
f(x,y)は開始ブロックのピクセルの値であり、
F(u,v)は余弦変換の係数の値であり、
c(u)、c(v)はu,v=0に対して1/√2であり、u,v≠0に対して1である。
【0008】
達成されるべきDCT作用素の計算ベキは秒当たりの処理されるべきブロックの数に依存する。従来のまたは高品位テレビ画像のために、数100キロブロックが秒当たり処理されなければならず、この目的を達成するために、ビヨン・ジー・リー(Byong Gi Lee)アルゴリズムのような複素アルゴリズム関数を実現化する専用集積回路に頼るものもある。これらの回路は非常に速い処理動作を達成するが、様々な動作を同時に達成するために数多くの構成要素を必要とし、それゆえに集積回路上の大きな表面を占有するという欠点を有する。
【0009】
かかる回路はまた解決するべき問題がより単純であり、かつ秒あたり少数のブロックしか処理する必要がない、たとえばビデオホン型の画像を処理する場合にもよく使用され、この場合約10キロブロック/秒の処理が十分であるように思われる。
【0010】
このように、この発明の目的は小型の集積回路の形で達成され得る離散余弦変換によってデータを処理するための方法および回路を提供することである。
【0011】
【発明の概要】
この目的を達成するために、この発明は、以下の関係に従ってN×Nデータの表f(x,y)とN×N係数の表F(u,v)との間に対応を生じさせるDCTデータ処理方法を提供し、
【0012】
【数6】
【0013】
ここでKは2の定数ベキであり、
x,yはデータ表のデータの座標を示し、
u,vは係数表の係数の座標を示し、
p(x,u)=c(u).cos[(2x+1)uπ/2N]
p(y,v)=c(v).cos[(2y+1)vπ/2N]
であり、
c(u)、c(v)はu,v=0に対して1/√2であり、u,v≠0に対して1である。
この方法は以下のステップを達成することによって1対の座標u,vに対する各係数F(u,v)を順次決定することからなり、そのステップは第1の対x,yに対して、係数P=p(x,u).p(y,v)の絶対値および符号を表でサーチするステップと、pの絶対値にf(x,y)を乗算するステップと、加算または減算によってその乗算の結果を符号の関数でアキュムレータに導入するステップと、さらに対x,yのすべての値に対してこの動作を再開し、かつアキュムレータによって与えられた結果を抽出するステップとである。
【0014】
この発明の一実施例に従って、表でサーチするステップは以下のように達成される、つまり、xおよびuによってアドレス指定された第1の表で、p(x,u)の符号および項n(x,u)(1からN−1の範囲である)をサーチするステップを含み、p(x,u)=Sgn[p(x,u)].|cos[n(x,u)π/2N]|であり、yおよびvによってアドレス指定された第2の表で、p(y,v)の符号および項n(y,v)(1からn−1の範囲である)をサーチするステップを含み、p(y,v)=Sgn[p(y,v)].|cos[n(y,v)π/2N]|であり、さらにn(x,u)およびn(y,v)によってアドレス指定された第3の表で、係数Pの絶対値をサーチするステップとで達成される。
【0015】
この方法の他の局面は以下のステップを達成することによって1対の座標u,vに対する各係数F(u,v)を順次決定することであり、そのステップはデータ表の中心軸に対して組毎に対称的な位置に対応する4つの対x,yに対して、係数P=p(x,u).p(y,v)の絶対値を表でサーチするステップと、これらの4つの対に対する加算および/または減算によって対応するデータの値を結合するステップとを含み、各動作の符号は4つのデータの相対的な位置の関数で決定され、結合された値に係数Pの値を乗算するステップと、その乗算の結果をアキュムレータに導入するステップと、さらに対x,yのすべての値に対してその動作を再開するステップとを含み、xおよびyは0から(N/2)−1の範囲である。
【0016】
他のアプローチに従って、この発明はブロックの各ケースが座標x,yに対応するメモリにストアされたN×Nデータのブロックのデータ(f(x,y))をDCT処理して、係数のブロックの係数(F(u,v))を与えるための方法を提供し、この方法はメモリのケースをアドレス指定するステップと、そのケースの内容を乗算器の第1の入力に与えるステップと、第1の表に、1からN−1の範囲のパラメータn(x,u)およびn(y,v)のすべての値に対して
P=cos[n(x,y)π/2N].cos[n(y,v)π/2N]
の値をストアするステップと、第2の表に、一方でuとx、他方でvとyの値の関数で余弦関数の符号の値、およびn(x,y)とn(y,v)の値をストアし、かつこれらの値を第1の表をアドレス指定するために使用するステップと、各クロックパルスでデータブロックのケースの値に第1の表の値を乗算するステップと、さらにxおよびyのすべての値に対して第2の表によって決定された符号の関数で加算または減算によってその乗算の結果を累積するステップとを含む。
【0017】
この発明はさらにN×Nデータの表f(x,y)とN×N係数の表F(u,v)との間に対応を生じさせるDCTデータ処理回路を提供し、データ処理回路はデータ表メモリと、積
P=|cos[n(x,u)π/2N].cos[n(y,v)π/2N]|のメモリとを含み、
p(x,u)=Sgn[p(x,u)].|cos[n(x,u)π/2N]|
p(y,v)=Sgn[p(y,v)].|cos[n(y,v)π/2N]|であり、
ここでn(x,u)およびn(y,v)は1からN−1の範囲の整数であり、積メモリをアドレス指定するp(x,u)およびp(y,v)の符号ならびにn(x,u)およびn(y,v)の値の表と、値対(u,v)、および各対(u,v)に対して、対のすべての値(x,y)を順次与える座標発生器と、Pのデータメモリのデータ組合せとの積を計算する乗算器と、さらに符号表によって与えられる符号の関数でその乗算の結果を以前の結果で減算するまたは加算するトータライザとを含む。
【0018】
相互的に、この発明は以下の関係に従ってN×N係数(F(u,v))の表とN×Nデータ(f(x,y))の表との間に対応を生じさせる逆離散余弦変換によって係数を処理するための回路を提供し、
【0019】
【数7】
【0020】
ここでKは2の定数ベキであり、
x,yはデータ表のデータの座標を示し、
u,vは係数表の係数の座標を示し、
c(u)、c(v)はu,v=0に対して1/√2であり、u,v≠0に対して1である。
【0021】
この回路は係数表のメモリと、積
P=cos[n(x,u)π/2N].cos[n(y,v)π/2N]
のメモリとを含み、ここでn(x,u)およびn(u,v)は1から(N/2)−1の範囲の整数であり、cos[n(x,u)π/2N]およびcos[n(y,v)π/2N]ならびにn(x,u)およびn(y,v)の符号の表と、データ表の第1の象限およびuとvとが偶数であるか奇数であるかに依存して+1または−1に等しい信号par(u)およびpar(v)に対応する値の対(x,y)、ならびに各対(x,y)に対して対のすべての値(u,v)を順次与える座標発生器と、pの係数メモリの係数組合せとの積を計算する乗算器と、さらに符号表ならびにpar(u)およびpar(v)の値によって与えられる符号の関数で、以前の結果からその乗算の結果を減算して、または以前の結果にその乗算の結果を加算して、それぞれf(x,y)、f(x′,y)、f(x,y′)およびf(x′,y′)を与える4つのトータライザとを含み、ここでx′=N−1−xおよびy′=N−1−yである。
【0022】
この発明の前述および他の目的、特徴、局面および利点は添付の図面に関連して考えられるこの発明の以下の詳細な説明から明らかになるであろう。
【0023】
【発明を実行するためのベストモード】
この発明は上述のDCT公式(1)の分析に基づく。先行技術において、これらの方法を実現化するために使用される方法および回路は、本質的に益々多くなる電子構成要素の数を犠牲にして、最大可能数の動作を同時に達成することを目標としているが、この発明の目的は可能な最も単純な方法で一連にこれらの機能を達成し、かつ可能な限り少ない電子構成要素を使用する一方で、秒当たり約2、30キロブロックの画像シーケンスを処理するために十分な計算力を与えることである。
【0024】
上の公式(1)は以下のように書直すことが可能であり、
【0025】
【数8】
【0026】
ここで
P(x,u,y,v)=p(x,u)p(y,v)
であり、
であり、かつ
であり、ここで
n(x,u)またはn(y,v)=1ないし7であり、さらに
Sgn[p(x,u)]またはSgn[p(y,v)]=±1はpの符号を示す。
【0027】
これらの公式において、
もしu=0であれば、余弦は1に等しく、かつ
p(x,u)=c(u)=1/√2=cos4π/16であり、
もしu≠0であれば、c(u)=1であり、かつ
p(x,u)=cos[(2x+1)uπ/16]である。
【0028】
同一の計算がc(v)およびp(y,v)に当てはまる。
これはp(x,u)またはp(y,v)が正または負の符号を有するπ/16の第1の象限倍数の弧の余弦の絶対値に常に等しいことを意味する。したがって、F(u,v)の各値はf(x,y)の正または負の符号を有する型|cos[n(x,u)π/16].cos[n(y,v)π/16]|の係数Pとの64の積の和に対応する。一方、|P|は49の異なる値をとる。
【0029】
このように、この発明はDCT処理のための基礎となるべき各積cos[n(x,u)π/16].cos[n(y,v)π/16]の一方で符号および他方で絶対値を表にストアすることを提供する。より特定的に、この発明は第1のメモリで2つの表を使用することを提供し、そのうちの一方はxおよびuの現在値を受け、かつn(x,u)およびSgn(x,u)を与え、第2の表はyおよびvの現在値を受け、かつn(y,v)およびSgn(y,v)を与える。n(x,u)およびn(y,v)の値は双方ともPの絶対値(余弦積)を含む第2のメモリのためのアドレスして機能する。上の公式に戻って、8x8のブロックの具体例において、表は相対的に小さなサイズ(第1の表の各々に対して64の4−ビットワード、および第2のメモリに対して典型的に12のビットの49のワード)を有することが認められるであろう。
【0030】
図1はこの発明に従う第1のDCT回路実施例を表わすブロック図である。
処理されるべきブロックx,yのピクセルは処理されるべき8x8のブロックの64のピクセルを最初に含むメモリ1にストアされる。実務において、次のブロックの記憶の間の時間の浪費を回避するために、メモリのサイズを二倍にし、かつそれに二重接続ポートを与えることが賢明である。1つのブロックが処理されている間に、次のブロックが先行技術に従って同時に獲得されるであろう。
【0031】
リードオンリメモリ(ROM)3はすべての積
P=|P(x,u,y,v)|=|cos[n(x,u)π/16].cos[n(y,v)π/16]|、
つまり49の係数を含む。座標発生器y、x、u、vはuおよびvの値の64の組合せを与え、かつ各対(u,v)に対して、64のクロックパルス内でx,yの64の可能性のある値、つまりブロック1の64のメモリピクセルを走査する。座標x,yはランダムに走査されるが、対(u,v)の走査順序は回路出力で入手されるべき順序の関数で選択されることが認められるであろう。たとえば、もしCCITT H261標準要求に応じる出力を与えることが所望されれば、マトリックスu,vの走査はジグザグ型で達成されるであろう。
【0032】
表7は各対(x,u)に対してp(x,u)の符号の対応する値(以下Sgn[p(x,u)]またはより単純にSgn(x,u)と呼ぶ)を与える。この表はまたメモリ3のアドレスの半割りn(x,u)を与える。表9はyおよびvに対して類似の機能を達成する。
【0033】
各対x,yに対して、乗算器11は現在のピクセルの値f(x,y)のPとの積を与える。この積はトータライザ13に与えられ、トータライザは64のクロックパルス毎に対u,vに対して対応する係数F(u,v)の値を与える。トータライザ13は加算器−減算器15およびアキュムレータ17を含む。アキュムレータ17は64のクロックパルスの間加算器15の出力の代数和をストアする。加算器は第1の入力でアキュムレータ17に累積された部分結果を受け、かつその第2の入力で表7および表9の出力で入手されたSgn(x,u)およびSgn(y,v)の代数積を与える符号判別回路19の出力に依存する符号(+)または(−)を有する現在積P.f(x,y)を受ける。
【0034】
図1の回路を使って、64のクロックパルスは各係数F(u,v)を計算するために必要であり、かつ故にブロックの64のDCT係数を計算するために64.64=4096クロックパルスが必要である。図1の回路で最も遅い動作速度を有する要素は乗算器11である。16−MHzクロックパルス内で1つの乗算を行なうことを可能にする技術は4キロブロック/秒の計算ベキを可能にする。
【0035】
一方、図1の回路の大きさのより正確な近似値を有するために、8x8ブロックに対して座標発生器は3ビットで各座標を与え、かつもしブロックメモリのピクセルが鮮明度を損なわないように8ビットで規定されれば、Pの値は12ビットで実質的に規定されなければならないことが認められるであろう。
【0036】
この発明の第2の実施例において、係数F(u,v)が16−MHzクロックパルス内で11−ビット数に12−ビット数を乗算する単一の乗算器を使用することによって伝えられる速度を増大することが工夫される。この目的を達成するために、係数pのより正確な分析が考慮に入れられる。したがって、これらの係数が以下の特徴を満たすことを認めることが可能である。
【0037】
もしx′=7−xであれば、
それならもしuが偶数であればp(x′,u)=+p(x,u)であり、
もしuが奇数であればp(x′,u)=−p(x,u)である。
【0038】
uのパリティを示すために表記par(u)を使用することによって、この式は以下のように書くことが可能であり、
p(x′,u)=par(u).p(x,u)
ここで、par(u)はもしuが偶数であれば+1であり、もしuが奇数であれば−1である。
【0039】
このように上の式(1)に戻って、かつ前の見解を考慮に入れることによって、以下のように書くことが可能である。
【0040】
【数9】
【0041】
図2に示されるように、この式はピクセルx,yの表の中心軸に対して対称的な4組のピクセル、つまりピクセル(x,y)(x′,y)(x,y′)(x′,y′)に対して、乗算係数Pはピクセルに対応するデータがその位置の関数で正または負の符号を与えられるとすれば同一であろうことを意味する。しかしながら、二重和は上に示されたように、8x8=64の代わりに4x4=16項のみに関する。2つの結論が引出される、つまり一方で図1のメモリ7および9のサイズは減少されることが可能であり、他方で係数F(u,v)は64の代わりにわずか16のクロックパルス内で計算することが可能である。このように、計算速度は4倍速くなりかつ約16キロブロック/秒の速度、つまり上に示したようにビデオホンデータを処理するのに十分速い速度を与える。
【0042】
図3はこの発明の第2の実施例を実現化する回路を概略的に示す。図1の回路と同様に、図3の回路はブロックメモリ1、係数Pのメモリ3、データ発生器5、ROM3をアドレス指定するためにそれぞれ値n(x,u)およびn(y,v)を与え、かつまたPの符号を与える回路19にp(x,u)およびp(y,v)の符号を与える表7および9を含む。Pの絶対値は乗算器11に与えられ、その出力は周期的に連続値F(u,v)を与えるトータライザ13に接続される。
【0043】
図1の回路との主要な違いは座標発生器5がメモリ1の4つのピクセル、つまりピクセルf(x,y)、f(x′,y)、f(x,y′)およびf(x′,y′)を同時にアドレス指定することである。総和回路21は、
f(x,y)+par(u)f(x′,y)+par(v)[(f(x,y′)+par(u)f(x′,y′)]
の値を与える。
【0044】
回路21の出力は乗算器11の第2の入力に与えられる。
説明された実施例において、総和回路21は3つの加算器/減算器を含む。第1のもの23はf(x,y)+par(u).f(x′,y)を与え、かつ座標発生器5から入力par(u)を受ける。 同様に、第2のもの24はf(x,y′)+par(u).f(x′,y′)を与え、かつ座標発生器5から入力par(u)を受ける。第3のもの25は最終結果を与え、かつ座標発生器5から信号par(v)を受ける。
【0045】
この実施例において、各対の値u,vに対して、yの4つの値およびxの4つの値のみが走査され、それは上述のように総和回路21を付加することを犠牲にして動作持続期間を減少させる。回路21のみが加算器を含むので、それは製造するのが特に単純でありかつ集積回路上の小さな表面を占有するであろう。
【0046】
この発明をよりよく理解するために、図4はuの8つの値およびxの4つの走査された値の各々に対応するn(x,u)およびSgn(x,u)の値の表を示す(nは公式(2)および(3)で規定されたことが思い出されなければならない)。
【0047】
【逆離散余弦変換】
逆離散余弦変換8x8は以下のように書かれる。
【0048】
【数10】
【0049】
この等式は直接DCTを決定するための等式(1)と同一の形式を有する。したがって、図1の回路は修正することなくf(x,y)およびF(u,v)を交換することによって逆DCTを計算することが可能である。
【0050】
しかしながら、係数Pの因数分解を利用する図3の回路は可逆的ではない。しかし、図1の回路に対して回路の動作を因数4だけ加速するための対応する構造は逆DCTの計算に適合可能である。
【0051】
実際、同一の積
F(u,v).p(x,u).p(y,v)
はその符号を除いては4つのピクセルの和の計算に含まれることが認められる。言換えれば、逆離散余弦変換の作用素は直接DCT計算機と同一の性能を有するように、64のクロックパルス内で4つのピクセルを同時に計算することが可能である。前のようにx′=7−xおよびy′=7−yを考慮すると、以下の関係(5)が得られる。
【0052】
【数11】
【0053】
これらの関係を利用する回路は図5に示される。
図5において、前の図面の要素に類似する要素は同一の参照番号で示される。この回路はブロックメモリ1を含むが、ピクセルf(x,y)のブロックの代わりに、それらはここで係数F(u,v)のブロックである。前のように、ROM3はPの値、つまりcos(nπ16)の積の絶対値を含み、かつ座標発生器5ならびに項n(x,u)およびn(y,v)の値を決定する表7および9に関連する。乗算器11は一方でブロックメモリ1から値F(u,v)を直接受け、かつ他方でROM3から値Pを受ける。乗算の結果は4つのトータライザ31、32、33、34に同時に与えられ、それらに対して加算または減算選択が回路19からの出力Sgn、および座標発生器5の出力で供給されるようなuおよびvのパリティ値の関数で決定される。4つのトータライザの出力は同時に与えられるので、それらは適当な速度で出力線40に与えられる前にレジスタ35、36、37、38で一時的にストアされる。
【0054】
しかしながら、線40上のピクセル出力は等式(5)の要求によって課せられたシーケンスで与えられる。つまり、ピクセルマトリックスの中心軸に対して対称的な組に配列された4つの位置に対応するピクセルは順次与えられる。これはピクセルマトリックスの所望の走査シーケンスに一般に対応しない。したがって、出力42上の所望の順序でピクセルを再配列するために出力順列回路41を与えることが時として必要であろう。
【0055】
付加的に、逆DCTの計算に関して、DCT動作は最も高い振幅を有する係数のみを伝送するように係数を後に定量化するために一般に達成されることが認められるであろう。したがって、逆変換動作が行なわれなればならないとき、項の大半がゼロである係数F(u,v)のマトリックスが一般に入手される。したがって、様々な方法が図1または図5に示されるような回路による計算サイクルにゼロ係数をさらすことを回避するために使用され得る。これはたとえばブロックメモリおよび座標発生器を以下のように修正することによって達成され得る。
【0056】
− ブロックメモリは係数リストを含むメモリになる。同一のブロックの非ゼロ係数は変数長のリストの形式で連続メモリアドレスでそこにストアされる。このメモリの各ワードは一方でF(u,v)、つまり係数の値を、かつ他方でこの係数(各3ビット)の座標u,vを含み、最後にリスト終端ビットfbを含む。
【0057】
− 座標発生器はxおよびyを伝達し続けるが、uおよびvの値はブロックメモリの出力によって与えられる。最後に、ブロックメモリは次のリストを処理する前に64回(図1の例において)、または16回(図5の例において)リストを走査するようにアドレス指定されなければならない。
【図面の簡単な説明】
【図1】この発明の第1の実施例を示す図である。
【図2】この発明の第2の実施例で実現化される方法を理解するために有用な例証的なブロック図である。
【図3】この発明の第2の実施例を示す図である。
【図4】uおよびxの様々な値に対する係数値の表を示す図である。
【図5】逆離散余弦変換を決定するための回路を示す図である。
【符号の説明】
5 座標発生器
11 乗算器
13 トータライザ
17 アキュムレータ
21 回路[0001]
【Technical field】
The present invention relates to a method and a circuit for digital signal processing to achieve a so-called "discrete cosine transform" (DCT).
[0002]
[Background Art]
This type of conversion creates a correspondence between a matrix (or block) of digital output values or coefficients and a matrix of digital input values. This conversion is particularly useful for compressing images so that the corresponding signal is transmitted at a higher rate than would be possible if transmitted without conversion.
[0003]
The cosine transform does not, by itself, achieve any data compression, which is performed by an encoder positioned downstream of the transform circuit. However, the conversion circuit makes compression easier by providing input data at the encoder that can be easily compressed. This conversion circuit is very commonly used for digital transmission of black and white or color images, and the invention will be described with reference to this example. Thus, the matrix of digital input values will correspond to the pixel matrix. To achieve the cosine transform, the image or frame to be transmitted is arranged in n rows and n columns of blocks, where each block point is a pixel represented by a digital value, for example, an 8-bit encoded value. Corresponding. This value corresponds, for example, to the luminance or chrominance component of the pixel.
[0004]
The cosine transform creates a correspondence between a block of nxn pixels and a block of nxn coefficients. The value of the pixel having the block coordinates x and y is called f (x, y). F (u, v) is calculated according to the cosine transform and represents the coefficient located at the intersection of line u and column v in the transformed block. In the most general case, n = 8 and x, y, u and v will range from 0 to 7.
[0005]
In the following description, only this specific example of an 8x8 pixel block will be considered. Those skilled in the art will readily be able to calculate the corresponding formula for the nxn pixel block or find it in the technical literature. Thus, in the embodiment considered, the cosine transform is represented by the following relationship:
[0006]
(Equation 5)
[0007]
In this formula,
K is a standardized coefficient expressed as an integral power of 2;
x, y are the spatial coordinates of the pixels of the starting block,
u and v are the spatial coordinates of the coefficients of the transformed block,
f (x, y) is the value of the pixel in the starting block,
F (u, v) is the value of the cosine transform coefficient,
c (u) and c (v) are 1 / √2 for u, v = 0 and 1 for u, v ≠ 0.
[0008]
The computation power of the DCT operator to be achieved depends on the number of blocks to be processed per second. For conventional or high-definition television images, hundreds of kiloblocks must be processed per second, and to achieve this end, complex algorithm functions such as the Byong Gi Lee algorithm are used. Some rely on dedicated integrated circuits to achieve Although these circuits achieve very fast processing operations, they have the disadvantage of requiring a large number of components to achieve various operations simultaneously, and therefore occupying a large surface on the integrated circuit.
[0009]
Such circuits are also often used when processing problems that are simpler and need to process only a few blocks per second, for example videophone-type images, in which case about 10 kiloblocks / sec. The seconds seem to be enough.
[0010]
Thus, it is an object of the present invention to provide a method and circuit for processing data by a discrete cosine transform that can be achieved in the form of a small integrated circuit.
[0011]
Summary of the Invention
To this end, the present invention provides a DCT that produces a correspondence between a table f (x, y) of N × N data and a table F (u, v) of N × N coefficients according to the following relationship: Provide data processing methods,
[0012]
(Equation 6)
[0013]
Where K is a constant power of 2,
x and y indicate the coordinates of the data in the data table,
u and v indicate the coordinates of the coefficients in the coefficient table,
p (x, u) = c (u). cos [(2x + 1) uπ / 2N]
p (y, v) = c (v). cos [(2y + 1) vπ / 2N]
And
c (u) and c (v) are 1 / √2 for u, v = 0 and 1 for u, v ≠ 0.
The method comprises sequentially determining each coefficient F (u, v) for a pair of coordinates u, v by accomplishing the following steps, which step comprises, for a first pair x, y, a coefficient F (u, v). P = p (x, u). searching the table for the absolute value and sign of p (y, v), multiplying the absolute value of p by f (x, y), and accumulating the result of the multiplication by a function of the sign by addition or subtraction And restarting this operation for all values of the pair x, y and extracting the result provided by the accumulator.
[0014]
According to one embodiment of the present invention, the step of searching in a table is accomplished as follows: in the first table addressed by x and u, the sign of p (x, u) and the term n ( x, u) (which ranges from 1 to N-1), where p (x, u) = Sgn [p (x, u)]. | Cos [n (x, u) π / 2N] |, in the second table addressed by y and v, the sign of p (y, v) and the term n (y, v) (from 1 n (in the range of n-1), where p (y, v) = Sgn [p (y, v)]. | Cos [n (y, v) π / 2N] | and further searches the third table addressed by n (x, u) and n (y, v) for the absolute value of coefficient P Achieved in steps.
[0015]
Another aspect of the method is to sequentially determine each coefficient F (u, v) for a pair of coordinates u, v by performing the following steps, which step is performed with respect to the central axis of the data table. For four pairs x, y corresponding to symmetric positions for each pair, the coefficients P = p (x, u). searching the table for the absolute value of p (y, v) and combining the corresponding data values by addition and / or subtraction on these four pairs, the sign of each operation being four data Multiplying the combined value, determined by a function of the relative position of x, by the value of the coefficient P, introducing the result of the multiplication to an accumulator, and for all values of the pair x, y Restarting the operation, wherein x and y range from 0 to (N / 2) -1.
[0016]
In accordance with another approach, the present invention performs a DCT operation on the data (f (x, y)) of a block of N × N data stored in memory, where each case of the block corresponds to coordinates x, y, to obtain a block of coefficients Providing a coefficient (F (u, v)) of the memory, addressing a case in the memory, providing the contents of the case to a first input of the multiplier; Table 1 shows that P = cos [n (x, y) π / 2N]... For all values of parameters n (x, u) and n (y, v) ranging from 1 to
Storing the values of the sign of the cosine function as a function of the values of u and x on the one hand and v and y on the other hand, and n (x, y) and n (y, v ) And using these values to address the first table; and multiplying the value of the case of the data block by the value of the first table at each clock pulse; Accumulating the result of the multiplication by addition or subtraction with a function of the sign determined by the second table for all values of x and y.
[0017]
The present invention further provides a DCT data processing circuit for creating a correspondence between a table f (x, y) of N × N data and a table F (u, v) of N × N coefficients, Table memory and product P = | cos [n (x, u) π / 2N]. cos [n (y, v) π / 2N] |
p (x, u) = Sgn [p (x, u)]. | Cos [n (x, u) π / 2N] |
p (y, v) = Sgn [p (y, v)]. | Cos [n (y, v) π / 2N] |
Where n (x, u) and n (y, v) are integers in the range of 1 to N-1, the signs of p (x, u) and p (y, v) addressing the product memory and A table of the values of n (x, u) and n (y, v) and the value pairs (u, v), and for each pair (u, v), the values (x, y) A multiplier for calculating a product of a sequentially given coordinate generator, a data combination of the data memory of P, and a totalizer for subtracting or adding the result of the multiplication with a previous result by a function of a sign given by a code table; including.
[0018]
Reciprocally, the present invention provides an inverse discrete that produces a correspondence between a table of N × N coefficients (F (u, v)) and a table of N × N data (f (x, y)) according to the following relationship: Providing a circuit for processing the coefficients by cosine transformation,
[0019]
(Equation 7)
[0020]
Where K is a constant power of 2,
x and y indicate the coordinates of the data in the data table,
u and v indicate the coordinates of the coefficients in the coefficient table,
c (u) and c (v) are 1 / √2 for u, v = 0 and 1 for u, v ≠ 0.
[0021]
This circuit includes a memory of a coefficient table and a product P = cos [n (x, u) π / 2N]. cos [n (y, v) π / 2N]
Where n (x, u) and n (u, v) are integers ranging from 1 to (N / 2) -1 and cos [n (x, u) π / 2N]. And cos [n (y, v) π / 2N] and a table of signs of n (x, u) and n (y, v), and whether the first quadrant of the data table and u and v are even numbers Pairs (x, y) of values corresponding to signals par (u) and par (v) equal to +1 or -1 depending on whether odd, and all pairs for each pair (x, y) , A multiplier for calculating the product of the coefficient combination of the coefficient memory of p and the code table and the values of par (u) and par (v) The function of the sign, subtracting the result of the multiplication from the previous result or adding the result of the multiplication to the previous result , Each providing f (x, y), f (x ′, y), f (x, y ′) and f (x ′, y ′), where x ′ = N−1 -X and y '= N-1-y.
[0022]
The foregoing and other objects, features, aspects and advantages of the present invention will become apparent from the following detailed description of the invention considered in connection with the accompanying drawings.
[0023]
Best mode for carrying out the invention
The present invention is based on the analysis of the DCT formula (1) described above. In the prior art, the methods and circuits used to implement these methods aim to achieve the maximum possible number of operations simultaneously, at the expense of an ever-increasing number of electronic components. However, it is an object of the present invention to achieve these functions in a series in the simplest way possible and to use as few electronic components as possible, while producing an image sequence of about 2,30 kiloblocks per second. Give enough computing power to process.
[0024]
The above formula (1) can be rewritten as follows,
[0025]
(Equation 8)
[0026]
Where P (x, u, y, v) = p (x, u) p (y, v)
And
And
Where n (x, u) or n (y, v) = 1 to 7 and Sgn [p (x, u)] or Sgn [p (y, v)] = ± 1 is p Is shown.
[0027]
In these formulas,
If u = 0, the cosine is equal to 1 and p (x, u) = c (u) = 1 / √2 = cos4π / 16,
If u ≠ 0, then c (u) = 1 and p (x, u) = cos [(2x + 1) uπ / 16].
[0028]
The same calculation applies to c (v) and p (y, v).
This means that p (x, u) or p (y, v) is always equal to the absolute value of the cosine of the arc of the first quadrant multiple of π / 16 with a positive or negative sign. Thus, each value of F (u, v) is of the form | cos [n (x, u) π / 16] .f (x, y) with a positive or negative sign. cos [n (y, v) π / 16] | corresponds to the sum of 64 products with the coefficient P. On the other hand, | P | takes 49 different values.
[0029]
Thus, the present invention provides for each product cos [n (x, u) π / 16]... To be the basis for DCT processing. cos [n (y, v) π / 16] provides for storing the sign on the one hand and the absolute value on the other hand in a table. More specifically, the present invention provides for using two tables in the first memory, one of which receives the current values of x and u, and n (x, u) and Sgn (x, u ), The second table receives the current values of y and v, and gives n (y, v) and Sgn (y, v). The values of n (x, u) and n (y, v) both serve as addresses for a second memory containing the absolute value of P (cosine product). Returning to the above formula, in the example of an 8x8 block, the table is relatively small in size (64 4-bit words for each of the first tables, and typically for the second memory) It will be appreciated that it has 49 words of 12 bits).
[0030]
FIG. 1 is a block diagram showing a first DCT circuit embodiment according to the present invention.
The pixels of the block x, y to be processed are stored in the
[0031]
The read only memory (ROM) 3 stores all products P = | P (x, u, y, v) | = | cos [n (x, u) π / 16]. cos [n (y, v) π / 16] |,
That is, it includes 49 coefficients. The coordinate generator y, x, u, v gives 64 combinations of u and v values, and for each pair (u, v) 64 possibilities of x, y within 64 clock pulses Scan a certain value, ie, 64 memory pixels of
[0032]
Table 7 shows the corresponding value of the sign of p (x, u) for each pair (x, u) (hereinafter referred to as Sgn [p (x, u)] or more simply Sgn (x, u)). give. This table also gives half the address n (x, u) of the
[0033]
For each pair x, y, multiplier 11 provides the product of the current pixel value f (x, y) with P. This product is provided to the
[0034]
Using the circuit of FIG. 1, 64 clock pulses are needed to calculate each coefficient F (u, v), and therefore 64.64 = 4096 clock pulses to calculate the 64 DCT coefficients of the block. is necessary. The element with the slowest operating speed in the circuit of FIG. Techniques that allow one multiplication to take place within a 16-MHz clock pulse allow a computational power of 4 kiloblocks / second.
[0035]
On the other hand, to have a more accurate approximation of the size of the circuit of FIG. 1, the coordinate generator gives each coordinate in 3 bits for an 8 × 8 block, and if the pixels of the block memory do not lose sharpness. It will be appreciated that if the value of P is specified by 8 bits, then the value of P must be substantially specified by 12 bits.
[0036]
In a second embodiment of the invention, the rate at which the factor F (u, v) is conveyed by using a single multiplier that multiplies the 11-bit number by the 12-bit number within a 16-MHz clock pulse. Is increased. To this end, a more accurate analysis of the coefficient p is taken into account. Thus, it can be seen that these coefficients satisfy the following characteristics:
[0037]
If x '= 7-x,
Then, if u is even, then p (x ', u) = + p (x, u),
If u is odd, then p (x ', u) =-p (x, u).
[0038]
By using the notation par (u) to indicate the parity of u, this equation can be written as:
p (x ', u) = par (u). p (x, u)
Here, par (u) is +1 if u is even, and -1 if u is odd.
[0039]
Thus, by returning to equation (1) above and taking into account the previous views, it is possible to write:
[0040]
(Equation 9)
[0041]
As shown in FIG. 2, this equation is equivalent to four sets of pixels symmetric with respect to the central axis of the table of pixels x, y, ie, pixel (x, y) (x ', y) (x, y') For (x ', y'), the multiplication factor P means that if the data corresponding to a pixel is given a positive or negative sign as a function of its position, it will be the same. However, the double sum, as shown above, involves only 4x4 = 16 terms instead of 8x8 = 64. Two conclusions can be drawn, namely that on the one hand the size of the
[0042]
FIG. 3 schematically shows a circuit for realizing the second embodiment of the present invention. Like the circuit of FIG. 1, the circuit of FIG. 3 has values n (x, u) and n (y, v) for addressing the
[0043]
The main difference from the circuit of FIG. 1 is that the coordinate
f (x, y) + par (u) f (x ', y) + par (v) [(f (x, y') + par (u) f (x ', y')]
Gives the value of
[0044]
The output of
In the described embodiment, summing
[0045]
In this embodiment, for each pair of values u, v, only four values of y and four values of x are scanned, which lasts at the expense of adding summing
[0046]
To better understand the invention, FIG. 4 shows a table of n (x, u) and Sgn (x, u) values corresponding to each of the eight values of u and the four scanned values of x. (N must be recalled that n was defined in formulas (2) and (3)).
[0047]
[Inverse discrete cosine transform]
The inverse discrete cosine transform 8x8 is written as follows.
[0048]
(Equation 10)
[0049]
This equation has the same form as equation (1) for directly determining the DCT. Thus, the circuit of FIG. 1 can calculate the inverse DCT by exchanging f (x, y) and F (u, v) without modification.
[0050]
However, the circuit of FIG. 3 utilizing factorization of the coefficient P is not reversible. However, the corresponding structure for accelerating the operation of the circuit by a factor of 4 with respect to the circuit of FIG. 1 is adaptable to the calculation of the inverse DCT.
[0051]
In fact, the same product F (u, v). p (x, u). p (y, v)
Is included in the calculation of the sum of the four pixels except for its sign. In other words, it is possible to compute four pixels simultaneously within 64 clock pulses so that the inverse discrete cosine transform operator has the same performance as a direct DCT calculator. Considering x '= 7-x and y' = 7-y as before, the following relationship (5) is obtained.
[0052]
(Equation 11)
[0053]
A circuit that utilizes these relationships is shown in FIG.
In FIG. 5, elements similar to those in the previous drawings are designated by the same reference numerals. This circuit includes a
[0054]
However, the pixel outputs on line 40 are provided in the sequence imposed by the requirements of equation (5). That is, pixels corresponding to four positions arranged in a symmetrical set with respect to the central axis of the pixel matrix are sequentially given. This does not generally correspond to the desired scanning sequence of the pixel matrix. Therefore, it may sometimes be necessary to provide an
[0055]
Additionally, with respect to the computation of the inverse DCT, it will be appreciated that DCT operation is generally achieved to later quantify the coefficients such that only the coefficients having the highest amplitude are transmitted. Thus, when an inverse transformation operation has to be performed, a matrix of coefficients F (u, v), where most of the terms are zero, is generally obtained. Accordingly, various methods may be used to avoid exposing zero coefficients to computation cycles by circuits such as those shown in FIG. 1 or FIG. This can be achieved, for example, by modifying the block memory and the coordinate generator as follows.
[0056]
The block memory is the memory containing the coefficient list; The non-zero coefficients of the same block are stored there at consecutive memory addresses in the form of a list of variable lengths. Each word of this memory contains, on the one hand, F (u, v), the value of the coefficient, and, on the other hand, the coordinates u, v of this coefficient (3 bits each), and finally a list terminating bit fb.
[0057]
The coordinate generator continues to transmit x and y, but the values of u and v are given by the outputs of the block memory. Finally, the block memory must be addressed to scan the list 64 times (in the example of FIG. 1) or 16 times (in the example of FIG. 5) before processing the next list.
[Brief description of the drawings]
FIG. 1 is a diagram showing a first embodiment of the present invention.
FIG. 2 is an illustrative block diagram useful for understanding the method implemented in the second embodiment of the present invention.
FIG. 3 is a diagram showing a second embodiment of the present invention.
FIG. 4 shows a table of coefficient values for various values of u and x.
FIG. 5 is a diagram showing a circuit for determining an inverse discrete cosine transform.
[Explanation of symbols]
5 Coordinate Generator 11
Claims (8)
Kは2の定数ベキであり、
x,yはデータ表の中のデータの座標を示し、
u,vは係数表の中の係数の座標を示し、
p(x,u)=c(u).cos[(2x+1)uπ/2N]、
p(y,v)=c(v).cos[(2y+1)vπ/2N]であり、
c(u),c(v)はu,v=0に対して1/√2であり、u,v≠0に対して1であり、前記方法は以下のステップを達成することによって1対の座標u,vに対する各係数F(u,v)を順次決定することからなり、そのステップは、
データ表の中心軸に対して対称的な値の組によって配列される位置に対応する4つの対(x,y)、(x,y’)、(x’,y)、および(x’,y’)に対して、積P(x,u,y,v)=p(x,u).p(y,v)の絶対値を表でサーチするステップと、
これら4つの対に対応するf(x,y)、f(x,y’)、f(x’,y)、およびf(x’,y’)の値を演算によって組合わせるステップとを含み、前記演算は、加算および/または減算であって、前記演算の種類は、uとvが奇数か偶数かで決定され、
前記組合された値と前記サーチされた積P(x,u,y,v)の絶対値とを乗算するステップと、
前記乗算の結果をアキュムレータ(17)に導入するステップと、
さらに対x,yのすべての値に対して上記ステップを再開するステップとを含み、xおよびyは0から(N/2)−1の範囲である、離散余弦変換(DCT)データ処理回路に
おけるデータ処理方法。The following relationship
x and y indicate the coordinates of the data in the data table,
u and v indicate the coordinates of the coefficients in the coefficient table,
p (x, u) = c (u). cos [(2x + 1) uπ / 2N] ,
p (y, v) = c (v). cos [(2y + 1) vπ / 2N],
c (u), c (v) is 1 / √2 for u, v = 0 and 1 for u, v ≠ 0, and the method achieves one pair by achieving the following steps: , Sequentially determining each coefficient F (u, v) for the coordinates u, v of
Four pairs (x, y), (x, y '), (x', y), and (x ', y) corresponding to positions arranged by sets of values symmetric about the central axis of the data table. y ′), the product P (x, u, y, v) = p (x, u). searching a table for the absolute value of p (y, v);
Arithmetically combining the values of f (x, y), f (x, y '), f (x', y), and f (x ', y') corresponding to these four pairs. , The operation is addition and / or subtraction, and the type of the operation is determined by whether u and v are odd or even,
A step of multiplying the combined value and the search has been the product P (x, u, y, v) the absolute value of,
Introducing the result of said multiplication to an accumulator (17);
Restarting the above steps for all values of the pair x, y, wherein x and y are in the range of 0 to (N / 2) -1 in a discrete cosine transform (DCT) data processing circuit. Data processing method.
p(x,u)=Sgn[p(x,u)].|cos[n(x,u)π/2N]|、
p(y,v)=Sgn[p(y,v)].|cos[n(y,v)π/2N]|であり、ここでn(x,u)およびn(y,v)は1からN−1の範囲の整数であり、積P(x,u,y,v)=p(x,u).p(y,v)であり、
前記データ表をデータ表メモリ(1)に予めストアするステップと、
前記積P(x,u,y,v)の絶対値の表を積メモリ(3)に予めストアするステップと、
前記積メモリ(3)をアドレス指定するためのn(x,u)の値およびp(x,u)の符号を定めた表を予めメモリ(7)にストアするステップと、
前記積メモリ(3)をアドレス指定するためのn(y,v)の値およびp(y,v)の符号を定めた表を予めメモリ(9)に予めストアするステップとをさらに含み、
前記再開するステップは、値対(u,v)、および各対(u,v)に対して、対(x、y)のすべての値を順次与え、
前記データ処理方法は、さらに、
前記データ表メモリ(1)に、前記再開するステップで与えられた(x,y)に対応するf(x,y)、f(x,y’)、f(x’,y)、およびf(x’,y’)を与えさせ るステップと、
前記メモリ(7)に、前記再開するステップで与えられた(x,u)に対応するp(x,u)の符号と、n(x,u)の値を与えさせるステップと、
前記メモリ(9)に、前記再開するステップで与えられた(y,v)に対応するp(y,v)の符号と、n(y,v)の値を与えさせるステップとを含み、
前記サーチするステップは、前記与えられたn(x,u)およびn(y,v)の値を使用して、前記積メモリ(3)に、前記再開するステップで与えられた(x,y,u,v)に対応する積P(x,u,y,v)の絶対値を与えさせ、
前記組合わせるステップは、前記与えられたf(x,y)、f(x,y’)、f(x’,y)、およびf(x’,y’)の値を演算によって組合わせ、
前記乗算するステップは、前記組合された値と、前記与えられた積P(x,u,y,v)の絶対値とを乗算し、
前記導入するステップは、前記与えられたp(x,u)の符号およびp(y,v)の符号の関数で、前記乗算の結果を前の結果から減算するか、またはそれに加算する、請求項1記載のデータ処理方法。 The data processing method includes :
p (x, u) = Sgn [p (x, u)]. | Cos [n (x, u) π / 2N] |,
p (y, v) = Sgn [p (y, v)]. | Cos [n (y, v) π / 2N] |, where n (x, u) and n (y, v) are integers ranging from 1 to N−1 and the product P (x, u, y, v) = p (x, u). p (y, v),
Storing said data table in a data table memory (1) in advance ;
Storing in advance a table of absolute values of the product P (x, u, y, v) in a product memory (3);
Storing in advance in a memory (7) a table defining the values of n (x, u) and the sign of p (x, u) for addressing said product memory (3);
Storing in advance in a memory (9) a table defining values of n (y, v) and signs of p (y, v) for addressing the product memory (3),
The step of resuming comprises sequentially providing a value pair (u, v) and, for each pair (u, v), all values of the pair (x, y);
The data processing method further includes:
In the data table memory (1), f (x, y), f (x, y '), f (x', y), and f (x, y) corresponding to (x, y) given in the restarting step are stored. (x ', y') and the step that me give the,
Causing the memory (7) to provide a sign of p (x, u) corresponding to (x, u) given in the step of restarting and a value of n (x, u);
Causing the memory (9) to provide a sign of p (y, v) corresponding to (y, v) given in the restarting step and a value of n (y, v),
The searching step uses the given values of n (x, u) and n (y, v) to store (x, y) in the product memory (3) in the restarting step. , U, v), the absolute value of the product P (x, u, y, v) is given,
The combining step includes combining the given values of f (x, y), f (x, y ′), f (x ′, y), and f (x ′, y ′) by operation,
Said multiplying comprises multiplying said combined value by the absolute value of said given product P (x, u, y, v);
The step of introducing subtracts the result of the multiplication from a previous result or adds to the result of the multiplication as a function of the given sign of p (x, u) and the sign of p (y, v). Item 1. The data processing method according to Item 1.
Kは2の定数ベキであり、K is a constant power of 2,
x,yはデータ表のデータの座標を示し、x and y indicate the coordinates of the data in the data table,
u,vは係数表の係数の座標を示し、u and v indicate the coordinates of the coefficients in the coefficient table,
p(x,u)=c(u).cos[(2x+1)uπ/2N]、p (x, u) = c (u). cos [(2x + 1) uπ / 2N],
p(y,v)=c(v).cos[(2y+1)vπ/2N]であり、p (y, v) = c (v). cos [(2y + 1) vπ / 2N],
c(u),c(v)はu,v=0に対して1/√2であり、u,v≠0に対して1であc (u) and c (v) are 1 / √2 for u, v = 0 and 1 for u, v ≠ 0.
り、前記離散余弦変換(DCT)データ処理回路は、以下の手段によって1対の座標u,vに対する各係数F(u,v)を順次決定し、その手段は、The discrete cosine transform (DCT) data processing circuit sequentially determines each coefficient F (u, v) for a pair of coordinates u, v by the following means.
データ表の中心軸に対して対称的な値の組によって配列される位置に対応する4つの対(x,y)、(x,y’)、(x’,y)、および(x’,y’)に対して、積P(x,u,y,v)=p(x,u).p(y,v)の絶対値を表でサーチする手段と、Four pairs (x, y), (x, y '), (x', y), and (x ', y) corresponding to positions arranged by sets of values symmetric about the central axis of the data table. y ′), the product P (x, u, y, v) = p (x, u). means for searching a table for the absolute value of p (y, v);
これら4つの対に対応するf(x,y)、f(x,y’)、f(x’,y)、およびf(x’,y’)の値を演算によって組合せる手段とを含み、前記演算は、加算および/または減算であって、前記演算の種類は、uとvが奇数か偶数かで決定され、Means for arithmetically combining the values of f (x, y), f (x, y '), f (x', y), and f (x ', y') corresponding to these four pairs. , The operation is addition and / or subtraction, and the type of the operation is determined by whether u and v are odd or even,
前記組合された値と前記サーチされた積P(x,u,y,v)の絶対値とを乗算する手段と、Means for multiplying said combined value by the absolute value of said searched product P (x, u, y, v);
前記乗算の結果をアキュムレータ(17)に導入する手段と、Means for introducing the result of said multiplication into an accumulator (17);
さらに対x,yのすべての値に対して上記ステップを再開する手段とを含み、xおよびyは0から(N/2)−1の範囲である、離散余弦変換(DCT)データ処理回路。Means for restarting the above steps for all values of the pair x, y, wherein x and y are in the range of 0 to (N / 2) -1.
p(x,u)=Sgn[p(x,u)].|cos[n(x,u)π/2N]|、
p(y,v)=Sgn[p(y,v)].|cos[n(y,v)π/2N]|であり、ここでn(x,u)およびn(y,v)は1からN−1の範囲の整数であり、積P(x,u,y,v)=p(x,u).p(y,v)であり、
前記データ表を記憶するデータ表メモリ(1)と、
前記積P(x,u,y,v)の絶対値の表を記憶する積メモリ(3)と、
前記積メモリ(3)をアドレス指定するためのn(x,u)の値およびp(x,u)の符号を定めた表を記憶するメモリ(7)と、
前記積メモリ(3)をアドレス指定するためのn(y,v)の値およびp(y,v)の符号を定めた表を記憶するメモリ(9)とをさらに備え、
前記再開する手段は、値対(u,v)、および各対(u,v)に対して、対(x、y)のすべての値を順次与える座標発生器(5)であり、
前記データ表メモリ(1)は、前記座標発生器(5)で与えられた(x,y)に対応するf(x,y)、f(x,y’)、f(x’,y)、およびf(x’,y’)を与え、
前記メモリ(7)は、前記座標発生器(5)で与えられた(x,u)に対応するp(x,u)の符号と、n(x,u)の値を与え、
前記メモリ(9)は、前記座標発生器(5)で与えられた(y,v)に対応するp(y,v)の符号と、n(y,v)の値を与え、
前記サーチする手段は、前記与えられたn(x,u)およびn(y,v)の値を使用して、前記積メモリ(3)に、前記座標発生器(5)で与えられた(x,y,u,v)に対応する積P(x,u,y,v)の絶対値を与えさせ、
前記組合わせる手段は、前記与えられたf(x,y)、f(x,y’)、f(x’,y)、およびf(x’,y’)の値を演算によって組合わせ、
前記乗算する手段は、前記組合された値と、前記与えられた積P(x,u,y,v)の絶対値とを乗算する乗算器(11)であり、
前記導入する手段は、前記与えられたp(x,u)の符号およびp(y,v)の符号の関数で、前記乗算の結果を前の結果から減算するか、またはそれに加算するトータライザ(13)である、請求項3記載の離散余弦(DCT)データ処理回路。 The discrete cosine transform (DCT) data processing circuit comprises:
p (x, u) = Sgn [p (x, u)]. | Cos [n (x, u) π / 2N] |,
p (y, v) = Sgn [p (y, v)]. | Cos [n (y, v) π / 2N] |, where n (x, u) and n (y, v) are integers ranging from 1 to N−1 and the product P (x, u, y, v) = p (x, u). p (y, v),
A data table memory (1) for storing the data table;
A product memory (3) for storing a table of absolute values of the product P (x, u, y, v) ;
A memory (7) for storing a table defining values of n (x, u) and signs of p (x, u) for addressing the product memory (3);
A memory (9) for storing a table defining values of n (y, v) and signs of p (y, v) for addressing the product memory (3) ;
The resuming means, the value pairs (u, v), and for each pair (u, v), a pair (x, y) coordinate generator sequentially providing all values of (5),
The data table memory (1) stores f (x, y), f (x, y '), f (x', y) corresponding to (x, y) given by the coordinate generator (5). , And f (x ′, y ′) ,
The memory (7) gives a sign of p (x, u) corresponding to (x, u) given by the coordinate generator (5) and a value of n (x, u) ,
The memory (9) gives a sign of p (y, v) corresponding to (y, v) given by the coordinate generator (5) and a value of n (y, v) ,
The searching means uses the given values of n (x, u) and n (y, v) to provide the product memory (3) with the coordinate generator (5) ( x, y, u, v), giving the absolute value of the product P (x, u, y, v) ,
The combining means combines the given values of f (x, y), f (x, y '), f (x', y), and f (x ', y') by calculation ,
Said means for multiplying is a multiplier (11) for multiplying said combined value by the absolute value of said given product P (x, u, y, v) ;
Said means for introducing, the given p (x, u) as a function of the code of the code and p (y, v) of, or subtracting the result of the multiplication from the previous results, or added thereto totalizer ( 13. The discrete cosine (DCT) data processing circuit according to claim 3, wherein
{f(x,y)+par(u)f(x′,y)+par(v)[(f(x,y′)+par(u)f(x′,y′)]}
を生成し、ここで
x′=N−1−xであり、
y′=N−1−yであり、
par(u)およびpar(v)は、uまたはvが偶数であるか奇数であるかに依存して+1または−1である、請求項4に記載の離散余弦(DCT)データ処理回路。 The combining means includes:
{F (x, y) + par (u) f (x ', y) + par (v) [(f (x, y') + par (u) f (x ', y')]}
Generates a where x '= N-1-x ,
y ′ = N−1−y,
5. The discrete cosine (DCT) data processing circuit according to claim 4 , wherein par (u) and par (v) are +1 or -1 depending on whether u or v is even or odd.
f(x,y)、f(x′,y)およびpar(u)を受けて、f(x,y)+par(u)f(x′,y)を与える第1の加算器/減算器(23)と、
f(x,y′)、f(x′,y′)およびpar(u)を受けて、f(x,y′)+par(u)f(x′,y′)を与える第2の加算器/減算器(24)と、
前記第1の加算器/減算器(23)により与えられたf(x,y)+par(u)f(x′,y)、前記第2の加算器/減算器(24)により与えられたf(x,y′)+par(u)f(x′,y′)、およびpar(v)を受けて、f(x,y)+par(u)f(x′,y)+par(v)[f(x,y′)+par(u)f(x′,y′)]を与える第3の加算器/減算器(25)とを含む、請求項5に記載の離散余弦(DCT)データ処理回路。 The combining means includes :
a first adder / subtractor receiving f (x, y), f (x ', y) and par (u) and giving f (x, y) + par (u) f (x', y) (23)
f (x, y '), f (x', y ') receives and par (u), f (x , y') + par (u) f (x ', y') a second summing giving Device / subtractor (24);
F (x, y) + par (u) f (x ', y) given by the first adder / subtractor (23), given by the second adder / subtractor (24) Given f (x, y ') + par (u) f (x', y ') and par (v), f (x, y) + par (u) f (x', y) + par (v) [f (x, y ') + par (u) f (x', y ')] and a third adder / subtracter giving (25), discrete cosine (DCT) data according to claim 5 Processing circuit.
Kは2の定数ベキであり、
x,yはデータ表のデータの座標を示し、
u,vは係数表の係数の座標を示し、
c(u),c(v)はu,v=0に対して1/√2であり、かつu,v≠0に対して1であり、前記回路は、
前記係数表を記憶する係数表メモリ(1)と、
積P(x、u、y、v)=cos[n(x,y)π/2N]×cos[n(y,v)π/2N]の絶対値の表を記憶する積メモリ(3)とを含み、ここでn(x,u)およびn(y,v)は1からN−1の範囲の整数であり、
cos[n(x,u)π/2N]の符号とn(x,u)の値を定めた表を記憶するメモリ(7)と、
cos[n(y,v)π/2N]の符号とn(y,v)の値を定めた表を記憶するメモリ(9)と、
データ表の第1の象限に対応する値の対(x,y)と、各対(x,y)に対して、対(u、v)のすべての値と、uおよびvが偶数であるか奇数であるかに依存して+1または−1に等しい信号par(u)およびpar(v)を順次与える座標発生器(5)と、
前記積メモリ(3)内の表によって与えられる積P(x、u、y、v)の絶対値と、前記係数表メモリ(1)内の係数表によって与えられるF(u、v)との積を計算する乗算器(11)と、
前記メモリ(7)内の表によって与えられるcos[n(x,u)π/2N]の符号、前記メモリ(9)内の表によって与えられるcos[n(y,v)π/2N]の符号、par(u)の値、およびpar(v)の値の関数で、前の結果から乗算の結果を減算して、または前の結果に乗算の結果を加算して、それぞれf(x,y)、f(x′,y)、f(x,y′)およびf(x′,y′)を与える4つのトータライザ(13)とを含み、ここで
x′=N−1−xであり、かつ
y′=N−1−yである、回路。The following relationship
x and y indicate the coordinates of the data in the data table,
u and v indicate the coordinates of the coefficients in the coefficient table,
c (u) and c (v) are 1 / √2 for u, v = 0 and 1 for u, v ≠ 0, the circuit comprises:
A coefficient table memory (1) for storing the coefficient table ;
Product memory (3) for storing a table of absolute values of the product P (x, u, y, v) = cos [n (x, y) π / 2N] × cos [n (y, v) π / 2N] Where n (x, u) and n (y, v) are integers ranging from 1 to N-1 ;
a memory (7) for storing a table defining the sign of cos [n (x, u) π / 2N] and the value of n (x, u);
a memory (9) for storing a table defining the sign of cos [n (y, v) π / 2N] and the value of n (y, v);
For each pair (x, y) of value pairs (x, y) corresponding to the first quadrant of the data table, all values of the pair (u, v) and u and v are even numbers A coordinate generator (5) for sequentially providing signals par (u) and par (v) equal to +1 or -1 depending on whether it is odd or odd ;
The absolute value of the product P (x, u, y, v) given by the table in the product memory (3) and F (u, v) given by the coefficient table in the coefficient table memory (1). A multiplier (11) for calculating the product;
The sign of cos [n (x, u) π / 2N] given by the table in the memory (7), the sign of cos [n (y, v) π / 2N] given by the table in the memory (9) As a function of the sign, the value of par (u), and the value of par (v), subtract the result of the multiplication from the previous result, or add the result of the multiplication to the previous result, respectively, f (x, y), f (x ', y), f (x, y') and four totalizers (13) which provide f (x ', y'), where x '= N-1-x Circuit where y ′ = N−1−y.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR9112277A FR2681962B1 (en) | 1991-09-30 | 1991-09-30 | METHOD AND CIRCUIT FOR PROCESSING DATA BY COSINUS TRANSFORM. |
FR91/12277 | 1991-09-30 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH05260313A JPH05260313A (en) | 1993-10-08 |
JP3577325B2 true JP3577325B2 (en) | 2004-10-13 |
Family
ID=9417627
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP25974092A Expired - Fee Related JP3577325B2 (en) | 1991-09-30 | 1992-09-29 | Data processing method by discrete cosine transform (DCT), DCT method, and DCT data processing circuit |
Country Status (5)
Country | Link |
---|---|
US (1) | US5995990A (en) |
EP (1) | EP0536062B1 (en) |
JP (1) | JP3577325B2 (en) |
DE (1) | DE69228036T2 (en) |
FR (1) | FR2681962B1 (en) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07152730A (en) * | 1993-11-30 | 1995-06-16 | Toshiba Corp | Discrete cosine transformation device |
US6295320B1 (en) * | 1997-12-31 | 2001-09-25 | Lg Electronics Inc. | Inverse discrete cosine transforming system for digital television receiver |
US6493737B1 (en) * | 1998-06-29 | 2002-12-10 | Stmicroelectronics S.R.L. | Method and circuit for computing the discrete cosine transform (DCT) in microcontrollers |
KR100275933B1 (en) * | 1998-07-14 | 2000-12-15 | 구자홍 | Idct in mpeg decoder |
JP4615727B2 (en) * | 1998-12-24 | 2011-01-19 | ブリストル−マイヤーズ スクイブ ファーマ カンパニー | Succinoylaminobenzodiazepine as an inhibitor of Aβ protein production |
US7454439B1 (en) * | 1999-11-24 | 2008-11-18 | At&T Corp. | System and method for large-scale data visualization |
US8374237B2 (en) | 2001-03-02 | 2013-02-12 | Dolby Laboratories Licensing Corporation | High precision encoding and decoding of video images |
US20040111457A1 (en) * | 2001-07-02 | 2004-06-10 | Scholz John Arthur | Method for executing a linear transformation |
JP4175124B2 (en) * | 2003-01-24 | 2008-11-05 | ソニー株式会社 | Image signal processing device |
US20050281332A1 (en) * | 2004-06-22 | 2005-12-22 | Wai-Ming Lai | Transform coefficient decoding |
US7564874B2 (en) | 2004-09-17 | 2009-07-21 | Uni-Pixel Displays, Inc. | Enhanced bandwidth data encoding method |
JP2009518659A (en) * | 2005-09-27 | 2009-05-07 | エルジー エレクトロニクス インコーポレイティド | Multi-channel audio signal encoding / decoding method and apparatus |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
NL8601183A (en) * | 1986-05-12 | 1987-12-01 | Philips Nv | DISCRETE COSINUS TRANSFORMATION DEVICE. |
FR2603719B1 (en) * | 1986-09-04 | 1991-10-31 | Duhamel Pierre | DEVICE FOR DETERMINING THE DIGITAL TRANSFORM OF A SIGNAL |
US4791598A (en) * | 1987-03-24 | 1988-12-13 | Bell Communications Research, Inc. | Two-dimensional discrete cosine transform processor |
US5053985A (en) * | 1989-10-19 | 1991-10-01 | Zoran Corporation | Recycling dct/idct integrated circuit apparatus using a single multiplier/accumulator and a single random access memory |
-
1991
- 1991-09-30 FR FR9112277A patent/FR2681962B1/en not_active Expired - Fee Related
-
1992
- 1992-09-28 EP EP92420332A patent/EP0536062B1/en not_active Expired - Lifetime
- 1992-09-28 DE DE69228036T patent/DE69228036T2/en not_active Expired - Fee Related
- 1992-09-29 US US07/954,542 patent/US5995990A/en not_active Expired - Lifetime
- 1992-09-29 JP JP25974092A patent/JP3577325B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
EP0536062A2 (en) | 1993-04-07 |
US5995990A (en) | 1999-11-30 |
DE69228036T2 (en) | 1999-07-01 |
DE69228036D1 (en) | 1999-02-11 |
JPH05260313A (en) | 1993-10-08 |
EP0536062B1 (en) | 1998-12-30 |
FR2681962A1 (en) | 1993-04-02 |
EP0536062A3 (en) | 1994-03-23 |
FR2681962B1 (en) | 1993-12-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0353223B1 (en) | Two-dimensional discrete cosine transform processor | |
JP2931389B2 (en) | Integrated circuit device for repeating DCT / IDCT operation using a single multiplier / accumulator and a single random access memory | |
JP2909333B2 (en) | Method and system for performing a multiplication-free discrete cosine transform | |
US5572236A (en) | Digital image processor for color image compression | |
JP3577325B2 (en) | Data processing method by discrete cosine transform (DCT), DCT method, and DCT data processing circuit | |
US6052703A (en) | Method and apparatus for determining discrete cosine transforms using matrix multiplication and modified booth encoding | |
JPS62269519A (en) | Discrete cosine converting circuit | |
JP2901213B2 (en) | Color space conversion method | |
US6643412B1 (en) | Method and apparatus for high speed convolution | |
US5748770A (en) | System and method for color recovery using discrete cosine transforms | |
US5434808A (en) | Highly parallel discrete cosine transform engine | |
US6453332B1 (en) | Method and apparatus for performing plural matrix multiplication operations | |
JPH0645948A (en) | Orthogonal converter and reverse orthogonal converter | |
JP3155383B2 (en) | Two-mode processing device, two-dimensional conversion device, and still image data compression system | |
JP2790911B2 (en) | Orthogonal transform operation unit | |
KR910008454B1 (en) | Transformation circuit | |
JP3576612B2 (en) | Color conversion processor | |
JPH08305684A (en) | Butterfly operation device and inverse discrete cosine transformer | |
KR960014197B1 (en) | Distributed arithmetic unit | |
JPH05153402A (en) | Discrete cosine transformation device | |
JPH07141325A (en) | Signal processor | |
JPH07319849A (en) | Fast discrete cosine computing element | |
JPH05153403A (en) | Discrete cosine transformation device | |
JPH04293360A (en) | Orthogonal transformation arithmetic device | |
JPH06274524A (en) | Orthogonal transformation circuit and inverse transformation circuit |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040113 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20040412 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20040415 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040604 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20040629 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040712 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |