以下、図面を参照しながら、この発明の実施の形態について説明する。図1は、実施の形態としての画像信号処理装置100の構成を示している。この画像信号処理装置100は、低解像度または標準解像度の画像信号(以下、「SD(Standard Definition)信号」という)を、高解像度の画像信号(以下、「HD(High Definition )信号に変換する。
図2は、SD信号とHD信号の画素位置関係を示している。「×」がSD信号の画素位置を表し、「○」がHD信号の画素位置を表している。この場合、SD信号の2画素にHD信号の4画素が対応している。
図1に戻って、画像信号処理装置100は、タップ抽出部101を有している。このタップ抽出部101には、変換対象としてのSD信号が供給される。このSD信号は、複数個の8ビットの画素データからなるものである。タップ抽出部101は、SD信号を、一個または複数個、本実施の形態においては水平方向に隣接する2個の画素データp1,p2からなるブロックに分割し(図2参照)、ブロック毎に、このブロックに含まれる画素データp1,p2をクラスタップとして抽出する。
また、画像信号処理装置100は、クラス分類部102を有している。このクラス分類部102は、タップ抽出部101で抽出されたクラスタップに基づいて、このクラスタップを複数のクラスのうちのいずれかのクラスに分類し、このクラスタップに対応したクラスコード#cを求める。
このクラス分類部102は、例えばクラスタップに含まれる画素データp1,p2をコンポーネントとするタップベクトル(p1,p2)を、クラス分類用コードブックを用いて、ベクトル量子化し、クラスタップに対応したクラスコード#cを求める。クラス分類部102は、例えば、図3に示すように、コードブック記憶部102aおよびベクトル量子化部102bからなっている。
コードブック記憶部102aには、予め求められたクラス分類用コードブックが記憶されている。このクラス分類用コードブックは、図4に示すように、複数のクラスのそれぞれについて、各クラスを代表する、SD信号についての代表ベクトルとしてのSDコードベクトル(P1,P2)に、対応するクラスを示すクラスコード(SDコード)#cを割り当てた割り当て情報である。
本実施の形態において、ベクトル量子化の対象となるタップベクトル(p1,p2)が二次元ベクトルであるので、SDコードベクトル(P1,P2)も二次元ベクトルである。クラス分類用コードブックの生成方法については後述する。
ベクトル量子化部102bは、コードブック記憶部102aに記憶されているクラス分類用コードブックに基づいて、上述したタップベクトル(p1,p2)および複数のクラスのSDコードベクトル(P1,P2)との距離を求め、この距離を最小にするSDコードベクトル(P1,P2)に割り当てられたクラスコード#cを出力する。
図1に戻って、また、画像信号処理装置100は、データ生成部103を有している。このデータ生成部103は、クラス分類部102で得られたクラスコード#cに基づいて、タップ抽出部101で抽出されたクラスタップに対応した、HD信号を構成する一個または複数個、本実施の形態においては水平方向に隣接する4個の画素データq1〜q4(図2参照)を生成する。
このデータ生成部103は、例えばクラスコード#cを、データ生成用コードブックを用いて、ベクトル逆量子化し、HD信号を構成する4個の画素データq1〜q4をコンポーネントとするHDコードベクトル(q1,q2,q3,q4)を求める。データ生成部103は、例えば、図3に示すように、コードブック記憶部103aおよびベクトル逆量子化部103bからなっている。
コードブック記憶部103aには、予め求められたデータ生成用コードブックが記憶されている。このデータ生成用コードブックは、図5に示すように、各クラスコード#cに、HD信号についての代表ベクトルとしてのHDコードベクトル(Q1,Q2,Q3,Q4)を割り当てた割り当て情報である。
本実施の形態において、ベクトル逆量子化で得られるHDコードベクトル(q1,q2,q3,q4)が四次元ベクトルであるので、HDコードベクトル(Q1,Q2,Q3,Q4)も四次元ベクトルである。データ生成用コードブックの生成方法については後述する。
ベクトル量子化部103bは、コードブック記憶部103aに記憶されているデータ生成用コードブックに基づいて、クラス分類部102で得られたクラスコード#cに割り当てられているHDコードベクトル(Q1,Q2,Q3,Q4)を求め、これをHDコードベクトル(q1,q2,q3,q4)として出力する。
ところで、上述したデータ生成部103で得られるHDコードベクトル(q1,q2,q3,q4)を表現する4次元空間を、HD画像空間というものとすると、このHDコードベクトル(q1,q2,q3,q4)は、そのHD画像空間上の点を表すベクトルとして表現することができる。また、上述したクラスタップ抽出部101で抽出されたクラスタップに含まれる画素データをコンポーネントとするタップベクトル(p1,p2)を表現する2次元空間を、SD画像空間というものとすると、このタップベクトル(p1,p2)は、そのSD画像空間上の点を表すベクトルとして表現することができる。
図3に示すクラス分類部102のベクトル量子化部102bでは、図6Aに示すように、SD画像空間において、タップベクトル(p1,p2)との距離を最小にするSDコードベクトル(P1,P2)が検出され、そのSDコードベクトル(P1,P2)のクラスコード#cが出力される。
そして、図3に示すデータ生成部103のベクトル逆量子化部103bでは、図6Bに示すように、HD画像空間における、クラスコード#cのHDコードベクトル(Q1,Q2,Q3,Q4)が求められ、そのコンポーネントQ1,Q2,Q3,Q4が、HD信号を構成する4個の画素データq1,q2,q3,q4として出力される。
ここで、図6Bにおいては、4次元空間を図示することが困難であるため、3個の画素データq1,q2,q3のそれぞれを軸とする3次元空間を、HD画像空間として図示している。
SD画像空間におけるSDコードベクトル(P1,P2)は、クラスコード#cにクラス分類されるタップベクトル(p1,p2)とは一致しない場合がほとんどである。これは、SDコードベクトル(P1,P2)が、クラスコード#cのクラスに属する、SD空間上の複数の点(ベクトル)を代表するベクトルであるためである。
また、SD画像空間におけるあるタップベクトル(p1,p2)のコンポーネントである2個の画素データp1,p2に対して、その2個の画素データp1,p2に対応するHD信号を構成する4個の真値の画素データq1,q2,q3,q4が存在すると仮定すると、タップベクトル(p1,p2)のクラスを表すクラスコード#cの、HD画像空間におけるHDコードベクトル(Q1,Q2,Q3,Q4)も、上述の4個の真値の画素データq1,q2,q3,q4をコンポーネントとする真値ベクトル(q1,q2,q3,q4)と一致しない場合がほとんどである。これは、HDコードベクトル(Q1,Q2,Q3,Q4)が、クラスコード#cのクラスに属するクラスタップに対応した、HD画像空間上の複数の点(ベクトル)を代表するベクトルであるためである。
以上のことから、上述のデータ生成部103で生成されるHD信号を構成する4個の画素データq1〜q4は、一般には、真値に一致せず、そのままではHD信号による画像の画質が劣化したものとなる。
そこで、画像信号処理装置100では、データ生成部103で得られたHD信号を構成する4個の画素データq1〜q4を、真値に近づけるように補正を行う構成となっている。
図6Bにおいて、クラスコード#cのクラスに分類されるクラスタップに対応するHD信号を構成する4個の真値の画素データq1,q2,q3,q4をコンポーネントとする真値ベクトル(q1,q2,q3,q4)から、クラスコード#cに対応したHDコードベクトル(Q1,Q2,Q3,Q4)を減算したベクトル(Δq1,Δq2,Δq3,Δq4)を、HD誤差ベクトルというものとする。ここで、Δq1=q1−Q1、Δq2=q2−Q2、Δq3=q3−Q3、Δq4=q4−Q4である。
この場合、このHD誤差ベクトル(Δq1,Δq2,Δq3,Δq4)は、クラスコード#cに対応したHDコードベクトル(Q1,Q2,Q3,Q4)の、真値ベクトル(q1,q2,q3,q4)に対する誤差(HD誤差)を表すから、クラスコード#cに対応したHDコードベクトル(Q1,Q2,Q3,Q4)を、HD誤差ベクトル(Δq1,Δq2,Δq3,Δq4)に対応する補正データで補正すれば、真値ベクトル(q1,q2,q3,q4)に近づけることができる。この補正データを、どのようにして、精度よく推定するかが問題となる。
ところで、クラス分類部102では、タップベクトル(p1,p2)がクラス分類され、そのクラスを表すクラスコード#cが得られるが、このクラスコード#cに対応したSDコードベクトル(P1,P2)を、タップベクトル(p1,p2)から減算したベクトル(Δp1,Δp2)を、SD誤差ベクトルというものとする。ここで、Δp1=p1−P1、Δp2=p2−P2である。この場合、SD誤差ベクトル(Δp1,Δp2)は、クラスコード#cに対応したSDコードベクトル(P1,P2)の、タップベクトル(p1,p2)に対する誤差(SD誤差)を表す。
一方、タップベクトル(p1,p2)と真値ベクトル(q1,q2,q3,q4)との間には大きな相関がある。また、クラスコード#cに対応したSDコードベクトル(P1,P2)とHDコードベクトル(Q1,Q2,Q3,Q4)との間には、後述するように、SDコードベクトル(P1,P2)が、クラスコード#cのクラスに属する生徒データの重心であり、HDコードベクトル(Q1,Q2,Q3,Q4)が、クラスコード#cのクラスに属する生徒データに対応する教師データの重心であるから、やはり、大きな相関がある。
そのため、タップベクトル(p1,p2)およびSDコードベクトル(P1,P2)から求められるSD誤差ベクトル(Δp1,Δp2)と、真値ベクトル(q1,q2,q3,q4)およびHDコードベクトル(Q1,Q2,Q3,Q4)から求められるHD誤差ベクトル(Δq1,Δq2,Δq3,Δq4)も、大きな相関を有している。
以上から、HD誤差ベクトル(Δq1,Δq2,Δq3,Δq4)に対応する補正データは、そのHD誤差ベクトル(Δq1,Δq2,Δq3,Δq4)と大きな相関を有するSD誤差ベクトル(Δp1,Δp2)に基づき、精度よく推定することができる。
図1に戻って、また、画像信号処理装置100は、タップ抽出部101で抽出されたクラスタップおよびクラス分類部102で得られたクラスコード#cに基づいて、データ生成部103で得られたHD信号を構成する4個の画素データq1〜q4を補正する補正データΔq1〜Δq4を求める補正データ算出部104を有している。
この補正データ算出部104は、クラスタップに含まれる画素データをコンポーネントとするタップベクトルとクラスコード#cに対応したSDコードベクトルとの減算を行ってSD誤差ベクトルを求め、このSD誤差ベクトルを構成する各コンポーネントの値の範囲情報、本実施の形態においては正負の符号情報(m1,m2)およびクラスコード#cに基づいて、補正データΔq1〜Δq4を求める。この補正データ算出部104は、図7に示すように、クラス分類用コードブック記憶部104a、範囲情報取得手段としての特徴抽出部104bおよび補正データ出力部104cからなっている。
コードブック記憶部104aには、予め求められたクラス分類用コードブックが記憶されている。このクラス分類用コードブックは、上述したクラス分類部102のコードブック記憶部102aに記憶されているクラス分類用コードブック(図4参照)と同一である。すなわち、このクラス分類用コードブックは、複数のクラスのそれぞれについて、各クラスを代表する、SD信号についての代表ベクトルとしてのSDコードベクトル(P1,P2)に、対応するクラスを示すクラスコード(SDコード)#cを割り当てた割り当て情報である。
特徴抽出部104bは、クラスタップに含まれる画素データをコンポーネントとするタップベクトル(p1,p2)と、記憶部104aよりクラスコード#cに対応して読み出されるSDコードベクトル(P1,P2)との減算を行ってSD誤差ベクトル(Δp1,Δp2)を求める。ここで、Δp1=p1−P1、Δp2=p2−P2である。
さらに、特徴抽出部104bは、このSD誤差ベクトル(Δp1,Δp2)を構成する各コンポーネントΔp1,Δp2の値の範囲情報を取得する。この範囲情報は、各コンポーネントΔp1,Δp2の値の取り得る範囲が、分割された複数の範囲のいずれに含まれるかを示す情報である。本実施の形態においては、各コンポーネントΔp1,Δp2の値の取り得る範囲が正および負の2つの範囲に分割され、特徴抽出部104bは、この範囲情報として、各コンポーネントΔp1,Δp2の値の正負の符号情報(m1,m2)を取得する。例えば、m1,m2は、それぞれ、Δp1,Δp2が0よりも小さい場合には0とされ、Δp1,Δp2が0以上の場合には1とされる。この場合、符号情報(m1,m2)のパターンは、(1,1)、(1,0)、(0,1)、(0,0)の4通りとなる。
補正データ出力部104cは、クラスコード#cおよび特徴抽出部104bで得られた符号情報(m1,m2)に基づいて、補正データΔq1〜Δq4を出力する。この補正データ出力部104cは、例えば、図示しない内蔵の記憶部に、図8に示すように、クラスコード#cおよび符号情報(m1,m2)の組み合わせのそれぞれにその組み合わせに対応した補正データΔq1〜Δq4を割り当てた補正データテーブルを備えており、この補正データテーブルより、クラス分類部102で得られたクラスコード#cおよび特徴抽出部104bで得られた符号情報(m1,m2)に対応した補正データΔq1〜Δq4を読み出して出力する。この補正データテーブルの生成方法については、後述する。
また、画像信号処理装置100は、補正データ算出部104で求められた補正データΔq1〜Δq4によって、データ生成部103で生成されたHD信号を構成する4個の画素データq1〜q4を補正するデータ補正部105を有している。このデータ補正部105は、図7に示すように、加算部105aで構成されている。加算部105aは、画素データq1〜q4のそれぞれに補正データΔq1〜Δq4を加算し、HD信号を構成する、補正後の画素データq1′〜q4′を出力する。ここで、q1′=q1+Δq1、q2′=q2+Δq2、q3′=q3+Δq3、q4′=q4+Δq4である。
次に、図1の画像信号処理装置100の動作を説明する。
SD信号がタップ抽出部101に供給される。タップ抽出部101では、SD信号が、水平方向に隣接する2個の画素データからなるブロックに分割され、ブロック毎に、このブロックに含まれる画素データp1,p2(図2参照)がクラスタップとして抽出される。
クラスタップ抽出部101で抽出されたクラスタップは、クラス分類部102に供給される。このクラス分類部102では、クラスタップが複数のクラスのうちのいずれかのクラスに分類され、このクラスタップに対応したクラスコード#cが得られる。この場合、クラスタップに含まれる画素データp1,p2をコンポーネントとするタップベクトル(p1,p2)が、クラス分類用コードブック(図4参照)を用いて、ベクトル量子化され、クラスタップに対応したクラスコード#cが得られる。
クラス分類部102で得られたクラスコード#cは、データ生成部103に供給される。このデータ生成部103では、クラスコード#cに基づいて、タップ抽出部101で抽出されたクラスタップに対応した、HD信号を構成する4個の画素データq1〜q4(図2参照)が生成される。この場合、クラスコード#cが、データ生成用コードブック(図5参照)を用いて、ベクトル逆量子化され、HD信号を構成する4個の画素データq1〜q4をコンポーネントとするHDコードベクトル(q1,q2,q3,q4)が得られる。
また、タップ抽出部101で抽出されたクラスタップおよびクラス分類部102で得られたクラスコード#cはそれぞれ補正データ算出部104に供給される。この補正データ算出部104では、クラスタップおよびクラスコード#cに基づいて、データ生成部103で得られたHD信号を構成する4個の画素データq1〜q4を補正する補正データΔq1〜Δq4が求められる。
この場合、クラスタップに含まれる画素データをコンポーネントとするタップベクトルとクラスコード#cに対応したSDコードベクトルとの減算が行われてSD誤差ベクトルが求められ、このSD誤差ベクトルを構成する各コンポーネントの値の正負の符号情報(m1,m2)およびクラスコード#cに基づいて、補正データテーブル(図8参照)から、対応する補正データΔq1〜Δq4が読み出されて出力される。
データ生成部103で生成された、クラスタップに対応した、HDコードベクトル、すなわちHD信号を構成する4個の画素データq1〜q4はデータ補正部105に供給される。また、このデータ補正部105には、補正データ算出部104から出力された補正データΔq1〜Δq4が供給される。データ補正部105では、画素データq1〜q4のそれぞれに補正データΔq1〜Δq4が加算され、HD信号を構成する、補正後の4個の画素データq1′〜q4′が得られる。つまり、出力すべきHD信号は、各クラスタップにそれぞれ対応した、補正後の4個の画素データq1′〜q4′により構成される。
このように、図1に示す画像信号処理装置100においては、SD信号をHD信号に変換する際に、SD信号を分割して得られる2個の画素データp1,p2からなるブロック毎に、このブロックに含まれる画素データからなるクラスタップのクラスコード#cに基づいて、HD信号を構成する4個の画素データq1〜q4を生成し、さらにこの生成された画素データq1〜q4を補正データΔq1〜Δq4により補正するものであり、SD信号をHD信号に良好に変換できる。この画像信号処理装置100は、例えば、テレビ受信機、画像信号再生装置等の画像信号を出力する装置等に適用できる。
またこの場合、クラスタップに含まれる画素データをコンポーネントとするタップベクトル(p1,p2)とクラスコード#cに対応したSDコードベクトル(P1,P2)との減算を行って求められたSD誤差ベクトル(Δp1,Δp2)に基づいて補正データΔq1〜Δq4を求めるものであり、この補正データΔq1〜Δq4を精度よく求めることができる。
またこの場合、クラスタップに含まれる画素データをコンポーネントとするタップベクトル(p1,p2)とクラスコード#cに対応したSDコードベクトル(P1,P2)との減算を行って求められたSD誤差ベクトル(Δp1,Δp2)を構成する各コンポーネントの値の範囲情報としての正負の符号情報(m1,m2)に基づいて補正データΔq1〜Δq4を求めるものであり、SD誤差ベクトル(Δp1,Δp2)を構成する各コンポーネントをそのまま用いる場合と比較して、例えば補正データテーブルの規模を縮小でき、かつ補正データΔq1〜Δq4を得るための処理を容易とできる。
すなわち、SD誤差ベクトル(Δp1,Δp2)を構成する各コンポーネントをそのまま用いる場合、各コンポーネントの値の組み合わせの全てに補正データΔq1〜Δq4を対応させた補正データテーブルを用いるとすれば、補正データΔq1〜Δq4を得るための処理は容易であるが、補正データテーブルの規模は非常に大きくなる。
一方、SD誤差ベクトル(Δp1,Δp2)を構成する各コンポーネントの値の代表の組み合わせに補正データΔq1〜Δq4を対応させた補正データテーブルを用いるとすれば、補正データテーブルの規模は小さくできるが、SD誤差ベクトル(Δp1,Δp2)を構成する各コンポーネントの値の組み合わせが代表の組み合わせのどれに該当するかの判定処理が必要となることから、補正データΔq1〜Δq4を得るための処理は難しくなる。
次に、上述したクラス分類部102のコードブック記憶部102aに記憶されるクラス分類用コードブック、およびデータ生成部103のコードブック記憶部103aに記憶されるデータ生成用コードブックを生成する装置について説明する。
図9は、クラス分類用コードブック及びデータ生成用コードブックを生成するコードブック生成装置200の構成を示している。
このコードブック生成装置200は、学習用データベース201を有している。この学習用データベース201には、HD信号に対応した教師信号としての学習用画像信号が記憶されている。
また、コードブック生成装置200は、第1のタップ抽出手段としての生徒データ生成部202を有している。この生徒データ生成部202は、学習用画像信号(教師信号)の画素データ数を水平方向に1/2となるように間引きフィルタ(ローパスフィルタ)を用いて間引き、SD信号に対応した生徒信号を得、この生徒信号を水平方向に隣接する2個の画素データp1,p2(図2参照)からなる第1のブロックに分割し、ブロック毎に、この第1のブロックに含まれる画素データを第1のタップ(生徒データ)として抽出する。
また、コードブック生成装置200は、第2のタップ抽出手段としての教師データ生成部203を有している。この教師データ生成部203は、学習用画像信号(教師信号)を、上述した生徒データ生成部202で分割して得られる第1のブロックに対応した、水平方向に隣接する4個の画素データq1〜q4(図2参照)からなる第2のブロックに分割し、ブロック毎に、この第2のブロックに含まれる画素データを第2のタップ(教師データ)として抽出する。
ここで、生徒データ生成部202で抽出される1個の第1のタップ(生徒データ)と、これに対応する、教師データ生成部203で抽出される1個の第2のタップ(教師データ)とで、1個の学習対データが構成される。このコードブック生成装置200では、複数個の学習対データを用いて、クラス分類用コードブックおよびデータ生成用コードブックが生成される。
なお、生徒データ生成部202は、学習用画像信号(教師信号)の画素データ数を水平方向に1/2となるように間引いてSD信号に対応した生徒信号を得て用いるものであるが、学習用データベース201にSD信号に対応した生徒信号としての学習用画像信号も記憶しておき、この学習用画像信号(生徒信号)を用いる構成としてもよい。
また、コードブック生成装置200は、生徒データ生成部202で抽出された各第1のタップ(生徒データ)と教師データ生成部203で抽出された各第2のタップ(教師データ)とからなる、複数個の学習対データを記憶する学習対記憶部204を有している。
図10は、学習対記憶部204に記憶される学習対データを示している。この学習対記憶部204には、4画素単位の教師データq1〜q4と、その教師データq1〜q4に対応する2画素単位の生徒データp1,p2との組み合わせである学習対データが記憶される。なお、図10では、N個の学習対データが記憶されている。この図において、教師データq1(i)〜q4(i)および生徒データp1(i),p2(i)における括弧()内の変数iは、そのデータがi番目の学習対データを構成していることを表している。
また、コードブック生成装置200は、クラス分類用コードブック生成部205を有している。このコードブック生成部205は、学習対記憶部204から学習対データを順次読み出し、その学習対データのうちの生徒データを用いて、クラス分類用コードブックを生成する。
この場合、生徒データに含まれる2個の画素データp1,p2をコンポーネントとするタップベクトル(p1,p2)を用いて、例えばLBG(Linde Buzo Gray)アルゴリズムに従い、クラス分類用コードブックを生成する。このクラス分類用コードブックは、コードブック生成部205に内蔵された図示しない記憶部に記憶され、必要に応じてこの記憶部から読み出されて使用される。このクラス分類用コードブックは、上述の図3のコードブック記憶部102aに記憶されて使用されるものであり、図4に示すように、複数のクラスのそれぞれについて、各クラスを代表する、SD信号についての代表ベクトルとしてのSDコードベクトル(P1,P2)に、対応するクラスを示すクラスコード(SDコード)#cを割り当てた割り当て情報である。
また、コードブック生成装置200は、クラス分類部206を有している。このクラス分類部206は、上述した図3のベクトル量子化部102bと同様に構成されており、学習対記憶部204から学習対データを順次読み出し、その学習対データのうちの生徒データをクラス分類する。
この場合、コードブック生成部205の記憶部に記憶されているクラス分類用コードブックに基づいて、生徒データに含まれる2個の画素データp1,p2をコンポーネントとするタップベクトル(p1,p2)および複数のクラスのSDコードベクトル(P1,P2)との距離を求め、この距離を最小にするSDコードベクトル(P1,P2)に割り当てられたクラスコード#cを出力する。
なお、このクラス分類部206は、生徒データを分類して得られたクラスコード#cを、対応する学習対データと共に出力する。
また、コードブック生成装置200は、コード対教師データ記憶部207を有している。この記憶部207は、クラス分類部206より出力される学習対データから教師データを抽出し、その教師データと、その学習対データと共にクラス分類部206から出力されるクラスコード#cとを対応付けたコード対教師データを生成して記憶する。
図11は、記憶部207に記憶されるコード対教師データを示している。このコード対教師データにおいては、生徒データのクラスを表すクラスコード#cと、その生徒データに対応する、4画素単位の教師データq1〜q4とが対応付けられている。なお、図11に示すコード対教師データは、図10に示す学習対データに対応したものとなっている。すなわち、図11において、教師データq1(i)〜q4(i)は、図10に示したものと同一であり、i番目の教師データq1(i)〜q4(i)に対応付けられているクラスコード#ciは、図10のi番目の生徒データp1(i),p2(i)のクラスコードである。
また、コードブック生成装置200は、データ生成用コードブック生成部208を有している。このコードブック生成部208は、コード対教師データ記憶部207からコード対教師データを順次読み出し、そのコード対教師データを用いて、データ生成用コードブックを生成する。
この場合、コードブック生成部208は、例えば、コード対教師データから、同一のクラスコード#cの教師データを求め、さらに、求められた各教師データに含まれる画素データをコンポーネントとする各ベクトルの重心を求める。具体的には、例えば、同一のクラスコード#cの教師データがM個存在するとして、そのm番目の教師データに係るベクトルを、(q1(m),q2(m),q3(m),q4(m))と表すこととすると、コードブック生成部208は、(Σq1(m)/M,Σq2(m)/M,Σq3(m)/M,Σq4(m)/M)で表される、クラスコード#cの教師データに係る重心ベクトルを求める。ここで、Σは、mを1からMに変えてのサメーションを表している。
そして、コードブック生成部208は、クラスコード#cの教師データに係る重心ベクトルを、クラスコード#cで表されるクラスを代表する、HD信号についてのコードベクトル(HDコードベクトル)(Q1,Q2,Q3,Q4)として、クラスコード#cに対応付け、データ生成用コードブックを生成する。
このデータ生成用コードブックは、コードブック生成部208に内蔵された図示しない記憶部に記憶され、必要に応じてこの記憶部から読み出されて使用される、このデータ生成用コードブックは、上述の図3のコードブック記憶部103aに記憶されて使用されるものであり、図5に示すように、各クラスコード#cに、HD信号についての代表ベクトルとしてのHDコードベクトル(Q1,Q2,Q3,Q4)を割り当てた割り当て情報である。
次に、図9に示すコードブック生成装置200の動作を説明する。
学習用データベース201に記憶されているHD信号に対応した教師信号としての学習用画像信号が生徒データ生成部202に供給される。この生徒データ生成部202では、学習用画像信号(教師信号)に基づいて、第1のタップ(生徒データ)が抽出される。
すなわち、学習用画像信号の画素データ数が水平方向に1/2となるように間引きフィルタを用いて間引かれ、SD信号に対応した生徒信号が得られ、さらにこの生徒信号が水平方向に隣接する2個の画素データp1,p2(図2参照)からなる第1のブロックに分割され、ブロック毎に、この第1のブロックに含まれる画素データが第1のタップ(生徒データ)として抽出される。
また、学習用データベース201に記憶されているHD信号に対応した教師信号としての学習用画像信号が教師データ生成部203に供給される。この教師データ生成部203では、学習用画像信号(教師信号)に基づいて、第2のタップ(教師データ)が抽出される。すなわち、学習用画像信号(教師信号)が、上述した生徒データ生成部202で分割して得られる第1のブロックに対応した、水平方向に隣接する4個の画素データq1〜q4(図2参照)からなる第2のブロックに分割され、ブロック毎に、この第2のブロックに含まれる画素データが第2のタップ(教師データ)として抽出される。
生徒データ生成部202で抽出された各第1のタップ(生徒データ)および教師データ生成部203で抽出された各第2のタップ(教師データ)は学習対記憶部204に供給される。この学習対記憶部204には、各第1のタップ(生徒データ)と各第2のタップ(教師データ)とからなる、複数個の学習対データ(図10参照)が記憶される。
そして、クラス分類用コードブック生成部205では、学習対記憶部204から学習対データが順次読み出され、その学習対データのうちの生徒データが使用され、その生徒データ(第1のタップ)に含まれる2個の画素データp1,p2をコンポーネントとするタップベクトル(p1,p2)を用いて、例えばLBGアルゴリズムに従い、クラス分類用コードブック(図4参照)が生成される。
このクラス分類用コードブックは、上述の図3のコードブック記憶部102aに記憶されて使用されるものである。このクラス分類用コードブックは、コードブック生成部205に内蔵された記憶部に記憶され、必要に応じてこの記憶部から読み出されて使用される。
また、クラス分類部206では、学習対記憶部204から学習対データが順次読み出され、その学習対データのうちの生徒データが、複数のクラスのうちのいずれかのクラスに分類され、クラスコード#cが得られる。この場合、生徒データ(第1のタップ)に含まれる画素データp1,p2をコンポーネントとするタップベクトル(p1,p2)が、コードブック生成部205の記憶部に記憶されているクラス分類用コードブックを用いて、ベクトル量子化され、生徒データに対応したクラスコード#cが得られる。
クラス分類部206からは、生徒データを分類して得られたクラスコード#cが、対応する学習対データと共に出力され、これらはコード対教師データ記憶部207に供給される。この記憶部207では、クラス分類部206から出力される学習対データから教師データが抽出され、その教師データと、その学習対データと共にクラス分類部206から出力されるクラスコード#cとを対応付けたコード対教師データ(図11参照)が生成されて記憶される。
そして、データ生成用コードブック生成部208では、コード対教師データ記憶部207からコード対教師データが順次読み出され、そのコード対教師データを用いて、データ生成用コードブック(図5参照)が生成される。
この場合、コードブック生成部208では、例えば、コード対教師データから、同一のクラスコード#cの教師データが求められ、さらに、求められた各教師データに含まれる画素データをコンポーネントとする各ベクトルの重心が求められる。そして、コードブック生成部208では、クラスコード#cの教師データに係る重心ベクトルが、クラスコード#cで表されるクラスを代表する、HD信号についてのコードベクトル(HDコードベクトル)(Q1,Q2,Q3,Q4)として、クラスコード#cに対応付けられ、これによりデータ生成用コードブックが生成される。
このデータ生成用コードブックは、上述の図3のコードブック記憶部103aに記憶されて使用されるものである。このデータ生成用コードブックは、コードブック生成部208に内蔵された記憶部に記憶され、必要に応じてこの記憶部から読み出されて使用される。
このように、図9に示すコードブック生成装置200によれば、図1の画像信号処理装置100で使用されるクラス分類用コードブックおよびデータ生成用コードブックを良好に生成できる。
なお、図9に示すコードブック生成装置200においては、クラス分類用コードブック生成部205では、例えばLBGアルゴリズムに従い、コードブックを生成するものを示したが、このコードブックを、ベクトル量子化に用いられるコードブック生成に利用される手法以外の手法で生成してもよい。
すなわち、クラス分類用コードブックは、例えば、図12に示すようにして生成することが可能である。
ここで、図12においては、生徒データ(第1のタップ)に含まれる2個の画素データp1,p2を表現する2次元空間(SD画像空間)が格子状に区切られることにより、矩形状の領域r(i,j)が構成されている、なお、図12では、画素データp1,p2の画素値が、それぞれ横軸と縦軸に取られている。
本実施の形態では、画素データp1,p2は、上述したように、8ビットのデータであるから、SD画像空間における横軸および縦軸が取り得る値は、0〜255(=28−1)である。また、図12において、r(i,j)は、SD画像空間において、左からi番目で、下からj番目の領域を表し、各領域r(i,j)には、クラスを表すユニークなクラスコード#cが割り当てられている。
クラス分類用コードブック生成部205は、各領域r(i,j)について、その領域r(i,j)内に含まれる生徒データを求め、さらに、例えば、各生徒データに含まれる画素データをそれぞれコンポーネントとする各ベクトルの重心を求める。すなわち、いま、領域r(i,j)内に含まれる生徒データがK個あり、そのk番目の生徒データを、p1,r(i,j)(k),p2,r(i,j)(k)と表すと、クラス分類用コードブック生成部205は、(Σp1,r(i,j)(k)/K,Σp,r(i,j)(k)/K)で表される、領域r(i,j)に割り当てられたクラスコード#cの生徒データに係る重心ベクトルを求める。ここで、Σは、kを1からKに変えてのサメーションを表している。
そして、クラス分類用コードブック生成部205は、クラスコード#cの生徒データに係る重心ベクトルを、そのクラスコード#cで表されるクラスを代表する、SD信号についてのSDコードベクトル(P1,P2)として、クラスコード#cに対応付ける。これにより、図4に示すような、クラス分類用コードブックが生成される。
次に、上述した補正データ算出部104の補正データ出力部104cに備えられている補正データテーブルを生成する装置について説明する。
図13は、補正データテーブルを生成する補正データテーブル生成装置300の構成を示している。
このテーブル生成装置300は、学習用データベース301を有している。この学習用データベース301には、HD信号に対応した教師信号としての学習用画像信号が記憶されている。この学習用データベース301に記憶されている学習用画像信号は、図9の学習用データベース201に記憶されている学習用画像信号と必ずしも同一の画像信号である必要はない。
また、テーブル生成装置300は、第1のタップ抽出手段としての生徒データ生成部302、第2のタップ抽出手段としての教師データ生成部303および学習対データを記憶する学習対記憶部304を有している。詳細説明は省略するが、これらは、図9のコードブック生成装置200における生徒データ生成部202、教師データ生成部203および学習対記憶部204とそれぞれ同様に構成され、同様の処理を行うものである。
また、テーブル生成装置300は、クラス分類部305を有している。このクラス分類部305は、学習対記憶部304から学習対データを順次読み出し、その学習対データのうちの生徒データをクラス分類する。クラス分類部305には、図9のコードブック生成装置200を用いて予め生成されたクラス分類用コードブックが記憶されている。
クラス分類部305は、そのクラス分類用コードブックに基づいて、生徒データに含まれる2個の画素データp1,p2をコンポーネントとするタップベクトル(p1,p2)および複数のクラスのSDコードベクトル(P1,P2)との距離を求め、この距離を最小にするSDコードベクトル(P1,P2)に割り当てられたクラスコード#cを出力する。
なお、このクラス分類部305は、学習対データにおける生徒データのクラス分類を行うことにより得られるクラスコード#cを出力する他、そのクラスコード#cに対応したSDコードベクトル(P1,P2)も出力するようなっている。
また、テーブル生成装置300は、データ生成部306を有している。このデータ生成部306は、図3のデータ生成部103と同様に構成されている。このデータ生成部306は、クラス分類部305で得られたクラスコード#cに基づいて、生徒データに対応した、HDコードベクトル(Q1,Q2,Q3,Q4)を生成する。この場合、データ生成部306は、例えば、図9のコードブック生成装置200を用いて予め生成されたデータ生成用コードブックを記憶しており、クラスコード#cを、このデータ生成用コードブックを用いて、ベクトル逆量子化し、HDコードベクトル(Q1,Q2,Q3,Q4)を求める。
また、テーブル生成装置300は、第2の誤差演算手段としてのHD誤差演算部307を有している。このHD誤差演算部307は、データ生成部306から供給されるHDコードベクトル(Q1,Q2,Q3,Q4)を生成するのに用いられた学習対データにおける教師データを、学習対記憶部304から読み出し、その教師データに含まれる画素データq1〜q4をコンポーネントとするタップベクトル(q1,q2,q3,q4)からHDコードベクトル(Q1,Q2,Q3,Q4)を減算したHD誤差ベクトル(Δq1,Δq2,Δq3,Δq4)を求める。ここで、Δq1=q1−Q1、Δq2=q2−Q2、Δq3=q3−Q3、Δq4=q4−Q4である。
また、テーブル生成装置300は、第1の誤差演算手段としてのSD誤差演算部308を有している。このSD誤差演算部308は、クラス分類部305より出力されるクラスコード#cを得るために用いられた生徒データを学習対記憶部304から読み出し、その生徒データに含まれる画素データp1,p2をコンポーネントとするタップベクトル(p1,p2)からそのクラスコード#cが表すクラスのSDコードベクトル(P1,P2)を減算したSD誤差ベクトル(Δp1,Δp2)を求める。ここで、Δp1=p1−P1、Δp2=p2−P2である。
また、テーブル生成装置300は、範囲情報取得手段としての符号クラス分類部309を有している。この符号クラス分類部309は、SD誤差演算部308で求められたSD誤差ベクトル(Δp1,Δp2)を構成する各コンポーネントの値の範囲情報を求める。ここでは、上述した図1の画像信号処理装置100の補正データ算出部104における特徴抽出部104bでの処理と同様に、各コンポーネントΔp1,Δp2の値の取り得る範囲を正および負の2つの範囲に分割し、この範囲情報として、各コンポーネントΔp1,Δp2の値の正負の符号情報(m1,m2)を取得する。例えば、m1,m2は、それぞれ、Δp1,Δp2が0よりも小さい場合には0とされ、Δp1,Δp2が0以上の場合には1とされる。
また、係数データ生成装置300は、学習部310を有している。この学習部310は、符号クラス分類部309で得られた、全ての学習対データについての符号情報(m1,m2)と、HD誤差演算部307で得られた、全ての学習対データについてのHD誤差ベクトル(Δq1,Δq2,Δq3,Δq4)と、クラス分類部305で得られた、全ての学習対データについてのクラスコード#cとを用いた学習により、クラスコード#cおよび符号情報(m1,m2)の組み合わせのそれぞれに、その組み合わせに対応した補正データΔq1〜Δq4を割り当てた補正データテーブル(図8参照)を生成する。
この場合、学習部310は、例えば、クラスコード#cおよび符号情報(m1,m2)の同一の組み合わせに該当するHD誤差ベクトル(Δq1,Δq2,Δq3,Δq4)を求め、さらにそのHD誤差ベクトルの重心を求める。具体的には、例えば、クラスコード#cおよび符号情報(m1,m2)の同一の組み合わせに該当するHD誤差ベクトルがN個存在するとして、そのn番目のHD誤差ベクトルを(Δq1(n),Δq2(n),Δq3(n),Δq4(n))と表すこととすると、学習部310は、(ΣΔq1(n)/N,ΣΔq2(n)/N,ΣΔq3(n)/N,ΣΔq4(n)/N)で表される、当該組み合わせに該当するHD誤差ベクトルの重心を求める。そして、学習部310は、この重心のベクトルを構成するコンポーネントΣΔq1(n)/N〜ΣΔq4(n)/Nのそれぞれを、当該組み合わせの補正データΔq1〜Δq4とする。
次に、図13に示す補正データテーブル生成装置300の動作を説明する。
学習用データベース301に記憶されているHD信号に対応した教師信号としての学習用画像信号が生徒データ生成部302に供給される。この生徒データ生成部302では、学習用画像信号(教師信号)に基づいて、第1のタップ(生徒データ)が抽出される。
すなわち、学習用画像信号の画素データ数が水平方向に1/2となるように間引きフィルタを用いて間引かれ、SD信号に対応した生徒信号が得られ、さらにこの生徒信号が水平方向に隣接する2個の画素データp1,p2(図2参照)からなる第1のブロックに分割され、ブロック毎に、この第1のブロックに含まれる画素データが第1のタップ(生徒データ)として抽出される。
また、学習用データベース301に記憶されているHD信号に対応した教師信号としての学習用画像信号が教師データ生成部303に供給される。この教師データ生成部303では、学習用画像信号(教師信号)に基づいて、第2のタップ(教師データ)が抽出される。すなわち、学習用画像信号(教師信号)が、上述した生徒データ生成部302で分割して得られる第1のブロックに対応した、水平方向に隣接する4個の画素データq1〜q4(図2参照)からなる第2のブロックに分割され、ブロック毎に、この第2のブロックに含まれる画素データが第2のタップ(教師データ)として抽出される。
生徒データ生成部302で抽出された各第1のタップ(生徒データ)および教師データ生成部303で抽出された各第2のタップ(教師データ)は学習対記憶部304に供給される。この学習対記憶部304には、各第1のタップ(生徒データ)と各第2のタップ(教師データ)とからなる、複数個の学習対データ(図10参照)が記憶される。
そして、クラス分類部305では、学習対記憶部304から学習対データが順次読み出され、その学習対データのうちの生徒データが、複数のクラスのうちのいずれかのクラスに分類され、クラスコード#cが得られる。この場合、生徒データ(第1のタップ)に含まれる画素データp1,p2をコンポーネントとするタップベクトル(p1,p2)が、クラス分類用コードブック(図4参照)を用いて、ベクトル量子化され、生徒データに対応したクラスコード#cが得られる。
このクラス分類部305からは、学習対データにおける生徒データのクラス分類を行うことにより得られるクラスコード#cを出力する他、そのクラスコード#cに対応したSDコードベクトル(P1,P2)も出力される。クラス分類部305で得られたクラスコード#cはデータ生成部306に供給される。
データ生成部306では、クラスコード#cに基づいて、生徒データに対応した、HDコードベクトル(Q1,Q2,Q3,Q4)が求められる。この場合、クラスコード#cが、データ生成用コードブック(図5参照)を用いて、ベクトル逆量子化され、HDコードベクトル(Q1,Q2,Q3,Q4)が得られる。
データ生成部306で得られたHDコードベクトル(Q1,Q2,Q3,Q4)は、HD誤差演算部307に供給される。このHD誤差演算部307には、さらに、データ生成部306から供給されるHDコードベクトル(Q1,Q2,Q3,Q4)を生成するのに用いられた学習対データにおける教師データも、学習対記憶部304から読み出されて供給される。このHD誤差演算部307では、教師データに含まれる画素データq1〜q4をコンポーネントとするタップベクトル(q1,q2,q3,q4)からHDコードベクトル(Q1,Q2,Q3,Q4)が減算され、HD誤差ベクトル(Δq1,Δq2,Δq3,Δq4)が求められる。
また、クラス分類部305より出力された、当該クラス分類部305で得られたクラスコード#cに対応するSDコードベクトル(P1,P2)は、SD誤差演算部308に供給される。このSD誤差演算部308には、さらに、クラス分類部305より出力されるクラスコード#cを得るために用いられた、生徒データが、学習対記憶部304から読み出されて供給される。このSD誤差演算部308では、生徒データに含まれる画素データp1,p2をコンポーネントとするタップベクトル(p1,p2)からSDコードベクトル(P1,P2)が減算されて、SD誤差ベクトル(Δp1,Δp2)が求められる。
SD誤差演算部308で求められたSD誤差ベクトル(Δp1,Δp2)は、符号クラス分類部309に供給される。この符号クラス分類部309では、SD誤差ベクトル(Δp1,Δp2)を構成する各コンポーネントΔp1,Δp2の値の正負の符号情報(m1,m2)が取得される。ここで、m1,m2は、それぞれ、Δp1,Δp2が0よりも小さい場合には0とされ、Δp1,Δp2が0以上の場合には1とされる。
符号クラス分類部309で取得された符号情報(m1,m2)は、学習部310に供給される。この学習部310には、さらに、クラス分類部305で得られたクラスコード#cおよびHD誤差演算部307で求められたHD誤差ベクトル(Δq1,Δq2,Δq3,Δq4)も供給される。この学習部310では、全ての学習対データについての、符号情報(m1,m2)、HD誤差ベクトル(Δq1,Δq2,Δq3,Δq4)およびクラスコード#cを用いた学習により、クラスコード#cおよび符号情報(m1,m2)の組み合わせのそれぞれに、その組み合わせに対応した補正データΔq1〜Δq4を割り当てた補正データテーブル(図8参照)が生成される。
この場合、例えば、クラスコード#cおよび符号情報(m1,m2)の組み合わせ毎に、その組み合わせに該当するHD誤差ベクトル(Δq1,Δq2,Δq3,Δq4)の重心が求められ、この求められた重心のベクトルを構成するコンポーネントがその組み合わせの補正データΔq1〜Δq4として用いられる。
本実施の形態では、SD信号に基づいてクラス分類を行い、さらに各クラスごとに、例えばタップベクトル(p1,p2)とコードベクトル(P1,P2)との輝度信号のレベル方向の誤差(Δp1,Δp2)の正負の符号情報に基づき、クラス化をする構成となっている。
このような構成とすることで、例えばSD誤差信号(Δp1,Δp2)とHD誤差信号(Δq1,Δq2,Δq3,Δq4)のように対応するもの同士を一対一で対応づけて得られる誤差補正データテーブルと同等の効果を奏するテーブル生成に関し、はるかに小さいサイズの誤差補正テーブルを生成することが可能であり、またそれを生成するのに要する計算量も少なく出来る。
なぜなら、例えば輝度信号で考えた場合に、SD誤差信号とHD誤差信号を一対一に対応付けた誤差補正テーブルでは、誤差信号の正負を考慮して、この実施例の場合は各SDタップベクトルを一つのクラスと考えた場合に、511×511のクラスが存在することとなる。これに対し、本実施の形態の場合では、SD信号から抽出されたタップベクトル(p1,p2)に基づくクラス分類を行い、統計的に学習するような構成になっているため、任意のクラス数が設定できる。その結果、トータルのクラス数を減らすことが出来るという効果を有する。
例えば本実施の形態を例とすると、クラスコード数×4がトータルのクラス数となり、テーブル生成にあたり、計算量も少なくて済み、またテーブルのサイズを小さくすることができることが分かる。
また、統計的な学習をする構成を採用することにより、上述の一対一対応の誤差補正テーブルと比較して、誤差補正に関してロバスト性を向上させることができるという効果もある。
なお、上述した図1の画像信号処理装置100における処理を、例えば図14に示すような画像信号処理装置(コンピュータ)500によって、ソフトウェアにより行うこともできる。
まず、図14に示す画像信号処理装置500について説明する。この画像信号処理装置500は、装置全体の動作を制御するCPU501と、このCPU501の制御プログラムやコードブック、補正データテーブル等が格納されたROM(Read Only Memory)502と、CPU501の作業領域を構成するRAM(Random Access Memory)503とを有している。これらCPU501、ROM502およびRAM503は、それぞれバス504に接続されている。
また、画像信号処理装置500は、外部記憶装置としてのハードディスクドライブ(HDD)505と、フレキシブルディスク、CD−ROM(Compact Disc Read only Memory)、MO(Magneto Optical)ディスク、DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体を取り扱うドライブ506とを有している。これらドライブ505,506は、それぞれバス504に接続されている。
また、画像信号処理装置500は、インターネット等の通信網507に有線または無線で接続する通信部508を有している。この通信部508は、インタフェース509を介してバス504に接続されている。
また、画像信号処理装置500は、ユーザインタフェース部を備えている。このユーザインタフェース部は、リモコン送信機510からのリモコン信号RMを受信するリモコン信号受信回路511と、CRT(Cathode-Ray Tube)、LCD(liquid Crystal Display)等からなるディスプレイ513とを有している。受信回路511はインタフェース512を介してバス504に接続され、同様にディスプレイ513はインタフェース514を介してバス504に接続されている。
また、画像信号処理装置500は、SD信号を入力するための入力端子515と、HD信号を出力するための出力端子517とを有している。入力端子515はインタフェース516を介してバス504に接続され、同様に出力端子517はインタフェース518を介してバス504に接続される。
ここで、上述したようにROM502に制御プログラムやコードブック、補正データテーブル等を予め格納しておく代わりに、例えばインターネットなどの通信網507より通信部508を介してダウンロードし、ハードディスクドライブ505やRAM303に格納して使用することもできる。また、これら制御プログラムやコードブック等をリムーバブル記録媒体で提供するようにしてもよい。
また、処理すべきSD信号を入力端子515より入力する代わりに、リムーバブル記録媒体で供給し、あるいはインターネットなどの通信網507より通信部508を介してダウンロードしてもよい。また、処理後のHD信号を出力端子517に出力する代わり、あるいはそれと並行してディスプレイ513に供給して画像表示をしたり、さらにはハードディスクドライブ505に格納したり、通信部508を介してインターネットなどの通信網507に送出するようにしてもよい。
図15のフローチャートを参照して、図9に示す画像信号処理装置500における、SD信号からHD信号を得るための処理手順を説明する。
まず、ステップST11で、処理を開始し、ステップST12で、例えば入力端子515より装置内に1フレーム分または1フィールド分のSD信号を入力する。このように入力されるSD信号はRAM503に一時的に記憶される。
そして、ステップST13で、SD信号の全フレームまたは全フィールドの処理が終わっているか否かを判定する。処理が終わっているときは、ステップST14で、処理を終了する。一方、処理が終わっていないときは、ステップST15に進む。
ステップST15では、SD信号を、水平方向に隣接する2個の画素データからなるブロックに分割し、ブロック毎に、このブロックに含まれる画素データp1,p2(図2参照)をクラスタップとして抽出する。
そして、ステップST16で、ステップST15で抽出されたクラスタップに基づいて、このクラスタップを複数のクラスのうちのいずれかのクラスに分類してクラスコード#cを求める。この場合、クラスタップに含まれる画素データp1,p2をコンポーネントとするタップベクトル(p1,p2)を、ROM502に格納されているクラス分類用コードブック(図4参照)を用いて、ベクトル量子化し、クラスタップに対応したクラスコード#cを求める。
次に、ステップST17で、ステップST16で得られたクラスコード#cに基づいて、ステップST15で抽出されたクラスタップに対応した、HD信号を構成する4個の画素データq1〜q4(図2参照)を生成する。この場合、クラスコード#cを、ROM502に格納されているデータ生成用コードブック(図5参照)を用いて、ベクトル逆量子化し、HD信号を構成する4個の画素データq1〜q4をコンポーネントとするHDコードベクトル(q1,q2,q3,q4)を求める。
次に、ステップST18で、ステップST15で抽出されたクラスタップに含まれる画素データp1,p2をコンポーネントとするタップベクトル(p1,p2)とクラスコード#cに対応したSDコードベクトル(P1,P2)(図4参照)との減算を行ってSD誤差ベクトル(Δp1,Δp2)を求め、そして、このSD誤差ベクトル(Δp1,Δp2)を構成する各コンポーネントΔp1,Δp2の値の正負の符号情報(m1,m2)を取得する。
そして、ステップST19で、ステップST16で得られたクラスコード#cおよびステップST18で取得された符号情報(m1,m2)に対応した補正データΔq1〜Δq4を取得する。この場合、ROM502に格納されている補正データテーブル(図8参照)から、当該クラスコード#cおよび符号情報(m1,m2)の組み合わせに対応した補正データΔq1〜Δq4を読み出すことで、補正データΔq1〜Δq4を取得する。
次に、ステップST20で、ステップST17で生成されたHD信号を構成する4個の画素データq1〜q4のそれぞれに対して、ステップST19で取得された補正データΔq1〜Δq4を加算して補正し、HD信号を構成する、補正後の4個の画素データq1′〜q4′を得る。
次に、ステップST21で、ステップST12で入力された1フレーム分または1フィールド分のSD信号の画素データの全領域において、HD信号の画素データを得る処理が終了したか否かを判定する。終了しているときは、ステップST12に戻り、次の1フレーム分または1フィールド分のSD信号の入力処理に移る。一方、処理が終了していないときは、ステップST15に戻って、次のクラスタップについての処理に移る。
このように、図15に示すフローチャートに沿って処理をすることで、図1に示す画像信号処理装置100と同様の手法によって、SD信号からHD信号を得ることができる。このように処理して得られたHD信号は出力端子517に出力されたり、ディスプレイ513に供給されてそれによる画像が表示されたり、さらにはハードディスクドライブ505に供給されて記録されたりする。
また、処理装置の図示は省略するが、図9に示すコードブック生成装置200における処理も、ソフトウェアにより行うこともできる。
図16のフローチャートを参照して、クラス分類用コードブックおよびデータ生成用コードブックを生成するための処理手順を説明する。
まず、ステップST31で処理を開始し、ステップST32で、HD信号に対応した教師信号を1フレーム分または1フィールド分だけ入力する。そして、ステップST33で、ステップST32で入力された教師信号から、SD信号に対応した生徒信号を生成する。この場合、HD信号に対応した教師信号の画素データ数を水平方向に1/2となるように間引いて、SD信号に対応した生徒信号を生成する。
次に、ステップST34で、ステップST33で生成された生徒信号に基づいて、生徒データとしての第1のタップを抽出する。この場合、生徒信号を水平方向に隣接する2個の画素データp1,p2(図2参照)からなる第1のブロックに分割し、ブロック毎に、この第1のブロックに含まれる画素データを第1のタップとして抽出する。
次に、ステップST35で、ステップST32で入力された教師信号に基づいて、教師データとしての第2のタップを抽出する。この場合、教師信号を、上述したステップST34で分割して得られる第1のブロックに対応した、水平方向に隣接する4個の画素データq1〜q4(図2参照)からなる第2のブロックに分割し、ブロック毎に、この第2のブロックに含まれる画素データを第2のタップとして抽出する。
このステップST34およびステップST35の処理により、1フレーム分または1フィールド分の教師信号および生徒信号から、複数個の学習対データ(図10参照)が生成される。因みに、1個の学習対データは、1個の生徒データおよび1個の教師データで構成される。
次に、ステップST36で、教師信号の全フレームまたは全フィールドの処理が終了したか否かを判定する。終了していないときは、ステップST32に戻って、次の1フレーム分または1フィールド分の教師信号の入力を行って、上述したと同様の処理を繰り返す。一方、終了しているときは、ステップST37に進む。
ステップST37では、クラス分類用コードブックを生成する。この場合、ステップST32〜ステップST36の処理で生成された複数個の学習対データを構成する複数個の生徒データに基づき、この生徒データに含まれる2個の画素データp1,p2をコンポーネントとするタップベクトル(p1,p2)を用いて、例えばLBGアルゴリズムに従い、クラス分類用コードブック(図4参照)を生成する。
次に、ステップST38で、ステップST32〜ステップST36の処理で生成された複数個の学習対データを構成する複数個の生徒データのそれぞれを、複数のクラスのうちのいずれかのクラスに分類し、各生徒データに対応したクラスコード#cを求める。さらに、このステップST38では、このように求められた各生徒データに対応したクラスコード#cと、当該各生徒データに対となっている各教師データとを対応付けたコード対教師データ(図11参照)を生成する。
次に、ステップST39で、ステップST38で生成されたコード対教師データに基づき、同一クラスコード#cに割り当てられている教師データを用いて、データ生成用コードブック(図5参照)を生成する。この場合、同一のクラスコード#cに該当する各教師データに含まれる画素データをコンポーネントとするベクトルの重心を求め、その重心ベクトルを、そのクラスコード#cで表されるクラスを代表する、HD信号についてのコードベクトル(HDコードベクトル)(Q1,Q2,Q3,Q4)として、そのクラスコード#cに対応付ける。
ステップST39の処理の後に、ステップST40で、処理を終了する。
このように、図16に示すフローチャートに沿って処理をすることで、図9に示すコードブック生成装置200と同様の手法によって、クラス分類用コードブックおよびデータ生成用コードブックを生成できる。
また、処理装置の図示は省略するが、図13に示す補正データテーブル生成装置300における処理も、ソフトウェアにより行うこともできる。図16のフローチャートを参照して、補正データテーブルを生成するための処理手順を説明する。
まず、ステップST51で処理を開始し、ステップST52で、HD信号に対応した教師信号を1フレーム分または1フィールド分だけ入力する。そして、ステップST53で、ステップST52で入力された教師信号から、SD信号に対応した生徒信号を生成する。この場合、HD信号に対応した教師信号の画素データ数を水平方向に1/2となるように間引いて、SD信号に対応した生徒信号を生成する。
次に、ステップST54で、ステップST53で生成された生徒信号に基づいて、生徒データとしての第1のタップを抽出する。この場合、生徒信号を水平方向に隣接する2個の画素データp1,p2(図2参照)からなる第1のブロックに分割し、ブロック毎に、この第1のブロックに含まれる画素データを第1のタップとして抽出する。
次に、ステップST55で、ステップST52で入力された教師信号に基づいて、教師データとしての第2のタップを抽出する。この場合、教師信号を、上述したステップST54で分割して得られる第1のブロックに対応した、水平方向に隣接する4個の画素データq1〜q4(図2参照)からなる第2のブロックに分割し、ブロック毎に、この第2のブロックに含まれる画素データを第2のタップとして抽出する。
このステップST54およびステップST55の処理により、1フレーム分または1フィールド分の教師信号および生徒信号から、複数個の学習対データ(図10参照)が生成される。因みに、1個の学習対データは、1個の生徒データおよび1個の教師データで構成される。
次に、ステップST56で、教師信号の全フレームまたは全フィールドの処理が終了したか否かを判定する。終了していないときは、ステップST52に戻って、次の1フレーム分または1フィールド分の教師信号の入力を行って、上述したと同様の処理を繰り返す。一方、終了しているときは、ステップST57に進む。
ステップST57では、ステップST52〜ステップST56の処理で生成された複数個の学習対データから、着目学習対データを選択する。そして、ステップST58で、着目学習対データを構成する生徒データを、複数のクラスのうちのいずれかのクラスに分類し、クラスコード#cを得る。この場合、生徒データに含まれる画素データp1,p2をコンポーネントとするタップベクトル(p1,p2)を、クラス分類用コードブック(図4参照)を用いて、ベクトル量子化し、生徒データに対応したクラスコード#cを取得する。また、このステップST58では、クラス分類用コードブックに基づいて、その取得されたクラスコード#cに対応したSDコードベクトル(P1,P2)も取得する。
そして、ステップST59で、着目学習対データを構成する生徒データに含まれる画素データp1,p2をコンポーネントとするタップベクトル(p1,p2)からステップST58で得られたSDコードベクトル(P1,P2)を減算して、SD誤差ベクトル(Δp1,Δp2)を求める。そして、このステップST59で、さらにそのSD誤差ベクトル(Δp1,Δp2)を構成する各コンポーネントΔp1,Δp2の値の正負の符号情報(m1,m2)を取得する。
次に、ステップST60で、ステップST58で得られたクラスコード#cに基づいて、生徒データに対応した、HDコードベクトル(Q1,Q2,Q3,Q4)を生成する。この場合、クラスコード#cを、データ生成用コードブック(図5参照)を用いて、ベクトル逆量子化することで、HDコードベクトル(Q1,Q2,Q3,Q4)を取得する。
そして、ステップST61で、着目学習対データを構成する教師データに含まれる画素データq1〜q4をコンポーネントとするタップベクトル(q1,q2,q3,q4)からHDコードベクトル(Q1,Q2,Q3,Q4)を減算し、HD誤差ベクトル(Δq1,Δq2,Δq3,Δq4)を取得する。
そして、ステップST62で、ステップST58で得られるクラスコード#c毎に、ステップST59で取得された符号情報(m1,m2)とステップST61で取得されたHD誤差ベクトル(Q1,Q2,Q3,Q4)との対応を記憶する。
次に、ステップST63で、全ての学習対データの処理が終了したか否かを判定する。処理が終了していないときは、ステップST57に戻り、次の着目学習対データを選択し、上述したと同様の処理を繰り返す。一方、処理が終了したときは、ステップST64に進む。
ステップST64では、全ての学習対データについての、クラスコード#c毎の、符号情報(m1,m2)およびHD誤差ベクトル(Q1,Q2,Q3,Q4)の対応に基づいて、クラスコード#cおよび符号情報(m1,m2)の組み合わせのそれぞれに、その組み合わせに対応した補正データΔq1〜Δq4を割り当てた補正データテーブル(図8参照)を生成する。
この場合、クラスコード#cおよび符号情報(m1,m2)の組み合わせ毎に、その組み合わせに該当するHD誤差ベクトル(Δq1,Δq2,Δq3,Δq4)の重心を求め、この求められた重心のベクトルを構成するコンポーネントをその組み合わせの補正データΔq1〜Δq4として用いる。
ステップST64の処理の後に、ステップST65で、処理を終了する。
このように、図17に示すフローチャートに沿って処理をすることで、図13に示す補正データテーブル生成装置300と同様の手法によって、補正データテーブルを生成できる。
なお、図1に示す画像信号処理装置100においては、SD信号を、水平方向に隣接する2個の画素データからなるブロックに分割し、ブロック毎に、このブロックに含まれる画素データp1,p2(図2参照)をクラスタップとして抽出し、このクラスタップ毎に、HD信号を構成する水平方向に隣接する4個の画素データq1〜q4(図2参照)を生成するものであるが、クラスタップおよびこのクラスタップに対応して生成されるHD信号の画素データの個数や配置はこれに限定されるものではない。すなわち、クラスタップに含まれる画素データの個数は2個に限定されるものではなく、さらに水平方向に隣接していなくてもよい。また、クラスタップに対応して生成されるHD信号の画素データは4個の限定されるものではなく、さらに水平方向に隣接していなくてもよい。
また、図1に示す画像信号処理装置100において、データ生成部103は、クラスコード#cを、データ生成用コードブックを用いて、ベクトル逆量子化し、HD信号を構成する4個の画素データq1〜q4を得るものであるが、クラスコード#cに対応したHD信号を構成する画素データを生成する手法は、これに限定されるものではない。例えば、クラスコード#cから、所定の関係式をもってHD信号を構成する画素データを算出することも可能である。その場合、所定の関係式の係数は、予め学習により生成することができる。
また、図1に示す画像信号処理装置100において、補正データ算出部104は、クラスコード#cおよび符号情報(m1,m2)に対応した補正データΔq1〜Δq4を補正データテーブルから読み出して得るものであるが、クラスコード#cおよび符号情報(m1,m2)に対応した補正データΔq1〜Δq4を得る手法は、これに限定されるものではない。例えば、クラスコード#cおよび符号情報(m1,m2)から、所定の関係式をもって補正データΔq1〜Δq4を算出することも可能である。その場合、所定の関係式の係数は、予め学習により生成することができる。
また、上述実施の形態においては、SD誤差ベクトル(Δp1,Δp2)を構成する各コンポーネントの値の範囲情報として、その正負の符号情報(m1,m2)を用いるものを示したが、これに限定されるものではない。すなわち、各コンポーネントの値の取り得る範囲を正負だけでなく、さらに細かく分割された複数の範囲のいずれに含まれるかを示す情報を範囲情報としてもよい。
また、図1に示す画像信号処理装置100においては、SD信号を水平方向に画素数を2倍としたHD信号に変換するものを示したが、画素数を増やす方向は、水平方向に限定されるものではなく、垂直方向、さらには時間方向(フレーム方向)も考えられる。また、逆に、HD信号から画素数を減らしたSD信号を得る場合にも、この発明を同様に適用できる。すなわち、この発明は、一般に、第1の画像信号から、この第1の画像信号と同一または異なる画素数の第2の画像信号に変換する場合に適用できる。
また、上述実施の形態においては、複数個の情報データからなる情報信号が、複数個の画素データからなる画像信号であるものを示したが、この発明は情報信号がその他、例えば音声信号であるものにも同様に適用できる。音声信号の場合、複数個のサンプルデータからなっている。
100・・・画像信号処理装置、101・・・タップ抽出部、102・・・クラス分類部、102a・・・コードブック記憶部、102b・・・ベクトル量子化部、103・・・データ生成部、103a・・・コードブック記憶部、103b・・・ベクトル逆量子化部、104・・・補正データ算出部、104a・・・クラス分類用コードブック記憶部、104b・・・特徴抽出部、104c・・・補正データ出力部、105・・・データ補正部、105a・・・加算部、200・・・コードブック生成装置、201・・・学習用データベース、202・・・生徒データ生成部、203・・・教師データ生成部、204・・・学習対記憶部、205・・・クラス分類用コードブック生成部、206・・・クラス分類部、207・・・コード対教師データ記憶部、208・・・データ生成用コードブック生成部、300・・・補正データテーブル生成装置、301・・・学習用データベース、302・・・生徒データ生成部、303・・・教師データ生成部、304・・・学習対記憶部、305・・・クラス分類部、306・・・データ生成部、307・・・HD誤差演算部、308・・・SD誤差演算部、309・・・符号クラス分類部、310・・・学習部、500・・・画像信号処理装置