JP2673034B2 - 画像符号化方式 - Google Patents
画像符号化方式Info
- Publication number
- JP2673034B2 JP2673034B2 JP18762590A JP18762590A JP2673034B2 JP 2673034 B2 JP2673034 B2 JP 2673034B2 JP 18762590 A JP18762590 A JP 18762590A JP 18762590 A JP18762590 A JP 18762590A JP 2673034 B2 JP2673034 B2 JP 2673034B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- image coding
- circuit
- input
- coding method
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Description
【発明の詳細な説明】 (産業上の利用分野) 発明は、テレビ電話等の動画像通信や蓄積用動画像等
の画像符号化装置における画像符号化方式に関するもの
である。
の画像符号化装置における画像符号化方式に関するもの
である。
(従来の技術) 従来、このような分野の技術としては、次のような文
献に記載されるものがあった。
献に記載されるものがあった。
文献1;テレビジョン学会誌、42[11](1988)大久保栄
著「テレビ会議/電話方式の国際標準化動向」P.1219−
1225 文献2;吹抜敬彦著「TV画像の多次元信号処理」(昭和63
−11−15)日刊工業新聞、P.252−256 文献3;信学技法誌、(1989)豊蔵・荒木・青野著「ICD8
9−54 画像帯域圧縮、ディジタルフィルタ用600MOPS画
像処理プロセッサ」P.89−94 文献;アイ・イ・イ トランスアクション オン コン
ピュータ(IEEE Transaction on Computers)、c−24
[10](1975−10)「A Proof of the Modified Boot
h′s Algorithm for Multiplication」P.1014−1015 文献5;安田晴彦監修「画像伝送における高能率符号化技
術」(昭62−3−31)(株)トリケプス、P.231−233 従来、テレビ会議やテレビ電話等における動画像の符
号化方式には、前記文献1に記載された、テレビ会議及
びテレビ電話方式に関する国際標準化の装置の勧告案が
あり、それを第2図及び第3図に示す。
著「テレビ会議/電話方式の国際標準化動向」P.1219−
1225 文献2;吹抜敬彦著「TV画像の多次元信号処理」(昭和63
−11−15)日刊工業新聞、P.252−256 文献3;信学技法誌、(1989)豊蔵・荒木・青野著「ICD8
9−54 画像帯域圧縮、ディジタルフィルタ用600MOPS画
像処理プロセッサ」P.89−94 文献;アイ・イ・イ トランスアクション オン コン
ピュータ(IEEE Transaction on Computers)、c−24
[10](1975−10)「A Proof of the Modified Boot
h′s Algorithm for Multiplication」P.1014−1015 文献5;安田晴彦監修「画像伝送における高能率符号化技
術」(昭62−3−31)(株)トリケプス、P.231−233 従来、テレビ会議やテレビ電話等における動画像の符
号化方式には、前記文献1に記載された、テレビ会議及
びテレビ電話方式に関する国際標準化の装置の勧告案が
あり、それを第2図及び第3図に示す。
第2図は、前記文献1に記載された従来のテレビ会議
用CODEC(コーディック)の機能ブロック図である。
用CODEC(コーディック)の機能ブロック図である。
このCODECは、符号化制御回路1を有し、それには前
処理回路2、ソース符号化回路3、ビデオマルチプレッ
クス符号化回路4、及び伝送バッファ5が接続され、そ
の伝送バッファ5に、伝送路符号化回路6が接続されて
いる。
処理回路2、ソース符号化回路3、ビデオマルチプレッ
クス符号化回路4、及び伝送バッファ5が接続され、そ
の伝送バッファ5に、伝送路符号化回路6が接続されて
いる。
前処理回路2では、時間・空間フィルタにより、入力
ビデオ信号を中間フォーマットに変換し、併せて雑音除
去フィルタリングを行う。ソース符号化回路3は、入力
信号に含まれる冗長度を除き、残りの信号を一定の誤差
の範囲内で量子化する。ビデオマルチプレックス符号化
回路4では、映像信号のほか、各種ブロック属性信号を
可変長符号化した後、定められたデータ構造の符号列に
多重化する。伝送路符号化回路6では、伝送チャネルの
フォーマットに従い、マルチメディア信号(映像、音
声、データ、制御)をビット列に多重化する。
ビデオ信号を中間フォーマットに変換し、併せて雑音除
去フィルタリングを行う。ソース符号化回路3は、入力
信号に含まれる冗長度を除き、残りの信号を一定の誤差
の範囲内で量子化する。ビデオマルチプレックス符号化
回路4では、映像信号のほか、各種ブロック属性信号を
可変長符号化した後、定められたデータ構造の符号列に
多重化する。伝送路符号化回路6では、伝送チャネルの
フォーマットに従い、マルチメディア信号(映像、音
声、データ、制御)をビット列に多重化する。
第3図は、第2図中のソース符号化回路3の構成ブロ
ック図である。
ック図である。
この回路は、減算器10、フレーム内/間識別回路11、
有効/無効判定回路12、8×8の離散余弦変換(以下、
DCTという)回路13、量子化回路14、クラス分け回路1
5、逆量子化回路(Q-1)16、遅延回路(T-1)17、加算
回路18、動き補償予測回路19、及びループフィルタ20等
で構成されている。なお、pはフレーム内/間フラグ、
tは有/無効フラッグ、qはDCT係数の量子化インデッ
クス、qzは量子化回路種別、vは動きベクトル、clはク
ラス、fはループフィルタ・オン/オフの信号である。
有効/無効判定回路12、8×8の離散余弦変換(以下、
DCTという)回路13、量子化回路14、クラス分け回路1
5、逆量子化回路(Q-1)16、遅延回路(T-1)17、加算
回路18、動き補償予測回路19、及びループフィルタ20等
で構成されている。なお、pはフレーム内/間フラグ、
tは有/無効フラッグ、qはDCT係数の量子化インデッ
クス、qzは量子化回路種別、vは動きベクトル、clはク
ラス、fはループフィルタ・オン/オフの信号である。
このソース符号化回路の符号化アルゴリズムは、テス
ト画像を定めて、その計算機シミュレーション結果を比
較評価することにより、先ず、動き補償予測回路19によ
って画素空間で動き補償フレーム間予測を行う。次に、
その予測誤差をDCT回路13によって8×8のブロックサ
イズで直交変換した後、量子化回路14を用いて、係数空
間で量子化するハイブリッド方式で構成されている。こ
の方式は、動き補償フレーム間予測により、時間的変化
に関する冗長度を、直交変換符号化によって、フレーム
内の空間的変化に関わる冗長度を除く方式である。
ト画像を定めて、その計算機シミュレーション結果を比
較評価することにより、先ず、動き補償予測回路19によ
って画素空間で動き補償フレーム間予測を行う。次に、
その予測誤差をDCT回路13によって8×8のブロックサ
イズで直交変換した後、量子化回路14を用いて、係数空
間で量子化するハイブリッド方式で構成されている。こ
の方式は、動き補償フレーム間予測により、時間的変化
に関する冗長度を、直交変換符号化によって、フレーム
内の空間的変化に関わる冗長度を除く方式である。
予測は通常、フレーム間であるが、シーンチェンジの
ときなど、映像入力がそのままDCT回路13に加えられ
る。ループフィルタ20は、画質改善効果が大きく、ブロ
ック毎にオン/オフできる。これらフレーム内/間識別
回路11、及びループフィルタ20のオン/オフのブロック
属性情報は、サイド情報として送られるので、選択の基
準は設計者の自由に任せられる。
ときなど、映像入力がそのままDCT回路13に加えられ
る。ループフィルタ20は、画質改善効果が大きく、ブロ
ック毎にオン/オフできる。これらフレーム内/間識別
回路11、及びループフィルタ20のオン/オフのブロック
属性情報は、サイド情報として送られるので、選択の基
準は設計者の自由に任せられる。
変換器はプログラマブルで、DCT回路13で行ってい
る。このDCT回路13は、ハイブリッド符号化に適してい
る。つまりフレーム間予測誤差信号に対しても適してい
る。一方、DCTには積和演算が必要なことから、送受のI
DCTにおける演算方法ミスマッチによる累積誤差が問題
となる。量子化回路14もプログラマブルである。クラス
分け回路15は、変換係数の伝送順序を指定することによ
り、有意係数のブロック内分布の偏りを利用するための
ものである。
る。このDCT回路13は、ハイブリッド符号化に適してい
る。つまりフレーム間予測誤差信号に対しても適してい
る。一方、DCTには積和演算が必要なことから、送受のI
DCTにおける演算方法ミスマッチによる累積誤差が問題
となる。量子化回路14もプログラマブルである。クラス
分け回路15は、変換係数の伝送順序を指定することによ
り、有意係数のブロック内分布の偏りを利用するための
ものである。
DCT方式、及び動き補償フレーム間予測(以下、MCと
いう)の手法と実現手段については、前記文献2〜4に
記載されている。
いう)の手法と実現手段については、前記文献2〜4に
記載されている。
DCT方式 画像信号の自己相関関数は負指数関数で近似できる。
DCTは、この近似を行った場合の最適直行変換(karhune
n−Leve変換,KL変換)に近い。従来、ハードウェア
が簡単なことから重要視されていたアダマール変換に代
って、効率を重視する立場から最も一般的な直交変換と
なり、種々の用途に採用されている。
DCTは、この近似を行った場合の最適直行変換(karhune
n−Leve変換,KL変換)に近い。従来、ハードウェア
が簡単なことから重要視されていたアダマール変換に代
って、効率を重視する立場から最も一般的な直交変換と
なり、種々の用途に採用されている。
(a)DCTの定義 標本値系列x0,x1,…,xM-1を1ブロックとして、変換
行列[dk,m]により、変換係数y0,y1,…,yM-1に直交変
換するものである。
行列[dk,m]により、変換係数y0,y1,…,yM-1に直交変
換するものである。
(b)逆DCT(以下、IDCTという) DCTの変換係数[y0,y1,…,yM-1]が与えられて、これ
からもとの信号[x0,x1,…,xM-1]を求める変換であ
り、次式のようになっている。
からもとの信号[x0,x1,…,xM-1]を求める変換であ
り、次式のようになっている。
但し、 d0,m,dk,m;(1)式のDCTの場合と同様 (c)DCTの物理的意味 DCTの用語の由来と物理的意味を考える。標本値系列g
0,g1,…,gM-1を、t=0を対称軸に反転する。この両者
を合わせた2M個の標本値からなる系列を離散的フーリエ
変換(以下、DFTという)する。標本点がT/2だけずれて
いること、すなわち、例えばg0がt=T/2の標本値であ
ることと、t=0に対して対称である(偶関数である)
ことを考慮すれば、sinの項はなくなり、次式のように
なる。
0,g1,…,gM-1を、t=0を対称軸に反転する。この両者
を合わせた2M個の標本値からなる系列を離散的フーリエ
変換(以下、DFTという)する。標本点がT/2だけずれて
いること、すなわち、例えばg0がt=T/2の標本値であ
ることと、t=0に対して対称である(偶関数である)
ことを考慮すれば、sinの項はなくなり、次式のように
なる。
DFTでは、本来のM個の標本値からなる系列に対して
は、M個の複素変換係数(あるいはsin,cos合わせてM
個の項)が得られる。一方、DCTでは、2M個の標本値か
らなる仮想的系列に対し、2M個の項が得られるが、sin
が消えてM個のcosの項のみが残る。
は、M個の複素変換係数(あるいはsin,cos合わせてM
個の項)が得られる。一方、DCTでは、2M個の標本値か
らなる仮想的系列に対し、2M個の項が得られるが、sin
が消えてM個のcosの項のみが残る。
(d)2次元DCT アダマール変換と同様、DCTも2次元に拡張できる。
垂直N画素×水平M画素のブロック[xn,m]を1ブロ
ックとして、これに、まず走査線毎に水平方向のDCT
(即ち、[dM][xn,m]T)を行う。次に、この結果
について垂直方向のDCT [yn,m]=[dN][[dM][xn,m]T]T =[dN][xn,m][dM]T ……(4) を演算する。即ち、 を求める。変換の順序は、水平、垂直いずれが先でもよ
い。この2次元DCTの方が一般的であり、8×8(ある
いは16×16)画素程度を1ブロックとすることが多い。
垂直N画素×水平M画素のブロック[xn,m]を1ブロ
ックとして、これに、まず走査線毎に水平方向のDCT
(即ち、[dM][xn,m]T)を行う。次に、この結果
について垂直方向のDCT [yn,m]=[dN][[dM][xn,m]T]T =[dN][xn,m][dM]T ……(4) を演算する。即ち、 を求める。変換の順序は、水平、垂直いずれが先でもよ
い。この2次元DCTの方が一般的であり、8×8(ある
いは16×16)画素程度を1ブロックとすることが多い。
1次元DCTの回路構成例 第4図は、前記文献3に記載された1次元DCTを実現
する回路構成例を示すもので、画像処理プロセッサのDC
Tモード時に実行される行列演算のデータフローであ
る。
する回路構成例を示すもので、画像処理プロセッサのDC
Tモード時に実行される行列演算のデータフローであ
る。
この画像処理プロセッサは、入力端子30を有し、その
入力端子30にはレジスタ31を介して複数の演算ユニット
40−1〜40−8が接続されている。各演算ユニット40−
1〜40−8は、同一の回路構成をなし、乗算器41、レジ
スタ42、加算器43、及びレジスタ44,45の縦続接続で、
それぞれ構成されている。この演算ユニット40−1〜40
−8の出力側は、共通バス32及びレジスタ33を介して出
力端子34に接続されている。
入力端子30にはレジスタ31を介して複数の演算ユニット
40−1〜40−8が接続されている。各演算ユニット40−
1〜40−8は、同一の回路構成をなし、乗算器41、レジ
スタ42、加算器43、及びレジスタ44,45の縦続接続で、
それぞれ構成されている。この演算ユニット40−1〜40
−8の出力側は、共通バス32及びレジスタ33を介して出
力端子34に接続されている。
この画像処理プロセッサは、(1)式のM=8の時の
DCTを実行する機能を有し、その(1)式のM=8の時
の変換行列dk,mを次式に示す。
DCTを実行する機能を有し、その(1)式のM=8の時
の変換行列dk,mを次式に示す。
但し、行列 各演算ユニット40−1〜40−8は、(6)式の一行分
の演算を行う機能を有している。例えば、演算ユニット
40−1は、y1を求める場合、(6)式から、次のような
演算を行う。
の演算を行う機能を有している。例えば、演算ユニット
40−1は、y1を求める場合、(6)式から、次のような
演算を行う。
即ち、時系列のデータx0,x1,…,x7が入力端子30から
逐次入力され、レジスタ31を介して各演算ユニット40−
1〜40−8へ送られる。演算ユニット40−1に入力され
た時系列のデータは、乗算器により、x0と1/2・cosπ/1
6の乗算が行われ、その乗算結果が一時的にレジスタ42
に格納される。レジスタ42内の乗算結果は、加算器43に
より、クリアされたデータとの加算が行われ、その加算
結果がレジスタ44に格納される。次のタイミングで、入
力端子30からの次のデータx1の値と1/2・cos3π/16との
乗算結果が格納されているレジスタ42から、その乗算結
果を出力し、レジスタ44に格納されている値との間で、
加算器43によって加算が実行され、その加算結果が再び
レジスタ44に格納される。このような累積加算が8回実
行されてY1の値が算出され、その値Y1がレジスタ45に格
納されて一行分の演算が終わる。この演算結果は、所定
のタイミングで共通バス32を介して最終段のレジスタ33
に格納された後、出力端子34から出力される。
逐次入力され、レジスタ31を介して各演算ユニット40−
1〜40−8へ送られる。演算ユニット40−1に入力され
た時系列のデータは、乗算器により、x0と1/2・cosπ/1
6の乗算が行われ、その乗算結果が一時的にレジスタ42
に格納される。レジスタ42内の乗算結果は、加算器43に
より、クリアされたデータとの加算が行われ、その加算
結果がレジスタ44に格納される。次のタイミングで、入
力端子30からの次のデータx1の値と1/2・cos3π/16との
乗算結果が格納されているレジスタ42から、その乗算結
果を出力し、レジスタ44に格納されている値との間で、
加算器43によって加算が実行され、その加算結果が再び
レジスタ44に格納される。このような累積加算が8回実
行されてY1の値が算出され、その値Y1がレジスタ45に格
納されて一行分の演算が終わる。この演算結果は、所定
のタイミングで共通バス32を介して最終段のレジスタ33
に格納された後、出力端子34から出力される。
他の演算ユニット40−2〜40−8も、乗算を行う係数
を(6)式で示した値を使用することにより、前記と同
様の演算処理を行う。
を(6)式で示した値を使用することにより、前記と同
様の演算処理を行う。
この画像処理プロセッサは、マトリクス演算を行える
ことから、乗算を行う係数を変更することにより、IDC
T、及び第3図のフィルタの演算も実行できる。
ことから、乗算を行う係数を変更することにより、IDC
T、及び第3図のフィルタの演算も実行できる。
2次元DCTの回路構成例 第5図は、第4図の回路構成を用いて2次元DCTを実
現する構成例を示すブロック図である。
現する構成例を示すブロック図である。
この2次元DCT回路は、2個の1次元DCT回路46−1,46
−2とバッファメモリ47とで構成されている。入力デー
タは、x方向の1次元DCT回路46−1で処理された後、
バッファメモリ47内に、横方向(x方向)に格納され
る。バッファメモリ47からデータを読み出す時は、縦方
向(y方向)に読み出し、次のy方向の1次元DCT回路4
6−2により、もう1度、1次元DCTを実行することによ
り、2次元DCTが実行されることになる。
−2とバッファメモリ47とで構成されている。入力デー
タは、x方向の1次元DCT回路46−1で処理された後、
バッファメモリ47内に、横方向(x方向)に格納され
る。バッファメモリ47からデータを読み出す時は、縦方
向(y方向)に読み出し、次のy方向の1次元DCT回路4
6−2により、もう1度、1次元DCTを実行することによ
り、2次元DCTが実行されることになる。
1次元DCT回路46−1,46−2は、例えば数個の乗算器
で構成されている。このマトリクス演算に必要な乗算
を、少ないハード量で構成する手法として、前記文献4
に記載されたブース(Booth)のアルゴリズムを用いた
方法がある。次に、その方法を説明する。
で構成されている。このマトリクス演算に必要な乗算
を、少ないハード量で構成する手法として、前記文献4
に記載されたブース(Booth)のアルゴリズムを用いた
方法がある。次に、その方法を説明する。
例えば、Y=D×Xの演算を行う時、係数Dを14ビッ
トの2の補数表現の値とし2次のBoothを用いて係数ビ
ットを分解すると次の式になる。
トの2の補数表現の値とし2次のBoothを用いて係数ビ
ットを分解すると次の式になる。
Y=(−D(13)・21+D(12) ・20+D(11)・20)212・X +(−D(11)・21+D(10) ・20+D(9)・20)210・X +(−D(9)・21+D(8) ・20+D(7)・20)28・X +(−D(7)・21+D(6) ・20+D(5)・20)26・X +(−D(5)・21+D(4) ・20+D(3)・20)24・X +(−D(3)・21+D(2) ・20+D(1)・20)22・X +(−D(1)・21+D(0) ・20)20・X ……(7) 但し、右上のかっこ内の数字は係数Dの次数を示し、
D()はその次数のビット情報を示す。
D()はその次数のビット情報を示す。
この手法を用いて、次式(8)に示すマトリクス演算
の一行分計算を、次のようにして計算する。
の一行分計算を、次のようにして計算する。
Y=D0X0+D1X1+D2X2+……+D7X7 ……(8) Y=Σ((−Di (13)・21+Di (12) ・20+Di (11)・20)212・Xi) +Σ((−Di (11)・21+Di (10) ・20+Di (9)・20)210・Xi) +Σ((−Di (9)・21+Di (8) ・20+Di (7)・20)28・Xi) +Σ((−Di (7)・21+Di (6) ・20+Di (5)・20)26・Xi) +Σ((−Di (5)・21+Di (4) ・20+Di (3)・20)24・Xi) +Σ((−Di (3)・21+Di (2) ・20+Di (1)・20)22・Xi) +Σ((−Di (1)・21+Di (0) ・20)20・Xi) ……(8−1) 以上の計算式を実現する回路構成を第6図及び第7図
に示す。
に示す。
第6図は2次Boothを用いた1行分のマトリクス演算
回路の構成ブロック図、第7図は第6図中のプロセッサ
エレメント(以下、Peという)の構成ブロック図であ
る。
回路の構成ブロック図、第7図は第6図中のプロセッサ
エレメント(以下、Peという)の構成ブロック図であ
る。
第6図のマトリクス演算回路は、入力端子50a及び出
力端子50bを有し、その間に、レジスタ51−1〜51−
6、Pe52−1〜52−7、及び累積加算器53が接続されて
いる。第7図のPeは、入力端子54a及び出力端子54bを有
し、その間に、バレルシフタ55、符号反転器56、加算器
57、レジスタ58,59、及びバスコントローラ60が接続さ
れている。さらに、バレルシフタ55及び符号反転器56に
は、リード・オンリ・メモリ(以下、ROMという)61が
接続されている。
力端子50bを有し、その間に、レジスタ51−1〜51−
6、Pe52−1〜52−7、及び累積加算器53が接続されて
いる。第7図のPeは、入力端子54a及び出力端子54bを有
し、その間に、バレルシフタ55、符号反転器56、加算器
57、レジスタ58,59、及びバスコントローラ60が接続さ
れている。さらに、バレルシフタ55及び符号反転器56に
は、リード・オンリ・メモリ(以下、ROMという)61が
接続されている。
第6図の各Pe52−1〜52−7は、それぞれ次式の Σ((−Di (n+1)・21+Di (n)・20 +Di (n-1)・20)2n・Xi) ……(8−2) 但し、n=12,10,8,6,4,2,0 の計算を行い、その出力結果は各Pe52−1〜52−7の共
通のバスを通じて後段の累積加算器53によって累積加算
され、出力値Yを求める。
通のバスを通じて後段の累積加算器53によって累積加算
され、出力値Yを求める。
次に、第7図を用いて各Pe52−1〜52−7でどの様に
して(8−2)式の計算を行うかを説明する。(8−
2)式のDi ()は係数Diの1ビットデータなので、かっこ
内の計算の取りうる値は−2、−1、0、1、2で、ま
たこの値は係数値なのであらかじめ演算しておける。こ
の値−2、−1、0、1、2と入力端子54aから入力さ
れたXiとの乗算がバレルシフタ55と符号反転器56によっ
て行われ、その後段の加算器57とレジスタ58によって構
成される累積加算器によって累積加算が演算され、その
累積加算結果がレジスタ59に格納される。つまり、この
例のように8次元のマトリクス演算の場合、8個の制御
データがROM61に格納され、かっこ内の計算結果の取り
うる値−2、−1、0、1、2に応じてバレルシフタ55
と符号反転器56を制御する。バレルシフタ55では、入力
データXiを1ビットシフトするか、そのまま出力する
か、もしくはゼロを出力するかが制御される。符号反転
器56では、符号を反転するかしないかが制御されること
によって(−Di (n+1)・21+Di (n)・20+Di (n-1)・20)
・Xiの演算が行われ、後段の累積加算器によってΣが演
算される。以上、レジスタ59に格納された演算結果は、
バスコントローラ60によって、バスに出力するタイミン
グが制御され、出力端子54bを通じてバスに出力され
る。
して(8−2)式の計算を行うかを説明する。(8−
2)式のDi ()は係数Diの1ビットデータなので、かっこ
内の計算の取りうる値は−2、−1、0、1、2で、ま
たこの値は係数値なのであらかじめ演算しておける。こ
の値−2、−1、0、1、2と入力端子54aから入力さ
れたXiとの乗算がバレルシフタ55と符号反転器56によっ
て行われ、その後段の加算器57とレジスタ58によって構
成される累積加算器によって累積加算が演算され、その
累積加算結果がレジスタ59に格納される。つまり、この
例のように8次元のマトリクス演算の場合、8個の制御
データがROM61に格納され、かっこ内の計算結果の取り
うる値−2、−1、0、1、2に応じてバレルシフタ55
と符号反転器56を制御する。バレルシフタ55では、入力
データXiを1ビットシフトするか、そのまま出力する
か、もしくはゼロを出力するかが制御される。符号反転
器56では、符号を反転するかしないかが制御されること
によって(−Di (n+1)・21+Di (n)・20+Di (n-1)・20)
・Xiの演算が行われ、後段の累積加算器によってΣが演
算される。以上、レジスタ59に格納された演算結果は、
バスコントローラ60によって、バスに出力するタイミン
グが制御され、出力端子54bを通じてバスに出力され
る。
第6図に示したように、Pe52−1〜52−7は7個存在
し、各Pe52−1〜52−7の演算結果が順にバスに出力さ
れ、累積加算器53に入力されて累積加算される。この累
積加算結果が、1次元のDCT変換された値に相当する。
このようにして2次のBoothのアルゴリズムを用いて1
次元のDCT変換を行うことができる。
し、各Pe52−1〜52−7の演算結果が順にバスに出力さ
れ、累積加算器53に入力されて累積加算される。この累
積加算結果が、1次元のDCT変換された値に相当する。
このようにして2次のBoothのアルゴリズムを用いて1
次元のDCT変換を行うことができる。
MCによる符号化方式 この方式は、前記文献5に記載されているように、符
号化対象フレーム(現フレーム)を小さな矩形ブロック
に分割し、各ブロックに対して前フレーム中から最も近
似度の高い部分を検出し、これを予測符号として用いる
ものである。この動きベクトルの検出説明図を第8図
(a)〜(c)に示す。
号化対象フレーム(現フレーム)を小さな矩形ブロック
に分割し、各ブロックに対して前フレーム中から最も近
似度の高い部分を検出し、これを予測符号として用いる
ものである。この動きベクトルの検出説明図を第8図
(a)〜(c)に示す。
第8図(a)は、現フレームFtと前フレームFt-1の対
応を示す図である。A(m,n)は現フレームFtの分割さ
れた1ブロック、B(m,n)は前フレームFt-1のA
(m,n)に対応する検索対象ブロックである。A
(m,n+1)はA(m,n)の隣接ブロック、B
(m,n+1)はA(m,n+1)に対応する検索対象ブロッ
ク、 はブロックA(m,n),A(m,n+1)と同じ位置で同じ大
きさのブロックである。
応を示す図である。A(m,n)は現フレームFtの分割さ
れた1ブロック、B(m,n)は前フレームFt-1のA
(m,n)に対応する検索対象ブロックである。A
(m,n+1)はA(m,n)の隣接ブロック、B
(m,n+1)はA(m,n+1)に対応する検索対象ブロッ
ク、 はブロックA(m,n),A(m,n+1)と同じ位置で同じ大
きさのブロックである。
第8図(b)は、ブロックA(m,n)に対応する検索
範囲、即ちB(m,n)の大きさを示す図である。
範囲、即ちB(m,n)の大きさを示す図である。
はブロックA(m,n)とB(m,n)内のどの部分と比較さ
れるかを示すブロックである。但し、p,qは の位置を中心にそのブロック位置で垂直方向にp、及び
水平方向にq画素分だけ移動させたことを示す。
れるかを示すブロックである。但し、p,qは の位置を中心にそのブロック位置で垂直方向にp、及び
水平方向にq画素分だけ移動させたことを示す。
は、B(m,n)内であるから、 −r1≦p≦r2,−c1≦q≦c2 となる。ここで、ブロックA(m,n)内の各画素の値
は、そのブロックの大きさをIM×JNとすると、 で表わし、比較されるブロック 内の各画素の値を で示す。
は、そのブロックの大きさをIM×JNとすると、 で表わし、比較されるブロック 内の各画素の値を で示す。
B(m,n)内でA(m,n)と最も近似度の高い部分を検
出するのに、p,qを変化させ、A(m,n)と の差分絶対値を求め、その値が最も小さいものを近似度
の高いものとする。即ち、各p,qに対し、 の計算を行い、この計算結果が最小となるp,qを求め
る。このp,qを動きベクトル、 を予測信号として、符号化対象フレームとなる現フレー
ムFtのブロックA(m,n)との誤差を符号化した方が符
号化の効率を向上できる。
出するのに、p,qを変化させ、A(m,n)と の差分絶対値を求め、その値が最も小さいものを近似度
の高いものとする。即ち、各p,qに対し、 の計算を行い、この計算結果が最小となるp,qを求め
る。このp,qを動きベクトル、 を予測信号として、符号化対象フレームとなる現フレー
ムFtのブロックA(m,n)との誤差を符号化した方が符
号化の効率を向上できる。
このようなMCによる符号化方式に必要な移動ベクトル
検出を、ハードウェアで実現しようとすると、次のよう
になる。
検出を、ハードウェアで実現しようとすると、次のよう
になる。
前フレームFt-1と現フレームFtのデータは、それぞれ
フレームメモリに格納され、その間でp,qを少しずつず
らしながら、(9)式に示す計算が行われる。この計算
式では、p,qが近い場合、第8図(c)に示すように、 のかなりの部分が共通な画素となる。しかし、画素単位
ではそれぞれずれた画素の計算になる。更に、第8図
(a)に示すように、検索対象のブロックB(m,n),B
(m,n+1)も共通画素を含むが、それぞれ別のブロッ
クA(m,n),A(m,n+1)との計算となるため、画素デ
ータの読み出しが複数回になり、その制御が複雑とな
る。
フレームメモリに格納され、その間でp,qを少しずつず
らしながら、(9)式に示す計算が行われる。この計算
式では、p,qが近い場合、第8図(c)に示すように、 のかなりの部分が共通な画素となる。しかし、画素単位
ではそれぞれずれた画素の計算になる。更に、第8図
(a)に示すように、検索対象のブロックB(m,n),B
(m,n+1)も共通画素を含むが、それぞれ別のブロッ
クA(m,n),A(m,n+1)との計算となるため、画素デ
ータの読み出しが複数回になり、その制御が複雑とな
る。
そのため、このような動き検出処理機能を有する装置
においては、一般に、ソフトウェアで制御が可能なマイ
クロプロセッサ等を用いて計算を行う。ところが、この
場合、扱う計算量が非常に多いため、処理に時間がかか
るという問題を有している。即ち、現フレームFt-1のブ
ロック との計算では、それぞれのブロックの大きさがIM+JNで
あるとすると、im×jn回の絶対値差分の累積加算が行わ
れる。これが各々の動きベクトル(つまり、p,qの取り
得る数)、(r1+r2+1)×(c1+c2+1)回だけ繰り
返される。これだけの計算を行って、ブロックA
(m,n)に対する動きベクトルが求まる。従って、現フ
レームFtのある1個のブロックA(m,n)に対してIM×J
N×(r1+r2+1)×(c1+c2+1)回の絶対値差分の
累積加算が行われる。これが現フレームFtの各ブロック
について行われるため、膨大な計算量となる。
においては、一般に、ソフトウェアで制御が可能なマイ
クロプロセッサ等を用いて計算を行う。ところが、この
場合、扱う計算量が非常に多いため、処理に時間がかか
るという問題を有している。即ち、現フレームFt-1のブ
ロック との計算では、それぞれのブロックの大きさがIM+JNで
あるとすると、im×jn回の絶対値差分の累積加算が行わ
れる。これが各々の動きベクトル(つまり、p,qの取り
得る数)、(r1+r2+1)×(c1+c2+1)回だけ繰り
返される。これだけの計算を行って、ブロックA
(m,n)に対する動きベクトルが求まる。従って、現フ
レームFtのある1個のブロックA(m,n)に対してIM×J
N×(r1+r2+1)×(c1+c2+1)回の絶対値差分の
累積加算が行われる。これが現フレームFtの各ブロック
について行われるため、膨大な計算量となる。
一般に、マイクロプロセッサは、各計算をシリアルに
行っていくので、処理にかなりの時間がかかる。そのた
め、1フレームの画素数及び動きベクトル数をかなり制
御しなければならず、あまり実用的ではなかった。
行っていくので、処理にかなりの時間がかかる。そのた
め、1フレームの画素数及び動きベクトル数をかなり制
御しなければならず、あまり実用的ではなかった。
以上のようなMCに必要な移動ベクトル検出回路やDCT
回路等を用いて映像の画像符号化装置を構成すると、第
9図のようになる。
回路等を用いて映像の画像符号化装置を構成すると、第
9図のようになる。
従来の画像符号化装置 第9図に示す画像符号化装置は、符号化されるデータ
を格納する現フレームメモリ70、1フレーム前の符号化
し復号したデータを格納する前フレームメモリ71、移動
ベクトル検出回路(MV)72、フィルタ73、フィルタ73と
符号化の処理単位である基本ブロックの読み出し方向を
揃える転置回路74、及び各専用プロセッサの同期をとる
ためのバッファの役目をするファーストイン・ファース
トアウトメモリ(以下、FIFOという)75,76,77,86を備
えている。さらに、FIFO76,77の両出力データ(フィル
タリング後のデータまたはフィルタリング前のデータ)
のいずれか一方を選択するセレクタ78、減算器79、DCT
回路80、シグザグスキャン用の一時格納メモリ81,84、
量子化回路82、逆量子化回路83、IDCT回路85、及び加算
器87が設けられている。
を格納する現フレームメモリ70、1フレーム前の符号化
し復号したデータを格納する前フレームメモリ71、移動
ベクトル検出回路(MV)72、フィルタ73、フィルタ73と
符号化の処理単位である基本ブロックの読み出し方向を
揃える転置回路74、及び各専用プロセッサの同期をとる
ためのバッファの役目をするファーストイン・ファース
トアウトメモリ(以下、FIFOという)75,76,77,86を備
えている。さらに、FIFO76,77の両出力データ(フィル
タリング後のデータまたはフィルタリング前のデータ)
のいずれか一方を選択するセレクタ78、減算器79、DCT
回路80、シグザグスキャン用の一時格納メモリ81,84、
量子化回路82、逆量子化回路83、IDCT回路85、及び加算
器87が設けられている。
次に、動作を説明する。
先ず、現フレームメモリ70から、符号化するための基
本ブロックデータが読み出され、移動ベクトル検出回路
72及びFIFO75へ出力される。この時、前フレームメモリ
71からは、動き補償を行うために前記基本ブロックデー
タに対応した探索データが読み出され、移動ベクトル検
出回路72へ出力される。
本ブロックデータが読み出され、移動ベクトル検出回路
72及びFIFO75へ出力される。この時、前フレームメモリ
71からは、動き補償を行うために前記基本ブロックデー
タに対応した探索データが読み出され、移動ベクトル検
出回路72へ出力される。
移動ベクトル検出回路72では、移動ベクトルを基に、
動き補償を行い、その部分のデータが、予め読み出す方
向を縦横逆にして前フレームメモリ71から読み出され、
フィルタ73及び転置回路74に入力される。フィルタ73及
び転置回路74の出力は、FIFO76,77に格納される。その
後、セレクタ78により、FIFO76,77の両出力、つまりフ
ィルタリング後のデータまたはフィルタリング前のデー
タの、いずれか一方が選択される。
動き補償を行い、その部分のデータが、予め読み出す方
向を縦横逆にして前フレームメモリ71から読み出され、
フィルタ73及び転置回路74に入力される。フィルタ73及
び転置回路74の出力は、FIFO76,77に格納される。その
後、セレクタ78により、FIFO76,77の両出力、つまりフ
ィルタリング後のデータまたはフィルタリング前のデー
タの、いずれか一方が選択される。
選択されたデータは、FIFO86に格納されると共に、減
算器79に送られる。減算器79は、FIFO75からの基本ブロ
ックデータから、セレクタ78の出力を減算する。この減
算結果は、DCT回路80により変換され、メモリ81に一時
的に格納される。メモリ81からジグザグスキャンで読み
出されたデータは、量子化回路82によって量子化され、
符号データとして出力される。また、次のフレームを符
号化するための原画面の復号データを作成する動作とし
ては、前記符号データを逆量子化回路83で逆量子化し、
それがメモリ84にジグザグスキャンで書き込まれて一時
的に格納される。
算器79に送られる。減算器79は、FIFO75からの基本ブロ
ックデータから、セレクタ78の出力を減算する。この減
算結果は、DCT回路80により変換され、メモリ81に一時
的に格納される。メモリ81からジグザグスキャンで読み
出されたデータは、量子化回路82によって量子化され、
符号データとして出力される。また、次のフレームを符
号化するための原画面の復号データを作成する動作とし
ては、前記符号データを逆量子化回路83で逆量子化し、
それがメモリ84にジグザグスキャンで書き込まれて一時
的に格納される。
メモリ84のデータは、IDCT回路85で変換され、FIFO86
の出力と共に加算器87に入力される。そして、加算器87
で加算されて復号データとなり、この復号データが前フ
レームメモリ71に格納れる。以後、次のフレームデータ
が現フレームメモリ70に入力し、前記と同様の動作を繰
り返し、動画像の符号化が行われる。
の出力と共に加算器87に入力される。そして、加算器87
で加算されて復号データとなり、この復号データが前フ
レームメモリ71に格納れる。以後、次のフレームデータ
が現フレームメモリ70に入力し、前記と同様の動作を繰
り返し、動画像の符号化が行われる。
(発明が解決しようとする課題) しかしながら、第9図の画像符号化方式では、DCT
と、動き補償のための動きベクトル検出を行うために、
移動ベクトル検出回路72やDCT回路80等といった別々の
専用のプロセッサ、又は異なるハードウェアが必要とな
る。そして、これらを接続する場合、処理効率を向上さ
せるためにパイプライン方式を採用するが、それによっ
て回路構成が複雑になり、ハード量(回路規模)が多
く、コスト高になるという問題があり、それを解決する
ことが困難であった。
と、動き補償のための動きベクトル検出を行うために、
移動ベクトル検出回路72やDCT回路80等といった別々の
専用のプロセッサ、又は異なるハードウェアが必要とな
る。そして、これらを接続する場合、処理効率を向上さ
せるためにパイプライン方式を採用するが、それによっ
て回路構成が複雑になり、ハード量(回路規模)が多
く、コスト高になるという問題があり、それを解決する
ことが困難であった。
本発明は、前記従来技術が持っていた課題として、回
路構成の複雑化と、それによるハード量の増大及びコス
ト高の点について解決した画像符号化装置の画像符号化
方式を提供するものである。
路構成の複雑化と、それによるハード量の増大及びコス
ト高の点について解決した画像符号化装置の画像符号化
方式を提供するものである。
(課題を解決するための手段) 前記課題を解決するために、第1の発明は、1フレー
ム内を複数のブロックに分割し、その現ブロックと他の
フレームとの比較によって動画像の符号化を行う装置内
の動きベクトル検出とマトリクス変換を行う画像符号化
方式において、制御信号により、評価関数値あるいは少
なくとも数ビットの乗算を行ってその乗算結果を累積加
する複数の第1の演算回路と、入力データを遅延させて
前記第1の演算回路へ与える複数の遅延回路と、前記各
第1の演算回路の演算結果を累積加算する第2の演算回
路とを、有するプロセッサユニットを複数段設けてい
る。そして、マトリクス演算時には、前記第1の演算回
路を用いて乗算結果を累積加算し、その累積加算結果を
前記第2の演算回路によって桁合わせを行いながら累積
加算を行い、前記各プロセッサユニットにおいて演算結
果となるマトリクスの各要素を求め、動き補償の動きベ
クトル検出時には、前記遅延回路によって前記現ブロッ
クのデータを遅延させると共に、前記他のフレームのデ
ータを異なる2箇所から同時に入力してその一方のデー
タをセレクタで選択し、前記第1の演算回路により、各
ベクトルに対する評価関数値を求めるようにしている。
ム内を複数のブロックに分割し、その現ブロックと他の
フレームとの比較によって動画像の符号化を行う装置内
の動きベクトル検出とマトリクス変換を行う画像符号化
方式において、制御信号により、評価関数値あるいは少
なくとも数ビットの乗算を行ってその乗算結果を累積加
する複数の第1の演算回路と、入力データを遅延させて
前記第1の演算回路へ与える複数の遅延回路と、前記各
第1の演算回路の演算結果を累積加算する第2の演算回
路とを、有するプロセッサユニットを複数段設けてい
る。そして、マトリクス演算時には、前記第1の演算回
路を用いて乗算結果を累積加算し、その累積加算結果を
前記第2の演算回路によって桁合わせを行いながら累積
加算を行い、前記各プロセッサユニットにおいて演算結
果となるマトリクスの各要素を求め、動き補償の動きベ
クトル検出時には、前記遅延回路によって前記現ブロッ
クのデータを遅延させると共に、前記他のフレームのデ
ータを異なる2箇所から同時に入力してその一方のデー
タをセレクタで選択し、前記第1の演算回路により、各
ベクトルに対する評価関数値を求めるようにしている。
第2の発明は、第1の発明において、前記マトリクス
演算時に、前記遅延回路により前記入力データを遅延さ
せて前記各第1の演算回路の演算結果を時間的にずらし
て出力するようにしている。
演算時に、前記遅延回路により前記入力データを遅延さ
せて前記各第1の演算回路の演算結果を時間的にずらし
て出力するようにしている。
第3の発明は、第1の発明において、前記マトリクス
演算時には、前記第1の演算回路を用いて、2次のBoot
h法により展開されたマトリクス係数2桁分の乗算を行
ってその乗算結果を累積加算するようにしている。
演算時には、前記第1の演算回路を用いて、2次のBoot
h法により展開されたマトリクス係数2桁分の乗算を行
ってその乗算結果を累積加算するようにしている。
第4の発明は、第1の発明において、前記各第1の演
算回路内に、検索用ブロックの1走査の画素数と同数の
遅延回路を設け、前記動きベクトル検出時に前記現ブロ
ックのデータを前記第1の演算回路間に複数の該遅延回
路を配置し動きベクトルの検出範囲を拡大するようにし
ている。
算回路内に、検索用ブロックの1走査の画素数と同数の
遅延回路を設け、前記動きベクトル検出時に前記現ブロ
ックのデータを前記第1の演算回路間に複数の該遅延回
路を配置し動きベクトルの検出範囲を拡大するようにし
ている。
第5の発明は、第1の発明において、前記複数段のプ
ロセッサユニットと、前記マトリクス演算時において前
記第2の演算回路の演算結果を格納するメモリと、前記
動き補償の動きベクトル検出時において前記各第1の演
算回路の演算結果を比較して動きベクトルの最適値を検
出する比較器とを用い、モードを切り替えることによっ
て前記マトリクス演算または前記動きベクトルの検出を
行うようにしている。
ロセッサユニットと、前記マトリクス演算時において前
記第2の演算回路の演算結果を格納するメモリと、前記
動き補償の動きベクトル検出時において前記各第1の演
算回路の演算結果を比較して動きベクトルの最適値を検
出する比較器とを用い、モードを切り替えることによっ
て前記マトリクス演算または前記動きベクトルの検出を
行うようにしている。
第6の発明は、第1の発明において、前記他のフレー
ムから異なる2箇所のデータが入力される2つのデータ
の位置関係が前記現ブロックのデータの幅分だけずれ、
かつその2つのデータの一方を前記現ブロックのデータ
の幅分だけ遅らせて前記セレクタに入力するようにして
いる。
ムから異なる2箇所のデータが入力される2つのデータ
の位置関係が前記現ブロックのデータの幅分だけずれ、
かつその2つのデータの一方を前記現ブロックのデータ
の幅分だけ遅らせて前記セレクタに入力するようにして
いる。
第7の発明は、第1の発明において、前記第1の演算
回路は、モード切り替えの制御信号によって制御される
係数メモリと、前記係数メモリ内のデータによって制御
されるバレルシフタ及び符号反転器と、絶対値差分器
と、累積加算器とを有し、前記マトリクス演算時には、
入力データを前記バレルシフタ及び符号反転器で処理
し、その処理したデータを前記累積加算器で累積加算
し、前記動きベクトル検出時には、前記絶対値差分器の
出力を前記累積加算器で累積加算するようにしている。
回路は、モード切り替えの制御信号によって制御される
係数メモリと、前記係数メモリ内のデータによって制御
されるバレルシフタ及び符号反転器と、絶対値差分器
と、累積加算器とを有し、前記マトリクス演算時には、
入力データを前記バレルシフタ及び符号反転器で処理
し、その処理したデータを前記累積加算器で累積加算
し、前記動きベクトル検出時には、前記絶対値差分器の
出力を前記累積加算器で累積加算するようにしている。
第8の発明は、第2の発明において、2次のBooth法
によって展開して割り振られた前記第1の演算回路を用
い、該第1の演算回路の割り振られた次数の低い方から
順に演算結果を出力し、前記第2の演算回路ではそれま
での累積加算結果を下位の方向に2ビットシフトして累
積加算を行うようにしている。
によって展開して割り振られた前記第1の演算回路を用
い、該第1の演算回路の割り振られた次数の低い方から
順に演算結果を出力し、前記第2の演算回路ではそれま
での累積加算結果を下位の方向に2ビットシフトして累
積加算を行うようにしている。
第9の発明は、第4の発明において、前記遅延回路内
に、遅延量を制御するセレクタを設け、そのセレクタを
用いて前記第1の演算回路間の入力データの遅延数を数
クロック又は1クロック遅らせるようにしている。
に、遅延量を制御するセレクタを設け、そのセレクタを
用いて前記第1の演算回路間の入力データの遅延数を数
クロック又は1クロック遅らせるようにしている。
第10の発明は、第5の発明において、前記複数段のプ
ロセッサユニットにより1次元の直交変換を行ってその
変換結果を前記メモリに格納し、更に該メモリの内容に
対し前記プロセッサユニットで直交変換を行って2次元
の直交変換結果を求めるようにしている。
ロセッサユニットにより1次元の直交変換を行ってその
変換結果を前記メモリに格納し、更に該メモリの内容に
対し前記プロセッサユニットで直交変換を行って2次元
の直交変換結果を求めるようにしている。
第11の発明は、第9の発明において、前記各遅延回路
を分割した2つのレジスタで構成し、前記マトリクス演
算時には、前記2つのレジスタにそれぞれ上位、下位の
データを格納して1クロック遅延するレジスタとして用
い、前記動きベクトル検出時には、前記2つのレジスタ
を直列接続して2クロック遅延するレジスタとして用い
るようにしている。
を分割した2つのレジスタで構成し、前記マトリクス演
算時には、前記2つのレジスタにそれぞれ上位、下位の
データを格納して1クロック遅延するレジスタとして用
い、前記動きベクトル検出時には、前記2つのレジスタ
を直列接続して2クロック遅延するレジスタとして用い
るようにしている。
第12の発明は、第11の発明において、前記各遅延回路
内の入力段に、レジスタ及びセレクタを設けて入力デー
タを1クロックだけ遅延させるようにしている。
内の入力段に、レジスタ及びセレクタを設けて入力デー
タを1クロックだけ遅延させるようにしている。
(作 用) 第1〜第12の発明によれば、以上のように画像符号化
方式を構成したので、マトリクス演算時には、累積加算
でマトリクス演算を実行し、ハード量の削減化を図って
いる。動き補償の動きベクトル検出時には、異なる検索
用ブロックデータを2個同時に入力してそのいずれか一
方をセレクタで選択した後、マトリクス演算時に用いた
プロセッサユニット等の主要部分を用いて動きベクトル
の検出を行い、回路構成の共用による構成の簡単化、制
御の容易化、及びハード量の削減化を図っている。従っ
て、前記課題を解決できるのである。
方式を構成したので、マトリクス演算時には、累積加算
でマトリクス演算を実行し、ハード量の削減化を図って
いる。動き補償の動きベクトル検出時には、異なる検索
用ブロックデータを2個同時に入力してそのいずれか一
方をセレクタで選択した後、マトリクス演算時に用いた
プロセッサユニット等の主要部分を用いて動きベクトル
の検出を行い、回路構成の共用による構成の簡単化、制
御の容易化、及びハード量の削減化を図っている。従っ
て、前記課題を解決できるのである。
(実施例) 第1の実施例 第1図は、本発明の第1の実施例を示す画像符号化方
式を用いた画像符号化回路の構成ブロック図である。
式を用いた画像符号化回路の構成ブロック図である。
この画像符号化回路は、入力端子100a,100b,100cと、
出力端子101と、ベクトル出力端子102a,102bと、入力端
子201a,201b,201c及び出力端子202a,202bをそれぞれ有
する複数のプロセッサユニット(以下、PUという)200
−1〜200−16と、複数のセレクタ300−1〜300−17
と、バス301,302と、ランダム・アクセス・メモリ(以
下、RAMという)等のメモリ303,304と、比較器305と、
レジスタ等からなる複数の遅延回路(以下、Reという)
310−1〜310−16とを、備えている。
出力端子101と、ベクトル出力端子102a,102bと、入力端
子201a,201b,201c及び出力端子202a,202bをそれぞれ有
する複数のプロセッサユニット(以下、PUという)200
−1〜200−16と、複数のセレクタ300−1〜300−17
と、バス301,302と、ランダム・アクセス・メモリ(以
下、RAMという)等のメモリ303,304と、比較器305と、
レジスタ等からなる複数の遅延回路(以下、Reという)
310−1〜310−16とを、備えている。
入力端子100a,100bは、初段のPU200−1の入力端子20
1a,201bに接続されている。入力端子100aはセレクタ300
−1〜307を介して各PU200−2〜200−8の入力端子201
aに接続されると共に、入力端子100bは各PU200−2〜20
0−16の入力端子202bに接続されている。さらに、入力
端子100cは、縦続接続されたRe310−1〜310−16を介し
て、各PU200−1〜200−16の入力端子201cに接続されて
いる。各PU200−1〜200−8の出力端子202aは、バス30
1に接続されている。初段のPU200−1の出力端子202b
は、セレクタ300−1を介して次段のPU200−2の入力端
子201aに接続され、そのPU200−2の出力端子202bは、
セレクタ300−2を介して次段のPU200−3の入力端子20
1aに接続されている。以下同様にして、セレクタ300−
3〜300−7を介してPU200−8まで接続されている。
1a,201bに接続されている。入力端子100aはセレクタ300
−1〜307を介して各PU200−2〜200−8の入力端子201
aに接続されると共に、入力端子100bは各PU200−2〜20
0−16の入力端子202bに接続されている。さらに、入力
端子100cは、縦続接続されたRe310−1〜310−16を介し
て、各PU200−1〜200−16の入力端子201cに接続されて
いる。各PU200−1〜200−8の出力端子202aは、バス30
1に接続されている。初段のPU200−1の出力端子202b
は、セレクタ300−1を介して次段のPU200−2の入力端
子201aに接続され、そのPU200−2の出力端子202bは、
セレクタ300−2を介して次段のPU200−3の入力端子20
1aに接続されている。以下同様にして、セレクタ300−
3〜300−7を介してPU200−8まで接続されている。
バス301は、メモリ303,304の入力側に接続されると共
に、セレクタ300−16を介してバス302に接続されてい
る。メモリ303,304の出力側は、各セレクタ300−8〜30
0−15を介して各PU200−9〜200−16の入力端子201aに
それぞれ接続されている。PU200−8の出力端子202b
は、セレクタ300−8を介してPU200−9の入力端子201a
に接続されている。PU209の出力端子202bは、セレクタ3
00−9を介して次段のPU200−10の入力端子201aに接続
されている。以下同様に、PU200−11〜200−16まで接続
されている。
に、セレクタ300−16を介してバス302に接続されてい
る。メモリ303,304の出力側は、各セレクタ300−8〜30
0−15を介して各PU200−9〜200−16の入力端子201aに
それぞれ接続されている。PU200−8の出力端子202b
は、セレクタ300−8を介してPU200−9の入力端子201a
に接続されている。PU209の出力端子202bは、セレクタ3
00−9を介して次段のPU200−10の入力端子201aに接続
されている。以下同様に、PU200−11〜200−16まで接続
されている。
各PU200−9〜200−16の出力端子202aは、バス302に
接続されている。このバス302には、セレクタ300−17を
介して出力端子101が接続されると共に、比較器305を介
してベクトル出力端子102a,102b及びセレクタ300−17が
接続されている。
接続されている。このバス302には、セレクタ300−17を
介して出力端子101が接続されると共に、比較器305を介
してベクトル出力端子102a,102b及びセレクタ300−17が
接続されている。
第10図は、第1図中の各PU200−1〜200−16内の構成
ブロック図である。
ブロック図である。
このPUは、入力端子211a,211b及び出力端子212をそれ
ぞれ有する複数の第1の演算回路(以下、Peという)21
0−1〜210−7と、入力データをそれぞれ1クロックず
つ遅らせるレジスタ等からなる複数のRe220−1〜220−
16と、セレクタ221〜1−221−7と、バス230と、デー
タの累積加算を行う第2の演算回路(以下、AUという)
231とを、備えている。
ぞれ有する複数の第1の演算回路(以下、Peという)21
0−1〜210−7と、入力データをそれぞれ1クロックず
つ遅らせるレジスタ等からなる複数のRe220−1〜220−
16と、セレクタ221〜1−221−7と、バス230と、デー
タの累積加算を行う第2の演算回路(以下、AUという)
231とを、備えている。
入力端子201aには、初段のpe210−1の入力端子211a
が接続されると共に、Re220−1〜220−16が縦続接続さ
れて出力端子202bに接続されている。各Re200−1〜220
−6の出力端子は、各Pe210−2〜210−7の入力端子21
1aにそれぞれ接続され、1クロックずつ遅れた入力デー
タが各Pe210−2〜210−7に入力するようになってい
る。入力端子201b及び201cは、セレクタ221−1〜221−
7を介して、各Pe210−1〜210−7の入力端子211bにそ
れぞれ接続されている。
が接続されると共に、Re220−1〜220−16が縦続接続さ
れて出力端子202bに接続されている。各Re200−1〜220
−6の出力端子は、各Pe210−2〜210−7の入力端子21
1aにそれぞれ接続され、1クロックずつ遅れた入力デー
タが各Pe210−2〜210−7に入力するようになってい
る。入力端子201b及び201cは、セレクタ221−1〜221−
7を介して、各Pe210−1〜210−7の入力端子211bにそ
れぞれ接続されている。
各Pe210−1〜210−7の出力端子212はバス230を介し
てAU231に共通され、そのAU231が出力端子202aに接続さ
れている。
てAU231に共通され、そのAU231が出力端子202aに接続さ
れている。
第11図は、第10図中の各Pe210−1〜210−7の構成ブ
ロック図である。
ロック図である。
このPeは、マトリクス演算等の係数を格納し、モード
切り替えの制御信号CSによりその内容が読み出されるRO
M等からなる係数メモリ213を備えている。この係数メモ
リ213には、その出力によって動作が制御されるバレル
シフタ214及び符号反転器215が接続されている。入力端
子211bは絶対値差分器216に接続されると共に、入力端
子211aがバレルシフタ214及び符号反転器215を介して該
絶対値差分器216に接続されている。絶対値差分器216
は、累積加算器217を介して、レジスタ218、バスコント
ローラ219、及び出力端子212に接続されている。累積加
算器217は、加算器217a及びレジスタ217bで構成されて
いる。
切り替えの制御信号CSによりその内容が読み出されるRO
M等からなる係数メモリ213を備えている。この係数メモ
リ213には、その出力によって動作が制御されるバレル
シフタ214及び符号反転器215が接続されている。入力端
子211bは絶対値差分器216に接続されると共に、入力端
子211aがバレルシフタ214及び符号反転器215を介して該
絶対値差分器216に接続されている。絶対値差分器216
は、累積加算器217を介して、レジスタ218、バスコント
ローラ219、及び出力端子212に接続されている。累積加
算器217は、加算器217a及びレジスタ217bで構成されて
いる。
以上のように構成される画像符号化回路において、DC
Tモード時のDCTの変換動作(1)と、MVモード時の動き
ベクトル検出動作(2)とを、説明する。
Tモード時のDCTの変換動作(1)と、MVモード時の動き
ベクトル検出動作(2)とを、説明する。
(1)DCTモード時の動作 DCTモード時、第1図のセレクタ300−1〜300−17は
全て縦方向の端子が選択されて接続される。即ち、入力
端子100aとPU200−1〜200−8とが直接接続され、さら
にメモリ303,304とPU200−9〜200−16とが直接接続さ
れる。バス301と302はセレクタ300−16によって切り離
され、セレクタ300−17によってPU200−9〜200−16と
出力端子101とが接続される。
全て縦方向の端子が選択されて接続される。即ち、入力
端子100aとPU200−1〜200−8とが直接接続され、さら
にメモリ303,304とPU200−9〜200−16とが直接接続さ
れる。バス301と302はセレクタ300−16によって切り離
され、セレクタ300−17によってPU200−9〜200−16と
出力端子101とが接続される。
本実施例において、DCTの変換はM=8の場合で、8
個のデータX0〜X7をひとまとめにしてDCTの変換を行
う。
個のデータX0〜X7をひとまとめにしてDCTの変換を行
う。
データの流れとしては、入力端子100aから8個のデー
タX0〜X7が時系列に入力し、各PU200−1〜200−8に同
時に入力される。各PU200−1〜200−8では、次式のよ
うに、1行分のDCTのマトリクス演算が行われる。
タX0〜X7が時系列に入力し、各PU200−1〜200−8に同
時に入力される。各PU200−1〜200−8では、次式のよ
うに、1行分のDCTのマトリクス演算が行われる。
Y=D0・X0+D1・X1+…+D7・X7 ……(8) 但し、D0〜D7; DCTのマトリクス係数 従って、このPU200−1〜200−8で1次元のDCTが行
われ、その結果が、メモリ303又は304に格納される。2
つのメモリ303,304が設けられているのは、一方がPU200
−1〜200−8からの出力を入力している時は、他方が
データを出力して後段のPU200−9〜200−16の入力とな
り、2つのメモリ302,304をトグルで用いるためであ
る。
われ、その結果が、メモリ303又は304に格納される。2
つのメモリ303,304が設けられているのは、一方がPU200
−1〜200−8からの出力を入力している時は、他方が
データを出力して後段のPU200−9〜200−16の入力とな
り、2つのメモリ302,304をトグルで用いるためであ
る。
8個の入力データX0〜X7に対して各PU200−1〜200−
8から1つずつ、計8個のデータが出力され、それらが
バス301上でぶつからないように制御されてメモリ303又
は304に入力される。もしここで、メモリ303が入力で、
メモリ304が出力であるならば、前段の各PU200−1〜20
0−8の出力が、メモリ303に入力されると同時に、メモ
リ304の出力が、後段の各PU200−9〜200−16の入力と
なる。この動作を8回繰り返す。
8から1つずつ、計8個のデータが出力され、それらが
バス301上でぶつからないように制御されてメモリ303又
は304に入力される。もしここで、メモリ303が入力で、
メモリ304が出力であるならば、前段の各PU200−1〜20
0−8の出力が、メモリ303に入力されると同時に、メモ
リ304の出力が、後段の各PU200−9〜200−16の入力と
なる。この動作を8回繰り返す。
つまりM=8の場合、2次元のDCTの変換のひとまと
めとして扱う64個のデータが入力されて、前段の各PU20
0−1〜200−8の出力がメモリ303に入力し終わると、
2つのメモリ303,304の入出力関係が逆になり、今度は
メモリ303が、データを後段の各PU200−9〜200−16に
出力する。
めとして扱う64個のデータが入力されて、前段の各PU20
0−1〜200−8の出力がメモリ303に入力し終わると、
2つのメモリ303,304の入出力関係が逆になり、今度は
メモリ303が、データを後段の各PU200−9〜200−16に
出力する。
第12図(a),(b)は、1次元DCTの変換データを
格納する第1図のメモリ303,304に対する、書き込み時
と読み出し時の入出力するデータの順序を示す図であ
る。
格納する第1図のメモリ303,304に対する、書き込み時
と読み出し時の入出力するデータの順序を示す図であ
る。
前段の各PU200−1〜200−8の出力をメモリ303又は3
04に書き込む場合、第12図(a)に示すように、例えば
横方向で8個ずつデータを書き込む。次に、メモリ303
のデータを後段の各PU200−9〜200−16へ出力する場
合、第12図(b)に示すように、縦方向に順番に8個ず
つデータを読み出す。
04に書き込む場合、第12図(a)に示すように、例えば
横方向で8個ずつデータを書き込む。次に、メモリ303
のデータを後段の各PU200−9〜200−16へ出力する場
合、第12図(b)に示すように、縦方向に順番に8個ず
つデータを読み出す。
このように、メモリ303,304に対するデータの書き込
み、読み出し方向を代えることにより、後段のPU200−
9〜200−16が前段のPU200−1〜200−8と同じ動作を
することで、その後段のPU200−9〜200−16の出力は、
2次元DCTの変換を行ったデータとなる。このデータ
は、後段の各PU200−9〜200−16から1つずつ、計8個
のデータを出力し、バス302上で各PU200−9〜200−16
の出力がぶつからないように制御されて、出力端子101
から出力される。
み、読み出し方向を代えることにより、後段のPU200−
9〜200−16が前段のPU200−1〜200−8と同じ動作を
することで、その後段のPU200−9〜200−16の出力は、
2次元DCTの変換を行ったデータとなる。このデータ
は、後段の各PU200−9〜200−16から1つずつ、計8個
のデータを出力し、バス302上で各PU200−9〜200−16
の出力がぶつからないように制御されて、出力端子101
から出力される。
次に、第10図及び第11図において、(8)式に示すよ
うに、各PU200−1〜200−16で実行されるDCTのマトリ
クス演算の1行分の計算動作 Y=D0X0+D1X1+……+D7X7 ……(8) について、説明する。この例では、DCTのマトリクス係
数を15ビットとして計算を行う。
うに、各PU200−1〜200−16で実行されるDCTのマトリ
クス演算の1行分の計算動作 Y=D0X0+D1X1+……+D7X7 ……(8) について、説明する。この例では、DCTのマトリクス係
数を15ビットとして計算を行う。
第10図に示すように、DCTのマトリクス演算の1行分
計算((8)式)を行う場合、乗算器を用いず、全て累
積加算動作で実行される。その手法としては、従来例で
示したように、2次のBoothのアルゴリズムを用い、係
数データを分解して演算結果を得る手法を用いる。つま
り、(8−2)式の1行分の演算 Σ((−Di (n+1)・21+Di (n)・20 +Di (n-1)・20)2n・Xi) ……(8−2) の計算を各Pe210−1〜210−7で演算させ、その結果が
順にバス230上に出力され、AU231に入力されて全ての合
計が演算される。ここで、(8−2)式の( )内の取
りうる値は、−2、−1、0、1、2なので、例とし
て、 ((−2)・X0+1・X1+2・X2 +0・X3+(−1)・X4+2・X5 +1・X6+0・X7)2n ……(8−3) の演算式をあげ、各Pe210−1〜210−7の演算方法を第
11図を用いて説明する。
計算((8)式)を行う場合、乗算器を用いず、全て累
積加算動作で実行される。その手法としては、従来例で
示したように、2次のBoothのアルゴリズムを用い、係
数データを分解して演算結果を得る手法を用いる。つま
り、(8−2)式の1行分の演算 Σ((−Di (n+1)・21+Di (n)・20 +Di (n-1)・20)2n・Xi) ……(8−2) の計算を各Pe210−1〜210−7で演算させ、その結果が
順にバス230上に出力され、AU231に入力されて全ての合
計が演算される。ここで、(8−2)式の( )内の取
りうる値は、−2、−1、0、1、2なので、例とし
て、 ((−2)・X0+1・X1+2・X2 +0・X3+(−1)・X4+2・X5 +1・X6+0・X7)2n ……(8−3) の演算式をあげ、各Pe210−1〜210−7の演算方法を第
11図を用いて説明する。
まず、入力端子211aから入力データX1が入力され、係
数メモリ213の制御データに従ってバレルシフタ214と符
号反転器215によって制御される。この場合だと、最初
にX1と−2との乗算を実行するために、バレルシフタ21
4では1ビットシフトし、符号反転器215では符号を変換
して後段の絶対値差分器216に渡される。このモード時
には、値0との差分絶対値が行われる。即ち、符号反転
器215の出力値がそのまま加算器217aに入力され、まず
は0との加算が行われてレジスタ217bに格納される。次
に、入力端子211aから入力データX2が入力され、前回と
同様に、係数メモリ213の制御データに従って、バレル
シフタ214と符号反転器215によって制御されるが、この
場合だと、X2と1との乗算を実行することになるので、
バレルシフタ214ではビットシフトせず、符号反転器215
も符号はそのままで、後段の絶対値差分器216に渡され
る。この絶対値差分器216も前回同様何もせずに加算器2
17aに入力され、先ほどのレジスタ217bの内容との加算
が行われ、次のタイミングでその結果が同じくレジスタ
217bに格納される。
数メモリ213の制御データに従ってバレルシフタ214と符
号反転器215によって制御される。この場合だと、最初
にX1と−2との乗算を実行するために、バレルシフタ21
4では1ビットシフトし、符号反転器215では符号を変換
して後段の絶対値差分器216に渡される。このモード時
には、値0との差分絶対値が行われる。即ち、符号反転
器215の出力値がそのまま加算器217aに入力され、まず
は0との加算が行われてレジスタ217bに格納される。次
に、入力端子211aから入力データX2が入力され、前回と
同様に、係数メモリ213の制御データに従って、バレル
シフタ214と符号反転器215によって制御されるが、この
場合だと、X2と1との乗算を実行することになるので、
バレルシフタ214ではビットシフトせず、符号反転器215
も符号はそのままで、後段の絶対値差分器216に渡され
る。この絶対値差分器216も前回同様何もせずに加算器2
17aに入力され、先ほどのレジスタ217bの内容との加算
が行われ、次のタイミングでその結果が同じくレジスタ
217bに格納される。
以下X2X3X4X5X6X7の入力データは、この場合、それぞ
れ2、0、1、−2、1、0との乗算を前記のバレルシ
フタ214と符号反転器215によって実行し、その結果を加
算器217aとレジスタ217bから構成される累積加算器217
によって累積加算を行う。このようにして8個のデータ
X0〜X7の入力が終わり、加算結果が出力されるタイミン
グで、レジスタ218に格納し、同時に加算器217aにもク
リア信号を入力し、次のデータX0がレジスタ217bにその
まま格納される。その累積加算結果は、バスコントロー
ラ219によって第1図の各PU210−1〜210−7内のバス2
30上で各Pe210−1〜210−7の出力がぶつからないよう
に制御される。
れ2、0、1、−2、1、0との乗算を前記のバレルシ
フタ214と符号反転器215によって実行し、その結果を加
算器217aとレジスタ217bから構成される累積加算器217
によって累積加算を行う。このようにして8個のデータ
X0〜X7の入力が終わり、加算結果が出力されるタイミン
グで、レジスタ218に格納し、同時に加算器217aにもク
リア信号を入力し、次のデータX0がレジスタ217bにその
まま格納される。その累積加算結果は、バスコントロー
ラ219によって第1図の各PU210−1〜210−7内のバス2
30上で各Pe210−1〜210−7の出力がぶつからないよう
に制御される。
このようにして、例えばPe210−1では(8−3)式
の係数の次数が一番低い1行分の演算Σ(−Di (1)・21
+Di (0)・20)20・Xiの計算が行われる。同様に、Pe210
−2では、次に低い1行分の演算Σ(−Di (3)・21+Di
(2)・20+Di (1)・20)22・Xiの計算というように、各Pe
210−1〜210−7で(8−3)式の各行の演算が行わ
れ、その累算加算結果がバス230に出力される。バス230
上にPe210−1からPe210−7の順番で出力された累積加
算結果はAU231で累積加算され、出力端子202aから出力
される。
の係数の次数が一番低い1行分の演算Σ(−Di (1)・21
+Di (0)・20)20・Xiの計算が行われる。同様に、Pe210
−2では、次に低い1行分の演算Σ(−Di (3)・21+Di
(2)・20+Di (1)・20)22・Xiの計算というように、各Pe
210−1〜210−7で(8−3)式の各行の演算が行わ
れ、その累算加算結果がバス230に出力される。バス230
上にPe210−1からPe210−7の順番で出力された累積加
算結果はAU231で累積加算され、出力端子202aから出力
される。
各Pe210−1〜210−7の演算とその演算結果が出力さ
れるタイムチャートを第13図に示す。
れるタイムチャートを第13図に示す。
第13図中のD1(0)〜D8(0)…は入力データ、S1(0)〜S7
(0)…は演算結果、OUT(0),OUT(1)は出力データである。
(0)…は演算結果、OUT(0),OUT(1)は出力データである。
このタイムチャートでは、入力データD1(0)〜D8(0)…
が遅延回路220−1〜220−6によって各Pe210−1〜210
−7に遅延して入力するため、演算結果S1(0)〜S7(0)…
も隣のPeより1クロック遅れて出力している。
が遅延回路220−1〜220−6によって各Pe210−1〜210
−7に遅延して入力するため、演算結果S1(0)〜S7(0)…
も隣のPeより1クロック遅れて出力している。
ここで、第10図のAU231では、各Pe210−1〜210−7
の演算結果を累算加算する時に、各Pe毎に演算結果の桁
が違うため、桁合わせを行いながら累積加算を行う必要
がある。Pe210−1から順に出力されるこの例では、隣
合うPeの演算結果の桁が2ビットずつずれているので、
AU231では、累積加算をするときに、加算結果の方を2
ビット下位ににシフトして加算する必要がある。このよ
うに、各PU200−1〜200−8では、DCT変換されるデー
タは滞ることなく出力端子202aからPUの外部へ出力され
る。
の演算結果を累算加算する時に、各Pe毎に演算結果の桁
が違うため、桁合わせを行いながら累積加算を行う必要
がある。Pe210−1から順に出力されるこの例では、隣
合うPeの演算結果の桁が2ビットずつずれているので、
AU231では、累積加算をするときに、加算結果の方を2
ビット下位ににシフトして加算する必要がある。このよ
うに、各PU200−1〜200−8では、DCT変換されるデー
タは滞ることなく出力端子202aからPUの外部へ出力され
る。
またこの構成は、マトリクス演算を行えることから、
第11図のPe内の係数メモリ213を追加するか、あるいは
そのメモリ内容を追加することで、IDCTの変換や、第3
図のフィルタの演算を実行することも可能である。
第11図のPe内の係数メモリ213を追加するか、あるいは
そのメモリ内容を追加することで、IDCTの変換や、第3
図のフィルタの演算を実行することも可能である。
(2)MVモード時の動作 MVモードの時は、DCTモードの時とは逆に、第1図に
おいてセレクタ300−1〜300−17は全て横方向の端子が
選択されて接続される。つまり、入力端子100aはPU200
−1とだけ接続され、他のPU200−2〜200−16は左隣の
PUの出力信号を入力する。バス301と302はセレクタ300
−16によって接続され、さらにセレクタ300−17によっ
て全PU200−1〜200−16までの出力が比較器305を通し
て出力端子101と接続される。
おいてセレクタ300−1〜300−17は全て横方向の端子が
選択されて接続される。つまり、入力端子100aはPU200
−1とだけ接続され、他のPU200−2〜200−16は左隣の
PUの出力信号を入力する。バス301と302はセレクタ300
−16によって接続され、さらにセレクタ300−17によっ
て全PU200−1〜200−16までの出力が比較器305を通し
て出力端子101と接続される。
この例のMV検出回路において使用されるデータは、第
14図(a)〜(c)に示すように、検出する基本ブロッ
クA(第4図(a))の大きさが16×16で、その検索範
囲はX方向が−3〜+3まで、Y方向が−8〜+7まで
可能である。第1図においては、入力端子100aから基本
ブロックデータを入力し、入力端子100b,100cからは第1
4図(b),(c)の検索用ブロックデータをそれぞれ
入力する。
14図(a)〜(c)に示すように、検出する基本ブロッ
クA(第4図(a))の大きさが16×16で、その検索範
囲はX方向が−3〜+3まで、Y方向が−8〜+7まで
可能である。第1図においては、入力端子100aから基本
ブロックデータを入力し、入力端子100b,100cからは第1
4図(b),(c)の検索用ブロックデータをそれぞれ
入力する。
ここで、入力端子100bと100cから入力される検索用ブ
ロックデータは、第14図(b)に示すように、異なった
場所の検索用ブロックデータを同時に入力し、入力端子
100bからのデータDT1は、各PU200−1〜200−16に直接
入力し、入力端子100cからのデータDT2も、16個のRe310
−1〜310−16、つまり16クロック遅延した後に該各PU2
00−1〜200−16に入力している。2つのデータDT1,DT2
は、共にPU200−1〜200−16内の各Pe210−1〜210−7
の前段のセレクタ221−1〜221−7の入力となってい
て、そのうち1つが選択されて各Pe210−1〜210−7の
入力データとなる。また、入力端子100aから入力された
基本ブロックデータは、PU200−1に入力され、第10図
に示す16個のRe220−1〜220−16、つまり16クロック遅
延して隣のPU200−2に渡される。他の200−3〜200−1
6も同様に、隣のPUより16クロック遅延したデータが渡
される。
ロックデータは、第14図(b)に示すように、異なった
場所の検索用ブロックデータを同時に入力し、入力端子
100bからのデータDT1は、各PU200−1〜200−16に直接
入力し、入力端子100cからのデータDT2も、16個のRe310
−1〜310−16、つまり16クロック遅延した後に該各PU2
00−1〜200−16に入力している。2つのデータDT1,DT2
は、共にPU200−1〜200−16内の各Pe210−1〜210−7
の前段のセレクタ221−1〜221−7の入力となってい
て、そのうち1つが選択されて各Pe210−1〜210−7の
入力データとなる。また、入力端子100aから入力された
基本ブロックデータは、PU200−1に入力され、第10図
に示す16個のRe220−1〜220−16、つまり16クロック遅
延して隣のPU200−2に渡される。他の200−3〜200−1
6も同様に、隣のPUより16クロック遅延したデータが渡
される。
各PU200−1〜200−16では、第10図のようにPe210−
1〜210−7が7個存在し、その1つ1つがベクトル候
補地の演算を担当する。前記のDCTモードで累積加算を
行ったAU231は、このMVモードの時は何もしないので、
各Pe210−1〜210−7の出力は比較器305に直接接続さ
れていることになる。第1図においてPU200−1内の7
個のPe210−1〜210−7では、Y方向が−8で、X方向
が−3〜+3までの7箇所のベクトル候補地の誤差量が
計算される。誤差量の求め方は、第11図のPeで次のよう
に計算される。
1〜210−7が7個存在し、その1つ1つがベクトル候
補地の演算を担当する。前記のDCTモードで累積加算を
行ったAU231は、このMVモードの時は何もしないので、
各Pe210−1〜210−7の出力は比較器305に直接接続さ
れていることになる。第1図においてPU200−1内の7
個のPe210−1〜210−7では、Y方向が−8で、X方向
が−3〜+3までの7箇所のベクトル候補地の誤差量が
計算される。誤差量の求め方は、第11図のPeで次のよう
に計算される。
DCTモード時の制御信号CSによって係数メモリ213から
出力されるデータにより、バレルシフタ214及び符号反
転器215が制御される。ところが、MVモードの時には、
バレルシフタ214及び符号反転器215がスリー状態となる
ため、入力端子211aから入力された基本ブロックデータ
はそのまま絶対値差分器216へ送られる。絶対値差分器2
16は、入力端子211bからの検索用ブロックデータと、入
力端子211aからの基本ブロックデータとの、差分絶対値
を計算する。この計算結果は、加算器217aの入力とな
り、累積加算が行われる。この例では、基本ブロックデ
ータ数が196=16×16なので、その回数だけ累積加算が
行われ、その結果がレジスタ218に格納されると同時に
レジスタ217bもクリアされる。そして比較器305と接続
しているバス230上で、累積加算結果同士がぶつからな
いように、バスコントローラ219によって制御される。
このMV検出モード時のPU内のタイムチャートを第15図に
示す。
出力されるデータにより、バレルシフタ214及び符号反
転器215が制御される。ところが、MVモードの時には、
バレルシフタ214及び符号反転器215がスリー状態となる
ため、入力端子211aから入力された基本ブロックデータ
はそのまま絶対値差分器216へ送られる。絶対値差分器2
16は、入力端子211bからの検索用ブロックデータと、入
力端子211aからの基本ブロックデータとの、差分絶対値
を計算する。この計算結果は、加算器217aの入力とな
り、累積加算が行われる。この例では、基本ブロックデ
ータ数が196=16×16なので、その回数だけ累積加算が
行われ、その結果がレジスタ218に格納されると同時に
レジスタ217bもクリアされる。そして比較器305と接続
しているバス230上で、累積加算結果同士がぶつからな
いように、バスコントローラ219によって制御される。
このMV検出モード時のPU内のタイムチャートを第15図に
示す。
第15図において、B1は、入力端子201bから入力される
検査用ブロックデータである。B2は、入力端子201cから
入力され第1図のRe310−1〜310−16によって16クロッ
ク遅延された後、全てのPU200−1〜200−16内のPe210
−1〜210−7に供給される検索用ブロックデータであ
る。A1は、入力端子201aからPe210−1に入力される基
本ブロックデータである。C1は、Pe210−1の前段にあ
るセレクタ221−1に供給される制御信号で、“H"レベ
ルの時に検索用ブロックデータB1を選択し、“L"レベル
の時に検索用ブロックデータB2を選択する。D1は、Pe21
0−1の演算結果である誤差量を出力するタイミング信
号である。A2は、第10図に示されたRe220−1の出力に
よって基本ブロックデータA1より1クロック遅延してい
る信号で、Pe210−2に入力される基本ブロックデータ
である。C2も、C1と同様に、Pe210−2の前段にあるセ
レクタ221−2に供給される制御信号で、“H"レベルの
時に検索用ブロックデータB1を選択し、“L"レベルの時
にデータB2を選択する。D2は、Pe210−2の演算結果で
ある誤差量を出力するタイミング信号である。
検査用ブロックデータである。B2は、入力端子201cから
入力され第1図のRe310−1〜310−16によって16クロッ
ク遅延された後、全てのPU200−1〜200−16内のPe210
−1〜210−7に供給される検索用ブロックデータであ
る。A1は、入力端子201aからPe210−1に入力される基
本ブロックデータである。C1は、Pe210−1の前段にあ
るセレクタ221−1に供給される制御信号で、“H"レベ
ルの時に検索用ブロックデータB1を選択し、“L"レベル
の時に検索用ブロックデータB2を選択する。D1は、Pe21
0−1の演算結果である誤差量を出力するタイミング信
号である。A2は、第10図に示されたRe220−1の出力に
よって基本ブロックデータA1より1クロック遅延してい
る信号で、Pe210−2に入力される基本ブロックデータ
である。C2も、C1と同様に、Pe210−2の前段にあるセ
レクタ221−2に供給される制御信号で、“H"レベルの
時に検索用ブロックデータB1を選択し、“L"レベルの時
にデータB2を選択する。D2は、Pe210−2の演算結果で
ある誤差量を出力するタイミング信号である。
検索用ブロックデータB1,B2は、入力端子201b,201cの
両方から同時に入力する。そして、第14図(b)に示す
ように、入力端子201bからはブロックの左上B(0,0)
から順にB(1,0),B(2,0),…のように縦方向に逐次
入力し、B(15,0)まで入力すると、次にB(0,1)と
いうように次の列へと連続的に入力される。さらに、入
力端子201cからはブロックの途中のB(16,0)から順に
B(17,0),B(18,0),…のように縦方向に逐次入力
し、B(21,0)まで入力すると、データ入力を中止し、
入力端子201bから次の列のB(0,1)が入力するのと同
じタイミングで、次にB(16,1)の入力を再開し、以下
同様に連続的に入力される。なお、前記の手法では、入
力端子201cの入力を一時的に停止するように述べたが、
例えばダミーデータとしてB(22,0)〜B(31,0)を入
力してもよい。
両方から同時に入力する。そして、第14図(b)に示す
ように、入力端子201bからはブロックの左上B(0,0)
から順にB(1,0),B(2,0),…のように縦方向に逐次
入力し、B(15,0)まで入力すると、次にB(0,1)と
いうように次の列へと連続的に入力される。さらに、入
力端子201cからはブロックの途中のB(16,0)から順に
B(17,0),B(18,0),…のように縦方向に逐次入力
し、B(21,0)まで入力すると、データ入力を中止し、
入力端子201bから次の列のB(0,1)が入力するのと同
じタイミングで、次にB(16,1)の入力を再開し、以下
同様に連続的に入力される。なお、前記の手法では、入
力端子201cの入力を一時的に停止するように述べたが、
例えばダミーデータとしてB(22,0)〜B(31,0)を入
力してもよい。
入力端子201aから入力されら基本ブロックデータA1
は、第14図(a)に示すように、ブロックの左上A(0,
0)から順に、A(1,0),A(2,0),…のように縦方向
に逐次入力し、A(15,0)まで入力すると、次の列の基
本ブロックデータA1であるA(0,1)の入力を開始す
る。
は、第14図(a)に示すように、ブロックの左上A(0,
0)から順に、A(1,0),A(2,0),…のように縦方向
に逐次入力し、A(15,0)まで入力すると、次の列の基
本ブロックデータA1であるA(0,1)の入力を開始す
る。
このようにして入力された検索用ブロックデータB1,B
2と基本ブロックデータAは、Pe210−1に入力する時は
第15図に示されるタイミングのデータとなる。以下第15
図を用いて説明する。
2と基本ブロックデータAは、Pe210−1に入力する時は
第15図に示されるタイミングのデータとなる。以下第15
図を用いて説明する。
第15図における検索用ブロックデータB1とB2は、第10
図の入力端子201b,201cからそれぞれセレクタ221−1〜
221−7に入力する。p=−3,q=−8のベクトル候補地
演算を担当するPe210−1には、入力端子201aから入力
データAに相当する基本ブロックデータと、セレクタ22
1−1の出力(この場合はセレクタ221−1はデータB1を
常に選択する)とが、同期して入力される。即ち、A
(0,0)とB(0,0),A(1,0)とB(1,0)…のように入
力して行き、基本ブロックデータA1がA(15,15)まで
入力し、演算が終わった時点で、(9−1)式に示した
p=−3,q=−8、つまり の計算が行われたことになる。この演算結果、即ちベク
トルp=−3,q=−8に対する差分絶対値の累積値は、
比較器305へ渡される。
図の入力端子201b,201cからそれぞれセレクタ221−1〜
221−7に入力する。p=−3,q=−8のベクトル候補地
演算を担当するPe210−1には、入力端子201aから入力
データAに相当する基本ブロックデータと、セレクタ22
1−1の出力(この場合はセレクタ221−1はデータB1を
常に選択する)とが、同期して入力される。即ち、A
(0,0)とB(0,0),A(1,0)とB(1,0)…のように入
力して行き、基本ブロックデータA1がA(15,15)まで
入力し、演算が終わった時点で、(9−1)式に示した
p=−3,q=−8、つまり の計算が行われたことになる。この演算結果、即ちベク
トルp=−3,q=−8に対する差分絶対値の累積値は、
比較器305へ渡される。
p=−2,q=−8のベクトル候補地演算を担当するPe2
10−2においても、同様の計算が行われる。但し、入力
端子201aから入力される基本ブロックデータA1は、Re22
0−1によって1クロックタイミングがずれているの
で、A(0,0)とB(1,0),A(1,0)とB(2,0)…のよ
うに入力し、基本ブロックデータA1がA(15,*)にな
った時だけ、前段のセレクタ221−2によって検索用ブ
ロックデータB2、つまりB(16,*)を選択してPe210−
2に渡す。このようにして(9−2)式におけるp=−
2,q=−8の演算 が行われたことになる。入力がPe210−1より1クロッ
クタイミングずれているため、出力も1クロック遅れて
出力される。
10−2においても、同様の計算が行われる。但し、入力
端子201aから入力される基本ブロックデータA1は、Re22
0−1によって1クロックタイミングがずれているの
で、A(0,0)とB(1,0),A(1,0)とB(2,0)…のよ
うに入力し、基本ブロックデータA1がA(15,*)にな
った時だけ、前段のセレクタ221−2によって検索用ブ
ロックデータB2、つまりB(16,*)を選択してPe210−
2に渡す。このようにして(9−2)式におけるp=−
2,q=−8の演算 が行われたことになる。入力がPe210−1より1クロッ
クタイミングずれているため、出力も1クロック遅れて
出力される。
このようにして以下Pe210−3〜210−7まで、検索用
ブロックデータB1とB2を前段のセレクタ221−3〜221−
7によって制御することにより、それぞれp=−1〜+
3、q=−8のベクトルに対応する演算を行い、1クロ
ックずれたタイミングで出力する。また、PU200−2で
は、初段の直列に接続されたRe220−8〜220−16によ
り、基本ブロックデータA1の1列ずれたデータが与えら
れるため、p=−3〜+3、q=−7のベクトルに対応
する演算結果を出力する。
ブロックデータB1とB2を前段のセレクタ221−3〜221−
7によって制御することにより、それぞれp=−1〜+
3、q=−8のベクトルに対応する演算を行い、1クロ
ックずれたタイミングで出力する。また、PU200−2で
は、初段の直列に接続されたRe220−8〜220−16によ
り、基本ブロックデータA1の1列ずれたデータが与えら
れるため、p=−3〜+3、q=−7のベクトルに対応
する演算結果を出力する。
以上のようにして各Pe210−1〜210−7でベクトル候
補地p=−3〜+3,q=−8〜+7の演算を行い、その
結果が全て比較器305に集められ、該比較器305により、
それらの中から最小値を見つけ、それに対応したベクト
ルも保持する。そして全てのベクトル候補地の演算が終
了した時点で、ベクトル出力端子102aと102bに各々の値
を出力すると共に、その時の誤差量も出力端子101から
出力される。
補地p=−3〜+3,q=−8〜+7の演算を行い、その
結果が全て比較器305に集められ、該比較器305により、
それらの中から最小値を見つけ、それに対応したベクト
ルも保持する。そして全てのベクトル候補地の演算が終
了した時点で、ベクトル出力端子102aと102bに各々の値
を出力すると共に、その時の誤差量も出力端子101から
出力される。
ここで、第10図のPe210−1は、基本ブロックに対す
るベクトル候補地p=−3,q=−8の演算を終了し、そ
の次の列の入力と共に次の基本ブロックデータに対する
ベクトル候補地p=−3,q=−8の演算を開始する。こ
のように次々に、次のブロックの各Pe210−1〜210−7
に割り振られたベクトル候補地の演算を行ってゆく。そ
のため、ある基本ブロックの検索用のブロックデータB1
の入力データが終了しても、次の基本ブロックの検索用
ブロックデータB1の入力データを始めから入力する必要
がなく、入力データが終了した次の列を連続的に入力す
ることができる。
るベクトル候補地p=−3,q=−8の演算を終了し、そ
の次の列の入力と共に次の基本ブロックデータに対する
ベクトル候補地p=−3,q=−8の演算を開始する。こ
のように次々に、次のブロックの各Pe210−1〜210−7
に割り振られたベクトル候補地の演算を行ってゆく。そ
のため、ある基本ブロックの検索用のブロックデータB1
の入力データが終了しても、次の基本ブロックの検索用
ブロックデータB1の入力データを始めから入力する必要
がなく、入力データが終了した次の列を連続的に入力す
ることができる。
このように、基本ブロックデータA1、検索用ブロック
データB1,B2ともに走査方向に逆戻りすることなく、連
続して入力することによって、停止することなく常に全
てのPe210−1〜210−7で誤差量の演算を行う。従っ
て、極めて効率的に各ブロックに対する動きベクトルを
求めることができる。
データB1,B2ともに走査方向に逆戻りすることなく、連
続して入力することによって、停止することなく常に全
てのPe210−1〜210−7で誤差量の演算を行う。従っ
て、極めて効率的に各ブロックに対する動きベクトルを
求めることができる。
第2の実施例 第16図は、本発明の第2の実施例を示すもので、第1
図中のPUの構成ブロック図である。
図中のPUの構成ブロック図である。
このPUでは、各Pe210−1〜210−7の入力データ及び
出力端子202bの出力データを遅延させる各2段の遅延回
路220−1a,220−1b〜220−8a,220−8bを縦続接続してい
る。そして、第14図(c)に示した検索用ブロックを用
い、第10図と同様にデータを入力して動き補償のための
動きベクトル検出を行う。その時のタイムチャートを第
17図に示す。
出力端子202bの出力データを遅延させる各2段の遅延回
路220−1a,220−1b〜220−8a,220−8bを縦続接続してい
る。そして、第14図(c)に示した検索用ブロックを用
い、第10図と同様にデータを入力して動き補償のための
動きベクトル検出を行う。その時のタイムチャートを第
17図に示す。
このように、遅延回路220−1a,220−1b〜220−8a,220
−8bを増したことで検索範囲か広がり、X方向が−7〜
+7まで、Y方向が−8〜+7まで可能となる。しか
し、ベクトル候補地の誤差量は、計算するPe210−1〜2
10−7の数が変わらないので、間引かれたベクトル候補
地の説明図である第18図に示すように、ちょうどX軸方
向に、ベクトル候補地演算が間引かれた形になる。
−8bを増したことで検索範囲か広がり、X方向が−7〜
+7まで、Y方向が−8〜+7まで可能となる。しか
し、ベクトル候補地の誤差量は、計算するPe210−1〜2
10−7の数が変わらないので、間引かれたベクトル候補
地の説明図である第18図に示すように、ちょうどX軸方
向に、ベクトル候補地演算が間引かれた形になる。
この第2の実施例では、動き補償のための動きベクト
ル検出を行う検索範囲を広くとるために、遅延回路220
−1a,220−1b〜220−8a,220−8bを増加している。しか
し、実際はDCT入力データと基本ブロックデータとのビ
ット数が異なることが多いので、遅延回路220−1a,220
−1b〜220−8a,220−8bを増加することなく、検索範囲
を広げることも可能である。その構成例を、次の第3の
実施例で説明する。
ル検出を行う検索範囲を広くとるために、遅延回路220
−1a,220−1b〜220−8a,220−8bを増加している。しか
し、実際はDCT入力データと基本ブロックデータとのビ
ット数が異なることが多いので、遅延回路220−1a,220
−1b〜220−8a,220−8bを増加することなく、検索範囲
を広げることも可能である。その構成例を、次の第3の
実施例で説明する。
第3の実施例 第19図は、DCT入力データ幅が基本ブロックデータ幅
の2倍であると仮定した場合の、第10図中の各遅延回路
220−1〜220−6の構成図である。
の2倍であると仮定した場合の、第10図中の各遅延回路
220−1〜220−6の構成図である。
この遅延回路は、入力端子220a,220b及び出力端子220
c,220dを有し、その間に、基本入力データ幅のレジスタ
220e,220fを2つ設け、その前段に、入力データを制御
するセレクタ220g,220hを設けた構成になっている。こ
のような遅延回路を用いれば、第10図の遅延回路220−1
0〜220−16を省略することができる。
c,220dを有し、その間に、基本入力データ幅のレジスタ
220e,220fを2つ設け、その前段に、入力データを制御
するセレクタ220g,220hを設けた構成になっている。こ
のような遅延回路を用いれば、第10図の遅延回路220−1
0〜220−16を省略することができる。
DCTモード時には2つのレジスタ220e,220fを上位、下
位に割り振る。つまり入力端子220bからDCT入力データ
の下位データが、入力端子220aからDCT入力データの上
位データが入力し、セレクタ220g,220hではそのままレ
ジスタ220e,220fに入力されるように選択される。この
モードでは、1クロック遅れて出力するので、上記に示
した実施例と同じ動作をする。MV検出モードでは、入力
端子220bから基本ブロックデータが入力されると、この
データはまずレジスタ220eに格納され、次にレジスタ22
0fに格納されるようにセレクタ220g,220hによってデー
タの流れが制御される。このようにレジスタ220e,220f
を2段通過しているので、2クロック遅れて出力する。
このようにして、MV検出モードでは、レジスタ220e,220
fを付加することなく検索範囲を広げ、DCTモード時に
は、レジスタ220e,220fによって遅延することがないの
で、今までと同じ速度で変換することができる。
位に割り振る。つまり入力端子220bからDCT入力データ
の下位データが、入力端子220aからDCT入力データの上
位データが入力し、セレクタ220g,220hではそのままレ
ジスタ220e,220fに入力されるように選択される。この
モードでは、1クロック遅れて出力するので、上記に示
した実施例と同じ動作をする。MV検出モードでは、入力
端子220bから基本ブロックデータが入力されると、この
データはまずレジスタ220eに格納され、次にレジスタ22
0fに格納されるようにセレクタ220g,220hによってデー
タの流れが制御される。このようにレジスタ220e,220f
を2段通過しているので、2クロック遅れて出力する。
このようにして、MV検出モードでは、レジスタ220e,220
fを付加することなく検索範囲を広げ、DCTモード時に
は、レジスタ220e,220fによって遅延することがないの
で、今までと同じ速度で変換することができる。
また、この入力端子の前段にレジスタを1段設けるこ
とによってベクトル候補地演算の間引かれた位置が1つ
ずつずれるので、先ほど間引かれたベクトル候補地の演
算が可能となる。このようにして、入力端子の前段のレ
ジスタの後段にセレクタを設け、入力データの遅延を制
御することにより、1回では間引かれた形になるが、2
回データを流すことで、全ての場所のベクトル検出が可
能となる。
とによってベクトル候補地演算の間引かれた位置が1つ
ずつずれるので、先ほど間引かれたベクトル候補地の演
算が可能となる。このようにして、入力端子の前段のレ
ジスタの後段にセレクタを設け、入力データの遅延を制
御することにより、1回では間引かれた形になるが、2
回データを流すことで、全ての場所のベクトル検出が可
能となる。
第4の実施例 第20図は、本発明の第4の実施例を示す画像符号化装
置の構成ブロック図である。
置の構成ブロック図である。
この画像符号化装置は、第1図の画像符号化回路を用
いて構成されており、符号化されるデータ(現フレーム
データ)が格納されている現フレームメモリ400、ジグ
ザグスキャン用の一時格納メモリ401、1フレーム前の
データをこの装置内で符号化し復号したデータが格納さ
れている前フレームメモリ402、及び前フレームメモリ4
02のデータをフィルタ処理した後のデータが格納されて
いるフィルタ処理後格納メモリ403を備えている。現フ
レームメモリ400、IDCT変換前のデータを格納したメモ
リ401、及び信号‘0'には、それらのいずれか1つを選
択するセレクタ404が接続されている。
いて構成されており、符号化されるデータ(現フレーム
データ)が格納されている現フレームメモリ400、ジグ
ザグスキャン用の一時格納メモリ401、1フレーム前の
データをこの装置内で符号化し復号したデータが格納さ
れている前フレームメモリ402、及び前フレームメモリ4
02のデータをフィルタ処理した後のデータが格納されて
いるフィルタ処理後格納メモリ403を備えている。現フ
レームメモリ400、IDCT変換前のデータを格納したメモ
リ401、及び信号‘0'には、それらのいずれか1つを選
択するセレクタ404が接続されている。
フィルタリング前のデータが格納された前フレームメ
モリ402、及びフィルタリング後のデータが格納された
フィルタ処理後格納メモリ403には、それらのいずれか
1つを選択するセレクタ405が接続されている。このセ
レクタ405の出力側は、符号‘0'と共にセレクタ406,409
にそれぞれ接続されている。セレクタ404,406の各出力
側は、減算器407に接続され、該減算器407の前フレーム
メモリ402が画像符号化回路408に接続されている。
モリ402、及びフィルタリング後のデータが格納された
フィルタ処理後格納メモリ403には、それらのいずれか
1つを選択するセレクタ405が接続されている。このセ
レクタ405の出力側は、符号‘0'と共にセレクタ406,409
にそれぞれ接続されている。セレクタ404,406の各出力
側は、減算器407に接続され、該減算器407の前フレーム
メモリ402が画像符号化回路408に接続されている。
画像符号化回路408は、集積化(LSI等)された第1図
の回路で構成されており、その出力側セレクタ409と共
に加算器410に接続されている。加算器410の出力側は、
シグザグスキャン用の一時格納メモリ411を介して、量
子化回路412に接続され、さらにその量子化回路(Q)4
12が逆量子化回路(Q-1)413を介してメモリ401に接続
されている。
の回路で構成されており、その出力側セレクタ409と共
に加算器410に接続されている。加算器410の出力側は、
シグザグスキャン用の一時格納メモリ411を介して、量
子化回路412に接続され、さらにその量子化回路(Q)4
12が逆量子化回路(Q-1)413を介してメモリ401に接続
されている。
次に、動作を説明する。
先ず、現フレームメモリ400から、符号化するための
基本ブロックデータが読み出され、前フレームメモリ40
2からは、動き補償を行うために該基本ブロックデータ
に対応した検索用ブロックデータが読み出される。この
時、セレクタ404は現フレームデータ(基本ブロックデ
ータ)を選択すると共に、セレクタ406,409は共に‘0'
を選択する。そのため、画像符号化回路408には、基本
ブロックデータと検索用ブロックデータとがそのまま入
力され、MVモードにして動きベクトルが検出される。こ
の動きベクトルを基に動き補償が行われたその部分のデ
ータが、前フレームメモリ402から読み出され、セレク
タ405,406は前フレームデータを選択すると共に、セレ
クタ404,409が共に‘0'を選択する。これにより、前フ
レームメモリ402のデータが画像符号化回路408に入力
し、フィルタモードでフィルタリングされる。その結果
は、フィルタ処理後格納メモリ403に格納される。
基本ブロックデータが読み出され、前フレームメモリ40
2からは、動き補償を行うために該基本ブロックデータ
に対応した検索用ブロックデータが読み出される。この
時、セレクタ404は現フレームデータ(基本ブロックデ
ータ)を選択すると共に、セレクタ406,409は共に‘0'
を選択する。そのため、画像符号化回路408には、基本
ブロックデータと検索用ブロックデータとがそのまま入
力され、MVモードにして動きベクトルが検出される。こ
の動きベクトルを基に動き補償が行われたその部分のデ
ータが、前フレームメモリ402から読み出され、セレク
タ405,406は前フレームデータを選択すると共に、セレ
クタ404,409が共に‘0'を選択する。これにより、前フ
レームメモリ402のデータが画像符号化回路408に入力
し、フィルタモードでフィルタリングされる。その結果
は、フィルタ処理後格納メモリ403に格納される。
次に、セレクタ405,406により、フィルタをかけたデ
ータとフィルタをかける前のデータとのいずれか一方を
選択し、セレクタ404によって選択された現フレームメ
モリ400のデータと共に、減算器407に入力した後、その
減算結果が画像符号化回路408に入力される。この時、
画像符号化回路408はDCTモードとなってDCT変換され、
そのデータがメモリ411に一時的に格納され、出力時に
はジグザグスキャンで読み出される。
ータとフィルタをかける前のデータとのいずれか一方を
選択し、セレクタ404によって選択された現フレームメ
モリ400のデータと共に、減算器407に入力した後、その
減算結果が画像符号化回路408に入力される。この時、
画像符号化回路408はDCTモードとなってDCT変換され、
そのデータがメモリ411に一時的に格納され、出力時に
はジグザグスキャンで読み出される。
このメモリ411のデータは、量子化回路412により量子
化されて出力される。また、逆量子化回路413では、量
子化回路412の出力データを逆量子化し、そのデータが
シグザグスキャンでメモリ401に書き込まれて一時的に
格納される。このメモリ401のデータは、セレクタ404に
よって選択され、セレクタ406が‘0'を選択するので、
減算器407を介して画像符号化回路408に入力される。こ
の時、画像符号化回路408は、IDCTモードとなってIDCT
変換され、セレクタ405,409によって選択されたフィル
タリング後のデータとフィルタリング前のデータとのい
ずれか一方のデータと共に、加算器410で加算され、次
のフレームを符号化するのに必要なデータとして前フレ
ームメモリ402に格納される。
化されて出力される。また、逆量子化回路413では、量
子化回路412の出力データを逆量子化し、そのデータが
シグザグスキャンでメモリ401に書き込まれて一時的に
格納される。このメモリ401のデータは、セレクタ404に
よって選択され、セレクタ406が‘0'を選択するので、
減算器407を介して画像符号化回路408に入力される。こ
の時、画像符号化回路408は、IDCTモードとなってIDCT
変換され、セレクタ405,409によって選択されたフィル
タリング後のデータとフィルタリング前のデータとのい
ずれか一方のデータと共に、加算器410で加算され、次
のフレームを符号化するのに必要なデータとして前フレ
ームメモリ402に格納される。
このように、画像符号化回路408を時分割にしてモー
ドを切り替え、MV検出、フィルタ、DCT変換、及びIDCT
変換として使用することにより、画像符号化装置の構成
を簡略化し、従来のものよりも、ハード量の削減化と低
コスト化が図れる。
ドを切り替え、MV検出、フィルタ、DCT変換、及びIDCT
変換として使用することにより、画像符号化装置の構成
を簡略化し、従来のものよりも、ハード量の削減化と低
コスト化が図れる。
なお、本発明は上記実施例に限定されず、第1図のPU
200−1〜200−16及びメモリ303,304の数を入力データ
のビット数に応じて他の数に変形したり、あるいは各PU
200−1〜200−16の回路構成を第10図及び第16図以外の
構成に変形する時、種々の変形が可能である。
200−1〜200−16及びメモリ303,304の数を入力データ
のビット数に応じて他の数に変形したり、あるいは各PU
200−1〜200−16の回路構成を第10図及び第16図以外の
構成に変形する時、種々の変形が可能である。
(発明の効果) 以上詳細に説明したように、本発明によれば、モード
切り替え可能なプロセッサユニットを用いてマトリクス
演算、及び動き補償の動きベクトル検出を行うので、多
機能化が図れると共に、回路構成の多くの部分を共用で
き、それによって回路構成の簡単化、ハード量の削減
化、及び低コスト化が可能となる。
切り替え可能なプロセッサユニットを用いてマトリクス
演算、及び動き補償の動きベクトル検出を行うので、多
機能化が図れると共に、回路構成の多くの部分を共用で
き、それによって回路構成の簡単化、ハード量の削減
化、及び低コスト化が可能となる。
本発明を、2次元のDCT時と、動き補償の動きベクト
ル検出を行う回路に適用した場合、DCT時のマトリクス
演算に例えば2次のBoothのアルゴリズムを使用するこ
とにより、ハード量が小さくなり、しかも動き補償の動
きベクトル検出も、例えば基本ブロックデータと検索用
ブロックデータを2度入力することによって全ブロック
領域の検索が可能となる。
ル検出を行う回路に適用した場合、DCT時のマトリクス
演算に例えば2次のBoothのアルゴリズムを使用するこ
とにより、ハード量が小さくなり、しかも動き補償の動
きベクトル検出も、例えば基本ブロックデータと検索用
ブロックデータを2度入力することによって全ブロック
領域の検索が可能となる。
本発明の方式では、動き補償の動きベクトル検出には
異なる2つの検索用ブロックデータを同時に入力し、必
要な検索用ブロックデータを選択することで、全ての第
1の演算回路を停止することなく、効率よく誤差量を演
算することができるので、高速に動きベクトル検出を行
うことも可能である。
異なる2つの検索用ブロックデータを同時に入力し、必
要な検索用ブロックデータを選択することで、全ての第
1の演算回路を停止することなく、効率よく誤差量を演
算することができるので、高速に動きベクトル検出を行
うことも可能である。
また、本発明はDCTモードの時、マトリクス演算を行
えるので、係数メモリを追加、あるいは変更することに
より、IDCT変換、フィルタ等といった他のマトリクス演
算も実行できる。
えるので、係数メモリを追加、あるいは変更することに
より、IDCT変換、フィルタ等といった他のマトリクス演
算も実行できる。
第1図は本発明の第1の実施例を示す画像符号化回路の
構成ブロック図、第2図は従来のテレビ会議用CODECの
構成ブロック図、第3図は第2図中のソース符号化回路
の構成図、第4図は従来の1次元DCTのデータフローを
示す図、第5図は従来の2次元DCTの構成例を示す図、
第6図は従来の2次Boothを用いた1行分のマトリクス
演算回路の構成ブロック図、第7図は第6図中のPeの構
成ブロック図、第8図(a)〜(c)は従来の動きベク
トル検出の説明図、第9図は従来の画像符号化装置の構
成ブロック図、第10図は第1図中のPUの構成ブロック
図、第11図は第10図中のPeの構成ブロック図、第12図
(a),(b)は第1図のメモリのデータ入出力を出す
図、第13図は第1図のDCTモード時のPU内タイムチャー
ト、第14図(a)〜(c)は第1図の基本ブロックと検
索用ブロックを示す図、第15図は第1図のMV検出モード
時のPU内タイムチャート、第16図は本発明の第2の実施
例を示す第1図中のPUの構成ブロック図、第17図は第16
図のMV検出モード時のPU内タイムチャート、第18図は第
16図における間引かれたベクトル候補地を示す図、第19
図は第3の実施例を示す第1図中の遅延回路の構成図、
第20図は本発明の第4の実施例を示す画像処理装置の構
成ブロック図である。 200−1〜200−16……プロセッサユニット(PU)、210
−1〜210−7……第1の演算回路(Pe)、213……係数
メモリ、214……バレルシフタ、215……符号反転器、21
6……絶対値差分器、217……累積加算器、220−1〜220
−16,220−1a,220−1b〜220−8a,220−8b……遅延回路
(Re)、220g,200h……セレクタ、220e,220f……レジス
タ、221−1〜221−7……セレクタ、231……第2の演
算回路(AU)、300−1〜300−17……セレクタ、310−
1〜310−16……遅延回路、303,304……メモリ、305…
…比較器、310−1〜310−16……遅延回路(Re)。
構成ブロック図、第2図は従来のテレビ会議用CODECの
構成ブロック図、第3図は第2図中のソース符号化回路
の構成図、第4図は従来の1次元DCTのデータフローを
示す図、第5図は従来の2次元DCTの構成例を示す図、
第6図は従来の2次Boothを用いた1行分のマトリクス
演算回路の構成ブロック図、第7図は第6図中のPeの構
成ブロック図、第8図(a)〜(c)は従来の動きベク
トル検出の説明図、第9図は従来の画像符号化装置の構
成ブロック図、第10図は第1図中のPUの構成ブロック
図、第11図は第10図中のPeの構成ブロック図、第12図
(a),(b)は第1図のメモリのデータ入出力を出す
図、第13図は第1図のDCTモード時のPU内タイムチャー
ト、第14図(a)〜(c)は第1図の基本ブロックと検
索用ブロックを示す図、第15図は第1図のMV検出モード
時のPU内タイムチャート、第16図は本発明の第2の実施
例を示す第1図中のPUの構成ブロック図、第17図は第16
図のMV検出モード時のPU内タイムチャート、第18図は第
16図における間引かれたベクトル候補地を示す図、第19
図は第3の実施例を示す第1図中の遅延回路の構成図、
第20図は本発明の第4の実施例を示す画像処理装置の構
成ブロック図である。 200−1〜200−16……プロセッサユニット(PU)、210
−1〜210−7……第1の演算回路(Pe)、213……係数
メモリ、214……バレルシフタ、215……符号反転器、21
6……絶対値差分器、217……累積加算器、220−1〜220
−16,220−1a,220−1b〜220−8a,220−8b……遅延回路
(Re)、220g,200h……セレクタ、220e,220f……レジス
タ、221−1〜221−7……セレクタ、231……第2の演
算回路(AU)、300−1〜300−17……セレクタ、310−
1〜310−16……遅延回路、303,304……メモリ、305…
…比較器、310−1〜310−16……遅延回路(Re)。
フロントページの続き (72)発明者 松菱 則嗣 東京都港区虎ノ門1丁目7番12号 沖電 気工業株式会社内 (56)参考文献 特開 平2−29088(JP,A)
Claims (12)
- 【請求項1】1フレーム内を複数のブロックに分割し、
その現ブロックと他のフレームとの比較によって動画像
の符号化を行う装置内の動きベクトル検出とマトリクス
変換を行う画像符号化方式において、 制御信号により、評価関数値あるいは少なくとも数ビッ
トの乗算を行ってその乗算結果を累積加する複数の第1
の演算回路と、 入力データを遅延させて前記第1の演算回路へ与える複
数の遅延回路と、 前記各第1の演算回路の演算結果を累積加算する第2の
演算回路とを、 有するプロセッサユニットを複数段設け、 マトリクス演算時には、前記第1の演算回路を用いて乗
算結果を累積加算し、その累積加算結果を前記第2の演
算回路によって桁合わせを行いながら累積加算を行い、
前記各プロセッサユニットにおいて演算結果となるマト
リクスの各要素を求め、 動き補償の動きベクトル検出時には、前記遅延回路によ
って前記現ブロックのデータを遅延させると共に、前記
他のフレームのデータを異なる2箇所から同時に入力し
てその一方のデータをセレクタで選択し、前記第1の演
算回路により、各ベクトルに対する評価関数値を求める
ことを特徴とする画像符号化方式。 - 【請求項2】請求項1記載の画像符号化方式において、 前記マトリクス演算時に、前記遅延回路により前記入力
データを遅延させて前記各第1の演算回路の演算結果を
時間的にずらして出力する画像符号化方式。 - 【請求項3】請求項1記載の画像符号化方式において、 前記マトリクス演算時には、前記第1の演算回路を用い
て、2次のブース法により展開されたマトリクス係数2
桁分の乗算を行ってその乗算結果を累積加算する画像符
号化方式。 - 【請求項4】請求項1記載の画像符号化方式において、 前記各第1の演算回路内に、検索用ブロックの1走査の
画素数と同数の遅延回路を設け、 前記動きベクトル検出時に前記現ブロックのデータを前
記第1の演算回路間に複数の該遅延回路を配置し動きベ
クトルの検出範囲を拡大する画像符号化方式。 - 【請求項5】請求項1記載の画像符号化方式において、 前記複数段のプロセッサユニットと、前記マトリクス演
算時において前記第2の演算回路の演算結果を格納する
メモリと、前記動き補償の動きベクトル検出時において
前記各第1の演算回路の演算結果を比較して動きベクト
ルの最適値を検出する比較器とを用い、 モードを切り替えることによって前記マトリクス演算ま
たは前記動きベクトルの検出を行う画像符号化方式。 - 【請求項6】請求項1記載の画像符号化方式において、 前記他のフレームから異なる2箇所のデータが入力され
る2つのデータの位置関係が前記現ブロックのデータの
幅分だけずれ、かつその2つのデータの一方を前記現ブ
ロックのデータの幅分だけ遅らせて前記セレクタに入力
する画像符号化方式。 - 【請求項7】請求項1記載の画像符号化方式において、 前記第1の演算回路は、モード切り替えの制御信号によ
って制御される係数メモリと、前記係数メモリ内のデー
タによって制御されるバレルシフタ及び符号反転器と、
絶対値差分器と、累積加算器とを有し、 前記マトリクス演算時には、入力データを前記バレルシ
フタ及び符号反転器で処理し、その処理したデータを前
記累積加算器で累積加算し、 前記動きベクトル検出時には、前記絶対値差分器の出力
を前記累積加算器で累積加算する画像符号化方式。 - 【請求項8】請求項2記載の画像符号化方式において、 2次のブース法によって展開して割り振られた前記第1
の演算回路を用い、該第1の演算回路の割り振られた次
数の低い方から順に演算結果を出力し、 前記第2の演算回路ではそれまでの累積加算結果を下位
の方向に2ビットシフトして累積加算を行う画像符号化
方式。 - 【請求項9】請求項4記載の画像符号化方式において、 前記遅延回路内に、遅延量を制御するセレクタを設け、
そのセレクタを用いて前記第1の演算回路間の入力デー
タの遅延数を数クロック又は1クロック遅らせる画像符
号化方式。 - 【請求項10】請求項5記載の画像符号化方式におい
て、 前記複数段のプロセッサユニットにより1次元の直交交
換を行ってその変換結果を前記メモリに格納し、更に該
メモリの内容に対し前記プロセッサユニットで直交変換
を行って2次元の直交変換結果を求める画像符号化方
式。 - 【請求項11】請求項9記載の画像符号化方式におい
て、 前記各遅延回路を分割した2つのレジスタで構成し、 前記マトリクス演算時には、前記2つのレジスタにそれ
ぞれ上位、下位のデータを格納して1クロック遅延する
レジスタとして用い、 前記動きベクトル検出時には、前記2つのレジスタを直
列接続して2クロック遅延するレジスタとして用いる画
像符号化方式。 - 【請求項12】請求項11記載の画像符号化方式におい
て、 前記各遅延回路内の入力段に、レジスタ及びセレクタを
設けて入力データを1クロックだけ遅延させる画像符号
化方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP18762590A JP2673034B2 (ja) | 1990-07-16 | 1990-07-16 | 画像符号化方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP18762590A JP2673034B2 (ja) | 1990-07-16 | 1990-07-16 | 画像符号化方式 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0477076A JPH0477076A (ja) | 1992-03-11 |
JP2673034B2 true JP2673034B2 (ja) | 1997-11-05 |
Family
ID=16209386
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP18762590A Expired - Fee Related JP2673034B2 (ja) | 1990-07-16 | 1990-07-16 | 画像符号化方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2673034B2 (ja) |
-
1990
- 1990-07-16 JP JP18762590A patent/JP2673034B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH0477076A (ja) | 1992-03-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2839950B2 (ja) | モーション・ディテクター | |
US5193004A (en) | Systems and methods for coding even fields of interlaced video sequences | |
US5305400A (en) | Method of encoding and decoding the video data of an image sequence | |
USRE35093E (en) | Systems and methods for coding even fields of interlaced video sequences | |
US6052706A (en) | Apparatus for performing fast multiplication | |
JP3436367B2 (ja) | デジタルビデオ信号プロセッサ装置 | |
JP3500634B2 (ja) | 動きベクトル検出装置 | |
EP0884686A2 (en) | Method and apparatus for performing discrete cosine transform and its inverse | |
JPH0865681A (ja) | 動きベクトル検出装置およびそれを使用した動き補償予測符号化システム | |
US6223193B1 (en) | Macroblock variance estimator for MPEG-2 video encoder | |
JPH10150666A (ja) | デジタル・ビデオ・データ・ストリームの圧縮方法及び探索プロセッサ | |
JPH1079947A (ja) | 動きベクトル検出装置 | |
JPH07115646A (ja) | 画像処理装置 | |
CN1115548A (zh) | 预测运动的一种方法和设备 | |
JP3401823B2 (ja) | 画像コーデック用プロセッサ | |
US6545727B1 (en) | Method for recognizing a progressive or an interlaced content in a video sequence | |
JP2673034B2 (ja) | 画像符号化方式 | |
JP3004687B2 (ja) | 符号化装置 | |
JP3004686B2 (ja) | 符号化回路及び画像符号化装置 | |
US6668087B1 (en) | Filter arithmetic device | |
JP3004688B2 (ja) | 符号化装置 | |
JPH04288790A (ja) | インタレース画像信号の予測符号化方法 | |
US6560286B1 (en) | Field frame motion design for digital video decoder | |
KR100255773B1 (ko) | 디지탈 티브이 수신 디코더 장치의 역 이산코사인변환기 | |
JPH0622301A (ja) | 画像符号化装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |