JP4154647B2 - データ処理装置およびデータ処理方法、並びにプログラムおよび記録媒体 - Google Patents

データ処理装置およびデータ処理方法、並びにプログラムおよび記録媒体 Download PDF

Info

Publication number
JP4154647B2
JP4154647B2 JP2002102400A JP2002102400A JP4154647B2 JP 4154647 B2 JP4154647 B2 JP 4154647B2 JP 2002102400 A JP2002102400 A JP 2002102400A JP 2002102400 A JP2002102400 A JP 2002102400A JP 4154647 B2 JP4154647 B2 JP 4154647B2
Authority
JP
Japan
Prior art keywords
block
dct
pixel
coefficient
data
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
Application number
JP2002102400A
Other languages
English (en)
Other versions
JP2003299098A (ja
Inventor
哲二郎 近藤
秀雄 中屋
俊彦 浜松
秀樹 大塚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2002102400A priority Critical patent/JP4154647B2/ja
Publication of JP2003299098A publication Critical patent/JP2003299098A/ja
Application granted granted Critical
Publication of JP4154647B2 publication Critical patent/JP4154647B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
本発明は、データ処理装置およびデータ処理方法、並びにプログラムおよび記録媒体に関し、特に、例えば、画像データをMPEG符号化した符号化データを、少ないメモリによって、高画質の画像データに復号することができるようにするデータ処理装置およびデータ処理方法、並びにプログラムおよび記録媒体に関する。
【0002】
【従来の技術】
MPEG(Moving Picture Experts Group)1や2等の符号化方式では、画像データが、8×8画素のブロック単位で、DCT(Discrete Cosine Transform)変換され、さらに量子化されることにより、符号化データとされる。このため、MPEGの規格に準拠したMPEGデコーダでは、符号化データが、逆量子化され、さらに逆DCT変換されることにより復号される。
【0003】
上述のように、MPEG符号化方式では、画像データが、ブロック単位でDCT変換され、その結果得られるDCT係数が量子化されるため、MPEGの規格に準拠したMPEGデコーダにおいて得られる復号画像には、符号化時の量子化の影響により、ブロック歪みやモスキートノイズといった各種の歪みが生じ、また、解像度が低下する。
【0004】
しかしながら、MPEGでは、復号画像に生じる各種の歪みを除去(低減)し、また、低下した解像度を向上させる方法については、何ら規定されていない。
【0005】
【発明が解決しようとする課題】
そこで、本件出願人は、画像データをDCT変換して量子化することにより符号化するMPEG符号化等によって得られた符号化データを、高画質の画像に復号する復号方法として、クラス分類適応処理を利用した方法を、先に提案している。
【0006】
クラス分類適応処理は、クラス分類処理と適応処理とからなり、クラス分類処理によって、データを、その性質に基づいてクラス分けし、各クラスごとに適応処理を施すものであり、適応処理は、以下のような手法のものである。
【0007】
即ち、例えば、いま、MPEG符号化された符号化データから、量子化されたDCT係数を得て、そのDCT係数を、元の画像に復号することとすると、適応処理では、例えば、量子化されたDCT係数と、所定のタップ係数との線形結合により、元の画素の予測値を求めることで、DCT係数が、元の画素値に復号される。
【0008】
具体的には、例えば、いま、ある画像を、タップ係数を求める学習の教師データとするとともに、その画像を、ブロック単位でDCT処理し、さらに量子化して得られるDCT係数を、学習の生徒データとして、教師データである画素の画素値yの予測値E[y]を、幾つかのDCT係数x1,x2,・・・の集合と、所定のタップ係数w1,w2,・・・の線形結合により規定される線形1次結合モデルにより求めることを考える。この場合、予測値E[y]は、次式で表すことができる。
【0009】
Figure 0004154647
【0010】
式(1)を一般化するために、タップ係数wjの集合でなる行列W、生徒データxijの集合でなる行列X、および予測値E[yj]の集合でなる行列Y’を、
【数1】
Figure 0004154647
で定義すると、次のような観測方程式が成立する。
【0011】
XW=Y’・・・(2)
ここで、行列Xの成分xijは、i件目の生徒データの集合(i件目の教師データyiの予測に用いる生徒データの集合)の中のj番目の生徒データを意味し、行列Wの成分wjは、生徒データの集合の中のj番目の生徒データとの積が演算されるタップ係数を表す。また、yiは、i件目の教師データを表し、従って、E[yi]は、i件目の教師データの予測値を表す。なお、式(1)の左辺におけるyは、行列Yの成分yiのサフィックスiを省略したものであり、また、式(1)の右辺におけるx1,x2,・・・も、行列Xの成分xijのサフィックスiを省略したものである。
【0012】
そして、この観測方程式に最小自乗法を適用して、元の画素値yに近い予測値E[y]を求めることを考える。この場合、教師データとなる真の画素値yの集合でなる行列Y、および画素値yに対する予測値E[y]の残差eの集合でなる行列Eを、
【数2】
Figure 0004154647
で定義すると、式(2)から、次のような残差方程式が成立する。
【0013】
XW=Y+E・・・(3)
【0014】
この場合、元の画素値yに近い予測値E[y]を求めるためのタップ係数wjは、自乗誤差
【数3】
Figure 0004154647
を最小にすることで求めることができる。
【0015】
従って、上述の自乗誤差をタップ係数wjで微分したものが0になる場合、即ち、次式を満たすタップ係数wjが、元の画素値yに近い予測値E[y]を求めるため最適値ということになる。
【0016】
【数4】
Figure 0004154647
Figure 0004154647
【0017】
そこで、まず、式(3)を、タップ係数wjで微分することにより、次式が成立する。
【0018】
【数5】
Figure 0004154647
Figure 0004154647
【0019】
式(4)および(5)より、式(6)が得られる。
【0020】
【数6】
Figure 0004154647
Figure 0004154647
【0021】
さらに、式(3)の残差方程式における生徒データxij、タップ係数wj、教師データyi、および残差eiの関係を考慮すると、式(6)から、次のような正規方程式を得ることができる。
【0022】
【数7】
Figure 0004154647
Figure 0004154647
【0023】
なお、式(7)に示した正規方程式は、行列(共分散行列)Aおよびベクトルvを、
【数8】
Figure 0004154647
で定義するとともに、ベクトルWを、数1で示したように定義すると、式
AW=v・・・(8)
で表すことができる。
【0024】
式(7)における各正規方程式は、生徒データxijおよび教師データyiのセットを、ある程度の数だけ用意することで、求めるべきタップ係数wjの数Jと同じ数だけたてることができ、従って、式(8)を、ベクトルWについて解くことで(但し、式(8)を解くには、式(8)における行列Aが正則である必要がある)、最適なタップ係数(ここでは、自乗誤差を最小にするタップ係数)wjを求めることができる。なお、式(8)を解くにあたっては、例えば、掃き出し法(Gauss-Jordanの消去法)などを用いることが可能である。
【0025】
以上のようにして、最適なタップ係数wjを求めておき、さらに、そのタップ係数wjを用い、式(1)により、元の画素値yに近い予測値E[y]を求めるのが適応処理である。
【0026】
なお、例えば、教師データとして、MPEG符号化する画像と同一画質の画像を用いるとともに、生徒データとして、その教師データをDCTおよび量子化して得られるDCT係数を用いた場合、タップ係数としては、MPEG符号化された画像データを、元の画像データに復号するのに、予測誤差が、統計的に最小となるものが得られることになる。
【0027】
従って、MPEG符号化を行う際の圧縮率を高くしても、即ち、量子化に用いる量子化ステップを粗くしても、適応処理によれば、予測誤差が、統計的に最小となる復号処理が施されることになり、実質的に、MPEG符号化された画像の復号処理と、その画質を向上させるための処理とが、同時に施されることになる。その結果、圧縮率を高くしても、復号画像の画質を高いレベルに維持することができる。
【0028】
また、例えば、教師データとして、MPEG符号化する画像よりも高画質の画像を用いるとともに、生徒データとして、その教師データの画質を、MPEG符号化する画像と同一画質に劣化させ、さらに、DCT変換および量子化して得られるDCT係数を用いた場合、タップ係数としては、MPEG符号化された画像データを、高画質の画像データに復号するのに、予測誤差が、統計的に最小となるものが得られることになる。
【0029】
従って、この場合、適応処理によれば、MPEG符号化された画像の復号処理と、その画質をより向上させるための処理とが、同時に施されることになる。なお、上述したことから、教師データまたは生徒データとなる画像の画質を変えることで、復号画像の画質を任意のレベルとするタップ係数を得ることができる。
【0030】
以上のように、クラス分類適応処理によれば、MPEG符号化された符号化データを、各種の歪みを十分に低減した、解像度の高い高画質の画像に変換することができる。
【0031】
ところで、クラス分類適応処理においては、教師データに対応する画像データを式(1)により予測するのに用いられる、生徒データに対応するデータ(以下、適宜、予測タップという)としてのDCT係数の数によって、必要なタップ係数の数が変動する。即ち、予測タップのタップ数が多くなるほど、必要なタップ数も多くなる。
【0032】
さらに、クラス分類適応処理では、式(8)の正規方程式をたててタップ係数を求める学習が、所定数のクラスごとに行われる。従って、必要なタップ係数の数は、クラスの数が多くなるほど多くなる。
【0033】
即ち、クラス分類適応処理において必要なタップ係数の数は、(予測タップのタップ数)×(クラスの数)となる。
【0034】
そして、DCT係数を、教師データとした画像データの画質に近い画像データに変換するには、基本的には、予測タップのタップ数も、クラスの数も多い方が良い。
【0035】
しかしながら、予測タップのタップ数やクラスの数を多くすると、クラス分類適応処理において必要なタップ係数の数も多くなり、そのタップ係数を記憶させておくためのメモリとして大容量のものが必要となる。
【0036】
本発明は、このような状況に鑑みてなされたものであり、少ないメモリによって、高画質の画像データを復号することができるようにするものである。
【0037】
【課題を解決するための手段】
本発明のデータ処理装置は、所定のブロック単位の画像データの画素のうち、復号される復号対象の画素である注目画素を、注目画素を含むブロックである注目ブロックの DCT 係数の性質に基づいて、複数のクラスのうち、注目ブロックの DCT 係数の性質を表すクラスにクラス分けするクラス分類手段と、注目ブロックのDCT係数と所定の変換係数とを用いた積和演算に用いられる所定の変換係数を生成する元となる種データであって、注目画素の位置に対応する注目ブロックの行と列におけるDCT変換の基底波形の値を表す種データどうしの積を演算することにより、所定の変換係数を生成するときに、種データにかける係数である、注目画素のクラスに対応する種重みデータによって種データを補正する種データ補正手段と、種データ補正手段によって補正された後の種データどうしの積を演算することより、所定の変換係数を生成する変換係数生成手段と、注目ブロックのDCT係数所定の変換係数との積和演算を行うことにより、注目画素の画素値を求める演算手段とを備え、種重みデータは、所定のタップ係数を求める学習の教師となる画像データである教師データを、複数のクラスのうちのいずれかのクラスにクラス分けし、教師データが所定のブロック単位でDCT変換されることにより得られたDCT係数を、学習の生徒となる生徒データとして、生徒データと所定のタップ係数との他の積和演算を行うことにより得られる教師データの予測値の予測誤差を、統計的に最小にする所定のタップ係数を、クラスごとに求める学習を行うことにより得られるクラスごとの所定のタップ係数と、種データどうしの積を演算することにより生成される他の変換係数との比を演算することにより、クラスごとに求められたものである
【0038】
本発明のデータ処理方法は、所定のブロック単位の画像データの画素のうち、復号される復号対象の画素である注目画素を、注目画素を含むブロックである注目ブロックの DCT 係数の性質に基づいて、複数のクラスのうち、注目ブロックの DCT 係数の性質を表すクラスにクラス分けするクラス分類ステップと、注目ブロックのDCT係数と所定の変換係数とを用いた積和演算に用いられる所定の変換係数を生成する元となる種データであって、注目画素の位置に対応する注目ブロックの行と列におけるDCT変換の基底波形の値を表す種データどうしの積を演算することにより、所定の変換係数を生成するときに、種データにかける係数である、注目画素のクラスに対応する種重みデータによって種データを補正する種データ補正ステップと、種データ補正ステップで補正された後の種データどうしの積を演算することより、所定の変換係数を生成する変換係数生成ステップと、注目ブロックのDCT係数所定の変換係数との積和演算を行うことにより、注目画素の画素値を求める演算ステップとを含み、種重みデータは、所定のタップ係数を求める学習の教師となる画像データである教師データを、複数のクラスのうちのいずれかのクラスにクラス分けし、教師データが所定のブロック単位でDCT変換されることにより得られたDCT係数を、学習の生徒となる生徒データとして、生徒データと所定のタップ係数との他の積和演算を行うことにより得られる教師データの予測値の予測誤差を、統計的に最小にする所定のタップ係数を、クラスごとに求める学習を行うことにより得られるクラスごとの所定のタップ係数と、種データどうしの積を演算することにより生成される他の変換係数との比を演算することにより、クラスごとに求められたものである
【0039】
本発明のプログラムは、所定のブロック単位の画像データの画素のうち、復号される復号対象の画素である注目画素を、注目画素を含むブロックである注目ブロックの DCT 係数の性質に基づいて、複数のクラスのうち、注目ブロックの DCT 係数の性質を表すクラスにクラス分けするクラス分類ステップと、注目ブロックのDCT係数と所定の変換係数とを用いた積和演算に用いられる所定の変換係数を生成する元となる種データであって、注目画素の位置に対応する注目ブロックの行と列におけるDCT変換の基底波形の値を表す種データどうしの積を演算することにより、所定の変換係数を生成するときに、種データにかける係数である、注目画素のクラスに対応する種重みデータによって種データを補正する種データ補正ステップと、種データ補正ステップで補正された後の種データどうしの積を演算することより、所定の変換係数を生成する変換係数生成ステップと、注目ブロックのDCT係数所定の変換係数との積和演算を行うことにより、注目画素の画素値を求める演算ステップとを含み、種重みデータは、所定のタップ係数を求める学習の教師となる画像データである教師データを、複数のクラスのうちのいずれかのクラスにクラス分けし、教師データが所定のブロック単位でDCT変換されることにより得られたDCT係数を、学習の生徒となる生徒データとして、生徒データと所定のタップ係数との他の積和演算を行うことにより得られる教師データの予測値の予測誤差を、統計的に最小にする所定のタップ係数を、クラスごとに求める学習を行うことにより得られるクラスごとの所定のタップ係数と、種データどうしの積を演算することにより生成される他の変換係数との比を演算することにより、クラスごとに求められたものである処理を、コンピュータに行わせ
【0040】
本発明の記録媒体は、所定のブロック単位の画像データの画素のうち、復号される復号対象の画素である注目画素を、注目画素を含むブロックである注目ブロックの DCT 係数の性質に基づいて、複数のクラスのうち、注目ブロックの DCT 係数の性質を表すクラスにクラス分けするクラス分類ステップと、注目ブロックのDCT係数と所定の変換係数とを用いた積和演算に用いられる所定の変換係数を生成する元となる種データであって、注目画素の位置に対応する注目ブロックの行と列におけるDCT変換の基底波形の値を表す種データどうしの積を演算することにより、所定の変換係数を生成するときに、種データにかける係数である、注目画素のクラスに対応する種重みデータによって種データを補正する種データ補正ステップと、種データ補正ステップで補正された後の種データどうしの積を演算することより、所定の変換係数を生成する変換係数生成ステップと、注目ブロックのDCT係数所定の変換係数との積和演算を行うことにより、注目画素の画素値を求める演算ステップとを含み、種重みデータは、所定のタップ係数を求める学習の教師となる画像データである教師データを、複数のクラスのうちのいずれかのクラスにクラス分けし、教師データが所定のブロック単位でDCT変換されることにより得られたDCT係数を、学習の生徒となる生徒データとして、生徒データと所定のタップ係数との他の積和演算を行うことにより得られる教師データの予測値の予測誤差を、統計的に最小にする所定のタップ係数を、クラスごとに求める学習を行うことにより得られるクラスごとの所定のタップ係数と、種データどうしの積を演算することにより生成される他の変換係数との比を演算することにより、クラスごとに求められたものである処理をコンピュータに行わせるプログラムが記録されてい
【0041】
本発明のデータ処理装置およびデータ処理方法、並びにプログラムおよび記録媒体においては、所定のブロック単位の画像データの画素のうち、復号される復号対象の画素である注目画素が、注目画素を含むブロックである注目ブロックの DCT 係数の性質に基づいて、複数のクラスのうち、注目ブロックの DCT 係数の性質を表すクラスにクラス分けされ、注目ブロックのDCT係数と所定の変換係数とを用いた積和演算に用いられる所定の変換係数を生成する元となる種データであって、注目画素の位置に対応する注目ブロックの行と列におけるDCT変換の基底波形の値を表す種データどうしの積を演算することにより、所定の変換係数を生成するときに、種データにかける係数である、注目画素のクラスに対応する種重みデータによって種データが補正され、その補正された後の種データどうしの積を演算することより、所定の変換係数が生成される。そして、注目ブロックのDCT係数所定の変換係数との積和演算を行うことにより、注目画素の画素値が求められる
【0042】
【発明の実施の形態】
以下、本発明の実施の形態について説明するが、その前に、MPEGに準拠した復号方式について、簡単に説明する。
【0043】
図1は、例えば、MPEG2方式で符号化された符号化データを、MPEGに準拠して復号するMPEGデコーダの構成例を示している。
【0044】
画像データをMPEG2方式で符号化することにより得られる符号化データ(ビデオストリーム)は、分離部1に供給される。分離部1は、符号化データから、コーデッドブロックパターン(Coded Block Pattern)(以下、適宜、CBPという)、DCTタイプ、量子化されたDCT係数のVLC(可変長符号化)コード、量子化スケール、動きベクトル、動き補償タイプ(frame motion type, field motion type)等を分離して出力する。
【0045】
DCT係数抽出/逆量子化部2は、分離部1が出力する、量子化されたDCT係数(以下、適宜、量子化DCT係数という)のVLCコード、量子化スケール、およびDCTタイプを受信し、DCT係数を復号する。即ち、DCT係数抽出/逆量子化部2は、分離部1が出力する量子化DCT係数のVLCコードを可変長復号し、8×8画素のブロックごとの量子化DCT係数を求める。さらに、DCT係数抽出/逆量子化部2は、ブロックごとの量子化DCT係数を、分離部1が出力する量子化スケールによって逆量子化し、ブロックごとのDCT係数を求める。DCT係数抽出/逆量子化部2で得られたブロックごとのDCT係数は、逆DCT変換部3に供給される。
【0046】
逆DCT変換部3は、DCT係数抽出/逆量子化部2からのブロックごとのDCT係数、即ち、8×8単位のDCT係数を逆DCT変換し、動き補償加算部6に供給する。
【0047】
ここで、図2Aに示すような8×8画素のブロックにおける画素値を、8行×8列の行列Xで表すとともに、図2Bに示すような8×8のブロックにおけるDCT係数を、8行×8列の行列Fで表すこととすると、2次元のDCT変換/逆DCT変換は、次式で表すことができる。
【0048】
CXCT=F・・・(9)
TFC=X・・・(10)
【0049】
ここで、上付のTは、転置を表す。また、Cは、8行×8列のDCT変換行列で、その第i+1行第j+1列のコンポーネントcijは、次式で表される。
【0050】
ij=Ai×cos((2j+1)×i×π/16)・・・(11)
【0051】
但し、式(11)におけるAiは、i=0のときは、A0=1/(2√2)であり、i≠0のときは、Ai=1/2である。また、iとjは、0乃至7の範囲の整数値である。
【0052】
式(9)は、画素値Xを、DCT係数Fに変換するDCT変換を表し、式(10)は、DCT係数Fを、画素値Xに変換する逆DCT変換を表す。
【0053】
従って、逆DCT変換部3では、式(10)の演算が行われることにより、8×8のDCT係数が、8×8の画素値に変換される。
【0054】
動き補償加算部6には、逆DCT変換部3が出力する逆DCT変換結果の他、分離部1が出力するCBPおよびDCTタイプが供給される。動き補償加算部6は、CBPやDCTタイプに基づき、必要に応じて、逆DCT変換部3からの逆DCT結果に対して、画像メモリ5に記憶された予測画像を加算することで、8×8の画素値のブロックを復号して出力する。
【0055】
即ち、MPEG符号化では、Iピクチャのブロックは、イントラ(intra)符号化され、Pピクチャのブロックは、イントラ符号化、または前方予測符号化され、Bピクチャのブロックは、イントラ符号化、前方予測符号化、後方予測符号化、または両方向予測符号化される。
【0056】
ここで、前方予測符号化では、符号化対象のブロックのフレーム(またはフィールド)より時間的に先行するフレーム(またはフィールド)の画像を参照画像として、その参照画像を動き補償することにより得られる、符号化対象のブロックの予測画像と、符号化対象のブロックとの差分が求められ、その差分値(以下、適宜、残差画像という)がDCT変換される。
【0057】
また、後方予測符号化では、符号化対象のブロックのフレームより時間的に後行するフレームの画像を参照画像として、その参照画像を動き補償することにより得られる、符号化対象のブロックの予測画像と、符号化対象のブロックとの差分が求められ、その差分値(残差画像)がDCT変換される。
【0058】
さらに、両方向予測符号化では、符号化対象のブロックのフレームより時間的に先行するフレームと後行するフレームの2フレーム(またはフィールド)の画像を参照画像として、その参照画像を動き補償することにより得られる、符号化対象のブロックの予測画像と、符号化対象のブロックとの差分が求められ、その差分値(残差画像)がDCT変換される。
【0059】
従って、ブロックが、ノンイントラ(non-intra)符号化(前方予測符号化、後方予測符号化、または両方向予測符号化)されている場合、逆DCT変換部3が出力する逆DCT変換結果は、残差画像(元の画像と、その予測画像との差分値)であり、動き補償加算部6は、この残差画像と、画像メモリ5に記憶された予測画像とを加算することで、ノンイントラ符号化されたブロックを復号する。
【0060】
一方、動き補償加算部6は、逆DCT変換部4が出力するブロックが、イントラ符号化されたものであった場合には、そのブロックを、そのまま復号結果とする。
【0061】
動き補償加算部6は、1フレーム(またはフィールド)分のブロックの復号結果、即ち、1フレーム(またはフィールド)の復号画像を得ると、その復号画像を、画像メモリ(I,Pピクチャ用画像メモリ)7と、ピクチャ選択部8に供給する。
【0062】
画像メモリ7は、動き補償加算部6から供給される復号画像が、IピクチャまたはPピクチャの画像である場合、その復号画像を、その後に復号される符号化データの参照画像として一時記憶する。なお、MPEG2では、Bピクチャは参照画像とされないことから、動き補償加算部6から供給される復号画像が、Bピクチャの画像である場合には、その復号画像は、画像メモリ7に記憶されない。
【0063】
ピクチャ選択部8は、動き補償加算部6が出力する復号画像、または画像メモリ7に記憶された復号画像のフレーム(またはフィールド)を、表示順に選択して出力する。即ち、MPEG2方式では、画像のフレーム(またはフィールド)の表示順と復号順(符号化順)とが一致していないため、ピクチャ選択部8は、復号順に並んでいる復号画像のフレーム(またはフィールド)を表示順に並べ替えて出力する。
【0064】
このようにして表示順の並びとされた復号画像は、例えば、図示せぬディスプレイ等に供給されて表示される。
【0065】
一方、動き補償部4は、分離部1が出力する動きベクトルや動き補償タイプを受信し、その動き補償タイプに基づいて、参照画像となるフレーム(またはフィールド)を、画像メモリ7から読み出す。さらに、動き補償部4は、画像メモリ7から読み出した参照画像に対して、分離部1が出力する動きベクトルにしたがった動き補償を施し、その結果得られる予測画像を、画像メモリ5に供給して記憶させる。
【0066】
このようにして画像メモリ5に記憶された予測画像は、上述したように、動き補償加算部6において、逆DCT変換部3が出力する残差画像と加算される。
【0067】
なお、図1のMPEGデコーダにおいては、各ブロックにおける遅延時間を吸収するためのタイミング調整用のメモリと同期信号を必要とするが、その図示は、省略してある。後述する画像処理装置や学習装置においても同様である。
【0068】
次に、図3は、MPEG符号化された符号化データとしてのビデオストリームを、逆DCT変換せずに復号する画像処理装置の構成例を示している。なお、図中、図1のMPEGデコーダにおける場合と対応する部分については、同一の符号を付してあり、以下では、その説明は、適宜省略する。即ち、図3の画像処理装置は、逆DCT変換部3に代えて、FT(Frequency-Time)変換部10が設けられている他は、図1のMPEGデコーダと同様に構成されている。
【0069】
図1のMPEGデコーダにおいては、逆DCT変換部3において、MPEG符号化された符号化データとしてのビデオストリームに含まれるブロックごとのDCT係数を逆DCT変換し、これにより、周波数領域のデータとしてのDCT係数を、時間領域または空間領域のデータ(以下、適宜、時空間領域のデータという)としての画素値に変換するようになっているが、図3の画像処理装置では、FT変換部10において、ブロックごとのDCT係数が、画素値に変換されるようになっている。
【0070】
即ち、図4は、図3のFT変換部10の構成例を示している。
【0071】
モード制御部11は、DCT係数抽出/逆量子化部2(図3)から供給されるDCT係数のブロックを、順次、注目ブロックとし、その注目ブロックのDCT係数を、符号制御部12に供給する。さらに、モード制御部11は、注目ブロックの各画素を、例えば、いわゆるラスタスキャン順に、順次、注目画素とする。
【0072】
さらに、モード制御部11は、注目ブロックにおける注目画素の位置を認識し、その位置を表す情報を画素位置モードとする。
【0073】
即ち、本実施の形態では、MPEG符号化された符号化データ(ビデオストリーム)を復号対象としており、MPEGでは、ブロックは、横×縦が8×8の画素またはDCT係数で構成される。従って、ここでは、ブロックにおける画素の位置としては、64カ所の位置が存在し、モード制御部11は、その64カ所の各位置を表す情報を、画素位置モードとする。
【0074】
なお、ここでは、ブロックの64カ所の位置における、例えば、ラスタスキャン順で、n番目の位置を、画素位置モード#n−1と表すこととする。本実施の形態では、0乃至63の64モードの画素位置モードが存在する。
【0075】
モード制御部11は、さらに、注目画素の画素位置モードを、例えば、1/4に縮退し、ブロックにおける画素の数よりも総数が少ない画素位置モードである縮退画素位置モードを得て、種データ記憶部13に供給する。ここで、本実施の形態では、64モードの画素位置モードが存在するから、縮退画素位置モードは、16モード(64モード/4)だけ存在することとなる。
【0076】
また、モード制御部11は、後述する注目画素の領域情報を得て、その領域情報に基づき、符号制御部12を制御する。
【0077】
符号制御部12は、モード制御部11から供給される領域情報に基づき、やはり、モード制御部11から供給される注目ブロックのDCT係数の符号を操作し、積和演算部15に出力する。
【0078】
種データ記憶部13は、周波数領域のデータであるDCT係数を、時空間領域のデータである画素値に変換するのに用いられる変換係数を生成する元となる種データを、縮退画素位置モードと対応付けて記憶しており、モード制御部11から供給される注目画素の縮退画素位置モードに対応する種データを、変換係数生成部14に供給する。
【0079】
変換係数生成部14は、種データ記憶部13から供給される種データから、変換係数を生成し、積和演算部15に供給する。積和演算部15は、変換係数生成部14から供給される変換係数と、符号制御部12から供給される注目ブロックのDCT係数とを用いた積和演算を行い、その積和演算結果を、注目画素の復号画素値として出力する。
【0080】
以上のように構成されるFT変換部10では、周波数領域のデータであるDCT係数が、時空間領域のデータである画素値に変換される。従って、FT変換部10における処理は、周波数(Frequency)と時間(Time)の頭文字をとって、FT変換と呼ぶことができる。
【0081】
なお、逆DCT変換を表す式(10)によれば、注目ブロックのDCT係数をコンポーネントとする8×8の行列Fの左側から、DCT変換行列Cの転置行列である8×8の行列CTを乗算し、その乗算の結果得られる8×8の行列の右側から、8×8のDCT変換行列Cを乗算することにより、8×8の画素値の行列Xが求められる。
【0082】
これに対して、FT変換部10では、画素位置モード#nの画素の画素値Lnが、原理的には、次式の積和演算によって求められる。
【0083】
n=Fn,0×f0+Fn,1×f1+・・・+Fn,63×f63・・・(12)
【0084】
但し、fi-1は、注目ブロックの64個のDCT係数のシーケンス(例えば、ラスタスキャン順のシーケンス)のうちの、先頭からi番目のDCT係数を表す。また、Fn,iは、画素位置モード#nの画素の画素値を求めるのに、注目ブロックの64個のDCT係数のシーケンスの先頭からi番目のDCT係数fi-1と乗算される変換係数を表す。
【0085】
式(10)の左辺の行列演算CTFCによって、8×8の画素値の行列Xを求めることは、その行列Xのある1つの画素だけに注目すれば、式(12)を計算することに対応する。従って、FT変換部10で行われるFT変換と、図1の逆DCT変換部3で行われる逆DCT変換とは、等価である。
【0086】
但し、図1の逆DCT変換部3において、式(10)の逆DCT変換を行うためには、8行×8列のDCT変換行列Cのコンポーネントcij、即ち、64個のコンポーネントc00乃至c77を記憶しておく必要がある。これに対して、FT変換部10では、変換係数生成部14において、後述するように、種データどうしの積を計算することによって、式(12)の64個の変換係数Fn,0乃至F63が生成されるが、その変換係数の生成のために、種データ記憶部13に記憶させておく種データの数が、DCT変換行列Cの64個のコンポーネントcijよりも少ないため、DCT係数を画素値に変換するのに必要なデータを記憶させる種データ記憶部13として、記憶容量の小さいメモリを採用することができる。
【0087】
次に、図5乃至図10を参照して、図4のモード制御部11による画素位置モードの縮退(画素位置モードの縮退画素位置モードへの変換)と、符号制御部12によるDCT係数の符号の操作について説明する。
【0088】
モード制御部11は、注目画素が、注目ブロックにおける複数の領域のうちのいずれに位置するかによって、その注目画素の画素位置モードを縮退画素位置モードに変換(縮退)する。
【0089】
即ち、モード制御部11は、注目ブロックを、垂直方向と水平方向にそれぞれ2等分して得られる左上、右上、左下、右下の4つの4×4の領域のうちのいずれの領域に、注目画素が位置するかを判定する。
【0090】
注目画素が位置する領域(以下、適宜、注目領域という)が、注目ブロックの左上の領域(左上領域)である場合、モード制御部11は、注目ブロックにおける注目画素の位置を表す情報を、縮退画素位置モードとして出力する。即ち、この場合、モード制御部11は、例えば、図5Aに示すように、注目ブロックの4×4の左上領域のいずれに、注目画素が位置するかによって、0乃至15の16モードの縮退画素位置モードのうちのいずれかを、注目画素の縮退画素位置モードとして出力する。ここで、図5Aの実施の形態では、4×4の左上領域のラスタスキャン順に、0から15までの縮退画素位置モードが割り当てられている。即ち、例えば、いま、注目ブロックの左からx番目で、上からy番目の画素を、p(x,y)と表すこととすると、左上領域に位置する画素p(1,1),p(2,1),p(3,1),p(4,1),p(1,2),p(2,2),p(3,2),p(4,2),p(1,3),p(2,3),p(3,3),p(4,3),p(1,4),p(2,4),p(3,4),p(4,4)については、縮退画素位置モード#0,#1,#2,#3,#4,#5,#6,#7,#8,#9,#10,#11,#12,#13,#14,#15が、それぞれ出力される。
【0091】
さらに、注目領域が左上領域である場合には、モード制御部11は、その旨を表す領域情報を、符号制御部12に供給する。符号制御部12は、注目領域が左上領域である旨の領域情報を受信すると、モード制御部11から供給される注目ブロックの8×8のDCT係数の符号を、図5Bに示すように、特に操作せず、そのままにして、そのDCT係数を、そのまま積和演算部15に供給する。
【0092】
なお、図5Bにおける数字は(図6B、図9B、および図10Bにおいても同様)、注目ブロックの64個のDCT係数を、例えば、ラスタスキャン順のシーケンスに並べた場合の、先頭からi番目のDCT係数をfi-1と表したときの、そのDCT係数fi-1のサフィックスi−1を表す。
【0093】
積和演算部15は、縮退画素位置モードが#n’のときには、その縮退画素位置モード#n’の画素の画素値を求めるための64個の変換係数Fn',0,Fn',1,・・・,Fn',63と、符号制御部12から供給される注目ブロックの64個のDCT係数f0,f1,・・・,f63との積和演算を行い、その積和演算結果を、注目画素の復号結果とする。
【0094】
従って、左上領域に位置する注目画素の縮退画素位置モードを#n’とすると、積和演算部15において、その注目画素の画素値Ln'は、式(12)に対応する次式にしたがって求められる。
【0095】
n'=Fn',0×f0+Fn',1×f1+・・・+Fn',63×f63・・・(13)
【0096】
次に、注目領域が、注目ブロックの右上の領域(右上領域)である場合、モード制御部11は、注目ブロックを左右に2等分する線(以下、適宜、垂直分割線という)について、注目画素と線対称の位置にある注目ブロックの左上領域における画素の位置を表す情報としての縮退画素位置モードを、注目画素の縮退画素位置モードとして出力する。即ち、モード制御部11は、例えば、図6Aに示すように、注目ブロックの4×4の右上領域のいずれに、注目画素が位置するかによって、0乃至15の16モードの縮退画素位置モードのうちのいずれかを、注目画素の縮退画素位置モードとして出力する。従って、右上領域に位置する画素p(8,1),p(7,1),p(6,1),p(5,1),p(8,2),p(7,2),p(6,2),p(5,2),p(8,3),p(7,3),p(6,3),p(5,3),p(8,4),p(7,4),p(6,4),p(5,4)については、左上領域に位置する画素p(1,1)乃至p(4,4)における場合と同様に、縮退画素位置モード#0乃至#15が、それぞれ出力される。
【0097】
さらに、注目領域が右上領域である場合には、モード制御部11は、その旨を表す領域情報を、符号制御部12に供給する。符号制御部12は、注目領域が右上領域である旨の領域情報を受信すると、図6Bに示すように、モード制御部11から供給される注目ブロックの8×8のDCT係数のうち、注目ブロックの偶数列(最左列を第1列とする)に位置するものの符号を反転し、その結果得られるDCT係数を、積和演算部15に供給する。
【0098】
積和演算部15は、縮退画素位置モードが#n’のときには、その縮退画素位置モード#n’の画素の画素値を求めるための64個の変換係数Fn',0,Fn',1,・・・,Fn',63と、符号制御部12から供給される注目ブロックの64個のDCT係数f0,−f1,・・・,−f63との積和演算を行い、その積和演算結果を、注目画素の復号結果とする。
【0099】
従って、右上領域に位置する注目画素の縮退画素位置モードを#n’とすると、積和演算部15において、その注目画素の画素値Ln'は、式(12)に対応する次式にしたがって求められる。
【0100】
n'=Fn',0×f0+Fn',1×(−f1)+・・・+Fn',63×(−f63)・・・(14)
【0101】
なお、式(14)においては、DCT係数を構成する注目ブロックの64個のDCT係数のうち、偶数列に位置するもの(以下、適宜、偶数列DCT係数という)に対して、(−1)が乗算されることにより、その偶数列DCT係数の符号が反転されている(+から−、または−から+にされている)。
【0102】
ここで、注目領域が、右上領域である場合、モード制御部11は、上述のように、垂直分割線について、注目画素と線対称の位置にある左上領域における画素(以下、適宜、垂直線対称画素という)の縮退画素位置モードを、注目画素の縮退画素位置モードとして採用することにより、画素位置モードを縮退している。
【0103】
このように、右上領域の画素の縮退画素位置モード#n’を、その垂直線対称画素の縮退画素位置モード#n’と兼用する場合、右上領域の画素と、その垂直線対称画素とは、同一の変換係数Fn',0,Fn',1,・・・,Fn',63を用いて求められることになる。
【0104】
即ち、右上領域の画素と、その垂直線対称画素とは、垂直分割線に対して左右対称となる位置関係を有し、右上領域の画素の画素値は、その位置関係が左右対称になっている垂直線対称画素と同一の縮退画素位置モード#n’に対応する変換係数Fn',0乃至Fn',63を用いて求められる。この場合、右上領域の画素の位置におけるDCT係数の基底となるコサイン波形には、その垂直線対称画素の位置におけるDCT係数の基底となるコサイン波形の左右を反転したコサイン波形が割り当てられることになる。このため、右上領域の画素の画素値を求める場合には、式(14)に示したように、偶数列DCT係数の符号を反転することとしている。
【0105】
ここで、図7は、偶数列DCT係数となっているDCT係数の1つであるf1の基底となっているコサイン波形を示しており、図8は、偶数列DCT係数ではないDCT係数の1つであるf2の基底となっているコサイン波形を示している。
【0106】
8×8のDCT係数のブロックについて、左上のDCT係数の座標を原点として、水平方向の周波数に対応する横方向の座標をuと、垂直方向の周波数に対応する縦方向の座標をvと、それぞれ表すとともに、8×8の画素値のブロックについて、左上の画素の座標を原点として、水平方向の位置に対応する横方向の座標をiと、垂直方向の位置に対応する縦方向の座標をjと、それぞれ表すこととすると、ブロックのある位置(i,j)における水平方向または垂直方向の基底波形(DCT係数の基底となるコサイン波形)の値は、式(11)から、Au×cos((2j+1)×u×π/16)またはAv×cos((2i+1)×v×π/16)で、それぞれ表される。なお、いまの場合、i,j,u,vは、0乃至7の範囲の整数値をとる。
【0107】
従って、図7Aに示す偶数列DCT係数f1の水平方向の基底のコサイン波形は、図7Bにおいて実線で示すものとなる。このコサイン波形は、その左右を反転すると、図7Bにおいて点線で示す波形となり、この左右反転波形(点線の波形)は、元のコサイン波形(実線の波形)の符号を反転したもの(−1倍したもの)となる。
【0108】
一方、図8Aに示す偶数列DCT係数でないDCT係数f2の基底のコサイン波形は、図8Bにおいて実線で示すものとなる。このコサイン波形は、その左右を反転しても、元の図8Bに実線で示す波形に一致する。
【0109】
従って、時空間領域(ここでは、空間領域)において、右上領域の画素を、その垂直線対称画素と対応させることは、周波数領域において、偶数列DCT係数の基底のコサイン波形の符号を反転させることに相当する。
【0110】
このため、右上領域の画素の画素値を、縮退画素位置モード#n’に対応する変換係数Fn',0,Fn',1,・・・,Fn',63によって求める場合には、式(14)に示したように、偶数列DCT係数の符号が反転される。
【0111】
なお、上述のように、偶数列DCT係数でないDCT係数の基底のコサイン波形は、その左右を反転しても、元のコサイン波形に一致するので、偶数列DCT係数でないDCT係数については、符号を反転する必要はない。
【0112】
次に、注目領域が、注目ブロックの左下の領域(左下領域)である場合、モード制御部11は、注目ブロックを上下に2等分する線(以下、適宜、水平分割線という)について、注目画素と線対称の位置にある注目ブロックの左上領域における画素の位置を表す情報としての縮退画素位置モードを、注目画素の縮退画素位置モードとして出力する。即ち、モード制御部11は、例えば、図9Aに示すように、注目ブロックの4×4の左下領域のいずれに、注目画素が位置するかによって、0乃至15の16モードの縮退画素位置モードのうちのいずれかを、注目画素の縮退画素位置モードとして出力する。従って、左下領域に位置する画素p(1,8),p(2,8),p(3,8),p(4,8),p(1,7),p(2,7),p(3,7),p(4,7),p(1,6),p(2,6),p(3,6),p(4,6),p(1,5),p(2,5),p(3,5),p(4,5)については、左上領域に位置する画素p(1,1)乃至p(4,4)における場合と同様に、縮退画素位置モード#0乃至#15が、それぞれ出力される。
【0113】
さらに、注目領域が左下領域である場合には、モード制御部11は、その旨を表す領域情報を、符号制御部12に供給する。符号制御部12は、注目領域が左下領域である旨の領域情報を受信すると、図9Bに示すように、モード制御部11から供給される注目ブロックの8×8のDCT係数のうち、注目ブロックの偶数行(最上行を第1行とする)に位置するものの符号を反転し、その結果得られるDCT係数を、積和演算部15に供給する。
【0114】
積和演算部15は、縮退画素位置モードが#n’のときには、その縮退画素位置モード#n’の画素の画素値を求めるための64個の変換係数Fn',0,Fn',1,・・・,Fn',63と、符号制御部12から供給される注目ブロックの64個のDCT係数f0,f1,・・・,−f63との積和演算を行い、その積和演算結果を、注目画素の復号結果とする。
【0115】
従って、左下領域に位置する注目画素の縮退画素位置モードを#n’とすると、積和演算部15において、その注目画素の画素値Ln'は、式(12)に対応する次式にしたがって求められる。
【0116】
n'=Fn',0×f0+Fn',1×f1+・・・+Fn',63×(−f63)・・・(15)
【0117】
なお、式(15)においては、DCT係数を構成する注目ブロックの64個のDCT係数のうち、偶数行に位置するもの(以下、適宜、偶数行DCT係数という)に対して、(−1)が乗算されることにより、その偶数行DCT係数の符号が反転されている。
【0118】
ここで、注目領域が、左下領域である場合、モード制御部11は、上述のように、水平分割線について、注目画素と線対称の位置にある左上領域における画素(以下、適宜、水平線対称画素という)の縮退画素位置モードを、注目画素の縮退画素位置モードとして採用することにより、画素位置モードを縮退している。
【0119】
このように、左下領域の画素の縮退画素位置モードを、その水平線対称画素の縮退画素位置モードと兼用する場合、左下領域の画素と、その水平線対称画素とは、同一の変換係数Fn',0,Fn',1,・・・,Fn',63を用いて求められることになる。
【0120】
即ち、左下領域の画素と、その水平線対称画素とは、水平分割線に対して上下対称となる位置関係を有し、左下領域の画素の画素値は、その位置関係が上下対称になっている水平線対称画素と同一の縮退画素位置モードに対応する変換係数Fn',0乃至Fn',63を用いて求められる。この場合、左下領域の画素の位置におけるDCT係数の基底となるコサイン波形には、その水平線対称画素の位置におけるDCT係数の基底となるコサイン波形の上下を反転したコサイン波形が割り当てられることになる。このため、左下領域の画素の画素値を求める場合には、式(15)に示したように、偶数行DCT係数の符号を反転することとしている。
【0121】
即ち、偶数行DCT係数の基底のコサイン波形は、その上下を反転すると、図7Bに示した偶数列DCT係数における場合と同様に、元のコサイン波形の符号を反転したもの(−1倍したもの)となる。
【0122】
一方、偶数行DCT係数でないDCT係数の基底のコサイン波形は、その上下を反転すると、図8Bに示した偶数列DCT係数でないDCT係数における場合と同様に、元の波形に一致する。
【0123】
従って、空間領域において、左下領域の画素を、その水平線対称画素と対応させることは、周波数領域において、偶数行DCT係数の基底のコサイン波形の符号を反転させることに相当する。
【0124】
このため、左下領域の画素の画素値を、縮退画素位置モード#n’に対応する変換係数Fn',0,Fn',1,・・・,Fn',63によって求める場合には、式(15)に示したように、偶数行DCT係数の符号が反転される。
【0125】
なお、上述のように、偶数行DCT係数でないDCT係数の基底のコサイン波形は、その上下を反転しても、元のコサイン波形に一致するので、偶数行DCT係数でないDCT係数については、符号を反転する必要はない。
【0126】
次に、注目領域が、注目ブロックの右下の領域(右下領域)である場合、モード制御部11は、注目ブロックの垂直分割線と水平分割線との交点(以下、適宜、ブロック中心点という)について、注目画素と点対称の位置にある注目ブロックの左上領域における画素の位置を表す情報としての縮退画素位置モードを、注目画素の縮退画素位置モードとして出力する。即ち、モード制御部11は、例えば、図10Aに示すように、注目ブロックの4×4の右下領域のいずれに、注目画素が位置するかによって、0乃至15の16モードの縮退画素位置モードのうちのいずれかを、注目画素の縮退画素位置モードとして出力する。従って、右下領域に位置する画素p(8,8),p(7,8),p(6,8),p(5,8),p(8,7),p(7,7),p(6,7),p(5,7),p(8,6),p(7,6),p(6,6),p(5,6),p(8,5),p(7,5),p(6,5),p(5,5)については、左上領域に位置する画素p(1,1)乃至p(4,4)における場合と同様に、縮退画素位置モード#0乃至#15が、それぞれ出力される。
【0127】
さらに、注目領域が右下領域である場合には、モード制御部11は、その旨を表す領域情報を、符号制御部12に供給する。符号制御部12は、注目領域が右下領域である旨の領域情報を受信すると、図10Bに示すように、モード制御部11から供給される注目ブロックの8×8のDCT係数のうち、偶数列DCT係数の符号を反転するとともに、偶数行DCT係数の符号を反転し、積和演算部15に供給する。
【0128】
従って、この場合、注目ブロックの8×8のDCT係数のうち、図10Bに影を付して示す注目ブロックの偶数列DCT係数にのみなっているものと、偶数行DCT係数にのみなっているものの符号が反転されることになる。即ち、この場合、注目ブロックのDCT係数のうち、偶数列DCT係数にもなっており、偶数行DCT係数にもなっているものは、符号が2回反転されるため、結局、元の符号に戻される。
【0129】
積和演算部15は、縮退画素位置モードが#n’のときには、その縮退画素位置モード#n’の画素の画素値を求めるための64個の変換係数Fn',0,Fn',1,・・・,Fn',63と、符号制御部12から供給される注目ブロックの64個のDCT係数f0,−f1,・・・,f63との積和演算を行い、その積和演算結果を、注目画素の復号結果とする。
【0130】
従って、右下領域に位置する注目画素の縮退画素位置モードを#n’とすると、積和演算部15において、その注目画素の画素値Ln'は、式(12)に対応する次式にしたがって求められる。
【0131】
n'=Fn',0×f0+Fn',1×(−f1)+・・・+Fn',63×f63・・・(16)
【0132】
なお、式(16)においては、DCT係数を構成する注目ブロックの64個のDCT係数のうち、偶数列DCT係数と偶数行DCT係数の両方に対して、(−1)が乗算されることにより、偶数列DCT係数または偶数行DCT係数のうちのいずれか一方のみになっているDCT係数の符号が反転されている。
【0133】
ここで、注目領域が、右下領域である場合、モード制御部11は、上述のように、ブロック中心点について、注目画素と点対称の位置にある左上領域における画素(以下、適宜、点対称画素という)の縮退画素位置モードを、注目画素の縮退画素位置モードとして採用することにより、画素位置モードを縮退している。
【0134】
このように、右下領域の画素の縮退画素位置モードを、その点対称画素の縮退画素位置モードと兼用する場合、右下領域の画素と、その点対称画素とは、同一の変換係数Fn',0,Fn',1,・・・,Fn',63を用いて求められることになる。
【0135】
即ち、右下領域の画素と、その点対称画素とは、ブロック中心点に対して点対称となる位置関係を有し、即ち、垂直分割線に対して線対称に移動し、さらに、水平分割線に対して線対称に移動した位置関係を有し、右下領域の画素の画素値は、その位置関係が点対称になっている点対称画素と同一の縮退画素位置モードに対応する変換係数Fn',0乃至Fn',63を用いて求められる。。従って、右下領域の画素の位置におけるDCT係数の基底となるコサイン波形には、その点対称画素の位置におけるDCT係数の基底となるコサイン波形の左右を反転し、さらに、上下を反転したコサイン波形が割り当てられることになる。このため、右下領域の画素の画素値を求める場合には、式(16)に示したように、偶数列DCT係数の符号を反転し、さらに偶数行DCT係数の符号を反転することとしている。
【0136】
即ち、上述したように、偶数列DCT係数の基底のコサイン波形は、その左右を反転すると、元のコサイン波形の符号を反転したものとなり、偶数行DCT係数の基底のコサイン波形は、その上下を反転すると、元のコサイン波形の符号を反転したものとなる。
【0137】
従って、空間領域において、右下領域の画素を、その点対称画素と対応させることは、周波数領域において、偶数行DCT係数の基底のコサイン波形の符号を反転させるとともに、偶数行DCT係数の基底のコサイン波形の符号を反転させることに相当する。
【0138】
このため、左下領域の画素の画素値を、縮退画素位置モード#n’に対応する変換係数Fn',0,Fn',1,・・・,Fn',63によって求める場合には、式(16)に示したように、偶数列DCT係数にのみなっているDCT係数と、偶数行DCT係数にのみなっているDCT係数の符号が反転される。
【0139】
なお、偶数列DCT係数でもあり、偶数行DCT係数でもあるDCT係数については、符号の反転が2度行われることにより、結局、元の符号に戻るため、符号の反転を行う必要はない。
【0140】
ここで、上述の場合には、符号制御部12において、モード制御部11が出力するDCT係数の符号を操作するようにしたが、符号制御部12では、変換係数生成部14が出力する変換係数の符号を操作するようにし、積和演算部15において、実質的に、式(13)乃至式(16)の積和演算が行われるようにすることも可能である。
【0141】
次に、図11を参照して、図4の種データ記憶部13に記憶される種データについて説明する。
【0142】
上述したように、8×8のDCT係数のブロックについて、左上のDCT係数の座標を原点として、水平方向の周波数に対応する横方向の座標をuと、垂直方向の周波数に対応する縦方向の座標をvと、それぞれ表すとともに、8×8の画素値のブロックについて、左上の画素の座標を原点として、水平方向の位置に対応する横方向の座標をiと、垂直方向の位置に対応する縦方向の座標をjと、それぞれ表すこととすると、ブロックのある位置(i,j)における水平方向または垂直方向の基底波形(DCT係数の基底となるコサイン波形)の値は、式(11)から、Au×cos((2j+1)×u×π/16)またはAv×cos((2i+1)×v×π/16)で、それぞれ表される。
【0143】
そして、ブロックの座標(u,v)(左からu+1番目で、上からv+1番目)に位置するDCT係数は、そのブロックの画素における水平方向の周波数u(正確には、uに相当する周波数)の空間周波数成分と、垂直方向の周波数v(正確には、vに相当する周波数)の空間周波数成分との積であるから、そのブロックの空間領域における水平方向の周波数uの空間周波数成分と、垂直方向の周波数vの空間周波数成分を表す。
【0144】
いま、ブロックのある位置(i,j)における、ある周波数uの水平方向の基底波形Au×cos((2j+1)×u×π/16)の値と、ある周波数vの垂直方向の基底波形Av×cos((2i+1)×v×π/16)の値との積を、F(i,j,u,v)と表すこととすると、ブロックのある位置(i,j)の画素の画素値L(i,j)は、そのブロックの各位置(u,v)のDCT係数f(u,v)と、各周波数u,vについてのF(i,j,u,v)との、次式のような積和演算によって求めることができる。
【0145】
L(i,j)=Σ(F(i,j,u,v)×f(u,v))・・・(17)
但し、式(17)において、Σは、u,vを、それぞれ0乃至7の整数値に代えてのサメーションを表す。
【0146】
ここで、式(17)におけるF(i,j,u,v)とf(u,v)は、式(12)におけるFn,iとfi-1に、それぞれ等価なものであり、図4の積和演算部15では、原理的には、式(17)の積和演算によって、画素値が求められる。
【0147】
従って、式(17)における、DCT係数f(u,v)に対する係数F(i,j,u,v)が、変換係数生成部14で生成される変換係数となるが、この変換係数F(i,j,u,v)としては、ある位置(i,j)の画素の画素値を求めるのに、uとvが、それぞれ0乃至7の値のときのもの、即ち、64個の変換係数F(i,j,0,0)乃至F(i,j,7,7)が必要となる。
【0148】
よって、ブロックの8×8画素の画素値を復号するには、その64(=8×8)の各位置の画素について、それぞれ、64個の変換係数F(i,j,u,v)が必要となる。即ち、DCT係数のブロックを、画素値のブロックに変換(復号)するには、64×64個の変換係数F(i,j,u,v)が必要となる。
【0149】
しかしながら、図4のFT変換部10において、このような64×64個の多数の変換係数F(i,j,u,v)を記憶しておくのでは、大容量のメモリが必要となる。
【0150】
そこで、図4のFT変換部10では、変換係数生成部14において、種データ記憶部13に記憶された種データから、変換係数が生成される。
【0151】
即ち、式(17)の変換係数F(i,j,u,v)は、上述したように、周波数uの水平方向の基底波形Au×cos((2j+1)×u×π/16)の値と、周波数uの垂直方向の基底波形Av×cos((2i+1)×v×π/16)の値との積として求められる。
【0152】
いまの場合、i,j,u,vは、いずれも、0乃至7の整数値をとるから、水平方向の基底波形Au×cos((2j+1)×u×π/16)も、垂直方向の基底波形Av×cos((2i+1)×v×π/16)も、64(=8×8)の値を取り得る。また、水平方向の基底波形Au×cos((2j+1)×u×π/16)がとる値と、垂直方向の基底波形Av×cos((2i+1)×v×π/16)がとる値とは同一であるから、水平方向の基底波形Au×cos((2j+1)×u×π/16)がとる64個の値か、または、垂直方向の基底波形Av×cos((2i+1)×v×π/16)がとる64個の値を、種データとして、種データ記憶部13(図4)に記憶させておくことで、変換係数生成部14(図4)では、式(17)によって画素値を求めるための変換係数F(i,j,u,v)を得ることができる。
【0153】
ところで、いま、水平方向と垂直方向のうちの、例えば、水平方向の空間周波数にのみ注目し、DCT変換における水平方向の、周波数uの基底波形Au×cos((2j+1)×u×π/16)を、guと表すこととすると、uが0,1,2,3,4,5,6,7である場合の基底波形g0,g1,g2,g3,g4,g5,g6,g7は、それぞれ、図11A、図11B、図11C、図11D、図11E、図11F、図11G、図11Hに示すようになる。
【0154】
なお、図11A乃至図11Hにおいて、横軸のjがとる整数値0乃至7は、ブロックの上からj+1番目の画素の中心位置を表す。
【0155】
図11A乃至図11Hから、水平方向の基底波形guは、周波数uが偶数(0,2,4,6)の場合は、空間領域において、ブロックの中心に対して線対称になり、周波数uが奇数(1,3,5,7)の場合は、ブロックの中心に対して点対称になる。
【0156】
従って、水平方向の基底波形guにおける、ブロックの垂直方向の各位置jの値は、そのすべて記憶していなくても、ブロックを、そのブロック中心で上下に2等分した2つのうちの一方についての値だけを記憶していれば、求めることができる。
【0157】
即ち、水平方向の基底波形guについては、周波数uが偶数の場合、位置(座標)を表すjが0,1,2,3それぞれのときの値と、位置jが7,6,5,4それぞれのときの値とは等しい。また、水平方向の基底波形guについては、周波数uが奇数の場合、位置jが0,1,2,3それぞれのときの値と、位置jが7,6,5,4それぞれのときの値とは、符号が逆で、大きさが等しい。従って、水平方向の基底波形guについては、周波数uが偶数の場合、位置jが0乃至3のときの値(または4乃至7のときの値)を記憶しておけば、位置jが4乃至7のときの値(または位置jが1乃至3のときの値)を求めることができる。
【0158】
なお、このことは、垂直方向の基底波形Av×cos((2i+1)×v×π/16)について考えた場合も、同様である。
【0159】
以上から、周波数u(またはv)が、0乃至7それぞれである場合についての、位置j(またはi)が、0乃至3それぞれのときの、水平方向(または垂直方向)の基底波形の値、即ち、32個の基底波形の値を、種データとして、種データ記憶部13(図4)に記憶させておくことで、変換係数生成部14(図4)では、式(17)によって画素値を求めるための変換係数F(i,j,u,v)をすべて得ることができる。
【0160】
ここで、周波数uが0の場合においては、基底波形Au×cos((2j+1)×u×π/16)の値は、A0であり(式(11)で説明したように、1/(2√2)であり)、従って、実際には、種データとしては、図11Iに示すように、32個の基底波形の値ではなく、29個の基底波形の値、即ち、周波数uが0のときの1つの基底波形の値と、周波数uが1乃至7それぞれの場合についての、位置jが0乃至3それぞれのときの28(=7×4)個の基底波形の値との、合計で29個の値を記憶しておけば済む。
【0161】
以上から、種データ記憶部13(図4)としては、少なくとも29個の基底波形の値を記憶することのできる、記憶容量の小さいメモリを採用することができる。
【0162】
なお、図11Iの実施の形態では、種データを、小数点以下第6位までの精度で示してあるが、種データの精度は、これに限定されるものではない。
【0163】
次に、図12のフローチャートおよび図13を参照して、図4のFT変換部10の処理(FT変換)について説明する。
【0164】
モード制御部11は、DCT係数抽出/逆量子化部2(図3)からDCT係数のブロックを受信すると、そのブロックを注目ブロックとし、その注目ブロックのDCT係数を、符号制御部12に供給する。
【0165】
そして、ステップS1において、モード制御部11は、図13Aに示すように、注目ブロックの画素のうちの、ラスタスキャン順で、まだ、注目画素としていない画素を、注目画素として選択し、ステップS2に進む。図13Aの実施の形態では、ブロックにおける位置(1,3)の画素(左から2(=1+1)番目で、上から4(=3+1)番目の画素)が、注目画素とされている。
【0166】
ステップS2では、モード制御部11は、注目画素の座標(i,j)に基づき、画素位置モード#nと領域情報を求め、領域情報を、符号制御部12に供給し、ステップS3に進む。ここで、図13Aの実施の形態においては、ブロックにおける位置(1,3)の画素即ち、ラスタスキャン順で26番目の画素が、注目画素とされているが、この場合、画素位置モード#nは、25(=26−1)となる。
【0167】
ステップS3では、モード制御部11は、注目画素の画素位置モード#nを縮退することにより、縮退画素位置モード#n’を求め、種データ記憶部13に供給して、ステップS4に進む。ここで、図13Aに示したように、画素位置モード#nが25の場合、縮退画素位置モード#n’は、13となる。
【0168】
ステップS4では、種データ記憶部13が、縮退画素位置モード#n’に対応する種データを読み出し、変換係数生成部14に供給する。
【0169】
ここで、種データ記憶部13は、図11Iに示した種データとしての29個の基底波形の値、つまり、周波数uが0のときの1つの基底波形の値と、周波数uが1乃至7それぞれの場合についての、位置jが0乃至4それぞれのときの28個の基底波形の値とを記憶しているが、種データ記憶部13では、これらの29個の基底波形の値が、縮退画素位置モード#n’と対応付けて記憶されている。そして、種データ記憶部13は、モード制御部11からの注目画素の縮退画素位置モード#n’に対応する種データを読み出し、変換係数生成部14に供給する。
【0170】
即ち、縮退画素位置モード#n’によれば、注目画素が、ブロックの左上領域の4×4画素のどの画素であるのか、あるいは、ブロックの左上領域の4×4画素のどの画素に対応する右上領域、左下領域、または右下領域の画素であるのかを認識することができる。
【0171】
そこで、いま、INT[n’/4]が、括弧[]内の値以下の最大の整数値を意味し、MOD4[n’]が、括弧[]内の値を、4で除算したときの剰余を意味するものとすると、縮退画素位置モードが#n’の注目画素の位置に対応する左上領域の位置の行と列(注目画素の位置に対応する行と列)は、それぞれ、INT[n’/4]+1と、MOD4[n’]+1で表すことができる。
【0172】
ここで、注目画素の位置に対応する行または列とは、注目画素が左上領域の画素であると場合には、その画素の行または列をそれぞれ意味し、注目画素が右上領域、左下領域、または右下領域の画素である場合には、注目画素に対応する左上領域の行または列をそれぞれ意味する。
【0173】
また、以下、適宜、注目画素の位置に対応する行を表すINT[n’/4]をVと表すとともに、注目画素の位置に対応する列を表すMOD4[n’]をHと表すこととし、このHとVで座標(H,V)を表す2次元座標系を、縮退座標系ということとする。さらに、縮退座標系において表される座標(H,V)を、縮退座標ということとすると、例えば、図13Aに示したように、縮退画素位置モード#n’が13の注目画素については、その縮退座標(H,V)は、(1,3)となる。
【0174】
なお、縮退座標(H,V)は、ブロックの左上領域の画素が注目画素である場合には、ブロックの左上を原点として、その注目画素そのものの座標(i,j)を表すこととなるが、ブロックの右上領域、左下領域、および右下領域の画素が注目画素である場合には、その注目画素が対応する、ブロックの左上領域の画素の座標を表すこととなる。
【0175】
ところで、いま、例えば、図13Bに示すように、直交する2つの軸で定義される2次元平面における一方の軸に、周波数uをとり、他方の軸に、位置jをとることとする。なお、位置jは、縮退画素位置モード#n’によって決まるINT[n’/4]やMOD4[n’]と一意に対応するから、図13Bにおける他方の軸は、縮退画素位置モード#n’ということもできる。また、図13Bにおける他方の軸は、基底波形Au×cos((2j+1)×u×π/16)の位相ということもできる。
【0176】
図13Bに示すように、周波数uの軸と、位置jの軸とで定義される2次元平面を考えると、その2次元平面では、1乃至7の周波数uそれぞれについての位置jが0乃至3それぞれの基底波形の28個の値を表すことができる。ここで、図13Bにおいては、1つのマス目が、ある周波数uの、ある位置jにおける基底波形の値を表している。
【0177】
上述したように、縮退座標(H,V)の画素の画素値を復号するには、式(17)で用いられる64個の変換係数F(H,V,0,0)乃至F(H,V,7,7)が必要であり、その64個の変換係数F(H,V,0,0)乃至F(H,V,7,7)を生成するには、位置jがHの、周波数が0乃至7それぞれの基底波形の8つの値と、位置jがVの、周波数uが0乃至7それぞれの基底波形の8つの値が必要である。このため、種データ記憶部13は、モード制御部11から縮退画素位置モード#n’を受信すると、その縮退画素位置モード#n’から、注目画素の縮退座標(H,V)を求め、図13Bにおける位置jがHの、周波数uが1乃至7それぞれの基底波形の7つの値と、位置jがVの、周波数uが1乃至7それぞれの基底波形の7つの値を読み出し、変換係数生成部14に供給する。
【0178】
さらに、種データ記憶部13は、周波数uが0のときの1つの基底波形の値を読み出し、変換係数生成部14に供給する。
【0179】
従って、例えば、図13Aに示したように、縮退座標(H,V)が、(1,3)の画素が注目画素とされた場合には、位置jが1の、周波数が1乃至7それぞれの基底波形の7つの値、位置jが3の、周波数が1乃至7それぞれの基底波形の7つの値、および周波数uが0のときの1つの基底波形の値である種データが、種データ記憶部13から変換係数生成部14に供給される。
【0180】
そして、ステップS5に進み、変換係数生成部14は、種データ記憶部13から供給された種データとしての基底波形の値から、水平方向の基底波形の8つの値Fhと、垂直方向の基底波形の8つの値Fvを求め、さらに、その水平方向の基底波形Fhと、垂直方向の基底波形Fvから、注目画素の画素値を復号するための変換係数を生成する。
【0181】
即ち、変換係数生成部14は、ステップS5において、図13Cに示すように、周波数uが0のときの1つの基底波形の値を先頭として、位置jがHの、周波数が1乃至7それぞれの基底波形の7つの値を順次配置することにより、水平方向の基底波形の8つの値Fhとするとともに、周波数uが0のときの1つの基底波形の値を先頭として、位置jがVの、周波数が1乃至7それぞれの基底波形の7つの値を順次配置することにより、垂直方向の基底波形の8つの値Fvとする。
【0182】
さらに、変換係数生成部14は、図13Dに示すように、水平方向の基底波形の8つの値Fhそれぞれと、垂直方向の基底波形の8つの値Fvそれぞれとを、総当たりで乗算することにより、図13Eに示す8×8の変換係数、即ち、縮退座標(H,V)の注目画素の画素値を復号するための式(17)における64個の変換係数F(H,V,0,0)乃至F(H,V,7,7)を生成し、積和演算部15に供給する。
【0183】
ここで、水平方向の基底波形の8つの値Fhの先頭からu+1番目の値と、垂直方向の基底波形の8つの値Fvの先頭からv+1番目の値とが乗算されることにより、注目ブロックの座標(u,v)の位置にあるDCT係数と乗算される変換係数F(H,V,u,v)が生成されることになる。図13Dおよび図13Eの実施の形態では、水平方向の基底波形の8つの値Fhの先頭から6(=5+1)番目の値と、垂直方向の基底波形の8つの値Fvの先頭から2(=1+1)番目の値とが乗算されることにより、注目ブロックの座標(5,1)の位置にあるDCT係数と乗算される変換係数が生成されている。
【0184】
その後、ステップS6に進み、符号制御部12は、ステップS2でモード制御部11から供給される注目画素の領域情報に基づいて、図5乃至図10で説明したように、モード制御部11から供給される注目ブロックのDCT係数の符号を反転し、積和演算部15に供給して、ステップS7に進む。
【0185】
即ち、本実施の形態では、変換係数生成部14において、ブロックの左上領域の座標(i,j)にある画素が注目画素とされた場合に、変換係数F(i,j,u,v)が生成されるとすると、ブロックの右上領域、左下領域、右下領域の、対応する画素が注目画素とされた場合も、同一の変換係数F(i,j,u,v)が生成される。
【0186】
即ち、図7および図8で説明したように、偶数列DCT係数については(偶数行DCT係数についても同様)、位置jが0乃至3のときの基底波形の値それぞれと、位置jが7乃至4のときの基底波形の値それぞれとは、符号が異なるだけで大きさが同一であり、偶数列DCT係数でないDCT係数については(偶数行DCT係数でないDCT係数についても同様)、位置jが0乃至3のときの基底波形の値それぞれと、位置jが7乃至4のときの基底波形の値それぞれとは、符号も大きさも同一であることから、本実施の形態では、種データとして、式Au×cos((2j+1)×u×π/16)(またはAv×cos((2i+1)×v×π/16))で表される基底波形における周波数uが0乃至7についての、位置jが0乃至3のときの値だけが採用されており、位置jが4乃至7のときの値は存在しない。このため、ブロックの左上領域の画素と、その画素に対応する右上領域、左下領域、右下領域の画素それぞれについては、同一の変換係数F(i,j,u,v)が生成される。
【0187】
そこで、図5乃至図10で説明した式(13)乃至(16)の積和演算を行うために、ステップS6では、符号制御部12において、注目画素の領域情報に基づいて、図5乃至図10で説明した、注目ブロックのDCT係数の符号の操作が行われる。
【0188】
ステップS7では、積和演算部15は、変換係数生成部14からの変換係数F(i,j,u,v)と、符号制御部12からの注目ブロックのDCT係数f(u,v)とを用いて、式(17)の積和演算を行い、これにより、注目画素が左上領域、右上領域、左下領域、右下領域の画素である場合には、それぞれ、式(13)乃至(16)の演算を行い、注目画素の画素値を復号する。
【0189】
そして、ステップS8に進み、モード制御部11は、注目ブロックのすべての画素を注目画素としたかどうかを判定する。ステップS8において、注目ブロックのすべての画素を、まだ注目画素としていないと判定された場合、ステップS1に戻り、注目ブロックの画素のうちの、ラスタスキャン順で、まだ、注目画素とされていない画素が、新たな注目画素として選択され、以下、同様の処理が繰り返される。
【0190】
また、ステップS8において、注目ブロックのすべての画素を注目画素としたと判定された場合、処理を終了する。
【0191】
なお、図12の処理は、モード制御部11に、DCT係数のブロックが供給されるごとに、そのブロックを注目ブロックとして繰り返し行われる。
【0192】
また、図12の処理において、点線で囲んであるステップS4およびS5の処理と、ステップS6の処理とは、並列に行うことが可能である。
【0193】
以上のように、図3の画像処理装置においては、図4のFT変換部10において、種データから、変換係数を生成するようにしたので、種データ記憶部13として、少ない容量のメモリを採用することができる。
【0194】
ところで、図3の画像処理装置では、FT変換部10において、図1のMPEGデコーダにおける逆DCT変換部3と、実質的に等価の演算が行われるため、その復号画像は、図1のMPEGデコーダが出力する復号画像と同様に、ブロック歪みやモスキートノイズ等の歪みを有する、解像度の劣化したものとなる。
【0195】
そこで、図14は、本発明を適用した画像処理装置の一実施の形態の構成例を示している。なお、図中、図1のMPEGデコーダまたは図3の画像処理装置における場合と対応する部分については、同一の符号を付してあり、以下では、その説明は、適宜省略する。
【0196】
図14の画像処理装置は、前処理部20および画像再構成部50から構成されており、例えば、画像データをMPEG2方式で符号化することにより得られる符号化データ(ビットストリーム)を復号するようになっている。
【0197】
即ち、符号化データは、前処理部20に供給されるようになっている。また、前処理部20には、符号化データの他、画像再構成部50から、既に復号された画像が、参照画像として供給されるようになっている。
【0198】
前処理部20は、分離部1、DCT係数抽出/逆量子化部2、動き補償部4、画像メモリ5、DCT変換部21、周波数領域動き補償加算部22、およびバッファメモリ23から構成されており、符号化データに対して、前処理を施すようになっている。
【0199】
即ち、DCT変換部21には、分離部1から、DCTタイプが供給されるとともに、画像メモリ5から、動き補償部4において参照画像に動き補償処理を施すことにより得られた予測画像が供給される。
【0200】
DCT変換部21は、分離部1から供給されるDCTタイプに基づき、DCT係数抽出/逆量子化部2が出力する注目ブロックのDCTタイプを認識する。さらに、DCT変換部21は、注目ブロックのDCTタイプに基づいて、画像メモリ5に記憶された予測画像から、ブロックと同一の大きさの8×8画素を選択し、その8×8画素をDCT変換することで、DCT係数を得る。この予測画像から得られたDCT係数(以下、適宜、予測DCT係数という)は、DCT変換部21から周波数領域動き補償加算部22に供給される。
【0201】
周波数領域動き補償加算部22には、DCT変換部21から、8×8の予測DCT係数が供給される他、分離部1から、注目ブロックを含むマクロブロック(以下、適宜、注目マクロブロックという)のCBPが供給されるとともに、DCT係数抽出/逆量子化部2から、注目ブロックのDCT係数が供給される。
【0202】
周波数領域動き補償加算部22は、注目マクロブロックのCBPに基づき、必要に応じて、注目ブロックの各DCT係数と、対応する予測DCT係数とを加算することで、注目ブロックの画素値をDCT変換したDCT係数を求める。
【0203】
即ち、注目ブロックがイントラ符号化されているものである場合、その注目ブロックのDCT係数は、画素値のブロック(画素ブロック)をDCT変換したものとなっているから、周波数領域動き補償加算部22は、その注目ブロックのDCT係数を、そのまま、注目ブロックの画素値をDCT変換したDCT係数とする。
【0204】
また、注目ブロックがノンイントラ符号化されているものである場合、その注目ブロックは、画素値のブロック(画素ブロック)と、予測画像との差分値(残差画像)をDCT変換したものとなっているから、周波数領域動き補償加算部22は、その注目ブロックの各DCT係数と、DCT変換部21において8×8画素の予測画像をDCT変換して得られる8×8の予測DCT係数のうちの対応するものとを加算することにより、注目ブロックの画素値をDCT変換したDCT係数を求める。
【0205】
周波数領域動き補償加算部22において求められた注目ブロックのDCT係数は、分離部1が出力する、その注目ブロック(を含むマクロブロック)のDCTタイプと対応付けられ、前処理部20からバッファメモリ23に供給される。
【0206】
バッファメモリ23は、前処理部20から供給される注目ブロックとそのDCTタイプとのセットを、一時記憶する。
【0207】
ここで、バッファメモリ23に記憶されるブロックのDCT係数は、前処理部20の周波数領域動き補償加算部22が出力するものであるから、ブロックのピクチャタイプによらず、また、ブロックがイントラ符号化またはノンイントラ符号化されたかによらず、元の画像の画素値(残差画像ではなく、元の画像)をDCT変換したものとなっている。
【0208】
なお、ここでいう元の画像とは、MPEG符号化の対象となった原画像そのものではなく、MPEG符号化の影響により原画像よりも画質が劣化した画像を意味する。
【0209】
画像再構成部50は、画像メモリ7、ピクチャ選択部8、およびFT変換部51から構成されており、バッファメモリ23に記憶されたDCT係数から、画像を復号(再構成)する。
【0210】
即ち、FT変換部51は、バッファメモリ23に記憶された注目ブロックのDCT係数を対象に、FT変換処理を行うことで、注目ブロックの画素値を復号する。さらに、FT変換部51は、1フレーム(またはフィールド)分の画素値、即ち、1フレーム(またはフィールド)の画像データを復号すると、その復号画像データを、画像メモリ7とピクチャ選択部8に供給する。
【0211】
画像メモリ7は、FT変換部51から供給される復号画像データのうち、IピクチャとPピクチャの復号画像データを、参照画像として記憶する。ピクチャ選択部8は、FT変換部51から供給される復号画像データ、または画像メモリ7に記憶された復号画像データを、表示順で選択して出力する。
【0212】
次に、図15は、図14のDCT変換部21および周波数領域動き補償加算部22の構成例を示している。
【0213】
DCT変換部21は、(8×8画素)サンプリング部61とDCT部62から構成され、画像メモリ5に記憶された予測画像をDCT変換した予測DCT係数を生成するようになっている。
【0214】
即ち、サンプリング部61には、画像メモリ5に記憶された予測画像と、分離部1(図14)が出力する注目ブロック(を含むマクロブロック)のDCTタイプが供給されるようになっている。
【0215】
ここで、画像メモリ5には、動き補償部4(図14)から、マクロブロックと同一の大きさである16×16画素の予測画像が供給されるようになっており、画像メモリ5は、注目ブロックに対応する16×16画素の予測画像を記憶する。従って、画像メモリ5は、少なくとも16×16画素の画像を記憶することのできる記憶容量を有している。
【0216】
サンプリング部61は、画像メモリ5に記憶された16×16画素の予測画像を、注目ブロックのDCTタイプにしたがってサンプリングし、ブロックと同一の大きさの8×8画素の予測画像を生成する。
【0217】
即ち、画像メモリ5に記憶された16×16画素の予測画像は、フレーム構造になっており、注目ブロックの構造と一致している場合と、一致していない場合とがある。
【0218】
具体的には、注目ブロックがフレーム構造である場合には、注目ブロックと、画像メモリ5に記憶された16×16画素の予測画像とは、一致した構造のものとなる。
【0219】
従って、注目ブロックが、図16Aに示すように、マクロブロック(注目マクロブロック)の左上、左下、右上、または右下のブロックである場合、サンプリング部61は、図16Bに示すように、画像メモリ5に記憶された16×16画素の予測画像のうち、左上、左下、右上、または右下の8×8画素を、それぞれサンプリングし、これにより、注目ブロックの各画素と空間的に対応する位置にある8×8画素の予測画像を得て、DCT部62に供給する。
【0220】
ここで、図16において(後述する図17においても同様)、影を付してあるラインは、奇数ライン(トップフィールド)を表し、影を付していないラインは、偶数ライン(ボトムフィールド)を表す。
【0221】
一方、注目ブロックがフィールド構造である場合は、注目ブロックと、画像メモリ5に記憶された16×16画素の予測画像とは、異なる構造のものとなる。
【0222】
即ち、この場合、注目ブロックを含むマクロブロック(注目マクロブロック)は、図17Aに示すように、上側の8ラインが奇数ライン(トップフィールド)で構成され、下側の8ラインが偶数ライン(ボトムフィールド)で構成される。
【0223】
従って、注目ブロックが、注目マクロブロックの左上のブロックである場合、その注目ブロックの8×8画素は、図17Bに示すように、画像メモリ5に記憶された16×16画素の予測画像のうちの、8つの奇数ライン(影を付してあるライン)の左側の8画素に対応する。また、注目ブロックが、注目マクロブロックの左下のブロックである場合、その注目ブロックの8×8画素は、図17Bに示すように、画像メモリ5に記憶された16×16画素の予測画像のうちの、8つの偶数ライン(影を付してないライン)の左側の8画素に対応する。さらに、注目ブロックが、注目マクロブロックの右上のブロックである場合には、その注目ブロックの8×8画素は、図17Bに示すように、画像メモリ5に記憶された16×16画素の予測画像のうちの、8つの奇数ライン(影を付してあるライン)の右側の8画素に対応し、また、注目ブロックが、注目マクロブロックの右下のブロックである場合には、その注目ブロックの8×8画素は、図17Bに示すように、画像メモリ5に記憶された16×16画素の予測画像のうちの、8つの偶数ライン(影を付してないライン)の右側の8画素に対応する。
【0224】
そこで、サンプリング部61は、注目ブロックが、フィールド構造である場合には、画像メモリ5に記憶された16×16画素の予測画像のうち、注目マクロブロックにおける注目ブロックの位置に対応する、上述のような8×8画素をサンプリングし、これにより、注目ブロックの各画素と空間的に対応する位置にある8×8画素の予測画像を得て、DCT部62に供給する。
【0225】
DCT部62は、サンプリング部61から供給される、注目ブロックの各画素と空間的に対応する位置にある8×8画素の予測画像をDCT変換し、これにより、8×8の予測DCT係数を得て、周波数領域動き補償加算部22に供給する。
【0226】
なお、サンプリング部61において、注目ブロックの構造は、分離部1(図14)が出力する注目ブロック(を含む注目マクロブロック)のDCTタイプに基づいて認識される。
【0227】
図15において、周波数領域動き補償加算部22は、DCT係数選択部71、加算部72、および選択部73から構成され、DCT係数抽出/逆量子化部2(図14)から供給される注目ブロックのDCT係数と、DCT変換部21から供給される予測DCT係数とを、必要に応じて加算することにより、注目ブロックの元の画像のDCT係数を求める。
【0228】
即ち、DCT係数選択部71には、DCT係数抽出/逆量子化部2(図14)が出力する注目ブロックのDCT係数と、分離部1(図14)が出力する注目ブロック(を含む注目マクロブロック)のCBPが供給されるようになっている。
【0229】
注目ブロックがイントラ符号化されたものである場合、その注目ブロックのDCT係数は、注目ブロックの元の画像をDCT変換したものであるから、DCT係数選択部71は、注目ブロックを、そのまま出力する。DCT係数選択部71の出力は、加算部72と選択部73に供給される。
【0230】
注目ブロックがイントラ符号化されたものである場合、加算部72は、特に処理を行わず、また、選択部73は、DCT係数選択部71の出力を選択し、後段のバッファメモリ23(図14)に供給する。
【0231】
従って、注目ブロックがイントラ符号化されたものである場合、即ち、DCT係数抽出/逆量子化部2(図14)が出力する注目ブロックのDCT係数が、注目ブロックの元の画像をDCT変換したものである場合には、DCT係数抽出/逆量子化部2(図14)が出力する注目ブロックが、そのまま、バッファメモリ23(図14)に供給される。
【0232】
一方、DCT係数選択部71は、注目ブロックがノンイントラ符号化されたものである場合、その注目ブロックのCBPを参照し、残差画像のDCT係数の有無を認識する。即ち、注目ブロックがノンイントラ符号化されたものである場合には、その注目ブロックには、原則として、残差画像のDCT係数が(ビデオストリーム中に)配置されるが、残差画像のDCT係数がすべて0となるときには、CBPが0とされ、DCT係数は配置されない。そして、この場合、注目ブロックの画像は、予測画像に一致する。
【0233】
そこで、DCT係数選択部71は、注目ブロックがノンイントラ符号化されたものであり、そのCBPが0である場合には、残差画像のDCT係数として0を出力する。
【0234】
また、DCT係数選択部71は、注目ブロックがノンイントラ符号化されたものであり、そのCBPが1である場合、DCT係数抽出/逆量子化部2(図14)が出力する注目ブロックには、残差画像のDCT係数が配置されているから、そのDCT係数を出力する。
【0235】
DCT係数選択部71の出力は、上述したように、加算部72と選択部73に供給される。
【0236】
加算部72は、注目ブロックがノンイントラ符号化されたものである場合、DCT係数選択部71の出力と、DCT変換部21(のDCT部62)が出力する予測画像のDCT係数とを加算し、これにより、注目ブロックについて、元の画像のDCT係数を得て、選択部73に供給する。
【0237】
選択部73は、注目ブロックがノンイントラ符号化されたものである場合、演算部72の出力を選択し、後段のバッファメモリ23(図14)に供給する。
【0238】
従って、注目ブロックがノンイントラ符号化されたものである場合において、注目ブロックのCBPが0であるときには、注目ブロックの画像が、予測画像に一致するため、加算部72において、DCT係数選択部71が出力する0と、DCT部62が出力する予測画像のDCT係数(予測DCT係数)とが加算されることにより、注目ブロックの元の画像のDCT係数が求められる。
【0239】
また、注目ブロックのCBPが1であるときには、加算部72において、DCT係数選択部71が出力する注目ブロックの残差画像のDCT係数と、DCT部62が出力する予測画像のDCT係数(予測DCT係数)とが加算されることにより、やはり、注目ブロックの元の画像のDCT係数が求められる。
【0240】
そして、選択部73では、加算部72において上述したようにして得られる、注目ブロックの元の画像のDCT係数が選択されて出力される。
【0241】
なお、前処理部20(図14)では、周波数領域において、残差画像と予測画像とを加算して、元の画像のDCT係数を求めるようにしたが、即ち、残差画像のDCT係数と、予測画像のDCT係数とを加算して、元の画像のDCT係数を求めるようにしたが、これは、後述するクラス分類部16において、周波数領域のDCT係数を用いて処理を行うため、前処理部20とクラス分類部16の処理を、周波数領域で行うように統一した方が都合が良いと考えられるためである。
【0242】
従って、元の画像のDCT係数は、残差画像と予測画像とを、時間領域において加算し、その加算結果を、DCT変換することによって求めても良い。
【0243】
次に、図18は、図14のFT変換部51の構成例を示している。なお、図中、図4のFT変換部10と対応する部分については、同一の符号を付してあり、以下では、その説明は、適宜省略する。即ち、図18のFT変換部51は、クラス分類部16、種重み記憶部17、および種データ補正部18が新たに設けられている他は、基本的に、図4のFT変換部10と同様に構成されている。
【0244】
クラス分類部16には、バッファメモリ23(図14)に記憶された、注目画素のブロックのDCT係数とDCTタイプ、さらには、必要に応じて、そのブロックに隣接するブロックのDCT係数とDCTタイプが供給されるようになっており、クラス分類部16は、そこに供給されるDCT係数とDCTタイプに基づき、注目画素を、複数のクラスのうちのいずれかのクラスにクラス分けするクラス分類を行う。そして、クラス分類部16は、注目画素のクラスを表すクラスコードを、アドレスとして、種重み記憶部17に供給する。
【0245】
種重み記憶部17は、種データに付す重みである種重みデータを、クラスごとに記憶しており、クラス分類部16から供給されるクラスコードが表すクラスの種重みデータを、種データ補正部18に供給する。
【0246】
種データ補正部18は、種データ記憶部13から供給される種データに対して、種重み記憶部17から供給される種重みデータを付すことにより、種データを補正し、その補正後の種データ(以下、適宜、補正種データという)を、変換係数生成部14に供給する。
【0247】
次に、図19は、図18のクラス分類部16の構成例を示している。
【0248】
クラス分類部16は、1次元逆DCT変換部31、隣接1次元DCT係数選択/変換部32、ACパワー算出部33、AC内積計算部34、クラスコード生成部36および37から構成され、バッファメモリ23に記憶されたブロックのDCT係数とDCTタイプに基づき、注目ブロックの各画素を、複数のクラスのうちのいずれかのクラスにクラス分けするクラス分類を行う。
【0249】
即ち、1次元逆DCT変換部31は、バッファメモリ23(図14)に記憶されたブロックのDCT係数を、1次元逆DCT変換することにより、水平方向の空間周波数成分を表す水平1次元DCT係数と、垂直方向の空間周波数成分を表す垂直1次元DCT係数とを求める。
【0250】
ここで、以下、適宜、垂直1次元DCT係数と水平1次元DCT係数とをまとめて、1次元DCT係数という。
【0251】
また、MPEG符号化において画素値をDCT変換することにより得られるDCT係数は、水平方向と垂直方向の2方向の空間周波数成分を表すものであり、1次元DCT係数と区別するために、以下、適宜、2次元DCT係数という。
【0252】
さらに、以下、適宜、画素値から2次元DCT係数への変換を、2次元DCT変換と、2次元DCT係数から画素値への変換を、2次元逆DCT変換と、それぞれいう。図14のDCT変換部21で行われるDCT変換は、2次元DCT変換であり、図1の逆DCT変換部3で行われる逆DCT変換は、2次元逆DCT変換である。
【0253】
1次元逆DCT変換部31で得られる1次元DCT係数は、隣接1次元DCT係数選択/変換部32、ACパワー算出部33、AC内積計算部34、およびクラスコード生成部36に供給される。
【0254】
隣接1次元DCT係数選択/変換部32は、バッファメモリ23から、注目ブロックのDCTタイプを受信し、そのDCTタイプに基づき、注目ブロックに隣接する画素(列)の1次元DCT係数(以下、適宜、隣接1次元DCT係数という)を、1次元逆DCT変換部31から供給される1次元DCT係数から取得し、ACパワー算出部33、AC内積計算部34、およびクラスコード生成部36に供給する。
【0255】
ACパワー算出部33は、1次元逆DCT係数変換部31から供給される1次元DCT係数の交流成分のパワー(以下、適宜、ACパワーという)を求めるとともに、隣接1次元DCT係数選択/変換部32から供給される1次元DCT係数のACパワーを求め、クラスコード生成部36および37に供給する。
【0256】
AC内積計算部34は、1次元逆DCT係数変換部31から供給される注目ブロックの境界部分の1次元DCT係数の交流成分と、隣接1次元DCT係数選択/変換部32から供給される隣接1次元DCT係数の交流成分とを、それぞれベクトルのコンポーネントとみなして、その2つのベクトルの内積(以下、適宜、AC内積という)を求める。AC内積計算部34で求められるAC内積は、クラスコード生成部36に供給される。
【0257】
クラスコード生成部36は、輝度信号Yのブロックを構成する画素のクラス分類を行い、クラスコード生成部37は、色差信号(色信号)Cのブロックを構成する画素のクラス分類を行う。
【0258】
ここで、符号化データは、例えば、カラーの画像データをMPEG符号化したものとなっている。
【0259】
そして、1次元逆DCT変換部31は、注目ブロックが輝度信号のブロックである場合の、その注目ブロックの1次元DCT係数を、隣接1次元DCT係数選択/変換部32は、注目ブロックが輝度信号のブロックである場合の、その注目ブロックに隣接する隣接1次元DCT係数を、ACパワー算出部33は、注目ブロックが輝度信号のブロックである場合の、その注目ブロックについて得られたACパワーを、AC内積計算部34は、注目ブロックが輝度信号のブロックである場合の、その注目ブロックについて得られたAC内積を、それぞれ、クラスコード生成部36に供給するようになっており、クラスコード生成部36は、そこに供給される情報に基づいて、注目ブロックの各画素をクラス分類する。
【0260】
さらに、クラスコード生成部36は、注目ブロックの輝度信号の画素のクラス分類を行うことにより得られるクラスを表すクラスコードを生成し、種重み記憶部17(図18)に供給する。ここで、クラスコード生成部36において得られる、輝度信号のブロックの画素についてのクラスコードを、以下、適宜、輝度クラスコードという。
【0261】
クラスコード生成部36が出力する注目ブロックの各画素についての輝度クラスコードは、クラスコード生成部37にも供給される。また、クラスコード生成部37には、ACパワー算出部33から、注目ブロックが色差信号のブロックである場合の、その注目ブロックについて得られたACパワーも供給されるようになっている。
【0262】
クラスコード生成部37は、ACパワー算出部33から供給される注目ブロックのACパワーと、クラスコード生成部36から供給される、色差信号の注目ブロックに対応する輝度信号のブロックの画素の輝度クラスコードとに基づいて、注目ブロックの各画素をクラス分類する。
【0263】
そして、クラスコード生成部37は、注目ブロックの色差信号の画素のクラス分類を行うことにより得られるクラスを表すクラスコードを生成し、種重み記憶部17(図18)に供給する。ここで、クラスコード生成部37において得られる、色差信号のブロックの画素についてのクラスコードを、以下、適宜、色差クラスコードという。
【0264】
従って、クラス分類部16から種重み記憶部17には、輝度クラスコードと色差クラスコードとの2つのクラスコードが供給され、種重み記憶部17では、輝度クラスコードと色差クラスコードそれぞれに対応して、種重みデータが読み出される。そして、その後は、輝度クラスコードに対応して読み出された種重みデータを用いて、輝度信号についての処理が行われ、色差クラスコードに対応して読み出された種重みデータを用いて、色差信号についての処理が行われる。
【0265】
但し、図18を含む各図では、図が煩雑になるのを避けるため、輝度信号および色差信号に関する信号の流れをまとめて1本の線で表してある。
【0266】
次に、図20および図21を参照して、図19の1次元逆DCT変換部31の処理について説明する。
【0267】
MPEGやJPEG(Joint Photographic Experts Group)等のDCT変換を利用した画像の符号化方式では、画像データが、水平方向および垂直方向の2次元のDCT変換(2次元DCT変換)/逆DCT変換(2次元逆DCT変換)が行われる。
【0268】
図20Aに示すような8×8画素のブロックにおける画素値を、8行×8列の行列Xで表すとともに、図20Bに示すような8×8のブロックにおけるDCT係数を、8行×8列の行列Fで表すこととすると、2次元DCT変換/2次元逆DCT変換は、上述の式(9)乃至(11)で表すことができる。
【0269】
式(10)によれば、2次元DCT係数Fは、その左側から行列CTをかけるとともに、その右側から行列Cをかけることにより、画素値Xに変換されるが、1次元逆DCT変換部31は、2次元DCT係数Fに対して、その左側から行列CTをかけるだけか、または、その右側から行列Cをかけるだけかすることにより、1次元DCT係数を求める。
【0270】
即ち、1次元逆DCT変換部31は、2次元DCT係数Fに対して、その左側から行列CTだけをかける。この場合、図20Cに示すように、2次元DCT係数Fにおける垂直方向が空間領域に変換され、水平方向が周波数領域のままとされる垂直1次元逆DCT変換が行われることとなり、その結果、水平方向の空間周波数成分を表す水平1次元DCT係数vXhFを得ることができる。
【0271】
また、1次元逆DCT変換部31は、2次元DCT係数Fに対して、その右側から行列Cだけをかける。この場合、図20Dに示すように、2次元DCT係数Fにおける水平方向が空間領域に変換され、垂直方向が周波数領域のままとされる水平1次元逆DCT変換が行われることとなり、その結果、垂直方向の空間周波数成分を表す垂直1次元DCT係数hXvFを得ることができる。
【0272】
なお、横×縦が8×8の2次元DCT係数Fを、垂直1次元逆DCT変換した場合には、8×1の水平1次元DCT係数が、8セット(8行分)得られることになる(図20C)。また、2次元DCT係数Fを、水平1次元逆DCT変換した場合には、1×8の垂直1次元DCT係数が、8セット(8列分)得られることになる(図20D)。
【0273】
そして、ある行における8×1の水平1次元DCT係数については、その左端のDCT係数が、その行の8画素の画素値の直流成分(DC成分)(8画素の画素値の平均値)を表し、他の7つのDCT係数が、その行の水平方向の交流成分を表す。また、ある列における1×8の垂直1次元DCT係数については、その最上行のDCT係数が、その列の8画素の画素値の直流成分を表し、他の7つのDCT係数が、その列の垂直方向の交流成分を表す。
【0274】
ここで、式(9)によれば、水平1次元DCT係数は、2次元DCT係数Fに対応する画素値Xに対して、その右側から行列CTをかける水平1次元DCT変換を行うことによっても求めることができる。また、垂直1次元DCT係数は、2次元DCT係数Fに対応する画素値Xに対して、その左側から行列Cをかける垂直1次元DCT変換を行うことによっても求めることができる。
【0275】
図21は、実際の画像と、その画像についての2次元DCT係数、水平1次元DCT係数、および垂直1次元DCT係数を示している。
【0276】
なお、図21は、横×縦が8×9ブロックの画像と、その画像についての2次元DCT係数、水平1次元DCT係数、および垂直1次元DCT係数を示している。また、図21Aが、実際の画像を、図21Bが、2次元DCT係数を、図21Cが、水平1次元DCT係数を、図21Dが、垂直1次元DCT係数を、それぞれ示している。
【0277】
ここで、図21Aの画像は、8ビットの画素値を有するものであり、そのような画素値から求められるDCT係数は、負の値も取り得る。但し、図21B乃至図21Dの実施の形態では、求められたDCT係数に対して、128(=27)を加算し、その加算値が0未満となるものは0にクリップするとともに、加算値が256以上となるものは255にクリップすることにより、0乃至255の範囲のDCT係数を、図示してある。
【0278】
2次元DCT係数には、8×8画素のブロック全体の情報が反映されているため、2次元DCT係数からでは、ブロック内の特定の画素の情報等の局所的な情報を把握するのは困難である。これに対して、水平1次元DCT係数または垂直1次元DCT係数には、ブロックのある1行または1列だけの情報が、それぞれ反映されているため、2次元DCT係数に比較して、ブロック内の局所的な情報を容易に把握することができる。
【0279】
即ち、ブロックのある行の特徴は、その行の8×1の水平1次元DCT係数から把握することができ、ある列の特徴は、その列の1×8の垂直1次元DCT係数から把握することができる。さらに、ブロックのある画素の特徴は、その画素が位置する行の8×1の水平1次元DCT係数と、その画素が位置する列の1×8の垂直1次元DCT係数とから把握することができる。
【0280】
また、左右に隣接するブロックどうしの境界の状態は、ブロック全体の情報が反映された2次元DCT係数よりも、ブロックの境界部分の垂直方向の空間周波数成分を表す垂直1次元DCT係数を用いた方が、より正確に把握することができる。さらに、上下に隣接するブロックどうしの境界の状態も、ブロック全体の情報が反映された2次元DCT係数よりも、ブロックの境界部分の水平方向の空間周波数成分を表す水平1次元DCT係数を用いた方が、より正確に把握することができる。
【0281】
次に、図19の隣接次元DCT係数選択/変換部32は、上述したように、1次元逆DCT変換部31から供給される1次元DCT係数の中から、注目ブロックに隣接する画素(列)の1次元DCT係数(隣接1次元DCT係数)を取得するが、この隣接1次元DCT係数は、注目ブロックと、その注目ブロックと空間的に隣接するブロック(以下、適宜、隣接ブロックという)との間のブロック境界の状態を分析するのに用いられるものであるため、空間領域において、注目ブロックの境界と隣接する画素列を1次元DCT変換したものである必要がある。
【0282】
しかしながら、MPEG2では、マクロブロック単位で、フレーム構造とフィールド構造の選択が可能であることから、注目ブロックを含む注目マクロブロックの構造や、注目マクロブロックに隣接するマクロブロック(以下、適宜、隣接マクロブロックという)の構造によっては、注目ブロックに隣接する隣接ブロックにおける、注目ブロックに隣接する1次元DCT係数が、空間領域において、注目ブロックの境界と隣接する画素列を1次元DCT変換したものとなっていない場合がある。
【0283】
そこで、隣接1次元DCT係数選択/変換部32は、バッファメモリ23から供給されるDCTタイプによって、注目ブロックと隣接ブロックの構造を認識し、注目ブロックの構造を基準として、空間領域において、その注目ブロックの境界と隣接する隣接ブロックの画素列を1次元DCT変換した1次元DCT係数(隣接1次元DCT係数)を取得するようになっている。
【0284】
ここで、図22乃至図37を参照して、注目ブロックの構造を基準とした場合に、空間領域において、その注目ブロックの境界と隣接する隣接ブロックの画素列を1次元DCT変換したものとなる1次元DCT係数について説明する。
【0285】
なお、図22乃至図37では、注目マクロブロックをMBNと、注目マクロブロックMBNの上下左右に隣接するマクロブロックを、それぞれMBU,MBD,MBL,MBRと表す。
【0286】
さらに、注目マクロブロックMBNの左上、左下、右上、右下のブロックを、それぞれ、BNUL,BNDL,BNUR,BNDRと表し、上隣接マクロブロック(注目ブロックの上に隣接するマクロブロック)MBUの左上、左下、右上、右下のブロックを、それぞれ、BUUL,BUDL,BUUR,BUDRと表す。また、下隣接マクロブロック(注目ブロックの下に隣接するマクロブロック)MBDの左上、左下、右上、右下のブロックを、それぞれ、BDUL,BDDL,BDUR,BDDRと表し、左隣接マクロブロック(注目ブロックの左に隣接するマクロブロック)MBLの左上、左下、右上、右下のブロックを、それぞれ、BLUL,BLDL,BLUR,BLDRと表す。さらに、右隣接マクロブロック(注目ブロックの右に隣接するマクロブロック)MBRの左上、左下、右上、右下のブロックを、それぞれ、BRUL,BRDL,BR UR,BRDRと表す。
【0287】
図22は、注目マクロブロックMBNの左上のブロックBNULが注目ブロックであるとした場合に、空間領域において、注目ブロックBNULの上側の境界、即ち、最上行の8画素に隣接する隣接ブロックの画素列(以下、適宜、上隣接画素列という)を示している。
【0288】
なお、図22において、影を付してあるラインが、注目ブロックBNULの最上行の画素列を表し、斜線を付してあるラインが、上隣接画素列を表している。
【0289】
注目マクロブロックMBNの左上のブロックBNULが注目ブロックである場合の上に隣接するブロックは、注目マクロブロックMBNの中のブロックではない上隣接マクロブロックMBUの左下のブロックBUDLとなるから、注目ブロックBNULの最上行の画素列の上に隣接する上隣接画素列がいずれの画素列になるかは、注目マクロブロックMBNと、上隣接マクロブロックMBUの両方の構造を考慮する必要がある。
【0290】
即ち、注目マクロブロックMBNと上隣接マクロブロックMBUのDCTタイプが、いずれもフレームDCTの場合は、注目ブロックBNULは、注目マクロブロックMBNの左上の8×8画素であり、図22Aに示すように、その最上行の8画素(影を付してある部分)は、空間領域において、フレーム構造の上隣接マクロブロックMBUの左下のブロックBUDLの最下行の8画素(斜線を付してある部分)と隣接する。従って、注目ブロックBNULの最上行の水平1次元DCT係数に対し、空間領域において上側に隣接する画素列の水平1次元DCT係数(以下、適宜、上隣接1次元DCT係数という)は、ブロックBUDLの最下行の8画素を水平1次元DCT変換した水平1次元DCT係数になる。
【0291】
注目マクロブロックMBNのDCTタイプが、フレームDCTであり、上隣接マクロブロックMBUのDCTタイプが、フィールドDCTの場合は、注目ブロックBNULは、注目マクロブロックMBNの左上の8×8画素であり、図22Bに示すように、その最上行の8画素(影を付してある部分)は、空間領域において、フィールド構造の上隣接マクロブロックMBUの左下のブロックBUDLの最下行の8画素(斜線を付してある部分)と隣接する。従って、注目ブロックBNULの最上行の水平1次元DCT係数に対する上隣接1次元DCT係数は、ブロックBUDLの最下行の8画素を水平1次元DCT変換した水平1次元DCT係数になる。
【0292】
注目マクロブロックMBNのDCTタイプが、フィールドDCTであり、上隣接マクロブロックMBUのDCTタイプが、フレームDCTの場合は、注目ブロックBNULは、注目マクロブロックMBNの8つの奇数ラインの左側の8画素であり、図22Cに示すように、その最上行の8画素(影を付してある部分)は、空間領域において、フレーム構造の上隣接マクロブロックMBUの左下ブロックBUDLの第7行目(上から7行目)の8画素(斜線を付してある部分)と隣接する。従って、注目ブロックBNULの最上行の水平1次元DCT係数に対する上隣接1次元DCT係数は、ブロックBUDLの第7行の8画素を水平1次元DCT変換した水平1次元DCT係数になる。
【0293】
注目マクロブロックMBNのDCTタイプが、フィールドDCTであり、上隣接マクロブロックMBUのDCTタイプも、フィールドDCTの場合は、注目ブロックBNULは、注目マクロブロックMBNの8つの奇数ラインの左側の8画素であり、図22Dに示すように、その最上行の8画素(影を付してある部分)は、空間領域において、フィールド構造の上隣接マクロブロックMBUの左上のブロックBUULの最下行の8画素(斜線を付してある部分)と隣接する。従って、注目ブロックBNULの最上行の水平1次元DCT係数に対する上隣接1次元DCT係数は、ブロックBUULの最下行の8画素を水平1次元DCT変換した水平1次元DCT係数になる。
【0294】
次に、図23は、注目マクロブロックMBNの左上のブロックBNULが注目ブロックであるとした場合に、空間領域において、注目ブロックBNULの下側の境界、即ち、最下行の8画素に隣接する隣接ブロックの画素列(以下、適宜、下隣接画素列という)を示している。
【0295】
なお、図23において、影を付してあるラインが、注目ブロックBNULの最下行の画素列を表し、斜線を付してあるラインが、下隣接画素列を表している。
【0296】
注目マクロブロックMBNの左上のブロックBNULが注目ブロックである場合の下に隣接するブロックは、注目マクロブロックMBNの中の左下のブロックBNDLとなるから、注目ブロックBNULの最下行の画素列の下に隣接する下隣接画素列がいずれの画素列になるかは、注目マクロブロックMBNの構造のみを考慮すれば良い。
【0297】
即ち、注目マクロブロックMBNのDCTタイプが、フレームDCTの場合は、注目ブロックBNULは、注目マクロブロックMBNの左上の8×8画素であり、図23Aに示すように、その最下行の8画素(影を付してある部分)は、空間領域において、フレーム構造の注目マクロブロックMBNの左下のブロックBNDLの最上行の8画素(斜線を付してある部分)と隣接する。従って、注目ブロックBNULの最下行の水平1次元DCT係数に対し、空間領域において下側に隣接する画素列の水平1次元DCT係数(以下、適宜、下隣接1次元DCT係数という)は、ブロックBNDLの最上行の8画素を水平1次元DCT変換した水平1次元DCT係数になる。
【0298】
注目マクロブロックMBNのDCTタイプが、フィールドDCTである場合は、注目ブロックBNULは、注目マクロブロックMBNの8つの奇数ラインの左側の8画素であり、図23Bに示すように、その最下行の8画素(影を付してある部分)は、空間領域において、フィールド構造の注目マクロブロックMBNの下に隣接する下隣接マクロブロックMBDの左上のブロックBDULの最上行の8画素(斜線を付してある部分)と隣接する。従って、注目ブロックBNULの最下行の水平1次元DCT係数に対する下隣接1次元DCT係数は、ブロックBDULの最上行の8画素を水平1次元DCT変換した水平1次元DCT係数になる。
【0299】
次に、図24は、注目マクロブロックMBNの左上のブロックBNULが注目ブロックであるとした場合に、空間領域において、注目ブロックBNULの左側の境界、即ち、最左列の8画素に隣接する隣接ブロックの画素列(以下、適宜、左隣接画素列という)を示している。
【0300】
なお、図24において、影を付してあるラインが、注目ブロックBNULの最左列の画素列を表し、斜線を付してあるラインが、左隣接画素列を表している。
【0301】
注目マクロブロックMBNの左上のブロックBNULが注目ブロックである場合の左に隣接するブロックは、注目マクロブロックMBNの中のブロックではない左隣接マクロブロックMBLの右上のブロックBLURとなるから、注目ブロックBNULの最左列の画素列の左に隣接する左隣接画素列がいずれの画素列になるかは、注目マクロブロックMBNと、左隣接マクロブロックMBLの両方の構造を考慮する必要がある。
【0302】
即ち、注目マクロブロックMBNと左隣接マクロブロックMBUのDCTタイプが、いずれもフレームDCTの場合は、注目ブロックBNULは、注目マクロブロックMBNの左上の8×8画素であり、図24Aに示すように、その最左列の8画素(影を付してある部分)は、空間領域において、フレーム構造の左隣接マクロブロックMBLの右上のブロックBLURの最右列の8画素(斜線を付してある部分)と隣接する。従って、注目ブロックBNULの最左列の垂直1次元DCT係数に対し、空間領域において左側に隣接する画素列の垂直1次元DCT係数(以下、適宜、左隣接1次元DCT係数という)は、ブロックBLURの最右列の8画素を垂直1次元DCT変換した垂直1次元DCT係数になる。
【0303】
注目マクロブロックMBNのDCTタイプが、フレームDCTであり、左隣接マクロブロックMBLのDCTタイプが、フィールドDCTの場合は、注目ブロックBNULは、注目マクロブロックMBNの左上の8×8画素であり、図24Bに示すように、その最左列の8画素(影を付してある部分)は、空間領域において、フィールド構造の左隣接マクロブロックMBLの右上のブロックBLURにおける最右列の上4画素と、その右下のブロックBLDRにおける最右列の上4画素の合計8画素(斜線を付してある部分)と隣接する。従って、注目ブロックBNULの最左列の垂直1次元DCT係数に対する左隣接1次元DCT係数は、ブロックBLURにおける最右列の上4画素とブロックBLDRにおける最右列の上4画素の合計8画素を垂直1次元DCT変換した垂直1次元DCT係数になる。
【0304】
注目マクロブロックMBNのDCTタイプが、フィールドDCTであり、左隣接マクロブロックMBLのDCTタイプが、フレームDCTの場合は、注目ブロックBNULは、注目マクロブロックMBNの8つの奇数ラインの左側の8画素であり、図24Cに示すように、その最左列の8画素(影を付してある部分)は、空間領域において、フレーム構造の左隣接マクロブロックMBLの右上のブロックBLURにおける最右列の奇数行の4画素と、その右下のブロックBLDRにおける奇数行の4画素の合計8画素(斜線を付してある部分)と隣接する。従って、注目ブロックBNULの最左列の垂直1次元DCT係数に対する左隣接1次元DCT係数は、ブロックBLURにおける最右列の奇数行の4画素とブロックBLDRにおける奇数行の4画素の合計8画素を垂直1次元DCT変換した垂直1次元DCT係数になる。
【0305】
注目マクロブロックMBNのDCTタイプが、フィールドDCTであり、左隣接マクロブロックMBLのDCTタイプも、フィールドDCTの場合は、注目ブロックBNULは、注目マクロブロックMBNの8つの奇数ラインの左側の8画素であり、図24Dに示すように、その最左列の8画素(影を付してある部分)は、空間領域において、フィールド構造の左隣接マクロブロックMBLの右上のブロックBLURの最右列の8画素(斜線を付してある部分)と隣接する。従って、注目ブロックBNULの最左列の垂直1次元DCT係数に対する左隣接1次元DCT係数は、ブロックBLURの最右列の8画素を垂直1次元DCT変換した垂直1次元DCT係数になる。
【0306】
次に、図25は、注目マクロブロックMBNの左上のブロックBNULが注目ブロックであるとした場合に、空間領域において、注目ブロックBNULの右側の境界、即ち、最右列の8画素に隣接する隣接ブロックの画素列(以下、適宜、右隣接画素列という)を示している。
【0307】
なお、図25において、影を付してあるラインが、注目ブロックBNULの最右列の画素列を表し、斜線を付してあるラインが、右隣接画素列を表している。
【0308】
注目マクロブロックMBNの左上のブロックBNULが注目ブロックである場合の右に隣接するブロックは、注目マクロブロックMBNの中の右上のブロックBNURになるから、注目ブロックBNULの最右列の画素列の右に隣接する右隣接画素列は、必ず、ブロックNURの最左列の8画素となるので、注目マクロブロックMBNや、その注目マクロブロックMBNに隣接するマクロブロックの構造を考慮する必要はない。
【0309】
即ち、注目マクロブロックMBNの左上のブロックBNULが注目ブロックである場合には、図25に示すように、その最右列の8画素(影を付してある部分)は、空間領域において、注目ブロックBNULの右隣のブロックBNURの最左列の8画素(斜線を付してある部分)と隣接する。従って、注目ブロックBNULの最右列の垂直1次元DCT係数に対し、空間領域において右側に隣接する画素列の垂直1次元DCT係数(以下、適宜、右隣接1次元DCT係数という)は、ブロックBNURの最左列の8画素を垂直1次元DCT変換した垂直1次元DCT係数になる。
【0310】
次に、図26は、注目マクロブロックMBNの左下のブロックBNDLが注目ブロックであるとした場合に、空間領域において、注目ブロックBNDLの上側の境界、即ち、最上行の8画素に隣接する隣接ブロックの画素列(上隣接画素列)を示している。
【0311】
なお、図26において、影を付してあるラインが、注目ブロックBNDLの最上行の画素列を表し、斜線を付してあるラインが、上隣接画素列を表している。
【0312】
注目マクロブロックMBNの左下のブロックBNDLが注目ブロックである場合の上に隣接するブロックは、注目マクロブロックMBNの中の左上のブロックBNULとなるから、注目ブロックBNDLの最上行の画素列の上に隣接する上隣接画素列がいずれの画素列になるかは、注目マクロブロックMBNの構造のみを考慮すれば良い。
【0313】
即ち、注目マクロブロックMBNのDCTタイプが、フレームDCTの場合は、注目ブロックBNDLは、注目マクロブロックMBNの左下の8×8画素であり、図26Aに示すように、その最上行の8画素(影を付してある部分)は、空間領域において、フレーム構造の注目マクロブロックMBNの左上ブロックBNULの最下行の8画素(斜線を付してある部分)と隣接する。従って、注目ブロックBNDLの最上行の水平1次元DCT係数に対する上隣接1次元DCT係数は、ブロックBNULの最下行の8画素を水平1次元DCT変換した水平1次元DCT係数になる。
【0314】
注目マクロブロックMBNのDCTタイプが、フィールドDCTである場合は、注目ブロックBNDLは、注目マクロブロックMBNの8つの偶数ラインの左側の8画素であり、図26Bに示すように、その最上行の8画素(影を付してある部分)は、空間領域において、フレーム構造の注目マクロブロックMBNの上に隣接する上隣接マクロブロックMBUの左下のブロックBUDLの最下行の8画素(斜線を付してある部分)と隣接する。従って、注目ブロックBNDLの最上行の水平1次元DCT係数に対する上隣接1次元DCT係数は、ブロックBUDLの最下行の8画素を水平1次元DCT変換した水平1次元DCT係数になる。
【0315】
次に、図27は、注目マクロブロックMBNの左下のブロックBNDLが注目ブロックであるとした場合に、空間領域において、注目ブロックBNDLの下側の境界、即ち、最下行の8画素に隣接する隣接ブロックの画素列(下隣接画素列)を示している。
【0316】
なお、図27において、影を付してあるラインが、注目ブロックBNDLの最下行の画素列を表し、斜線を付してあるラインが、下隣接画素列を表している。
【0317】
注目マクロブロックMBNの左下のブロックBNDLが注目ブロックである場合の下に隣接するブロックは、注目マクロブロックMBNの中のブロックではない下隣接マクロブロックMBDの左上のブロックBDULとなるから、注目ブロックBNDLの最下行の画素列の下に隣接する下隣接画素列がいずれの画素列になるかは、注目マクロブロックMBNと、下隣接マクロブロックMBDの両方の構造を考慮する必要がある。
【0318】
即ち、注目マクロブロックMBNと下隣接マクロブロックMBDのDCTタイプが、いずれもフレームDCTの場合は、注目ブロックBNDLは、注目マクロブロックMBNの左下の8×8画素であり、図27Aに示すように、その最下行の8画素(影を付してある部分)は、空間領域において、フレーム構造の下隣接マクロブロックMBDの左上のブロックBDULの最上行の8画素(斜線を付してある部分)と隣接する。従って、注目ブロックBNDLの最下行の水平1次元DCT係数に対する下隣接1次元DCT係数は、ブロックBDULの最上行の8画素を水平1次元DCT変換した水平1次元DCT係数になる。
【0319】
注目マクロブロックMBNのDCTタイプが、フレームDCTであり、下隣接マクロブロックMBDのDCTタイプが、フィールドDCTの場合は、注目ブロックBNDLは、注目マクロブロックMBNの左下の8×8画素であり、図27Bに示すように、その最下行の8画素(影を付してある部分)は、空間領域において、フィールド構造の下隣接マクロブロックMBDの左上のブロックBDULの最上行の8画素(斜線を付してある部分)と隣接する。従って、注目ブロックBNDLの最下行の水平1次元DCT係数に対する下隣接1次元DCT係数は、ブロックBDULの最上行の8画素を水平1次元DCT変換した水平1次元DCT係数になる。
【0320】
注目マクロブロックMBNのDCTタイプが、フィールドDCTであり、下隣接マクロブロックMBDのDCTタイプが、フレームDCTの場合は、注目ブロックBNDLは、注目マクロブロックMBNの8つの偶数ラインの左側の8画素であり、図27Cに示すように、その最下行の8画素(影を付してある部分)は、空間領域において、フレーム構造の下隣接マクロブロックMBDの左上のブロックBDULの第2行目の8画素(斜線を付してある部分)と隣接する。従って、注目ブロックBNDLの最下行の水平1次元DCT係数に対する下隣接1次元DCT係数は、ブロックBDULの第2行目の8画素を水平1次元DCT変換した水平1次元DCT係数になる。
【0321】
注目マクロブロックMBNのDCTタイプが、フィールドDCTであり、下隣接マクロブロックMBDのDCTタイプも、フィールドDCTの場合は、注目ブロックBNDLは、注目マクロブロックMBNの8つの偶数ラインの左側の8画素であり、図27Dに示すように、その最下行の8画素(影を付してある部分)は、空間領域において、フィールド構造の下隣接マクロブロックMBDの左下のブロックBDDLの最上行の8画素(斜線を付してある部分)と隣接する。従って、注目ブロックBNDLの最下行の水平1次元DCT係数に対する下隣接1次元DCT係数は、ブロックBDDLの最上行の8画素を水平1次元DCT変換した水平1次元DCT係数になる。
【0322】
次に、図28は、注目マクロブロックMBNの左下のブロックBNDLが注目ブロックであるとした場合に、空間領域において、注目ブロックBNDLの左側の境界、即ち、最左列の8画素に隣接する隣接ブロックの画素列(左隣接画素列)を示している。
【0323】
なお、図28において、影を付してあるラインが、注目ブロックBNDLの最左列の画素列を表し、斜線を付してあるラインが、左隣接画素列を表している。
【0324】
注目マクロブロックMBNの左下のブロックBNDLが注目ブロックである場合の左に隣接するブロックは、注目マクロブロックMBNの中のブロックではない左隣接マクロブロックMBLの右下のブロックBLDRとなるから、注目ブロックBNDLの最左列の画素列の左に隣接する左隣接画素列がいずれの画素列になるかは、注目マクロブロックMBNと、左隣接マクロブロックMBLの両方の構造を考慮する必要がある。
【0325】
即ち、注目マクロブロックMBNと左隣接マクロブロックMBLのDCTタイプが、いずれもフレームDCTの場合は、注目ブロックBNDLは、注目マクロブロックMBNの左下の8×8画素であり、図28Aに示すように、その最左列の8画素(影を付してある部分)は、空間領域において、フレーム構造の左隣接マクロブロックMBLの右下のブロックBLDRの最右列の8画素(斜線を付してある部分)と隣接する。従って、注目ブロックBNDLの最左列の垂直1次元DCT係数に対する左隣接1次元DCT係数は、ブロックBLDRの最右列の8画素を垂直1次元DCT変換した垂直1次元DCT係数になる。
【0326】
注目マクロブロックMBNのDCTタイプが、フレームDCTであり、左隣接マクロブロックMBLのDCTタイプが、フィールドDCTの場合は、注目ブロックBNDLは、注目マクロブロックMBNの左下の8×8画素であり、図28Bに示すように、その最左列の8画素(影を付してある部分)は、空間領域において、フィールド構造の左隣接マクロブロックMBLの右上のブロックBLURにおける最右列の下4画素と、その右下のブロックBLDRにおける最右列の下4画素の合計8画素(斜線を付してある部分)と隣接する。従って、注目ブロックBNDLの最左列の垂直1次元DCT係数に対する左隣接1次元DCT係数は、ブロックBLURにおける最右列の下4画素とブロックBLDRにおける最右列の下4画素の合計8画素を垂直1次元DCT変換した垂直1次元DCT係数になる。
【0327】
注目マクロブロックMBNのDCTタイプが、フィールドDCTであり、左隣接マクロブロックMBLのDCTタイプが、フレームDCTの場合は、注目ブロックBNDLは、注目マクロブロックMBNの8つの偶数ラインの左側の8画素であり、図28Cに示すように、その最左列の8画素(影を付してある部分)は、空間領域において、フレーム構造の左隣接マクロブロックMBLの右上のブロックBLURにおける最右列の偶数行の4画素と、その右下のブロックBLDRにおける偶数行の4画素の合計8画素(斜線を付してある部分)と隣接する。従って、注目ブロックBNDLの最左列の垂直1次元DCT係数に対する左隣接1次元DCT係数は、ブロックBLURにおける最右列の偶数行の4画素とブロックBLDRにおける偶数行の4画素の合計8画素を垂直1次元DCT変換した垂直1次元DCT係数になる。
【0328】
注目マクロブロックMBNのDCTタイプが、フィールドDCTであり、左隣接マクロブロックMBLのDCTタイプも、フィールドDCTの場合は、注目ブロックBNDLは、注目マクロブロックMBNの8つの偶数ラインの左側の8画素であり、図28Dに示すように、その最左列の8画素(影を付してある部分)は、空間領域において、フィールド構造の左隣接マクロブロックMBLの右下のブロックBLDRの最右列の8画素(斜線を付してある部分)と隣接する。従って、注目ブロックBNDLの最左列の垂直1次元DCT係数に対する左隣接1次元DCT係数は、ブロックBLDRの最右列の8画素を垂直1次元DCT変換した垂直1次元DCT係数になる。
【0329】
次に、図29は、注目マクロブロックMBNの左下のブロックBNDLが注目ブロックであるとした場合に、空間領域において、注目ブロックBNDLの右側の境界、即ち、最右列の8画素に隣接する隣接ブロックの画素列(右隣接画素列)を示している。
【0330】
なお、図29において、影を付してあるラインが、注目ブロックBNDLの最右列の画素列を表し、斜線を付してあるラインが、右隣接画素列を表している。
【0331】
注目マクロブロックMBNの左下のブロックBNDLが注目ブロックである場合の右に隣接するブロックは、注目マクロブロックMBNの中の右下のブロックBNDRになるから、注目ブロックBNDLの最右列の画素列の右に隣接する右隣接画素列は、必ず、ブロックNDRの最左列の8画素となるので、注目マクロブロックMBNや、その注目マクロブロックMBNに隣接するマクロブロックの構造を考慮する必要はない。
【0332】
即ち、注目マクロブロックMBNの左下のブロックBNDLが注目ブロックである場合には、図29に示すように、その最右列の8画素(影を付してある部分)は、空間領域において、注目ブロックBNDLの右隣のブロックBNDRの最左列の8画素(斜線を付してある部分)と隣接する。従って、注目ブロックBNDLの最右列の垂直1次元DCT係数に対する右隣接1次元DCT係数は、ブロックBNDRの最左列の8画素を垂直1次元DCT変換した垂直1次元DCT係数になる。
【0333】
図30は、注目マクロブロックMBNの右上のブロックBNURが注目ブロックであるとした場合に、空間領域において、注目ブロックBNURの上側の境界、即ち、最上行の8画素に隣接する隣接ブロックの画素列(上隣接画素列)を示している。
【0334】
なお、図30において、影を付してあるラインが、注目ブロックBNURの最上行の画素列を表し、斜線を付してあるラインが、上隣接画素列を表している。
【0335】
注目マクロブロックMBNの右上のブロックBNURが注目ブロックである場合の上に隣接するブロックは、注目マクロブロックMBNの中のブロックではない上隣接マクロブロックMBUの右下のブロックBUDRとなるから、注目ブロックBNU Rの最上行の画素列の上に隣接する上隣接画素列がいずれの画素列になるかは、注目マクロブロックMBNと、上隣接マクロブロックMBUの両方の構造を考慮する必要がある。
【0336】
即ち、注目マクロブロックMBNと上隣接マクロブロックMBUのDCTタイプが、いずれもフレームDCTの場合は、注目ブロックBNURは、注目マクロブロックMBNの右上の8×8画素であり、図30Aに示すように、その最上行の8画素(影を付してある部分)は、空間領域において、フレーム構造の上隣接マクロブロックMBUの右下のブロックBUDRの最下行の8画素(斜線を付してある部分)と隣接する。従って、注目ブロックBNURの最上行の水平1次元DCT係数に対する上隣接1次元DCT係数は、ブロックBUDRの最下行の8画素を水平1次元DCT変換した水平1次元DCT係数になる。
【0337】
注目マクロブロックMBNのDCTタイプが、フレームDCTであり、上隣接マクロブロックMBUのDCTタイプが、フィールドDCTの場合は、注目ブロックBNURは、注目マクロブロックMBNの右上の8×8画素であり、図30Bに示すように、その最上行の8画素(影を付してある部分)は、空間領域において、フィールド構造の上隣接マクロブロックMBUの右下ブロックBUDRの最下行の8画素(斜線を付してある部分)と隣接する。従って、注目ブロックBNURの最上行の水平1次元DCT係数に対する上隣接1次元DCT係数は、ブロックBUDRの最下行の8画素を水平1次元DCT変換した水平1次元DCT係数になる。
【0338】
注目マクロブロックMBNのDCTタイプが、フィールドDCTであり、上隣接マクロブロックMBUのDCTタイプが、フレームDCTの場合は、注目ブロックBNURは、注目マクロブロックMBNの8つの奇数ラインの右側の8画素であり、図30Cに示すように、その最上行の8画素(影を付してある部分)は、空間領域において、フレーム構造の上隣接マクロブロックMBUの右下のブロックBUDRの第7行目の8画素(斜線を付してある部分)と隣接する。従って、注目ブロックBNURの最上行の水平1次元DCT係数に対する上隣接1次元DCT係数は、ブロックBUDRの第7行の8画素を水平1次元DCT変換した水平1次元DCT係数になる。
【0339】
注目マクロブロックMBNのDCTタイプが、フィールドDCTであり、上隣接マクロブロックMBUのDCTタイプも、フィールドDCTの場合は、注目ブロックBNURは、注目マクロブロックMBNの8つの奇数ラインの右側の8画素であり、図30Dに示すように、その最上行の8画素(影を付してある部分)は、空間領域において、フィールド構造の上隣接マクロブロックMBUの右上のブロックBUURの最下行の8画素(斜線を付してある部分)と隣接する。従って、注目ブロックBNURの最上行の水平1次元DCT係数に対する上隣接1次元DCT係数は、ブロックBUURの最下行の8画素を水平1次元DCT変換した水平1次元DCT係数になる。
【0340】
次に、図31は、注目マクロブロックMBNの右上のブロックBNURが注目ブロックであるとした場合に、空間領域において、注目ブロックBNURの下側の境界、即ち、最下行の8画素に隣接する隣接ブロックの画素列(下隣接画素列)を示している。
【0341】
なお、図31において、影を付してあるラインが、注目ブロックBNURの最下行の画素列を表し、斜線を付してあるラインが、下隣接画素列を表している。
【0342】
注目マクロブロックMBNの右上のブロックBNURが注目ブロックである場合の下に隣接するブロックは、注目マクロブロックMBNの中の右下のブロックBNDRとなるから、注目ブロックBNURの最下行の画素列の下に隣接する下隣接画素列がいずれの画素列になるかは、注目マクロブロックMBNの構造のみを考慮すれば良い。
【0343】
即ち、注目マクロブロックMBNのDCTタイプが、フレームDCTの場合は、注目ブロックBNURは、注目マクロブロックMBNの右上の8×8画素であり、図31Aに示すように、その最下行の8画素(影を付してある部分)は、空間領域において、フレーム構造の注目マクロブロックMBNの右下のブロックBNDRの最上行の8画素(斜線を付してある部分)と隣接する。従って、注目ブロックBNURの最下行の水平1次元DCT係数に対する下隣接1次元DCT係数は、ブロックBNDRの最上行の8画素を水平1次元DCT変換した水平1次元DCT係数になる。
【0344】
注目マクロブロックMBNのDCTタイプが、フィールドDCTである場合は、注目ブロックBNURは、注目マクロブロックMBNの8つの奇数ラインの右側の8画素であり、図31Bに示すように、その最下行の8画素(影を付してある部分)は、空間領域において、フレーム構造の注目マクロブロックMBNの下に隣接する下隣接マクロブロックMBDの右上のブロックBDURの最上行の8画素(斜線を付してある部分)と隣接する。従って、注目ブロックBNURの最下行の水平1次元DCT係数に対する下隣接1次元DCT係数は、ブロックBDURの最上行の8画素を水平1次元DCT変換した水平1次元DCT係数になる。
【0345】
次に、図32は、注目マクロブロックMBNの右上のブロックBNURが注目ブロックであるとした場合に、空間領域において、注目ブロックBNURの左側の境界、即ち、最左列の8画素に隣接する隣接ブロックの画素列(左隣接画素列)を示している。
【0346】
なお、図32において、影を付してあるラインが、注目ブロックBNURの最左列の画素列を表し、斜線を付してあるラインが、左隣接画素列を表している。
【0347】
注目マクロブロックMBNの右上のブロックBNURが注目ブロックである場合の左に隣接するブロックは、注目マクロブロックMBNの中の左上のブロックBNULになるから、注目ブロックBNURの最左列の画素列の左に隣接する左隣接画素列は、必ず、ブロックBNULの最右列の8画素となるので、注目マクロブロックMBNや、その注目マクロブロックMBNに隣接するマクロブロックの構造を考慮する必要はない。
【0348】
即ち、注目マクロブロックMBNの右上のブロックBNURが注目ブロックである場合には、図32に示すように、その最左列の8画素(影を付してある部分)は、空間領域において、注目ブロックBNURの左隣のブロックBNULの最右列の8画素(斜線を付してある部分)と隣接する。従って、注目ブロックBNURの最左列の垂直1次元DCT係数に対する左隣接1次元DCT係数は、ブロックBNULの最右列の8画素を垂直1次元DCT変換した垂直1次元DCT係数になる。
【0349】
次に、図33は、注目マクロブロックMBNの右上のブロックBNURが注目ブロックであるとした場合に、空間領域において、注目ブロックBNURの右側の境界、即ち、最右列の8画素に隣接する隣接ブロックの画素列(右隣接画素列)を示している。
【0350】
なお、図33において、影を付してあるラインが、注目ブロックBNURの最右列の画素列を表し、斜線を付してあるラインが、右隣接画素列を表している。
【0351】
注目マクロブロックMBNの右上のブロックBNURが注目ブロックである場合の右に隣接するブロックは、注目マクロブロックMBNの中のブロックではない右隣接マクロブロックMBRの左上のブロックBRULとなるから、注目ブロックBNURの最右列の画素列の右に隣接する右隣接画素列がいずれの画素列になるかは、注目マクロブロックMBNと、右隣接マクロブロックMBRの両方の構造を考慮する必要がある。
【0352】
即ち、注目マクロブロックMBNと右隣接マクロブロックMBRのDCTタイプが、いずれもフレームDCTの場合は、注目ブロックBNURは、注目マクロブロックMBNの右上の8×8画素であり、図33Aに示すように、その最右列の8画素(影を付してある部分)は、空間領域において、フレーム構造の右隣接マクロブロックMBRの左上のブロックBRULの最左列の8画素(斜線を付してある部分)と隣接する。従って、注目ブロックBNURの最右列の垂直1次元DCT係数に対する右隣接1次元DCT係数は、ブロックBRULの最左列の8画素を垂直1次元DCT変換した垂直1次元DCT係数になる。
【0353】
注目マクロブロックMBNのDCTタイプが、フレームDCTであり、右隣接マクロブロックMBRのDCTタイプが、フィールドDCTの場合は、注目ブロックBNURは、注目マクロブロックMBNの右上の8×8画素であり、図33Bに示すように、その最左列の8画素(影を付してある部分)は、空間領域において、フィールド構造の右隣接マクロブロックMBLの左上のブロックBRULにおける最左列の上4画素と、その左下のブロックBRDLにおける最左列の上4画素の合計8画素(斜線を付してある部分)と隣接する。従って、注目ブロックBNURの最右列の垂直1次元DCT係数に対する右隣接1次元DCT係数は、ブロックBRULにおける最左列の上4画素とブロックBRDLにおける最左列の上4画素の合計8画素を垂直1次元DCT変換した垂直1次元DCT係数になる。
【0354】
注目マクロブロックMBNのDCTタイプが、フィールドDCTであり、右隣接マクロブロックMBRのDCTタイプが、フレームDCTの場合は、注目ブロックBNURは、注目マクロブロックMBNの8つの奇数ラインの右側の8画素であり、図33Cに示すように、その最右列の8画素(影を付してある部分)は、空間領域において、フレーム構造の右隣接マクロブロックMBRの左上のブロックBRULにおける最左列の奇数行の4画素と、その左下のブロックBRDLにおける奇数行の4画素の合計8画素(斜線を付してある部分)と隣接する。従って、注目ブロックBNURの最右列の垂直1次元DCT係数に対する右隣接1次元DCT係数は、ブロックBRULにおける最右列の奇数行の4画素とブロックBRDLにおける奇数行の4画素の合計8画素を垂直1次元DCT変換した垂直1次元DCT係数になる。
【0355】
注目マクロブロックMBNのDCTタイプが、フィールドDCTであり、右隣接マクロブロックMBRのDCTタイプも、フィールドDCTの場合は、注目ブロックBNURは、注目マクロブロックMBNの8つの奇数ラインの右側の8画素であり、図33Dに示すように、その最右列の8画素(影を付してある部分)は、空間領域において、フィールド構造の右隣接マクロブロックMBRの左上のブロックBRULの最左列の8画素(斜線を付してある部分)と隣接する。従って、注目ブロックBNURの最右列の垂直1次元DCT係数に対する右隣接1次元DCT係数は、ブロックBRULの最左列の8画素を垂直1次元DCT変換した垂直1次元DCT係数になる。
【0356】
次に、図34は、注目マクロブロックMBNの右下のブロックBNDRが注目ブロックであるとした場合に、空間領域において、注目ブロックBNDRの上側の境界、即ち、最上行の8画素に隣接する隣接ブロックの画素列(上隣接画素列)を示している。
【0357】
なお、図34において、影を付してあるラインが、注目ブロックBNDRの最上行の画素列を表し、斜線を付してあるラインが、上隣接画素列を表している。
【0358】
注目マクロブロックMBNの右下のブロックBNDRが注目ブロックである場合の上に隣接するブロックは、注目マクロブロックMBNの中の右上のブロックBNURとなるから、注目ブロックBNDRの最上行の画素列の上に隣接する上隣接画素列がいずれの画素列になるかは、注目マクロブロックMBNの構造のみを考慮すれば良い。
【0359】
即ち、注目マクロブロックMBNのDCTタイプが、フレームDCTの場合は、注目ブロックBNDRは、注目マクロブロックMBNの右下の8×8画素であり、図34Aに示すように、その最上行の8画素(影を付してある部分)は、空間領域において、フレーム構造の注目マクロブロックMBNの右下のブロックBNDRの最上行の8画素(斜線を付してある部分)と隣接する。従って、注目ブロックBNDRの最上行の水平1次元DCT係数に対する上隣接1次元DCT係数は、ブロックBNDRの最上行の8画素を水平1次元DCT変換した水平1次元DCT係数になる。
【0360】
注目マクロブロックMBNのDCTタイプが、フィールドDCTである場合は、注目ブロックBNDRは、注目マクロブロックMBNの8つの偶数ラインの右側の8画素であり、図34Bに示すように、その最上行の8画素(影を付してある部分)は、空間領域において、フレーム構造の注目マクロブロックMBNの上に隣接する上隣接マクロブロックMBUの右下のブロックBUDRの最下行の8画素(斜線を付してある部分)と隣接する。従って、注目ブロックBNDRの最上行の水平1次元DCT係数に対する上隣接1次元DCT係数は、ブロックBUDRの最下行の8画素を水平1次元DCT変換した水平1次元DCT係数になる。
【0361】
次に、図35は、注目マクロブロックMBNの右下のブロックBNDRが注目ブロックであるとした場合に、空間領域において、注目ブロックBNDRの下側の境界、即ち、最下行の8画素に隣接する隣接ブロックの画素列(下隣接画素列)を示している。
【0362】
なお、図35において、影を付してあるラインが、注目ブロックBNDRの最下行の画素列を表し、斜線を付してあるラインが、下隣接画素列を表している。
【0363】
注目マクロブロックMBNの右下のブロックBNDRが注目ブロックである場合の下に隣接するブロックは、注目マクロブロックMBNの中のブロックではない下隣接マクロブロックMBDの右上のブロックBDURとなるから、注目ブロックBNDRの最下行の画素列の下に隣接する下隣接画素列がいずれの画素列になるかは、注目マクロブロックMBNと、下隣接マクロブロックMBDの両方の構造を考慮する必要がある。
【0364】
即ち、注目マクロブロックMBNと下隣接マクロブロックMBDのDCTタイプが、いずれもフレームDCTの場合は、注目ブロックBNDRは、注目マクロブロックMBNの右下の8×8画素であり、図35Aに示すように、その最下行の8画素(影を付してある部分)は、空間領域において、フレーム構造の下隣接マクロブロックMBDの右上のブロックBDURの最上行の8画素(斜線を付してある部分)と隣接する。従って、注目ブロックBNDRの最下行の水平1次元DCT係数に対する下隣接1次元DCT係数は、ブロックBDURの最上行の8画素を水平1次元DCT変換した水平1次元DCT係数になる。
【0365】
注目マクロブロックMBNのDCTタイプが、フレームDCTであり、下隣接マクロブロックMBDのDCTタイプが、フィールドDCTの場合は、注目ブロックBNDRは、注目マクロブロックMBNの右下の8×8画素であり、図35Bに示すように、その最下行の8画素(影を付してある部分)は、空間領域において、フィールド構造の下隣接マクロブロックMBDの右上のブロックBDURの最上行の8画素(斜線を付してある部分)と隣接する。従って、注目ブロックBNDRの最下行の水平1次元DCT係数に対する下隣接1次元DCT係数は、ブロックBDURの最上行の8画素を水平1次元DCT変換した水平1次元DCT係数になる。
【0366】
注目マクロブロックMBNのDCTタイプが、フィールドDCTであり、下隣接マクロブロックMBDのDCTタイプが、フレームDCTの場合は、注目ブロックBNDRは、注目マクロブロックMBNの8つの偶数ラインの右側の8画素であり、図35Cに示すように、その最下行の8画素(影を付してある部分)は、空間領域において、フレーム構造の下隣接マクロブロックMBDの右上のブロックBDURの第2行目の8画素(斜線を付してある部分)と隣接する。従って、注目ブロックBNDRの最下行の水平1次元DCT係数に対する下隣接1次元DCT係数は、ブロックBDURの第2行目の8画素を水平1次元DCT変換した水平1次元DCT係数になる。
【0367】
注目マクロブロックMBNのDCTタイプが、フィールドDCTであり、下隣接マクロブロックMBDのDCTタイプも、フィールドDCTの場合は、注目ブロックBNDRは、注目マクロブロックMBNの8つの偶数ラインの右側の8画素であり、図35Dに示すように、その最下行の8画素(影を付してある部分)は、空間領域において、フィールド構造の下隣接マクロブロックMBDの右下のブロックBDDRの最上行の8画素(斜線を付してある部分)と隣接する。従って、注目ブロックBNDRの最下行の水平1次元DCT係数に対する下隣接1次元DCT係数は、ブロックBDDRの最上行の8画素を水平1次元DCT変換した水平1次元DCT係数になる。
【0368】
次に、図36は、注目マクロブロックMBNの右下のブロックBNDRが注目ブロックであるとした場合に、空間領域において、注目ブロックBNDRの左側の境界、即ち、最左列の8画素に隣接する隣接ブロックの画素列(左隣接画素列)を示している。
【0369】
なお、図36において、影を付してあるラインが、注目ブロックBNDRの最左列の画素列を表し、斜線を付してあるラインが、左隣接画素列を表している。
【0370】
注目マクロブロックMBNの右下のブロックBNDRが注目ブロックである場合の左に隣接するブロックは、注目マクロブロックMBNの中の左下のブロックBNDLになるから、注目ブロックBNDRの最左列の画素列の左に隣接する左隣接画素列は、必ず、ブロックNDLの最右列の8画素となるので、注目マクロブロックMBNや、その注目マクロブロックMBNに隣接するマクロブロックの構造を考慮する必要はない。
【0371】
即ち、注目マクロブロックMBNの右下のブロックBNDRが注目ブロックである場合には、図36に示すように、その最左列の8画素(影を付してある部分)は、空間領域において、注目ブロックBNDRの左隣のブロックBNDLの最右列の8画素(斜線を付してある部分)と隣接する。従って、注目ブロックBNDRの最左列の垂直1次元DCT係数に対する左隣接1次元DCT係数は、ブロックBNDLの最右列の8画素を垂直1次元DCT変換した垂直1次元DCT係数になる。
【0372】
次に、図37は、注目マクロブロックMBNの右下のブロックBNDRが注目ブロックであるとした場合に、空間領域において、注目ブロックBNDRの右側の境界、即ち、最右列の8画素に隣接する隣接ブロックの画素列(右隣接画素列)を示している。
【0373】
なお、図37において、影を付してあるラインが、注目ブロックBNDRの最右列の画素列を表し、斜線を付してあるラインが、右隣接画素列を表している。
【0374】
注目マクロブロックMBNの右下のブロックBNDRが注目ブロックである場合の右に隣接するブロックは、注目マクロブロックMBNの中のブロックではない右隣接マクロブロックMBRの右下のブロックBRDLとなるから、注目ブロックBNDRの最右列の画素列の右に隣接する右隣接画素列がいずれの画素列になるかは、注目マクロブロックMBNと、右隣接マクロブロックMBRの両方の構造を考慮する必要がある。
【0375】
即ち、注目マクロブロックMBNと右隣接マクロブロックMBRのDCTタイプが、いずれもフレームDCTの場合は、注目ブロックBNDRは、注目マクロブロックMBNの右下の8×8画素であり、図37Aに示すように、その最右列の8画素(影を付してある部分)は、空間領域において、フレーム構造の右隣接マクロブロックMBRの左下のブロックBRDLの最左列の8画素(斜線を付してある部分)と隣接する。従って、注目ブロックBNDRの最右列の垂直1次元DCT係数に対する右隣接1次元DCT係数は、ブロックBRDLの最左列の8画素を垂直1次元DCT変換した垂直1次元DCT係数になる。
【0376】
注目マクロブロックMBNのDCTタイプが、フレームDCTであり、右隣接マクロブロックMBRのDCTタイプが、フィールドDCTの場合は、注目ブロックBNDRは、注目マクロブロックMBNの右下の8×8画素であり、図37Bに示すように、その最右列の8画素(影を付してある部分)は、空間領域において、フィールド構造の右隣接マクロブロックMBRの左上のブロックBRULにおける最左列の下4画素と、その左下のブロックBRDLにおける最左列の下4画素の合計8画素(斜線を付してある部分)と隣接する。従って、注目ブロックBNDRの最右列の垂直1次元DCT係数に対する右隣接1次元DCT係数は、ブロックBRULにおける最左列の下4画素とブロックBRDLにおける最左列の下4画素の合計8画素を垂直1次元DCT変換した垂直1次元DCT係数になる。
【0377】
注目マクロブロックMBNのDCTタイプが、フィールドDCTであり、右隣接マクロブロックMBRのDCTタイプが、フレームDCTの場合は、注目ブロックBNDRは、注目マクロブロックMBNの8つの偶数ラインの左側の8画素であり、図37Cに示すように、その最右列の8画素(影を付してある部分)は、空間領域において、フレーム構造の右隣接マクロブロックMBRの左上のブロックBRULにおける最左列の偶数行の4画素と、その左下のブロックBRDLにおける最左列の偶数行の4画素の合計8画素(斜線を付してある部分)と隣接する。従って、注目ブロックBNDRの最左列の垂直1次元DCT係数に対する右隣接1次元DCT係数は、ブロックBRULにおける最左列の偶数行の4画素とブロックBRDLにおける偶数行の4画素の合計8画素を垂直1次元DCT変換した垂直1次元DCT係数になる。
【0378】
注目マクロブロックMBNのDCTタイプが、フィールドDCTであり、右隣接マクロブロックMBRのDCTタイプも、フィールドDCTの場合は、注目ブロックBNDRは、注目マクロブロックMBNの8つの偶数ラインの右側の8画素であり、図37Dに示すように、その最右列の8画素(影を付してある部分)は、空間領域において、フィールド構造の右隣接マクロブロックMBRの左下のブロックBRDLの最左列の8画素(斜線を付してある部分)と隣接する。従って、注目ブロックBNDRの最右列の垂直1次元DCT係数に対する右隣接1次元DCT係数は、ブロックBRDLの最左列の8画素を垂直1次元DCT変換した垂直1次元DCT係数になる。
【0379】
次に、図38は、図22乃至図37で説明したような、注目ブロックに対する隣接1次元DCT係数(上隣接1次元DCT係数、下隣接1次元DCT係数、左隣接1次元DCT係数、および右隣接1次元DCT係数)を取得する、図19の隣接1次元DCT係数選択/変換部32の構成例を示している。
【0380】
隣接1次元DCT係数選択/変換部32において、1次元逆DCT変換部31(図19)が出力する1次元DCT係数(水平1次元DCT係数および垂直1次元DCT係数)は、メモリ81に供給されるようになっており、バッファメモリ23(図26)に記憶された注目マクロブロックと隣接マクロブロック(上隣接マクロブロック、下隣接マクロブロック、左隣接マクロブロック、および右隣接マクロブロック)のDCTタイプは、サンプリング部83および選択部85に供給されるようになっている。
【0381】
制御部80は、隣接1次元DCT係数選択/変換部32を構成する各ブロックを制御する。
【0382】
メモリ81は、1次元逆DCT変換部31(図19)が出力する1次元DCT係数を、一時記憶する。
【0383】
垂直1次元逆DCT変換部82は、メモリ81に記憶された垂直1次元DCT係数を読み出して、垂直1次元逆DCT変換し、これにより、横×縦が1×8の画素列を得て出力する。垂直1次元逆DCT変換部82が出力する1×8の画素列は、サンプリング部83に供給される。
【0384】
サンプリング部83は、バッファメモリ23(図14)に記憶された注目マクロブロックと隣接マクロブロックのDCTタイプに基づき、垂直1次元逆DCT変換部83から供給される画素列を対象としたサンプリングを行い、そのサンプリングの結果得られる画素から、1×8の画素列を再構成して、垂直1次元DCT変換部84に供給する。
【0385】
垂直1次元DCT変換部84は、サンプリング部83から供給される1×8の画素列を、垂直1次元DCT変換し、これにより、横×縦が1×8の垂直1次元DCT係数を得て、選択部85に供給する。
【0386】
選択部85は、メモリ81に記憶された水平1次元DCT係数もしくは垂直1次元DCT係数、または垂直1次元DCT変換部84が出力する垂直1次元DCT係数を選択し、隣接1次元DCT係数として出力する。
【0387】
以上のように構成される隣接1次元DCT係数選択/変換部32では、メモリ81に、注目マクロブロック、上隣接マクロブロック、下隣接マクロブロック、左隣接マクロブロック、および右隣接マクロブロックの1次元DCT係数が供給されて記憶される。また、サンプリング部83および選択部85には、注目マクロブロック、上隣接マクロブロック、下隣接マクロブロック、左隣接マクロブロック、および右隣接マクロブロックのDCTタイプが供給される。
【0388】
そして、制御部80が、注目マクロブロックにおける注目ブロックの位置を判定し、注目ブロックが、注目ブロックの左上、左下、右上、または右下のブロックであると判定された場合、図39乃至図42に示す左上ブロック処理、左下ブロック処理、右上ブロック処理、または右下ブロック処理がそれぞれ行われる。
【0389】
図39は、図38の隣接1次元DCT係数選択/変換部32が行う左上ブロック処理を示すフローチャートである。
【0390】
左上ブロック処理では、注目マクロブロックの左上のブロックBNULについて、上隣接1次元DCT係数、下隣接1次元DCT係数、左隣接1次元DCT係数、右隣接1次元DCT係数が取得される。
【0391】
即ち、左上ブロック処理では、まず最初に、ステップS11において、選択部85が、注目マクロブロックと上隣接マクロブロックのDCTタイプを判定する。
【0392】
ステップS11において、注目マクロブロックと上隣接マクロブロックのDCTタイプが、いずれもフレームDCTであると判定された場合、ステップS12に進み、選択部85は、図22Aで説明したように、上隣接マクロブロックMBUの左下のブロックBUDLにおける最下行の8画素を水平1次元DCT変換した水平1次元DCT係数を、上隣接1次元DCT係数として取得する。
【0393】
即ち、注目ブロックが、注目マクロブロックの左上のブロックBNULである場合において、注目マクロブロックと上隣接マクロブロックが、いずれもフレーム構造であるときには、上隣接1次元DCT係数は、図22Aで説明したように、上隣接マクロブロックMBUの左下のブロックBUDLにおける最下行の8画素を水平1次元DCT変換した水平1次元DCT係数であり、この水平1次元DCT係数は、ブロックBUDLの第8行の水平1次元DCT係数である。ブロックBUDLの第8行の水平1次元DCT係数は、メモリ81に記憶されており、選択部85は、ステップS12において、メモリ81から、ブロックBUDLの第8行の水平1次元DCT係数を読み出して選択し、上隣接1次元DCT係数として出力する。
【0394】
また、ステップS11において、注目マクロブロックのDCTタイプがフレームDCTであり、上隣接マクロブロックのDCTタイプがフィールドDCTであると判定された場合、ステップS13に進み、選択部85は、図22Bで説明したように、上隣接マクロブロックMBUの左下のブロックBUDLの最下行の8画素を水平1次元DCT変換した水平1次元DCT係数を、上隣接1次元DCT係数として取得する。
【0395】
即ち、注目ブロックが、注目マクロブロックの左上のブロックBNULである場合において、注目マクロブロックがフレーム構造であり、上隣接マクロブロックがフィールド構造であるときには、上隣接1次元DCT係数は、図22Bで説明したように、上隣接マクロブロックMBUの左下のブロックBUDLにおける最下行の8画素を水平1次元DCT変換した水平1次元DCT係数であり、この水平1次元DCT係数は、ブロックBUDLの第8行の水平1次元DCT係数である。ブロックBUDLの第8行の水平1次元DCT係数は、メモリ81に記憶されており、選択部85は、ステップS13において、メモリ81から、ブロックBUDLの第8行の水平1次元DCT係数を読み出して選択し、上隣接1次元DCT係数として出力する。
【0396】
また、ステップS11において、注目マクロブロックのDCTタイプがフィールドDCTであり、上隣接マクロブロックのDCTタイプがフレームDCTであると判定された場合、ステップS14に進み、選択部85は、図22Cで説明したように、上隣接マクロブロックMBUの左下ブロックBUDLの第7行目の8画素を水平1次元DCT変換した水平1次元DCT係数を、上隣接1次元DCT係数として取得する。
【0397】
即ち、注目ブロックが、注目マクロブロックの左上のブロックBNULである場合において、注目マクロブロックがフィールド構造であり、上隣接マクロブロックがフレーム構造であるときには、上隣接1次元DCT係数は、図22Cで説明したように、上隣接マクロブロックMBUの左下ブロックBUDLの第7行目の8画素を水平1次元DCT変換した水平1次元DCT係数であり、この水平1次元DCT係数は、ブロックBUDLの第7行の水平1次元DCT係数である。ブロックBUDLの第7行の水平1次元DCT係数は、メモリ81に記憶されており、選択部85は、ステップS14において、メモリ81から、ブロックBUDLの第7行の水平1次元DCT係数を読み出して選択し、上隣接1次元DCT係数として出力する。
【0398】
また、ステップS11において、注目マクロブロックと上隣接マクロブロックのDCTタイプが、いずれもフィールドDCTであると判定された場合、ステップS15に進み、選択部85は、図22Dで説明したように、上隣接マクロブロックMBUの左上のブロックBUULの最下行の8画素を水平1次元DCT変換した水平1次元DCT係数を、上隣接1次元DCT係数として取得する。
【0399】
即ち、注目ブロックが、注目マクロブロックの左上のブロックBNULである場合において、注目マクロブロックと上隣接マクロブロックが、いずれもフィールド構造であるときには、上隣接1次元DCT係数は、図22Dで説明したように、上隣接マクロブロックMBUの左上のブロックBUULの最下行の8画素を水平1次元DCT変換した水平1次元DCT係数であり、この水平1次元DCT係数は、ブロックBUULの第8行の水平1次元DCT係数である。ブロックBUULの第8行の水平1次元DCT係数は、メモリ81に記憶されており、選択部85は、ステップS15において、メモリ81から、ブロックBUULの第8行の水平1次元DCT係数を読み出して選択し、上隣接1次元DCT係数として出力する。
【0400】
ステップS12乃至S15の処理後は、いずれも、ステップS16に進み、選択部85が、注目マクロブロックのDCTタイプを判定する。
【0401】
ステップS16において、注目マクロブロックのDCTタイプがフレームDCTであると判定された場合、ステップS17に進み、選択部85は、図23Aで説明したように、注目マクロブロックMBNの左下のブロックBNDLの最上行の8画素を水平1次元DCT変換した水平1次元DCT係数を、下隣接1次元DCT係数として取得する。
【0402】
即ち、注目ブロックが、注目マクロブロックの左上のブロックBNULである場合において、注目マクロブロックがフレーム構造であるときには、下隣接1次元DCT係数は、図23Aで説明したように、注目マクロブロックMBNの左下のブロックBNDLの最上行の8画素を水平1次元DCT変換した水平1次元DCT係数であり、この水平1次元DCT係数は、ブロックBNDLの第1行の水平1次元DCT係数である。ブロックBNDLの第1行の水平1次元DCT係数は、メモリ81に記憶されており、選択部85は、ステップS17において、メモリ81から、ブロックBNDLの第1行の水平1次元DCT係数を読み出して選択し、下隣接1次元DCT係数として出力する。
【0403】
また、ステップS16において、注目マクロブロックのDCTタイプがフィールドDCTであると判定された場合、ステップS18に進み、選択部85は、図23Bで説明したように、下隣接マクロブロックMBDの左上のブロックBDULの最上行の8画素を水平1次元DCT変換した水平1次元DCT係数を、下隣接1次元DCT係数として取得する。
【0404】
即ち、注目ブロックが、注目マクロブロックの左上のブロックBNULである場合において、注目マクロブロックがフィールド構造であるときには、下隣接1次元DCT係数は、図23Bで説明したように、下隣接マクロブロックMBDの左上のブロックBDULの最上行の8画素を水平1次元DCT変換した水平1次元DCT係数であり、この水平1次元DCT係数は、ブロックBDULの第1行の水平1次元DCT係数である。ブロックBDULの第1行の水平1次元DCT係数は、メモリ81に記憶されており、選択部85は、ステップS18において、メモリ81から、ブロックBDULの第1行の水平1次元DCT係数を読み出して選択し、下隣接1次元DCT係数として出力する。
【0405】
ステップS17およびS18の処理後は、いずれも、ステップS19に進み、サンプリング部83および選択部85が、注目マクロブロックと左隣接マクロブロックのDCTタイプを判定する。
【0406】
ステップS19において、注目マクロブロックと左隣接マクロブロックのDCTタイプが、いずれもフレームDCTであると判定された場合、ステップS20に進み、選択部85は、図24Aで説明したように、左隣接マクロブロックMBLの右上のブロックBLURの最右列の8画素を垂直1次元DCT変換した垂直1次元DCT係数を、左隣接1次元DCT係数として取得する。
【0407】
即ち、注目ブロックが、注目マクロブロックの左上のブロックBNULである場合において、注目マクロブロックと左隣接マクロブロックが、いずれもフレーム構造であるときには、左隣接1次元DCT係数は、図24Aで説明したように、左隣接マクロブロックMBLの右上のブロックBLURの最右列の8画素を垂直1次元DCT変換した垂直1次元DCT係数であり、この垂直1次元DCT係数は、ブロックBLURの第8列(左から8列目)の垂直1次元DCT係数である。ブロックBLURの第8列の垂直1次元DCT係数は、メモリ81に記憶されており、選択部85は、ステップS20において、メモリ81から、ブロックBLURの第8列の垂直1次元DCT係数を読み出して選択し、左隣接1次元DCT係数として出力する。
【0408】
また、ステップS19において、注目マクロブロックのDCTタイプがフレームDCTであり、左隣接マクロブロックのDCTタイプがフィールドDCTであると判定された場合、ステップS21乃至S23に順次進み、選択部85は、図24Bで説明したように、左隣接マクロブロックMBLの右上のブロックBLURにおける最右列の上4画素と、その右下のブロックBLDRにおける最右列の上4画素の合計8画素を垂直1次元DCT変換した垂直1次元DCT係数を、左隣接1次元DCT係数として取得する。
【0409】
即ち、注目ブロックが、注目マクロブロックの左上のブロックBNULである場合において、注目マクロブロックがフレーム構造であり、左隣接マクロブロックがフィールド構造であるときには、左隣接1次元DCT係数は、図24Bで説明したように、左隣接マクロブロックMBLの右上のブロックBLURにおける最右列の上4画素と、その右下のブロックBLDRにおける最右列の上4画素の合計8画素を垂直1次元DCT変換した垂直1次元DCT係数となるが、このような垂直1次元DCT係数は、メモリ81に存在しない。
【0410】
そこで、サンプリング部83は、ブロックBLURの第8列の垂直1次元DCT係数と、ブロックBLDRの第8列の垂直1次元DCT係数の垂直1次元逆DCT変換を、垂直1次元逆DCT変換部82に要求する。
【0411】
垂直1次元逆DCT変換部82は、サンプリング部83からの要求に応じ、ステップS21において、ブロックBLURの第8列の垂直1次元DCT係数と、ブロックBLDRの第8列の垂直1次元DCT係数を、メモリ81から読み出し、垂直1次元逆DCT変換を施す。これにより、垂直1次元逆DCT変換部82は、ブロックBLURの第8列の8画素と、ブロックBLDRの第8列の8画素を得て、サンプリング部83に供給し、ステップS22に進む。
【0412】
ステップS22では、サンプリング部83は、垂直1次元逆DCT変換部82から供給されるブロックBLURの第8列の8画素のうちの上4画素をサンプリングするとともに、同じく垂直1次元逆DCT変換部82から供給されるブロックBLDRの第8列の8画素のうちの上4画素をサンプリングし、ブロックBLURの第8列からサンプリングした上4画素を奇数行(トップフィールド)に配置するとともに、ブロックBLDRの第8列からサンプリングした上4画素を偶数行(ボトムフィールド)に配置することにより、注目マクロブロックと同一のフレーム構造とした垂直方向に並ぶ8画素を、垂直1次元DCT変換部84に供給する。
【0413】
垂直1次元DCT変換部84は、サンプリング部83でサンプリングされた8画素を受信すると、ステップS23において、その8画素を、垂直1次元DCT変換し、これにより、左隣接マクロブロックMBLの右上のブロックBLURにおける最右列の上4画素と、その右下のブロックBLDRにおける最右列の上4画素の合計8画素を垂直1次元DCT変換した垂直1次元DCT係数を得て、選択部85に供給する。選択部85は、垂直1次元DCT変換部84から供給される垂直1次元DCT係数を選択し、左隣接1次元DCT係数として出力する。
【0414】
また、ステップS19において、注目マクロブロックのDCTタイプがフィールドDCTであり、左隣接マクロブロックのDCTタイプがフレームDCTであると判定された場合、ステップS24乃至S26に順次進み、選択部85は、図24Cで説明したように、左隣接マクロブロックMBLの右上のブロックBLURにおける最右列の奇数行の4画素と、その右下のブロックBLDRにおける奇数行の4画素の合計8画素を垂直1次元DCT変換した垂直1次元DCT係数を、左隣接1次元DCT係数として取得する。
【0415】
即ち、注目ブロックが、注目マクロブロックの左上のブロックBNULである場合において、注目マクロブロックがフィールド構造であり、左隣接マクロブロックがフレーム構造であるときには、左隣接1次元DCT係数は、図24Cで説明したように、左隣接マクロブロックMBLの右上のブロックBLURにおける最右列の奇数行の4画素と、その右下のブロックBLDRにおける奇数行の4画素の合計8画素を垂直1次元DCT変換した垂直1次元DCT係数となるが、そのような垂直1次元DCT係数は、メモリ81に存在しない。
【0416】
そこで、サンプリング部83は、ブロックBLURの第8列の垂直1次元DCT係数と、ブロックBLDRの第8列の垂直1次元DCT係数の垂直1次元逆DCT変換を、垂直1次元逆DCT変換部82に要求する。
【0417】
垂直1次元逆DCT変換部82は、サンプリング部83からの要求に応じ、ステップS24において、ブロックBLURの第8列の垂直1次元DCT係数と、ブロックBLDRの第8列の垂直1次元DCT係数を、メモリ81から読み出し、垂直1次元逆DCT変換を施す。これにより、垂直1次元逆DCT変換部82は、ブロックBLURの第8列の8画素と、ブロックBLDRの第8列の8画素を得て、サンプリング部83に供給し、ステップS25に進む。
【0418】
ステップS25では、サンプリング部83は、垂直1次元逆DCT変換部82から供給されるブロックBLURの第8列の8画素のうちの奇数行の4画素をサンプリングするとともに、同じく垂直1次元逆DCT変換部82から供給されるブロックBLDRの第8列の8画素のうちの奇数行の4画素をサンプリングし、ブロックBLURの第8列からサンプリングした奇数行の4画素を上側に配置するとともに、ブロックBLDRの第8列からサンプリングした奇数行の4画素を下側に配置することにより、注目マクロブロックと同一のフィールド(トップフィールド)構造とした垂直方向に並ぶ8画素を、垂直1次元DCT変換部84に供給する。
【0419】
垂直1次元DCT変換部84は、サンプリング部83でサンプリングされた8画素を受信すると、ステップS26において、その8画素を、垂直1次元DCT変換し、これにより、左隣接マクロブロックMBLの右上のブロックBLURにおける最右列の奇数行の4画素と、その右下のブロックBLDRにおける奇数行の4画素の合計8画素を垂直1次元DCT変換した垂直1次元DCT係数を得て、選択部85に供給する。選択部85は、垂直1次元DCT変換部84から供給される垂直1次元DCT係数を選択し、左隣接1次元DCT係数として出力する。
【0420】
また、ステップS19において、注目マクロブロックと左隣接マクロブロックのDCTタイプが、いずれもフィールドDCTであると判定された場合、ステップS27に進み、選択部85は、図24Dで説明したように、左隣接マクロブロックMBLの右上のブロックBLURの最右列の8画素を垂直1次元DCT変換した垂直1次元DCT係数を、左隣接1次元DCT係数として取得する。
【0421】
即ち、注目ブロックが、注目マクロブロックの左上のブロックBNULである場合において、注目マクロブロックと左隣接マクロブロックが、いずれもフィールド構造であるときには、左隣接1次元DCT係数は、図24Dで説明したように、左隣接マクロブロックMBLの右上のブロックBLURの最右列の8画素を垂直1次元DCT変換した垂直1次元DCT係数であり、この垂直1次元DCT係数は、ブロックBLURの第8列の垂直1次元DCT係数である。ブロックBLURの第8列の垂直1次元DCT係数は、メモリ81に記憶されており、選択部85は、ステップS27において、メモリ81から、ブロックBLURの第8列の垂直1次元DCT係数を読み出して選択し、左隣接1次元DCT係数として出力する。
【0422】
ステップS20,S23,S26、およびS27の処理後は、いずれも、ステップS28に進み、選択部85は、図25で説明したように、注目ブロックBNULの右隣のブロックBNURの最左列の8画素を垂直1次元DCT変換した垂直1次元DCT係数を、右隣接1次元DCT係数として取得する。
【0423】
即ち、注目ブロックが、注目マクロブロックの左上のブロックBNULである場合には、右隣接1次元DCT係数は、図25で説明したように、注目ブロックBNULの右隣のブロックBNURの最左列の8画素を垂直1次元DCT変換した垂直1次元DCT係数であり、この垂直1次元DCT係数は、ブロックBNURの第1列の垂直1次元DCT係数である。ブロックBNURの第1列の垂直1次元DCT係数は、メモリ81に記憶されており、選択部85は、ステップS28において、メモリ81から、ブロックBNURの第1列の垂直1次元DCT係数を読み出して選択し、右隣接1次元DCT係数として出力して、左上ブロック処理を終了する。
【0424】
次に、図40は、図38の隣接1次元DCT係数選択/変換部32が行う左下ブロック処理を示すフローチャートである。
【0425】
左下ブロック処理では、注目マクロブロックの左下のブロックBNDLについて、上隣接1次元DCT係数、下隣接1次元DCT係数、左隣接1次元DCT係数、右隣接1次元DCT係数が取得される。
【0426】
即ち、左下ブロック処理では、まず最初に、ステップS31において、選択部85が、注目マクロブロックのDCTタイプを判定する。
【0427】
ステップS31において、注目マクロブロックのDCTタイプがフレームDCTであると判定された場合、ステップS32に進み、選択部85は、図26Aで説明したように、注目マクロブロックMBNの左上のブロックBNULの最下行の8画素を水平1次元DCT変換した水平1次元DCT係数を、上隣接1次元DCT係数として取得する。
【0428】
即ち、注目ブロックが、注目マクロブロックの左下のブロックBNDLである場合において、注目マクロブロックがフレーム構造であるときには、上隣接1次元DCT係数は、図26Aで説明したように、注目マクロブロックMBNの左上のブロックBNULの最下行の8画素を水平1次元DCT変換した水平1次元DCT係数であり、この水平1次元DCT係数は、ブロックBNULの第8行の水平1次元DCT係数である。ブロックBNULの第8行の水平1次元DCT係数は、メモリ81に記憶されており、選択部85は、ステップS32において、メモリ81から、ブロックBNULの第8行の水平1次元DCT係数を読み出して選択し、上隣接1次元DCT係数として出力する。
【0429】
また、ステップS31において、注目マクロブロックのDCTタイプがフィールドDCTであると判定された場合、ステップS33に進み、選択部85は、図26Bで説明したように、上隣接マクロブロックMBUの左下のブロックBUDLの最下行の8画素を水平1次元DCT変換した水平1次元DCT係数を、上隣接1次元DCT係数として取得する。
【0430】
即ち、注目ブロックが、注目マクロブロックの左下のブロックBNDLである場合において、注目マクロブロックがフィールド構造であるときには、上隣接1次元DCT係数は、図26Bで説明したように、上隣接マクロブロックMBUの左下のブロックBUDLの最下行の8画素を水平1次元DCT変換した水平1次元DCT係数であり、この水平1次元DCT係数は、ブロックBUDLの第8行の水平1次元DCT係数である。ブロックBUDLの第1行の水平1次元DCT係数は、メモリ81に記憶されており、選択部85は、ステップS33において、メモリ81から、ブロックBUDLの第1行の水平1次元DCT係数を読み出して選択し、上隣接1次元DCT係数として出力する。
【0431】
ステップS32およびS33の処理後は、いずれも、ステップS34に進み、選択部85が、注目マクロブロックと下隣接マクロブロックのDCTタイプを判定する。
【0432】
ステップS34において、注目マクロブロックと下隣接マクロブロックのDCTタイプが、いずれもフレームDCTであると判定された場合、ステップS35に進み、選択部85は、図27Aで説明したように、下隣接マクロブロックMBDの左上のブロックBDULにおける最上行の8画素を水平1次元DCT変換した水平1次元DCT係数を、下隣接1次元DCT係数として取得する。
【0433】
即ち、注目ブロックが、注目マクロブロックの左下のブロックBNDLである場合において、注目マクロブロックと下隣接マクロブロックが、いずれもフレーム構造であるときには、下隣接1次元DCT係数は、図27Aで説明したように、下隣接マクロブロックMBDの左上のブロックBDULにおける最上行の8画素を水平1次元DCT変換した水平1次元DCT係数であり、この水平1次元DCT係数は、ブロックBDULの第1行の水平1次元DCT係数である。ブロックBDULの第1行の水平1次元DCT係数は、メモリ81に記憶されており、選択部85は、ステップS35において、メモリ81から、ブロックBDULの第1行の水平1次元DCT係数を読み出して選択し、下隣接1次元DCT係数として出力する。
【0434】
また、ステップS34において、注目マクロブロックのDCTタイプがフレームDCTであり、下隣接マクロブロックのDCTタイプがフィールドDCTであると判定された場合、ステップS36に進み、選択部85は、図27Bで説明したように、下隣接マクロブロックMBDの左上のブロックBDULの最上行の8画素を水平1次元DCT変換した水平1次元DCT係数を、下隣接1次元DCT係数として取得する。
【0435】
即ち、注目ブロックが、注目マクロブロックの左下のブロックBNDLである場合において、注目マクロブロックがフレーム構造であり、下隣接マクロブロックがフィールド構造であるときには、下隣接1次元DCT係数は、図27Bで説明したように、下隣接マクロブロックMBDの左上のブロックBDULにおける最下行の8画素を水平1次元DCT変換した水平1次元DCT係数であり、この水平1次元DCT係数は、ブロックBDULの第1行の水平1次元DCT係数である。ブロックBDULの第1行の水平1次元DCT係数は、メモリ81に記憶されており、選択部85は、ステップS36において、メモリ81から、ブロックBDULの第1行の水平1次元DCT係数を読み出して選択し、下隣接1次元DCT係数として出力する。
【0436】
また、ステップS34において、注目マクロブロックのDCTタイプがフィールドDCTであり、下隣接マクロブロックのDCTタイプがフレームDCTであると判定された場合、ステップS37に進み、選択部85は、図27Cで説明したように、下隣接マクロブロックMBDの左上のブロックBDULの第2行目の8画素を水平1次元DCT変換した水平1次元DCT係数を、下隣接1次元DCT係数として取得する。
【0437】
即ち、注目ブロックが、注目マクロブロックの左下のブロックBNDLである場合において、注目マクロブロックがフィールド構造であり、下隣接マクロブロックがフレーム構造であるときには、下隣接1次元DCT係数は、図27Cで説明したように、下隣接マクロブロックMBDの左上のブロックBDULの第2行目の8画素を水平1次元DCT変換した水平1次元DCT係数であり、この水平1次元DCT係数は、ブロックBDULの第2行の水平1次元DCT係数である。ブロックBDULの第2行の水平1次元DCT係数は、メモリ81に記憶されており、選択部85は、ステップS37において、メモリ81から、ブロックBDULの第2行の水平1次元DCT係数を読み出して選択し、下隣接1次元DCT係数として出力する。
【0438】
また、ステップS34において、注目マクロブロックと下隣接マクロブロックのDCTタイプが、いずれもフィールドDCTであると判定された場合、ステップS38に進み、選択部85は、図27Dで説明したように、下隣接マクロブロックMBDの左下のブロックBDDLの最上行の8画素を水平1次元DCT変換した水平1次元DCT係数を、下隣接1次元DCT係数として取得する。
【0439】
即ち、注目ブロックが、注目マクロブロックの左下のブロックBNDLである場合において、注目マクロブロックと下隣接マクロブロックが、いずれもフィールド構造であるときには、下隣接1次元DCT係数は、図27Dで説明したように、下隣接マクロブロックMBDの左下のブロックBDDLの最上行の8画素を水平1次元DCT変換した水平1次元DCT係数であり、この水平1次元DCT係数は、ブロックBDDLの第1行の水平1次元DCT係数である。ブロックBDDLの第1行の水平1次元DCT係数は、メモリ81に記憶されており、選択部85は、ステップS38において、メモリ81から、ブロックBDDLの第1行の水平1次元DCT係数を読み出して選択し、下隣接1次元DCT係数として出力する。
【0440】
ステップS35乃至S38の処理後は、いずれも、ステップS39に進み、サンプリング部83および選択部85が、注目マクロブロックと左隣接マクロブロックのDCTタイプを判定する。
【0441】
ステップS39において、注目マクロブロックと左隣接マクロブロックのDCTタイプが、いずれもフレームDCTであると判定された場合、ステップS40に進み、選択部85は、図28Aで説明したように、左隣接マクロブロックMBLの右下のブロックBLDRの最右列の8画素を垂直1次元DCT変換した垂直1次元DCT係数を、左隣接1次元DCT係数として取得する。
【0442】
即ち、注目ブロックが、注目マクロブロックの左下のブロックBNDLである場合において、注目マクロブロックと左隣接マクロブロックが、いずれもフレーム構造であるときには、左隣接1次元DCT係数は、図28Aで説明したように、左隣接マクロブロックMBLの右下のブロックBLDRの最右列の8画素を垂直1次元DCT変換した垂直1次元DCT係数であり、この垂直1次元DCT係数は、ブロックBLDRの第8列の垂直1次元DCT係数である。ブロックBLDRの第8列の垂直1次元DCT係数は、メモリ81に記憶されており、選択部85は、ステップS40において、メモリ81から、ブロックBLDRの第8列の垂直1次元DCT係数を読み出して選択し、左隣接1次元DCT係数として出力する。
【0443】
また、ステップS39において、注目マクロブロックのDCTタイプがフレームDCTであり、左隣接マクロブロックのDCTタイプがフィールドDCTであると判定された場合、ステップS41乃至S43に順次進み、選択部85は、図28Bで説明したように、左隣接マクロブロックMBLの右上のブロックBLURにおける最右列の下4画素と、その右下のブロックBLDRにおける最右列の下4画素の合計8画素を垂直1次元DCT変換した垂直1次元DCT係数を、左隣接1次元DCT係数として取得する。
【0444】
即ち、注目ブロックが、注目マクロブロックの左下のブロックBNDLである場合において、注目マクロブロックがフレーム構造であり、左隣接マクロブロックがフィールド構造であるときには、左隣接1次元DCT係数は、図28Bで説明したように、左隣接マクロブロックMBLの右上のブロックBLURにおける最右列の上4画素と、その右下のブロックBLDRにおける最右列の上4画素の合計8画素を垂直1次元DCT変換した垂直1次元DCT係数となるが、このような垂直1次元DCT係数は、メモリ81に存在しない。
【0445】
そこで、サンプリング部83は、ブロックBLURの第8列の垂直1次元DCT係数と、ブロックBLDRの第8列の垂直1次元DCT係数の垂直1次元逆DCT変換を、垂直1次元逆DCT変換部82に要求する。
【0446】
垂直1次元逆DCT変換部82は、サンプリング部83からの要求に応じ、ステップS41において、ブロックBLURの第8列の垂直1次元DCT係数と、ブロックBLDRの第8列の垂直1次元DCT係数を、メモリ81から読み出し、垂直1次元逆DCT変換を施す。これにより、垂直1次元逆DCT変換部82は、ブロックBLURの第8列の8画素と、ブロックBLDRの第8列の8画素を得て、サンプリング部83に供給し、ステップS42に進む。
【0447】
ステップS42では、サンプリング部83は、垂直1次元逆DCT変換部82から供給されるブロックBLURの第8列の8画素のうちの下4画素をサンプリングするとともに、同じく垂直1次元逆DCT変換部82から供給されるブロックBLDRの第8列の8画素のうちの下4画素をサンプリングし、ブロックBLURの第8列からサンプリングした上4画素を奇数行(トップフィールド)に配置するとともに、ブロックBLDRの第8列からサンプリングした上4画素を偶数行(ボトムフィールド)に配置することにより、注目マクロブロックと同一のフレーム構造とした垂直方向に並ぶ8画素を、垂直1次元DCT変換部84に供給する。
【0448】
垂直1次元DCT変換部84は、サンプリング部83でサンプリングされた8画素を受信すると、ステップS43において、その8画素を、垂直1次元DCT変換し、これにより、左隣接マクロブロックMBLの右上のブロックBLURにおける最右列の上4画素と、その右下のブロックBLDRにおける最右列の上4画素の合計8画素を垂直1次元DCT変換した垂直1次元DCT係数を得て、選択部85に供給する。選択部85は、垂直1次元DCT変換部84から供給される垂直1次元DCT係数を選択し、左隣接1次元DCT係数として出力する。
【0449】
また、ステップS39において、注目マクロブロックのDCTタイプがフィールドDCTであり、左隣接マクロブロックのDCTタイプがフレームDCTであると判定された場合、ステップS44乃至S46に順次進み、選択部85は、図28Cで説明したように、左隣接マクロブロックMBLの右上のブロックBLURにおける最右列の偶数行の4画素と、その右下のブロックBLDRにおける偶数行の4画素の合計8画素を垂直1次元DCT変換した垂直1次元DCT係数を、左隣接1次元DCT係数として取得する。
【0450】
即ち、注目ブロックが、注目マクロブロックの左下のブロックBNDLである場合において、注目マクロブロックがフィールド構造であり、左隣接マクロブロックがフレーム構造であるときには、左隣接1次元DCT係数は、図28Cで説明したように、左隣接マクロブロックMBLの右上のブロックBLURにおける最右列の偶数行の4画素と、その右下のブロックBLDRにおける偶数行の4画素の合計8画素を垂直1次元DCT変換した垂直1次元DCT係数となるが、そのような垂直1次元DCT係数は、メモリ81に存在しない。
【0451】
そこで、サンプリング部83は、ブロックBLURの第8列の垂直1次元DCT係数と、ブロックBLDRの第8列の垂直1次元DCT係数の垂直1次元逆DCT変換を、垂直1次元逆DCT変換部82に要求する。
【0452】
垂直1次元逆DCT変換部82は、サンプリング部83からの要求に応じ、ステップS44において、ブロックBLURの第8列の垂直1次元DCT係数と、ブロックBLDRの第8列の垂直1次元DCT係数を、メモリ81から読み出し、垂直1次元逆DCT変換を施す。これにより、垂直1次元逆DCT変換部82は、ブロックBLURの第8列の8画素と、ブロックBLDRの第8列の8画素を得て、サンプリング部83に供給し、ステップS45に進む。
【0453】
ステップS45では、サンプリング部83は、垂直1次元逆DCT変換部82から供給されるブロックBLURの第8列の8画素のうちの偶数行の4画素をサンプリングするとともに、同じく垂直1次元逆DCT変換部82から供給されるブロックBLDRの第8列の8画素のうちの偶数行の4画素をサンプリングし、ブロックBLURの第8列からサンプリングした偶数行の4画素を上側に配置するとともに、ブロックBLDRの第8列からサンプリングした偶数行の4画素を下側に配置することにより、注目マクロブロックと同一のフィールド(ボトムフィールド)構造とした垂直方向に並ぶ8画素を、垂直1次元DCT変換部84に供給する。
【0454】
垂直1次元DCT変換部84は、サンプリング部83でサンプリングされた8画素を受信すると、ステップS46において、その8画素を、垂直1次元DCT変換し、これにより、左隣接マクロブロックMBLの右上のブロックBLURにおける最右列の偶数行の4画素と、その右下のブロックBLDRにおける偶数行の4画素の合計8画素を垂直1次元DCT変換した垂直1次元DCT係数を得て、選択部85に供給する。選択部85は、垂直1次元DCT変換部84から供給される垂直1次元DCT係数を選択し、左隣接1次元DCT係数として出力する。
【0455】
また、ステップS39において、注目マクロブロックと左隣接マクロブロックのDCTタイプが、いずれもフィールドDCTであると判定された場合、ステップS47に進み、選択部85は、図28Dで説明したように、左隣接マクロブロックMBLの右下のブロックBLDRの最右列の8画素を垂直1次元DCT変換した垂直1次元DCT係数を、左隣接1次元DCT係数として取得する。
【0456】
即ち、注目ブロックが、注目マクロブロックの左下のブロックBNDLである場合において、注目マクロブロックと左隣接マクロブロックが、いずれもフィールド構造であるときには、左隣接1次元DCT係数は、図28Dで説明したように、左隣接マクロブロックMBLの右下のブロックBLDRの最右列の8画素を垂直1次元DCT変換した垂直1次元DCT係数であり、この垂直1次元DCT係数は、ブロックBLDRの第8列の垂直1次元DCT係数である。ブロックBLDRの第8列の垂直1次元DCT係数は、メモリ81に記憶されており、選択部85は、ステップS47において、メモリ81から、ブロックBLDRの第8列の垂直1次元DCT係数を読み出して選択し、左隣接1次元DCT係数として出力する。
【0457】
ステップS40,S43,S46、およびS47の処理後は、いずれも、ステップS48に進み、選択部85は、図29で説明したように、注目ブロックBNDLの右隣のブロックBNDRの最左列の8画素を垂直1次元DCT変換した垂直1次元DCT係数を、右隣接1次元DCT係数として取得する。
【0458】
即ち、注目ブロックが、注目マクロブロックの左下のブロックBNDLである場合には、右隣接1次元DCT係数は、図29で説明したように、注目ブロックBNDLの右隣のブロックBNDRの最左列の8画素を垂直1次元DCT変換した垂直1次元DCT係数であり、この垂直1次元DCT係数は、ブロックBNDRの第1列の垂直1次元DCT係数である。ブロックBNDRの第1列の垂直1次元DCT係数は、メモリ81に記憶されており、選択部85は、ステップS48において、メモリ81から、ブロックBNDRの第1列の垂直1次元DCT係数を読み出して選択し、右隣接垂直1次元DCT係数として出力して、左下ブロック処理を終了する。
【0459】
次に、図41は、図38の隣接1次元DCT係数選択/変換部32が行う右上ブロック処理を示すフローチャートである。
【0460】
右上ブロック処理では、注目マクロブロックの右上のブロックBNURについて、上隣接1次元DCT係数、下隣接1次元DCT係数、左隣接1次元DCT係数、右隣接1次元DCT係数が取得される。
【0461】
即ち、右上ブロック処理では、まず最初に、ステップS51において、選択部85が、注目マクロブロックと上隣接マクロブロックのDCTタイプを判定する。
【0462】
ステップS51において、注目マクロブロックと上隣接マクロブロックのDCTタイプが、いずれもフレームDCTであると判定された場合、ステップS52に進み、選択部85は、図30Aで説明したように、上隣接マクロブロックMBUの右下のブロックBUDRにおける最下行の8画素を水平1次元DCT変換した水平1次元DCT係数を、上隣接1次元DCT係数として取得する。
【0463】
即ち、注目ブロックが、注目マクロブロックの右上のブロックBNURである場合において、注目マクロブロックと上隣接マクロブロックが、いずれもフレーム構造であるときには、上隣接1次元DCT係数は、図30Aで説明したように、上隣接マクロブロックMBUの右下のブロックBUDRにおける最下行の8画素を水平1次元DCT変換した水平1次元DCT係数であり、この水平1次元DCT係数は、ブロックBUDRの第8行の水平1次元DCT係数である。ブロックBUDRの第8行の水平1次元DCT係数は、メモリ81に記憶されており、選択部85は、ステップS52において、メモリ81から、ブロックBUDRの第8行の水平1次元DCT係数を読み出して選択し、上隣接1次元DCT係数として出力する。
【0464】
また、ステップS51において、注目マクロブロックのDCTタイプがフレームDCTであり、上隣接マクロブロックのDCTタイプがフィールドDCTであると判定された場合、ステップS53に進み、選択部85は、図30Bで説明したように、上隣接マクロブロックMBUの右下のブロックBUDRの最下行の8画素を水平1次元DCT変換した水平1次元DCT係数を、上隣接1次元DCT係数として取得する。
【0465】
即ち、注目ブロックが、注目マクロブロックの右上のブロックBNURである場合において、注目マクロブロックがフレーム構造であり、上隣接マクロブロックがフィールド構造であるときには、上隣接1次元DCT係数は、図30Bで説明したように、上隣接マクロブロックMBUの右下のブロックBUDRにおける最下行の8画素を水平1次元DCT変換した水平1次元DCT係数であり、この水平1次元DCT係数は、ブロックBUDRの第8行の水平1次元DCT係数である。ブロックBUDRの第8行の水平1次元DCT係数は、メモリ81に記憶されており、選択部85は、ステップS53において、メモリ81から、ブロックBUDRの第8行の水平1次元DCT係数を読み出して選択し、上隣接1次元DCT係数として出力する。
【0466】
また、ステップS51において、注目マクロブロックのDCTタイプがフィールドDCTであり、上隣接マクロブロックのDCTタイプがフレームDCTであると判定された場合、ステップS54に進み、選択部85は、図30Cで説明したように、上隣接マクロブロックMBUの右下のブロックBUDRの第7行目の8画素を水平1次元DCT変換した水平1次元DCT係数を、上隣接1次元DCT係数として取得する。
【0467】
即ち、注目ブロックが、注目マクロブロックの右上のブロックBNURである場合において、注目マクロブロックがフィールド構造であり、上隣接マクロブロックがフレーム構造であるときには、上隣接1次元DCT係数は、図30Cで説明したように、上隣接マクロブロックMBUの右下のブロックBUDRの第7行目の8画素を水平1次元DCT変換した水平1次元DCT係数であり、この水平1次元DCT係数は、ブロックBUDRの第7行の水平1次元DCT係数である。ブロックBUDRの第7行の水平1次元DCT係数は、メモリ81に記憶されており、選択部85は、ステップS54において、メモリ81から、ブロックBUDRの第7行の水平1次元DCT係数を読み出して選択し、上隣接1次元DCT係数として出力する。
【0468】
また、ステップS51において、注目マクロブロックと上隣接マクロブロックのDCTタイプが、いずれもフィールドDCTであると判定された場合、ステップS55に進み、選択部85は、図30Dで説明したように、上隣接マクロブロックMBUの右上のブロックBUURの最下行の8画素を水平1次元DCT変換した水平1次元DCT係数を、上隣接1次元DCT係数として取得する。
【0469】
即ち、注目ブロックが、注目マクロブロックの右上のブロックBNURである場合において、注目マクロブロックと上隣接マクロブロックが、いずれもフィールド構造であるときには、上隣接1次元DCT係数は、図30Dで説明したように、上隣接マクロブロックMBUの右上のブロックBUURの最下行の8画素を水平1次元DCT変換した水平1次元DCT係数であり、この水平1次元DCT係数は、ブロックBUULの第8行の水平1次元DCT係数である。ブロックBUURの第8行の水平1次元DCT係数は、メモリ81に記憶されており、選択部85は、ステップS55において、メモリ81から、ブロックBUURの第8行の水平1次元DCT係数を読み出して選択し、上隣接1次元DCT係数として出力する。
【0470】
ステップS52乃至S55の処理後は、いずれも、ステップS56に進み、選択部85が、注目マクロブロックのDCTタイプを判定する。
【0471】
ステップS56において、注目マクロブロックのDCTタイプがフレームDCTであると判定された場合、ステップS57に進み、選択部85は、図31Aで説明したように、注目マクロブロックMBNの右下のブロックBNDRの最上行の8画素を水平1次元DCT変換した水平1次元DCT係数を、下隣接1次元DCT係数として取得する。
【0472】
即ち、注目ブロックが、注目マクロブロックの右上のブロックBNURである場合において、注目マクロブロックがフレーム構造であるときには、下隣接1次元DCT係数は、図31Aで説明したように、注目マクロブロックMBNの右下のブロックBNDRの最上行の8画素を水平1次元DCT変換した水平1次元DCT係数であり、この水平1次元DCT係数は、ブロックBNDRの第1行の水平1次元DCT係数である。ブロックBNDRの第1行の水平1次元DCT係数は、メモリ81に記憶されており、選択部85は、ステップS57において、メモリ81から、ブロックBNDRの第1行の水平1次元DCT係数を読み出して選択し、下隣接1次元DCT係数として出力する。
【0473】
また、ステップS56において、注目マクロブロックのDCTタイプがフィールドDCTであると判定された場合、ステップS58に進み、選択部85は、図31Bで説明したように、下隣接マクロブロックMBDの右上のブロックBDURの最上行の8画素を水平1次元DCT変換した水平1次元DCT係数を、下隣接1次元DCT係数として取得する。
【0474】
即ち、注目ブロックが、注目マクロブロックの右上のブロックBNURである場合において、注目マクロブロックがフィールド構造であるときには、下隣接1次元DCT係数は、図31Bで説明したように、下隣接マクロブロックMBDの右上のブロックBDURの最上行の8画素を水平1次元DCT変換した水平1次元DCT係数であり、この水平1次元DCT係数は、ブロックBDURの第1行の水平1次元DCT係数である。ブロックBDURの第1行の水平1次元DCT係数は、メモリ81に記憶されており、選択部85は、ステップS58において、メモリ81から、ブロックBDURの第1行の水平1次元DCT係数を読み出して選択し、下隣接1次元DCT係数として出力する。
【0475】
ステップS57およびS58の処理後は、いずれも、ステップS59に進み、サンプリング部83および選択部85が、注目マクロブロックと右隣接マクロブロックのDCTタイプを判定する。
【0476】
ステップS59において、注目マクロブロックと右隣接マクロブロックのDCTタイプが、いずれもフレームDCTであると判定された場合、ステップS60に進み、選択部85は、図33Aで説明したように、右隣接マクロブロックMBRの左上のブロックBRULの最左列の8画素を垂直1次元DCT変換した垂直1次元DCT係数を、右隣接1次元DCT係数として取得する。
【0477】
即ち、注目ブロックが、注目マクロブロックの右上のブロックBNURである場合において、注目マクロブロックと右隣接マクロブロックが、いずれもフレーム構造であるときには、右隣接1次元DCT係数は、図33Aで説明したように、右隣接マクロブロックMBRの左上のブロックBRULの最左列の8画素を垂直1次元DCT変換した垂直1次元DCT係数であり、この垂直1次元DCT係数は、ブロックBRULの第1列の垂直1次元DCT係数である。ブロックBRULの第1列の垂直1次元DCT係数は、メモリ81に記憶されており、選択部85は、ステップS60において、メモリ81から、ブロックBRULの第1列の垂直1次元DCT係数を読み出して選択し、右隣接1次元DCT係数として出力する。
【0478】
また、ステップS59において、注目マクロブロックのDCTタイプがフレームDCTであり、右隣接マクロブロックのDCTタイプがフィールドDCTであると判定された場合、ステップS61乃至S63に順次進み、選択部85は、図33Bで説明したように、右隣接マクロブロックMBRの左上のブロックBRULにおける最左列の上4画素と、その左下のブロックBRDLにおける最左列の上4画素の合計8画素を垂直1次元DCT変換した垂直1次元DCT係数を、右隣接1次元DCT係数として取得する。
【0479】
即ち、注目ブロックが、注目マクロブロックの右上のブロックBNURである場合において、注目マクロブロックがフレーム構造であり、右隣接マクロブロックがフィールド構造であるときには、右隣接1次元DCT係数は、図33Bで説明したように、右隣接マクロブロックMBRの左上のブロックBRULにおける最左列の上4画素と、その左下のブロックBRDLにおける最左列の上4画素の合計8画素を垂直1次元DCT変換した垂直1次元DCT係数となるが、このような垂直1次元DCT係数は、メモリ81に存在しない。
【0480】
そこで、サンプリング部83は、ブロックBRULの第1列の垂直1次元DCT係数と、ブロックBRDLの第1列の垂直1次元DCT係数の垂直1次元逆DCT変換を、垂直1次元逆DCT変換部82に要求する。
【0481】
垂直1次元逆DCT変換部82は、サンプリング部83からの要求に応じ、ステップS61において、ブロックBRULの第1列の垂直1次元DCT係数と、ブロックBRDLの第1列の垂直1次元DCT係数を、メモリ81から読み出し、垂直1次元逆DCT変換を施す。これにより、垂直1次元逆DCT変換部82は、ブロックBRULの第1列の8画素と、ブロックBRDLの第1列の8画素を得て、サンプリング部83に供給し、ステップS62に進む。
【0482】
ステップS62では、サンプリング部83は、垂直1次元逆DCT変換部82から供給されるブロックBRULの第1列の8画素のうちの上4画素をサンプリングするとともに、同じく垂直1次元逆DCT変換部82から供給されるブロックBRDLの第1列の8画素のうちの上4画素をサンプリングし、ブロックBRULの第1列からサンプリングした上4画素を奇数行(トップフィールド)に配置するとともに、ブロックBRDLの第1列からサンプリングした上4画素を偶数行(ボトムフィールド)に配置することにより、注目マクロブロックと同一のフレーム構造とした垂直方向に並ぶ8画素を、垂直1次元DCT変換部84に供給する。
【0483】
垂直1次元DCT変換部84は、サンプリング部83でサンプリングされた8画素を受信すると、ステップS63において、その8画素を、垂直1次元DCT変換し、これにより、右隣接マクロブロックMBRの左上のブロックBRULにおける最左列の上4画素と、その左下のブロックBRDLにおける最左列の上4画素の合計8画素を垂直1次元DCT変換した垂直1次元DCT係数を得て、選択部85に供給する。選択部85は、垂直1次元DCT変換部84から供給される垂直1次元DCT係数を選択し、右隣接1次元DCT係数として出力する。
【0484】
また、ステップS59において、注目マクロブロックのDCTタイプがフィールドDCTであり、右隣接マクロブロックのDCTタイプがフレームDCTであると判定された場合、ステップS64乃至S66に順次進み、選択部85は、図33Cで説明したように、右隣接マクロブロックMBRの左上のブロックBRULにおける最左列の奇数行の4画素と、その左下のブロックBRDLにおける奇数行の4画素の合計8画素を垂直1次元DCT変換した垂直1次元DCT係数を、右隣接1次元DCT係数として取得する。
【0485】
即ち、注目ブロックが、注目マクロブロックの右上のブロックBNURである場合において、注目マクロブロックがフィールド構造であり、右隣接マクロブロックがフレーム構造であるときには、右隣接1次元DCT係数は、図33Cで説明したように、右隣接マクロブロックMBLの左上のブロックBRULにおける最左列の奇数行の4画素と、その左下のブロックBRDLにおける奇数行の4画素の合計8画素を垂直1次元DCT変換した垂直1次元DCT係数となるが、そのような垂直1次元DCT係数は、メモリ81に存在しない。
【0486】
そこで、サンプリング部83は、ブロックBRULの第1列の垂直1次元DCT係数と、ブロックBRDLの第1列の垂直1次元DCT係数の垂直1次元逆DCT変換を、垂直1次元逆DCT変換部82に要求する。
【0487】
垂直1次元逆DCT変換部82は、サンプリング部83からの要求に応じ、ステップS64において、ブロックBRULの第1列の垂直1次元DCT係数と、ブロックBRDLの第1列の垂直1次元DCT係数を、メモリ81から読み出し、垂直1次元逆DCT変換を施す。これにより、垂直1次元逆DCT変換部82は、ブロックBRULの第1列の8画素と、ブロックBRDLの第1列の8画素を得て、サンプリング部83に供給し、ステップS65に進む。
【0488】
ステップS65では、サンプリング部83は、垂直1次元逆DCT変換部82から供給されるブロックBRULの第1列の8画素のうちの奇数行の4画素をサンプリングするとともに、同じく垂直1次元逆DCT変換部82から供給されるブロックBRDLの第1列の8画素のうちの奇数行の4画素をサンプリングし、ブロックBRULの第1列からサンプリングした奇数行の4画素を上側に配置するとともに、ブロックBRDLの第1列からサンプリングした奇数行の4画素を下側に配置することにより、注目マクロブロックと同一のフィールド(トップフィールド)構造とした垂直方向に並ぶ8画素を、垂直1次元DCT変換部84に供給する。
【0489】
垂直1次元DCT変換部84は、サンプリング部83でサンプリングされた8画素を受信すると、ステップS66において、その8画素を、垂直1次元DCT変換し、これにより、右隣接マクロブロックMBRの左上のブロックBRULにおける最左列の奇数行の4画素と、その左下のブロックBRDLにおける奇数行の4画素の合計8画素を垂直1次元DCT変換した垂直1次元DCT係数を得て、選択部85に供給する。選択部85は、垂直1次元DCT変換部84から供給される垂直1次元DCT係数を選択し、右隣接1次元DCT係数として出力する。
【0490】
また、ステップS59において、注目マクロブロックと右隣接マクロブロックのDCTタイプが、いずれもフィールドDCTであると判定された場合、ステップS67に進み、選択部85は、図33Dで説明したように、右隣接マクロブロックMBRの左上のブロックBRULの最左列の8画素を垂直1次元DCT変換した垂直1次元DCT係数を、右隣接1次元DCT係数として取得する。
【0491】
即ち、注目ブロックが、注目マクロブロックの右上のブロックBNURである場合において、注目マクロブロックと右隣接マクロブロックが、いずれもフィールド構造であるときには、右隣接1次元DCT係数は、図33Dで説明したように、右隣接マクロブロックMBRの左上のブロックBRULの最左列の8画素を垂直1次元DCT変換した垂直1次元DCT係数であり、この垂直1次元DCT係数は、ブロックBRULの第1列の垂直1次元DCT係数である。ブロックBRULの第1列の垂直1次元DCT係数は、メモリ81に記憶されており、選択部85は、ステップS67において、メモリ81から、ブロックBRULの第1列の垂直1次元DCT係数を読み出して選択し、右隣接1次元DCT係数として出力する。
【0492】
ステップS60,S63,S66、およびS67の処理後は、いずれも、ステップS68に進み、選択部85は、図32で説明したように、注目ブロックBNURの左隣のブロックBNULの最右列の8画素を垂直1次元DCT変換した垂直1次元DCT係数を、左隣接1次元DCT係数として取得する。
【0493】
即ち、注目ブロックが、注目マクロブロックの右上のブロックBNURである場合には、左隣接1次元DCT係数は、図32で説明したように、注目ブロックBNURの左隣のブロックBNULの最右列の8画素を垂直1次元DCT変換した垂直1次元DCT係数であり、この垂直1次元DCT係数は、ブロックBNULの第8列の垂直1次元DCT係数である。ブロックBNURの第8列の垂直1次元DCT係数は、メモリ81に記憶されており、選択部85は、ステップS68において、メモリ81から、ブロックBNULの第8列の垂直1次元DCT係数を読み出して選択し、左隣接垂直1次元DCT係数として出力して、右上ブロック処理を終了する。
【0494】
次に、図42は、図38の隣接1次元DCT係数選択/変換部32が行う右下ブロック処理を示すフローチャートである。
【0495】
右下ブロック処理では、注目マクロブロックの右下のブロックBNDRについて、上隣接1次元DCT係数、下隣接1次元DCT係数、左隣接1次元DCT係数、右隣接1次元DCT係数が取得される。
【0496】
即ち、右下ブロック処理では、まず最初に、ステップS71において、選択部85が、注目マクロブロックのDCTタイプを判定する。
【0497】
ステップS71において、注目マクロブロックのDCTタイプがフレームDCTであると判定された場合、ステップS72に進み、選択部85は、図34Aで説明したように、注目マクロブロックMBNの右上のブロックBNURの最下行の8画素を水平1次元DCT変換した水平1次元DCT係数を、上隣接1次元DCT係数として取得する。
【0498】
即ち、注目ブロックが、注目マクロブロックの右下のブロックBNDRである場合において、注目マクロブロックがフレーム構造であるときには、上隣接1次元DCT係数は、図34Aで説明したように、注目マクロブロックMBNの右上のブロックBNURの最下行の8画素を水平1次元DCT変換した水平1次元DCT係数であり、この水平1次元DCT係数は、ブロックBNURの第8行の水平1次元DCT係数である。ブロックBNURの第8行の水平1次元DCT係数は、メモリ81に記憶されており、選択部85は、ステップS72において、メモリ81から、ブロックBNURの第8行の水平1次元DCT係数を読み出して選択し、上隣接1次元DCT係数として出力する。
【0499】
また、ステップS71において、注目マクロブロックのDCTタイプがフィールドDCTであると判定された場合、ステップS73に進み、選択部85は、図34Bで説明したように、上隣接マクロブロックMBUの右下のブロックBUDRの最下行の8画素を水平1次元DCT変換した水平1次元DCT係数を、上隣接1次元DCT係数として取得する。
【0500】
即ち、注目ブロックが、注目マクロブロックの右下のブロックBNDRである場合において、注目マクロブロックがフィールド構造であるときには、上隣接1次元DCT係数は、図34Bで説明したように、上隣接マクロブロックMBUの右下のブロックBUDRの最下行の8画素を水平1次元DCT変換した水平1次元DCT係数であり、この水平1次元DCT係数は、ブロックBUDRの第8行の水平1次元DCT係数である。ブロックBUDRの第1行の水平1次元DCT係数は、メモリ81に記憶されており、選択部85は、ステップS73において、メモリ81から、ブロックBUDRの第8行の水平1次元DCT係数を読み出して選択し、上隣接1次元DCT係数として出力する。
【0501】
ステップS72およびS73の処理後は、いずれも、ステップS74に進み、選択部85が、注目マクロブロックと下隣接マクロブロックのDCTタイプを判定する。
【0502】
ステップS74において、注目マクロブロックと下隣接マクロブロックのDCTタイプが、いずれもフレームDCTであると判定された場合、ステップS75に進み、選択部85は、図35Aで説明したように、下隣接マクロブロックMBDの右上のブロックBDURにおける最上行の8画素を水平1次元DCT変換した水平1次元DCT係数を、下隣接1次元DCT係数として取得する。
【0503】
即ち、注目ブロックが、注目マクロブロックの右下のブロックBNDRである場合において、注目マクロブロックと下隣接マクロブロックが、いずれもフレーム構造であるときには、下隣接1次元DCT係数は、図35Aで説明したように、下隣接マクロブロックMBDの右上のブロックBDURにおける最上行の8画素を水平1次元DCT変換した水平1次元DCT係数であり、この水平1次元DCT係数は、ブロックBDURの第1行の水平1次元DCT係数である。ブロックBDURの第1行の水平1次元DCT係数は、メモリ81に記憶されており、選択部85は、ステップS75において、メモリ81から、ブロックBDURの第1行の水平1次元DCT係数を読み出して選択し、下隣接1次元DCT係数として出力する。
【0504】
また、ステップS74において、注目マクロブロックのDCTタイプがフレームDCTであり、下隣接マクロブロックのDCTタイプがフィールドDCTであると判定された場合、ステップS76に進み、選択部85は、図35Bで説明したように、下隣接マクロブロックMBDの右上のブロックBDURの最上行の8画素を水平1次元DCT変換した水平1次元DCT係数を、下隣接1次元DCT係数として取得する。
【0505】
即ち、注目ブロックが、注目マクロブロックの右下のブロックBNDRである場合において、注目マクロブロックがフレーム構造であり、下隣接マクロブロックがフィールド構造であるときには、下隣接1次元DCT係数は、図35Bで説明したように、下隣接マクロブロックMBDの右上のブロックBDURにおける最下行の8画素を水平1次元DCT変換した水平1次元DCT係数であり、この水平1次元DCT係数は、ブロックBDURの第1行の水平1次元DCT係数である。ブロックBDURの第1行の水平1次元DCT係数は、メモリ81に記憶されており、選択部85は、ステップS76において、メモリ81から、ブロックBDURの第1行の水平1次元DCT係数を読み出して選択し、下隣接1次元DCT係数として出力する。
【0506】
また、ステップS74において、注目マクロブロックのDCTタイプがフィールドDCTであり、下隣接マクロブロックのDCTタイプがフレームDCTであると判定された場合、ステップS77に進み、選択部85は、図35Cで説明したように、下隣接マクロブロックMBDの右上のブロックBDURの第2行目の8画素を水平1次元DCT変換した水平1次元DCT係数を、下隣接1次元DCT係数として取得する。
【0507】
即ち、注目ブロックが、注目マクロブロックの右下のブロックBNDRである場合において、注目マクロブロックがフィールド構造であり、下隣接マクロブロックがフレーム構造であるときには、下隣接1次元DCT係数は、図35Cで説明したように、下隣接マクロブロックMBDの右上のブロックBDURの第2行目の8画素を水平1次元DCT変換した水平1次元DCT係数であり、この水平1次元DCT係数は、ブロックBDURの第2行の水平1次元DCT係数である。ブロックBDURの第2行の水平1次元DCT係数は、メモリ81に記憶されており、選択部85は、ステップS77において、メモリ81から、ブロックBDURの第2行の水平1次元DCT係数を読み出して選択し、下隣接1次元DCT係数として出力する。
【0508】
また、ステップS74において、注目マクロブロックと下隣接マクロブロックのDCTタイプが、いずれもフィールドDCTであると判定された場合、ステップS78に進み、選択部85は、図35Dで説明したように、下隣接マクロブロックMBDの右下のブロックBDDRの最上行の8画素を水平1次元DCT変換した水平1次元DCT係数を、下隣接1次元DCT係数として取得する。
【0509】
即ち、注目ブロックが、注目マクロブロックの右下のブロックBNDRである場合において、注目マクロブロックと下隣接マクロブロックが、いずれもフィールド構造であるときには、下隣接1次元DCT係数は、図35Dで説明したように、下隣接マクロブロックMBDの右下のブロックBDDRの最上行の8画素を水平1次元DCT変換した水平1次元DCT係数であり、この水平1次元DCT係数は、ブロックBDDRの第1行の水平1次元DCT係数である。ブロックBDDRの第1行の水平1次元DCT係数は、メモリ81に記憶されており、選択部85は、ステップS78において、メモリ81から、ブロックBDDRの第1行の水平1次元DCT係数を読み出して選択し、下隣接1次元DCT係数として出力する。
【0510】
ステップS75乃至S78の処理後は、いずれも、ステップS79に進み、サンプリング部83および選択部85が、注目マクロブロックと左隣接マクロブロックのDCTタイプを判定する。
【0511】
ステップS79において、注目マクロブロックと左隣接マクロブロックのDCTタイプが、いずれもフレームDCTであると判定された場合、ステップS80に進み、選択部85は、図37Aで説明したように、右隣接マクロブロックMBRの左下のブロックBRDLの最左列の8画素を垂直1次元DCT変換した垂直1次元DCT係数を、右隣接1次元DCT係数として取得する。
【0512】
即ち、注目ブロックが、注目マクロブロックの右下のブロックBNDRである場合において、注目マクロブロックと右隣接マクロブロックが、いずれもフレーム構造であるときには、右隣接1次元DCT係数は、図37Aで説明したように、右隣接マクロブロックMBRの左下のブロックBRDLの最左列の8画素を垂直1次元DCT変換した垂直1次元DCT係数であり、この垂直1次元DCT係数は、ブロックBRDLの第1列の垂直1次元DCT係数である。ブロックBRDLの第1列の垂直1次元DCT係数は、メモリ81に記憶されており、選択部85は、ステップS80において、メモリ81から、ブロックBRDLの第1列の垂直1次元DCT係数を読み出して選択し、右隣接1次元DCT係数として出力する。
【0513】
また、ステップS79において、注目マクロブロックのDCTタイプがフレームDCTであり、右隣接マクロブロックのDCTタイプがフィールドDCTであると判定された場合、ステップS81乃至S83に順次進み、選択部85は、図37Bで説明したように、右隣接マクロブロックMBRの左上のブロックBRULにおける最左列の下4画素と、その左下のブロックBRDLにおける最左列の下4画素の合計8画素を垂直1次元DCT変換した垂直1次元DCT係数を、右隣接1次元DCT係数として取得する。
【0514】
即ち、注目ブロックが、注目マクロブロックの右下のブロックBNDRである場合において、注目マクロブロックがフレーム構造であり、右隣接マクロブロックがフィールド構造であるときには、右隣接1次元DCT係数は、図37Bで説明したように、右隣接マクロブロックMBRの左上のブロックBRULにおける最左列の下4画素と、その左下のブロックBRDLにおける最左列の下4画素の合計8画素を垂直1次元DCT変換した垂直1次元DCT係数となるが、このような垂直1次元DCT係数は、メモリ81に存在しない。
【0515】
そこで、サンプリング部83は、ブロックBRULの第1列の垂直1次元DCT係数と、ブロックBRDLの第1列の垂直1次元DCT係数の垂直1次元逆DCT変換を、垂直1次元逆DCT変換部82に要求する。
【0516】
垂直1次元逆DCT変換部82は、サンプリング部83からの要求に応じ、ステップS81において、ブロックBRULの第1列の垂直1次元DCT係数と、ブロックBRDLの第1列の垂直1次元DCT係数を、メモリ81から読み出し、垂直1次元逆DCT変換を施す。これにより、垂直1次元逆DCT変換部82は、ブロックBRULの第1列の8画素と、ブロックBRDLの第1列の8画素を得て、サンプリング部83に供給し、ステップS82に進む。
【0517】
ステップS82では、サンプリング部83は、垂直1次元逆DCT変換部82から供給されるブロックBRULの第1列の8画素のうちの下4画素をサンプリングするとともに、同じく垂直1次元逆DCT変換部82から供給されるブロックBRDLの第1列の8画素のうちの下4画素をサンプリングし、ブロックBRULの第1列からサンプリングした上4画素を奇数行(トップフィールド)に配置するとともに、ブロックBRDLの第1列からサンプリングした上4画素を偶数行(ボトムフィールド)に配置することにより、注目マクロブロックと同一のフレーム構造とした垂直方向に並ぶ8画素を、垂直1次元DCT変換部84に供給する。
【0518】
垂直1次元DCT変換部84は、サンプリング部83でサンプリングされた8画素を受信すると、ステップS83において、その8画素を、垂直1次元DCT変換し、これにより、右隣接マクロブロックMBLの左上のブロックBRULにおける最左列の下4画素と、その左下のブロックBRDLにおける最左列の下4画素の合計8画素を垂直1次元DCT変換した垂直1次元DCT係数を得て、選択部85に供給する。選択部85は、垂直1次元DCT変換部84から供給される垂直1次元DCT係数を選択し、右隣接1次元DCT係数として出力する。
【0519】
また、ステップS79において、注目マクロブロックのDCTタイプがフィールドDCTであり、右隣接マクロブロックのDCTタイプがフレームDCTであると判定された場合、ステップS84乃至S86に順次進み、選択部85は、図37Cで説明したように、右隣接マクロブロックMBRの左上のブロックBRULにおける最左列の偶数行の4画素と、その左下のブロックBRDLにおける偶数行の4画素の合計8画素を垂直1次元DCT変換した垂直1次元DCT係数を、右隣接1次元DCT係数として取得する。
【0520】
即ち、注目ブロックが、注目マクロブロックの右下のブロックBNDRである場合において、注目マクロブロックがフィールド構造であり、右隣接マクロブロックがフレーム構造であるときには、右隣接1次元DCT係数は、図37Cで説明したように、右隣接マクロブロックMBLの左上のブロックBRULにおける最左列の偶数行の4画素と、その左下のブロックBRDLにおける偶数行の4画素の合計8画素を垂直1次元DCT変換した垂直1次元DCT係数となるが、そのような垂直1次元DCT係数は、メモリ81に存在しない。
【0521】
そこで、サンプリング部83は、ブロックBRULの第1列の垂直1次元DCT係数と、ブロックBRDLの第1列の垂直1次元DCT係数の垂直1次元逆DCT変換を、垂直1次元逆DCT変換部82に要求する。
【0522】
垂直1次元逆DCT変換部82は、サンプリング部83からの要求に応じ、ステップS84において、ブロックBRULの第1列の垂直1次元DCT係数と、ブロックBRDLの第1列の垂直1次元DCT係数を、メモリ81から読み出し、垂直1次元逆DCT変換を施す。これにより、垂直1次元逆DCT変換部82は、ブロックBRULの第1列の8画素と、ブロックBRDLの第1列の8画素を得て、サンプリング部83に供給し、ステップS85に進む。
【0523】
ステップS85では、サンプリング部83は、垂直1次元逆DCT変換部82から供給されるブロックBRULの第1列の8画素のうちの偶数行の4画素をサンプリングするとともに、同じく垂直1次元逆DCT変換部82から供給されるブロックBRDLの第1列の8画素のうちの偶数行の4画素をサンプリングし、ブロックBRULの第1列からサンプリングした偶数行の4画素を上側に配置するとともに、ブロックBRDLの第1列からサンプリングした偶数行の4画素を下側に配置することにより、注目マクロブロックと同一のフィールド(ボトムフィールド)構造とした垂直方向に並ぶ8画素を、垂直1次元DCT変換部84に供給する。
【0524】
垂直1次元DCT変換部84は、サンプリング部83でサンプリングされた8画素を受信すると、ステップS86において、その8画素を、垂直1次元DCT変換し、これにより、右隣接マクロブロックMBRの左上のブロックBRULにおける最左列の偶数行の4画素と、その左下のブロックBRDLにおける偶数行の4画素の合計8画素を垂直1次元DCT変換した垂直1次元DCT係数を得て、選択部85に供給する。選択部85は、垂直1次元DCT変換部84から供給される垂直1次元DCT係数を選択し、右隣接1次元DCT係数として出力する。
【0525】
また、ステップS79において、注目マクロブロックと右隣接マクロブロックのDCTタイプが、いずれもフィールドDCTであると判定された場合、ステップS87に進み、選択部85は、図37Dで説明したように、右隣接マクロブロックMBRの左下のブロックBRDLの最左列の8画素を垂直1次元DCT変換した垂直1次元DCT係数を、右隣接1次元DCT係数として取得する。
【0526】
即ち、注目ブロックが、注目マクロブロックの右下のブロックBNDRである場合において、注目マクロブロックと右隣接マクロブロックが、いずれもフィールド構造であるときには、右隣接1次元DCT係数は、図37Dで説明したように、右隣接マクロブロックMBRの左下のブロックBRDLの最左列の8画素を垂直1次元DCT変換した垂直1次元DCT係数であり、この垂直1次元DCT係数は、ブロックBRDLの第1列の垂直1次元DCT係数である。ブロックBRDLの第1列の垂直1次元DCT係数は、メモリ81に記憶されており、選択部85は、ステップS87において、メモリ81から、ブロックBRDLの第1列の垂直1次元DCT係数を読み出して選択し、右隣接1次元DCT係数として出力する。
【0527】
ステップS80,S83,S86、およびS87の処理後は、いずれも、ステップS88に進み、選択部85は、図36で説明したように、注目ブロックBNDRの左隣のブロックBNDLの最右列の8画素を垂直1次元DCT変換した垂直1次元DCT係数を、左隣接1次元DCT係数として取得する。
【0528】
即ち、注目ブロックが、注目マクロブロックの右下のブロックBNDRである場合には、左隣接1次元DCT係数は、図36で説明したように、注目ブロックBNDRの左隣のブロックBNDLの最右列の8画素を垂直1次元DCT変換した垂直1次元DCT係数であり、この垂直1次元DCT係数は、ブロックBNDLの第8列の垂直1次元DCT係数である。ブロックBNDLの第8列の垂直1次元DCT係数は、メモリ81に記憶されており、選択部85は、ステップS88において、メモリ81から、ブロックBNDLの第8列の垂直1次元DCT係数を読み出して選択し、左隣接垂直1次元DCT係数として出力して、右下ブロック処理を終了する。
【0529】
次に、図19のACパワー算出部33の処理について説明する。
【0530】
ACパワー算出部33は、上述したように、1次元逆DCT係数変換部31から供給される1次元DCT係数の交流成分のパワー(ACパワー)を求めるとともに、隣接1次元DCT係数選択/変換部32から供給される隣接1次元DCT係数のACパワーを求めるようになっている。
【0531】
即ち、ACパワー算出部33は、図43に示すように、注目ブロックにおける注目画素の位置の行の水平1次元DCT係数から、水平方向のACパワーを求めるとともに、注目画素の位置の列の垂直1次元DCT係数から、垂直方向のACパワーを求める。
【0532】
ここで、1次元DCT係数の7つの交流成分をACnと表すこととすると(n=1,2,・・・,7)、ACパワーPACは、例えば、次式によって計算される。
【0533】
AC=ΣACn 2・・・(18)
【0534】
但し、式(18)において、Σは、変数nを1から7に変えてのサメーションを表す。
【0535】
また、ACパワー算出部33は、注目ブロックについての上隣接1次元DCT係数、下隣接1次元DCT係数、左隣接1次元DCT係数、右隣接1次元DCT係数それぞれについても、式(18)にしたがい、ACパワーを求める。なお、上隣接1次元DCT係数と下隣接1次元DCT係数は、いずれも水平1次元DCT係数であり、従って、これらから求められるACパワーは、水平方向のACパワーである。また、左隣接1次元DCT係数と右隣接1次元DCT係数は、いずれも垂直1次元DCT係数であり、従って、これらから求められるACパワーは、垂直方向のACパワーである。
【0536】
ACパワー算出部33は、さらに、注目ブロックの1次元DCT係数のうち、その境界に隣接するもの(以下、適宜、境界1次元DCT係数という)についても、式(18)にしたがい、ACパワーを求める。
【0537】
即ち、ACパワー算出部33は、注目ブロックの上側の境界に隣接する第1行の水平1次元DCT係数(以下、適宜、上境界1次元DCT係数という)から、水平方向のACパワーを求める。さらに、ACパワー算出部33は、注目ブロックの下側の境界に隣接する第8行の水平1次元DCT係数(以下、適宜、下境界1次元DCT係数という)から、水平方向のACパワーを求める。また、ACパワー算出部33は、注目ブロックの左側の境界に隣接する第1列の垂直1次元DCT係数(以下、適宜、左境界1次元DCT係数という)から、垂直方向のACパワーを求めるとともに、注目ブロックの右側の境界に隣接する第8列の垂直1次元DCT係数(以下、適宜、右境界1次元DCT係数という)から、垂直方向のACパワーを求める。
【0538】
次に、図44は、以上のようにしてACパワーを求める図19のACパワー算出部33の構成例を示している。
【0539】
水平1次元DCT係数抽出部91および垂直1次元DCT係数抽出部92には、1次元逆DCT変換部31(図19)と、隣接1次元DCT係数選択/変換部32から、1次元DCT係数が供給されるようになっている。
【0540】
水平1次元DCT係数抽出部91は、そこに供給される1次元DCT係数から、ACパワーの計算対象とするものを抽出し、水平ACパワー計算部93に供給する。即ち、水平1次元DCT係数抽出部91は、そこに供給される1次元DCT係数から、注目ブロックにおける注目画素の位置の行の水平1次元DCT係数、注目ブロックについての上隣接1次元DCT係数および下隣接1次元DCT係数、並びに注目ブロックの上境界1次元DCT係数および下境界1次元DCT係数を抽出し、水平ACパワー計算部93に供給する。
【0541】
垂直1次元DCT係数抽出部92には、そこに供給される1次元DCT係数から、ACパワーの計算対象とするものを抽出し、垂直ACパワー計算部94に供給する。即ち、垂直1次元DCT係数抽出部92は、そこに供給される1次元DCT係数から、注目ブロックにおける注目画素の位置の列の垂直1次元DCT係数、注目ブロックについての左隣接1次元DCT係数および右隣接1次元DCT係数、並びに注目ブロックの左境界1次元DCT係数および右境界1次元DCT係数を抽出し、垂直ACパワー計算部94に供給する。
【0542】
水平ACパワー計算部93は、水平1次元DCT係数抽出部91から供給される水平1次元DCT係数から、式(18)にしたがって、水平方向のACパワーを計算して出力する。即ち、水平ACパワー計算部93は、注目ブロックにおける注目画素の位置の行の水平1次元DCT係数、注目ブロックについての上隣接1次元DCT係数および下隣接1次元DCT係数、並びに注目ブロックの上境界1次元DCT係数および下境界1次元DCT係数それぞれから、水平方向のACパワーを計算する。
【0543】
垂直ACパワー計算部94は、垂直1次元DCT係数抽出部92から供給される垂直1次元DCT係数から、式(18)にしたがって、垂直方向のACパワーを計算して出力する。即ち、垂直ACパワー計算部94は、注目ブロックにおける注目画素の位置の列の垂直1次元DCT係数、注目ブロックについての左隣接1次元DCT係数および右隣接1次元DCT係数、並びに注目ブロックの左境界1次元DCT係数および右境界1次元DCT係数それぞれから、垂直方向のACパワーを計算する。
【0544】
なお、以上のようにして、1次元DCT係数から求められるACパワーは、その1次元DCT係数に対応する8画素の交流成分の電力と捉えることができ、従って、画像のアクティビティを表す。
【0545】
次に、図19のAC内積計算部34の処理について説明する。
【0546】
AC内積計算部34は、上述したように、1次元逆DCT係数変換部31から供給される注目ブロックの境界部分の1次元DCT係数(境界1次元DCT係数)の交流成分と、隣接1次元DCT係数選択/変換部32から供給される隣接1次元DCT係数の交流成分とを、それぞれベクトルのコンポーネントとみなして、その2つのベクトルの内積(AC内積)を求める。
【0547】
即ち、AC内積計算部34は、図45に示すように、注目ブロックについての上境界1次元DCT係数の交流成分と、上隣接1次元DCT係数の交流成分とを、それぞれベクトルのコンポーネントとみなして、その2つのベクトルのAC内積(以下、上内積という)を、次式にしたがって求める。
【0548】
I=Σ(ACn×ACn’)・・・(19)
【0549】
但し、式(19)において、Iは、AC内積を表す。さらに、ACnは、注目ブロックについての上境界1次元DCT係数のn番目の交流成分を表し、ACn’は、注目ブロックについての上隣接1次元DCT係数のn番目の交流成分を表す。また、Σは、nを1から7に変えてのサメーションを表す。
【0550】
AC内積計算部34は、注目ブロックについての下境界1次元DCT係数と下隣接1次元DCT係数、左境界1次元DCT係数と左隣接1次元DCT係数、または右境界1次元DCT係数と右隣接1次元DCT係数それぞれについても、式(19)にしたがい、AC内積を求める。
【0551】
ここで、以下、適宜、注目ブロックについての下境界1次元DCT係数と下隣接1次元DCT係数とから求められるAC内積を、下内積と、左境界1次元DCT係数と左隣接1次元DCT係数とから求められるAC内積を、左内積と、右境界1次元DCT係数と右隣接1次元DCT係数とから求められるAC内積を、右内積と、それぞれいう。
【0552】
AC内積は、注目ブロックの境界を挟む境界1次元DCT係数と隣接1次元DCT係数の交流成分が類似する場合、即ち、境界1次元DCT係数の交流成分をコンポーネントとするベクトルと、隣接1次元DCT係数の交流成分をコンポーネントとするベクトルとがつくる角度が90度未満(以下)である場合に正の値(0以上の値)となる。従って、AC内積が正の値であることは、注目ブロックの境界を挟む境界1次元DCT係数に対応する8画素と、隣接1次元DCT係数に対応する8画素の波形パターンが似ていることを表しており、例えば、注目ブロックとそれに隣接するブロックの境界において、その境界を横切る形で連続しているエッジが存在することを表す。
【0553】
次に、図46は、注目ブロックについて、上述のようなAC内積(上内積、下内積、左内積、右内積)を計算する図19のAC内積計算部34の構成例を示している。
【0554】
1次元逆DCT変換部31と隣接1次元DCT係数選択/変換部32が出力する1次元DCT係数は、上内積用1次元DCT係数抽出部101、下内積用1次元DCT係数抽出部102、左内積用1次元DCT係数抽出部103、および右内積用1次元DCT係数抽出部104に供給されるようになっている。
【0555】
上内積用1次元DCT係数抽出部101は、注目ブロックについて、上内積を計算するのに用いる上境界1次元DCT係数と上隣接1次元DCT係数を、そこに供給される1次元DCT係数から抽出し、上内積演算部105に供給する。
【0556】
上内積演算部105は、上内積用1次元DCT係数抽出部101から供給される上境界1次元DCT係数と上隣接1次元DCT係数から、式(19)にしたがって、上内積を計算して出力する。
【0557】
下内積用1次元DCT係数抽出部102は、注目ブロックについて、下内積を計算するのに用いる下境界1次元DCT係数と下隣接1次元DCT係数を、そこに供給される1次元DCT係数から抽出し、下内積演算部106に供給する。
【0558】
下内積演算部106は、下内積用1次元DCT係数抽出部102から供給される下境界1次元DCT係数と下隣接1次元DCT係数から、式(19)にしたがって、下内積を計算して出力する。
【0559】
左内積用1次元DCT係数抽出部103は、注目ブロックについて、左内積を計算するのに用いる左境界1次元DCT係数と左隣接1次元DCT係数を、そこに供給される1次元DCT係数から抽出し、左内積演算部107に供給する。
【0560】
左内積演算部107は、左内積用1次元DCT係数抽出部103から供給される左境界1次元DCT係数と左隣接1次元DCT係数から、式(19)にしたがって、左内積を計算して出力する。
【0561】
右内積用1次元DCT係数抽出部104は、注目ブロックについて、右内積を計算するのに用いる右境界1次元DCT係数と右隣接1次元DCT係数を、そこに供給される1次元DCT係数から抽出し、右内積演算部108に供給する。
【0562】
右内積演算部108は、右内積用1次元DCT係数抽出部104から供給される右境界1次元DCT係数と右隣接1次元DCT係数から、式(19)にしたがって、右内積を計算して出力する。
【0563】
次に、図47は、図19のクラスコード生成部36の構成例を示している。
【0564】
クラスコード生成部36は、輝度信号のブロックを対象に、そのブロックを構成する画素をクラス分類するようになっている。
【0565】
即ち、比較部111および112には、ACパワー算出部33(図19)が出力するACパワーが供給される。平坦性条件判定部113には、ACパワー算出部33(図19)が出力するACパワー、並びに1次元逆DCT変換部31および隣接1次元DCT係数選択/変換部32が出力する1次元DCT係数が供給される。連続性判定部114には、AC内積計算部34(図19)が出力するAC内積が供給される。境界部エッジ条件判定部115には、1次元逆DCT変換部31および隣接1次元DCT係数選択/変換部32が出力する1次元DCT係数が供給される。
【0566】
比較部111は、ACパワー算出部33(図19)が出力するACパワーのうちの、注目画素の行の水平1次元DCT係数から求められた水平方向のACパワーを、所定の閾値Aと比較し、その比較結果を、クラスコード作成部116に供給する。
【0567】
比較部112は、ACパワー算出部33(図19)が出力するACパワーのうちの、注目画素の列の垂直1次元DCT係数から求められた垂直方向のACパワーを、所定の閾値Aと比較し、その比較結果を、クラスコード作成部116に供給する。
【0568】
平坦性条件判定部113は、注目ブロックについて、境界1次元DCT係数から求められたACパワー、隣接1次元DCT係数から求められたACパワー、さらには、境界1次元DCT係数の直流成分、隣接1次元DCT係数の直流成分に基づき、注目ブロックの上下左右それぞれの境界について、各境界部分における画像の平坦性を判定し、その判定結果を、クラスコード生成部116に供給する。
【0569】
連続性条件判定部114は、注目ブロックについて求められた上内積、下内積、左内積、右内積に基づき、注目ブロックの上下左右それぞれの境界について、各境界部分における画像の連続性を判定し、その判定結果を、クラスコード生成部116に供給する。
【0570】
境界部エッジ条件判定部115は、注目ブロックについての境界1次元DCT係数の直流成分と、隣接1次元DCT係数の直流成分とに基づき、注目ブロックの上下左右それぞれの境界について、その境界に沿ってエッジが存在するかどうかを判定し、その判定結果を、クラスコード生成部116に供給する。
【0571】
クラスコード作成部116は、比較部111および112、平坦性条件判定部113、連続性条件判定部114、並びに境界部エッジ条件判定部115の出力に基づき、注目画素をクラス分類し、そのクラスを表すクラスコード(輝度クラスコード)を作成(生成)して出力する。
【0572】
ここで、図48は、クラスコード作成部116が出力するクラスコードのフォーマットを示している。
【0573】
図48の実施の形態では、クラスコードは、10ビットとされており、その先頭から、2ビットのACパワークラスコード、4ビットのブロック平坦性クラスコード、4ビットのブロック間連続性クラスコードが順次配置されて構成される。
【0574】
2ビットのACパワークラスコードは、注目画素を、その垂直方向のACパワーと水平方向のACパワーによってクラス分けするもので、その先頭のビットは、注目画素の列の垂直1次元DCT係数から求められた垂直方向のACパワーによって決定され、2番目のビットは、注目画素の行の水平1次元DCT係数から求められた水平方向のACパワーによって決定される。従って、ACパワークラスコードは、画素ごとに決定される。
【0575】
4ビットのブロック平坦性クラスコードは、注目画素を含むブロック(注目ブロック)を、その上下左右それぞれの境界部分の平坦性(注目ブロックとそれに隣接するブロックとの間における画像の平坦さ)によってクラス分けするもので、その1乃至4番目のビットは、注目ブロックの上、下、左、右それぞれの境界の平坦性によって決定される。従って、ブロック平坦性クラスコードは、ブロックごとに決定される。
【0576】
4ビットのブロック間連続性クラスコードは、注目画素を含むブロック(注目ブロック)を、その上下左右それぞれの境界部分の連続性(注目ブロックとそれに隣接するブロックとの間における画像のつながり具合)によってクラス分けするもので、その1乃至4番目のビットは、注目ブロックの上、下、左、右それぞれの境界の連続性によって決定される。従って、ブロック連続性クラスコードも、ブロック平坦性クラスコードと同様に、ブロックごとに決定される。
【0577】
以上から、ACパワークラスコードは、基本的に、画素ごとに異なるが、ブロック平坦性クラスコードとブロック間連続性クラスコードは、同一ブロックの画素については、同一となる。
【0578】
次に、図49のフローチャートを参照して、図47のクラスコード生成部36の処理(クラス分類処理)について説明する。
【0579】
クラスコード生成部36では、まず最初に、ステップS91において、比較部111が、ACパワー算出部33(図19)が出力するACパワーのうちの、注目画素の行の水平1次元DCT係数から求められた水平方向のACパワーを、所定の閾値Aと比較し、その比較結果を、クラスコード作成部116に供給する。さらに、ステップS91では、比較部112が、ACパワー算出部33(図19)が出力するACパワーのうちの、注目画素の列の垂直1次元DCT係数から求められた垂直方向のACパワーを、所定の閾値Aと比較し、その比較結果を、クラスコード作成部116に供給する。
【0580】
そして、クラスコード作成部116は、比較部111と112の出力に基づいて、注目画素のACパワークラスコードを決定する。
【0581】
即ち、クラスコード作成部116は、注目画素の列の垂直1次元DCT係数から求められた垂直方向のACパワーが、所定の閾値Aより大の場合は、2ビットのACパワークラスコードのうちの1番目のビットを、例えば1とし、その垂直方向のACパワーが、所定の閾値Aより大でない場合は、ACパワークラスコードの1番目のビットを、例えば、0とする。さらに、クラスコード作成部116は、注目画素の行の水平1次元DCT係数から求められた水平方向のACパワーが、所定の閾値Aより大の場合は、2ビットのACパワークラスコードのうちの2番目のビットを、例えば1とし、その水平方向のACパワーが、所定の閾値Aより大でない場合は、ACパワークラスコードの2番目のビットを、例えば、0とする。
【0582】
その後、ステップS92に進み、境界部エッジ条件判定部115は、注目ブロックについての境界1次元DCT係数の直流成分と、隣接1次元DCT係数の直流成分とに基づき、注目ブロックの境界について、その境界に沿ってエッジが存在するという境界部エッジ条件が満たされるかどうかを判定する。
【0583】
即ち、境界部エッジ条件判定部115は、例えば、注目ブロックについての境界1次DCT係数の直流成分DCと、隣接1次DCT係数の直流成分DC’との差分絶対値|DC−DC’|が、所定の閾値Eよりも大きい(または以上である)という条件を、境界部エッジ条件として、そのような境界部エッジ条件が満たされるかどうかを判定する。
【0584】
ステップS92において、境界部エッジ条件が満たされると判定した場合、即ち、注目ブロックについての境界1次DCT係数の直流成分DCと、隣接1次DCT係数の直流成分DC’との差が非常に大きく、従って、注目ブロックの境界部分にエッジが存在し、注目ブロックとそれに隣接するブロックの画像パターンにつながりがないと考えられる場合、境界部エッジ条件判定部115は、その旨を、クラスコード作成部116に出力し、ステップS97に進む。ステップS97では、クラスコード作成部116は、ブロック平坦性クラスコードおよびブロック間連続性クラスコードを、いずれも、例えば0とし、ステップS98に進む。
【0585】
また、ステップS92において、境界部エッジ条件が満たされないと判定された場合、ステップS93に進み、平坦性条件判定部113は、注目ブロックについて、境界1次元DCT係数から求められたACパワー、隣接1次元DCT係数から求められたACパワー、さらには、境界1次元DCT係数の直流成分、隣接1次元DCT係数の直流成分に基づき、注目ブロックの境界部分が平坦であるという平坦性条件が満たされるかどうかを判定する。
【0586】
即ち、平坦性条件判定部113は、例えば、次式で表される条件を、平坦性条件として、そのような平坦性条件が満たされるかどうかを判定する。
【0587】
(PAC≦B)∩(PAC’≦B)∩(|DC−DC’|≦D)・・・(20)
【0588】
AC’≦C・・・(21)
【0589】
但し、式(20)および(21)において、B,C,Dは、所定の閾値であり、閾値Cは、閾値Bよりも十分小さいものとする。また、式(20)および(21)において、PACは、注目ブロックについての境界1次元DCT係数から求められたACパワーを表し、PAC’は、注目ブロックについての隣接1次元DCT係数から求められたACパワーを表す。さらに、式(20)において、DCは、注目ブロックについての境界1次元DCT係数の直流成分を表し、DC’は、注目ブロックについての隣接1次元DCT係数の直流成分を表す。また、∩は、論理積を表す。
【0590】
式(20)は、注目ブロックについての境界1次元DCT係数と隣接1次元DCT係数からそれぞれ求められるACパワーPACとPAC’が、いずれも閾値B以下で(または未満で)、かつ、それぞれの直流成分DCとDC’の差分絶対値|DC−DC’|が、閾値D以下(または未満)の場合に、真となる。また、式(21)は、注目ブロックについての隣接1次元DCT係数から求められたACパワーPAC’が、閾値C以下(または未満)の場合に、真となる。
【0591】
ここで、閾値Cは、上述したように、閾値Bよりも十分小さい、例えば、0に近い値であり、従って、式(21)は、注目ブロックについての隣接1次元DCT係数から求められたACパワーPAC’が0に近い場合に、真となる。
【0592】
なお、ここでは、平坦性条件は、例えば、式(20)および(21)のうちのいずれか一方が真であれば満たされるものとする。
【0593】
ステップS93において、平坦性条件が満たされると判定された場合、平坦性条件判定部113は、その旨を、クラスコード作成部116に供給して、ステップS94に進む。
【0594】
ステップS94では、クラスコード作成部116は、ブロック平坦性クラスコードおよびブロック間連続性クラスコードを、いずれも、例えば1とし、ステップS98に進む。
【0595】
また、ステップS93において、平坦性条件が満たされないと判定された場合、ステップS95に進み、連続性条件判定部114は、注目ブロックについて求められたAC内積に基づき、注目ブロックの境界部分に連続性があるという連続性条件が満たされるかどうかを判定する。
【0596】
即ち、連続性条件判定部114は、例えば、注目ブロックについてのAC内積Iが、正の値(または0以上)であるという条件を、連続性条件として、そのような連続性条件が満たされるかどうかを判定する。
【0597】
ステップS95において、連続性条件が満たされると判定された場合、連続性条件判定部114は、その旨を、クラスコード作成部116に供給して、ステップS96に進む。
【0598】
ステップS96では、クラスコード作成部116は、ブロック平坦性クラスコードを、例えば、0とするとともに、ブロック間連続性クラスコードを、例えば、1とし、ステップS98に進む。
【0599】
一方、ステップS96において、連続性条件が満たされないと判定された場合、連続性条件判定部114は、その旨を、クラスコード作成部116に供給して、ステップS97に進む。ステップS97では、クラスコード作成部116は、上述したように、ブロック平坦性クラスコードおよびブロック間連続性クラスコードを、いずれも0とし、ステップS98に進む。
【0600】
なお、ステップS92乃至S97の処理は、注目ブロックの上下左右の境界それぞれについて、独立に行われ、これにより、ブロック平坦性クラスコードとブロック間連続性クラスコードは、注目ブロックの上下左右の境界それぞれについて求められる。
【0601】
ステップS98では、クラスコード作成部116は、ステップS91乃至S97の処理によって求められたACパワークラスコード、ブロック平坦性クラスコード、およびブロック間連続性クラスコードから、図48に示した10ビットのクラスコードを作成し、処理を終了する。
【0602】
なお、図49のフローチャートに示した処理は、新たな画素が注目画素とされるごとに行われる。但し、上述したように、ブロック平坦生クラスコードとブロック間連続性クラスコードは、同一ブロックの画素については同一となるため、同一ブロックを構成する画素については、最初の画素に対してのみ、ステップS91乃至98の処理を行い、他の画素に対しては、ステップS91とS98の処理だけを行い、ブロック平坦生クラスコードとブロック間連続性クラスコードは、最初の画素に対して得られたものを流用するようにすることが可能である。
【0603】
ここで、本実施の形態では、図48に示したように、クラスコードを10ビットとしているため、そのような10ビットのクラスコードによれば、1024(=210)通りのクラスを表すことができる。
【0604】
しかしながら、図49に示したクラス分類処理では、ブロック平坦性クラスコードが1で、ブロック間連続性クラスコードが0となるケースは、存在しない。即ち、ここでは、ブロックの境界部分が平坦であるのに、連続性がないということはありえないとして、ブロック平坦性クラスコードが1となる場合には、ブロック間連続性クラスコードも、必ず1とするようにしている。
【0605】
従って、例えば、ブロックの上の境界についてのブロック平坦性クラスコードとブロック間連続性クラスコードとの組(b1,b2)は、(0,0),(0,1),(1,1)の3通りしか取り得ない。その結果、ブロックの上下左右の4つの境界すべてについての4ビットのブロック平坦性クラスコード、および4ビットのブロック間連続性クラスコードで表現されるクラス数は、81(=34)通りとなる。
【0606】
また、2ビットのACパワークラスコードで表現されるクラス数は、4(=22)通りである。
【0607】
従って、ここでは、図48の10ビットのクラスコードで表現されるクラス数は、324(=81×4)通りとなる。
【0608】
ここで、上述の場合において、ブロック平坦性クラスコードとブロック間連続性クラスコードとの組(b1,b2)が、(0,0)となるケースは、注目ブロックとそれに隣接する隣接ブロックにおける画像どうしにつながりがなく、注目ブロックと隣接ブロックとが、いわば「無関係」であることを表す。また、(b1,b2)が、(0,1)となるケースは、注目ブロックと隣接ブロックにおける画像が、平坦ではないが、「連続」していることを表す。さらに、(b1,b2)が、(1,1)となるケースは、注目ブロックと隣接ブロックにおける画像が、「平坦」であること(従って、「連続」でもある)ことを表す。
【0609】
なお、上述の場合には、ブロック平坦性クラスコードとブロック間連続性クラスコードとの組(b1,b2)を、3通りとして、10ビットのクラスコードにより、324通りのクラスを表現するようにしたが、(b1,b2)は、3通りではなく、(0,0),(0,1),(1,0)、(1,1)の4通りを取り得るようにして、10ビットのクラスコードにより、1024(=210)通りのクラスを表現することができるようにすることも可能である。
【0610】
即ち、上述の場合には、式(20)または(21)のいずれか一方のみが満たされれば、平坦性条件が満たされることとして、(b1,b2)に(1,1)を割り当てるようにしたが、例えば、式(20)と(21)の両方が満たされる場合と、式(20)だけが満たされる場合とを区別するようにし、式(20)と(21)の両方が満たされる場合には、(b1,b2)に、(1,1)を割り当てるとともに、式(20)だけが満たされる場合には、(b1,b2)に、(1,0)を割り当てるようにすることが可能である。
【0611】
この場合、(b1,b2)が、(1,1)となるケースは、注目ブロックと隣接ブロックにおける画像が、「注目ブロック側と隣接ブロック側の両方で平坦」であることを表し、(b1,b2)が、(1,0)となるケースは、注目ブロックと隣接ブロックにおける画像が、「隣接ブロック側だけで平坦」であることを表す。
【0612】
また、図49のフローチャートでは、境界エッジ条件が満たされるケースであっても、平坦性条件と連続性条件のいずれもが満たされないケースであっても、(b1,b2)を、(0,0)とするようにしたが、境界エッジ条件が満たされるケースか、平坦性条件と連続性条件のいずれもが満たされないケースのうちのいずれか一方を、(1,0)に割り当てることにより、ブロック平坦性クラスコードとブロック間連続性クラスコードとの組(b1,b2)が、4通りを取り得るようにすることも可能である。
【0613】
さらに、式(20)と(21)の両方が満たされるケースと、式(20)だけが満たされるケースとを区別するとともに、境界エッジ条件が満たされるケースと、平坦性条件と連続性条件のいずれもが満たされないケースとを区別するようにすることも可能である。但し、この場合、注目ブロックと隣接ブロックにおける画像が「連続」しているケース、および注目ブロックと隣接ブロックにおける画像が「平坦」であるケースとあわせると、注目ブロックの1つ(1辺)の境界について、5通りの場合分けが必要となる。従って、この場合、注目ブロックの境界によるクラスの場合の数は、625通りとなり、その結果、2ビットのACパワークラスコードも考慮すると、全クラス数は、2500となる。
【0614】
次に、図50は、図19のクラスコード生成部37の構成例を示している。
【0615】
クラスコード生成部37は、色差信号のブロックを対象に、そのブロックを構成する画素をクラス分類するようになっている。
【0616】
従って、クラスコード生成部37は、輝度クラスコードを出力するクラスコード生成部36と同様に構成することも可能である。
【0617】
しかしながら、色差信号のブロックは、一般に、輝度信号のブロックに比較して、画像のアクティビティが低く、1次元DCT係数の交流成分の値が小さくなるため、クラスコード生成部36と同一の処理を行うと、効果的なクラス分類が困難な場合がある。
【0618】
そこで、ここでは、クラスコード生成部37は、クラスコード生成部36で得られた輝度クラスコードをも用いて、色差信号の画素のクラス分類を行うようになっている。
【0619】
即ち、図50の実施の形態において、比較部121および122には、ACパワー算出部33(図19)が出力するACパワーが供給される。
【0620】
比較部121は、図47の比較部111と同様に、ACパワー算出部33(図19)が出力するACパワーのうちの、注目画素の行の水平1次元DCT係数から求められた水平方向のACパワーを、所定の閾値Aと比較し、その比較結果を、クラスコード作成部123に供給する。
【0621】
比較部122は、図46の比較部112と同様に、ACパワー算出部33(図19)が出力するACパワーのうちの、注目画素の列の垂直1次元DCT係数から求められた垂直方向のACパワーを、所定の閾値Aと比較し、その比較結果を、クラスコード作成部123に供給する。
【0622】
なお、クラスコード生成部37では、色差信号のブロックを対象に処理が行われるが、上述したように、色差信号については、その1次元DCT係数の交流成分の値が小さくなることから、ACパワーも小さくなる。このため、比較部121と122で用いられる閾値Aは、図47の比較部111と112で用いられるものよりも小さい値のものを用いるのが望ましい。
【0623】
クラスコード作成部123には、比較部121および122の出力の他、クラスコード作成部36が出力する図48の輝度クラスコードも供給されるようになっており、クラスコード作成部123は、これらの比較部121および122の出力、並びに輝度クラスコードに基づき、注目画素をクラス分類し、そのクラスを表すクラスコード(色差クラスコード)を作成(生成)して出力する。
【0624】
ここで、クラスコード作成部123は、図48に示した輝度クラスコードと同一フォーマットの色差クラスコードを作成するようになっている。
【0625】
即ち、クラスコード作成部123は、注目画素のACパワークラスコードについては、比較部121と122の出力に基づき、図47のクラスコード作成部116と同様にして作成する。
【0626】
また、クラスコード作成部123は、注目画素のブロック平坦性クラスコードと、ブロック間連続性クラスコードについては、その注目画素を含む色差信号のブロック(注目ブロック)と空間的に同一位置にある輝度信号のブロックにおける画素の輝度クラスコードを用いて作成する。
【0627】
即ち、例えば、いま、画像データがYUV形式で表されるものとし、その画像フォーマットが、4:2:2であるとすると、図51Aに示すように、左右に並ぶ2つの輝度ブロックY1およびY2と、1つの色差ブロックUと、1つの色差ブロックVとが対応する。
【0628】
そして、この場合、色差ブロックUの上の境界は、左の輝度ブロックY1の上の境界aと右の輝度ブロックY2の上の境界bに、色差ブロックUの下の境界は、輝度ブロックY1の下の境界eと輝度ブロックY2の下の境界fに、色差ブロックUの左の境界は、輝度ブロックY1の左の境界cに、色差ブロックUの右の境界は、輝度ブロックY2の右の境界dに、それぞれ対応する。
【0629】
そこで、図51Aに点線で示してあるように、色差ブロックUを、横×縦が4×8画素の、左右に隣接する2つの小ブロックUlとUrに分割すると、図51Bに示すように、左の小ブロックUlの上の境界は、輝度ブロックY1の上の境界aに、小ブロックUlの下の境界は、輝度ブロックY1の下の境界eに、小ブロックUlの左の境界は、輝度ブロックY1の左の境界cに、小ブロックUlの右の境界は、輝度ブロックY2の右の境界dに、それぞれ対応する。また、右の小ブロックUrの上の境界は、輝度ブロックY2の上の境界bに、小ブロックUrの下の境界は、輝度ブロックY2の下の境界fに、小ブロックUrの左の境界は、輝度ブロックY1の左の境界cに、小ブロックUrの右の境界は、輝度ブロックY2の右の境界dに、それぞれ対応する。
【0630】
ここで、図48のクラスコードにおいて、ブロックの上下左右の境界について求められたブロック平坦性クラスコードを、以下、適宜、上境界平坦性コード、下境界平坦性コード、左境界平坦性コード、右境界平坦性コードと、それぞれいう。また、ブロックの上下左右の境界について求められたブロック間連続性クラスコードを、以下、適宜、上境界連続性コード、下境界連続性コード、左境界連続性コード、右境界連続性コードと、それぞれいう。さらに、以下、適宜、上境界平坦性コードと上境界連続性コードをまとめて、上境界コードと、下境界平坦性コードと下境界連続性コードをまとめて、下境界コードと、左境界平坦性コードと左境界連続性コードをまとめて、左境界コードと、右境界平坦性コードと右境界連続性コードをまとめて、右境界コードと、それぞれいう。また、以下、適宜、上境界コード、下境界コード、左境界コード、および右境界コードをまとめて、境界コードという。
【0631】
輝度ブロックY1およびY2の境界と、小ブロックUlやUrの境界との間には、上述のような対応関係があることから、クラスコード作成部123は、小ブロックUlとUrそれぞれの画素の色差クラスコードにおける境界コードとして、輝度ブロックY1およびY2の対応する境界について求められたものを、そのまま用いるようになっている。
【0632】
即ち、クラスコード作成部123は、小ブロックUlの画素については、その色差クラスコードにおける上境界コード、下境界コード、左境界コード、右境界コードとして、それぞれ、輝度ブロックY1の上境界コード、輝度ブロックY1の下境界コード、輝度ブロックY1の左境界コード、輝度ブロックY2の右境界をセットする。
【0633】
また、クラスコード作成部123は、小ブロックUrの画素については、その色差クラスコードにおける上境界コード、下境界コード、左境界コード、右境界コードとして、それぞれ、輝度ブロックY2の上境界コード、輝度ブロックY2の下境界コード、輝度ブロックY1の左境界コード、輝度ブロックY2の右境界コードをセットする。
【0634】
色差ブロックVと、輝度ブロックY1およびY2との対応関係も、色差ブロックUと、輝度ブロックY1およびY2との対応関係と同一であり、クラスコード作成部123は、色差ブロックUにおける場合と同様に、色差ブロックVを、横×縦が4×8画素の2つの小ブロックVlとVrに分割し、小ブロックVlとVrの色差クラスコードにおける境界コードとして、輝度ブロックY1およびY2の境界コードを、色差ブロックUにおける場合と同様にしてセットする。
【0635】
その結果、クラスコード作成部123では、小ブロックUl,Ur,Vl,Vrの画素について、次のような色差クラスコードが作成される。
【0636】
即ち、例えば、いま、図52Aに示すように、色差ブロックU,Vに対応する2つの輝度ブロックY1またはY2の画素について得られている10ビットの輝度クラスコードの第iビット(最下位ビットからiビット目)を、BL#i−1またはBR#i−1と、それぞれ表すこととすると、小ブロックUl,Ur,Vl,Vrの画素については、図52Bに示すようなクラスコードが作成される。
【0637】
即ち、小ブロックUl,Vlの画素の色差クラスコードの第1乃至第8ビットには、BR0,BL1,BL2,BL3,BR4,BL5,BL6,BL7がそれぞれ配置される。また、小ブロックUr,Vrの画素の色差クラスコードの第1乃至第8ビットには、BR0,BL1,BR2,BR3,BR4,BL5,BR6,BR7がそれぞれ配置される。
【0638】
ここで、色差クラスコードの第9ビットと第10ビットは、輝度クラスコードにおける場合と同様に、注目画素のACパワーに基づいて決定される。
【0639】
次に、画像フォーマットが、例えば、4:2:0である場合には、図53Aに示すように、左上、左下、右上、右下の位置関係にある4つの隣接する輝度ブロックY1,Y2,Y3,Y4と、1つの色差ブロックUと、1つの色差ブロックVとが対応する。
【0640】
そして、この場合、図53Aに点線で示してあるように、色差ブロックUを、横×縦が4×4画素の左上、左下、右上、右下の位置関係にある4つの小ブロックUul,Ull,Uur,Ulrに分割すると、図53Bに示すように、小ブロックUulの上の境界は、輝度ブロックY1の上の境界aに、小ブロックUulの下の境界は、輝度ブロックY3の下の境界gに、小ブロックUulの左の境界は、輝度ブロックY1の左の境界cに、小ブロックUulの右の境界は、輝度ブロックY2の右の境界dに、それぞれ対応する。また、小ブロックUllの上の境界は、輝度ブロックY1の上の境界aに、小ブロックUllの下の境界は、輝度ブロックY3の下の境界gに、小ブロックUllの左の境界は、輝度ブロックY3の左の境界eに、小ブロックUllの右の境界は、輝度ブロックY4の右の境界fに、それぞれ対応する。さらに、小ブロックUurの上の境界は、輝度ブロックY2の上の境界bに、小ブロックUurの下の境界は、輝度ブロックY4の下の境界hに、小ブロックUurの左の境界は、輝度ブロックY1の左の境界cに、小ブロックUurの右の境界は、輝度ブロックY2の右の境界dに、それぞれ対応する。さらに、小ブロックUlrの上の境界は、輝度ブロックY2の上の境界bに、小ブロックUlrの下の境界は、輝度ブロックY4の下の境界hに、小ブロックUlrの左の境界は、輝度ブロックY3の左の境界eに、小ブロックUlrの右の境界は、輝度ブロックY4の右の境界fに、それぞれ対応する。
【0641】
輝度ブロックY1乃至Y4の境界と、小ブロックUulや、Ull,Uur,Ulrの境界との間には、上述のような対応関係があることから、クラスコード作成部123は、画像フォーマットが4:2:2である場合と同様に、小ブロックUul,Ull,Uur,Ulrそれぞれの画素の色差クラスコードにおける境界コードとして、輝度ブロックY1乃至Y4の対応する境界について求められたものを、そのまま用いるようになっている。
【0642】
即ち、クラスコード作成部123は、小ブロックUulの画素については、その色差クラスコードにおける上境界コード、下境界コード、左境界コード、右境界コードとして、それぞれ、輝度ブロックY1の上境界コード、輝度ブロックY3の下境界コード、輝度ブロックY1の左境界コード、輝度ブロックY2の右境界をセットする。
【0643】
また、クラスコード作成部123は、小ブロックUllの画素については、その色差クラスコードにおける上境界コード、下境界コード、左境界コード、右境界コードとして、それぞれ、輝度ブロックY1の上境界コード、輝度ブロックY3の下境界コード、輝度ブロックY3の左境界コード、輝度ブロックY4の右境界をセットする。
【0644】
さらに、クラスコード作成部123は、小ブロックUurの画素については、その色差クラスコードにおける上境界コード、下境界コード、左境界コード、右境界コードとして、それぞれ、輝度ブロックY2の上境界コード、輝度ブロックY4の下境界コード、輝度ブロックY1の左境界コード、輝度ブロックY2の右境界コードをセットする。
【0645】
また、クラスコード作成部123は、小ブロックUlrの画素については、その色差クラスコードにおける上境界コード、下境界コード、左境界コード、右境界コードとして、それぞれ、輝度ブロックY2の上境界コード、輝度ブロックY4の下境界コード、輝度ブロックY3の左境界コード、輝度ブロックY4の右境界コードをセットする。
【0646】
色差ブロックVと、輝度ブロックY1乃至Y4との対応関係も、色差ブロックUと、輝度ブロックY1乃至Y4との対応関係と同一であり、クラスコード作成部123は、色差ブロックUにおける場合と同様に、色差ブロックVを、横×縦が4×4画素の4つの小ブロックVul,Vll,Vur,Vlrに分割し、小ブロックVul,Vll,Vur,Vlrの色差クラスコードにおける境界コードとして、輝度ブロックY1乃至Y4の境界コードを、色差ブロックUにおける場合と同様にしてセットする。
【0647】
その結果、クラスコード作成部123では、小ブロックUul,Ull,Uur,Ulr、およびVul,Vll,Vur,Vlrの画素について、次のような色差クラスコードが作成される。
【0648】
即ち、例えば、いま、図54Aに示すように、色差ブロックU,Vに対応する2つの輝度ブロックY1乃至Y4の画素について得られている10ビットの輝度クラスコードの第iビットを、BUL#i−1,BUR#i−1,BDL#i−1,BDR#i−1と、それぞれ表すこととすると、小ブロックUul,Ull,Uur,Ulr、およびVul,Vll,Vur,Vlrの画素については、図54Bに示すようなクラスコードが作成される。
【0649】
即ち、小ブロックUul,Vulの画素の色差クラスコードの第1乃至第8ビットには、BUR0,BUL1,BDL2,BUL3,BUR4,BUL5,BDL6,BUL7がそれぞれ配置される。また、小ブロックUll,Vllの画素の色差クラスコードの第1乃至第8ビットには、BDR0,BDL1,BDL2,BUL3,BDR4,BDL5,BDL6,BUL7がそれぞれ配置される。さらに、小ブロックUur,Vurの画素の色差クラスコードの第1乃至第8ビットには、BUR0,BUL1,BDR2,BUR3,BUR4,BUL5,BDR6,BUR7がそれぞれ配置される。また、小ブロックUlr,Vlrの画素の色差クラスコードの第1乃至第8ビットには、BDR0,BDL1,BDR2,BUR3,BDR4,BDL5,BDR6,BUR7がそれぞれ配置される。
【0650】
ここで、色差クラスコードの第9ビットと第10ビットは、輝度クラスコードにおける場合と同様に、注目画素のACパワーに基づいて決定される。
【0651】
なお、ここでは、画像データが、Y,U,V形式で表されるものとして説明したが、画像データが、その他、例えば、Y,Cb,Cr形式で表される場合も、同様のクラス分類を行うことが可能である。
【0652】
さらに、ここでは、画像フォーマットが、4:2:2の場合と、4:2:0の場合について説明したが、画像フォーマットが、4:4:4の場合(例えば、画像データが、R(red),G(green),B(blue)形式の場合)は、各信号について、同一のクラス分類を行っても良いし、ある信号について行ったクラス分類により得られたクラスコードを、そのまま、他の信号に用いるようにしても良い。
【0653】
次に、図18のFT変換部51における種重み記憶部17に記憶される種重みデータについて説明する。
【0654】
FT変換部51では、積和演算部15において、上述した式(17)の積和演算が行われるが、式(17)の積和演算によって求められる画素値は、変換係数F(i,j,u,v)と、2次元DCT係数f(u,v)との積和である。
【0655】
一方、本件出願人が先に提案した、各種の歪みを十分に低減した、解像度の高い高画質の画像を復号するクラス分類適応処理で行われる、前述の式(1)によって求められる画素値は、タップ係数wkと、2次元DCT係数xkとの積和である。
【0656】
従って、式(17)の変換係数F(i,j,u,v)が、式(8)の正規方程式を解くことにより得られる式(1)のタップ係数wkに一致する場合には、FT変換部51において、クラス分類適応処理で得られるのと同様の解像度の高い高画質の画像を復号することができることになる。
【0657】
そこで、種重み記憶部17には、式(8)の正規方程式を解くことにより得られる式(1)のタップ係数wkと同様の変換係数F(i,j,u,v)を生成することができるように種データを補正する種重みデータが記憶されており、以下において、そのような種重みデータの生成方法について説明するが、その前に、クラス分類適応処理を行うクラス分類適応処理回路と、そのクラス分類適応処理に用いられるタップ係数を学習する学習装置について説明する。
【0658】
図55は、2次元DCT係数を画素値に復号(変換)するクラス分類適応処理を行うクラス分類適応処理回路の構成例を示している。
【0659】
なお、図14の画像処理装置は、FT変換部51に代えて、図55のクラス分類適応処理回路を設けて構成することができる。そこで、ここでは、図55のクラス分類適応処理回路には、図14の画像処理装置におけるバッファメモリ23に記憶された2次元DCT係数のブロックが供給され、画素値のブロックに変換されるものとして、説明を行う。
【0660】
バッファメモリ23(図14)に記憶された2次元DCT係数のブロックは、タップ生成部131およびクラス分類部132に供給される。
【0661】
タップ生成部131は、バッファメモリ23(図14)から供給される2次元DCT係数のブロックを、注目ブロックとし、さらに、その注目ブロックの画素を、例えば、ラスタスキャン順で、順次、注目画素とする。そして、タップ生成部131は、注目画素について、バッファメモリ23から供給される2次元DCT係数を用い、注目画素を予測する式(1)の線形1次予測演算を行うための予測タップを生成して、積和演算部135に供給する。
【0662】
ここで、注目画素の空間周波数成分は、注目ブロックの2次元DCT係数全体に、いわば分散しているから、注目画素を予測するにあたっては、少なくとも、注目ブロックの2次元DCT係数すべてを、予測タップとして用いるのが望ましい。さらに、図18のFT変換部51では、積和演算部15において、注目ブロックのすべてのDCT係数を用いて積和演算が行われるため、そのこととの均衡からも、注目ブロックの2次元DCT係数すべてを、予測タップとして用いるのが望ましい。
【0663】
そこで、タップ生成部131は、例えば、バッファメモリ23から供給される注目ブロックの2次元DCT係数すべてを、予測タップとする。この場合、予測タップは、64(=8×8)タップで構成されることになる。
【0664】
クラス分類部132は、図19のクラス分類部16と同様に構成され、バッファメモリ23から供給されるブロックの2次元DCT係数を用いて、注目画素をクラス分類し、その注目画素のクラスを表すクラスコードを、タップ係数記憶部133に供給する。従って、クラス分類部132から、タップ係数記憶部133に対しては、図19のクラス分類部16における場合と同様に、輝度クラスコードと色差クラスコードが供給される。
【0665】
タップ係数記憶部133は、クラスごとに、後述する学習装置で求められるタップ係数をクラスごとに記憶している。そして、タップ係数記憶部133は、クラス分類部132から供給されるクラスコードが表すクラスのタップ係数を読み出し、タップ係数バッファ134に供給する。なお、クラス分類部132から、タップ係数記憶部133に対しては、上述したように、輝度クラスコードと色差クラスコードが供給されるが、これに対応して、タップ係数バッファ133は、輝度信号用のタップ係数と、色差信号用のタップ係数を記憶している。そして、タップ係数記憶部133は、クラス分類部132から輝度クラスコードが供給された場合には、その輝度クラスコードが表すクラスの輝度信号用のタップ係数を、色差クラスコードが供給された場合には、その色差クラスコードが表すクラスの色差信号用のタップ係数を、それぞれ読み出し、タップ係数バッファ134に供給する。
【0666】
タップ係数バッファ134は、タップ係数記憶部133から供給されるタップ係数を一時記憶する。
【0667】
積和演算部135は、タップ生成部131から供給される予測タップと、タップ係数バッファ134に記憶されたタップ係数とを用いて、式(1)の線形1次予測演算を行い、注目画素の復号値を出力する。
【0668】
次に、図56のフローチャートを参照して、図55のクラス分類適応処理回路の処理(クラス分類適応処理)について説明する。
【0669】
まず最初に、ステップS101において、タップ生成部131は、バッファメモリ23(図14)から供給される2次元DCT係数のブロックを、注目ブロックとし、その注目ブロックの各画素を予測する式(1)の線形1次予測演算を行うための予測タップを、例えば、バッファメモリ23(図14)からの注目ブロックのすべての2次元DCT係数を用いて生成し、積和演算部135に供給して、ステップS102に進む。
【0670】
ステップS102では、タップ生成部131が、画素位置モードを表す変数iを、例えば0に初期化し、積和演算部135に供給する。
【0671】
ここで、ブロックの2次元DCT係数を2次元逆DCT変換する場合は、そのブロックにおける各画素の空間上の位置を表す位置情報が、式(11)に示した変換行列Cのコンポーネントcijを定義するcos((2j+1)×i×π/16)の位相という形で考慮される。
【0672】
一方、クラス分類適応処理では、予測タップを構成するDCT係数と、タップ係数とを用いた式(1)の線形1次予測演算が行われるが、この線形1次予測演算では、復号しようとしている画素(注目画素)の位置情報が考慮されない。そこで、注目画素の位置情報を考慮した線形1次予測演算を行うために、ここでは、注目画素の位置によって異なるタップ係数が用いられるようになっている。即ち、同一のクラスに分類される画素であっても、ブロックにおける位置が異なる場合には、異なるタップ係数を用いて、線形1次予測演算が行われるようになっている。この場合、線形1次予測演算に用いられるタップ係数が、ブロックにおける注目画素の位置、即ち、画素位置モードによって切り替えられることとなる。
【0673】
なお、ここでは、上述のように、画素位置モードによって、用いるタップ係数を切り替えるようにしたが、その他、例えば、画素位置モードは、クラスコードに含めるようにし、そのクラスコードによって、用いるタップ係数を、実質的に切り替えるようにすることが可能である。即ち、クラスコードとしては、クラス分類部132が出力するクラスコードに、画素位置モードを付加したものを採用するようにすることが可能である。
【0674】
その後、タップ生成部131は、画素位置モード#iの画素を注目画素とし、ステップS103において、クラス分類部132が、バッファメモリ23から供給される注目ブロックの2次元DCT係数を用いて、注目画素をクラス分類し、その注目画素のクラスを表すクラスコードを、タップ係数記憶部133に供給する。これにより、タップ係数記憶部133からは、注目画素のクラスのタップ係数が読み出され、タップ係数バッファ134に供給されて記憶される。
【0675】
ここで、上述のように、同一のクラスに分類される画素であっても、ブロックにおける位置(画素位置モード)が異なる場合には、異なるタップ係数が用いられる。従って、タップ係数記憶部133からは、注目画素のクラスのタップ係数として、画素位置モードの総数である64セットのタップ係数が供給されるようになっており、タップ係数バッファ134は、そのような64セットのタップ係数を記憶する。
【0676】
その後、ステップS104に進み、積和演算部135は、画素位置モード#iに対応するタップ係数のセット(式(1)におけるw1,w2,・・・)を、タップ係数バッファ134から読み出すことにより取得し、ステップS105に進む。
【0677】
ステップS105では、積和演算部135は、タップ生成部131からの予測タップと、タップ係数バッファ134から読み出したタップ係数とを用いて、式(1)の線形1次予測演算を行い、これにより、注目画素の画素値を復号する。
【0678】
そして、ステップS106に進み、タップ生成部131は、画素位置モード#iを1だけインクリメントし、ステップS107に進む。ステップS107では、タップ生成部131は、画素位置モード#iが、注目ブロックの画素数である64(=8×8)未満であるかどうかを判定する。
【0679】
ステップS107において、画素位置モード#iが64未満であると判定された場合、ステップS103に戻り、以下、同様の処理が繰り返される。
【0680】
また、ステップS107において、画素位置モード#iが64未満でないと判定された場合、即ち、注目ブロックのすべての画素値を復号した場合、処理を終了する。
【0681】
なお、図55のクラス分類適応処理回路では、バッファメモリ23(図14)から供給されるブロックを、順次、注目ブロックとして、図56の適応処理が繰り返し行われる。
【0682】
また、積和演算部135は、1フレーム(またはフィールド)の復号画像を得るまでは、復号したブロックを一時記憶しており、1フレームの復号画像が得られると、その1フレームの復号画像を出力する。
【0683】
次に、図55のタップ係数記憶部133に記憶させるタップ係数の学習について説明する。
【0684】
MPEGでは、予測方式の違いにより、Iピクチャ、Pピクチャ、Bピクチャの3つのピクチャタイプがあるので、タップ係数の学習も、ピクチャタイプごとに行われる。
【0685】
図57は、Iピクチャ用のタップ係数を学習する場合の学習装置の一実施の形態の構成例を示している。
【0686】
教師データストレージ141は、学習用の画像データを、教師データとして記憶している。
【0687】
生徒データ生成部142は、MPEGエンコーダ151、分離部152、およびDCT係数抽出/逆量子化部153から構成され、教師データストレージ141に記憶された学習用の画像データ(ここでは、教師データでもある)から、生徒データを生成するようになっている。
【0688】
即ち、MPEGエンコーダ151は、教師データストレージ141に記憶された学習用の画像データを読み出して、MPEG符号化し、その結果得られる符号化データを、分離部152に供給する。分離部152とDCT係数抽出/逆量子化部153は、図14の分離部1とDCT係数抽出/逆量子化部2とそれぞれ同様に構成されており、符号化データから、量子化DCT係数を分離、抽出し、逆量子化して出力する。
【0689】
なお、分離部152およびDCT係数抽出/逆量子化部153は、Iピクチャのみを対象に処理を行う。また、分離部152は、符号化データから、量子化DCT係数の他、量子化スケールやDCTタイプ等の、いわゆるサイドインフォメーションも、必要に応じて分離する。
【0690】
従って、DCT係数抽出/逆量子化部153からは、Iピクチャについての2次元DCT係数の他、DCTタイプ等の必要なサイドインフォメーションも出力される。
【0691】
DCT係数抽出/逆量子化部153が出力するIピクチャについての2次元DCT係数やDCTタイプ等は、生徒データとして、生徒データストレージ143に供給される。
【0692】
生徒データストレージ143は、生徒データ生成部142(のDCT係数抽出/逆量子化部153)から供給される生徒データを記憶する。
【0693】
タップ生成部144は、生徒データストレージ143に記憶された生徒データから、図55のタップ生成部131が生成するのと同一の予測タップを生成し、足し込み部146に供給する。従って、ここでは、タップ生成部144は、生徒データストレージ143に記憶された生徒データとしての2次元DCT係数のうち、注目ブロックを構成するすべての2次元DCT係数を読み出して、予測タップとする。
【0694】
クラス分類部145は、図19のクラス分類部16と同様にされ、生徒データストレージ143に記憶された生徒データとしての2次元DCT係数から1次元DCT係数を求め、さらに、その1次元DCT係数に基づき、図19のクラス分類部16における場合と同様にして、注目ブロックにおける注目画素をクラス分類し、注目画素のクラスを表すクラスコードを、足し込み部146に出力する。
【0695】
足し込み部146は、生徒データストレージ143に記憶された生徒データとしての2次元DCT係数のブロックを、順次、注目ブロックとし、さらに、注目ブロックの画素を、順次、注目画素(注目教師データ)として、タップ生成部144からの生徒データとしての予測タップ(を構成する2次元DCT係数)、および注目画素(の画素値)を対象とした足し込みを行う。
【0696】
即ち、足し込み部146は、クラス分類部145から供給されるクラスコードに対応するクラスごとに、予測タップ(生徒データ)を用い、式(8)の行列Aにおける各コンポーネントとなっている、生徒データどうしの乗算(xinim)と、サメーション(Σ)に相当する演算を行う。
【0697】
さらに、足し込み部146は、やはり、クラス分類部145から供給されるクラスコードに対応するクラスごとに、予測タップ(生徒データ)および注目画素(教師データ)を用い、式(8)のベクトルvにおける各コンポーネントとなっている、生徒データと教師データの乗算(xini)と、サメーション(Σ)に相当する演算を行う。
【0698】
なお、足し込み部146における、上述のような足し込みは、各クラスについて、注目画素に対する画素位置モードごとに行われる。
【0699】
足し込み部146は、以上の足し込みを、生徒データストレージ143に記憶されている生徒データとしての2次元DCT係数を構成するブロックすべてを注目ブロックとして行い、これにより、各クラスについて、画素位置モードごとに、式(8)に示した正規方程式をたてる。
【0700】
タップ係数演算部147は、足し込み部146においてクラスごとに、かつ、画素位置モードごとに生成された各正規方程式を解くことにより、クラスごとに、64の画素位置モードに対応した64セットのタップ係数を求める。
【0701】
なお、学習用の画像として用意する画像の枚数や、その画像の内容等によっては、足し込み部146において、タップ係数を求めるのに必要な数の正規方程式が得られないクラス、さらには画素位置モードが生じる場合があり得るが、タップ係数演算部147は、そのようなクラスや画素位置モードについては、例えば、デフォルトのタップ係数を出力する。
【0702】
次に、図58のフローチャートを参照して、図57の学習装置の処理(学習処理)について説明する。
【0703】
まず最初に、ステップS111において、生徒データ生成部142は、上述したように、教師データストレージ141に記憶された学習用の画像データから、Iピクチャについての生徒データを生成し、生徒データストレージ143に供給して記憶させる。
【0704】
そして、ステップS112に進み、足し込み部146は、生徒データストレージ143に記憶された生徒データとしての2次元DCT係数のブロックのうち、まだ、注目ブロックとしていないものの1つを選択して、注目ブロックとし、ステップS113に進む。
【0705】
ステップS113では、タップ生成部144が、注目ブロックの生徒データとしての2次元DCT係数すべてを、生徒データストレージ143から読み出すことにより、図55のタップ生成部131と同一構造の予測タップを生成し、ステップS114に進む。
【0706】
ステップS114では、足し込み部146が、画素位置モードを表す変数iを、例えば1に初期化し、ステップS115に進む。ステップS115では、クラス分類部145が、注目ブロックにおける画素位置モード#iが表す位置の画素を注目画素として、図19のクラス分類部16における場合と同様にして、注目画素のクラス分類を行い、その結果得られるクラスコードを、足し込み部146に出力する。
【0707】
足し込み部146は、ステップS116において、教師データストレージ141から、注目画素となっている教師データ(画素値)を読み出し、生徒データとしての予測タップ(を構成する2次元DCT係数)、および教師データとしての注目画素を対象として、式(8)の行列Aとベクトルvの、上述したような足し込みを行う。なお、この足し込みは、クラス分類部145からのクラスコードに対応するクラスごとに、かつ注目画素に対する画素位置モード#iごとに行われる。
【0708】
そして、ステップS117に進み、足し込み部146は、画素位置モード#iを1だけインクリメントし、ステップS118に進む。ステップS118では、足し込み部146は、画素位置モード#iが、注目ブロックの画素数である64未満であるかどうかを判定する。
【0709】
ステップS117において、画素位置モード#iが64未満であると判定された場合、ステップS115に戻り、以下、同様の処理が繰り返される。
【0710】
また、ステップS117において、画素位置モード#iが64未満でないと判定された場合、即ち、注目ブロックのすべての画素を注目画素として足し込みを行った場合、ステップS119に進み、足し込み部146は、生徒データストレージ143に記憶された生徒データとしての2次元DCT係数のブロックのうち、まだ、注目ブロックとしていないもの(以下、適宜、未処理ブロックという)があるかどうかを判定する。
【0711】
ステップS119において、未処理ブロックがあると判定された場合、ステップS112に戻り、その未処理ブロックの中から、新たに注目ブロックとするものが選択され、以下、同様の処理が繰り返される。
【0712】
また、ステップS119において、未処理ブロックがないと判定された場合、即ち、足し込み部146において、各クラスについて、画素位置モードごとの正規方程式が得られた場合、ステップS120に進み、タップ係数演算部147は、各クラスの画素位置モードごとに生成された正規方程式を解くことにより、各クラスごとに、そのクラスの64の画素位置モードそれぞれに対応する64セットのタップ係数を求め、学習処理を終了する。
【0713】
次に、図59は、Pピクチャ用のタップ係数を学習する場合の学習装置の一実施の形態の構成例を示している。なお、図中、図57における場合と対応する部分については、同一の符号を付してあり、以下では、その説明は、適宜省略する。即ち、図59の学習装置は、生徒データ生成部151に代えて、生徒データ生成部162が設けられている他は、図57における場合と基本的に同様に構成されている。
【0714】
ここで、Pピクチャは、時間的に先行して復号(符号化)されるIまたはPピクチャを参照画像として予測符号化(ノンイントラ符号化)されるため、即ち、原画像から予測画像を減算した残差画像が2次元DCT変換されるため、図55のクラス分類適応処理回路では、図14の前処理部20において、先に復号されたIまたはPピクチャに動き補償を施し、その結果得られる予測画像の2次元DCT係数と、残差画像の2次元DCT係数とを加算して得られる2次元DCT係数を対象に、クラス分類適応処理を施すようになっている。
【0715】
従って、Pピクチャ用のタップ係数の学習においては、残差画像の2次元DCT係数に、予測画像の2次元DCT係数を加算したものを、生徒データとして用いる必要がある。
【0716】
ところで、Pピクチャの予測画像は、先に復号されたIまたはPピクチャを参照画像として、その参照画像に、動き補償を施すことで得ることができるが、いまの場合、Pピクチャのタップ係数を学習しようとしているので、Pピクチャ用のタップ係数は存在しない。
【0717】
一方、Iピクチャ用のタップ係数は、図57の学習装置において、あらかじめ求めておくことができる。
【0718】
そこで、図59の学習装置では、生徒データ生成部162において、Iピクチャを参照画像として予測符号化されるPピクチャのブロックについて、生徒データが生成されるようになっている。
【0719】
即ち、MPEGエンコーダ171は、教師データストレージ141に記憶された学習用の画像データを読み出して、MPEG符号化し、その結果得られる符号化データを、分離部172に供給する。分離部172とDCT係数抽出/逆量子化部173は、図14の分離部1とDCT係数抽出/逆量子化部2とそれぞれ同様に構成されており、符号化データから、量子化DCT係数を分離、抽出し、逆量子化する。
【0720】
なお、分離部172およびDCT係数抽出/逆量子化部173は、Iピクチャと、Pピクチャの予測符号化されたブロックのみを対象に処理を行う。また、分離部172は、符号化データから、量子化DCT係数の他、量子化スケールやDCTタイプや動きベクトル等のサイドインフォメーションも、必要に応じて分離する。
【0721】
DCT係数抽出/逆量子化部173は、Iピクチャの2次元DCT係数を得た場合、そのIピクチャの2次元DCT係数を、クラス分類適応処理回路176に供給する。
【0722】
また、DCT係数抽出/逆量子化部173は、Pピクチャの予測符号化されたブロックの2次元DCT係数、即ち、残差画像の2次元DCT係数を得た場合、その残差画像の2次元DCT係数を、周波数領域動き補償加算部181に供給する。
【0723】
さらに、DCT係数抽出/逆量子化部173は、Pピクチャの予測符号化されたブロックの動きベクトルを得た場合、その動きベクトルを、動き補償部178に供給する。
【0724】
クラス分類適応処理回路176は、図55のクラス分類適応処理回路と同様に構成されており、DCT係数抽出/逆量子化部173から供給される、注目画素を含むブロックの2次元DCT係数すべてを予測タップとして、クラス分類適応処理を行う。但し、クラス分類適応処理回路176においては、図57の学習装置で得られたIピクチャ用のタップ係数を記憶しており、そのタップ係数を用いて、クラス分類適応処理が行われる。
【0725】
クラス分類適応処理回路176においてクラス分類適応処理が行われることにより得られるIピクチャの復号画像は、Iピクチャストレージ177に供給されて記憶される。
【0726】
その後、動き補償部178は、DCT係数抽出/逆量子化部173から供給される動きベクトルによって動き補償を施すべき参照画像としてのIピクチャを、Iピクチャストレージ177から読み出し、そのIピクチャに動き補償を施すことで、予測画像を生成する。この予測画像は、画像メモリ179に供給されて記憶される。画像メモリ179に記憶された予測画像は、DCT変換部180において2次元DCT係数に変換され、周波数領域動き補償加算部181に供給される。周波数領域動き補償加算部181は、DCT係数抽出/逆量子化部173から供給されるPピクチャの残差画像の2次元DCT係数と、DCT変換部180から供給される予測画像の2次元DCT係数とを加算する。
【0727】
即ち、動き補償部178、画像メモリ179、DCT変換部180、および周波数領域動き補償加算部181は、図14の動き補償部4、画像メモリ5、DCT変換部21、周波数領域動き補償加算部22と同様に構成されるものであり、従って、周波数領域動き補償加算部181において、DCT係数抽出/逆量子化部173からのPピクチャの残差画像の2次元DCT係数と、DCT変換部180からの予測画像の2次元DCT係数とが加算されることにより、Pピクチャの元の画像(上述したように、原画像ではない)を2次元DCT変換した2次元DCT係数が得られる。
【0728】
周波数領域動き補償加算部181で得られたPピクチャの元の画像の2次元DCT係数は、生徒データとして、生徒データストレージ143に供給されて記憶される。
【0729】
以降は、図57の学習装置における場合と同様の処理が行われ、これにより、Pピクチャ用(正確には、Pピクチャの予測符号化されたブロック用)のタップ係数が求められる。
【0730】
次に、図60は、Bピクチャ用のタップ係数を学習する場合の学習装置の一実施の形態の構成例を示している。なお、Bピクチャ用のタップ係数を学習する学習装置も、図59のPピクチャ用のタップ係数を学習する学習装置と同様に、生徒データを生成する生徒データ生成部だけが、図57のIピクチャ用のタップ係数を学習する学習装置と異なるだけであるため、図60においては、Bピクチャ用のタップ係数を学習する学習装置の生徒データ生成部だけを図示してある。
【0731】
Bピクチャも、Pピクチャと同様に、時間的に先行して復号されるIまたはPピクチャを参照画像として予測符号化(ノンイントラ符号化)されるため、即ち、原画像から予測画像を減算した残差画像が2次元DCT変換されるため、図55のクラス分類適応処理回路では、図14の前処理部20において、先に復号されたIまたはPピクチャに動き補償を施し、その結果得られる予測画像の2次元DCT係数と、残差画像の2次元DCT係数とを加算して得られる2次元DCT係数に、クラス分類適応処理を施すようになっている。
【0732】
従って、Bピクチャ用のタップ係数の学習においては、残差画像の2次元DCT係数に、予測画像の2次元DCT係数を加算したものを、生徒データとして用いる必要がある。
【0733】
そこで、図60の学習装置では、そのような生徒データを生成して、学習を行うようになっている。
【0734】
即ち、MPEGエンコーダ191には、学習用の画像データ(ここでは、教師データに等しい)が供給されるようになっており、MPEGエンコーダ191は、その学習用の画像データをMPEG符号化し、その結果得られる符号化データを、分離部192に供給する。分離部192とDCT係数抽出/逆量子化部193は、図14の分離部1とDCT係数抽出/逆量子化部2とそれぞれ同様に構成されており、符号化データから、量子化DCT係数を分離、抽出し、逆量子化して出力する。
【0735】
DCT係数抽出/逆量子化部193が出力するIピクチャの2次元DCT係数は、クラス分類適応処理回路196に供給される。また、DCT係数抽出/逆量子化部193が出力するPピクチャの2次元DCT係数は、周波数領域動き補償加算部201に供給される。さらに、DCT係数抽出/逆量子化部193が出力するBピクチャの2次元DCT係数は、周波数領域動き補償加算部209に供給される。
【0736】
ここで、分離部192は、符号化データから、量子化DCT係数の他、量子化スケールやDCTタイプや動くベクトル等のサイドインフォメーションも、必要に応じて分離し、DCT係数抽出/逆量子化部193を介して、必要なブロックに供給する。なお、サイドインフォメーションについては、図60の実施の形態では、DCT係数抽出/逆量子化部193から動き補償部198へのPピクチャの動きベクトルの供給と、DCT係数抽出/逆量子化部193から動き補償部206へのBピクチャの動きベクトルの供給だけを、図示してある。
【0737】
また、DCT係数抽出/逆量子化部193は、Bピクチャの予測符号化されたブロックの2次元DCT係数、即ち、残差画像の2次元DCT係数だけを、周波数領域動き補償加算部209に供給する。
【0738】
さらに、DCT係数抽出/逆量子化部193は、Pピクチャについては、予測符号化されたブロックの2次元DCT係数だけを、周波数領域動き補償加算部201に供給する。また、DCT係数抽出/逆量子化部193では、Pピクチャのイントラ符号化されたブロックの2次元DCT係数は、クラス分類適応処理回路196に供給され、以下、イントラ符号化されたIピクチャと同様に処理される。
【0739】
即ち、クラス分類適応処理回路196は、図55のクラス分類適応処理回路と同様に構成されており、図57の学習装置で得られたIピクチャ用のタップ係数を記憶している。そして、クラス分類適応処理回路196は、DCT係数抽出/逆量子化部193から供給される、注目画素を含むブロックの2次元DCT係数すべてを予測タップとして、クラス分類適応処理適応処理を行う。
【0740】
クラス分類適応処理回路196においてクラス分類適応処理が行われることにより得られるIピクチャの復号画像は、Iピクチャストレージ197に供給されて記憶される。なお、クラス分類適応処理回路196では、イントラ符号化されたPピクチャのブロックの復号画像も得られるが、このPピクチャの復号画像は、クラス分類適応処理回路196からPピクチャストレージ205に供給されて記憶される。
【0741】
その後、動き補償部198は、DCT係数抽出/逆量子化部193から供給される動きベクトルによって動き補償を施すべき参照画像としてのIピクチャを、Iピクチャストレージ197から読み出し、そのIピクチャに動き補償を施すことで、Pピクチャの予測画像を生成する。このPピクチャの予測画像は、画像メモリ199に供給されて記憶される。画像メモリ199に記憶された予測画像は、DCT変換部200において2次元DCT係数に変換され、周波数領域動き補償加算部201に供給される。周波数領域動き補償加算部201は、DCT係数抽出/逆量子化部193から供給されるPピクチャの残差画像の2次元DCT係数と、DCT変換部200から供給される予測画像の2次元DCT係数とを加算する。
【0742】
即ち、動き補償部198、画像メモリ199、DCT変換部200、および周波数領域動き補償加算部201は、図14の動き補償部4、画像メモリ5、DCT変換部21、周波数領域動き補償加算部22と同様に構成されるものであり、従って、周波数領域動き補償加算部201において、DCT係数抽出/逆量子化部193からのPピクチャの残差画像の2次元DCT係数と、DCT変換部200からの予測画像の2次元DCT係数とが加算されることにより、Pピクチャの元の画像(上述したように、原画像ではない)を2次元DCT変換した2次元DCT係数が得られる。
【0743】
周波数領域動き補償加算部201で得られたPピクチャの元の画像の2次元DCT係数は、クラス分類適応処理回路204に供給される。
【0744】
クラス分類適応処理回路204は、図55のクラス分類適応処理回路と同様に構成され、図59の学習装置で得られたPピクチャ用のタップ係数を記憶している。そして、クラス分類適応処理回路204は、周波数領域動き補償加算部201から供給されるPピクチャの予測符号化されたブロックの画素を、順次、注目画素として、その注目画素を含むブロックの2次元DCT係数すべてを予測タップとし、クラス分類適応処理を行う。
【0745】
クラス分類適応処理回路204において適応処理が行われることにより得られる、予測符号化されたPピクチャのブロックの復号画像は、Pピクチャストレージ205に供給されて記憶される。なお、上述したように、Pピクチャストレージ205は、クラス分類適応処理回路196から供給される、イントラ符号化されたPピクチャのブロックの復号画像も記憶する。
【0746】
その後、動き補償部206は、DCT係数抽出/逆量子化部193から供給されるBピクチャの動きベクトルによって動き補償を施すべき参照画像としてのIまたはPピクチャを、Iピクチャストレージ197またはPピクチャストレージ205から読み出し、そのIまたはPピクチャに動き補償を施すことで、Bピクチャの予測画像を生成する。このBピクチャの予測画像は、画像メモリ207に供給されて記憶される。画像メモリ207に記憶された予測画像は、DCT変換部208において2次元DCT係数に変換され、周波数領域動き補償加算部209に供給される。周波数領域動き補償加算部209は、DCT係数抽出/逆量子化部193から供給されるBピクチャの残差画像の2次元DCT係数と、DCT変換部208から供給される予測画像の2次元DCT係数とを加算する。
【0747】
即ち、動き補償部206、画像メモリ207、DCT変換部208、および周波数領域動き補償加算部209は、図14の動き補償部4、画像メモリ5、DCT変換部21、周波数領域動き補償加算部22と同様に構成されるものであり、従って、周波数領域動き補償加算部209において、DCT係数抽出/逆量子化部193からのBピクチャの残差画像の2次元DCT係数と、DCT変換部208からの予測画像の2次元DCT係数とが加算されることにより、Bピクチャの元の画像(上述したように、原画像ではない)を2次元DCT変換した2次元DCT係数が得られる。
【0748】
周波数領域動き補償加算部209で得られたBピクチャの元の画像の2次元DCT係数は、生徒データとして出力される。そして、以降は、図57の学習装置における場合と同様の処理が行われ、これにより、Bピクチャ用(正確には、Bピクチャの予測符号化されたブロック用)のタップ係数が求められる。
【0749】
図55のタップ係数記憶部133には、以上のような学習によって、各クラスごとに求められた64の画素位置モードそれぞれごとの、I,P,Bピクチャ用のタップ係数が記憶されている。
【0750】
従って、タップ係数記憶部133に記憶されたタップ係数は、線形1次予測演算を行うことにより得られる元の画素値の予測値の予測誤差(ここでは、自乗誤差)が、統計的に最小になるように学習を行うことにより求められたものであり、その結果、図55のクラス分類適応処理回路によれば、MPEG符号化された画像を、元の画像に限りなく近い画像、即ち、ブロック歪みやモスキートノイズ等の各種の歪みを十分に低減した、画質の良い画像に復号することができる。
【0751】
ここで、学習装置では、輝度信号と色差信号について、別々に正規方程式がたてられ、輝度信号からたてられた正規方程式を解くことにより得られるタップ係数は、輝度信号用にタップ係数として、タップ係数記憶部133に記憶され、色差信号からたてられた正規方程式を解くことにより得られるタップ係数は、色差信号用のタップ係数として、タップ係数記憶部133に記憶される。
【0752】
なお、図55のクラス分類適応処理回路において、Iピクチャのブロックについては、Iピクチャ用のタップ係数を用いてクラス分類適応処理が行われる。また、PピクチャまたはBピクチャのブロックについては、そのブロックが予測符号化(ノンイントラ符号化)されている場合には、PピクチャまたはBピクチャ用のタップ係数を用いてクラス分類適応処理が行われるが、ブロックがイントラ符号化されている場合には、Iピクチャ用のタップ係数を用いてクラス分類適応処理が行われる。
【0753】
また、上述の場合には、I,P,Bピクチャそれぞれ用のタップ係数を学習するようにしたが、例えば、Bピクチャ用のタップ係数の学習は省略することが可能である。この場合、図55のクラス分類適応処理回路では、PピクチャとBピクチャの予測符号化されたブロックについて、例えば、いずれも、Pピクチャ用のタップ係数を用いてクラス分類適応処理が行われる。さらに、図55のクラス分類適応処理回路において、I,P,Bピクチャについてのクラス分類適応処理は、すべて、Iピクチャ用のタップ係数を用いて行うようにすることが可能である。
【0754】
次に、図61および図62は、図14の画像処理装置を、FT変換部51に代えて、図55のクラス分類適応処理回路を設けて構成し、MPEG符号化された画像を復号するシミュレーションを行って得られたシミュレーション結果を示している。
【0755】
なお、シミュレーションにおいては、4:2:2フォーマットの画像を、約3.3MbpsのデータレートでMPEG2方式により符号化して得られた符号化データを用いた。また、シミュレーションでは、IピクチャとPピクチャを、それぞれ偶数フレームと奇数フレームとして、1フレームごとに交代する画像シーケンスを用いた。
【0756】
図61は、シミュレーションによって得られた復号画像の輝度信号についてのS/N(Signal to Noise ratio)を示している。
【0757】
図61において、実線で示すS/Nは、FT変換部51に代えて図55のクラス分類適応処理回路を設けた図14の画像処理装置による復号画像のものを示しており、点線で示すS/Nは、MPEGの規格に準拠した従来のMPEGソフトウェアデコーダによる復号画像のものを示している。図61から、クラス分類適応処理回路を設けた図14の画像処理装置による復号画像のS/Nが、従来のMPEGソフトウェアデコーダによる復号画像と比較して、約1dB程度向上していることが分かる。
【0758】
図62は、シミュレーションによって得られた復号画像を示している。
【0759】
即ち、図62Aは、原画像を、図62Bは、従来のMPEGソフトウェアデコーダによる復号画像を、図62Cは、クラス分類適応処理による復号画像を、それぞれ示している。なお、図62A乃至図62Cにおいて、その右側の約1/3の部分が、瓶の全体が表示されている全体の画像を示しており、左側の約2/3の部分が、その瓶のラベルの部分を拡大した画像を示している。また、図62に示した画像は、Iピクチャの画像である。
【0760】
図62Aの原画像と、図62Bの従来のMPEGソフトウェアデコーダによる復号画像を比較すると、図62Bの復号画像には、ブロックの境界が顕著に現れるブロック歪みが生じ、さらに、瓶のラベルにおける「Z」の文字の部分に、モスキートノイズが顕著に現れている。
【0761】
これに対して、図62Cのクラス分類適応処理による復号画像においては、ブロック歪みが十分に低減されており、さらに、モスキートノイズも低減されている。
【0762】
ところで、図55のクラス分類適応処理回路では、タップ生成部131において、注目ブロックの8×8個の2次元DCT係数を予測タップとして採用することから、図57乃至図60で説明した学習においては、1クラスの1つの画素位置モードについて、予測タップとしての8×8個の2次元DCT係数それぞれと乗算されるタップ係数、即ち、8×8個のタップ係数が求められる。また、画素位置モードは、64モード存在するから、1クラスについて、8×8個のタップ係数は、64セット求められることになる。
【0763】
従って、図55のクラス分類適応処理回路においては、1クラスにつき、8×8個のタップ係数が64セット必要となるが、クラス分類適応処理回路においても、図4のFT変換部10における場合と同様に、縮退画素位置モードを採用することができ、この場合、1クラスについて必要な8×8個のタップ係数のセット数は、縮退画素位置モードと同一の数、即ち、16セットに減らすことができる。
【0764】
但し、この場合、図55のクラス分類適応処理回路では、例えば、タップ生成部131または積和演算部135において、予測タップとしての8×8個の2次元DCT係数について、図4の符号制御部12における場合と同様の符号制御を行う必要がある。さらに、図57乃至図60で説明した学習においても、同様に、縮退画素位置モードを採用し、予測タップとしての8×8個の2次元DCT係数について、符号制御を行う必要がある。即ち、足し込み部146(図57、図59)において、各クラスについて、縮退画素位置モードごとに足し込みを行うとともに、タップ生成部144(図57、図59)または足し込み部146において、予測タップとしての8×8個の2次元DCT係数について、図4の符号制御部12における場合と同様の符号制御を行う必要がある。また、図59のクラス分類適応処理回路176や、図60のクラス分類適応処理回路196および204でも、縮退画素位置モードを採用し、予測タップについて、図4の符号制御部12における場合と同様の符号制御を行う必要がある。
【0765】
図55のクラス分類適応処理回路において、縮退画素位置モードを採用した場合、1クラスについて必要な8×8個のタップ係数のセット数は、上述したように、縮退画素位置モードと同一の数である16セットになる。
【0766】
そこで、図63は、縮退画素位置モードを採用し、実際の画像を用いた学習によって求められた、あるクラスについての、16の縮退画素位置モードそれぞれの8×8個のタップ係数のうちの、水平方向または垂直方向に並ぶものの平均値と、DCT変換の基底波形(あるいは、種データとしての基底波形から生成される変換係数)との比を示している。
【0767】
即ち、いま、縮退画素位置モード#n’の8×8個のタップ係数のうち、第v+1行第u+1列の位置のタップ係数を、w(n’,u,v)と表す。また、式(17)に示したように、ブロックの第i+1行第j+1列にある画素の画素値L(i,j)を求めるときに、そのブロックの8×8個の2次元DCT係数f(u,v)それぞれと乗算される8×8個の変換係数を、F(i,j,u,v)と表す。
【0768】
ここで、変換係数F(i,j,u,v)は、ブロックにおける画素の位置(i,j)ごとに、8×8個存在し、そのブロックの第v+1行第u+1列の2次元DCT係数f(u,v)と乗算される。また、いまの場合、縮退画素位置モードを採用しており、図5乃至図10を参照して説明したように、ブロックにおける画素の位置(i,j)に対して、縮退画素位置モード#n’は、一意に決まる。そこで、いま、変換係数F(i,j,u,v)を、縮退画素位置モード#n’を用いて、F(n’,u,v)と表すこととする。
【0769】
以上のように、タップ係数w(n’,u,v)および変換係数F(n’,u,v)のいずれも、縮退画素位置モード#n’ごとに、8×8個ずつ存在する。そこで、いま、タップ係数w(n’,u,v)を、変換係数F(n’,u,v)で除算した値(w(n’,u,v)/F(n’,u,v))を、係数比と呼ぶこととし、k(n’,u,v)で表すこととする。
【0770】
タップ係数w(n’,u,v)および変換係数F(n’,u,v)が、縮退画素位置モード#n’ごとに、8×8個ずつ存在するから、係数比k(n’,u,v)も、図64に示すように、やはり、16の縮退画素位置モード#0乃至#15それぞれについて、8×8個ずつ存在する。
【0771】
図64に示した8×8個ずつの係数比k(n’,u,v)は、16の縮退画素位置モード#0乃至#15それぞれごとに存在する。そして、16の縮退画素位置モードについては、例えば、図5Aに示した、ブロックの4×4の左上領域を基準として、位置を考えると、縮退画素位置モード#n’が0,1,2,3である4つの位置の水平方向の並びは第1行と、縮退画素位置モード#n’が4,5,6,7である4つの位置の水平方向の並びは第2行と、縮退画素位置モード#n’が8,9,10,11である4つの位置の水平方向の並びは第3行と、縮退画素位置モード#n’が12,13,14,15である4つの位置の水平方向の並びは第4行と、それぞれいうことができる。
【0772】
同様に、縮退画素位置モード#n’が0,4,8,12である4つの位置の垂直方向の並びは第1列と、縮退画素位置モード#n’が1,5,9,13である4つの位置の垂直方向の並びは第2列と、縮退画素位置モード#n’が2,6,10,14である4つの位置の垂直方向の並びは第3列と、縮退画素位置モード#n’が3,7,11,15である4つの位置の垂直方向の並びは第4列と、それぞれいうことができる。
【0773】
そこで、いま、16の縮退画素位置モード#0乃至#15それぞれについて、8×8個ずつ存在する係数比k(n’,u,v)を、縮退画素位置モード#n’ごとに配置すると、図64に示すようになる。
【0774】
ここで、図64において、縮退画素位置モード#0についての8×8個の係数比k(0,u,v)、縮退画素位置モード#1についての8×8個の係数比k(1,u,v)、縮退画素位置モード#2についての8×8個の係数比k(2,u,v)、縮退画素位置モード#3についての8×8個の係数比k(3,u,v)の横方向の並びが、上述の第1行であり、この並びを、以下、適宜、第1行の係数比という。同様に、以下、適宜、係数比k(4,u,v)、k(5,u,v)、k(6,u,v)、およびk(7,u,v)の横方向の並びを、第2行の係数比と、係数比k(8,u,v)、k(9,u,v)、k(10,u,v)、およびk(11,u,v)の横方向の並びを、第3行の係数比と、係数比k(12,u,v)、k(13,u,v)、k(14,u,v)、およびk(15,u,v)の横方向の並びを、第4行の係数比と、それぞれいう。
【0775】
また、図64において、縮退画素位置モード#0についての8×8個の係数比k(0,u,v)、縮退画素位置モード#4についての8×8個の係数比k(4,u,v)、縮退画素位置モード#8についての8×8個の係数比k(8,u,v)、縮退画素位置モード#12についての8×8個の係数比k(12,u,v)の縦方向の並びが、上述の第1列であり、この並びを、以下、適宜、第1列の係数比という。同様に、以下、適宜、係数比k(1,u,v)、k(5,u,v)、k(9,u,v)、およびk(13,u,v)の横方向の並びを、第2列の係数比と、係数比k(2,u,v)、k(6,u,v)、k(10,u,v)、およびk(14,u,v)の横方向の並びを、第3列の係数比と、係数比k(3,u,v)、k(7,u,v)、k(11,u,v)、およびk(15,u,v)の横方向の並びを、第4列の係数比と、それぞれいう。
【0776】
係数比は、タップ係数と変換係数との比であり、図64において、例えば、第1行の係数比k(0,u,v)、k(1,u,v)、k(2,u,v)、およびk(3,u,v)について、周波数vごとに、その平均値を演算すると、その周波数vごとの第1行の係数比の平均値は、第1行のタップ係数の周波数特性(以下、適宜、第1行についての周波数特性という)を表しているということができる。
【0777】
即ち、第1行の係数比k(0,u,v)、k(1,u,v)、k(2,u,v)、およびk(3,u,v)について、周波数vが0の場合の平均値を求める。これは、例えば、Σk(0,u,0)/8、Σk(1,u,0)/8、k(2,u,0)/8、およびk(3,u,0)/8を計算し(Σは、uを0から7に変えてのサメーションを表す)、さらに、(Σk(0,u,0)/8+Σk(1,u,0)/8+k(2,u,0)/8+k(3,u,0)/8)/4を計算することで求めることができる。同様に、第1行の係数比k(0,u,v)、k(1,u,v)、k(2,u,v)、およびk(3,u,v)について、周波数vが1乃至7それぞれの場合の平均値も求めることができ、このようにして求められる周波数vごとの平均値が、第1行についての周波数特性を表す。
【0778】
第2行乃至第4行の係数比に関しても同様にして、第2行乃至第4行それぞれについての周波数特性を求めることができる。
【0779】
また、図64において、例えば、第1列の係数比k(0,u,v)、k(4,u,v)、k(8,u,v)、およびk(12,u,v)について、周波数uごとに、その平均値を演算すると、その周波数uごとの第1列の係数比の平均値は、第1列のタップ係数の周波数特性(以下、適宜、第1列についての周波数特性という)を表しているということができる。
【0780】
即ち、第1列の係数比k(0,u,v)、k(4,u,v)、k(8,u,v)、およびk(12,u,v)について、周波数uが0の場合の平均値を求める。これは、例えば、Σk(0,0,v)/8、Σk(4,0,v)/8、k(8,0,v)/8、およびk(12,0,v)/8を計算し(Σは、vを0から7に変えてのサメーションを表す)、さらに、(Σk(0,0,v)/8+Σk(4,0,v)/8+k(8,0,v)/8+k(12,0,v)/8)/4を計算することで求めることができる。同様に、第1列の係数比k(0,u,v)、k(4,u,v)、k(8,u,v)、およびk(12,u,v)について、周波数uが1乃至7それぞれの場合の平均値も求めることができ、このようにして求められる周波数uごとの平均値が、第1列についての周波数特性を表す。
【0781】
第2列乃至第4列の係数比に関しても同様にして、第2列乃至第4列それぞれについての周波数特性を求めることができる。
【0782】
図63Aは、以上のようにして求められた、第1行乃至第4行それぞれについてのタップ係数の周波数特性を示しており、図63Bは、第1列乃至第4列それぞれについてのタップ係数の周波数特性を示している。なお、図63Aにおける横軸は周波数vを表しており、図63Bにおける横軸は周波数uを表している。
【0783】
図63に示した周波数特性は、実際に学習を行って得られたタップ係数から求められたものであり、図63Aに示した周波数特性は、周波数vが高くなるほど、値が大きくなる傾向がある。また、図63Bに示した周波数特性は、周波数uが大きくなるほど、値が小さくなる傾向があり、さらに、符号の逆転も生じている。
【0784】
図18の種重み記憶部17に記憶された種重みデータとしては、クラスごとのタップ係数からそれぞれ求められる、図63および図64に示したようなクラスごとの周波数特性が採用されている。
【0785】
なお、係数比の平均値を求めるにあたっては、特異な値のタップ係数(例えば、他のタップ係数と値が大きく異なるタップ係数など)から求められた係数比は除外するのが望ましい。
【0786】
また、種重み記憶部17には、上述したような、各クラスについて、各行および各列についての周波数特性の、各周波数u(v)における値を、種重みデータとして記憶させておくことも可能であるが、各行および各列についての周波数特性を、注目画素のクラスや画素位置モード#nを引数とする所定の関数で近似し、その関数を、種重みデータとして記憶させておくことも可能である。この場合、種重み記憶部17として、容量の小さいメモリを採用することが可能となる。
【0787】
さらに、種重みデータは、上述したようなタップ係数の周波数特性に限定されるものではない。
【0788】
また、種重み記憶部17には、種重みデータとして、各クラスについて、図63および図64に示した第1行乃至第4行それぞれについての周波数特性と、第1列乃至第4列それぞれについての周波数特性が記憶される。従って、種重み記憶部17に記憶された種重みデータを特定するには、クラスを表すクラスコードの他、その種重みデータが第何列または第何行についての周波数特性であるのかを表す情報が必要である。なお、この情報としては、注目画素の縮退画素位置モード#n’から、上述したようにして求められる縮退座標系の座標を採用することができる。
【0789】
次に、図65のフローチャートおよび図66を参照して、図18のFT変換部51の処理(FT変換)について説明する。
【0790】
モード制御部11は、バッファメモリ23(図14)に記憶された2次元DCT係数のブロックのうち、まだ、注目ブロックとしていない、バッファメモリ23への記憶順で最も古いブロックを、注目ブロックとし、その注目ブロックのDCT係数を、符号制御部12に供給する。
【0791】
そして、ステップS131において、モード制御部11は、図66Aに示すように、注目ブロックの画素のうちの、ラスタスキャン順で、まだ、注目画素としていない画素を、注目画素として選択し、ステップS132に進む。図66Aの実施の形態では、ブロックにおける位置(1,3)の画素(左から2(=1+1)番目で、上から4(=3+1)番目の画素)が、注目画素とされている。
【0792】
ステップS132では、モード制御部11は、注目画素の座標(i,j)に基づき、画素位置モード#nと領域情報を求め、領域情報を、符号制御部12に供給し、ステップS133に進む。ここで、図66Aの実施の形態においては、ブロックにおける位置(1,3)の画素が、注目画素とされているが、この場合、画素位置モード#nは、25となる。
【0793】
ステップS133では、モード制御部11は、注目画素の画素位置モード#nを縮退することにより、縮退画素位置モード#n’を求め、種データ記憶部13に供給して、ステップS134に進む。ここで、図66Aに示したように、画素位置モード#nが25の場合、縮退画素位置モード#n’は、13となる。
【0794】
ステップS134では、クラス分類部16が、バッファメモリ23(図14)に記憶された2次元DCT係数に基づいて、注目画素のクラス分類を行い、その結果得られるクラスコードを、種重み記憶部17に供給して、ステップS135に進む。
【0795】
ステップS135では、種重み記憶部17は、クラス分類部16からのクラスコードが表すクラスの種重みデータを読み出し、種データ補正部18に供給する。
【0796】
ここで、種重み記憶部17には、例えば、上述したように、各クラスについて、図63に示したような4行それぞれと4列それぞれについての各周波数uにおける値を、種重みデータとして記憶しているが、種重み記憶部17は、ステップS135において、注目画素のクラスの、4行それぞれと4列それぞれについての各周波数uにおける種重みデータを読み出して、種データ補正部18に供給する。
【0797】
その後、ステップS136に進み、種データ記憶部13が、モード制御部11から供給される縮退画素位置モード#n’に対応する種データを読み出し、種データ補正部18に供給する。
【0798】
即ち、種データ記憶部13は、上述の図13Bと同様の図66Bに示すように、周波数uの軸と、位置jの軸とで定義される2次元平面上において考えることのできる1乃至7の周波数uそれぞれについての位置jが0乃至3それぞれの基底波形の28個の値と、周波数uが0のときの1つの基底波形の値を記憶している。
【0799】
そして、ステップS136では、種データ記憶部13は、図12のステップS4における場合と同様に、モード制御部11から供給される注目画素の縮退画素位置モード#n’から、その注目画素の縮退座標(H,V)を求め、図66Bにおける位置jがHの、周波数が1乃至7それぞれの基底波形の7つの値と、位置jがVの、周波数が1乃至7それぞれの基底波形の7つの値を読み出し、種データ補正部18に供給する。
【0800】
さらに、種データ記憶部13は、周波数uが0のときの1つの基底波形の値を読み出し、種データ補正部18に供給する。
【0801】
従って、例えば、図66Aに示したように、縮退座標(H,V)が、(1,3)の画素が注目画素とされた場合には、位置jが1の、周波数が1乃至7それぞれの基底波形の7つの値、位置jが3の、周波数が1乃至7それぞれの基底波形の7つの値、および周波数uが0のときの1つの基底波形の値としての種データが、種データ記憶部13から種データ補正部18に供給される。
【0802】
そして、ステップS137に進み、種データ補正部18は、種データ記憶部13から供給された基底波形の値から、水平方向の基底波形の8つの値Fhと、垂直方向の基底波形の8つの値Fvを求める。
【0803】
即ち、種データ補正部18は、ステップS137において、図66Cに示すように、周波数uが0のときの1つの基底波形の値を先頭として、位置jがHの、周波数が1乃至7それぞれの基底波形の7つの値を順次配置することにより、水平方向の基底波形の8つの値Fhとするとともに、周波数uが0のときの1つの基底波形の値を先頭として、位置jがVの、周波数が1乃至7それぞれの基底波形の7つの値を順次配置することにより、垂直方向の基底波形の8つの値Fvとする。
【0804】
さらに、種データ補正部18は、ステップS137において、水平方向の基底波形の8つの値Fhと、垂直方向の基底波形の8つの値Fvを、ステップS135で種重みデータ記憶部17から供給された、注目画素のクラスの種重みデータによって補正する。
【0805】
即ち、種データ補正部18は、種重み記憶部17から供給される、注目画素のクラスの、4行それぞれについての各周波数uにおける種重みデータ(図63Aに示した周波数特性としての種重みデータ)から、注目画素の行Hに一致する行についての各周波数uにおける種重みデータを選択し、図66Dに示すように、その各周波数uにおける種重みデータを、水平方向の基底波形の8つの値Fhのうちの、対応する周波数uのものに乗算することにより、その水平方向の基底波形の8つの値Fhを補正する。さらに、種データ補正部18は、種重み記憶部17から供給される、注目画素のクラスの、4列それぞれについての各周波数uにおける種重みデータ(図63Bに示した周波数特性としての種重みデータ)から、注目画素の行Vに一致する行についての各周波数uにおける種重みデータを選択し、図66Dに示すように、その各周波数uにおける種重みデータを、垂直方向の基底波形の8つの値Fvのうちの、対応する周波数uのものに乗算することにより、その垂直方向の基底波形の8つの値Fvを補正する。
【0806】
そして、種データ補正部18は、その補正後の水平方向の基底波形の8つの値Fhと垂直方向の基底波形の8つの値Fvを、変換係数生成部14に供給し、ステップS138に進む。
【0807】
ステップS138では、変換係数生成部14が、種データ補正部18から供給される、補正後の水平方向の基底波形Fhと垂直方向の基底波形Fvから、注目画素の画素値を復号するための変換係数を生成する。
【0808】
即ち、変換係数生成部14は、図66E示すように、補正後の水平方向の基底波形の8つの値Fhそれぞれと、補正後の垂直方向の基底波形の8つの値Fvそれぞれとを、総当たりで乗算することにより、図66Fに示す8×8の変換係数、即ち、座標(i,j)の注目画素の画素値を復号するための式(17)における64個の変換係数F(i,j,0,0)乃至F(i,j,7,7)を生成し、積和演算部15に供給する。
【0809】
このように、種重みデータによって補正された水平方向の基底波形Fhと垂直方向の基底波形Fvによって得られる変換係数は、図63に示したような周波数特性を有するものとなる。
【0810】
ここで、図66Eおよび図66Fの実施の形態では、水平方向の基底波形の8つの値Fhの先頭から6(=5+1)番目の値と、垂直方向の基底波形の8つの値Fvの先頭から2(=1+1)番目の値とが乗算されることにより、注目ブロックの座標(5,1)の位置にある2次元DCT係数と乗算される変換係数が生成されている。
【0811】
その後、ステップS139に進み、符号制御部12は、ステップS132でモード制御部11から供給される注目画素の領域情報に基づいて、図5乃至図10で説明したように、モード制御部11から供給される注目ブロックの2次元DCT係数の符号を反転し、積和演算部15に供給して、ステップS140に進む。
【0812】
ステップS140では、積和演算部15は、変換係数生成部14からの変換係数F(i,j,u,v)と、符号制御部12からの注目ブロックの2次元DCT係数f(u,v)とを用いて、式(17)の積和演算を行い、これにより、注目画素が左上領域、右上領域、左下領域、右下領域の画素である場合には、それぞれ、式(13)乃至(16)の演算が行われ、注目画素の画素値が復号される。
【0813】
そして、ステップS141に進み、モード制御部11は、注目ブロックのすべての画素を注目画素としたかどうかを判定する。ステップS141において、注目ブロックのすべての画素を、まだ注目画素としていないと判定された場合、ステップS131に戻り、注目ブロックの画素のうちの、ラスタスキャン順で、まだ、注目画素とされていない画素が、新たな注目画素として選択され、以下、同様の処理が繰り返される。
【0814】
また、ステップS141において、注目ブロックのすべての画素を注目画素としたと判定された場合、処理を終了する。
【0815】
以上のように、種重みデータによって、種データを補正し、その補正後の種データによって変換係数を生成することにより、クラス分類適応処理で用いられるタップ係数と同様の周波数特性を有する変換係数を求めるようにしたので、積和演算部15において、その変換係数を用いて、式(17)の積和演算が行われることにより得られる復号画像は、図55のクラス分類適応処理回路で得られるものと同様に、高画質の画像となる。
【0816】
なお、図65の処理は、バッファメモリ23(図14)に記憶されたDCT係数のブロックを、順次、注目ブロックとして繰り返し行われる。
【0817】
また、図65の処理において、点線で囲んであるステップS134乃至S138の処理と、ステップS139の処理とは、並列に行うことが可能である。
【0818】
次に、図67は、図14のFT変換部51の他の構成例を示している。なお、図中、図18における場合と対応する部分については、同一の符号を付してあり、以下では、その説明は、適宜省略する。即ち、図67のFT変換部51は、逆DCT変換部221および画素重み記憶部222が新たに設けられている他は、基本的に、図18における場合と同様に構成されている。
【0819】
逆DCT変換部221は、バッファメモリ23(図14)から注目ブロックの上下左右それぞれに隣接する4つの隣接ブロックを読み出し、その4つの隣接ブロックを、2次元逆DCT変換して、画素値のブロックに復号する。さらに、逆DCT変換部221は、図68に示すように、注目ブロックの上下それぞれに隣接する2つの隣接ブロックの画素から、注目画素と同一列にある、注目ブロックの上側に隣接する画素(以下、適宜、同一列上隣接画素という)aと、注目ブロックの下側に隣接する画素(以下、適宜、同一列下隣接画素という)bを選択するとともに、注目ブロックの左右それぞれに隣接する2つの隣接ブロックの画素から、注目画素と同一行にある、注目ブロックの左側に隣接する画素(以下、適宜、同一行左隣接画素という)cと、注目ブロックの右側に隣接する画素(以下、適宜、同一行右隣接画素という)dを選択する。
【0820】
なお、同一列上隣接画素aとは、注目ブロックの構造を基準とした場合に、空間領域において、その注目ブロックの上側の境界と隣接する、上隣接ブロックの画素のうちの、注目画素と同一列にあるものを意味する。画素b乃至dについても同様である。従って、逆DCT変換部221においては、図22乃至図37で説明した上隣接画素列、下隣接画素列、左隣接画素列、右隣接画素列から、画素a乃至dが、それぞれ選択される。
【0821】
逆DCT変換部221は、画素a乃至dを選択すると、その画素値を、積和演算部15に供給する。
【0822】
画素重み記憶部222は、同一列上隣接画素a、同一列下隣接画素b、同一行左隣接画素c、同一行右隣接画素dに付される重みとしての画素重みデータを記憶しており、この画素重みデータは、積和演算部15に供給される。
【0823】
従って、図67の実施の形態では、積和演算部15には、変換係数生成部14から変換係数が供給されるとともに、符号制御部12から注目ブロックの2次元DCT係数が供給される他、逆DCT変換部221から、同一列上隣接画素a、同一列下隣接画素b、同一行左隣接画素c、および同一行右隣接画素dの画素値が供給されるとともに、画素重み記憶部222から画素重みデータが供給されるようになっている。
【0824】
そして、積和演算部15では、注目ブロックのある位置(i,j)の画素の画素値L(i,j)が、式(17)の積和演算に代えて、次式に示す積和演算によって求められるようになっている。
【0825】
Figure 0004154647
【0826】
但し、式(22)において、a,b,c,dは、同一列上隣接画素、同一列下隣接画素、同一行左隣接画素、同一行右隣接画素それぞれの画素値を表す。また、wa,wb,wc,wdは、同一列上隣接画素、同一列下隣接画素、同一行左隣接画素、同一行右隣接画素にそれぞれ付される重みとしての画素重みデータを表す。
【0827】
従って、式(22)の積和演算は、式(17)の積和演算に、画素値と画素重みデータとの積和演算を加えたものとなっている。
【0828】
なお、図67の実施の形態では、同一列上隣接画素、同一列下隣接画素、同一行左隣接画素、および同一行右隣接画素の画素値として、逆DCT変換部221による2次元逆DCT変換の結果得られる画素値を用いるようにしたが、同一列上隣接画素および同一行左隣接画素については、注目ブロックを対象として処理を行う際に、既に、FT変換部51で復号されているので、その復号された画素値を用いるようにすることが可能である。
【0829】
ところで、式(17)の変換係数F(i,j,u,v)は、クラス分類適応処理で用いられる式(1)のタップ係数wkに対応する。また、式(17)の2次元DCT係数f(u,v)は、クラス分類適応処理で用いられる式(1)の予測タップを構成する2次元DCT係数xkに対応する。
【0830】
従って、式(22)において、式(17)に追加されている画素重みデータは、wa乃至wdは、クラス分類適応処理におけるタップ係数wkに対応し、画素値a乃至dは、予測タップに対応していると考えることができる。
【0831】
そこで、図67のFT変換部51の処理を説明する前に、予測タップを、注目ブロックの2次元DCT係数と、同一列上隣接画素a、同一列下隣接画素b、同一行左隣接画素c、および同一行右隣接画素dで構成して行われるクラス分類適応処理について説明する。
【0832】
即ち、図69は、予測タップを、注目ブロックの2次元DCT係数と、同一列上隣接画素a、同一列下隣接画素b、同一行左隣接画素c、および同一行右隣接画素dで構成してクラス分類適応処理を行うクラス分類適応処理回路の構成例を示している。なお、図中、図55における場合と対応する部分については、同一の符号を付してあり、以下では、その説明は、適宜省略する。即ち、図69のクラス分類適応処理回路は、逆DCT変換部231が新たに設けられている他は、図55における場合と基本的に同様に構成されている。
【0833】
バッファメモリ23(図14)に記憶された2次元DCT係数のブロックは、タップ生成部131およびクラス分類部132に供給される他、逆DCT変換部231にも供給される。
【0834】
逆DCT変換部231は、バッファメモリ23(図14)から供給される注目ブロックの上下左右にそれぞれ隣接するブロックを2次元逆DCT変換することにより、2次元DCT係数を画素値に復号し、そのうちの同一列上隣接画素a、同一列下隣接画素b、同一行左隣接画素c、および同一行右隣接画素dの画素値を、タップ生成部131に供給する。
【0835】
タップ生成部131は、バッファメモリ23から供給される注目ブロックの2次元DCT係数すべてと、逆DCT変換部231から供給される同一列上隣接画素a、同一列下隣接画素b、同一行左隣接画素c、および同一行右隣接画素dの画素値を、予測タップとし、積和演算部135に供給する。この場合、予測タップは、68(=8×8+4)タップで構成されることになる。
【0836】
一方、クラス分類部132、タップ係数記憶部133、タップ係数バッファ134では、図55における場合と同様の処理が行われ、これにより、タップ係数バッファ134には、注目画素のクラスについてのタップ係数が記憶される。
【0837】
そして、積和演算部135は、タップ生成部131から供給される予測タップと、タップ係数バッファ134に記憶されたタップ係数とを用いて、式(1)の線形1次予測演算を行い、注目画素の復号値を出力する。
【0838】
次に、図70乃至72は、図69のタップ係数記憶部133に記憶させるタップ係数の学習を行う学習装置の構成例を示している。
【0839】
上述したように、MPEGでは、予測方式の違いにより、Iピクチャ、Pピクチャ、Bピクチャの3つのピクチャタイプがあるので、タップ係数の学習も、ピクチャタイプごとに行われる。
【0840】
図70は、Iピクチャ用のタップ係数を学習する場合の学習装置の構成例を示している。なお、図中、図57における場合と対応する部分については、同一の符号を付してあり、以下では、その説明は、適宜省略する。即ち、図70の学習装置は、逆DCT変換部241が新たに設けられている他は、図57における場合と同様に構成されている。
【0841】
逆DCT変換部241は、生徒データストレージ143に記憶された生徒データとしての2次元DCT係数のブロックを2次元逆DCT変換することにより、画素値のブロックに復号し、そのうちの同一列上隣接画素a、同一列下隣接画素b、同一行左隣接画素c、および同一行右隣接画素dの画素値を、タップ生成部144に供給する。
【0842】
タップ生成部144は、注目ブロックの2次元DCT係数の他、逆DCT変換部241から供給される同一列上隣接画素a、同一列下隣接画素b、同一行左隣接画素c、および同一行右隣接画素dの画素値を用いて、予測タップを構成する。そして、以降は、図57における場合と同様の処理が行われ、Iピクチャ用のタップ係数が求められる。
【0843】
次に、図71は、Pピクチャ用のタップ係数を学習する場合の学習装置の他の一実施の形態の構成例を示している。なお、図中、図59における場合と対応する部分については、同一の符号を付してあり、以下では、その説明は、適宜省略する。即ち、図71の学習装置は、図70で説明した逆DCT変換部241が新たに設けられている他は、図59における場合と同様に構成されている。
【0844】
また、図72は、Bピクチャ用のタップ係数を学習する場合の学習装置の他の一実施の形態の構成例を示している。なお、図72においても、図60の学習装置と同様に、生徒データを生成する生徒データ生成部だけが、図57のIピクチャ用のタップ係数を学習する学習装置と異なるだけであるため、図72においては、Bピクチャ用のタップ係数を学習する学習装置の生徒データ生成部だけを図示してある。また、図中、図60における場合と対応する部分については、同一の符号を付してあり、以下では、その説明は、適宜省略する。即ち、図72の学習装置も、図70で説明した逆DCT変換部241が新たに設けられている他は、図60における場合と同様に構成されている。
【0845】
従って、図71と図72の学習装置も、図70の学習装置における場合と同様に、タップ生成部144で構成される予測タップのタップ構造が、図59と図60における場合とそれぞれ異なるだけであるため、その説明は省略する。
【0846】
以上のように、注目ブロックの2次元DCT係数の他、逆DCT変換部241から供給される同一列上隣接画素a、同一列下隣接画素b、同一行左隣接画素c、および同一行右隣接画素dの画素値から、予測タップを構成し、その予測タップを用いて学習を行うことにより得られるタップ係数を、図69のタップ係数記憶部133に記憶させておくことにより、図69のクラス分類適応処理回路では、図55における場合よりも、より高画質の画像を復号することができる。
【0847】
即ち、MPEG符号化では、圧縮率を上げて、符号化データのデータレートを抑えるために、DCT係数が量子化されるが、その際、人間に画質の劣化を感じさせないようにするために、一般に、高周波数のDCT係数ほど、粗い量子化が行われる。従って、そのようなMPEG符号化によって得られた符号化データを、図1のMPEGデコーダで復号した場合には、高周波数成分が失われた復号画像が得られることになる。
【0848】
一方、図69のクラス分類適応処理回路では、予測タップとして、注目ブロックの2次元DCT係数の他、同一列上隣接画素a、同一列下隣接画素b、同一行左隣接画素c、および同一行右隣接画素dの画素値を採用することにより、その同一列上隣接画素a、同一列下隣接画素b、同一行左隣接画素c、および同一行右隣接画素dの画素値によって、MPEG符号化によって失われた高周波数成分が、いわば補われ、その結果、より高画質の画像を復号することができる。
【0849】
そこで、図67のFT変換部51でも、積和演算部15において、注目ブロックの2次元DCT係数だけでなく、同一列上隣接画素a、同一列下隣接画素b、同一行左隣接画素c、および同一行右隣接画素dの画素値をも用いて、式(22)の積和演算を行うことで、MPEG符号化によって失われた高周波数成分が補われた、より高画質の画像が復号されるようになっている。
【0850】
従って、この場合、式(22)において、同一列上隣接画素a、同一列下隣接画素b、同一行左隣接画素c、同一行右隣接画素dそれぞれに乗算される画素重みデータwa,wb,wc,wdとしては、図69のクラス分類適応処理回路の積和演算部135において、予測タップとしての同一列上隣接画素a、同一列下隣接画素b、同一行左隣接画素c、同一行右隣接画素dそれぞれと乗算されるタップ係数と同様の値を採用するのが望ましい。
【0851】
そこで、図73は、実際の画像を用いた学習によって得られた、同一列上隣接画素a、同一列下隣接画素b、同一行左隣接画素c、または同一行右隣接画素dに乗算されるタップ係数を示している。なお、学習においては、クラス数を1クラス(モノクラス)とした。
【0852】
図73Aは、注目画素と、同一列上隣接画素aまたは同一列下隣接画素bとの間の画素数(距離)を横軸にとり、その縦軸に、同一列上隣接画素aまたは同一列下隣接画素bと乗算されるタップ係数の平均値をプロットしたグラフであり、注目画素から、ある画素数だけ離れた同一列上隣接画素aや同一列下隣接画素bが、注目画素に対して、どの程度影響するのかを表している。
【0853】
また、図73Bは、注目画素と、同一行左隣接画素cまたは同一行右隣接画素dとの間の画素数(距離)を横軸にとり、その縦軸に、同一行左隣接画素cまたは同一行右隣接画素dと乗算されるタップ係数の平均値をプロットしたグラフであり、注目画素から、ある画素数だけ離れた同一行左隣接画素cや同一行右隣接画素dが、注目画素に対して、どの程度影響するのかを表している。
【0854】
図73から、同一列上隣接画素a、同一列下隣接画素b、同一行左隣接画素c、または同一行右隣接画素dが、注目画素に隣接する場合に(注目画素との距離が1の場合に)、その同一列上隣接画素a、同一列下隣接画素b、同一行左隣接画素c、または同一行右隣接画素dが、注目画素の復号値に大きく影響していることが分かる。
【0855】
図73の画素重み記憶部222においては、図73に示したグラフの、各距離における値が、画素重みデータとして記憶されている。
【0856】
なお、図73においては、実線、点線、および2点破線の3種類のグラフを図示してあるが、実線のグラフは、教師データとしての画像を、2Mbpsのデータレートの符号化データにMPEG符号化して学習を行って得られたタップ係数を用いて求められたものであり、点線のグラフは、教師データとしての画像を、8Mbpsのデータレートの符号化データにMPEG符号化して学習を行って得られたタップ係数を用いて求められたものである。さらに、2点破線のグラフは、教師データとしての画像を、2Mbpsと8Mbpsのデータレートの符号化データにMPEG符号化し、その両者を用いて学習を行って得られたタップ係数から求められたものである。画素重みデータとしては、いずれのグラフを採用することも可能である。
【0857】
次に、図74のフローチャートおよび図75を参照して、図67のFT変換部51の処理(FT変換)について説明する。
【0858】
モード制御部11は、バッファメモリ23(図14)に記憶された2次元DCT係数のブロックのうち、まだ、注目ブロックとしていない、バッファメモリ23への記憶順で最も古いブロックを、注目ブロックとし、その注目ブロックのDCT係数を、符号制御部12に供給する。
【0859】
そして、ステップS151乃至S159において、図65のステップS131乃至S139における場合とそれぞれ同様の処理が行われる。
【0860】
即ち、ステップS151において、モード制御部11は、図75Aに示すように、注目ブロックの画素のうちの、ラスタスキャン順で、まだ、注目画素としていない画素を、注目画素として選択し、ステップS152に進む。図75Aの実施の形態では、ブロックにおける位置(1,3)の画素(左から2(=1+1)番目で、上から4(=3+1)番目の画素)が、注目画素とされている。
【0861】
ステップS152では、モード制御部11は、注目画素の座標(i,j)に基づき、画素位置モード#nと領域情報を求め、領域情報を、符号制御部12に供給し、ステップS153に進む。ここで、図75Aの実施の形態においては、ブロックにおける位置(1,3)の画素が、注目画素とされているが、この場合、画素位置モード#nは、25となる。
【0862】
ステップS153では、モード制御部11は、注目画素の画素位置モード#nを縮退することにより、縮退画素位置モード#n’を求め、種データ記憶部13に供給して、ステップS154に進む。ここで、図75Aに示したように、画素位置モード#nが25の場合、縮退画素位置モード#n’は、13となる。
【0863】
ステップS154では、クラス分類部16が、バッファメモリ23(図14)に記憶された2次元DCT係数に基づいて、注目画素のクラス分類を行い、その結果得られるクラスコードを、種重み記憶部17に供給して、ステップS155に進む。
【0864】
ステップS155では、種重み記憶部17は、クラス分類部16からのクラスコードが表すクラスの種重みデータを読み出し、種データ補正部18に供給する。
【0865】
その後、ステップS156に進み、種データ記憶部13が、モード制御部11から供給される縮退画素位置モード#n’に対応する種データを読み出し、種データ補正部18に供給する。
【0866】
即ち、種データ記憶部13は、上述の図13Bと同様の図75Bに示すように、周波数uの軸と、位置jの軸とで定義される2次元平面上において考えることのできる1乃至7の周波数uそれぞれについての位置jが0乃至3それぞれの基底波形の28個の値と、周波数uが0のときの1つの基底波形の値を記憶している。
【0867】
そして、ステップS156では、種データ記憶部13は、図12のステップS4における場合と同様に、モード制御部11から供給される注目画素の縮退画素位置モード#n’から、その注目画素の縮退座標(H,V)を求め、図75Bにおける位置jがHの、周波数が1乃至7それぞれの基底波形の7つの値と、位置jがVの、周波数が1乃至7それぞれの基底波形の7つの値を読み出し、種データ補正部18に供給する。
【0868】
さらに、種データ記憶部13は、周波数uが0のときの1つの基底波形の値を読み出し、種データ補正部18に供給する。
【0869】
従って、例えば、図75Aに示したように、縮退座標(H,V)が、(1,3)の画素が注目画素とされた場合には、位置jが1の、周波数が1乃至7それぞれの基底波形の7つの値、位置jが3の、周波数が1乃至7それぞれの基底波形の7つの値、および周波数uが0のときの1つの基底波形の値が、種データとして、種データ記憶部13から種データ補正部18に供給される。
【0870】
そして、ステップS157に進み、種データ補正部18は、種データ記憶部13から供給された基底波形の値から、水平方向の基底波形の8つの値Fhと、垂直方向の基底波形の8つの値Fvを求める。
【0871】
即ち、種データ補正部18は、ステップS157において、図75Cに示すように、周波数uが0のときの1つの基底波形の値を先頭として、位置jがHの、周波数が1乃至7それぞれの基底波形の7つの値を順次配置することにより、水平方向の基底波形の8つの値Fhとするとともに、周波数uが0のときの1つの基底波形の値を先頭として、位置jがVの、周波数が1乃至7それぞれの基底波形の7つの値を順次配置することにより、垂直方向の基底波形の8つの値Fvとする。
【0872】
さらに、種データ補正部18は、ステップS157において、水平方向の基底波形の8つの値Fhと、垂直方向の基底波形の8つの値Fvを、ステップS155で種重みデータ記憶部17から供給された、注目画素のクラスの種重みデータによって補正する。
【0873】
即ち、種データ補正部18は、種重み記憶部17から供給される、注目画素のクラスの、4行それぞれについての各周波数uにおける種重みデータ(図63Aの周波数特性としての種重みデータ)から、注目画素の行Hに一致する行についての各周波数uにおける種重みデータを選択し、図75Dに示すように、その各周波数uにおける種重みデータを、水平方向の基底波形の8つの値Fhのうちの、対応する周波数uのものに乗算することにより、その水平方向の基底波形の8つの値Fhを補正する。さらに、種データ補正部18は、種重み記憶部17から供給される、注目画素のクラスの、4列それぞれについての各周波数uにおける種重みデータ(図63Bの周波数特性としての種重みデータ)から、注目画素の行Vに一致する行についての各周波数uにおける種重みデータを選択し、図75Dに示すように、その各周波数uにおける種重みデータを、垂直方向の基底波形の8つの値Fvのうちの、対応する周波数uのものに乗算することにより、その垂直方向の基底波形の8つの値Fvを補正する。
【0874】
そして、種データ補正部18は、その補正後の水平方向の基底波形の8つの値Fhと垂直方向の基底波形の8つの値Fvを、変換係数生成部14に供給し、ステップS158に進む。
【0875】
ステップS158では、変換係数生成部14が、種データ補正部18から供給される、補正後の水平方向の基底波形Fhと垂直方向の基底波形Fvから、注目画素の画素値を復号するための変換係数を生成する。
【0876】
即ち、変換係数生成部14は、図75E示すように、補正後の水平方向の基底波形の8つの値Fhそれぞれと、補正後の垂直方向の基底波形の8つの値Fvそれぞれとを、総当たりで乗算することにより、図75Fに示す8×8の変換係数、即ち、座標(i,j)の注目画素の画素値を復号するための式(17)における64個の変換係数F(i,j,0,0)乃至F(i,j,7,7)を生成し、積和演算部15に供給する。
【0877】
ここで、図75Eおよび図75Fの実施の形態では、水平方向の基底波形の8つの値Fhの先頭から6(=5+1)番目の値と、垂直方向の基底波形の8つの値Fvの先頭から2(=1+1)番目の値とが乗算されることにより、注目ブロックの座標(5,1)の位置にあるDCT係数と乗算される変換係数が生成されている。
【0878】
その後、ステップS159に進み、符号制御部12は、ステップS152でモード制御部11から供給される注目画素の領域情報に基づいて、図5乃至図10で説明したように、モード制御部11から供給される注目ブロックのDCT係数の符号を反転し、積和演算部15に供給して、ステップS160に進む。
【0879】
ステップS160では、逆DCT変換部221が、バッファメモリ23(図14)から、注目ブロックの上下左右にそれぞれ隣接する4つのブロックを読み出し、2次元逆DCT変換することにより、画素値のブロックに復号する。さらに、ステップS160では、逆DCT変換部221が、上述したようにして復号した4つのブロックから、同一列上隣接画素a、同一列下隣接画素b、同一行左隣接画素c、および同一行右隣接画素dを選択し、その画素値を、積和演算部15に供給する。
【0880】
そして、ステップS161に進み、積和演算部15は、画素重み記憶部222から、必要な画素重みデータを読み出す。
【0881】
即ち、画素重み記憶部222は、図73に示したような、注目画素からの距離に応じた、同一列上隣接画素aおよび同一列下隣接画素bに対する画素重みデータと、同一行左隣接画素cおよび同一行右隣接画素dに対する画素重みデータを記憶している。そして、積和演算部15は、注目画素から、同一列上隣接画素a、同一列下隣接画素b、同一行左隣接画素c、同一行右隣接画素dそれぞれまでの距離に対応して、同一列上隣接画素a、同一列下隣接画素b、同一行左隣接画素c、同一行右隣接画素dそれぞれに対する画素重みデータwa,wb,wc,wdを、画素重み記憶部222から読み出す。
【0882】
その後、ステップS162に進み、積和演算部15は、図75Gに示すように、変換係数生成部14からの変換係数F(i,j,u,v)、および符号制御部12からの注目ブロックのDCT係数f(u,v)、さらには、画素重み記憶部222から読み出した画素重みデータwa乃至wd、および逆DCT変換部221からの同一列上隣接画素a、同一列下隣接画素b、同一行左隣接画素c、同一行右隣接画素dそれぞれの画素値を用いて、式(22)の積和演算を行い、これにより、注目画素の画素値を復号する。
【0883】
なお、符号制御部12からの注目ブロックのDCT係数f(u,v)は、上述したように、注目画素が左上領域、右上領域、左下領域、右下領域のいずれに位置する画素であるかによって、その符号が操作されており、従って、ステップS162では、式(22)における、変換係数F(i,j,u,v)と、符号制御部12からの注目ブロックのDCT係数f(u,v)との積和演算については、図65のステップS140における場合と同様に、注目画素が左上領域、右上領域、左下領域、右下領域のいずれの画素であるかによって、それぞれ、式(13)乃至(16)の演算が行われる。
【0884】
そして、ステップS163に進み、モード制御部11は、注目ブロックのすべての画素を注目画素としたかどうかを判定する。ステップS163において、注目ブロックのすべての画素を、まだ注目画素としていないと判定された場合、ステップS151に戻り、注目ブロックの画素のうちの、ラスタスキャン順で、まだ、注目画素とされていない画素が、新たな注目画素として選択され、以下、同様の処理が繰り返される。
【0885】
また、ステップS163において、注目ブロックのすべての画素を注目画素としたと判定された場合、処理を終了する。
【0886】
以上のように、種重みデータによって補正した種データから変換係数を生成し、積和演算に用いるとともに、同一列上隣接画素a、同一列下隣接画素b、同一行左隣接画素c、同一行右隣接画素dの画素値と、画素重みデータとの積和演算も行うようにしたので、MPEG符号化によって失われた高周波数成分が補われた、より高画質の復号画像を得ることができる。
【0887】
なお、図74の処理は、バッファメモリ23(図14)に記憶されたDCT係数のブロックを、順次、注目ブロックとして繰り返し行われる。
【0888】
また、図74の処理において、点線で囲んであるステップS154乃至S158の処理、ステップS159の処理、ステップS160の処理、およびステップS161の処理は、並列に行うことが可能である。
【0889】
次に、上述した一連の処理は、ハードウェアにより行うこともできるし、ソフトウェアにより行うこともできる。一連の処理をソフトウェアによって行う場合には、そのソフトウェアを構成するプログラムが、汎用のコンピュータ等にインストールされる。
【0890】
そこで、図76は、上述した一連の処理を実行するプログラムがインストールされるコンピュータの一実施の形態の構成例を示している。
【0891】
プログラムは、コンピュータに内蔵されている記録媒体としてのハードディスク405やROM403に予め記録しておくことができる。
【0892】
あるいはまた、プログラムは、フレキシブルディスク、CD-ROM(Compact Disc Read Only Memory),MO(Magneto Optical)ディスク,DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体411に、一時的あるいは永続的に格納(記録)しておくことができる。このようなリムーバブル記録媒体411は、いわゆるパッケージソフトウエアとして提供することができる。
【0893】
なお、プログラムは、上述したようなリムーバブル記録媒体411からコンピュータにインストールする他、ダウンロードサイトから、ディジタル衛星放送用の人工衛星を介して、コンピュータに無線で転送したり、LAN(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送し、コンピュータでは、そのようにして転送されてくるプログラムを、通信部408で受信し、内蔵するハードディスク405にインストールすることができる。
【0894】
コンピュータは、CPU(Central Processing Unit)402を内蔵している。CPU402には、バス401を介して、入出力インタフェース410が接続されており、CPU402は、入出力インタフェース410を介して、ユーザによって、キーボードや、マウス、マイク等で構成される入力部407が操作等されることにより指令が入力されると、それにしたがって、ROM(Read Only Memory)403に格納されているプログラムを実行する。あるいは、また、CPU402は、ハードディスク405に格納されているプログラム、衛星若しくはネットワークから転送され、通信部408で受信されてハードディスク405にインストールされたプログラム、またはドライブ409に装着されたリムーバブル記録媒体411から読み出されてハードディスク405にインストールされたプログラムを、RAM(Random Access Memory)404にロードして実行する。これにより、CPU402は、上述したフローチャートにしたがった処理、あるいは上述したブロック図の構成により行われる処理を行う。そして、CPU402は、その処理結果を、必要に応じて、例えば、入出力インタフェース410を介して、LCD(Liquid CryStal Display)やスピーカ等で構成される出力部406から出力、あるいは、通信部408から送信、さらには、ハードディスク405に記録等させる。
【0895】
ここで、本明細書において、コンピュータに各種の処理を行わせるためのプログラムを記述する処理ステップは、必ずしもフローチャートとして記載された順序に沿って時系列に処理する必要はなく、並列的あるいは個別に実行される処理(例えば、並列処理あるいはオブジェクトによる処理)も含むものである。
【0896】
また、プログラムは、1のコンピュータにより処理されるものであっても良いし、複数のコンピュータによって分散処理されるものであっても良い。さらに、プログラムは、遠方のコンピュータに転送されて実行されるものであっても良い。
【0897】
なお、本実施の形態では、MPEG符号化された動画像を対象としたが、本発明は、2次元DCT変換を用いる、MPEG以外の符号化方式により符号化された動画像や、JPEG符号化された静止画等を復号する場合にも適用可能である。さらに、本発明は、画像のみならず、例えば、時間領域のデータである音声データを、周波数領域のデータに変換して符号化することにより得られる符号化データ、即ち、例えば、MPEG符号化された音声データや、ATRAC(Adaptive TRansform Acoustic Coding)方式で符号化された音声データ等を復号する場合にも適用可能である。この場合、高音質の音声を復号することができる。
【0898】
また、図67の実施の形態では、積和演算部15における積和演算の対象として、同一列上隣接画素a、同一列下隣接画素b、同一行左隣接画素c、および同一行右隣接画素dを含めるようにしたが、積和演算部15における積和演算の対象としては、その他、例えば、注目ブロックの上下左右それぞれに隣接する4つの隣接ブロックの画素のうちの、注目ブロックに隣接する画素すべてや、注目画素と同一位置にある、注目画素のフレームの前または後のフレームの画素、注目画素から動きベクトルに対応する分だけ移動した位置にある、注目画素のフレームの前または後のフレームの画素などを含めるようにすることが可能である。
【0899】
さらに、本実施の形態では、FT変換部51(図18、図67)の積和演算部15において、線形1次演算を行うことにより、2次元DCT係数を画素値に復号するようにしたが、積和演算部15では、2次以上の式の演算を行うことによって画素値を復号するようにすることが可能である。
【0900】
【発明の効果】
以上の如く、本発明によれば、少ないメモリによって装置を構成し、高画質の画像データなどの高品質のデータを復号することが可能となる。
【図面の簡単な説明】
【図1】MPEGデコーダの構成例を示すブロック図である。
【図2】DCT変換および逆DCT変換を説明する図である。
【図3】MPEG符号化されたデータを、逆DCT変換せずに復号する画像処理装置の構成例を示す図である。
【図4】FT変換部10の構成例を示すブロック図である。
【図5】縮退画素位置モードと、2次元DCT係数の符号の操作を説明するための図である。
【図6】縮退画素位置モードと、2次元DCT係数の符号の操作を説明するための図である。
【図7】DCT係数の基底となっているコサイン波形(基底波形)を示す図である。
【図8】DCT係数の基底となっているコサイン波形(基底波形)を示す図である。
【図9】縮退画素位置モードと、2次元DCT係数の符号の操作を説明するための図である。
【図10】縮退画素位置モードと、2次元DCT係数の符号の操作を説明するための図である。
【図11】DCT係数の基底となっているコサイン波形(基底波形)と種データを示す図である。
【図12】FT変換部10の処理を説明するフローチャートである。
【図13】FT変換部10の処理を説明するための図である。
【図14】本発明を適用した画像処理装置の一実施の形態の構成例を示すブロック図である。
【図15】DCT変換部21と周波数領域動き補償加算部22の構成例を示すブロック図である。
【図16】サンプリング部61の処理を説明するための図である。
【図17】サンプリング部61の処理を説明するための図である。
【図18】FT変換部51の構成例を示すブロック図である。
【図19】クラス分類部16の構成例を示すブロック図である。
【図20】2次元DCT変換および2次元逆DCT変換、並びに1次元DCT変換および1次元逆DCT変換を説明するための図である。
【図21】原画像、水平1次元DCT係数、垂直1次元DCT係数、および2次元DCT係数を示すディスプレイ上に表示された中間階調の写真である。
【図22】注目ブロックの境界の画素列に空間的に隣接する隣接ブロックの画素列を説明するための図である。
【図23】注目ブロックの境界の画素列に空間的に隣接する隣接ブロックの画素列を説明するための図である。
【図24】注目ブロックの境界の画素列に空間的に隣接する隣接ブロックの画素列を説明するための図である。
【図25】注目ブロックの境界の画素列に空間的に隣接する隣接ブロックの画素列を説明するための図である。
【図26】注目ブロックの境界の画素列に空間的に隣接する隣接ブロックの画素列を説明するための図である。
【図27】注目ブロックの境界の画素列に空間的に隣接する隣接ブロックの画素列を説明するための図である。
【図28】注目ブロックの境界の画素列に空間的に隣接する隣接ブロックの画素列を説明するための図である。
【図29】注目ブロックの境界の画素列に空間的に隣接する隣接ブロックの画素列を説明するための図である。
【図30】注目ブロックの境界の画素列に空間的に隣接する隣接ブロックの画素列を説明するための図である。
【図31】注目ブロックの境界の画素列に空間的に隣接する隣接ブロックの画素列を説明するための図である。
【図32】注目ブロックの境界の画素列に空間的に隣接する隣接ブロックの画素列を説明するための図である。
【図33】注目ブロックの境界の画素列に空間的に隣接する隣接ブロックの画素列を説明するための図である。
【図34】注目ブロックの境界の画素列に空間的に隣接する隣接ブロックの画素列を説明するための図である。
【図35】注目ブロックの境界の画素列に空間的に隣接する隣接ブロックの画素列を説明するための図である。
【図36】注目ブロックの境界の画素列に空間的に隣接する隣接ブロックの画素列を説明するための図である。
【図37】注目ブロックの境界の画素列に空間的に隣接する隣接ブロックの画素列を説明するための図である。
【図38】隣接1次元DCT係数選択/変換部32の構成例を示すブロック図である。
【図39】左上ブロック処理を説明するフローチャートである。
【図40】左下ブロック処理を説明するフローチャートである。
【図41】右上ブロック処理を説明するフローチャートである。
【図42】右下ブロック処理を説明するフローチャートである。
【図43】ACパワーを説明するための図である。
【図44】ACパワー算出部33の構成例を示すブロック図である。
【図45】AC内積を説明するための図である。
【図46】AC内積計算部34の構成例を示すブロック図である。
【図47】クラスコード生成部36の構成例を示すブロック図である。
【図48】クラスコードのフォーマットを示す図である。
【図49】クラスコード生成部36の処理を説明するフローチャートである。
【図50】クラスコード生成部37の構成例を示すブロック図である。
【図51】4:2:2フォーマットにおける輝度ブロックと色差ブロックとの対応関係を示す図である。
【図52】輝度クラスコードを利用した色差クラスコードの生成を説明する図である。
【図53】4:2:0フォーマットにおける輝度ブロックと色差ブロックとの対応関係を示す図である。
【図54】輝度クラスコードを利用した色差クラスコードの生成を説明する図である。
【図55】クラス分類適応処理回路の構成例を示すブロック図である。
【図56】クラス分類適応処理回路によるクラス分類適応処理を説明するフローチャートである。
【図57】タップ係数を学習する学習装置の第1実施の形態の構成例を示すブロック図である。
【図58】学習装置による学習処理を説明するフローチャートである。
【図59】タップ係数を学習する学習装置の第2実施の形態の構成例を示すブロック図である。
【図60】タップ係数を学習する学習装置の第3実施の形態の構成例を示すブロック図である。
【図61】シミュレーションにより得られた復号画像のS/Nを示す図である。
【図62】シミュレーションにより得られた復号画像を示すディスプレイ上に表示された中間階調の写真である。
【図63】学習により求められたタップ係数の周波数特性の例を示す図である。
【図64】係数比を示す図である。
【図65】FT変換部51の処理を説明するフローチャートである。
【図66】FT変換部51の処理を説明するための図である。
【図67】FT変換部51の他の構成例を示すブロック図である。
【図68】逆DCT変換部221が選択する画素を説明する図である。
【図69】クラス分類適応処理回路の他の構成例を示すブロック図である。
【図70】タップ係数を学習する学習装置の第4実施の形態の構成例を示すブロック図である。
【図71】タップ係数を学習する学習装置の第5実施の形態の構成例を示すブロック図である。
【図72】タップ係数を学習する学習装置の第6実施の形態の構成例を示すブロック図である。
【図73】注目画素から予測タップを構成する画素までの距離と、その画素に対するタップ係数との関係を示す図である。
【図74】FT変換部51の処理を説明するフローチャートである。
【図75】FT変換部51の処理を説明するための図である。
【図76】本発明を適用したコンピュータの一実施の形態の構成例を示すブロック図である。
【符号の説明】
1 分離部, 2 DCT係数抽出/逆量子化部, 4 動き補償部, 5 画像メモリ, 6 動き補償加算部, 7 画像メモリ, 8 ピクチャ選択部, 10 FT変換部, 11 モード制御部, 12 符号制御部, 13 種データ記憶部, 14 変換係数生成部, 15 積和演算部, 16 クラス分類部, 17 種重み記憶部, 18 種データ補正部, 20 前処理部, 21 DCT変換部, 22 周波数領域動き補償加算部, 23 バッファメモリ, 31 1次元逆DCT変換部, 32 隣接1次元DCT係数選択/変換部, 33 ACパワー算出部, 34 AC内積計算部, 36,37クラスコード生成部, 50 画像再構成部, 51 FT変換部, 61 サンプリング部, 62 DCT部, 71 DCT係数選択部, 72 加算部, 73 選択部, 80 制御部, 81 メモリ, 82 垂直1次元逆DCT変換部, 83 サンプリング部, 84 垂直1次元DCT変換部, 85 選択部, 91 水平1次元DCT係数抽出部, 92 垂直1次元DCT係数抽出部, 93 水平ACパワー計算部, 94 垂直ACパワー計算部, 101 上内積用1次元DCT係数抽出部, 102 下内積用1次元DCT係数抽出部, 103 左内積用1次元DCT係数抽出部, 104 右内積用1次元DCT係数抽出部, 105 上内積演算部, 106 下内積演算部, 107 左内積演算部, 108 右内積演算部, 111,112 比較部, 113 平坦性条件判定部, 114 連続性条件判定部, 115 境界部エッジ条件判定部, 116 クラスコード作成部, 121,122 比較部, 123 クラスコード作成部, 131 タップ生成部, 132 クラス分類部, 133 タップ係数記憶部, 134 タップ係数バッファ, 135 積和演算部, 141 教師データストレージ, 142 生徒データ生成部, 143 生徒データストレージ, 144 タップ生成部, 145クラス分類部, 146 足し込み部, 147 タップ係数演算部, 151 MPEGエンコーダ, 152 分離部, 153 DCT係数抽出/逆量子化部, 171 MPEGエンコーダ, 172 分離部, 173 DCT係数抽出/逆量子化部, 176 クラス分類適応処理回路, 177 Iピクチャストレージ, 178 動き補償部, 179 画像メモリ, 180 DCT変換部, 181 周波数領域動き補償加算部, 191 MPEGエンコーダ, 192 分離部, 193 DCT係数抽出/逆量子化部, 196 クラス分類適応処理回路, 197 Iピクチャストレージ, 198 動き補償部, 199 画像メモリ, 200 DCT変換部, 201 周波数領域動き補償加算部, 204 クラス分類適応処理回路, 205 Pピクチャストレージ, 206 動き補償部, 207 画像メモリ, 208 DCT変換部, 209 周波数領域動き補償加算部, 221 逆DCT変換部, 222 画素重み記憶部, 231,241 逆DCT変換部, 401 バス,402 CPU, 403 ROM, 404 RAM, 405 ハードディスク,406 出力部, 407 入力部, 408 通信部, 409 ドライブ, 410 入出力インタフェース, 411 リムーバブル記録媒体

Claims (11)

  1. 画像データが所定のブロック単位でDCT (Discrete Cosine Transform) 変換されることにより得られたDCT係数を、元の前記画像データに復号するデータ処理装置であって、
    前記所定のブロック単位の前記画像データの画素のうち、復号される復号対象の画素である注目画素を、前記注目画素を含むブロックである注目ブロックの DCT 係数の性質に基づいて、複数のクラスのうち、前記注目ブロックの DCT 係数の性質を表すクラスにクラス分けするクラス分類手段と、
    前記注目ブロックのDCT係数と所定の変換係数とを用いた積和演算に用いられる前記所定の変換係数を生成する元となる種データであって、前記注目画素の位置に対応する前記注目ブロックの行と列におけるDCT変換の基底波形の値を表す前記種データどうしの積を演算することにより、前記所定の変換係数を生成するときに、前記種データにかける係数である、前記注目画素のクラスに対応する種重みデータによって前記種データを補正する種データ補正手段と、
    前記種データ補正手段によって補正された後の前記種データどうしの積を演算することより、前記所定の変換係数を生成する変換係数生成手段と、
    前記注目ブロックのDCT係数と前記所定の変換係数との前記積和演算を行うことにより、前記注目画素の画素値を求める演算手段と
    を備え
    前記種重みデータは、
    所定のタップ係数を求める学習の教師となる前記画像データである教師データを、複数のクラスのうちのいずれかのクラスにクラス分けし、
    前記教師データが前記所定のブロック単位でDCT変換されることにより得られたDCT係数を、前記学習の生徒となる生徒データとして、前記生徒データと前記所定のタップ係数との他の積和演算を行うことにより得られる前記教師データの予測値の予測誤差を、統計的に最小にする前記所定のタップ係数を、前記クラスごとに求める学習を行う
    ことにより得られる前記クラスごとの前記所定のタップ係数と、前記種データどうしの積を演算することにより生成される他の変換係数との比を演算することにより、前記クラスごとに求められたものである
    ータ処理装置。
  2. 数の種データが、前注目画素の位置毎に予め記憶されている種データ記憶手段と、
    前記種重みデータが予め記憶されている種重みデータ記憶手段と
    をさらに備え、
    前記種データ補正手段は、前記種データ記憶手段に記憶されている複数の種データのうち、前記注目画素の位置に対応する前記種データを、前記種重みデータ記憶手段に記憶されている前記注目画素のクラスの前記種重みデータによって補正し、
    前記演算手段は、前記注目ブロックのDCT係数と前記所定の変換係数との前記積和演算を行うことにより、前記注目ブロックのDCT係数から、前記注目画素の画素値を求める
    求項1に記載のデータ処理装置。
  3. 前記注目ブロックに近接するブロックである近接ブロックの前記DCT係数を画素値に変換するDCT係数変換手段をさらに備え、
    前記演算手段は、前記注目ブロックのDCT係数および前記所定の変換係数の他に、前記近接ブロックの画素値と、その画素値にかける係数である画素重みデータも用いて前記積和演算を行うことにより、前記注目画素の画素値を求め
    前記画素重みデータは、
    所定のタップ係数を求める学習の教師となる前記画像データである教師データを、前記 所定のブロック単位でDCT変換することによりDCT係数とし、
    前記注目ブロックの前記DCT係数と、前記注目ブロックに近接するブロックである近接ブロックの画素値とを、前記学習の生徒となる生徒データとして、その生徒データと前記所定のタップ係数との前記他の積和演算を行うことにより得られる前記教師データの予測値の予測誤差を、統計的に最小にする前記所定のタップ係数を求める学習を行う
    ことにより得られる前記所定のタップ係数のうち、前記他の積和演算において前記近接ブロックの画素の画素値との演算に用いられる前記所定のタップ係数の平均をとることにより求められたものである
    求項に記載のデータ処理装置。
  4. 前記近接ブロックの画素値は、前記注目ブロックに隣接するブロックの画素のうち、前記注目ブロックに隣接する、前記注目画素と同一行または同一列の画素の画素値である
    求項に記載のデータ処理装置。
  5. 前記変換係数生成手段は、前記注目ブロックの第1行または第1列の画素から、前記注目ブロックの行数または列数の1/2の行または列の画素までの各位置における前記基底波形の値を、前記種データとして、前記所定の変換係数を生成する
    求項に記載のデータ処理装置。
  6. 前記目ブロックを、上下方向と左右方向にそれぞれ2等分して得られる左上、右上、左下、および右下の4つの領域のうち、前記注目画素が位置する領域を注目領域とし、
    前記注目領域が、前記左上の領域である場合、前記注目ブロックにおける注目画素の位置を表す情報を、前記縮退画素位置情報として出力し、
    前記注目領域が、前記右上の領域である場合、前記注目ブロックを左右に2等分する線について、前記注目画素と線対称の位置にある前記左上の領域における画素の位置を表す情報を、前記縮退画素位置情報として出力し、
    前記注目領域が、前記左下の領域である場合、前記注目ブロックを上下に2等分する線について、前記注目画素と線対称の位置にある前記左上の領域における画素の位置を表す情報を、前記縮退画素位置情報として出力し、
    前記注目領域が、前記右下の領域である場合、前記注目ブロックを左右に2等分する線と上下に2等分する線との交点について、前記注目画素と点対称の位置にある前記左上の領域における画素の位置を表す情報を、前記縮退画素位置情報として出力する画素位置情報縮退手段をさらに備え、
    前記変換係数生成手段は、前記注目画素の縮退画素位置情報が表す位置に対応する前記種データどうしの積を演算することにより、前記所定の変換係数を生成する
    求項に記載のデータ処理装置。
  7. 前記注目領域が、前記左上の領域である場合、前記注目ブロックのDCT係数の正負の符号を、そのままとし、
    前記注目領域が、前記右上の領域である場合、前記注目ブロックのDCT係数のうち、前記注目ブロックの偶数列に位置するものの正負の符号を反転し、
    前記注目領域が、前記左下の領域である場合、前記注目ブロックのDCT係数のうち、前記注目ブロックの偶数行に位置するものの正負の符号を反転し、
    前記注目領域が、前記右下の領域である場合、前記注目ブロックのDCT係数のうち、前記注目ブロックの偶数列に位置するものの正負の符号を反転し、さらに、前記注目ブロックの偶数行に位置するものの正負の符号を反転する符号操作手段をさらに備え、
    前記演算手段は、符号が操作された前記注目ブロックのDCT係数と、前記所定の変換係数との前記積和演算を行うことにより、前記注目画素の画素値を求める
    求項に記載のデータ処理装置。
  8. 前記符号操作手段は、前記注目ブロックのDCT係数に代えて、前記所定の変換係数の正負の符号を操作する
    求項に記載のデータ処理装置。
  9. 画像データが所定のブロック単位でDCT (Discrete Cosine Transform) 変換されることにより得られたDCT係数を、元の前記画像データに復号するデータ処理装置のデータ処理方法であって、
    前記所定のブロック単位の前記画像データの画素のうち、復号される復号対象の画素である注目画素を、前記注目画素を含むブロックである注目ブロックの DCT 係数の性質に基づいて、複数のクラスのうち、前記注目ブロックの DCT 係数の性質を表すクラスにクラス分けするクラス分類ステップと、
    前記注目ブロックのDCT係数と所定の変換係数とを用いた積和演算に用いられる前記所定の変換係数を生成する元となる種データであって、前記注目画素の位置に対応する前記注目ブロックの行と列におけるDCT変換の基底波形の値を表す前記種データどうしの積を演算することにより、前記所定の変換係数を生成するときに、前記種データにかける係数である、前記注目画素のクラスに対応する種重みデータによって前記種データを補正する種データ補正ステップと、
    前記種データ補正ステップで補正された後の前記種データどうしの積を演算することより、前記所定の変換係数を生成する変換係数生成ステップと、
    前記注目ブロックのDCT係数と前記所定の変換係数との前記積和演算を行うことにより、前記注目画素の画素値を求める演算ステップと
    を含み、
    前記種重みデータは、
    所定のタップ係数を求める学習の教師となる前記画像データである教師データを、複数のクラスのうちのいずれかのクラスにクラス分けし、
    前記教師データが前記所定のブロック単位でDCT変換されることにより得られたDCT係数を、前記学習の生徒となる生徒データとして、前記生徒データと前記所定のタップ係数との他の積和演算を行うことにより得られる前記教師データの予測値の予測誤差を、統計的に最小にする前記所定のタップ係数を、前記クラスごとに求める学習を行う
    ことにより得られる前記クラスごとの前記所定のタップ係数と、前記種データどうしの積を演算することにより生成される他の変換係数との比を演算することにより、前記クラスごとに求められたものである
    ータ処理方法。
  10. 画像データが所定のブロック単位でDCT (Discrete Cosine Transform) 変換されることにより得られたDCT係数を、元の前記画像データに復号するデータ処理を、コンピュータに行わせるプログラムであって、
    前記所定のブロック単位の前記画像データの画素のうち、復号される復号対象の画素である注目画素を、前記注目画素を含むブロックである注目ブロックの DCT 係数の性質に基づいて、複数のクラスのうち、前記注目ブロックの DCT 係数の性質を表すクラスにクラス分けするクラス分類ステップと、
    前記注目ブロックのDCT係数と所定の変換係数とを用いた積和演算に用いられる前記所定の変換係数を生成する元となる種データであって、前記注目画素の位置に対応する前記注目ブロックの行と列におけるDCT変換の基底波形の値を表す前記種データどうしの積を演算することにより、前記所定の変換係数を生成するときに、前記種データにかける係数である、前記注目画素のクラスに対応する種重みデータによって前記種データを補正する種データ補正ステップと、
    前記種データ補正ステップで補正された後の前記種データどうしの積を演算することより、前記所定の変換係数を生成する変換係数生成ステップと、
    前記注目ブロックのDCT係数と前記所定の変換係数との前記積和演算を行うことにより、前記注目画素の画素値を求める演算ステップと
    を含み、
    前記種重みデータは、
    所定のタップ係数を求める学習の教師となる前記画像データである教師データを、複数のクラスのうちのいずれかのクラスにクラス分けし、
    前記教師データが前記所定のブロック単位でDCT変換されることにより得られたDCT係数を、前記学習の生徒となる生徒データとして、前記生徒データと前記所定のタップ係数との他の積和演算を行うことにより得られる前記教師データの予測値の予測誤差を、統計的に最小にする前記所定のタップ係数を、前記クラスごとに求める学習を行う
    ことにより得られる前記クラスごとの前記所定のタップ係数と、前記種データどうしの積を演算することにより生成される他の変換係数との比を演算することにより、前記クラスごとに求められたものである
    理を、コンピュータに行わせプログラム。
  11. 画像データが所定のブロック単位でDCT (Discrete Cosine Transform) 変換されることにより得られたDCT係数を、元の前記画像データに復号するデータ処理を、コンピュータに行わせるプログラムが記録されている記録媒体であって、
    前記所定のブロック単位の前記画像データの画素のうち、復号される復号対象の画素である注目画素を、前記注目画素を含むブロックである注目ブロックの DCT 係数の性質に基づいて、複数のクラスのうち、前記注目ブロックの DCT 係数の性質を表すクラスにクラス分けするクラス分類ステップと、
    前記注目ブロックのDCT係数と所定の変換係数とを用いた積和演算に用いられる前記所定の変換係数を生成する元となる種データであって、前記注目画素の位置に対応する前記注目ブロックの行と列におけるDCT変換の基底波形の値を表す前記種データどうしの積を演算することにより、前記所定の変換係数を生成するときに、前記種データにかける係数である、前記注目画素のクラスに対応する種重みデータによって前記種データを補正する種データ補正ステップと、
    前記種データ補正ステップで補正された後の前記種データどうしの積を演算することより、前記所定の変換係数を生成する変換係数生成ステップと、
    前記注目ブロックのDCT係数と前記所定の変換係数との前記積和演算を行うことにより、前記注目画素の画素値を求める演算ステップと
    を含み、
    前記種重みデータは、
    所定のタップ係数を求める学習の教師となる前記画像データである教師データを、複数のクラスのうちのいずれかのクラスにクラス分けし、
    前記教師データが前記所定のブロック単位でDCT変換されることにより得られたDCT係数を、前記学習の生徒となる生徒データとして、前記生徒データと前記所定のタップ係数との他の積和演算を行うことにより得られる前記教師データの予測値の予測誤差を、統計的に最小にする前記所定のタップ係数を、前記クラスごとに求める学習を行う
    ことにより得られる前記クラスごとの前記所定のタップ係数と、前記種データどうしの積を演算することにより生成される他の変換係数との比を演算することにより、前記クラスごとに求められたものである
    理をコンピュータに行わせるプログラムが記録されている
    ンピュータが読み取り可能な記録媒体。
JP2002102400A 2002-04-04 2002-04-04 データ処理装置およびデータ処理方法、並びにプログラムおよび記録媒体 Expired - Fee Related JP4154647B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002102400A JP4154647B2 (ja) 2002-04-04 2002-04-04 データ処理装置およびデータ処理方法、並びにプログラムおよび記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002102400A JP4154647B2 (ja) 2002-04-04 2002-04-04 データ処理装置およびデータ処理方法、並びにプログラムおよび記録媒体

Publications (2)

Publication Number Publication Date
JP2003299098A JP2003299098A (ja) 2003-10-17
JP4154647B2 true JP4154647B2 (ja) 2008-09-24

Family

ID=29388931

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002102400A Expired - Fee Related JP4154647B2 (ja) 2002-04-04 2002-04-04 データ処理装置およびデータ処理方法、並びにプログラムおよび記録媒体

Country Status (1)

Country Link
JP (1) JP4154647B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1526737A4 (en) * 2002-07-19 2011-08-31 Sony Corp INFORMATION SIGNAL PROCESSING DEVICE AND METHOD, IMAGE SIGNAL PROCESSING DEVICE, AND IMAGE DISPLAY DEVICE, CORRECTION DATA GENERATION UNIT AND METHOD, UNIT, AND COEFFICIENT GENERATION METHOD, PROGRAM FOR IMPLEMENTING THESE METHODS, AND COMPUTER-READABLE MEDIUM FOR STORING THE PROGRAM
JP6248648B2 (ja) * 2014-01-23 2017-12-20 富士通株式会社 情報処理装置、符号化単位の選択方法、及びプログラム

Also Published As

Publication number Publication date
JP2003299098A (ja) 2003-10-17

Similar Documents

Publication Publication Date Title
US20020186888A1 (en) Data Processing device and data processing method and recorded medium
CN112840650A (zh) 人工智能(ai)编码装置及其操作方法和ai解码装置及其操作方法
JP4238516B2 (ja) データ変換装置およびデータ変換方法、学習装置および学習方法、並びにプログラムおよび記録媒体
JP2004528791A (ja) インターフレーム符号化方法および装置
JP4154647B2 (ja) データ処理装置およびデータ処理方法、並びにプログラムおよび記録媒体
JP2006508584A (ja) ベクトル予測のための方法
JP2001222702A (ja) 画像処理装置および画像処理方法、並びに記録媒体
JP4147789B2 (ja) 画像処理装置および画像処理方法、並びにプログラムおよび記録媒体
JP4154902B2 (ja) 画像処理装置および画像処理方法、並びにプログラムおよび記録媒体
JP3759538B2 (ja) 画像信号処理方法及び画像信号伝送装置
JP4517448B2 (ja) データ処理装置およびデータ処理方法、並びに記録媒体
JP4752088B2 (ja) データ処理装置およびデータ処理方法、並びに記録媒体
JP4154903B2 (ja) 画像処理装置および画像処理方法、並びにプログラムおよび記録媒体
JP4419287B2 (ja) 画像処理装置および画像処理方法、並びに記録媒体
JP4442076B2 (ja) データ変換装置およびデータ変換方法、学習装置および学習方法、並びにプログラムおよび記録媒体
JP2007251690A (ja) 画像処理装置および方法、学習装置および方法、並びにプログラム
JP4770704B2 (ja) 画像処理装置、画像処理方法、およびプログラム
JP4678454B2 (ja) データ処理装置およびデータ処理方法、並びに記録媒体
JP4505729B2 (ja) 画像処理装置、画像処理方法、プログラム、および記録媒体
JP4491701B2 (ja) データ処理装置およびデータ処理方法、並びに記録媒体
JP4081745B2 (ja) 復号装置および復号方法、学習装置および学習方法、並びにプログラムおよび記録媒体
JP4538699B2 (ja) データ処理装置およびデータ処理方法、並びに記録媒体
JP4538698B2 (ja) データ処理装置およびデータ処理方法、並びに記録媒体
JP4310691B2 (ja) 画像処理装置および方法、学習装置および方法、記録媒体、並びにプログラム
JP2006527566A (ja) 空間的信号変換

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050316

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080107

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080304

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080327

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080522

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080625

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110718

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110718

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110718

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120718

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120718

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130718

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees