以下、添付画面に従って本発明に係る実施形態を詳細に説明する。
<第1の実施形態>
図1は、第1の実施形態における映像信号処理装置の一例を示すブロック図である。なお、説明を簡単なものとするため、処理対象を映像信号の輝度信号とする例を説明するが、これに限定するものではない。つまり、映像信号には、輝度信号のほかに、例えば色信号が含まれていても良い。この場合、本発明を色信号に対して適用することも可能である。
図1に示す映像信号処理装置は、入力端子1、フィールドメモリ2、フィールドメモリ3、コーミング度算出部4、コーミング度算出部5を備える。また、映像信号処理装置は、ウィーブ判定部6、ブロック検出部7、字幕検出部8、動き適応I/P変換部9、ウィーブI/P変換部10、セレクタ11、出力端子12を備える。
入力端子1は、インタレース映像信号を入力するための入力端子である。本実施形態において、入力端子1から入力されるインターレース映像信号は、毎秒60枚のインターレース映像信号である。また、このインターレース映像信号は、異なるプルダウンパターンによって生成されたインターレース画像を含む合成画像の映像信号として入力される。つまり、例えば毎秒24フレームのプログレッシブ画像(映画本編)が2−3プルダウンされた毎秒60枚のインターレース画像と、毎秒30フレームのプログレッシブ画像(字幕)が2−2プルダウンされた毎秒60枚のインターレース画像の合成画像が入力される。
本実施形態の映像信号処理装置は、入力されたインターレース画像(合成画像)から、例えば毎秒30フレームのプログレッシブ画像(字幕)から得られたインターレース画像が合成された領域を特定する。
フィールドメモリ2、フィールドメモリ3は、それぞれ、入力端子1から入力されたインタレース信号の1フィールド分を格納する容量を備える。
コーミング度算出部4と、コーミング度算出部5はそれぞれ、入力された2つのフィールドに基づいて、コーミング度をブロック単位で算出する。コーミング度算出の詳細は後述する。
ウィーブ判定部6は、コーミング度算出部4、5で算出されたコーミング度に応じて、現フィールドが前後何れのフィールドとウィーブするのが良いかを示すウィーブパターンをブロック単位で判定する。つまり、ウィーブ判定部6は、コーミング度に応じて、現フィールドと、前フィールドと組み合わせてフレーム(プログレッシブ画像)を生成するべきか、現フィールドと、後フィールドとを組み合わせてフレームを生成するべきかをブロックごとに判定する。尚、前フィールドは、現フィールドの前に入力されたフィールドである。また、後フィールドは、現フィールドの後に入力されたフィールドである。また、現フィールドは、本実施形態において字幕の領域の検出を行う対象となるインターレース画像、前フィールドは現フィールドの前に入力されたインターレース画像、後フィールドは現フィールドの後に入力されたインターレース画像である。
即ち、ウィーブ判定部6は、インターレース画像である合成画像(第1の合成画像)内の領域が、第1の合成画像と第1の合成画像の前に入力された第2の合成画像とを組み合わせてプログレッシブ画像を構成すべき第1の領域か判定する。また、ウィーブ判定部6は、第1の合成画像内の領域が、第1の合成画像と第1の合成画像の後に入力された第3の合成画像とを組み合わせてプログレッシブ画像を構成すべき第2の領域かを判定する。そして、ウィーブ判定部6は、各ウィーブパターンに判定されたブロック数をカウントする。
尚、本実施形態のウィーブ判定部6による判定結果には、現フィールドをどちらのフィールドとも組み合わせるべきではないパターン、及び、どちらのフィールドと組み合わせることもできるパターンも含まれる。ウィーブ判定部6によるウィーブ判定の処理は後述する。
ブロック検出部7は、フレーム全体において、大部分を占めるウィーブパターンを示すブロックをメインブロックとし、さらにメインブロックに対して逆のウィーブパターンを示すブロックをサブブロックとして特定する。尚、ブロック検出部7は、予め特定したい領域が取り得る広さの範囲を記憶しておき、その範囲に基づいて、メインブロック(大部分のウィーブパターンのブロック)とサブブロック(小部分のウィーブパターンのブロック)を特定する。すなわち、本形態において、メインブロックの領域は、映画本編の領域であると特定される。一方、サブブロックの領域は、字幕領域であると特定される。ブロック検出部7は、例えば、フレーム全体のうち、字幕領域が取り得る広さの範囲を予め記憶しておく。そして、判定されたブロック数が少ないウィーブパターンの領域の広さが、予め記憶された字幕領域が取り得る広さの範囲内であった場合、その領域をサブブロック(小部分のウィーブパターンのブロック)として特定する。そして、ブロック検出部7は、サブブロック以外の領域をメインブロック(大部分のウィーブパターンのブロック)として特定する。ただし、メインブロックの領域を先に特定するようにしても良い。
つまり、ブロック検出部7は、ウィーブ判定部6によって、例えば、フィールドの大部分のブロックが前フィールドと組み合わせて再生するフレーム(プログレッシブ画像)を生成するべきであると判定された場合、そのブロックをメインブロックとする。そして、ブロック検出部7は、現フィールドのうち、後フィールドと組み合わせて再生するフレーム(プログレッシブ画像)を生成するべきであると判定されたブロックを、サブブロックとして特定する。また、ブロック検出部7は、大部分を占めるウィーブのパターンも検出する。つまり、ブロック検出部7は、大部分を占めるウイーブパターンが、例えば、現フィールドと前フィールドの組み合わせのパターンであるということを検出する。
字幕検出部8は、サブブロック内において、対象画素と周辺画素との輝度差を算出することで字幕の領域を特定する。そして、字幕検出部8は、特定した字幕の領域に基づいて、セレクタ11に対して字幕検出信号を出力する。
動き適応I/P変換部9は、フィールド情報に基づいて、動き適応I/P変換により画素の補間を行う。動き適用I/P変換とは、前後に再生されるフレームのデータに応じた動き情報によって算出される補間画素情報を用いてI/P変換する方法である。ここで、I/P変換とは、インタレース画像を、プログレッシブ画像に変換する手法である。ただし、動き適用I/P変換部9は、動き適用I/P変換に限らず、例えば、現フィールド内のデータを用いてインターレース画像を補間することで、フレーム画像を生成するなどしても良い。
ウィーブI/P変換部10は、フィールド情報に基づいて、ウィーブによるI/P変換により画素の補間を行う。つまり、ウィーブI/P変換部10は、ウィーブ判定部6により判定されたウィーブパターンに応じたフィールドと、現フィールドを組み合わせることにより、再生するフレームを生成する。
セレクタ11は、動き適応I/P変換部9から出力されたフレームの画素データと、ウィーブI/P変換部10から出力されたフレームの画素データとのうち、出力端子12に出力する画素データを、字幕検出部8から出力された字幕検出信号により切り替える。つまり、セレクタ11は、字幕部分だと判定された領域については、動き適用I/P変換部9から出力された画素を出力し、映画本編だと判定された領域については、ウィーブI/P変換部10から出力された画素を出力する。
出力端子12では、セレクタ11による切り替えに応じて、動き適用I/P変換部9、或いはウィーブI/P変換部10から出力されたプログレッシブ画像を不図示の出力装置に対して出力する。本実施形態における出力装置とは、例えば、プログレッシブ画像の再生に対応するデジタルテレビや、DVDレコーダなどである。
上記構成における映像信号処理装置の処理概要は次の通りである。
入力端子1より入力されたインターレースの映像信号(実施形態では、説明を簡単なものとするため、色成分の無い輝度信号とする)は、フィールドメモリ2、コーミング度算出部4、動き適応I/P変換部9、ウィーブI/P変換部10にそれぞれ供給される。
フィールドメモリ2は、入力信号を1フィールド時間分遅延させ、その遅延した信号をフィールドメモリ3、コーミング度算出部4、コーミング度算出部5、動き適応I/P変換部9、ウィーブI/P変換部10、字幕検出部8に出力する。
フィールドメモリ3は、フィールドメモリ2によって遅延された入力信号をさらに1フィールド分遅延させ、コーミング度算出部5、動き適応I/P変換部9、ウィーブI/P変換部10に出力する。
コーミング度算出部4は、入力された2フィールドを、ブロックごとにウィーブすることによってプログレッシブ画像を構成させ、それぞれのブロックにおけるコーミング度を算出する。そして、算出されたコーミング度をウィーブ判定部6に出力する。ただし、コーミング度算出部4は、ブロックごとにウィーブする代わりに、2つのフィールドをウィーブすることによってフレームを構成させ、そのフレームを複数のブロックに分割し、それぞれのブロックにおけるコーミング度を算出するようにしても良い。
同様にコーミング度算出部5は、入力された2フィールドのウィーブにより生成されるフレームを複数のブロックに分割し、それぞれのブロックにおけるコーミング度を算出し、算出されたコーミング度をウィーブ判定部6に出力する。
ここで、コーミング度とは、2つのフィールドをウィーブしたことによって生成されるフレームに違和感があるかを評価するための値である。つまり、現フィールドにおいて、上下に隣接する画素に関連性がある場合に、現フィールドとほかのフィールドをウィーブしたことによって生成されたフレームにおいて上下に隣接する画素に関連性がなくなると、コーミングが発生している可能性が高い。従って、このような場合は、高いコーミング度が算出される。一方、現フィールドにおいて、上下に隣接する画素に関連性があった場合に、現フィールドとほかのフィールドをウィーブしたことによって生成されたプログレッシブ画像においても上下に隣接する画素に関連性があれば、コーミングが発生している可能性は低い。従って、このような場合は、低いコーミング度が算出される。
つまり、コーミング度算出部4は、現フィールドと、後フィールドを組み合わせてフレーム(プログレッシブ画像)を構成した場合に、そのフレームのブロックにおいて、コーミングが生じると判断できる場合、そのブロックのコーミング度を高く算出する。また、コーミング度算出部5は、現フィールドと、前フィールドを組み合わせてフレームを構成した場合に、そのフレームのブロックにおいて、コーミングが生じると判断できる場合、そのブロックのコーミング度を高く算出する。尚、後フィールドは現フィールドの後に入力されたフィールド、前フィールドは現フィールドの前に入力されたフィールドである。一方、コーミング度算出部4、及び5は、生成されたフレームのブロックにおいて、コーミングが生じていないと判断できる場合、そのブロックのコーミング度を低く算出する。コーミング度の算出方法の詳細は後述する。
ウィーブ判定部6は、コーミング度算出部4、5によってそれぞれ算出された、2つのコーミング度に基づいて、現フィールドのブロックごとにウィーブパターンを判定する。ウィーブ判定部6が判定するウィーブパターンには、現フィールドと前フィールドとのウィーブが最適であるというパターン(パターン1)、或は現フィールドと後フィールドとのウィーブが最適であるというパターン(パターン2)が含まれる。さらに、ウィーブ判定部6が判定するウィーブパターンには、どちらのウィーブも最適ではないというパターン(パターン3)、或いは、コーミング度ではウィーブパターンを判断できないというパターン(パターン4)も含まれる。ウィーブ判定部6は、判定したウィーブパターンをブロック検出部7に出力する。
ブロック検出部7は、現フィールドの大部分のブロックが、パターン1、及び、パターン2のうちいずれか一方のパターンを示している場合、他方のパターンを示す領域をサブブロックとして特定し、その領域情報を字幕検出部8に出力する。また、このとき、ブロック検出部7は、大部分のブロックが示すウィーブパターン(パターン1又はパターン2)を示す情報を、ウィーブI/P変換部10に出力する。
即ち、ブロック検出部7は、前記第1の合成画像内に、第1の領域と第2の領域とが存在する場合、次のように字幕領域を特定する。尚、第1の領域とは、第1の合成画像の領域と組み合わせてプログレッシブ画像を構成すべきインターレース画像が第1の合成画像の前に入力された第2の合成画像である領域である。また、第2の領域とは、第1の合成画像と組み合わせてプログレッシブ画像を構成すべきインターレース画像が第1の合成画像の後に入力された第3の合成画像である領域である。この場合、それぞれの領域に応じて、第2のフレームレートのプログレッシブ画像から得られたインターレース画像が合成された領域(字幕領域)を特定する。尚、第1の合成画像には現フィールドが、第2の合成画像には前フィールドが、第3の合成画像には後フィールドが対応する。
また、本形態のブロック検出部7は、第1の領域と第2の領域のうち、狭いほうの領域(サブブロックの領域)を字幕領域として特定する。
字幕検出部8は、現フィールドの画素と、ブロック検出部7から出力されたサブブロックの領域情報に基づいて、字幕を特定し、字幕検出信号をセレクタ11に出力する。つまり、字幕検出部8は、ブロック検出部7によって検出されたサブブロックの領域情報から、字幕の領域をブロック単位で特定し、さらに該ブロック内の画素情報により、字幕の詳細な位置を絞り込む。
即ち、字幕検出部8は、第1の領域と第2の領域のうち、狭いほうの領域内の輝度情報によって、第2のフレームレートのプログレッシブ画像から得られたインターレース画像(字幕)が合成された画素の位置を特定する。尚、第1の領域は、第1の合成画像と組み合わせてフレームを構成すべきインターレース画像が第2の合成画像(前フィールド)である領域である。また、第2の領域は、第1の合成画像を組み合わせてフレームを構成すべきインターレース画像が第3の合成画像(後フィールド)である領域である。
動き適応I/P変換部9は、入力された3フィールド(前フィールド、現フィールド、後フィールド)に基づいて動き適応I/P変換を行い、算出画素をセレクタ11に出力する。ただし、上述のように、動き適用I/P変換部9は、動き適用I/P変換に限らず、例えば、現フィールド内のデータを用いてインターレース画像を補間することで、フレーム画像を生成するなどしても良い。
ウィーブI/P変換部10は、入力された3フィールドと、フィールドの大部分を占めるウィーブパターンに基づいてウィーブによるI/P変換を行い、算出画素をセレクタ11に出力する。
セレクタ11は、動き適応I/P変換部9とウィーブI/P変換部10からの出力を、字幕検出部8から出力された字幕検出信号によって切り替えて、出力端子12より出力する。
上記のように構成された映像信号処理装置が行う、字幕の検出処理、及び検出結果に応じた映像信号の補正処理についてさらに詳しく説明する。
入力端子1より入力されたインターレース画像はフィールドメモリ2に蓄積される。フィールドメモリ2は、1フィールド分のメモリを有し、入力端子1からのインターレース画像を1フィールド時間分遅延させる。つまり、フィールドメモリ2は、入力端子1から入力された、あるインターレース画像(第1のインターレース画像)を、次のインターレース画像(第2のインターレース画像)の入力まで記憶する。そして、フィールドメモリ2は、第2のインターレース画像が入力されるタイミングに、第1のインターレース画像を、フィールドメモリ3、コーミング度算出部4、及び5、字幕検出部8、動き適用I/P変換部9、及びウィーブI/P変換部10に出力する。つまり、フィールドメモリ2から出力されるインターレース画像は、入力端子1から入力されるインターレース画像よりも1フィールド時間分遅延されたものとなる。
また、フィールドメモリ2から出力されるインターレース画像はフィールドメモリ3に蓄積される。フィールドメモリ3は、1フィールド分メモリを有し、フィールドメモリ2からのインターレース画像を1フィールド時間分遅延させる。つまり、フィールドメモリ3は、フィールドメモリ2から出力された、あるインターレース画像(第2のインターレース画像)を、次のインターレース画像(第3のインターレース画像)の入力まで記憶する。そして、フィールドメモリ3は、第3のインターレース画像が入力されるタイミングに、第2のインターレース画像を、コーミング度算出部5、動き適用I/P変換部9、及びウィーブI/P変換部10にそれぞれ出力する。つまり、フィールドメモリ3から出力されるインターレース画像は、入力端子1から入力されるインターレース画像よりも、2フィールド時間分遅延されたものとなる。
本形態では、2フィールド時間分遅延されたインターレース画像(第1のインターレース画像)を前フィールドとする。また、1フィールド時間分遅延されたインターレース画像(第2のインターレース画像)を現フィールド、入力されたインターレース画像(第3のインターレース画像)を後フィールドとする。つまり、入力端子1から、第1のインターレース画像、第2のインターレース画像、第3のインターレース画像が、順次入力される。そして、第3のインターレース画像(後フィールド)が入力端子1から入力されると、フィールドメモリ2には、第3のインターレース画像(後フィールド)が記憶される。また、このとき、フィールドメモリ3には、第2のインターレース画像(現フィールド)が記憶されている。
さらに、このとき、コーミング度算出部4には、第2のインターレース画像(現フィールド)と第3のインターレース画像(後フィールド)が記憶されている。また、コーミング度算出部5には、第1のインターレース画像(前フィールド)と第2のインターレース画像(現フィールド)が記憶されている。また、動き適用I/P変換部9、及び、ウィーブI/P変換部10には、それぞれ、第1、第2、第3のインターレース画像(前フィールド、現フィールド、後フィールド)が記憶されている。また、字幕検出部8には、第2のインターレース画像(現フィールド)が記憶されている。
コーミング度算出部4は、ブロック単位でのコーミング度の算出を、1フレームに渡って行う。つまり、コーミング度算出部4は、現フィールド、及び後フィールドとを組み合わせることで構成されるフレームを複数のブロックに分割し、各ブロックにおけるコーミング度を算出する。本実施形態では、1920x1080画素の画像(フレーム)を分割した240x135画素のブロックごとにコーミング度を算出するものとする。ただし、フレームのサイズ、ブロックのサイズはこれに限らない。
コーミング度算出部4は、図2に示すような、現フィールドと後フィールドを組み合わせる(ウィーブ)ことで生成されたフレームを入力とする。これを、前述のように、240x135画素のブロックに分割する。コーミング度算出部4は、各ブロックのコーミング度を次のように算出する。
コーミング度算出部4は、まず、2つのフィールドのウィーブにより生成されたフレームのある1つのブロック内において、各画素とその上下の画素を含む周辺の画素を用いて、各画素を中心とした小エリアのコーミング度を算出する。つまり、コーミング度算出部4は、フレームを構成するブロックをさらに複数の小エリアに分割し、その小エリアのコーミング度を算出する。コーミング度算出部4は、小エリアのコーミング度が閾値よりも大きければその小エリアの中心画素はコーミング画素であると判定する。すなわち、コーミング度算出部4は、小エリアにおいて、上下に隣接する画素の相関性が低い場合、その小エリアの中心画素をコーミング画素として判定する。さらに、コーミング度算出部4は、ブロック内におけるコーミング画素の個数をカウントすることにより、そのブロックのコーミング度を算出する。本実施形態の小エリアは、現フィールド3x2画素、後フィールド3x3画素であるとする。ただし、小エリアのサイズはこれに限らない。図3に示すように、現フィールドの小エリアの画素値をC00−C12、後フィールドの小エリアの画素値をN00−N22とする。以下、処理の詳細を述べる。
コーミング度算出部4は、まず、図4に示すように、現フィールドにおける小エリアの画素と後フィールドにおける小エリアの画素を用いてフレームを構成させ、さらにそれを3つの小エリアブロックに分割する。それぞれの小エリアブロックを、図4の上からブロックA、ブロックB、ブロックCとした場合、各小エリアブロックにおいて次のような演算が行われる。但し、min(a,b,c)はa,b,cの値の内もっとも小さい値を算出し、max(a,b,c)はa,b,cの値の内もっとも大きい値を算出し、|a|はaの絶対値を算出するものとする。
ブロックA:
A1=min(|N00−C00|,|N01−C01|,|N02−C02|)
A2=min(|C00−N10|,|C01−N11|,|C02−N12|)
A3=min(|N00−N10|,|N01−N11|,|N02−N12|)
SA=A1+A2−A3
ブロックB:
B1=min(|C00−N10|,|C01−N11|,|C02−N12|)
B2=min(|N10−C10|,|N11−C11|,|N12−C12|)
B3=min(|C00−C10|,|C01−C11|,|C02−C12|)
SB=B1+B2−B3
ブロックC:
C1=min(|N10−C10|,|N11−C11|,|N12−C12|)
C2=min(|C10−N20|,|C11−N21|,|C12−N22|)
C3=min(|N10−N20|,|N11−N21|,|N12−N22|)
SC=C1+C2−C3
つまり、A1は、現フィールドと後フィールドを組み合わせたフレームの小エリアブロックであるブロックAにおいて、上下に隣接する画素値の差が大きいほど大きな値が算出される。また、A2も同様である。そして、A3は、後フィールドにおいて上下に隣接する画素値の差が大きいほど大きな値が算出される。従って、SAは、現フィールドと後フィールドを組み合わせたフレームにおいて、上下に隣接する画素値が大きく、後フィールドにおいて上下に隣接する画素値の差が小さいほど大きな値が算出される。SB、SCの考え方もSAと同様である。
さらに、コーミング度算出部4は、各小エリアブロックの演算結果を基に、次式に従って該小エリアのコーミング度(score1)を算出する。
M1=min(SA,SB)
M2=min(SB,SC)
score1=max(M1,M2)
このscore1が閾値(bad_block_num_threshold)よりも大きければ、この小エリアの中心画素はコーミング画素と判定される。つまり、コーミング度算出部4は、図3における小エリアのコーミング度が閾値よりも高い場合、N11の位置に対応する画素がコーミング画素であると判定される。
即ち、コーミング度は、インターレース画像を組み合わせたフレームにおける上下に隣接する画素値の差に基づく値である。
さらに、コーミング度算出部4は、小エリアの中心画素がコーミング画素であると判定した場合、ブロック内のコーミング画素の個数を示すbad_block_count1をインクリメントする。1つのブロックが全てコーミング画素であった場合のbad_block_count1をbad_block_max1とすると、このブロックのコーミング度comb1は、
comb1=bad_block_count1/bad_block_max1
で算出される。つまり、コーミング度算出部4は、ブロック内の画素数と、ブロック内でコーミング画素と判定された画素数に応じて、ブロックのコーミング度(comb1)を算出する。コーミング度(comb1)は、現フィールドと後フィールドを組み合わせたフレームにおける、ある1つの注目ブロックのコーミング度である。
コーミング度算出部4は、上記のような方法で、現フィールドと後フィールドとのウィーブによって生成されたフレーム内の各ブロックのコーミング度を算出する。これによって、現フィールドと後フィールドとを組み合わせたフレーム内の全てのブロックがコーミング度を持つことになる。
同様にコーミング度算出部5に関しても詳細を述べる。処理の概要はコーミング度算出部4と同様である。コーミング度算出部5は図5に示すように、現フィールドと前フィールドを組み合わせる(ウィーブ)ことで生成されたフレームを入力とする。これを、前述のように、240x135画素のブロックに分割する。コーミング度算出部5は、各ブロックのコーミング度を次のように算出する。
コーミング度算出部5は、まず、2つのフィールドのウィーブにより生成されたフレームのある1つのブロック内において、各画素とその周辺の画素を用いて、各画素を中心とした小エリアのコーミング度を算出する。つまり、コーミング度算出部5は、フレームを構成するブロックをさらに複数の小エリアに分割しその小エリアのコーミング度を算出する。小エリアのコーミング度が閾値よりも大きければその小エリアの中心画素はコーミング画素であると判定する。さらに、コーミング度算出部5は、ブロック内におけるコーミング画素の個数をカウントすることにより、そのブロックのコーミング度を算出する。上記のように、本実施形態の小エリアは、現フィールド3x2画素、後フィールド3x3画素で構成されるエリアとする。図6に示すように、現フィールドの小エリアの画素値をC00−C12、前フィールドの小エリアの画素値をP00−P22とする。以下、処理の詳細を述べる。
コーミング度算出部5は、図7に示すように、現フィールドにおける小エリアの画素と前フィールドにおける小エリアの画素を用いてフレームを構成させ、さらにそれを3つの小エリアブロックに分割する。それぞれの小エリアブロックを、図7の上からブロックD、ブロックE、ブロックFとした場合、各小エリアブロックにおいて次のような演算が行われる。
ブロックD:
D1=min(|P00−C00|,|P01−C01|,|P02−C02|)
D2=min(|C00−P10|,|C01−P11|,|C02−P12|)
D3=min(|P00−P10|,|P01−P11|,|P02−P12|)
SD=D1+D2−D3
ブロックE:
E1=min(|C00−P10|,|C01−P11|,|C02−P12|)
E2=min(|P10−C10|,|P11−C11|,|P12−C12|)
E3=min(|C00−C10|,|C01−C11|,|C02−C12|)
SE=E1+E2−E3
ブロックF:
F1=min(|P10−C10|,|P11−C11|,|P12−C12|)
F2=min(|C10−P20|,|C11−P21|,|C12−P22|)
F3=min(|P10−P20|,|P11−P21|,|P12−P22|)
SF=F1+F2−F3
つまり、D1は、現フィールドと前フィールドを組み合わせたフレームの小エリアブロックであるブロックDにおいて、上下に隣接する画素値の差が大きいほど大きな値が算出される。また、D2も同様である。そして、D3は、前フィールドにおいて上下に隣接する画素値の差が大きいほど大きな値が算出される。従って、SDは、現フィールドと前フィールドを組み合わせたフレームにおいて、上下に隣接する画素値が大きく、前フィールドにおいて上下に隣接する画素値の差が小さいほど大きな値が算出される。SE、SFの考え方もSDと同様である。
さらに、コーミング度算出部5は、各小エリアブロックの演算結果を基に、次式に従って該小エリアのコーミング度(score2)を算出する。
M3=min(SD,SE)
M4=min(SE,SF)
score2=max(M3,M4)
このscore2が閾値(bad_block_num_threshold)よりも大きければ、この小エリアの中心画素はコーミング画素と判定される。つまり、コーミング度算出部5は、図6における小エリアのコーミング度が閾値よりも高い場合、P11の位置に対応する画素がコーミング画素であると判定される。さらに、コーミング度算出部5は、小エリアの中心画素がコーミング画素であると判定した場合、ブロック内のコーミング画素の個数を示すbad_block_count2をインクリメントする。1つのブロックが全てコーミング画素であった場合のbad_block_count2をbad_block_max2とすると、このブロックのコーミング度comb2は、
comb2=bad_block_count2/bad_block_max2
で算出される。つまり、コーミング度算出部5は、ブロック内の画素数と、ブロック内でコーミング画素と判定された画素数に応じて、ブロックのコーミング度(comb2)を算出する。コーミング度(comb2)は、現フィールドと前フィールドを組み合わせたフレームにおける、ある1つの注目ブロックのコーミング度である。
コーミング度算出部5は、上記のような方法で、現フィールドと前フィールドとのウィーブによって生成されたフレーム内の各ブロックのコーミング度を算出する。これによって現フィールドと前フィールドを組み合わせたフレーム内の全てのブロックがコーミング度を持つことになる。
ウィーブ判定部6は、コーミング度算出部4、コーミング度算出部5からの出力であるコーミング度が入力されると、各ブロックのウィーブパターンを判定する。
図8は、ウィーブ判定部6によるウィーブパターンの判定処理を示すフローチャートである。ここでは、コーミング度の閾値をmb_thする。つまり、例えば、算出されたあるウィーブパターンのコーミング度が閾値mb_thよりも高い場合、そのブロックにおいてコーミングが発生する可能性が高いと判定する。この閾値mb_thは、例えば、0.6などの値に設定することができる。ただし、別の値であっても良い。
また、ウィーブ判定部6は、comb1、comb2、mb_thによって定まるfield_pairがpattern1のときは現フィールドと前フィールドの組み合わせが最適である(パターン1)と判定する。また、field_pairがpattern2のときは現フィールドと後フィールドの組み合わせが最適である(パターン2)と判定する。また、field_pairがpattern3のときは前後いずれのフィールドとの組み合わせも最適ではない(パターン3)と判定する。また、ウィーブ判定部6は、field_pairがpattern4のときは、前後いずれのフィールドとの組み合わせでもコーミングは発生しないと判定する(パターン4)。パターン4の場合、過去のパターン情報によって現フィールドと何れのフィールドを組み合わせるべきなのかを決定する。ただし、本形態においては、パターン4の場合のウィーブパターンの決定は、セレクタ11において行う。ウィーブ判定部6は、判定されたパターンに基づく信号をブロック検出部7に対して出力する。以下、ウィーブ判定部6による処理の詳細について、図8を用いて説明する。尚、ウィーブ判定部6は、図8の処理を、フレーム内のブロック(注目ブロック)ごとに、現フィールド内のすべてのブロックに対して行う。
まず、変数nを0に初期化する(S101)。
次にcomb1と閾値mb_thを比較する(S102)。上述のように、comb1は、現フィールドと後フィールドを組み合わせたフレームにおける、ある1つの注目ブロックのコーミング度である。つまり、comb1が閾値mb_thよりも大きいということは、現フィールドと後フィールドを組み合わせたフレームの注目ブロックにおいて、コーミングが生じていると判断できることを意味している。このmb_thは、任意の値に設定することが可能である。comb1が閾値mb_thよりも大きければ、S107に進む。一方、comb1が閾値mb_thよりも小さければS103に進む。
S107では、nをインクリメントし、S103に進む。
S103において、ウィーブ判定部6は、comb2と閾値mb_thを比較する。上述のように、comb2は、現フィールドと前フィールドを組み合わせたフレームにおける、ある1つの注目ブロックのコーミング度である。つまり、comb2が閾値mb_thよりも大きいということは、現フィールドと前フィールドを組み合わせたフレームの注目ブロックにおいて、コーミングが生じていると判断できることを意味している。comb2が閾値mb_thよりも大きければS108に進む。一方、comb2が閾値mb_thよりも小さければS104に進む。
S108ではnをインクリメントし、S104に進む。
S104では、nの値が1かどうかを調べる。nが1というのは、comb1またはcomb2のいずれかが閾値mb_thを上回り、他方が閾値mb_thを下回ったことを意味する。つまり、現フィールドの注目ブロックにおいて、前または後のフィールドとの組み合わせによってコーミングが生じているが、他方のフィールドとの組み合わせではコーミングが生じていないことを示している。ウィーブ判定部6は、このような場合、コーミングが生じていないフィールドとの組み合わせが最適であると判断する。
S104において、nが1であると判定された場合は、S106に進み、nが1ではないと判定された場合は、S105に進む。
S106において、ウィーブ判定部6は、comb1とcomb2との大小関係を比較する。S106においてcomb1がcomb2よりも大きいと判定された場合はS111に進み、comb1がcomb2よりも小さいと判定された場合はS112に進む。
即ち、ウィーブ判定部6は、S106において、インターレース画像である第1の合成画像(現フィールド)と組み合わせてプログレッシブ画像を構成すべきインターレース画像が、第2の合成画像(前フィールド)か、第3の合成画像(後フィールド)かを判定する。尚、第2の合成画像は第1の合成画像の前に入力された合成画像、第3の合成画像は第1の合成画像の後に入力された合成画像である。
S111において、ウィーブ判定部6は、現フィールドと前フィールドとを組み合わせて再生フレームの注目ブロックを構成することが最適であると判定し(field_pair=pattern1)、そのことを示す信号をブロック検出部7に出力する。つまり、ウィーブ判定部6は、現フィールドと後フィールドとを組み合わせて注目ブロックを構成させるとコーミングが発生し、現フィールドと前フィールドとを組み合わせるとコーミングが発生しないと判定する。そして、前フィールドとの組み合わせが最適であること(パターン1)を示す信号をブロック検出部7に出力する。
一方、ウィーブ判定部6は、S112において、現フィールドと後フィールドとを組み合わせて再生フレームの注目ブロックを構成することが最適であると判定し(field_pair=pattern2)、そのことを示す信号をブロック検出部7に出力する。つまり、ウィーブ判定部6は、現フィールドと前フィールドとを組み合わせて注目ブロックを構成するとコーミングが発生し、現フィールドと後フィールドとを組み合わせて注目ブロックを構成するとコーミングが発生しないと判定する。そして、後フィールドとの組み合わせが最適であること(パターン2)を示す信号をブロック検出部7に出力する。
即ち、ウィーブ判定部6は、第1の合成画像(現フィールド)と組み合わせてプログレッシブ画像を構成すべきインターレース画像が第2の合成画像(前フィールド)か第3の合成画像(後フィールド)かを、コーミング度によって判定する。また、上述のように、コーミング度は、インターレース画像を組み合わせたフレームにおける上下に隣接する画素値の差に基づく値である。また、コーミング度は、第1の合成画像(現フィールド)と第2の合成画像(前フィールド)とを組み合わせたフレーム、及び、第1の合成画像と前記第3の合成画像(後フィールド)とを組み合わせたフレームにおいて、それぞれ算出される。
また、ウィーブ判定部6は、S104において、nが1でないと判定すると、S105において、nが2であるか否かを判定する。nが2となるのは、comb1とcomb2の両方ともが閾値mb_thよりも大きな値であったことを示している。つまり、nが2というのは、現フィールドと前フィールドの組み合わせ、及び、現フィールドと後フィールドの組み合わせの両方で、注目ブロックにおいてコーミングが生じており、前後いずれのフィールドとの組み合わせも適さないことを意味している。S105において、nが2であると判定された場合はS110に、nが2ではないと判定された場合はS109に進む。
S110において、ウィーブ判定部6は、前と後のどちらのフィールドとの組み合わせも適切ではないと判定し(field_pair=pattern3)、そのことを示す信号をブロック検出部7に出力する。つまり、ウィーブ判定部6は、現フィールドと前フィールドを組み合わせた注目ブロックにおいても、現フィールドと後フィールドを組み合わせた注目ブロックにおいてもコーミングが発生する場合、どちらのフィールドとの組み合わせも適切でないと判定する。そして、ウィーブ判定部6は、そのこと(パターン3)を示す信号をブロック検出部7に出力する。
S104において、ウィーブ判定部6は、n=0であると判定する。nが0というのは、現フィールドと前フィールドの組み合わせ、及び、現フィールドと後フィールドの組み合わせの両方で、注目ブロックにおいてコーミングが発生していないと判定された場合を示している(field_pair=pattern4)。この状況は、例えば、画像全体に動きが少ない場合や、2−3プルダウンによって得られた3フィールドのうち、真中のフィールドが現フィールドである場合に起こる。この場合は、コーミング度によって最適な合成フィールドを判断することはできない。ウィーブ判定部6は、このようなパターン(パターン4)が発生した場合、そのことを示す信号をブロック検出部7に出力する。
尚、セレクタ11は、このようなパターン(パターン4)と判定されたブロックのウィーブパターンを、例えば、現フィールドのほかのブロックのウィーブパターンによって判定することができる。つまり、例えば、パターン1とパターン2のうち多いほうのパターンにしたがって、パターン4に判定されたブロックのウィーブパターンを判定することができる。ただし、この方法に限らず、例えば、パターン4のウィーブパターンを、過去のパターン検出結果に基づいて判定するようにしても良い。つまり、セレクタ11は、これまでに入力されたフィールドのウィーブパターンに従って、現在の注目ブロックのウィーブパターンを判定するようにしても良い。
ウィーブ判定部6は、上記のようにして注目ブロックのウィーブのパターンを判定し、その結果をブロック検出部7に出力する。そして、ウィーブ判定部6は、判定したウィーブパターンをブロック検出部7に出力すると、注目ブロックを1つずらして、図8の処理を行う。
ブロック検出部7は、ウィーブ判定部6から出力される、ウィーブパターンblock_patternを入力とする。そして、ブロック検出部7は、入力されたブロックごとのウィーブパターンに応じて、フレーム内における字幕領域をブロック単位で特定する。
図9を用いて、ブロック検出部7による具体的な処理の流れを説明する。ここでは説明のため、1フィールドにおけるブロック数を、block_max、閾値をmj_thとする。また、p=pattern1、n=pattern2、b=pattern4とする。尚、本形態のブロック検出部7は、前後どちらのインターレース画像ともウィーブしないパターン(パターン3)については、その数をカウントしない。
まず、S201において、1フィールド内の各ブロックにおけるウィーブパターンのカウント値であるn_cout、p_count、b_countを初期化する。また、フィールド内のブロックの位置を示すblock_countを初期化する。次に、S202において、block_countをインクリメントする。このとき、block_count=1がフィールド内での最初のブロック、block_count=last_blockが1フィールド内での最後のブロックであるとする。次に、ブロックにおける最適パターンを示すblock_patternが何であるかによって、処理を切り替える。
まず、S203においてblock_patternがnであるか判断し、もしnであればS207においてn_countをインクリメントする。もしnでなければS204の処理に進む。ここで、block_patternがnであるとは、現在のblock_countに応じたブロックのウィーブパターンが、現フィールドと後フィールドとの組み合わせのパターン1(field_pair=pattern1)と判定されたことを示している。
S204では、block_patternがpであるか判断し、もしpであればS208においてp_countをインクリメントする。もしpでなければS205の処理に進む。ここで、block_patternがpであるとは、現在のblock_countに応じたブロックのウィーブパターンが、現フィールドと前フィールドとの組み合わせのパターン2(field_pair=pattern2)と判定されたことを示している。
S205では、block_patternがbであるか判断し、もしbであればS209においてb_countをインクリメントする。もしbでなければS206の処理に進む。ここで、block_patternがbであるとは、現在のblock_countに応じたブロックのウィーブパターンが、ウィーブ判定部6によって判定できなかったパターン4(field_pair=pattern4)と判定されたことを示す。
S206では、block_countが、最後のブロックを示すlast_blockであるかを判定する。block_countがlast_blockである、つまり、現フィールドのすべてのブロックに対してウィーブパターンのカウントが終了した場合は、S210に進み、そうでなければS202の処理に戻る。
S210において、ブロック検出部7は、n_countとp_countの値の大きさを比較する。n_countの方が大きければ(S210の判定でNo)、S212に進み、p_countの方が大きければ(S210の判定でYes)S211に進む。
S212において、ブロック検出部7は、n_countにb_countを加算し、mとして、S213に進む。つまり、p_countよりもn_countのほうが大きい場合は、現フィールドと前フィールドを組み合わせるよりも、現フィールドと後フィールドと組み合わせたほうが、コーミングが生じないブロックが多いことを示している。したがって、n_countのほうが大きい場合は、現フィールドと後フィールドを組み合わせるウィーブパターン(パターン2)に判定されたブロック、及び、パターン4に判定されたブロックがメインブロックとなる。また、このとき、現フィールドと前フィールドを組み合わせるウィーブパターン(パターン1)に判定されたブロックがサブブロック(字幕の領域)となる。
一方、S211において、ブロック検出部7は、p_countにb_countを加算し、mとして、S213に進む。つまり、n_countよりもp_countのほうが大きい場合は、現フィールドと後フィールドを組み合わせるよりも、現フィールドと前フィールドを組み合わせたほうが、コーミングが生じないブロックが多いことを示している。したがって、p_countのほうが大きい場合は、現フィールドと前フィールドを組み合わせるウィーブパターン(パターン1)に判定されたブロック、及び、パターン4に判定されたブロックがメインブロックとなる。また、このとき、現フィールドと後フィールドを組み合わせるウィーブパターン(パターン2)に判定されたブロックがサブブロック(字幕の領域)となる。
すなわち、mは、ウィーブパターンが前フィールドとの組み合わせであるブロックの数と、後フィールドとの組み合わせであるブロックの数のうち多いほうのブロックの数に、どちらのフィールドと組み合わせても良いと判定されたブロックの数を加えた数を示す。言い換えると、mは、ウィーブパターンが前フィールドとの組み合わせである領域と、後フィールドとの組み合わせである領域のうち、広いほうの領域の広さに、どちらのフィールドと組み合わせても良いと判定された領域の広さを加えた広さを示している。
S213では、mが閾値mj_thよりも大きいかどうかを判定する。S213において、mが閾値mj_thよりも大きければS214に進み、mが閾値mj_thよりも小さければ処理を終了する。つまり、本実施形態で想定している合成画像は、現フィールド上において多数のブロックを占める映画本編の画像に、少数のブロックを占める字幕画像が合成されている。また、映画本編の画像と字幕画像とではプルダウンパターンが異なるため、最適なウィーブパターンが異なる場合がある。従って、現フィールドのブロックごとに判定されたウィーブパターンを、多数のウィーブパターンと少数のウィーブパターンに分けることができる場合、少数のウィーブパターンに判定されたブロックには字幕画像が含まれていると考えられる。尚、閾値mj_thは、合成されている2つの映像(本形態では映画本編と字幕)の領域の割合に応じて設定すれば良い。
S214において、ブロック検出部7は、p_countとn_countのうち、小さい方のパターンに判定されたブロックを異パターンブロック(サブブロック)として出力する。上述のように、このサブブロックは、字幕候補ブロックとみなすことができる。
即ち、ブロック検出部7は、第1の合成画像内に第2の合成画像と組み合わせてプログレッシブ画像を構成すべき第1の領域と、第3の合成画像と組み合わせてプログレッシブ画像を構成すべき第2の領域が存在すると判定されると、次のように字幕領域を特定する。すなわち、S214において、それぞれの領域に応じて、第2のフレームレートのプログレッシブ画像から得られたインターレース画像が合成された領域(字幕領域)を特定する。尚、第1の合成画像には現フィールドが、第2の合成画像には前フィールドが、第3の合成画像には後フィールドが対応する。
尚、上述のように、前フィールド、現フィールド、後フィールドの違いが小さい(動画像の動きが少ない)場合は、コーミング度によるウィーブパターンの判定が困難となる。また、現フィールドが、2−3プルダウンパターンにおいて、1つのプログレッシブ画像から3つのインターレース画像を生成した際の中間のフィールドであった場合も、コーミング度によるウィーブパターンの判定は困難である。しかし、本形態のブロック検出部7は、コーミング度によるウィーブパターンの判定が難しい場合にも、字幕候補ブロックを推定することができる。このことについて、図10を用いて詳細に説明する。
図10は、ある時刻T=0における現インターレース画像と、それよりも1フィールド期間後のT=1における現インターレース画像の状態を示している。つまり、入力端子1から、T=0のインターレース画像の次に、T=1のインターレース画像が入力される。
また、図10の右側に表示されるp、b、nは、それぞれ、ウィーブパターンが何かを示している。すなわち、pはウィーブパターンが前フィールドとの組み合わせ(パターン1)、nは後フィールドとの組み合わせ(パターン2)、bはどちらフィールドと組み合わせでも良い(パターン4)と判定されたことを示している。
まず、T=0において、ウィーブ判定部6は、前述の方法により各ブロック内のウィーブパターンを判定する。そして、ブロック検出部7は、図中のnで示される領域を字幕候補ブロックとして特定する。
次に、T=1において、ブロック検出部7は、T=0と同様に字幕候補ブロックを特定する。そして、ブロック検出部7は、T=1の現フィールドにおいて特定した字幕候補ブロックに、1フィールド時間前、2フィールド時間前であるT=0とT=−1の、上記の方法により得られた字幕候補ブロックの領域を付加する。尚、T=−1のフィールドとは、T=0のフィールドの1つ前に入力端子1から入力されたインターレース画像である。また、付加された字幕候補ブロックは、次のフィールド(T=2のインターレース画像)においては付加しない。
このように、本実施形態のブロック検出部7は、現インターレース画像において特定された字幕領域を用いて、次のインターレース画像において特定する字幕領域を特定する。このようにすることで、コーミング度によるウィーブパターンの判定が難しいインターレース画像においても、字幕の領域を特定することができる。
字幕検出部8では、ブロック検出部7から出力される字幕候補ブロックに基づいて、字幕の検出を行う。すなわち、字幕検出部8は、字幕候補ブロック内において、例えば補間対象画素と周辺の画素との輝度差情報を用いて字幕画素を検出する。
字幕検出部8は、字幕画素を検出すると、検出された字幕の領域をセレクタ11に出力する。
動き適応I/P変換部9は、3フィールド(前フィールド、現フィールド、後フィールド)から、動き適応I/P変換を行い、生成されたフレームの画素データを出力する。すなわち、字幕部分は映画の本編の映像とは異なるプルダウンパターンであるため、本編と同じウィーブパターンでプログレッシブ画像を生成すると、字幕の部分でコーミングが発生する場合がある。したがって、動き適用I/P変換部9は、前後に再生されるフレームのデータや動き情報によって、字幕部分を表示させるための補間画素を生成する。尚、本形態の動き適用I/P変換部9は、現フィールドから生成された1フレーム分の補間画素データを出力する。即ち、動き適用I/P変換部9は、第1の領域と第2の領域のうちの狭いほうの領域(サブブロックの領域)における、現フィールドと組み合わせてフレームを構成するための画素情報を、次のようにして生成する。つまり、動き適用I/P変換部9は、画素情報を、現フィールドの前後に表示されるフレームのデータ又は現フィールド内の画素情報を用いて生成する。ただし、上述のように、字幕部分の補間画素の生成は、動き適用I/P変換によるものに限らず、例えば現フィールド内の周囲の画素を用いることで、インターレース画像を補間し、プログレッシブ画像を生成するようにしても良い。また、字幕部分であると判定された領域に対しては、動き適用I/P変換部9によってウィーブ以外の方法でプログレッシブ画像を生成するようにしても良い。
ウィーブI/P変換部10は、現フィールドと前フィールドのウィーブによりI/P変換された画素と、現フィールドと前フィールドのウィーブによりI/P変換された画素を、字幕候補ブロックとは逆のウィーブパターンに沿って出力する。つまり、ウィーブI/P変換部10は、字幕候補ブロックと判定されたブロックのウィーブパターンが、現フィールドと前フィールドとのウィーブであった場合、現フィールドと後フィールドのウィーブでI/P変換した画素データをセレクタ11に出力する。また、ウィーブI/P変換部10は、字幕候補ブロックと判定されたブロックのウィーブパターンが、現フィールドと後フィールドのウィーブであった場合、現フィールドと前フィールドのウィーブでI/P変換された画素データをセレクタ11に出力する。尚、このとき出力する画素データは、現フィールドから生成された1フレーム分である。
即ち、ウィーブI/P変換部10は、広いほうの領域(メインブロックの領域)における第1の合成画像(現フィールド)と組み合わせてフレームを構成するための画素情報として、ウィーブパターンの判定に応じた第2又は第3の合成画像の画素情報を用いる。尚、第2又は第3の合成画像の画素情報とは、前又は後フィールドの画素情報に対応する。
セレクタ11は、動き適応I/P変換部9から出力された画素データと、ウィーブI/P変換部10から出力された画素データのうち、出力装置に対して出力する画素データを字幕検出の結果によって切り替える。つまり、セレクタ11は、字幕部分として検出された領域については、動き適用I/P変換部9からの出力画素データを出力し、それ以外の領域については、ウィーブI/P変換部10からの出力画素データを出力する。
以上説明したように、本実施形態では、ウィーブ判定部6において、ブロック単位でウィーブパターンを判定する。そして、ブロック検出部7において、大部分を占めるウィーブパターンとは逆のウィーブパターンを示すブロックを字幕候補ブロックとして特定する。さらに、字幕検出部8が字幕候補ブロックから画素情報を用いるなどによって字幕の領域を絞り込むことで、字幕領域を特定する。
このようにすることにより、字幕を精度よく検出することができる。また、字幕部分とそれ以外の部分でプログレッシブ画像の生成手法を切り替えることにより、より高精彩なプログレッシブ画像を得ることができる。
つまり、例えば、それぞれ異なるフレームレートで生成された映画本編の領域と字幕の領域とを含む合成画像において、字幕の領域を特定する場合、輝度の情報だけで特定しようとすると、以下のような場合に誤検出してしまうことがある。すなわち、例えば、映画本編の画像内に、字幕と背景の輝度差と同様の輝度差を有するオブジェクト(例えば看板など)があった場合、それを字幕の領域として誤検出してしまうことがある。しかし、本発明のように、合成画像のブロックごとにウィーブパターンを判定し、判定されたブロックが少ないほうのウィーブパターンの領域を字幕の領域の候補として特定することで、字幕の領域をより精度良く特定できるようになる。
尚、実施形態では、映像信号の輝度を例として説明したが、RGBなどの現信号でも構わないし、色度信号を対象にしても構わない。
また、1:2のインタレース画像を例にとって説明したが、これに限定されず、各算出部を調整することで他の比率のインタレースに対応できる。
<第2の実施例>
上記第1の実施形態をパーソナルコンピュータ等の汎用の情報処理装置と、その情報処理装置に実行させるコンピュータプログラムでもって実現しても構わない。以下、その例を第2の実施形態として、第1の実施形態との差異を中心に説明する。
図11は、第2の実施形態における情報処理装置のブロック構成図である。
図中、301は装置全体の制御、及び種々の処理を行う中央演算処理装置(以下、CPU)である。302はBIOSやブートプログラムを記憶しているROM及びCPU301がワークエリアとして使用するRAMで構成されるメモリである。303はキーボード、マウス等のポインティングデバイス、及び各種スイッチで構成される指示入力部である。
304は、本装置の制御に必要なオペレーティングシステム(OS)、図13、図14を用いて後述する本実施形態で用いるアプリケーションプログラム、演算に必要な記憶領域を提供する外部記憶装置(例えばハードディスク装置)である。また、外部記憶装置304には、例えば後述するビデオカメラ306によって撮像された動画像データが記憶される。
305は、動画像データを記憶する可搬性記憶媒体(例えば、DVD−ROMやCD−ROMディスク)にアクセスする記憶装置である。
306は動画像をフィールド単位で撮像するビデオカメラである。つまり、ビデオカメラ306は、例えば映画用に撮像した毎秒24枚のプログレッシブ画像から得られた毎秒60枚のインターレース画像を外部記憶装置304に記憶させる。尚、本形態では、ビデオカメラ306によって撮像された毎秒60枚のインターレース画像に、毎秒30枚のプログレッシブ画像の字幕データが毎秒60枚のインターレース画像に変換されて合成されている。
307はモニタであり、309は通信回路であり、LAN、公衆回路、無線回路、放送電波で構成されている。308は通信回路309を介して符号化データを送受信する通信インタフェースである。本実施形態では、通信インターフェース308、外部記憶装置304、或いは、記憶装置305などからの動画像データに対して、字幕の領域を検出する処理を行う。
このような構成における映像信号処理について説明する。
処理に先立ち、指示入力部303からの指示により情報処理装置に電源が投入されると、CPU301はメモリ302のブートプログラム(ROMに格納されている)に従って、外部記憶装置304からメモリ302(RAM)にOSをロードする。そして、ユーザによる指示に従い、外部記憶装置304からアプリケーションプログラムをメモリ302にロードすることで、本装置が映像信号処理装置として機能することになる。このアプリケーションプログラムをメモリ302にロードした際のメモリ302の状況を図12に示す。
メモリ302には装置全体を制御し、各種ソフトウェアを動作させるためのOS、画像の字幕部分を検出するアプリケーションプログラム(映像処理ソフトウェア)が格納されている。更には、ビデオカメラ306を制御して動画像をディジタルデータとして1フィールドずつ入力(キャプチャ)する画像入力ソフトウェア、画像をモニタ307に表示する画像表示ソフトウェアが格納されている。更に、画像データを格納する画像エリア、各種パラメータ等を格納しておくワーキングエリアが存在する。
図13はCPU301が実行する映像信号処理を示すフローチャートである。
ステップS1では、各部の初期化が行われる。
ステップS2は、I/P変換処理のプログラムの終了が指示されたか否かの判定を行う。この判定は、ユーザが指示入力部303から終了指示が入力されたか否かに基づいて行う。ステップS2においてプログラムが終了していないと判定された場合はステップS3の処理へ進み、プログラムが終了したと判定された場合は、処理を終了する。
ステップS3では、フィールド単位での画像の入力を受け、ステップS4に進む。上述のように、ステップS3では、通信インターフェース308、外部記憶装置304、或いは記憶装置305などから動画像データが入力される。
ステップS4では字幕の検出を行い、ステップS5に進む。ステップS4における字幕の検出処理は後述する。
ステップS5では、ステップS4における検出結果に基づいて画素の補正を行い、ステップS2の処理に戻る。
ここで、ステップS4の字幕検出処理を、図14のフローチャートを用いて説明する。
S400では、現フィールドと前フィールドのウィーブにより生成されるフレームと、現フィールドと後フィールドのウィーブにより生成されるフレームにおける、ブロックごとのコーミング度を算出する。コーミング度の算出方法については、実施形態1で説明した通りである。
S401では、S400で算出されたコーミング度に基づいて、ウィーブパターンをブロックごとに判定する。ウィーブパターンの判定手順は、実施形態1における図8、及びその説明と同様である。
S402では、S401で判定されたウィーブのパターンのうち、少ないパターンに判定されたブロック(サブブロック)の領域を、字幕領域の候補として特定する。字幕領域の候補を特定する手順は、実施形態1における図9、及びその説明と同様である。
S403では、字幕位置を例えば輝度情報により正確に特定する。
即ち、S403では、第1の領域と第2の領域のうち、狭いほうの領域内の輝度情報によって、第2のフレームレートのプログレッシブ画像から得られたインターレース画像(字幕)が合成された画素の位置を特定する。尚、第1の領域は、第1の合成画像と組み合わせてプログレッシブ画像を構成すべきインターレース画像が第2の合成画像(前フィールド)である領域である。また、第2の領域は、第1の合成画像を組み合わせてプログレッシブ画像を構成すべきインターレース画像が第3の合成画像(後フィールド)である領域である。尚、この処理は、実施形態1における字幕検出部8が行う処理に対応する。
また、図13のステップS5では画素の補正を行う。上述のように、ステップS5では、字幕部分として検出された領域に対しては、例えば、動き適用IP変換などによって補間を行い、字幕部分以外の領域に対しては、判定されたウィーブパターンに基づいて他のフィールドとの組み合わせによりフレームを生成する。
即ち、第1の領域と第2の領域のうち、狭いほうの領域(サブブロックの領域)における第1の合成画像(現フィールド)と組み合わせてフレームを構成するための画素情報を、前後に表示されるフレームのデータ又は第1の合成画像内の画素情報を用いて生成する。一方、広いほうの領域(メインブロックの領域)における第1の合成画像と組み合わせてフレームを構成するための画素情報として、ウィーブパターンの判定に応じた第2又は第3の合成画像(前又は後フィールド)の画素情報を用いる。尚、この処理は、実施形態1における動き検出I/P変換部9、ウィーブI/P変換部10、及びセレクタ11の処理に対応する。
このように、本第2の実施形態においては、第1の実施形態で説明した字幕検出処理が、ソフトウェアで実現可能である。
なお、コンピュータプログラムは、CD−ROM等のコンピュータ可読記憶媒体に格納されており、これをコンピュータが有する読取装置(CD−ROMドライブ)にセットし、システムにコピーもしくはインストールすることで実行可能である。従って、このようなコンピュータ可読記憶媒体が本発明の範疇に入る。
<その他の実施例>
上記第1、第2の実施例においては、検出された字幕とそれ以外の部分に対して異なる補間方法を行うことについて説明したが、その限りではない。つまり、検出された字幕の範囲に対して、補間方法の切り替え以外に、例えば、字幕消去、シャープネス、ブラー、ノイズリダクション、拡大、縮小などの処理を行っても良い。
また、上記第1、第2の実施例においては、コーミング度の算出をブロック毎にフレーム全体に渡って算出する場合について説明したが、これに限らない。つまり、特定したいプルダウンパターンの画像(例えば字幕部分)が、表示画面の下側、もしくは上側に表示されるなど、予めわかっている場合、例えば、表示画面の中央部の一部について、コーミング度の算出を省略するようにしても良い。このようにすれば、より少ない負荷で、特定したいプルダウンパターンの画像を検出することができる。