以下、図面を参照しながら、本発明の動画像変換装置、動画像復元装置、および方法、並びにコンピュータ・プログラムの構成について説明する。なお、説明は、以下の項目に従って行なう。
(1)超解像効果を利用した動画像変換装置の基本構成
(2)本発明に従った動画像圧縮処理を実行する装置および方法
(3)本発明に従った動画像伸張処理を実行する装置および方法
(4)本発明に従った、低フレームレートデバイスのための動画像伸長処理を実行する装置および方法
[(1)超解像効果を利用した動画像変換装置の基本構成]
まず、本発明のベースとなる超解像効果を利用した動画像圧縮を実行する動画像変換装置の基本構成について説明する。なお、この基本構成は、本出願人が先に出願した特願2003−412501号に詳細を記載しているものであり、画像を小領域(ブロック)に分割し、各領域の移動速度に応じて画素数の間引きや、フレームレートの間引きを適応的に行うことでデータ量の圧縮を実現した構成である。
図1に特願2003−412501号に記載した動画像変換装置10の構成例を示す。この動画像変換装置10は、超解像効果を利用した動画像変換処理を行うことにより、データ量の削減による画質劣化を観測者が知覚しないようにデータ量の削減を行うことができる構成としたものである。
なお、超解像効果とは、観測者が、空間方向に離散的にサンプリングされた移動被写体を追従視する際に、表示画素数以上の解像度を知覚するという視覚的効果である。これは、人間は、ある時間内に呈示された複数の画像が加算されたものを知覚するという視覚特性を持つためである。この特性は、ブロックの法則として知られる視覚の時間的積分機能に起因しており、例えば、"視覚情報ハンドブック,日本視覚学会編,pp.219−220"などに記載されている。ブロックの法則が成り立つ積分時間は、背景光の強度などの呈示条件によって変化するが、およそ25ms乃至100msであるという報告がある。
図1に示す動画像変換装置10は、時間的積分機能によって引き起こされる超解像効果を利用した動画像変換処理を行うことにより、画質劣化を観測者が知覚しないようにデータを削減する圧縮を行う構成としたものである。図1の動画像変換装置10の構成について説明する。
ブロック分割部11は、入力された動画像の各フレームを、所定画素の区分領域としてのブロックに分割し移動量検出部12に供給する。移動量検出部12は、ブロック分割部11から供給された各ブロックについての移動量を検出し、ブロックとその移動量を、ブロック処理部13に送信する。ブロック処理部13は、移動量検出部12から供給されたブロックに対して、その移動量に応じた動画像変換処理、すなわち圧縮処理を施し、データ量を削減する。ブロック処理部13は、その処理の結果得られた、データ量が削減されたブロックについてのデータを、出力部14に供給する。出力部14は、ブロック処理部13から供給された、データ量が削減されたブロックについてのデータを、ストリームデータとしてまとめて出力する。
次に、図2を参照して、各部の詳細について説明する。ブロック分割部11の画像蓄積部21には、動画像変換装置10に供給された動画像のフレームが入力される。画像蓄積部21は、入力されたフレームを蓄積する。画像蓄積部21は、蓄積したフレームの数がN枚(Nは正の整数)になる度に、そのN枚のフレームを、ブロック分割部22に供給するとともに、N枚のフレームの中のM番目に記憶したフレーム(以下、M番目のフレームと称する)を、移動量検出部12(移動量検出部31)に供給する。例えば、N=4とする。
ブロック分割部22は、画像蓄積部21から供給されたN枚のフレーム(連続するN枚のフレーム)のそれぞれを、ある大きさ(例えば8×8、16×16)のブロックに分割し、移動量検出部12(ブロック分配部32)に出力する。ブロック分割部22はまた、N枚のフレームの中の、画像蓄積部21でP番目に記憶されたフレーム(以下、P番目のフレームと称する)の各ブロックを移動量検出部12(移動量検出部31)に供給する。P番目のフレームは、M番目のフレームと異なるフレームである。
次に、移動量検出部12について説明する。移動量検出部12の移動量検出部31は、ブロック分割部11のブロック分割部22から供給されたP番目のフレームの各ブロックの動きベクトルを、画像蓄積部21から供給されたM番目のフレームを参照して例えばフレーム間のブロックマッチング処理を実行して検出し、検出した動きベクトルをブロック分配部32に供給する。動きベクトルは、フレーム間の水平方向(X軸方向)および垂直方向(Y軸方向)の移動量を表している。なお、移動量検出部31は、移動量検出の精度を向上させるために画像を拡大し、拡大画像を適用した移動量検出を行なう構成としてもよい。
移動量検出部12のブロック分配部32には、ブロック分割部22から、N個単位でブロック(N枚のフレームのそれぞれの同一位置にある合計N個のブロック)が供給され、移動量検出部31から、そのN個のブロックの中のP番目のフレームのブロックの移動量が供給される。ブロック分配部32は、供給されたN個のブロックと移動量を、ブロック処理部13の、その移動量に対応する処理を行うブロック処理部51乃至53の中のいずかに供給する。
具体的にはブロック分配部32は、移動量検出部31から供給された、1フレーム間の水平方向(X軸方向)または垂直方向(Y軸方向)の移動量が2ピクセル(画素)以上である場合、ブロック分割部22から供給されたN個のブロックと移動量検出部31から供給された移動量を、ブロック処理部51に出力する。また、1フレーム間の水平方向と垂直方向の移動量がともに2ピクセル未満で、かつ1ピクセル以上の場合、ブロック分配部32は、N個のブロックと移動量を、ブロック処理部53に出力する。移動量がそのほかの場合には、ブロック分配部32は、N個のブロックと移動量をブロック処理部52に供給する。
すなわちブロック分配部32は、移動量検出部21から供給された移動量に基づき、最適なフレームレートおよび空間解像度を決定し、そのフレームレートおよび空間解像度にしたがって画像データを変換する処理を行うブロック処理部51〜53に、ブロック画像を分配する。
次に、ブロック処理部13の詳細を説明する。ブロック処理部13は、上述したように3個のブロック処理部51乃至53で構成されている。ブロック処理部51は、移動量検出部12のブロック分配部32から供給された、連続するN(例えばN=4)枚のフレームのそれぞれの同一位置にある合計N個のブロック(水平方向または垂直方向の移動量が2ピクセル以上である場合のN個のブロック)に対して、画素数を、同様にブロック分配部32から供給された移動量に応じて間引く処理(空間方向間引き処理)を行う。
具体的には、1フレーム間の水平方向の移動量が2ピクセル(画素)以上である場合、ブロック処理部51は、処理対象のブロックが図3(a)に示すように4×4ピクセルで構成されているとき、水平方向の4画素のうち1つの画素値のみを選択して代表値とする。図3(b)の例では、P00乃至P30の4画素のうちP10のみを代表値(標本点)として有効にする。その他の画素値は無効とする。同様に、P01乃至P31の4画素に対してはP11を代表値(標本点)とし、P02乃至P32の4画素に対してはP12を代表値(標本点)とし、P03乃至P33の4画素に対してはP13を代表値(標本点)とする。
1フレーム間の垂直方向の移動量が2ピクセル以上である場合、ブロック処理部51は、ブロックが図3(a)に示すように4×4ピクセルで構成されているとき、垂直方向の4画素のうち1つの画素値を標本点として有効とする。図3(c)の例では、P00乃至P03の4画素のうちP01のみを標本点として有効にする。その他の画素値は無効とする。同様に、P10乃至P13の4画素に対してはP11を標本点とし、P20乃至P23の4画素に対してはP21を標本点とし、P30乃至P33の4画素に対してはP31を標本点とする。
ブロック処理部51は、このような空間方向間引き処理を、供給された連続するN(例えばN=4)枚のフレームのそれぞれの同一位置にある合計N=4個のブロックに対してそれぞれ施すので、各ブロックのデータ量が1/4に削減され、4個のブロック全体のデータ量が1/4に削減される。ブロック処理部51は、データ量が1/4に削減された4個のブロックについてのデータを、出力部14に供給する。
次に、図2に示すブロック処理部52の実行する処理について説明する。図2に示すブロック処理部52は、移動量検出部12のブロック分配部32から供給された連続するN枚のフレームのそれぞれの同一位置ある合計Nブロック(水平方向と垂直方向の移動量がともに1ピクセル未満である場合のN個のブロック)に対して、フレーム数を間引く処理(時間方向間引き処理)を行う。
具体的にはブロック処理部52は、図4に示すように、連続する4枚のフレームF1乃至F4のそれぞれの同一位置ある4個のブロックBiを、その中の1つのブロック(この例の場合、フレームF1のブロックBi)にするフレーム数の間引き(4フレーム間のフレーム数の間引き)を行う。ブロック処理部52は、このような時間方向間引き処理により、データ量が1/4に削減された4個のブロックについてのデータ(1個のブロック)を、出力部14に供給する。選択された1つのブロックの画素データが4フレームに対応する標本点データとなる。
ブロック処理部53は、移動量検出部12のブロック分配部32から供給された、連続するN枚のフレームのそれぞれの同一位置にある合計N個のブロック(水平方向と垂直方向の移動量が1ピクセル以上で、2ピクセル未満である場合のN個のブロック)に対して、画素数の間引き処理(空間方向間引き処理)とフレーム数の間引き処理(時間方向間引き処理)をそれぞれ行う。
ブロック処理部53は、ブロック処理部51における間引き処理とは異なり、図5に示すように、1フレーム間の水平方向の移動量が1ピクセル以上で、2ピクセル未満である場合、ブロック処理部53は、処理対象のブロックが図5(a)に示すように4×4ピクセルで構成されているとき、水平方向の4画素のうち2つの画素値のみを選択して代表値とする。図5(b)の例では、P00乃至P30の4画素のうちP00とP20のみを代表値(標本点)として有効にする。その他の画素値は無効とする。同様に、P01乃至P31の4画素に対してはP01とP21のみを代表値(標本点)とし、P02乃至P32の4画素に対してはP02とP22のみ代表値(標本点)とし、P03乃至P33の4画素に対してはP03とP23のみ代表値(標本点)とする。
1フレーム間の垂直方向の移動量が1ピクセル以上で、2ピクセル未満である場合、ブロック処理部53は、処理対象ブロックが図5(a)に示すように4×4ピクセルで構成されているとき、垂直方向の4画素のうち2つの画素値を有効とする。図5(c)の例では、P00乃至P03の4画素のうちP00およびP02を代表値(標本点)として有効にする。その他の画素値は無効とする。同様に、P10乃至P13の4画素に対してはP10およびP12を代表値(標本点)とし、P20乃至P23の4画素に対してはP20およびP22を代表値(標本点)とし、P30乃至P33の4画素に対してはP30およびP32を代表値(標本点)とする。
さらにブロック処理部53は、フレーム数の間引き処理を行う。具体的にはブロック処理部53は、連続する4枚のフレームF1乃至F4のそれぞれの同一位置ある4個のブロックに対して、その中の2つのブロックを有効にするフレーム数の間引き処理を実行する。フレーム数の間引き処理においては、ブロック処理部53は、ブロック処理部52における間引き処理と異なり、図6に示すように、連続する4枚のフレームF1乃至F4のぞれぞれの同一位置にある合計4個のブロックBiを、その中のいずれか2つ(図の例では、フレームF1、F3の2個のブロック)にするフレーム数の間引き(2フレーム間のフレーム数の間引き)を行う。選択された2つのブロックの画素データが4フレームに対応する標本点データとなる。この場合、図5を参照して説明した空間方向の間引きにおいて、すでに1ブロックに8つの標本点選択が実行済みであり、2ブロックから総計16の標本点が選択され、これらが4フレームに対応する標本点データとして設定されることになる。
ブロック処理部53は、図5を参照して説明したデータ量を1/2とする空間方向間引き処理と、図6を参照して説明したデータ量を1/2とする時間方向間引き処理を、供給された4個のブロックに対して施すので、結果として4個のブロックのデータ量が(1/2)×(1/2)=1/4に削減される。ブロック処理部53は、データ量が1/4に削減された4個のブロックについてのデータを、出力部14に供給する。
出力部14は、ブロック処理部13のブロック処理部51乃至53のそれぞれから供給された、データ量が削減されたN個のブロックについてのデータからストリームデータを生成する。
本出願人は、先に出願済みの特願2003−412501において、上述した動画像変換装置を提案した、この動画像変換装置は、人間の視覚特性を鑑みて、動画像の微小領域毎に移動速度情報に応じて最適なフレームレートと空間解像度を決定してデータ量の圧縮を行う構成であり、人間の視覚系における時間積分機能を利用し、動被写体を目で追いかけるときに生じる超解像効果に基づいて、移動量に応じて移動方向に空間的な間引き処理を行うことでデータ量の削減を行う構成である。
[(2)本発明に従った動画像圧縮処理を実行する装置および方法]
上述の動画像変換装置におけるデータ圧縮方法において、時間方向間引きを行なうと、以下のような問題が発生する場合がある。
上述の動画像変換装置におけるデータ圧縮方法において、例えばMPEG、Motion Jpeg等の一般的な符号化手法を組み合わせて符号化・復号を行うと、以下のような問題が発生する場合がある。
(1)超解像効果を利用して画質を劣化させた場合、一般的な符号化手法では圧縮率が向上しない。
(2)超解像効果を利用して画質を劣化させた場合、高フレームレート動画像のままで一般的な符号化手法で圧縮した場合、圧縮率が向上しない。
以下、上記問題点を解決したデータ圧縮を実現する本発明に従った動画像圧縮処理を実行する装置および方法について説明する。
本実施形態における動画像変換装置の概略構成について説明する。図7は、本発明の一実施形態としての動画像変換装置の構成を示すブロック図である。図7に示すように、本実施形態の動画像変換装置100は、ブロック分割部110、移動量検出部120、ブロック処理部130、パック処理部140、出力部150を有する。
ブロック分割部110、移動量検出部120、およびブロック処理部130は、先に、図1を参照して説明した特願2003−412501号に記載した動画像変換装置10のブロック分割部11、移動量検出部12、ブロック処理部13と、ほぼ同様の構成を有し、同様の処理を実行する。すなわち、動画像変換装置100は、処理対象となる動画像データを入力し、ブロック分割部110において、動画像を構成するフレーム毎に所定領域のブロックに分割し、移動量検出部120に供給する。
移動量検出部120は、ブロック分割部110から供給された各ブロックについての移動量を検出し、ブロックとその移動量を、ブロック処理部130に送信する。ブロック処理部130は、移動量検出部120から供給されたブロックに対して、その移動量に応じた動画像変換処理、すなわち移動量に応じて空間方向間引き処理、または時間方向間引き処理、または空間および時間方向間引き処理によるデータ圧縮処理を施し、データ量を削減する。データ量を削減されたブロックはパック処理部140において、データ量の削減したブロックをMフレームごとにまとめられ、フレームレートをR/Mに変換する。なお、入力した動画像のオリジナルフレームレートをR、パック処理部においてまとめるフレーム数をMとする。
ブロック処理部130、パック処理部140において、データ量が削減されフレームレートがR/Mに変換されたブロックを、出力部150に供給する。出力部150は、パック処理部140から供給された、データ量が削減されフレームレートがR/Mに変換されたブロックデータを、フレーム単位で合成して、ストリームデータとしてまとめて、MPEG圧縮等の動画の圧縮を行うことのできる既存の符号化器へ出力する。
次に、本実施形態の動画像変換装置100のブロック分割部110、移動量検出部120およびブロック処理部130およびパック処理部140の構成について図8を参照して説明する。図8は本実施形態における動画像変換装置100のブロック分割部110、移動量検出部120およびブロック処理部130およびパック処理部140の構成を示すブロック図である。
処理対象となる動画像は、ブロック分割部110内の画像蓄積部111において、Nフレーム分蓄積される。なお、本実施例ではN=4である。蓄積されたフレームはブロック分割部112においてある大きさのブロック、例えば8pixel×8pixelや16pixel×16pixel等のブロックに分解され、ブロック分配部32に送られる。また、この時の分割されたフレームのブロックサイズは移動量検出部31へ送られる。
移動量検出部121は、画像蓄積部111に蓄積されたフレームの内M番目とM+L番目のフレームを取得し、ブロック分割部112からのフレームが分割されたブロックのサイズに合せたブロック単位で、既存の手法、例えばブロックマッチング手法等を用いてフレームの各々のブロックに関する動きベクトルを検出する。なお、本実施例では、M=2、L=1とした処理例として説明する。すなわちN=4フレームを1つの処理単位として、4フレーム中のM=2番目のフレームと、M+L=2+1=3番目のフレームの各々のピクセル位置の対応するブロックとのブロックマッチングを実行して動きベクトルを検出し、この動きベクトルに基づいてブロックに含まれる被写体の移動量を算出する。
さらに、移動量検出部121において検出された移動量を復号に使用するため、移動量検出部121の検出した移動量情報は、出力202にて出力部150に出力し、後述の符号化器において符号化される動画像と共に符号化する。なお、移動量を示す値は使用した動きベクトル検出手法やエラー低減手法に応じて様々な値が適用可能である。
また、本実施例では、移動量検出部121は、上述したように、Nフレーム中の連続する2フレーム(M=2と、M+L=2+1=3)を用いたブロックマッチングによって移動量を算出する構成としたが、移動量検出部121の実行する移動量検出処理は、その他のフレーム選択などその他の手法を適用した処理として実行してもよい。さらに、2フレームに基づく移動量検出構成ではなく、Nフレーム中の全フレームという選択も含むどのようなフレームの組み合わせに基づいて移動量を算出しても良い。
ブロック分配部122は、各ブロックに対して異なる圧縮処理を行うブロック処理部131〜133へブロックを振り分ける処理を実行する。ブロック分配部122の入力は移動量検出部121から出力される各々の処理単位のNフレームに対応するブロックの移動量と、ブロック分割部112から出力されるブロックに分割されたNフレーム分の画像データである。
ブロック分配部122は入力されたNフレーム分のブロックを、各ブロックの移動量に従い、ブロック処理部131〜133のいずれかに出力する。さらに、ブロック分配条件を復号に使用する場合には、ブロック分配条件を、例えばブロック分配フラグとして設定し、出力201として出力部150出力し、後述の符号化器において符号化される動画像と共に符号化する。
ブロック分配部122は、ブロックの分配条件として移動量検出部121の検出した移動量情報を適用する。本実施例では、1フレーム間の水平または垂直方向移動量のうち値の大きい方が2ピクセルを超えた場合には空間方向間引き処理を実行するブロック処理部a131、1フレーム間の水平または垂直方向移動量のうち値の大きい方が2ピクセル未満、かつ1ピクセル以上の場合には時間方向および空間方向の間引き処理を実行するブロック処理部c133へ出力し、そのほかの場合、すなわち、1フレーム間の水平または垂直方向移動量のうち値の大きい方が1ピクセル未満の場合には時間方向間引き処理を実行するブロック処理部b132へ出力する。なお、ブロック分配部122における出力先決定のための上記条件はあくまでも本実施例のための一例であり、他の条件を適用してもよい。
前述したように、ブロック処理部130内の各々のブロック処理部131〜133は、ブロック分配部122から処理対象となるブロックデータと対応する移動量情報を受け取り、データ圧縮処理としての間引き処理を実行する。
ブロック処理部a131は入力されたブロックの画素数を、処理対象ブロックデータと同時に入力された対応する移動量に応じて空間間引き処理を実行する。本実施例では、水平方向の移動量が2ピクセル以上であるときにはブロック内の画素を1x4ピクセル単位の集合に分け、各集合の画素値を各集合に含まれる4つの画素の内いずれかの値にすることで画素数の間引きを実現している。また、垂直方向の移動量が2ピクセル以上であるときにはブロック内の画素を4x1ピクセル単位の集合に分け、各集合の画素値を各集合に含まれる4つの画素の内いずれかの値にする。これらの処理は、先に図3を参照して説明した処理と同様の処理である。さらに垂直・水平方向の移動量がともに2ピクセル以上であるときには、ブロック内の画素を2x2ピクセル単位の集合に分け、各集合の画素値を各集合に含まれる4つの画素の内いずれかの値にする。
本来、4画素の値を全て同一にすることは著しい画質の劣化を招くが、ブロック処理部a131は、1フレーム間の水平または垂直方向移動量のうち値の大きい方が2ピクセルを超えたブロックについてのみ、これらの空間間引きを行う構成であり、前述のブロックの法則として知られる視覚の時間的積分機能に起因して、超解像効果がもたらされ、観測者が、空間方向に離散的にサンプリングされた移動被写体を追従視する際に、表示画素数以上の解像度を知覚するという視覚的効果が発生し、観測者は、ほとんど画質の劣化を感ずることがない。すなわち、ブロックが十分な高速で移動しており、かつ動画像のフレームレートが十分大きければ、画質の劣化を人間が知覚することはできない。
ブロック処理部b132は入力されたブロックのフレーム数の間引き処理、すなわち時間方向の間引き処理を実行する。入力されるブロックはNフレーム画像中の同一位置ブロックN個である。本実施例では、あるブロックの水平方向、垂直方向の移動量がともに1ピクセル未満であった場合、入力された4個のブロックの全画素値を4個のブロックのうちいずれかのブロックの値にする。この処理は、先に図4を参照して説明した処理に相当する。
ブロック処理部c133は入力されたブロックの画素数とフレーム数の間引きを実行する。すなわち空間間引き処理と、時間方向の間引き処理との両者を実行する。基本的な動作はブロック処理部a131の空間間引き処理と、ブロック処理部b132の時間方向間引き処理とを組み合わせた処理を実行する。
ブロック処理部c133は、画素数の間引き量とフレーム数の間引き量が、ブロック処理部a131の空間間引き処理と、ブロック処理部b132の時間方向間引き処理とは異なる。まず空間間引きとしての画素数の間引き量に関しては、ブロック処理部a131のように4ピクセル単位で行うのではなく2ピクセル単位で行われる。つまりブロック処理部a131においては1x4、4x1、2x2の3通りの間引き方法が存在したが、ブロック処理部c133の実行する空間間引き処理は、1x2および2x1の2通りのみが存在する。すなわち、水平方向の移動量が1〜2ピクセルである場合、ブロック内の画素を1x2ピクセル単位の集合に分け、各集合の画素値を各集合に含まれる2つの画素の内いずれかの値にすることで画素数の間引きを実現している。また、垂直方向の移動量が1〜2ピクセルであるときにはブロック内の画素を2x1ピクセル単位の集合に分け、各集合の画素値を各集合に含まれる2つの画素の内いずれかの値にする。この処理は、先に、図5を参照して説明した処理に相当する。
また、ブロック処理部c133は、時間方向の間引き処理、すなわち、フレーム数の間引きも実行するが、ブロック処理部b132のように4フレーム単位で行うのではなく2フレーム単位で行うということに違いがある。この処理は、先に図6を参照して説明した処理に相当する。
ブロック処理部131〜133において間引き処理が施されデータ量が削減されたブロックは、パック処理部141〜143に送られる。パック処理部では各間引き処理に合せて、ブロックをMフレームごとにまとめ、フレームレートをR/Mに変換し出力部150へブロックを出力する。なお、入力した動画像のオリジナルフレームレートをR、パック処理部においてまとめるフレーム数をMとする。
続いて、パック処理部140の実行する処理について説明する。なお、本実施例では、パック処理部においてまとめるフレーム数:Mを、M=4とし、フレームレートを1/4にする場合について説明する。
パック処理部a141、パック処理部b142、パック処理部c143はそれぞれ異なる動作をおこなう。まず第1のパック処理部a141の処理について図9を用いて説明する。
パック処理部a141の入力はブロック処理部a131の出力である。ブロック処理部a131の出力は画素の空間間引き処理を施された連続する4フレームそれぞれから得られた4つのブロックである。すなわち、図3を参照して説明した態様での空間間引きが実行された4つのブロックである。
これらのブロックは図9においてブロック221〜224として表記している。これらブロック内部の1x4画素、例えば図9における画素231〜234では、ブロック処理部a131による空間間引きがなされ、全て同じ値に変換されている。具体的には、ブロック241の1x4画素の画素値は全てp1であり、他のブロック242〜244に関しても同様である。第1のパック処理部a141は、これら4つの画素値p1〜p4によって一つの1x4画素の領域を構成することでフレーム数を1/4にする処理を行う。
すなわち、図9におけるブロック225はパック処理部a141の出力であり、ある1x4画素からなる画素領域235の画素値はp1からp4によって構成される。以上はブロック処理装置が水平方向の間引き処理、つまり、1x4画素に対する間引き処理を行った場合であり、4x1画素、2x2画素の場合においても同様のパック処理がパック処理部a141によって行われる。
次に、第2のパック処理部b142の処理について説明する。パック処理部b142への入力はパック処理部a141と同様に連続する4フレームから得られる4つのブロックであるが、パック処理部a141と異なり、これらのブロックは、時間方向の間引きがなされたフレーム対応のブロック(図4参照)であり、選択された代表画素値は、フレーム共通であり、完全に同一な画素値を持つブロックとなる。従って、4つのブロックのうち適当な1つのブロックをパック処理部b142の出力とするパック処理を実行する。
続いて、第3のパック処理部c143の処理について、図10を参照して説明する。パック処理部c143への入力は他のパック処理装置と同様に連続する4フレームから得られる4つのブロックである。これらは、空間間引きと時間間引きの施されたブロックである。図10に示すように、これらのブロックのうち1番目と2番目のフレームから得られるブロック、すなわち、ブロック241とブロック242は同一の画素値(P1)251、252をもつ。また3番目と4番目のフレームから得られるブロック、すなわち、ブロック243とブロック244も同一の画素値(P3)253、254をもつ。
パック処理部c143は、2番目のフレーム対応のブロック242と、3番目のフレームから得られるブロック243の2つのブロックを用いて、パック処理を実行する。図9を参照して説明したパック処理部a141は、4画素単位での処理を実行したが、パック処理部c143は、2画素単位の処理となる。すなわち、図10の画素251〜254に示すように、隣接する2画素が同じ値となっており、これらの画素を画素255のように並べて出力ブロック245を構成することでフレームレートを1/4にすることができる。なお、図10では1x2画素単位での間引き処理について示したが、2x1画素単位で処理を行う場合も同様である。
なお、図9に示す例においては画素値p1〜p4を左から順に並べることで画素領域235を構成し、図10に示す例においては、図10の出力ブロック245の画素255ではp2を左にp3を右に配置する設定としたが、画素値を並べる順序については、様々な手法が適用でき、上記パックアルゴリズムと、復号側において実行するアンパック処理のアルゴリズムが整合していればよい。また、本実施例で採用したパックアルゴリズムについては詳細を後述する。
次に、本実施形態における出力部150の構成について図11を参照して説明する。図11は本実施形態における出力部150の構成および、出力部150に対する入力、出力部150からの出力構成を示すブロック図である。
動画像データは、ブロック処理部130で、処理対象ブロックに基づいて検出された各移動量に応じて、空間方向間引き、時間方向間引き、空間および時間方向間引きのいずれかの異なる態様で間引き処理がなされた後、パック処理部141〜143においてパック処理がなされ、出力部150内のブロック合成部151に入力され、フレームレートがR/Mであるフレーム画像へ合成される。なお、入力した動画像のオリジナルフレームレートがR、パック処理部においてまとめるフレーム数がMである。
ブロック合成部151において、合成された画像はブロック毎に異なる圧縮処理としての間引き処理が行われ、かつ、フレームレートがR/Mになった画像フレームデータであり、その合成画像は画像符号化部170に送られ符号化される。動画像符号化部170の実行する符号化処理は、MPEG、Motion Jpeg等の一般的な符号化手法による符号化である。
ブロック合成部151の役割は、パック処理部141〜143によって処理されたブロックデータを、画像符号化部170による符号化処理を実行可能な動画像として合成することにある。本実施例では、ブロック処理部131〜133においてデータを1/4に削減しているので、処理されたブロックを元のフレームレートの1/4にフレームレートのフレームに再構成し60fpsの動画像として符号化を行う。ただし、これらのフレームレート値とデータの削減割合は、本実施例のための一例に過ぎず、実際はどのようなフレームレートであっても良い。
移動量検出部120のブロック分配部122から出力されたブロック分配条件、例えばブロック分配フラグである出力201と、移動量検出部121の検出した移動量情報である出力202は、出力部150のサイド情報合成部152に入力される。サイド情報合成部152は、これらのブロック分配フラグ、移動量情報を含むデータを、サイド情報符号化部180において符号化可能なデータ構成に合成する処理を実行する。
本実施例では、各ブロックがブロック処理部131〜133のどの間引き処理が実行されたかを示すブロック分配フラグと、そのブロックの動きベクトルの方向と、動きベクトルの速度を複数の範囲に分割してどの範囲の速度であるかを示す動きベクトル速度フラグを、サイド情報として符号化する。この時の本実施例における動きベクトル速度フラグの範囲は後述する。なお、符号化されるサイド情報は本実施例のための一例に過ぎず、復号側で復号時に必要な情報が含まれていればどのような情報を符号化してもよい。
画像符号化部170では、入力されたフレームを一般的な符号化手法、例えばMPEG、Motion Jpeg等により画像を符号化し復号側へ伝送する。サイド情報符号化部180では、入力されたフレームを一般的な符号化手法、例えば、LZH、Zip等により符号化し復号側へ伝送する。ただし、サイド情報に関しては、Lossyな符号化を行ってもかまわないが、Loss Less符号化を行うことが望ましい。なお、符号化されるサイド情報は、符号化された画像情報に埋め込んでもよいし、画像情報とは別に復号側へ伝送してもよい。
[パック処理の詳細]
続いて、本実施例における動画像変換装置におけるパック処理部140の詳細について説明する。なお、本実施例では、パック処理部においてまとめるフレーム数Mを、M=4とし、フレームレートを1/4にする処理例について説明する。
前述の通り、パック処理部140はブロック処理部130において間引かれたブロックを入力し、ブロックをMフレームごとにまとめ、フレームレートをR/Mに変換する。ここで、図12に示す画像を処理対象とする入力画像として、間引き処理およびパック処理を実行した場合について説明する。図12に示す入力画像はある1つのフレームの4ブロックの画像を示している。1つのブロックは4×4ピクセルである。
この画像に表示される被写体が左方向へ2ピクセル/フレームの速度で移動している場合、横方向の2ブロック(4×8ピクセル分)について、前述のパック処理に基づいて処理を行った場合について考察する。
空間間引き処理対象の2ブロックを図13に示す。ここで、フレーム1〜4のブロックの画像データは、各フレーム間で、2ピクセルずつ左に移動する移動被写体をデータとして持つ動画像データである。すなわち、画像が2ピクセル/フレームで左に動く画像データである。これらのブロックはブロック処理部131において空間方向間引き処理が実行される。
ブロック処理部131において空間方向間引き処理が実行された結果が、図14に示すデータであり、各ブロックの画素データは、代表画素(標本点)によって、横方向のデータ量が1/4に削減される。間引かれた画素は前述のパック処理によってフレームレートがR/Mに変換される。
パック処理部によるパック処理結果のデータを図15に示す。図15は、M=4としフレームレートを1/4にする場合の例であるため、4フレーム分の2ブロック(4×8ピクセル分)が図15に示す1フレーム分の2ブロック(4×8ピクセル分)になっている。
ここで、図12の元画像と図15のパック処理結果を比べてみる。すると、図15のパック処理結果としてのブロックAとブロックBの境界のピクセル、すなわち、ブロックA側の画素P70〜P73からなる画素データ列302と、ブロックB側のP50〜P53からなる画素データ列301が、図12に示す元画像の横方向の順序と入れ替わってしまっていることがわかる。
図12に示す元画像では、画素データ列301は、画素データ列302の左側に位置するが、間引き処理とパック処理を行なった結果データである図15に示すデータでは、画素データ列301は、画素データ列302の右側に位置する構成となっており、これらの画素データ列の位置が入れ替わってしまっている。
先に、図11を参照して説明した本実施例の動画像変換装置の構成では、パック処理部140においてパックされた画像は一般的な符号化手法(MPEG、Motion Jpeg等)により符号化処理が実行される。このような一般的な符号化処理では、近接する画素の画素値の変化が少ない滑らかな画像データほど圧縮率が高まり、近接する画素の画素値の変化が大きい画像データでは、圧縮率が低下するという一般的な性質を持つ。従って、この図15に示すパック処理結果画像のように、元画像の画素順を変化させてしまった画像では、画素値の不自然な変化が発生することになり、一般的な符号化手法(MPEG、Motion Jpeg等)を適用した場合に、圧縮率を低下させる原因となる。
本発明の動画像変換装置では、このように圧縮率に悪影響を及ぼすことのない処理を実現する。
まず、間引き処理とパック処理によって生成されたパック後のパックブロックにおける画素列の入れ替えの発生状況について解析する。図15に示すパック後のパックブロック中の各画素列が図12に示す元画像のどの画素列にあたるのかを算出する。元画像の移動速度をvピクセル/フレームとした時、間引き処理とパック処理によって生成されたパック後のパックブロックに設定される各画素列の元画像における相対画素位置xを算出する。
v:処理対象画像の移動速度,v=ピクセル/フレーム
m:処理対象となった元画像のフレーム番号,m=0,1,2,・・
n:パックブロックのブロック番号(0,1,2・・)
mは、時間的に先行するものから0,1,2・・のフレーム番号を設定し、nは、移動方向に沿って、0,1,2,のブロック番号を付与する。なお、1つのパックブロックは、1つの間引き処理およびパック処理単位の画素データによって構成されるブロックである。
このようなパラメータを設定したとき、間引き処理とパック処理によって生成されたパック後のパックブロックに設定される各画素列の元画像における相対画素位置xは、次式(数式1)によって算出される値となる。
x=m×v+4×n・・・(数式1)
図16を参照して、上記数式1を用いた相対画素位置xの具体的な算出処理例について説明する。図16(a)は、図12に示すと同様の間引き、パック処理前の1つのフレームにおける元画像データである。この画像データは、図12〜図15を参照して説明した処理によって生成したパックブロックが図16(b)に示すブロックであり、図16(b)は図15に示すと同様のパックブロックである。
図16(a)に示す元画像データは、図13を参照して説明したように、2ピクセル/フレームの移動速度で水平方向に移動している。すなわち、
v=2
である。
パックブロックは2つのブロックからなる。すなわち、
パックブロック番号n=0、
パックブロック番号n=1
である。
また、パックブロックに格納される処理フレームは、図13、図14を参照して説明したようにフレーム1〜4の各フレームの代表画素(標本点)である。ここで、
フレーム1:フレーム番号m=0
フレーム2:フレーム番号m=1
フレーム3:フレーム番号m=2
フレーム4:フレーム番号m=3
とする。
図16(b)に示すパックブロックn=0と、パックブロックn=1には、それぞれフレーム番号m=0〜4の画素データが格納されている。すなわち、パックブロックの左から、各画素列に対応するパックブロックnと、フレーム番号mの値は、
(1)パックブロックn=0、フレームm=0
(2)パックブロックn=0、フレームm=1
(3)パックブロックn=0、フレームm=2
(4)パックブロックn=0、フレームm=3
(5)パックブロックn=1、フレームm=0
(6)パックブロックn=1、フレームm=1
(7)パックブロックn=1、フレームm=2
(8)パックブロックn=1、フレームm=3
となる。
これらの8つの画素列の各々について、図16(a)に示す元画像データのどの位置にあったかを示す相対画素位置xを上記式(数式1)を用いて算出した結果を図17に示す。なお、移動速度v=2ピクセル/フレームとした。
(1)n=0,m=0:x=0×2+4×0=0
(2)n=0,m=1:x=1×2+4×0=2
(3)n=0,m=2:x=2×2+4×0=4
(4)n=0,m=3:x=3×2+4×0=6
(5)n=1,m=0:x=0×2+4×1=4
(6)n=1,m=1:x=1×2+4×1=6
(7)n=1,m=2:x=2×2+4×1=8
(8)n=1,m=3:x=3×2+4×1=10
となる。これらの対応を示すと、図16の点線矢印で示す対応となる。
パックフレーム数4として、パックブロックを2とした場合の、移動速度vと相対画素位置xとの対応関係を示すグラフを図18に示す。図18において、実線が第1フレーム(m=0)の各パックブロック(n=0,1)における代表画素(標本点)、点線が第2フレーム(m=1)の各パックブロック(n=0,1)における代表画素(標本点)、破線が第3フレーム(m=2)の各パックブロック(n=0,1)における代表画素(標本点)、一点鎖線が第4フレーム(m=3)の各パックブロック(n=0,1)における代表画素(標本点)についての移動速度vと相対画素位置xとの対応関係を示している。
パックされた1つのブロックには4フレーム(m=0〜3)の代表画素が含まれているため、元画像の移動速度が上がるにつれて1つのブロック内のパックされた画素間の元画像上での距離が離れていくことがグラフから読み取れる。
また、パックされた1つのブロックにはかならず第一フレームの画素が含まれており、ゆえに、元画像の移動速度に依存せずに、その画素は隣のパックされた1つのブロックの第一フレーム画素とM=4の場合4ピクセル離れていることがグラフから読み取れる。
図18のグラフ上に示すA〜Eは、各ラインが交差するポイントを示している。この交差ポイントより上において、元画像の画素列と、パックブロックの画素列が入れ替わる。例えばポイントAは、移動速度v=2において示されるポイントであるが、
移動速度v<2では、
n=1,m=0の画素列は、n=0,m=2の画素列より右側に位置しているが、
移動速度v≧2では、
n=1,m=0の画素列は、n=0,m=2の画素列より左側に位置することになる。
すなわち、この移動速度v=2以上で、画素列の入れ替わりが発生してしまうことになる。
他のポイントB〜Eも同様の現象が発生するポイントを示している。
グラフからも読み取れるように、間引き処理およびパック処理を実行する元画像の移動速度が上がるにつれて、パックブロック内の画素列と、元画像の画素列位置の入れ替わりがより多く発生することが読み取れる。
そこで、本発明に従った動画像変換装置では、例えば図10を参照して説明したようなパック処理によって生成したパックブロックについて、パックブロックの構成画素の画素位置を検証する。すなわち、パックブロック構成画素の画素位置と元画像の画素位置との入れ替わりの発生の有無を検証し、入れ替わっている画素が存在する場合には、パックブロックの画素位置を元画像の画素位置に対応するように変更する補正処理(ソート処理)を実行する構成とした。この補正処理後のパックブロックをMPEG等の符号化手段に出力して符号化する構成とすることで、圧縮効率の高い圧縮データの生成が可能となる。すなわち、パックブロックの画素位置変化を補正し、パック処理後の画素順を元画像に近づけたパック処理を行う構成とした。
本実施形態における動画像変換装置のパック処理部140、すなわちソート処理を実行するパック処理部の詳細構成について、以下、説明する。なお、パックブロックにおける画素位置が元画像の画素位置と入れ替わる場合は、間引き処理として空間方向間引き処理を実行している場合のみである。すなわち時間方向間引き処理を実行してパック処理を行なう場合は、間引き処理単位とする複数フレームから1つのフレームのみの構成画素を適用してパックブロックを生成するので画素データの入れ替われは発生しない。
すなわち、図8に示す空間方向間引き処理を実行するブロック処理部a131の間引き処理データについてのパック処理を実行するパック処理部a141と、空間方向および時間方向間引き処理を実行するブロック処理部133の間引き処理データについてのパック処理を実行するパック処理部c143において、パックブロックにおける画素位置が元画像の画素位置と入れ替わる可能性があり、これらの2つのパック処理部において、必要に応じてパックブロックのソート処理を行なう。以下、パック処理部a141とパック処理部c143の構成及び処理について、順次、説明する。
[画素ソーティングを適用したパック処理]
まず、空間方向間引き処理を実行するブロック処理部a131の間引き処理データについてのパック処理を実行するパック処理部a141の構成及び処理について、図19を参照して説明する。
図19は、空間方向間引き処理を実行するブロック処理部a131の間引き処理データについてのパック処理を実行するパック処理部a141の構成の詳細を示すブロック図である。
パック処理部a141のブロック分配部351には、ブロック処理部a131の間引き処理データ、すなわち、空間方向間引き処理を実行されたブロックデータが入力され、さらに、図8に示す移動量検出部121の検出情報としてのブロック対応の移動量を示す動きベクトル情報が入力される。
ブロック分配部351に入力された空間方向間引き後のブロックは動きベクトルと共に、ブロック分配部351内の図示されないブロック・動きベクトル保存部に蓄えられる。ブロック分配部351はブロック・動きベクトル保存部に蓄えられたブロックのうち、左右方向に動いているブロックは水平方向1/4間引き連続ブロック抽出部352へ、上下方向に動いているブロックは垂直方向1/4間引き連続ブロック抽出部353へ出力する。この時、出力されたブロックに対応するブロックの動きベクトルも、各ブロックに対応する属性情報としてペアで出力される。
水平方向1/4間引き連続ブロック抽出部352は、水平方向に2ブロック以上連続しているブロックを検出し、2ブロック以上連続しているブロックをブロック内画素ソーティングパック処理部354へ出力する。この時、出力されたブロックに対応するブロックの動きベクトルも、各ブロックに対応する属性情報としてペアで出力される。ブロック内画素ソーティングパック処理部354においては、画素列のソート処理が実行される。なお、ここで処理対象となるブロックは、間引き処理のなされたブロックの組であり、この例の場合は、ブロック分配部351において水平方向の移動量を持つブロックを対象として空間方向間引きのなされたブロックが水平方向に2つ以上連続しているもののみが対象となる。
本実施例では、画像が2ピクセル/フレーム以上で移動しているブロックが、ブロック処理部131において空間方向間引き処理の対象として選択されるブロックである。このような空間間引き処理対象ブロックであり、かつ移動方向が水平方向である連続ブロックが、ブロック内画素ソーティングパック処理部354において処理されるブロックとなる。例えば、図20に示すように、間引き処理単位が4フレーム単位である場合、フレーム1〜3において、ブロックkが2ピクセル/フレーム以上の水平方向の移動量を持つブロックとして、ブロック分配部351において空間間引き処理が実行され、ブロックkに水平方向に隣接するブロックk+1も2ピクセル/フレーム以上の水平方向の移動量を持つブロックとして、ブロック分配部351において空間間引き処理が実行された場合、これらのブロックk,k+1についての間引き処理結果が、ブロック内画素ソーティングパック処理部354へ入力される。これは、先に図14を参照して説明した各フレーム毎の間引き処理のなされた結果が、ブロック内画素ソーティングパック処理部354へ入力されることに相当する。
また、垂直方向1/4間引き連続ブロック抽出部353は、垂直方向に2ブロック以上連続しているブロックを検出し、2ブロック以上連続しているブロックをブロック内画素ソーティングパック処理部355へ出力する。この時、出力されたブロックに対応するブロックの動きベクトルも、各ブロックに対応する属性情報としてペアで出力される。ブロック内画素ソーティングパック処理部355においては、画素列のソート処理が実行される。なお、ここで処理対象となるブロックは、間引き処理のなされたブロックの組であり、この例の場合は、ブロック分配部351において垂直方向の移動量を持つブロックを対象として空間方向間引きのなされたブロックが垂直方向に2つ以上連続しているもののみが対象となる。
本実施例では、画像が2ピクセル/フレーム以上で移動しているブロックが、ブロック処理部131において空間方向間引き処理の対象として選択されるブロックである。このような空間間引き処理対象ブロックであり、かつ移動方向が垂直方向である連続ブロックが、ブロック内画素ソーティングパック処理部355において処理されるブロックとなる。例えば、図21に示すように、間引き処理単位が4フレーム単位である場合、フレーム1〜3において、ブロックkが2ピクセル/フレーム以上で垂直方向に移動量を持つブロックとして、ブロック分配部351において空間間引き処理が実行され、ブロックkに垂直方向に隣接するブロックrも2ピクセル/フレーム以上で垂直方向に移動しているブロックとして、ブロック分配部351において空間間引き処理が実行された場合、これらのブロックk,rについての間引き処理結果が、ブロック内画素ソーティングパック処理部355へ入力される。
図20や、図21に示す連続ブロック以外のブロックについては、ソート処理対象ブロックとせず、パック処理部356に入力され、ソート処理を伴わないパック処理が実行されることになる。パック処理部356は入力されたブロックを、先に、図9を参照して説明したように、間引き結果画素データとしての代表画素を集積するパック処理を実行してパックブロックを生成し、出力部150のブロック合成部151へ出力する。
水平方向の連続ブロックについてのソートおよびパック処理を実行するブロック内画素ソーティングパック処理部354は入力されたブロックから生成されるパックブロックに含まれる画素位置変化を補正するソート処理を含むパック処理を実行してパックブロックの生成処理を行い、ブロック合成部151へ出力する。ブロック内画素ソーティングパック処理部354の構成および処理について図22に示す。
図22に示すブロック内画素ソーティングパック処理部354は、入力された、連続している間引かれたブロックをブロック保存部361に一旦保存する。ブロック内画素相対位置算出処理部362は、ペアで入力されたブロックの動きベクトルを適用して、前述の数式1、すなわち、
v:処理対象画像の移動速度,v=ピクセル/フレーム
m:処理対象となった元画像のフレーム番号,m=0,1,2,・・
n:パックブロックのブロック番号(0,1,2・・)
としたとき、パックブロックに設定される各画素列の元画像における相対画素位置xを、
x=m×v+4×n
として求める数式1に基づいて、先頭のパックされたブロックからの元画像上での相対画素位置xを算出し、算出した値、相対画素位置xを、ブロック内画素相対位置保存部364に一旦保存する。
前述の図14で示した間引きブロックを処理対象としたときの、パックブロックに含められる各フレームの代表画素の相対画素位置xの値の算出例について、図23に示す。間引き処理およびパック処理単位の連続フレーム1〜4の、水平方向に連続している間引かれたブロックに対して、ブロック内画素相対位置算出処理部362は前述の数式1(x=m×v+4×n)を用いて、各フレームの代表画素列についての相対画素位置xを計算する。
例えば、フレーム1についての各代表画素列の相対画素位置xの値は、
(1a)n=0,m=0:x=0×2+4×0=0
(1b)n=1,m=0:x=0×2+4×1=4
となり、
また、フレーム2についての各代表画素列の相対画素位置xの値は、
(2a)n=0,m=1:x=1×2+4×0=2
(2b)n=1,m=1:x=1×2+4×1=6
また、フレーム3についての各代表画素列の相対画素位置xの値は、
(3a)n=0,m=2:x=2×2+4×0=4
(3b)n=1,m=2:x=2×2+4×1=8
また、フレーム4についての各代表画素列の相対画素位置xの値は、
(4a)n=0,m=3:x=3×2+4×0=6
(4b)n=1,m=3:x=3×2+4×1=10
となる。
なお、これらの相対画素位置xについて、元画像との対応は、先に説明した図16の点線矢印で示す対応となる。
ブロック保存部361に保存された連続している間引かれたブロックは、まず、パック処理部363において、通常のパック処理、すなわち、先に図9を参照して説明したパック処理が行われる。図23に示す隣接する2ブロックについての間引き処理結果に対してパック処理を実行して生成した初期的なパックブロックの例を図24(A)に示す。
図24(A)に示す例では、初期パックブロックに、ブロック内画素相対位置算出処理部362が算出した各フレームの代表画素列についての相対画素位置x情報を対応付けて示している。初期パックブロックは、フレーム順に画素位置を並べたパックブロックである。なお、図24(A)に示す初期パックブロックは、先に図16(b)を参照して説明したと同様の画素配列であり、元画像(図16(a)参照)と比較した場合、画素位置の入れ替えが発生している。
パック処理部363におけるパック処理によって生成されるパックブロックは、図24(A)に示す初期パックブロックであり、この初期パックブロックはソーティング部365に入力される。ソーティング部365は、この初期パックブロックを入力するとともに、プロック内画素相対位置保存部364から、相対位置情報xを入力する。ソーティング部365は、相対画素位置xに基づいて、初期パックブロックの各画素列のソーティングを行う。すなわち図24(A)に示す初期パックブロックの各画素列に対応する相対画素位置xを左から昇順に並べるソート処理を実行する。
このソート処理の結果、図24(B)に示すパックブロックが生成される。このように、ソーティング部365は、入力された初期パックブロックの画素列に対応する相対位置情報xをキーとして画素列ソーティングを行う。この結果、例えば図24に示すパックブロックの例では、4列目と5列目の画素列が入れ替わり、画素位置変化の補正が行われた図24(B)に示すパックブロックが生成される。
なお、図24に示す処理例は、元画像が左に動いている場合の処理例であるが、相対画素位置xをキーとして昇順または降順にソーティングを行うことにより、元画像の動き方向は、左右いずれの方向に動いている場合でも同様の処理によって対応できる。また、垂直方向に動いているブロックを処理対象とするブロック内画素ソーティングパック処理部355においては、上述の左右方向を上下方向に、画素行のソーティングを垂直方向の相対位置yをキーとして適用したソート処理を実行することにより、同様のソート処理によって、元画像に対応した相対位置を持つパックブロックを生成することができる。
続いて、空間方向間引きと時間方向間引きが行われたブロックのパック処理について説明する。所定の移動量、本実施例では、水平方向と垂直方向の移動量がともに2ピクセル未満で、かつ1ピクセル以上の場合に、ブロック処理部133(図8参照)において、空間方向間引きと時間方向間引きが行われる。この処理は、先に図5、図6を参照して説明した処理である。
このような、空間方向間引きと時間方向間引きが行われたブロックは、図8に示すパック処理部c143において、ソート処理を伴うパック処理が実行される。パック処理部c143の構成、処理について、図25を参照して説明する。
図25は、空間および時間方向間引き処理を実行するブロック処理部c133の間引き処理データについてのパック処理を実行するパック処理部c143の構成の詳細を示すブロック図である。
パック処理部c143のブロック分配部371には、ブロック処理部c133の間引き処理データ、すなわち、空間および時間方向間引き処理を実行されたブロックデータが入力され、さらに、図8に示す移動量検出部121の検出情報としてのブロック対応の移動量を示す動きベクトル情報が入力される。
ブロック分配部371に入力された空間方向間引き後のブロックは動きベクトルと共に、ブロック分配部371内の図示されないブロック・動きベクトル保存部に蓄えられる。ブロック分配部371はブロック・動きベクトル保存部に蓄えられたブロックのうち、左右方向に動いているブロックは水平方向1/2間引き連続ブロック抽出部372へ、上下方向に動いているブロックは垂直方向1/2間引き連続ブロック抽出部373へ出力する。この時、出力されたブロックに対応するブロックの動きベクトルも、各ブロックに対応する属性情報としてペアで出力される。
水平方向1/2間引き連続ブロック抽出部372は、水平方向に2ブロック以上連続しているブロックを検出し、2ブロック以上連続しているブロックをブロック内画素ソーティングパック処理部374へ出力する。この時、出力されたブロックに対応するブロックの動きベクトルも、各ブロックに対応する属性情報としてペアで出力される。ブロック内画素ソーティングパック処理部374においては、画素列のソート処理が実行される。なお、ここで処理対象となるブロックは、間引き処理のなされたブロックの組であり、この例の場合は、ブロック分配部371において水平方向の移動量を持つブロックを対象として空間方向間引きのなされたブロックが水平方向に2つ以上連続しているもののみが対象となる。
本実施例では、画像が1〜2ピクセル/フレームで移動しているブロックが、ブロック処理部133において間引き処理の対象として選択されるブロックである。このような間引き処理対象ブロックであり、かつ移動方向が水平方向である連続ブロックが、ブロック内画素ソーティングパック処理部374において処理されるブロックとなる。これは、先に図20を参照して説明したブロックと同様である。ただし移動量が異なるものとなる。
また、垂直方向1/2間引き連続ブロック抽出部373は、垂直方向に2ブロック以上連続しているブロックを検出し、2ブロック以上連続しているブロックをブロック内画素ソーティングパック処理部375へ出力する。この時、出力されたブロックに対応するブロックの動きベクトルも、各ブロックに対応する属性情報としてペアで出力される。ブロック内画素ソーティングパック処理部375においては、画素列のソート処理が実行される。なお、ここで処理対象となるブロックは、間引き処理のなされたブロックの組であり、この例の場合は、ブロック分配部371において垂直方向の移動量を持つブロックを対象として空間方向間引きのなされたブロックが垂直方向に2つ以上連続しているもののみが対象となる。これは、先に図21を参照して説明したブロックと同様である。ただし移動量が異なるものとなる。
図20や、図21に示す連続ブロック以外のブロックについては、ソート処理対象ブロックとせず、パック処理部376に入力され、ソート処理を伴わないパック処理が実行されることになる。パック処理部376は入力されたブロックを、先に、図10を参照して説明したように、間引き結果画素データとしての代表画素を集積するパック処理を実行してパックブロックを生成し、出力部150のブロック合成部151へ出力する。
水平方向の連続ブロックについてのソートおよびパック処理を実行するブロック内画素ソーティングパック処理部374は入力されたブロックから生成されるパックブロックに含まれる画素位置変化を補正するソート処理を含むパック処理を実行してパックブロックの生成処理を行い、ブロック合成部151へ出力する。ブロック内画素ソーティングパック処理部374の構成および処理について、先に、ブロック内画素ソーティングパック処理部354の構成として説明した図22を参照して説明する。
図22は前述の空間方向間引きのみが行われたブロックのためのソーティングパック処理部354の構成を説明するために用いた図であるが、処理の構成は空間方向間引きと時間方向間引きが行われたブロックが行われたブロックのためのソーティングパック処理部374と同様であるため、同じ図を用いて説明を行う。
図22に示すブロック内画素ソーティングパック処理部374は、入力された、連続している空間間引きが行われたブロックをブロック保存部361に一旦保存する。この時、ペアで入力されたブロックの動きベクトルは、相対画素位置xを算出する数式に基づいて、先頭のパックされたブロックからの元画像上での相対画素位置xをブロック内画素相対位置算出処理部362において求め、ブロック内画素相対位置保存部364に一旦保存する。
ここで、空間方向間引きと時間方向間引きが行われたブロックの場合、元画像上での相対画素位置xを求める式が空間方向間引きのみの場合の数式1(x=m×v+4×n)と異なり、
v:処理対象画像の移動速度,v=ピクセル/フレーム
m:処理対象となった元画像のフレーム番号,m=0,1,2,・・
n:パックブロックのブロック番号(0,1,2・・)
p:パックブロックにおけるブロック内相対位置
としたとき、パックブロックに設定される各画素列の元画像における相対画素位置xは、
x=m×v+4×n+p・・・(数式2)
として示される。
この相対画素位置xの算出具体例を、前述の図12で示した、左方向へ2ピクセル/フレームの速度で移動している場合の横方向の2ブロック(4×8ピクセル分)について、空間方向間引きと時間方向間引きが行われた場合の間引きブロックを図26に示し、図26に基づいて説明する。
図26には、フレーム1〜4の隣接2ブロックを示し、空間方向間引きと時間方向間引きが行われた結果データを示している。時間方向間引き処理によって、フレーム2、フレーム4は間引かれ、さらに、フレーム1、フレーム3において、空間方向間引きとして、水平方向1/2間引きを行なった結果を示している。
間引き処理およびパック処理単位の連続フレーム1〜4中、パックブロックに残る画素列を持つフレーム1とフレーム3の各画素列について、ブロック内画素相対位置算出処理部362は前述の数式2(x=m×v+4×n+p)を用いて、各フレームの代表画素列についての相対画素位置xを計算する。なお、計算例はv=2とする。
例えば、フレーム1についての各代表画素列の相対画素位置xの値は、
(1a)n=0,m=0,p=0:x=0×2+4×0+0=0
(1b)n=0,m=0,p=2:x=0×2+4×0+2=2
(1c)n=1,m=0,p=0:x=0×2+4×1+0=4
(1d)n=1,m=0,p=2:x=0×2+4×1+2=6
となり、
また、フレーム3についての各代表画素列の相対画素位置xの値は、
(3a)n=0,m=2,p=0:x=2×2+4×0+0=4
(3b)n=0,m=2,p=2:x=2×2+4×0+2=6
(3c)n=1,m=2,p=0:x=2×2+4×1+0=8
(3d)n=1,m=2,p=2:x=2×2+4×1+2=10
となる。
ブロック保存部361に保存された連続している間引かれたブロックは、パック処理部363において、通常のパック処理、すなわち、前述の、図10を参照して説明したパック処理が行なわれる。図26に示す隣接する2ブロックについての間引き処理結果に対してパック処理を実行して生成した初期的なパックブロックの例を図27(A)に示す。
図27(A)に示す例では、初期パックブロックに、ブロック内画素相対位置算出処理部362が算出した各フレームの代表画素列についての相対画素位置x情報を対応付けて示している。図27(A)に示す初期パックブロックは、画素位置の入れ替えが発生している。
パック処理部363におけるパック処理によって生成されるパックブロックは、図27(A)に示す初期パックブロックであり、この初期パックブロックはソーティング部365に入力される。ソーティング部365は、この初期パックブロックを入力するとともに、プロック内画素相対位置保存部364から、相対位置情報xを入力する。ソーティング部365は、相対画素位置xに基づいて、初期パックブロックの各画素列のソーティングを行う。すなわち図27(A)に示す初期パックブロックの各画素列に対応する相対画素位置xを左から昇順に並べるソート処理を実行する。
このソート処理の結果、図27(B)に示すパックブロックが生成される。このように、ソーティング部365は、入力された初期パックブロックの画素列に対応する相対位置情報xをキーとして画素列ソーティングを行う。この結果、例えば図27に示すパックブロックの例では、4列目と5列目の画素列が入れ替わり、画素位置変化の補正が行われた図27(B)に示すパックブロックが生成される。
なお、図27に示す処理例は、元画像が左に動いている場合の処理例であるが、相対画素位置xをキーとして昇順または降順にソーティングを行うことにより、元画像の動き方向は、左右いずれの方向に動いている場合でも同様の処理によって対応できる。また、垂直方向に動いているブロックを処理対象とするブロック内画素ソーティングパック処理部375においては、上述の左右方向を上下方向に、画素行のソーティングを垂直方向の相対位置yをキーとして適用したソート処理を実行することにより、同様のソート処理によって、元画像に対応した相対位置を持つパックブロックを生成することができる。
なお、上述のソーティング手法は、特定の手法に依存しないので、クイックソートやマージソート等の既存の手法を用いればよい。
[空間方向間引が行われたブロックの画素列交換に基づくパック処理]
続いて、元画像に対してのパック後画像の画素位置変化を補正し、パック処理後の画素順を元画像に近づけたパック処理について、本実施例におけるもう一つの手法について説明する。この処理は、前述の実施例と比較して、視覚上問題の無い領域に関して完璧な画素位置変化の補正を行わないことにより、前述の実施例で採用したソーティング処理を省き、処理パフォーマンスを改善した処理である。
まず、基本的な考え方について説明する。先に図18を参照して説明した移動量と相対画素位置xとの相関を示すグラフは、隣接ブロック数が2つの場合のグラフであるが、同じグラフを隣接ブロック数を4つとした場合についてプロットしたグラフを図28に示す。
前述の図18のグラフと同様、図28に示すグラフも、移動量vと相対画素位置xとの相関を示すグラフであり、縦軸に移動量v、横軸が元画像上での相対画素位置xを表している。図18を参照して説明したように、各ラインが交差するポイントは、元画像上での相対画素位置xが入れ替わっている点を示している。例えば交点Pはパックされた3番目のブロックの4番目の画素列と4番目のブロックの3番目の画素列の、元画像上での相対画素位置xが、入れ替わっている点を示している。
ここで、各ラインの交点について注目してみると、交点が存在する元画像の移動速度は離散値をとることが読み取れる。例えば画像の移動速度が4.0ピクセル/フレームの位置では交点が存在し、次の交点が存在する速度は、画像の移動速度6.0ピクセル/フレームの位置となる。
これら交点の存在する元画像の移動速度において、複数のパックされたブロックの各画素列の元画像上での順序が入れ替わるのであるから、図28のグラフに示される、交点の存在しない元画像の移動速度の範囲、例えば、図に示す速度範囲、
速度範囲A:v=4〜6フレーム/ピクセル
の速度範囲では、複数のパックされたブロックの各画素列の元画像上での順序は変化しないことになる。
速度範囲Bにおいても、複数のパックされたブロックの各画素列の元画像上での順序は変化しない。このように、パックブロックにおいて画素列の入れ替えが発生する速度は離散的に存在する。
このように一定の移動速度vでのみパックブロックにおいて画素列の入れ替えが発生する。この理論から、元画像上での相対画素位置xを求めなくても、対象となる複数のパックされたブロックの各画素列の元画像上での順序は、それらブロックが切り出された元画像の移動速度がどの範囲であるかの情報に基づいて、パックブロックの画素配列を推定することが可能ということになる。
パックブロックに設定される画素列の配列が解析されれば、上述の相対画素位置xを算出し、相対画素位置xに基づくソーティング処理を行なうことなく、複数のパックされたブロックの各画素列画素列を、移動速度vに基づいて、画素位置入れ替え処理態様を決定し、決定態様に従って、パックブロックに設定された画素を並び替えるだけで、元画像上の順序に合せたパックブロックを生成することができる。
この手法によれば、前述の実施例で採用した相対画素位置xの算出処理および、相対画素位置xの値に基づくソーティング処理を省き、処理パフォーマンスを改善した処理を行うことが可能となる。
図8に示す画像変換装置のパック処理部141において、間引き処理およびパック処理単位としてのブロックに対応する移動速度vに基づいて、パックブロックの画素位置交換を伴うパック処理(以降、画素列交換パック処理)を実行する場合の、パック処理部141の構成と処理について、図29を参照して説明する。
各移動量に応じて異なる態様で間引き処理がなされた後、空間方向間引きのみが行われたブロックは図29のブロック分配部381にブロックの動きベクトルと共に入力される。入力されたブロックは動きベクトルと共に、ブロック分配部381内の図示されないブロック・動きベクトル保存部に蓄えられる。また、動きベクトルは画素列交換フラグ生成部384へ入力され、入力されたブロックは画素列交換フラグ生成部384内の図示されない動きベクトル保存部に蓄えられる。
ブロック分配部381は蓄えられたブロックのうち、左右方向に動いているブロックは水平方向1/4間引き連続ブロック抽出部382へ、上下方向に動いているブロックは垂直方向1/4間引き連続ブロック抽出部383へ出力する。この時、出力されたブロックに対応するブロックの動きベクトルもペアで出力される。
画素列交換フラグ生成部384は、ブロックの動きベクトルに基づいて移動速度v(ピクセル/フレーム)を取得し、移動速度vが、図28に示す移動量vと相対画素位置xの相関グラフにおいて、画素列の変動を起こさないどの速度範囲に対応するかを判定し、その判定結果を画素列交換フラグとして生成する。本実施例では、図30に示すように、各速度範囲に対応するフラグを設定する。すなわち、処理対象ブロックに対応する移動速度v各々について、
(1)0≦v<2.75→フラグA
(2)2.75≦v<4.0→フラグB
(3)4.0≦v<6.0→フラグC
(4)6.0≦v→フラグD
これら4種類のフラグを移動速度vに対応付けて設定する。
ここで、図29で示される図8のパック処理部a141には、時間方向間引きのみの処理、または、時間方向および空間方向の間引き処理が行われるブロックは入力されないため、v<2.75の範囲は一まとめのフラグとした。また、6.0≦vの範囲は、画像の動きが早い場合、動きぼけが発生するか、または、元々その領域が狭いため、一まとめとした。なお、さらに移動速度に応じて細分化したフラグ設定としてもよい。
図29に示すパック処理部141の水平方向1/4間引き連続ブロック抽出部382は、水平方向に2ブロック以上連続しているブロックを検出し、2ブロック以上連続しているブロックをブロック内画素−画素列交換処理部385へ出力する。この時、出力されたブロックに対応するブロックの画素列交換フラグも画素列交換フラグ生成部384からペアで出力される。また、連続していないブロックはパック処理部387へ出力する。
同様に垂直方向1/4間引き連続ブロック抽出部383は、垂直方向に2ブロック以上連続しているブロックを検出し、2ブロック以上連続しているブロックをブロック内画素ソーティングパック処理部386へ出力する。この時、出力されたブロックに対応するブロックの画素列交換フラグも画素列交換フラグ生成部384からペアで出力される。また、連続していないブロックはパック処理部387へ出力する。
パック処理部387は入力されたブロックを、前述の、図9に示すパック処理手法に従ってパック処理を行いブロック合成部151へ出力する。
ブロック内画素−画素列交換処理部385は、入力されたブロックを、前述の、画素列の並び替えを利用した元画像に対してのパック後画像の画素位置変化を補正するパック処理を用いてパック処理を行い、ブロック合成部151へ出力する。ブロック内画素−画素列交換処理部385の構成および処理について図31を参照して説明する。
図31に示すブロック内画素−画素列交換処理部385は、入力された、連続している間引かれたブロックをブロック保存部401に一旦保存する。ブロック保存部401に保存された連続している間引かれたブロックは、パック処理部402において、前述の、図9に示すパック処理手法に従ってパック処理が行われる。
パック処理が行われたブロックは、ブロック分配部403において、前述の画素列交換フラグ生成部で生成された画素列交換フラグ(A〜D)に従って、ブロック内画素−画素列交換処理部404〜406へ分配される。本実施例における分配条件は次の通りである。
(1)0≦v<2.75→フラグA→処理部A404
(2)2.75≦v<4.0→フラグB→処理部B405
(3)4.0≦v<6.0→フラグC→処理部C406
(4)6.0≦v→フラグD→処理部C406
ここで、元画像移動速度領域CとDを同一の画素列交換処理部C406で画素列交換処理を行っている。これは、画像の動きが早い場合、動きぼけが発生するか、または、元々その領域が狭いため、同一の処理でも不具合は発生しないからである。もちろん、各フラグに応じて異なる別の処理を実行する構成としてもかまわない。
ブロック内画素−画素列交換処理部404〜406へ分配されたブロックは、ブロック内画素−画素列交換処理部404〜406内で、それぞれ、元画像の相対画素位置に従った画素配列となるように画素列交換処理が行なわれたパックブロックが生成される。このときの画素交換処理態様は、元画像の移動速度vに基づいて決定される。これらのブロック内画素−画素列交換処理部404〜406内で生成されたパックブロックが、画素位置補正済みのパックブロックとして出力される。
ブロック内画素−画素列交換処理部A404に入力されるパックブロックは、1/4空間方向間引き処理が実行され、図31に示すパック処理部402において、前述の図9に示すパック処理手法に従ってパック処理が行われたパックブロックであり、移動速度vが、
0≦v<2.75
の範囲にあるパックブロックである。
ブロック内画素−画素列交換処理部B405に入力されるパックブロックは、1/4空間方向間引き処理が実行され、図31に示すパック処理部402において、前述の図9に示すパック処理手法に従ってパック処理が行われたパックブロックであり、移動速度vが、
2.75≦v<4.0
の範囲にあるパックブロックである。
ブロック内画素−画素列交換処理部C406に入力されるパックブロックは、1/4空間方向間引き処理が実行され、図31に示すパック処理部402において、前述の図9に示すパック処理手法に従ってパック処理が行われたパックブロックであり、移動速度vが、
4.0≦v
の範囲にあるパックブロックである。
ブロック内画素−画素列交換処理部A404、ブロック内画素−画素列交換処理部B405、ブロック内画素−画素列交換処理部C406各々の構成および処理について、図32以下を参照して説明する。図32に示すように、ブロック内画素−画素列交換処理部A404、ブロック内画素−画素列交換処理部B405、ブロック内画素−画素列交換処理部C406は、それぞれ異なる態様の画素交換規則に従った画素列交換処理を実行する1以上の画素列交換処理部α411〜ζ416の組み合わせによって構成される。各画素列交換処理部α411〜ζ416は、それぞれが異なる画素列交換規則に従った画素列交換処理を実行する。
ブロック内画素−画素列交換処理部A404に入力されたパックブロックは、画素列交換処理部α411、および画素列交換処理部β412において、それぞれ異なる画素交換規則に従って画素列交換処理が実行され、
ブロック内画素−画素列交換処理部B405に入力されたパックブロックは、画素列交換処理部α411、画素列交換処理部β412、および画素列交換処理部γ413において、それぞれ異なる画素交換規則に従って画素列交換処理が実行され、
ブロック内画素−画素列交換処理部C406に入力されたパックブロックは、画素列交換処理部δ414、画素列交換処理部α411、画素列交換処理部ε415、および画素列交換処理部ζ416において、それぞれ異なる画素交換規則に従って画素列交換処理が実行される。
これらの各画素列交換処理部の複合的な画素列交換処理によって、元画像の持つ相対的な画素配列に対応した画素配列を持つ補正されたパックブロックが生成されて出力される。
以下、各画素列交換処理部α411〜ζ416に対応付けられた画素列交換規則に従って実行される画素列交換処理について説明する。
(画素列交換処理部α)
まず、画素列交換処理部α411の実行する画素列交換処理について図33を参照して説明する。画素列交換処理部α411では、連続したブロックの各境界をはさんで2ピクセル分の画素列の交換処理が行われる。図33には、2つの水平方向に連続するパックブロックを示す。
図33(A)は、先に図20を参照して説明した水平方向に隣接するブロックに基づいて、図31に示すパック処理部402が、先に図9を参照して説明した基本的な間引き画素のパック処理に基づいて生成した初期的なパックブロックであり、図33(B)は、画素列交換処理部α411の実行する画素列交換処理の結果として生成されるパックブロックである。
各パックブロックは、ブロック番号を左からPB0,PB1・・として設定し、各パックブロックの列を左からL0,L1,L2,L3として示している。画素列交換処理部α411の実行する画素列交換処理は、図に示すように、隣接した2つのブロックPBn,PBn+1の境界2ピクセル分の画素列、すなわち、パックブロックPBnの画素列L2,L3と、パックブロックPBn+1の画素列L0,L1を入れ替える処理である。
画素列交換処理部α411は、画素列交換処理部α411に入力される連続ブロック全てについて、このような画素列交換規則(α)に従った画素列交換処理を実行する。
(画素列交換処理部β)
次に、画素列交換処理部β412の実行する画素列交換処理について図34を参照して説明する。画素列交換処理部β412では、連続したブロックの各境界をはさんで1ピクセル分の画素列の交換処理が行われる。図34に2つの水平方向に連続するパックブロックを示す。(A)が画素列交換処理前、(B)が画素列交換処理後のパックブロックである。
画素列交換処理部β412の実行する画素列交換処理は、図に示すように、隣接した2つのブロックPBn,PBn+1の境界1ピクセル分の画素列、すなわち、パックブロックPBnの画素列L3と、パックブロックPBn+1の画素列L0を入れ替える処理である。画素列交換処理部β412は、画素列交換処理部β412に入力される連続ブロック全てについて、このような画素列交換規則(β)に従った画素列交換処理を実行する。
(画素列交換処理部γ)
次に、画素列交換処理部γ413の実行する画素列交換処理について図35を参照して説明する。画素列交換処理部γ413では、連続したブロック中の先頭と最後のブロック以外のブロックについて、ブロック内画素中心の2ピクセル分の画素列交換処理が行われる。図35に連続したブロック中の先頭と最後のブロック以外のパックブロックを示す。(A)が画素列交換処理前、(B)が画素列交換処理後のパックブロックである。
画素列交換処理部γ413の実行する画素列交換処理は、図に示すように、連続したブロック中の先頭と最後のブロック以外のブロックについて、ブロック内画素中心の2ピクセル分の画素列交換処理が行われる。ブロックPBnの左または右には、隣接するブロックが存在する。
画素列交換処理部β412の実行する画素列交換処理は、図に示すように、パックブロックPBnの画素列L1と画素列L2を入れ替える処理である。画素列交換処理部γ413は、画素列交換処理部γ413に入力される連続ブロック全てについて、このような画素列交換規則(γ)に従った画素列交換処理を実行する。
(画素列交換処理部δ)
次に、画素列交換処理部δ414の実行する画素列交換処理について図36を参照して説明する。画素列交換処理部δ414では、連続したブロックの各境界をはさんで3ピクセル分の画素列の交換処理が行われる。図36に2つの水平方向に連続するパックブロックを示す。(A)が画素列交換処理前、(B)が画素列交換処理後のパックブロックである。
画素列交換処理部δ414の実行する画素列交換処理は、図に示すように、隣接した2つのブロックPBn,PBn+1の境界3ピクセル分の画素列、すなわち、パックブロックPBnの画素列L1〜L3と、パックブロックPBn+1の画素列L0〜L2を入れ替える処理である。画素列交換処理部δ414は、画素列交換処理部δ414に入力される連続ブロック全てについて、このような画素列交換規則(δ)に従った画素列交換処理を実行する。
(画素列交換処理部ε)
次に、画素列交換処理部ε415の実行する画素列交換処理について図37を参照して説明する。画素列交換処理部ε415では、連続したブロックの各境界をはさんで4ピクセル分の画素列のローテイト処理が行われる。図37に2つの水平方向に連続するパックブロックを示す。(A)が画素列交換処理前、(B)が画素列交換処理後のパックブロックである。
画素列交換処理部ε415の実行する画素列交換処理は、図に示すように、隣接した2つのブロックPBn,PBn+1の各境界をはさんで4ピクセル分の画素列のローテイト処理、すなわち、パックブロックPBnの画素列L1〜L3と、パックブロックPBn+1の画素列L0の4列の画素列を1列分ローテーションする処理である。このローテイト処理は、パックブロックPBnの画素列L2,L3と、パックブロックPBn+1の画素列L0を左にシフトし、パックブロックPBnの画素列L1をシフトによって空いた箇所に入れる処理である。つまり、
画素列:PB0−L1→画素列:PB1−L0、
画素列:PB0−L2→画素列:PB0−L1、
画素列:PB0−L3→画素列:PB0−L2、
画素列:PB1−L0→画素列:PB0−L3、
のローテーション態様での画素列交換処理が行なわれる。画素列交換処理部ε415は、画素列交換処理部ε415に入力される連続ブロック全てについて、このような画素列交換規則(ε)に従った画素列交換処理を実行する。
(画素列交換処理部ζ)
次に、画素列交換処理部ζ416の実行する画素列交換処理について図38を参照して説明する。画素列交換処理部ζ416では、連続したブロック中最後のブロックの1つ前のブロックに対して、ブロック内画素最後の2ピクセル分の画素列交換処理が行われる。図38に連続したブロック中最後のブロックの1つ前のブロックPBnを示す。(A)が画素列交換処理前、(B)が画素列交換処理後のパックブロックである。
画素列交換処理部ζ416の実行する画素列交換処理は、図に示すように、連続したブロック中最後のブロックの1つ前のブロックに対する、ブロック内画素最後の2ピクセル分の画素列交換処理である。ブロックPBnの右に隣接するブロックが1つのみ存在する。
画素列交換処理部ζ416の実行する画素列交換処理は、図に示すように、パックブロックPBnの画素列L2と画素列L3を入れ替える処理である。画素列交換処理部ζ416は、画素列交換処理部ζ416に入力される連続ブロック全てについて、このような画素列交換規則(ζ)に従った画素列交換処理を実行する。
なお、これまでに説明した画素列交換処理部α〜ζの画素列交換処理は、元画像が左に動いている場合の処理例である。右に動いている場合は、上述の処理の方向を変更することで対応可能である。あるいは、図31に示すパック処理部402におけるパック処理列を上述した場合と逆の列順でパックする構成とすれば、画素列交換処理部α〜ζの画素列交換処理態様を変更する必要がない。
また、画像が、垂直方向に動いているブロックを処理対象とする場合は、上述の画素列交換処理部α〜ζの画素列交換処理は、90度回転して、各ブロックの行の交換を実行する構成とすればよい。例えば、左方向を上方向、右方向を下方向に変えることにより、同様の画素交換によって、元画像の相対位置に対応した画素配置を持つパックブロックを生成することができる。
[空間方向間引きと時間方向間引きが行われたブロックの画素列交換に基づくパック処理]
続いて、空間方向間引きと時間方向間引きが行われたブロックのパック処理、すなわち、図8に示す動画像変換装置におけるパック処理部c143において、上述と同様、移動速度vに応じて、所定の画素列交換規則を適用してパックブロックを生成する処理について説明する。
先に、1/4空間方向間引きが実行された場合の移動速度vとパックブロックにおける画素位置の元画像に対する相対画素位置xの相関について図28を参照して説明した。すなわち、移動量vと相対画素位置xとの相関を示すグラフである。1/2空間方向間引きと時間方向間引きが行われて生成されるパックブロックについて、同様移動量vと相対画素位置xとの相関を示すグラフを図39に示す。
縦軸に移動量v、横軸が元画像上での相対画素位置xを表している。図18を参照して説明したように、各ラインが交差するポイントは、元画像上での相対画素位置xが入れ替わっている点を示している。例えば交点Pなどが、パックされたブロックの画素列が元画像上の位置と入れ替わっている点を示している。
このような交点は、先に図28を参照して説明した1/4空間間引きに基づいて生成したパックブロックと同様、元画像の移動速度がある速度である場合にのみ発生する。図39に示すラインa,bに対応する移動速度の場合である。
このグラフから判るように、空間方向間引きと時間方向間引きが行われたブロックについても空間方向間引きのみが行われたブロックと同様に、交点の存在しない元画像の移動速度の範囲(A,B,C)では、複数のパックされたブロックの各画素列の元画像上での順序は変化しない。
従って、空間方向間引きと時間方向間引きが行われたブロックのパック処理についても、空間方向間引きのみが行われたブロックと同様、移動速度vに応じて予め定めた画素交換処理によって、パックブロックの画素配置を元画像の画素配置の相対位置関係と同様の位置に設定する処理を行うことができ、前述の実施例で採用したソーティング処理を省き、処理パフォーマンスを改善した処理を行うことが可能となる。
図8のパック処理部143について、移動速度vに応じて予め定めた画素交換処理によって、パックブロックの画素配置を元画像の画素配置の相対位置関係と同様の位置に設定する処理を行う構成としたパック処理部の構成、処理について、図40以下を参照して説明する。
各移動量に応じて異なる態様で間引き処理がなされた後、空間方向および時間方向間引きが行われたブロックは図40のブロック分配部431にブロックの動きベクトルと共に入力される。入力されたブロックは動きベクトルと共に、ブロック分配部431内の図示されないブロック・動きベクトル保存部に蓄えられる。また、動きベクトルは画素列交換フラグ生成部434へ入力され、入力されたブロックは画素列交換フラグ生成部434内の図示されない動きベクトル保存部に蓄えられる。
ブロック分配部431は蓄えられたブロックのうち、左右方向に動いているブロックは水平方向1/2間引き連続ブロック抽出部432へ、上下方向に動いているブロックは垂直方向1/2間引き連続ブロック抽出部433へ出力する。この時、出力されたブロックに対応するブロックの動きベクトルもペアで出力される。
画素列交換フラグ生成部434は、前述の空間方向間引きのみのパック処理と同様に、ブロックの動きベクトルに基づいて移動速度v(ピクセル/フレーム)を取得し、移動速度vが、図39に示す移動量vと相対画素位置xの相関グラフにおいて、画素列の変動を起こさないどの速度範囲に対応するかを判定し、その判定結果を画素列交換フラグとして生成する。本実施例では、図41に示すように、各速度範囲に対応するフラグを設定する。すなわち、処理対象ブロックに対応する移動速度v各々について、
(1)0≦v<1.5→フラグE
(2)1.5≦v<2.0→フラグF
これら2種類のフラグを移動速度vに対応付けて設定する。
ここで、図40で示される図8のパック処理部c143には、時間方向間引きのみの処理、または、空間方向の間引き処理のみが行われるブロックは入力されない。本実施例では、元画像のブロックに基づいて計測される移動速度vが、1〜2ピクセル/フレームの範囲のブロックのみが、空間および時間方向間引き処理対象としているので、パック処理部c143に入力されるブロックに存在する移動速度の範囲はv=1.0〜2.0であり、図39に示される交点発生ポイントは、速度=b=1.5ピクセル/フレームのみとなる。したがって、画素交換の処理態様は、
(1)0≦v<1.5
(2)1.5≦v<2
の2つの処理態様を設定するのみで対応可能であり、これらの移動速度に応じてフラグを2つ設定する構成とした。なお、さらに移動速度に応じて細分化したフラグ設定としてもよい。
図40に示す水平方向1/2間引き連続ブロック抽出部432は、水平方向に2ブロック以上連続しているブロックを検出し、2ブロック以上連続しているブロックをブロック内画素−画素列交換処理部435へ出力する。この時、出力されたブロックに対応するブロックの画素列交換フラグも画素列交換フラグ生成部434からペアで出力される。また、連続していないブロックはパック処理部437へ出力する。
同様に垂直方向1/2間引き連続ブロック抽出部433は、垂直方向に2ブロック以上連続しているブロックを検出し、2ブロック以上連続しているブロックをブロック内画素ソーティングパック処理部436へ出力する。この時、出力されたブロックに対応するブロックの画素列交換フラグも画素列交換フラグ生成部434からペアで出力される。また、連続していないブロックはパック処理部437へ出力する。
パック処理部437は入力されたブロックを、前述の、図10を用いて説明されたパック処理を用いてパック処理を行いブロック合成部151へ出力する。
ブロック内画素−画素列交換処理部435は入力されたブロックを、前述の、画素列の並び替えを利用した元画像に対してのパック後画像の画素位置変化を補正するパック処理を用いてパック処理を行い、ブロック合成部151へ出力する。ブロック内画素−画素列交換処理部435の構成および処理について図42を参照して説明する。
図42に示すブロック内画素−画素列交換処理部435は、入力された、連続している間引かれたブロックをブロック保存部441に一旦保存する。ブロック保存部441に保存された連続している間引かれたブロックは、パック処理部442において、前述の、図10を用いて説明されたパック処理を用いてパック処理が行われる。
パック処理が行われたブロックは、ブロック分配部443において、前述の画素列交換フラグ生成部で生成された画素列交換フラグに従って、ブロック内画素−画素列交換処理部444、445へ分配される。本実施例における分配条件は次表の通りである。
(1)0≦v<1.5→フラグE→処理部E444
(2)1.5≦v<2.0→フラグB→処理部F445
ブロック内画素−画素列交換処理部444、445へ分配されたブロックは、ブロック内画素−画素列交換処理部444、445内で、それぞれ、元画像の相対画素位置に従った画素配列となるように画素列交換処理が行なわれたパックブロックが生成される。このときの画素交換処理態様は、元画像の移動速度vに基づいて決定される。これらのブロック内画素−画素列交換処理部444、445内で生成されたパックブロックが、画素位置補正済みのパックブロックとして出力される。
ブロック内画素−画素列交換処理部E444に入力されるパックブロックは、1/2空間方向間引きおよび時間方向間引き処理が実行され、図42に示すパック処理部442において、前述の図10に示すパック処理手法に従ってパック処理が行われたパックブロックであり、移動速度vが、
0≦v<1.5
の範囲にあるパックブロックである。
ブロック内画素−画素列交換処理部F445に入力されるパックブロックは、1/2空間方向間引きおよび時間方向間引き処理が実行され、図42に示すパック処理部442において、前述の図10に示すパック処理手法に従ってパック処理が行われたパックブロックであり、移動速度vが、
1.5≦v<2.0
の範囲にあるパックブロックである。
ブロック内画素−画素列交換処理部E444、およびブロック内画素−画素列交換処理部F445の構成および処理について、図43を参照して説明する。図43に示すように、ブロック内画素−画素列交換処理部E444、ブロック内画素−画素列交換処理部F445には、それぞれ異なる態様の画素交換規則に従った画素列交換処理を実行する1以上の画素列交換処理部α411〜β412の組み合わせによって構成される。各画素列交換処理部α411〜β412は、それぞれが異なる画素列交換規則に従った画素列交換処理を実行する。
ブロック内画素−画素列交換処理部E444に入力されたパックブロックは、画素列交換処理部β412において、予め設定された画素交換規則に従って画素列交換処理が実行され、ブロック内画素−画素列交換処理部E445に入力されたパックブロックは、画素列交換処理部α411、画素列交換処理部β412において、それぞれ異なる画素交換規則に従って画素列交換処理が実行される。
これらの各画素列交換処理部の複合的な画素列交換処理によって、元画像の持つ相対的な画素配列に対応した画素配列を持つ補正されたパックブロックが生成されて出力される。
画素列交換処理部β412の処理は、先に、図34を参照して説明した画素列交換処理であり、画素列交換処理部α411の処理は、先に、図33を参照して説明した画素列交換処理である。
なお、前述したように、図33、図34に示す画素列交換処理部α,βの画素列交換処理は、元画像が左に動いている場合の処理例である。右に動いている場合は、上述の処理の方向を変更することで対応可能である。あるいは、図42に示すパック処理部442におけるパック処理列を上述した場合と逆の列順でパックする構成とすれば、画素列交換処理部α,βの画素列交換処理態様を変更する必要がない。
また、画像が、垂直方向に動いているブロックを処理対象とする場合は、上述の画素列交換処理部α,βの画素列交換処理は、90度回転して、各ブロックの行の交換を実行する構成とすればよい。例えば、左方向を上方向、右方向を下方向に変えることにより、同様の画素交換によって、元画像の相対位置に対応した画素配置を持つパックブロックを生成することができる。
以上、説明したように、本実施例における動画像変換装置においては、パック処理時に画素順の補正を行うことにより、パック後の画像を元画像の画素順と近づける構成として、そのパックブロックを後段の一般的な符号化手法(MPEG、Motion Jpeg等)により符号化する構成としたので、パックブロックを元画像に近い滑らかな画像データとすることが可能であり、MPEG、Motion Jpeg等の符号化における圧縮率を高め、より高いデータ削減を実現することができる。
[(3)本発明に従った動画像伸張処理を実行する装置および方法]
次に、図44以下を参照して動画像伸張処理を実行する動画像復元装置の構成および処理について説明する。図44は、動画像復元装置の概略構成を示すブロック図である。
本実施形態の動画像復元装置は、先に説明した「(1)超解像効果を利用した動画像変換装置の基本構成」や、[(2)本発明に従った動画像圧縮処理を実行する装置および方法]に従って、ブロックの移動量に応じた空間間引きや時間方向間引き処理を実行し、さらにパック処理によるパックブロックがなされた後、MPEG,Motion Jpeg等の符号化処理のなされた圧縮符号化データの復号、伸張処理を実行する装置である。
図44に示す動画像復元装置は、符号化された動画像データおよびサイド情報を入力して、復号部510にて復号する。符号化された動画像データは、前述した相対画素位置xに基づくソート処理あるいは移動速度vに基づく画素交換処理を適用して生成されたパックブロックを含むブロックの符号化データであり、サイド情報は、各ブロックに対応する間引き、パック処理などの処理態様を示すブロック分配フラグ、移動量情報を含むデータである。
復号部510は、例えばMPEG、Motion Jpeg等の一般的な符号化手法により符号化された符号化データの復号処理により、動画像データの復号処理を実行する。また、サイド情報については、例えばLZH、Zip等の一般的な符号化手法により符号化された符号化データの復号処理を行なう。もちろん、各々の復号処理態様は符号化側の符号化態様と対応する処理とされる。
ブロック分割部520は、復号された動画像の各フレームを、所定画素の区分領域としてのブロックに分割し、復号されたサイド情報と共にブロック処理部530に供給する。この時のブロックサイズは符号化時にブロック分割されたサイズと合せておかなければならない。
ブロック処理部530は、符号化側のパック処理によりR/Mにフレームレートを変換されたブロックに逆の処理(以降、アンパック処理と呼ぶ)を行うことにより元のフレームレートRの動画像を生成し、復号された動画像として出力する。この時の各ブロックにおけるアンパック処理は、復号部510により復号されたサイド情報に基づいて、符号化時に行われたパック処理を元に戻すアンパック処理を行わなければならない。また、ブロック処理部530から出力される復号された動画像は、符号化側で説明された、人間の視覚特性に基づいて劣化された動画像である。
本実施形態の動画像復元装置における復号部510およびブロック分割部520およびブロック処理部530の構成について、図45を参照して説明する。図45は本実施形態における復号部510およびブロック分割部520およびブロック処理部530の構成を示すブロック図である。
動画像復元装置に入力された符号化された動画像およびサイド情報は、復号部510内の動画像復号部511によって動画像が、サイド情報復号部512によってサイド情報が、復号される。復号された動画像、サイド情報はブロック分割部520においてある大きさのブロック、例えば8pixel×8pixelや16pixel×16pixel等のブロックに分解され、ブロック分割部520内の図示されない保存領域に1フレーム分保存される。1フレーム分復号され分割された動画像およびサイド情報は、ブロック処理部530のブロック分配部531に送られる。
ブロック分配部531は、各ブロックに対して異なるアンパック処理を行うアンパック処理部532〜534へブロックを振り分ける処理を実行する。ブロック分配部531の入力は、復号部から出力されてきたサイド情報と、ブロック分割部520から出力されるブロックに分割された1フレーム分の画像データである。
ブロック分配部531が、入力された1フレーム分のブロックを、サイド情報に従って、アンパック処理部532〜534のいずれかに出力する時、サイド情報を元に、符号化側で行われたパック処理を戻すアンパック処理に振り分けなければならない。
本実施例では、サイド情報に図8に示す画像圧縮符号化を行なう動画像変換装置におけるブロック処理部131〜133のどの処理部に分配されたかを示すブロック分配フラグを含めている。ブロック分配部531は、この分配フラグに基づいて、ブロックを各アンパック処理部532〜533に振り分ける。ブロック処理部131で空間方向間引き処理がなされたブロックはアンパック処理部532、ブロック処理部132で時間方向間引き処理がなされたブロックはアンパック処理部533、ブロック処理部133で空間および時間方向間引き処理のなされたブロックはアンパック処理部534へ振り分けられる。
アンパック処理部532〜534は、符号化側のパック処理によりR/Mにフレームレートを変換されたブロックを入力し、入力されたブロックにアンパック処理を行うことにより元のフレームレートRのブロックに変換する。本実施例では、図8に示す動画像変換装置におけるパック処理部141でパックされたブロックはアンパック処理部532、パック処理部142でパックされたブロックはアンパック処理部533、パック処理部143でパックされたブロックはアンパック処理部534においてアンパック処理が行われる。
アンパック処理部532〜534の処理により元のフレームレートRに変換されたブロックは、ブロック合成部535において、フレームレートがRであるフレーム画像へ合成される。本実施例では、R=240fps、M=4であるので、入力された240/4=60fpsの動画像の1フレームから4フレーム分のフレーム画像へ合成される。つまり、ブロック合成部4107の役割は表示可能な元の高フレームレート動画像として合成することにある。
ブロック分割部520の別の構成例を図46に示す。図46に示すブロック分割部520は、移動量検出部522およびサイド情報合成部523を有する点が、図45に示す構成と異なる点である。この構成は、何らかの理由、例えば圧縮率をより上げたい場合等において、サイド情報が復号側へ伝送されない場合に対応する構成である。
図46に示すブロック分割部521においては、まず、符号化された動画像データを入力し、図45を参照して説明したブロック分割部520と同様の処理によって、ある大きさのブロック、例えば8pixel×8pixelや16pixel×16pixel等のブロックに分解し、ブロック分割部521内の図示されない保存領域に1フレーム分保存する。ブロック分割された画像は、図45に示すブロック処理部530内のブロック分配部531へ出力される。
また、図46に示す構成では、復号された動画像データは、移動量検出部522にも入力され移動量検出部522内の図示されない画像保存部に、移動量を検出するために必要な数の画像を保存する。移動量検出部522は、保存画像からある大きさのブロック、例えば8pixel×8pixelや16pixel×16pixel等のブロック単位の移動量を求め、求められた移動量を1フレーム分サイド情報合成部523へ出力する。この時のブロックサイズは、ブロック分割部521で分割されるブロックサイズと同じとする。
サイド情報合成部523は、入力された各ブロックの移動ベクトルを元にサイド情報を生成し、図45に示すブロック処理部530のブロック分配部531へ出力する。この時、サイド情報を生成するルールは、符号化側と合せなければならない。
次に、図45に示すブロック処理部530に構成された各アンパック処理部a532〜c534の構成、および処理について説明する。アンパック処理部a532〜c534は、それぞれ、図8に示した動画像変換装置におけるパック処理部a141〜c143に対応しており、パック処理部a141〜c143によってパック処理されたブロックをアンパックして元に戻す動作を行う。
各アンパック処理部a532〜c534におけるアンパック処理は、前述した動画像変換装置におけるパック処理部a141〜c143の処理と同様、相対画素位置xに基づくソーティング処理に対応する処理を実行してアンパックを行なう構成と、ブロックの移動速度vに基づいて予め定められた画素交換規則に従った画素交換処理を実行したパック処理に対応するアンパック処理の2つの処理態様がある。以下、これらの2つの処理態様について、順次、説明する。
[相対画素位置xに基づくソーティング処理に対応するアンパック処理]
まず、相対画素位置xに基づくソーティング処理に対応するアンパック処理について説明する。図8に示した動画像変換装置におけるパック処理部a141に対応する、アンパック処理部a532の構成および処理について、図47を参照して説明する。
アンパック処理部a532の入力は、ブロック分配部531から出力されたブロック、すなわち、図8に示した動画像変換装置におけるパック処理部a141において4フレームから得られた4つのブロックを1つにパックしたブロックである。すなわち空間方向間引きのみがなされた間引きデータに対応するパックブロックである。
このパックブロックは、先に、図19を参照して説明した通り、図19におけるブロック内画素ソーティングパック処理部354、355、パック処理部356において、4フレームから得られた4つのブロックを1つにパックしたブロックである。
アンパック処理部a532に入力された、パックされたブロックは、ブロック分配部531に入力される。入力されたブロックは、サイド情報と共に、ブロック分配部内の図示されないブロック・サイド情報保存部に蓄えられる。ブロック分配部531は蓄えられたブロックのうち、左右方向に動いているブロックは水平方向1/4間引き連続ブロック抽出部551へ、上下方向に動いているブロックは垂直方向1/4間引き連続ブロック抽出部552へ出力する。この時、出力されたブロックに対応するブロックのサイド情報もペアで出力される。
水平方向1/4間引き連続ブロック抽出部551は、水平方向に2ブロック以上連続しているブロックを検出し、2ブロック以上連続しているブロックをブロック内画素ソーティングアンパック処理部553へ出力する。この時、出力されたブロックに対応するブロックの動きベクトルもペアで出力される。また、連続していないブロックはアンパック処理部555へ出力する。
同様に垂直方向1/4間引き連続ブロック抽出部552は、垂直方向に2ブロック以上連続しているブロックを検出し、2ブロック以上連続しているブロックをブロック内画素ソーティングアンパック処理部554へ出力する。この時、出力されたブロックに対応するブロックの動きベクトルもペアで出力される。また、連続していないブロックはアンパック処理部555へ出力する。
これらのブロック分配部531と水平方向1/4間引き連続ブロック抽出部551と垂直方向1/4間引き連続ブロック抽出部552による、ブロックの分配結果は、図8、図19で説明されたパック処理における分配結果と同一になることが望ましい。
アンパック処理部555に入力されるパックされたブロックは、図9において示すブロック225に相当するブロックである。このブロックの内部の1×4画素、例えば図9におけるブロック225の画素235は、図19に示した動画像変換装置におけるパック処理部356においてパックされた4フレーム分の画素p1〜p4である。アンパック処理部555はこの4つの画素p1〜p4を4フレーム分のブロックに拡張することでフレーム数を4倍にする。
すなわち、図9におけるブロック225がアンパック処理部555の入力であり、アンパック処理部555はブロック225を4フレーム分に拡張して、図9に示すブロック221〜224の4つのブロックを構成し出力する。以上はブロック処理装置が水平方向の間引き処理、つまり、1x4画素に対する間引き処理が行われた場合であり、垂直方向の間引き処理である4x1画素の間引き処理が行われたブロックにおいても同様のアンパック処理がアンパック処理部555によって行われる。
なお、アンパック処理部555が想定するパックされたブロックの画素p1〜p4の順序は、図19に示した動画像変換装置におけるパック処理部356において処理した際の画素順と一致させることが必要である。
ソーティングアンパック処理部553に入力されるパックされたブロックは、相対画素位置情報xに基づく画素位置のソーティング処理が実行されたブロックであり、1/4空間間引きがなされ、かつ水平方向の画素位置が画素位置情報xに基づいてソートされたパックブロックである。これは、例えば、先に説明した図24(B)に示すパックブロックである。
このパックブロックの内部の画素、例えば図24(B)に示すパックブロックに含まれる画素P10〜PB3は、図19に示した動画像変換装置におけるブロック内画素ソーティングパック処理部354においてパックされた4フレーム分の画素P10〜PB3である。ブロック内画素ソーティングアンパック処理553はこれらの画素P10〜PB3を4フレーム分のブロックに拡張することでフレーム数を4倍にする。すなわち、図24(B)に示すパックブロックがブロック内画素ソーティングアンパック処理部553の入力であり、ブロック内画素ソーティングアンパック処理部553は図24(B)に示すパックブロックを4フレーム分に拡張して図23に示すフレーム1〜4のブロックを生成して出力する。このブロック内画素ソーティングアンパック処理部553の構成および処理について図48を参照して説明する。
図48に示すブロック内画素ソーティングアンパック処理553は、動画像変換装置において説明した図22に示すブロック内画素ソーティングパック処理部354の処理を逆に行い、画素位置変化の補正が行われたブロックを元に戻す処理を行う。
このブロック内画素ソーティングアンパック処理部553の実行する処理について、図49を参照して説明する。図49(A)は、相対画素位置xに基づくソーティンングを伴うパック処理によって生成されたパックブロック、すなわちソート後パックブロックであり、図24(B)のパックブロックに相当する。図49(B)は相対画素位置xに基づくソーティンングを行なう前の初期的なパックブロック、すなわちソート前パックブロックであり、図24(A)のパックブロックに相当する。これは、フレーム順に画素位置を並べた初期パックブロックである。
図49(C)は、前述の空間間引きされパックされる前のブロックを示すブロックであり、図23の各フレーム対応の間引きされたブロックデータに相当する。図48に示すブロック内画素ソーティングアンパック処理553は、図49(A)のパックブロックに基づいて、図49(C)の各フレーム対応の空間間引きデータからなるブロックを復元する。
ブロック内画素ソーティングアンパック処理部553に入力される図49(A)に示すソート後パックブロックを、図49(C)に示す4フレームの各ブロックに戻すには、まず、ソーティング前の初期的なパックブロック、すなわち、図49(B)に示すソート前パックブロック、すなわち、フレーム順に画素位置を並べた初期パックブロックに戻すことが必要である。図49(B)に示すソート前パックブロックから図49(C)に示すフレーム対応のブロックに戻す処理は、予め定められたアンパック処理のルールに基づいて実行される。
図49(A)に示すソート後パックブロックを、図49(B)に示すソート前の初期的なパックブロックに戻す処理について説明する。まず、図48に示すブロック内画素ソーティングアンパック処理部553のブロック内画素相対位置算出部562は、入力されたサイド情報から、サイド情報に含まれるブロックの移動速度vを抽出し、ブロック内画素相対位置算出部562において、前述の数式1、すなわち、
v:処理対象画像の移動速度,v=ピクセル/フレーム
m:処理対象となった元画像のフレーム番号,m=0,1,2,・・
n:パックブロックのブロック番号(0,1,2・・)
としたとき、パックブロックに設定される各画素列の元画像における相対画素位置xを、
x=m×v+4×n
として求める数式1に基づいて、先頭のパックされたブロックからの元画像上での相対画素位置xを求め、この算出した相対画素位置xをブロック内画素相対位置保存部563に格納する。
相対位置ソーティング部564は、この相対画素位置xを相対画素位置xの値に基づいてソート処理を行なう。図50(1)に相対位置ソーティング部564の実行する相対画素位置xのソート処理例を示す。図50(1a)に示す相対画素位置xの算出データは、動画像変換装置におけるソーティングパック処理に際して算出した相対画素位置xと同一の値となる。すなわち、図49(B)に示すソート前パックブロックの各画素列対応の相対画素位置xと同一の値となる。パック処理に際しては、この図49(B)に示す相対画素位置xを、例えば昇順にソートして図49(A)に示すソートされたパックブロックを生成していた。
アンパック処理部553では、まず、相対位置ソーティング部564において、図50(1a)に示す相対画素位置xを相対画素位置xの値に基づいてソート処理を行なう。ソート処理の実行に際して、各相対画素位置xに対応する位置データとして、ブロック位置情報を対応付けておく。図50(1a)に示す相対画素位置xの下部に示す1〜7のデータである。
相対位置ソーティング部564では、相対画素位置xを相対画素位置xの値に基づいてソート処理を行なう際、このブロック位置情報を対応付けたままソートする。ソート結果が、図50(1b)に示す結果となる。
次に、相対位置ソーティング部564のソート結果として得られたブロック位置情報をパックブロックソーティング部565に入力し、パックブロックソーティング部565は、ブロック保存部561から入力する連続ブロックについて、このブロック位置情報をブロックの各画素列に対応付けて、このブロック位置情報に基づくソート処理を実行する。図50(2a)のバックブロックをブロック位置情報に基づいてソートする。
このソート処理の結果、ブロック位置情報=3と4が入れ替えられることになる。結果として、図50(2b)に示すソート結果が得られる。このソート結果は、図49(B)に示すソート前パックブロックと同一の画素配置を有する。パックブロックソーティング部565は、このソート結果として得られたパックブロックをアンパック処理部566に出力する。
このように、アンパック処理部553では、まず、パック処理部354と同様、ブロックの移動速度vから、画素相対位置xを算出する。次に、画素相対位置xにブロック位置情報を対応付けて相対画素位置xのソートを実行し、このソート処理によって得られたブロック位置情報をパックブロックに対応付けてブロック位置情報に基づいて、パックブロックのソートを実行することで、ソート前のパックブロックを取得する。
アンパック処理部566は、前述のアンパック処理部555と同じ処理を行い、元のフレームレートにブロックを変換する。なお、上述した処理例は元画像が左に動いている場合についての処理例であるが、相対位置ソーティング部564におけるソーティング時に、相対画素位置xをキーとして昇順または降順にソーティングを行うことにより、元画像が右に動いている場合でも同様の処理によって対応できる。また、垂直方向に動いているブロックを処理対象とする場合には、上述したソート処理を上下方向に実行して、画素行のソーティングを垂直方向の相対位置yをキーとして行なう設定とした処理によって対応できる。
次に、1/2空間間間引き、1/2時間間引き処理ブロックについてのソートパックブロックのアンパック処理を実行する図45のアンパック処理部c534の構成および処理について、図51以下を参照して説明する。
アンパック処理部c534の入力は、ブロック分配部531から出力されたブロック、すなわち、図8に示した動画像変換装置におけるパック処理部c143において4フレームから得られた4つのブロックを1つにパックしたブロックである。このパックされたブロックは。図25に示すパック処理部c143におけるブロック内画素ソーティングパック処理部374、375、パック処理部376において、4フレームから得られた4つのブロックを1つにパックしたブロックである。
アンパック処理部c534に入力された、パックされたブロックは、ブロック分配部531に入力される。入力されたブロックは、サイド情報と共に、ブロック分配部内の図示されないブロック・サイド情報保存部に蓄えられる。ブロック分配部531は蓄えられたブロックのうち、左右方向に動いているブロックは水平方向1/2間引き連続ブロック抽出部571へ、上下方向に動いているブロックは垂直方向1/2間引き連続ブロック抽出部572へ出力する。この時、出力されたブロックに対応するブロックのサイド情報もペアで出力される。
水平方向1/2間引き連続ブロック抽出部571は、水平方向に2ブロック以上連続しているブロックを検出し、2ブロック以上連続しているブロックをブロック内画素ソーティングアンパック処理部573へ出力する。この時、出力されたブロックに対応するブロックの動きベクトルもペアで出力される。また、連続していないブロックはアンパック処理部575へ出力する。
同様に垂直方向1/2間引き連続ブロック抽出部572は、垂直方向に2ブロック以上連続しているブロックを検出し、2ブロック以上連続しているブロックをブロック内画素ソーティングアンパック処理部574へ出力する。この時、出力されたブロックに対応するブロックの動きベクトルもペアで出力される。また、連続していないブロックはアンパック処理部575へ出力する。
これらのブロック分配部531と水平方向1/2間引き連続ブロック抽出部571と垂直方向1/2間引き連続ブロック抽出部572による、ブロックの分配結果は、図8、図25で説明されたパック処理における分配結果と同一になることが望ましい。
アンパック処理部575に入力されるパックされたブロックは、図10において示すブロック245である。このブロックの内部の1×2画素、例えば図10におけるブロック245の画素255は、図25に示した動画像変換装置におけるパック処理部376においてパックされた4フレーム分の画素p1、p3である。アンパック処理部575はこの2つの画素p1、p3を4フレーム分のブロックに拡張することでフレーム数を2倍にする。
すなわち、図10におけるブロック245がアンパック処理部575の入力であり、アンパック処理部575はブロック245を4フレーム分に拡張してブロック241〜244の4つのブロックを構成し出力する。以上はブロック処理装置が水平方向の間引き処理、つまり、1x2画素に対する間引き処理が行われた場合であり、垂直方向の間引き処理である2x1画素の間引き処理が行われたブロックにおいても同様のアンパック処理がアンパック処理部575によって行われる。
なお、アンパック処理部575が想定するパックされたブロックの画素p1、p3の順序は、図25に示した動画像変換装置におけるパック処理部376において処理した際の画素順と一致させることが必要である。
ソーティングアンパック処理部573に入力されるパックされたブロックは、相対画素位置情報xに基づく画素位置のソーティング処理が実行されたブロックであり、1/2空間間引きと時間間引きがなされ、かつ水平方向の画素位置が画素位置情報xに基づいてソートされたパックブロックである。これは、例えば、先に説明した図27(B)において示すパックブロックである。
このブロックの内部の画素、例えば図27(B)におけるパックブロックの画素P00〜PA3は、図25に示した動画像変換装置におけるブロック内画素ソーティングパック処理部374においてパックされた4フレーム分の画素P00〜PA3である。ブロック内画素ソーティングアンパック処理部573はこれらの画素P00〜PA3を4フレーム分のブロックに拡張することでフレーム数を4倍にする。すなわち、図27(B)に示すパックブロックがブロック内画素ソーティングアンパック処理部573の入力であり、ブロック内画素ソーティングアンパック処理部573は図27(B)に示すパックブロックを4フレーム分に拡張して図26に示すフレーム1〜4のブロックを生成し出力する。このブロック内画素ソーティングアンパック処理573の構成および処理について図52を参照して説明する。
図52に示すブロック内画素ソーティングアンパック処理573は、前述の空間方向間引きのみが行われたブロックのためのブロック内画素ソーティングアンパック処理部553と同様の構成を有している。
図52に示すブロック内画素ソーティングアンパック処理部573は、動画像変換装置において説明した図22に示すブロック内画素ソーティングパック処理部の処理を逆に行い、画素位置変化の補正が行われたブロックを元に戻す処理を行う。
このブロック内画素ソーティングアンパック処理部573の実行する処理について、図53を参照して説明する。図53(A)は、相対画素位置xに基づくソーティンングを伴うパック処理によって生成されたパックブロック、すなわちソート後パックブロックであり、図27(B)のパックブロックに相当する。図53(B)は相対画素位置xに基づくソーティンングを行なう前の初期的なパックブロック、すなわちソート前パックブロックであり、図27(A)のパックブロックに相当する。
図53(C)は、前述の空間間引きされパックされる前のブロックを示すブロックであり、図26の各フレーム対応の間引きされたブロックデータに相当する。図52に示すブロック内画素ソーティングアンパック処理573は、図53(A)のパックブロックに基づいて、図53(C)の各フレーム対応の空間間引きデータからなるブロックを復元する。
ブロック内画素ソーティングアンパック処理部573に入力される図53(A)に示すソート後パックブロックを、図53(C)に示す4フレームの各ブロックに戻すには、まず、ソーティング前の初期的なパックブロック、すなわち、図53(B)に示すソート前パックブロックに戻すことが必要である。図53(B)に示すソート前パックブロックから図53(C)に示すフレーム対応のブロックに戻す処理は、予め定められたアンパック処理のルールに基づいて実行される。
図53(A)に示すソート後パックブロックを、図53(B)に示すソート前の初期的なパックブロックに戻す処理について説明する。まず、図52に示すブロック内画素ソーティングアンパック処理部573のブロック内画素相対位置算出部582は、入力されたサイド情報から、サイド情報に含まれるブロックの移動速度vを抽出し、ブロック内画素相対位置算出部582において、前述の数式2、すなわち、
v:処理対象画像の移動速度,v=ピクセル/フレーム
m:処理対象となった元画像のフレーム番号,m=0,1,2,・・
n:パックブロックのブロック番号(0,1,2・・)
p:パックブロックにおけるブロック内相対位置
としたとき、パックブロックに設定される各画素列の元画像における相対画素位置xを、
x=m×v+4×n+p
として求める数式2に基づいて、先頭のパックされたブロックからの元画像上での相対画素位置xを求め、この算出した相対画素位置xをブロック内画素相対位置保存部583に格納する。
相対位置ソーティング部584は、この相対画素位置xを相対画素位置xの値に基づいてソート処理を行なう。図54(1)に相対位置ソーティング部584の実行する相対画素位置xのソート処理例を示す。図54(1a)に示す相対画素位置xの算出データは、動画像変換装置におけるソーティングパック処理に際して算出した相対画素位置xと同一の値となる。すなわち、図53(B)に示すソート前パックブロックの各画素列対応の相対画素位置xと同一の値となる。パック処理に際しては、この図53(B)に示す相対画素位置xを、例えば昇順にソートして図53(A)に示すソートされたパックブロックを生成していた。
アンパック処理部573では、まず、相対位置ソーティング部584において、図54(1a)に示す相対画素位置xを相対画素位置xの値に基づいてソート処理を行なう。ソート処理の実行に際して、各相対画素位置xに対応する位置データとして、ブロック位置情報を対応付けておく。図54(1a)に示す相対画素位置xの下部に示す1〜7のデータである。
相対位置ソーティング部584では、相対画素位置xを相対画素位置xの値に基づいてソート処理を行なう際、このブロック位置情報を対応付けたままソートする。ソート結果が、図54(1b)に示す結果となる。
次に、相対位置ソーティング部584のソート結果として得られたブロック位置情報をパックブロックソーティング部585に入力し、パックブロックソーティング部585は、ブロック保存部581から入力する連続ブロックについて、このブロック位置情報をブロックの各画素列に対応付けて、このブロック位置情報に基づくソート処理を実行する。図54(2a)のバックブロックをブロック位置情報に基づいてソートする。
このソート処理の結果、ブロック位置情報=3と4が入れ替えられることになる。結果として、図54(2b)に示すソート結果が得られる。このソート結果は、図53(B)に示すソート前パックブロックと同一の画素配置を有する。パックブロックソーティング部585は、このソート結果として得られたパックブロックをアンパック処理部586に出力する。
このように、アンパック処理部573では、まず、パック処理部374と同様、ブロックの移動速度vから、画素相対位置xを算出する。次に、画素相対位置xにブロック位置情報を対応付けて相対画素位置xのソートを実行し、このソート処理によって得られたブロック位置情報をパックブロックに対応付けてブロック位置情報に基づいて、パックブロックのソートを実行することで、ソート前のパックブロックを取得する。
アンパック処理部586は、前述のアンパック処理部575と同じ処理を行い、元のフレームレートにブロックを変換する。なお、上述した処理例は元画像が左に動いている場合についての処理例であるが、相対位置ソーティング部584におけるソーティング時に、相対画素位置xをキーとして昇順または降順にソーティングを行うことにより、元画像が右に動いている場合でも同様の処理によって対応できる。また、垂直方向に動いているブロックを処理対象とする場合には、上述したソート処理を上下方向に実行して、画素行のソーティングを垂直方向の相対位置yをキーとして行なう設定とした処理によって対応できる。
なお、上述のソーティング手法は、特定の手法に依存しないので、クイックソートやマージソート等の既存の手法を用いればよい。
[画素交換を使用したアンパック処理の詳細説明]
先に、動画像復元装置の説明において図28〜図43を参照してブロックに対応する移動速度vに基づいて予め定めた画素交換規則を適用して画素交換を行いパックブロックを生成する処理について説明したが、以下、このパック処理に対応して動画像復元装置側で実行するアンパック処理(以降、画素列交換アンパック)について説明する。
図28〜図43を用いて説明されたパック処理においては、相対画素位置xの値に基づくソーティング処理を実行することなく、パックブロックにおける画素列を交換することにより、パックブロックの画素を、元画像の相対的な画素位置と同様の配置にする処理を行っている。動画像復元装置側で、このパックブロックを、画素位置補正を行なう前の初期的なパックブロックに戻すにはパック処理側で行われた画素列の交換処理と逆の処理を行う。
[空間方向間引が行われたブロックの画素列交換に基づくアンパック処理]
まず、図8に示した動画像変換装置におけるパック処理部a141に対応するアンパック処理を行なうのは、図45に示す動画像復元装置のブロック処理部530におけるアンパック処理部a532である。アンパック処理部a532の構成および処理について、図55を参照して説明する。図55のアンパック処理部a532は、図8に示した動画像変換装置におけるパック処理部a141、すなわち図19に示すパック処理部a141においてパック処理のなされたパックブロックのアンパックを実行する。
アンパック処理部a532の入力は、ブロック分配部531から出力されたブロック、すなわち、図8に示した動画像変換装置におけるパック処理部a141において4フレームから得られた4つのブロックを1つにパックしたブロックである。すなわち空間方向間引きのみがなされた間引きデータに対応するパックブロックである。
このパックブロックは、先に、図19を参照して説明した通り、図19におけるブロック内画素ソーティングパック処理部354、355、パック処理部356において、4フレームから得られた4つのブロックを1つにパックしたブロックである。
アンパック処理部a532に入力された、パックされたブロックは、ブロック分配部531に入力される。入力されたブロックは、サイド情報と共に、ブロック分配部内の図示されないブロック・サイド情報保存部に蓄えられる。ブロック分配部531は蓄えられたブロックのうち、左右方向に動いているブロックは水平方向1/4間引き連続ブロック抽出部601へ、上下方向に動いているブロックは垂直方向1/4間引き連続ブロック抽出部602へ出力する。この時、出力されたブロックに対応するブロックのサイド情報もペアで出力される。
水平方向1/4間引き連続ブロック抽出部601は、水平方向に2ブロック以上連続しているブロックを検出し、2ブロック以上連続しているブロックをブロック内画素−画素列交換アンパック処理部603へ出力する。この時、出力されたブロックに対応するブロックの動きベクトルもペアで出力される。また、連続していないブロックはアンパック処理部605へ出力する。
同様に垂直方向1/4間引き連続ブロック抽出部602は、垂直方向に2ブロック以上連続しているブロックを検出し、2ブロック以上連続しているブロックをブロック内画素−画素列交換アンパック処理部604へ出力する。この時、出力されたブロックに対応するブロックの動きベクトルもペアで出力される。また、連続していないブロックはアンパック処理部605へ出力する。
これらのブロック分配部531と水平方向1/4間引き連続ブロック抽出部601と垂直方向1/4間引き連続ブロック抽出部602による、ブロックの分配結果は、図8と図24を用いて説明されたパック処理における分配結果と同一になることが望ましい。
アンパック処理部605に入力されるパックされたブロックは、図9において示すブロック225に相当するブロックである。このブロックの内部の1×4画素、例えば図9におけるブロック225の画素235は、図19に示した動画像変換装置におけるパック処理部356においてパックされた4フレーム分の画素p1〜p4である。アンパック処理部555はこの4つの画素p1〜p4を4フレーム分のブロックに拡張することでフレーム数を4倍にするアンパック処理を行い、ブロック合成部535へ出力する。
ブロック内画素−画素列交換アンパック処理部603は、ブロックの移動速度vに基づいて予め設定された画素交換規則に従って画素列交換処理のなされたパックブロックである。ブロック内画素−画素列アンパック処理部603は、これらのパックブロックに対して、アンパック処理を行い、ブロック合成部535へ出力する。ブロック内画素−画素列交換アンパック処理部603の構成および処理について、図56を参照して説明する。
図56に示すブロック内画素−画素列交換アンパック処理部603は、入力された画素位置補正が行われたパックされたブロックをブロック保存部621に一旦保存する。続いて、ブロック分配部623において、入力されたサイド情報からサイド情報に含まれるブロックの移動速度vを抽出し、移動速度vから求められる画素列交換フラグに従って、アンパック処理対象のパックブロックを各ブロック内画素列交換アンパック処理部624〜626へ分配する。分配条件はパック時と同じことが望ましい。
先に説明したパックブロックの生成時の条件は、図30に示した条件である。アンパック処理部603は、この条件に合わせた処理を行なう。すなわち、移動速度vから求められる画素列交換フラグ(A〜D)に従って、ブロック内画素−画素列交換アンパック処理部624〜626へ以下のように分配する。
(1)0≦v<2.75→フラグA→アンパック処理部A624
(2)2.75≦v<4.0→フラグB→アンパック処理部B625
(3)4.0≦v<6.0→フラグC→アンパック処理部C626
(4)6.0≦v→フラグD→アンパック処理部C626
ブロック内画素列交換アンパック処理部A624〜C626へ分配されたブロックは、ブロック内画素列交換アンパック処理部A624〜C626内で、パック時と逆の画素列交換処理が行われ、画素順が元にもどされる。その後、画素位置補正前かつパック後のブロックとして出力される。
ブロック内画素列交換アンパック処理部A624に入力されるパックブロックは、1/4空間方向間引き処理が実行され、図31に示すパック処理部402において、前述の図9に示すパック処理手法に従ってパック処理が行われ、さらに、図31に示すブロック内画素−画素列交換処理部A404において画素列交換のなされたパックブロックであり、移動速度vが、
0≦v<2.75
の範囲にあるパックブロックである。
ブロック内画素列交換アンパック処理部B625に入力されるパックブロックは、1/4空間方向間引き処理が実行され、図31に示すパック処理部402において、前述の図9に示すパック処理手法に従ってパック処理が行われ、さらに、図31に示すブロック内画素−画素列交換処理部B405において画素列交換のなされたパックブロックであり、移動速度vが、
2.75≦v<4.0
の範囲にあるパックブロックである。
ブロック内画素列交換アンパック処理部C626に入力されるパックブロックは、1/4空間方向間引き処理が実行され、図31に示すパック処理部402において、前述の図9に示すパック処理手法に従ってパック処理が行われ、さらに、図31に示すブロック内画素−画素列交換処理部C406において画素列交換のなされたパックブロックであり、移動速度vが、
4.0≦v
の範囲にあるパックブロックである。
ブロック内画素列交換アンパック処理部A624、ブロック内画素列交換アンパック処理部B625、ブロック内画素列交換アンパック処理部C626各々の構成および処理について、図57以下を参照して説明する。図57に示すように、ブロック内画素列交換アンパック処理部A624、ブロック内画素列交換アンパック処理部B625、ブロック内画素列交換アンパック処理部C626は、それぞれ異なる態様の画素交換規則に従った画素列交換処理を実行する1以上の画素列交換処理部α641〜ζ646の組み合わせによって構成される。各画素列交換処理部α641〜ζ646は、それぞれが異なる画素列交換規則に従った画素列交換処理を実行する。
これらの各画素列交換処理部α641〜ζ646の各々は、先に動画像変換装置の説明において示した図32に示す各画素列交換処理部α411〜ζ416と同様の処理を実行する。すなわち、
各画素列交換処理部α641は、図33を参照して説明した画素交換規則に従った画素交換処理、
各画素列交換処理部β642は、図34を参照して説明した画素交換規則に従った画素交換処理、
各画素列交換処理部γ643は、図35を参照して説明した画素交換規則に従った画素交換処理、
各画素列交換処理部δ644は、図36を参照して説明した画素交換規則に従った画素交換処理、
各画素列交換処理部ε645は、図37を参照して説明した画素交換規則に従った画素交換処理、
各画素列交換処理部ζ646は、図38を参照して説明した画素交換規則に従った画素交換処理、
これらの処理を各々実行する。
図57の処理構成は、図32に示す構成と逆順の処理を実行する構成となっている。このように、ブロック内画素列交換アンパック処理部A624、ブロック内画素列交換アンパック処理部B625、ブロック内画素列交換アンパック処理部C626各々は、前述のパック処理時の構成を示す図32と逆の処理を行うことによりパックブロックの画素順を元に戻す処理を行なう。
アンパック処理部627は、図51に示すアンパック処理部575と同様の処理、すなわち、図9において示すブロック225を各ブロック内画素列交換アンパック処理部から入力して、4つの画素p1〜p4を4フレーム分のブロックに拡張することでフレーム数を4倍にするアンパック処理を行い、ブロック合成部535へ出力する。
なお、動画像変換装置におけるパック処理と同様、各画素交換規則を適用した処理例は、元画像が左に動いている場合の処理例である。右に動いている場合は、処理の方向を変更することで対応可能である。また、画像が、垂直方向に動いているブロックを処理対象とする場合は、画素列交換処理部α〜ζ画素列交換処理を、90度回転して、各ブロックの行の交換を実行する構成とすればよい。例えば、左方向を上方向、右方向を下方向に変えることにより、同様の画素交換によって、元画像の相対位置に対応した画素配置を持つパックブロックを生成することができる。
[空間方向間引きと時間方向間引きが行われたブロックの画素列交換に基づくアンパック処理]
続いて、空間方向間引きと時間方向間引きが行われたブロックに対応するパックブロックに対するアンパック処理、すなわち、図8に示す動画像変換装置におけるパック処理部c143において、上述と同様、移動速度vに応じて、所定の画素列交換規則を適用して生成されたパックブロックについてのアンパック処理について、図58を参照して説明する。
空間方向間引きと時間方向間引きが行われたブロックのパック処理についても、空間方向間引きのみが行われたブロックと同様、移動速度vに応じて予め定めた画素交換処理によって、パックブロックの画素配置を元画像の画素配置の相対位置関係と同様の位置に設定する処理を行うことができることを、図39〜図43を参照して説明した。以下、このようなパックブロックに対して実行するアンパック処理について説明する。
アンパック処理部c534の入力は、ブロック分配部531から出力されたブロック、すなわち、図8に示した動画像変換装置におけるパック処理部c143において4フレームから得られた4つのブロックを1つにパックしたブロックである。すなわち、空間方向と時間方向の間引き処理結果に基づいて生成されたパックブロックであり、ブロック対応の移動速度vに基づく画素交換規則に従って画素交換のなされたパックブロックである。
このパックされたブロックは。図40に示すパック処理部c143におけるブロック内画素−画素列交換パック処理部435、436、パック処理部437において、4フレームから得られた4つのブロックを1つにパックしたブロックである。
アンパック処理部c534に入力された、パックされたブロックは、ブロック分配部531に入力される。入力されたブロックは、サイド情報と共に、ブロック分配部内の図示されないブロック・サイド情報保存部に蓄えられる。ブロック分配部531は蓄えられたブロックのうち、左右方向に動いているブロックは水平方向1/2間引き連続ブロック抽出部651へ、上下方向に動いているブロックは垂直方向1/2間引き連続ブロック抽出部652へ出力する。この時、出力されたブロックに対応するブロックのサイド情報もペアで出力される。
水平方向1/2間引き連続ブロック抽出部651は、水平方向に2ブロック以上連続しているブロックを検出し、2ブロック以上連続しているブロックをブロック内画素−画素列交換アンパック処理部653へ出力する。この時、出力されたブロックに対応するブロックの動きベクトルもペアで出力される。また、連続していないブロックはアンパック処理部655へ出力する。
同様に垂直方向1/2間引き連続ブロック抽出部652は、垂直方向に2ブロック以上連続しているブロックを検出し、2ブロック以上連続しているブロックをブロック内画素−画素列交換アンパック処理部654へ出力する。この時、出力されたブロックに対応するブロックの動きベクトルもペアで出力される。また、連続していないブロックはアンパック処理部655へ出力する。
これらのブロック分配部531と水平方向1/2間引き連続ブロック抽出部651と垂直方向1/2間引き連続ブロック抽出部652による、ブロックの分配結果は、図8と図40を用いて説明されたパック処理における分配結果と同一になることが望ましい。
アンパック処理部655に入力されるパックブロックは、図10において示すブロック245である。このブロックの内部の1×2画素、例えば図10におけるブロック245の画素255は、図25に示した動画像変換装置におけるパック処理部376においてパックされた4フレーム分の画素p1、p3である。アンパック処理部655はこの2つの画素p1、p3を4フレーム分のブロックに拡張することでフレーム数を2倍にして、ブロック合成部535へ出力する。
ブロック内画素−画素列交換アンパック処理部653は、ブロックの移動速度vに基づいて予め設定された画素交換規則に従って画素列交換処理のなされたパックブロックである。ブロック内画素−画素列アンパック処理部653は、これらのパックブロックに対して、アンパック処理を行い、ブロック合成部535へ出力する。ブロック内画素−画素列交換アンパック処理部653の構成および処理について、図59を参照して説明する。
図59に示すブロック内画素−画素列交換アンパック処理部653は、入力された画素位置補正が行われたパックされたブロックをブロック保存部661に一旦保存する。続いて、ブロック分配部663において、入力されたサイド情報からサイド情報に含まれるブロックの移動速度vを抽出し、移動速度vから求められる画素列交換フラグに従って、アンパック処理対象のパックブロックを各ブロック内画素列交換アンパック処理部664〜665へ分配する。分配条件はパック時と同じことが望ましい。
先に説明したパックブロックの生成時の条件は、図41に示した条件である。アンパック処理部653は、この条件に合わせた処理を行なう。すなわち、移動速度vから求められる画素列交換フラグ(E,F)に従って、ブロック内画素−画素列交換アンパック処理部664〜665へ以下のように分配する。
(1)0≦v<1.5→フラグE→アンパック処理部E664
(2)1.5≦v<2.0→フラグB→アンパック処理部F665
ブロック内画素列交換アンパック処理部664、665へ分配されたブロックは、ブロック内画素列交換アンパック処理部664、665内で、パック時と逆の画素列交換処理が行われ、画素順が元にもどされる。その後、画素位置補正前かつパック後のブロックとして出力される。
ブロック内画素列交換アンパック処理部E664に入力されるパックブロックは、1/2空間方向および時間方向間引き処理が実行され、図31に示すパック処理部402において、前述の図10に示すパック処理手法に従ってパック処理が行われ、さらに、図42に示すブロック内画素−画素列交換処理部E444において画素列交換のなされたパックブロックであり、移動速度vが、
0≦v<1.5
の範囲にあるパックブロックである。
ブロック内画素列交換アンパック処理部F665に入力されるパックブロックは、1/2空間方向および時間方向間引き処理が実行され、図31に示すパック処理部402において、前述の図10に示すパック処理手法に従ってパック処理が行われ、さらに、図42に示すブロック内画素−画素列交換処理部F445において画素列交換のなされたパックブロックであり、移動速度vが、
1.5≦v<2.0
の範囲にあるパックブロックである。
ブロック内画素列交換アンパック処理部E664、ブロック内画素列交換アンパック処理部F665各々の構成および処理について、図60以下を参照して説明する。図60に示すように、ブロック内画素列交換アンパック処理部E664、ブロック内画素列交換アンパック処理部F665は、それぞれ異なる態様の画素交換規則に従った画素列交換処理を実行する1以上の画素列交換処理部α641〜β642の組み合わせによって構成される。各画素列交換処理部α641〜β642は、それぞれが異なる画素列交換規則に従った画素列交換処理を実行する。
これらの各画素列交換処理部α641〜β642の各々は、先に動画像変換装置の説明において示した図43に示す各画素列交換処理部α411〜β642と同様の処理を実行する。すなわち、
各画素列交換処理部α641は、図33を参照して説明した画素交換規則に従った画素交換処理、
各画素列交換処理部β642は、図34を参照して説明した画素交換規則に従った画素交換処理、
これらの処理を各々実行する。
図60の処理構成は、図43に示す構成と逆順の処理を実行する構成となっている。このように、ブロック内画素列交換アンパック処理部E654、ブロック内画素列交換アンパック処理部F655の各々は、前述のパック処理時の構成を示す図43と逆の処理を行うことによりパックブロックの画素順を元に戻す処理を行なう。
アンパック処理部666は、図58に示すアンパック処理部655と同様の処理、すなわち、図10において示すブロック245を各ブロック内画素列交換アンパック処理部から入力して、2つの画素p1、p3を4フレーム分のブロックに拡張することでフレーム数を2倍にして、ブロック合成部535へ出力する。
なお、動画像変換装置におけるパック処理と同様、各画素交換規則を適用した処理例は、元画像が左に動いている場合の処理例である。右に動いている場合は、処理の方向を変更することで対応可能である。また、画像が、垂直方向に動いているブロックを処理対象とする場合は、画素列交換処理部α〜ζ画素列交換処理を、90度回転して、各ブロックの行の交換を実行する構成とすればよい。例えば、左方向を上方向、右方向を下方向に変えることにより、同様の画素交換によって、元画像の相対位置に対応した画素配置を持つパックブロックを生成することができる。
[(4)本発明に従った、低フレームレートデバイスのための動画像伸張処理を実行する装置および方法]
次に、低フレームレートデバイスのための動画像伸張処理を実行する装置および方法について説明する。
先の項目[(3)本発明に従った動画像伸張処理を実行する装置および方法]において説明した実施例は、復号側の表示デバイスが高フレームレート表示に対応している場合に、最適な復元画像を表示デバイスに表示することが可能である。しかしながら、表示デバイスが高フレームレートに対応しているデバイスでない場合には、高フレームレートの画像データを低フレームレートの画像データに対応させることが必要となる。
以下では、このような動画像伸張処理を実行する装置および方法について説明する。なお、この実施例で説明する動画像復元装置も、先に、[(2)本発明に従った動画像圧縮処理を実行する装置および方法]において説明した処理に従って生成されたデータ、すなわち、ブロックの移動量に応じた空間間引き、時間方向間引き処理を実行した圧縮符号化データについての復号、伸張処理を実行する。
先に、[(2)本発明に従った動画像圧縮処理を実行する装置および方法]において説明したパック処理、すなわち、「パック後画像の画素位置の変化を補正しパック処理後の画素順を元画像に近づけたパック処理」では、パック処理後の画素順を元画像に近づける処理を実行して、MPEGなどのデータ圧縮処理における圧縮率を向上させていることを説明した。上述した動画像変換装置におけるパック処理は元画像のフレームレートRの動画像をR/Mにするとともに、画素位置の補正処理によりパック後の画素順を元画像に近い位置としたパックブロックを生成している。なお、入力した動画像のオリジナルフレームレートがR、パック処理部においてまとめるフレーム数がMである。
従って、上述した動画像変換装置において実行されるパック処理後のパックブロックとして出力される動画像の各フレームは、フレームレートRの動画像をR/Mに間引いた時のフレームに近い画像になっていることになる。
本実施例における動画像復元装置の構成および処理について、図61以下を参照して説明する。図61は、本実施例に係る動画像復元装置の概略構成を示すブロック図である。
図61に示す動画像復元装置は、符号化された動画像データおよびサイド情報を入力して、復号部710にて復号する。符号化された動画像データは、前述した相対画素位置xに基づくソート処理あるいは移動速度vに基づく画素交換処理を適用して生成されたパックブロックを含むブロックの符号化データであり、サイド情報は、各ブロックに対応する間引き、パック処理などの処理態様を示すブロック分配フラグ、移動量情報を含むデータである。
復号部710は、例えばMPEG、Motion Jpeg等の一般的な符号化手法により符号化された符号化データの復号処理により、動画像データの復号処理を実行する。また、サイド情報については、例えばLZH、Zip等の一般的な符号化手法により符号化された符号化データの復号処理を行なう。もちろん、各々の復号処理態様は符号化側の符号化態様と対応する処理とされる。
ブロック分割部720は、復号された動画像の各フレームを、所定画素の区分領域としてのブロックに分割し、復号されたサイド情報と共にブロック処理部5803に供給する。この時のブロックサイズは符号化時にブロック分割されたサイズと合せておかなければならない。
ブロック処理部730は、符号化側のパック処理によりR/Mにフレームレートを変換されたブロックを所望のフレームレートに変換し、フィルタ処理により人間の視覚的な不自然さを除去し、復号された動画像として出力する。この時、各ブロックにおけるフレームレート変換処理およびフィルタ処理は、復号部710により復号されたサイド情報に基づいて、適切な処理を行うことが望ましい。また、ブロック処理部730から出力される復号された動画像は、元動画像に近い動画像である。
本実施形態の動画像復元装置における復号部710およびブロック分割部720およびブロック処理部730の構成について、図62を参照して説明する。図62は本実施形態における復号部710およびブロック分割部720およびブロック処理部730の構成を示すブロック図である
動画像復元装置に入力された符号化された動画像およびサイド情報は、復号部710内の動画像復号部711によって動画像が、サイド情報復号部712によってサイド情報が、復号される。復号された動画像、サイド情報はブロック分割部720においてある大きさのブロック、例えば8pixel×8pixelや16pixel×16pixel等のブロックに分解され、ブロック分割部720内の図示されない保存領域に1フレーム分保存される。1フレーム分復号され分割された動画像およびサイド情報は、ブロック処理部730のブロック分配部731に送られる。
ブロック分配部731は、各ブロックに対して異なるフレームレート処理を行うフレームレート変換処理部732〜734へブロックを振り分ける処理を実行する。ブロック分配部731の入力は、復号部710から出力されてきたサイド情報と、ブロック分割部720から出力されるブロックに分割された1フレーム分の画像データである。
図62には、ブロック分配部731が、入力された1フレーム分のブロックをサイド情報に従って分配するフレームレート変換処理部732〜734を3つ示してあるが、フレームレート変換処理部の構成数は、この数に限定されるものではない。例えば、より細かくブロックを区分して各区分ブロック毎に対応した処理を行なう場合は、フレームレート変換処理部を増やしてもよいし、また、簡略化して1つのフレームレート変換処理部で処理を行う構成でもかまわない。
サイド情報には、先に説明したように、動画像変換装置側の処理態様、すなわち、図8におけるブロック処理部131〜133およびパック処理部141〜143のいずれの処理部での処理が行なわれたかを示すブロック分配フラグが含まれている。ブロック分配部731は、この分配フラグに基づいて、ブロックをフレームレート変換処理部732〜734に振り分ける。ブロック処理部131で空間方向間引き処理がなされたブロックはフレームレート変換処理部732、ブロック処理部132で時間方向間引き処理がなされたブロックはフレームレート変換処理部733、ブロック処理部133で空間および時間方向間引き処理のなされたブロックはフレームレート変換処理部734へ振り分けられる。
フレームレート変換処理部732〜734は、符号化側のパック処理によりR/Mにフレームレートを変換されたブロックを入力し、入力されたブロックにフレームレート変換処理およびフィルタ処理を行うことにより所望のフレームレートのブロックに変換する。本実施例では、図8に示す動画像変換装置におけるパック処理部141でパックされたブロックはフレームレート変換処理部732、パック処理部142でパックされたブロックはフレームレート変換処理部733、パック処理部143でパックされたブロックはフレームレート変換処理部734においてフレームレート変換処理およびフィルタ処理が行われる。
フレームレート変換処理部732〜734において所望のフレームレートに変換されたブロックは、ブロック合成部735により所望のフレームレートを持つフレーム画像へ合成される。一実施例として60fpsのフレーム画像へ合成する場合について説明する。つまり、ブロック合成部735は、低フレームレートデバイスにおいても表示可能なフレームレート動画像を生成して出力することにある。
フレームレート変換処理部732〜734は、それぞれ、図8に示した動画像変換装置におけるパック処理部a141〜c143によって生成されたパックブロックに対応した処理を実行する。すなわち、パック処理部a141〜c143によってパック処理されたブロックのフレームレート変換処理を行う。
図63に、フレームレート変換処理部732〜734の構成を示す。フレームレート変換処理部732〜734の入力は、ブロック分配部731から出力されたブロック、すなわち、図8に示した動画像変換装置におけるパック処理部において4フレームから得られた間引き処理データに基づく4つのブロックを1つにパックしたブロックであり、前述の相対画素位置xに基づくソーティング処理あるいはブロック対応の移動速度vに基づく画素位置交換規則に従って、パックブロック中の画素位置を元画像における画素位置と相対的に同じ配列としたパックブロックである。
すなわち、入力した動画像のオリジナルフレームレートをR、パック処理部において1つにまとめるフレーム数をMとした場合、フレームレートがR/Mに変換されたパックブロックである。このパックブロックは、変換後のフレームレートSとの比較により異なった処理がなされる。
R/M>=Sの場合、フレームレート変換処理部へ入力されたブロックはブロック保存部752へ入力され、保存される。R/M<Sの場合、入力されたブロックはブロック移動処理部751とブロック保存部752の双方へ入力される。
ブロック移動処理部751では、R/M<Sの時に入力されたブロックでは足りないフレーム上のブロックを、サイド情報から得られる入力されたブロックの移動速度および方向を用いて入力されたブロックを移動させることにより生成し、新しいブロックとしてブロック保存部752へ出力する。
ブロック移動処理部751での処理の具体例を図64を参照して説明する。S=(R/M)×2の場合を例として説明する。ブロック移動処理部751に入力されたブロックを851、852とし、各ブロック851,852のフレームをPフレーム811、P+1フレーム812とした時、R/M<Sの場合、出力画像をフレームレートSとするためには、入力されたフレーム数をSまで、増やす必要がある。
図64に示す画像の場合、S=(R/M)×2であるので、フレームP811、フレームP+1812の間にフレームP+0.5,813としての中間フレームを増やす必要がある。
そこで、ブロック移動処理部751は入力されたブロックに基づいて、新しいフレームを生成し、生成フレームにブロックを設定する。サイド情報から得られる入力ブロックに対応する移動速度および方向を用いてブロック移動量分だけ移動させたブロックを生成フレームに設定する。図64(B)がブロック移動量分だけ移動させたブロックを新規生成フレーム823として追加して生成したフレームレートSの画像に相当する。
すなわち、フレーム821上のブロック851を、ブロック対応の移動量871分だけ移動させた追加フレーム823を生成する。追加フレーム823には、フレーム821上の入力されたブロック851を移動量871分だけ移動させたブロック872が示されている。
なお、サイド情報から得られる入力されたブロックの移動速度は変換後のフレームレートの速度に合せて補正されていなければならない。本実施例では、出力するフレームレートSの画像において、フレームP821、フレームP+1,822は、入力フレームP811、フレームP+1,812と同様のフレームとして設定し、各々のフレーム上のブロック861、862は、入力ブロック851,852と同じものとした。
生成されたブロック872は、新しいブロックとしてブロック保存部752において、フレーム順に保存され、フィルタ処理部753において視覚的な不自然さを除去する。フィルタ処理部753では、R/M<Sの場合、フレームを時間軸方向にフィルタリングすることによりフレームを間引き、変換後のフレームレートSへの変換も行う。
フィルタ処理部753においては主にローパスフィルタが用いられるが、本実施例においてはローパスフィルタの特別な場合であるブラー処理、すなわちぼかし処理を行った。本実施例におけるブラー処理は、下式(数式3)に従って、入力画素値から出力画素値算出する処理として実行される。
上記式において、in()はブロック保存部752から出力されたフィルタ処理部753の入力画素、out()は出力画素、fはフレーム番号x、yはフレーム内画素座標値、modは剰余演算子である。
なお、フィルタ処理部753のフィルタ処理は、空間方向間引きの実行されたブロック、すなわち、図62に示すフレームレート変換処理部a732と、フレームレート変換処理部c734に対して入力されたブロックのみを対象としてよい。フレームレート変換処理部733(図62参照)に入力されるブロックについては、ブロックの移動量が、水平方向、垂直方向の移動量がともに1ピクセル未満のブロックであるため、Nフレームにわたるブロックの移動量が小さく、またパック処理も時間方向のフレーム間引きのみブロックに基づくパック処理が行われているため、フィルタ処理の必要性はない。なお、フィルタ処理は数式3で示したフィルタ処理以外のローパスフィルタ処理でも問題はない。
以上のように、本実施例の動画像復元装置および方法によれば、動画像データを構成するフレーム毎にブロック分割を行い、各ブロックにおける被写体移動量を検出し、移動量に基づいて決定した態様の空間方向間引き処理または時間方向間引き処理の少なくともいずれかの間引き処理を実行し、元画像と同様の相対位置を持つ画素位置としたパックブロックを入力して復元を行なう構成において、元画像と同様の相対位置を持つ画素位置としたパックブロックに基づいて、出力フレームレートに対応する動画像データを生成する構成としたので、低フレームレートデバイスにおいても出力表示可能な動画像伸張処理を実行することが可能となる。
以上、特定の実施例を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本発明の要旨を判断するためには、特許請求の範囲の欄を参酌すべきである。
また、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させるか、あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。
例えば、プログラムは記録媒体としてのハードディスクやROM(Read Only Memory)に予め記録しておくことができる。あるいは、プログラムはフレキシブルディスク、CD−ROM(Compact Disc Read Only Memory),MO(Magneto optical)ディスク,DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体に、一時的あるいは永続的に格納(記録)しておくことができる。このようなリムーバブル記録媒体は、いわゆるパッケージソフトウエアとして提供することができる。
なお、プログラムは、上述したようなリムーバブル記録媒体からコンピュータにインストールする他、ダウンロードサイトから、コンピュータに無線転送したり、LAN(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送し、コンピュータでは、そのようにして転送されてくるプログラムを受信し、内蔵するハードディスク等の記録媒体にインストールすることができる。
なお、明細書に記載された各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。また、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。