以下、本発明を実施するための形態について説明する。
[第1の実施の形態]
最初に第1の実施の形態について説明する。図1は第1の実施の形態における評価システム10の構成例を表わす図である。評価システム10は評価装置100と圧縮符号化装置300とを備える。
評価装置100は、例えば、圧縮符号化装置300において生成される画像の画質を評価する。例えば、評価装置100は圧縮符号化装置300における圧縮符号化の性能、或いは動きベクトルの性能を評価することで当該画質を評価する。
図1に示す評価システム10において、圧縮符号化装置300は評価装置100において評価対象の装置(又はターゲット装置)となる。圧縮符号化装置300では、画像フレーム間の相関を利用して各画像フレームにおける画像データの圧縮符号化を行う。圧縮符号化の方式としては、例えば、MPEG−1,MPEG−2,MEPG−4,H.264などである。例えば、フレーム間の相関を利用した圧縮符号化方式であればそれ以外のものでもよいし、今後、規格化される方式のものでもよい。
評価装置100は、解析部170と評価部175を備える。
解析部170は圧縮符号化装置300から圧縮符号化された画像データと圧縮符号化前の非圧縮の画像データとを入力する。解析部170は、圧縮符号化された画像データが伸張復号化されるときに第1の画像フレームにおける第1の領域において用いられる第1の動きベクトルに基づいて、第1の画像フレームにおいて伸張復号化されるときの参照フレームである第2の画像フレームにおける第2の領域を抽出する。そして、解析部170は第2の画像フレームに対応する圧縮符号化前の第3の画像フレームにおける第2の領域の画像データを予測画像フレームの第1の領域における画像データとする。解析部170は、例えば、このような処理を1画像フレーム分行うことで予測画像フレームを生成する。
評価部175は、予測画像フレームの画像データと第3の画像フレームにおける画像データとを解析部170から入力し、この2つの画像データを比較して圧縮符号化装置300における画質を評価する。
例えば、第1の領域における圧縮符号化データが伸張復号化されるとき、第1の画像フレームにおける第1の領域と、参照フレームである第2の画像フレームにおける第2の領域の各画像データの差分データが、第1の領域の伸張復号化後の画像データに加算される場合がある。
しかし、解析部170では、予測画像フレームを生成するときに、差分データを加算せずに、第3の画像フレームにおける第2の領域の画像データをそのまま用いている。差分データは、例えば、圧縮符号化装置300において量子化値(Q値)により量子化処理されるデータである。量子化値は、例えば、圧縮符号化装置300を製造する会社によって異なる値となる場合があり、また、圧縮符号化装置300から送信されるデータのビットレートが大きく影響する値でもある。
従って、評価装置100では、ビットレートの影響をできるだけ排除した予測画像フレームの画像データを生成することができ、この予測画像フレームの画像データを評価対象とすることで、ビットレートの影響をできるだけ排除した状態で画質を評価することができる。
また、解析部170では、差分データを加算せず、圧縮符号化された画像データを伸張復号化するときに用いる動きベクトルに基づいて予測画像フレームの画像データを生成している。
このように評価装置100では、差分データが用いられず動きベクトルに基づいて予測画像フレームの画像データを生成しているため、圧縮符号化装置300における動きベクトルの性能に大きく影響した予測画像フレームの画像データを生成することができる。
従って、評価装置100はかかる予測画像フレームの画像データを評価対象とすることで、例えば、圧縮符号化装置300における動き予測の性能を評価し、これにより動画像の圧縮符号化を行う圧縮符号化装置300における画質を評価することができる。
[第2の実施の形態]
次に第2の実施の形態について説明する。本第2の実施の形態は以下の順番で説明する。すなわち、最初に本第2の実施の形態における評価システムの全体構成例について説明する。次に、評価システムに含まれる各装置の構成例について説明し、最後にどのように評価処理が行われるかについて動作例を説明する。
<評価システムの全体構成例>
評価システムの全体構成例について説明する。図2は評価システム10の構成例を表わしている。評価システム10は、動き予測性能評価装置(以下、「評価装置」と称する場合がある)100、画像表示装置200、ターゲット装置300、モニタ映像表示装置400を備える。
評価装置100は、ターゲット装置300内におけるエンコーダ(図2の例ではエンコード回路350)における動き予測の性能を評価し、これにより、例えばターゲット装置300における画質を評価することができる。本評価システム10において、ターゲット装置300が評価対象の装置であって、評価装置100はターゲット装置300の動き予測の性能等を評価する。
評価装置100は、リファレンス画像(以下において「合成画像」と称する場合がある)の画像データを画像表示装置200に出力する。合成画像は、ターゲット装置300において撮像対象の画像として使用される。
映像表示装置200は、評価装置100から出力された合成画像を表示する。例えば、映像表示装置200と評価装置100はケーブルで接続され、HDMI(High Definition Multimedia Interface)などの所定の伝送フォーマットにより合成画像の画像データを送受信することができる。映像表示装置200は、このような伝送フォーマットによる受信処理を行うことができるよう内部に受信回路などを備えてもよい。
ターゲット装置300は、例えば、ビデオカメラやデジタルスチルカメラなど動画像を撮像する機能を有する。図2の例においては、ターゲット装置300は映像表示装置200に表示された合成画像を撮像する。
ターゲット装置300は撮像した合成画像をモニタ画像として評価装置100に出力する。このモニタ画像は圧縮符号化される前のものである。また、ターゲット装置300は、撮像した合成画像に対してエンコード回路350において圧縮符号化を行う。ターゲット装置300は圧縮符号化された画像データ(以下、「ストリームデータ」と称する場合がある)を、記録メディア360などを介して評価装置100に出力できる。ターゲット装置300の詳細は後述する。なお、ターゲット装置300は、第1の実施の形態における圧縮符号化装置300に対応する。
評価装置100は、ターゲット装置300からモニタ画像の画像データとストリームデータとを入力する。そして、評価装置100は、モニタ画像の画像データに対してOSD(On Screen Display)表示(又はオンスクリーン表示)をマスクするなどの処理を行い、調整されたモニタ画像を生成する。他方、評価装置100は、ストリームデータに対して伸張復号化処理(以下、「デコード処理」または「デコード」と称する場合がある)を施して、デコード画像を生成する。
評価装置100は、調整されたモニタ画像と動きベクトルとに基づいて予測画像を生成する。評価装置100は、この予測画像と調整されたモニタ画像とを比較して、ターゲット装置300におけるデコード回路350の動き予測の性能を評価する。評価装置100の構成例とこれらの処理の詳細は後述する。
<ターゲット装置300の構成例>
ターゲット装置300は、レンズ310、撮像部320、前処理部330、モニタ映像出力部340、エンコード回路350、及び記録メディア360を備える。
レンズ310は、例えば、映像表示装置200で表示された画像の焦点を調整したり、当該画像の大きさを調整する。
撮像部320は、例えば、CCD(Charge Coupled Device)イメージセンサーやCMOS(Completely Metal Oxide Semiconductor)イメージセンサーなどの撮像素子である。撮像部320は、例えば、映像表示装置200で表示される画像に対して、光電変換などによりRGB(Red Green Blue)の各色の画像データに変換する。
前処理部330は、例えば、撮像部320から出力されたRGBの画像データに対して、CMYK(Cyan Magenta Yellow Key plate)やYUV(輝度信号Yと2つの色差信号U,V)、YCbCr(輝度信号Yと2つの色差信号CbCr)など、表示系の画像データに変換する。また、前処理部330は、例えば、変換後の画像データに対して、オーバースキャン処理やOSDの表示処理などを行う。オーバースキャン処理やOSDの表示処理の詳細は後述する。
なお、前処理部330は表示系に変換した画像データに対して、オーバースキャン処理やOSDの表示処理などを行わずにそのままエンコード回路350に出力する。一方、前処理部330は、表示系に変換した画像データに対してオーバースキャン処理やOSDの表示処理を施した映像信号をモニタ映像出力部340に出力する。
モニタ映像出力部340は、前処理部330から出力された画像データを所定の伝送フォーマット(例えばHDMIなど)の形式に変換して評価装置100に送信する。モニタ映像出力部340はこのような変換を行うことができるよう内部に変換回路を設けるようになっていてもよい。なお、前処理部330においてオーバースキャン処理やOSDの表示処理などが行われず、モニタ映像出力部340においてかかる処理が行われるようになっていてもよい。モニタ映像出力部340は、例えば、このような処理が施された合成画像をモニタ画像として評価装置100に出力する。モニタ映像出力部340は、例えば、ビデオカメラに備えられたビューファインダに表示される画像と同じ画像が出力される。
なお、ターゲット装置300の種別によっては、オーバースキャン処理とOSDの表示処理の双方、またはいずれか一方が行われない場合もあり、このような場合は双方が行われない、またはいずれか一方の処理が行われた合成画像がモニタ映像として出力される。
エンコード回路350は、前処理部330から出力された画像データに対して、圧縮符号化処理(以下においては、「エンコード処理」又は「エンコード」と称する場合がある)を行う。エンコード回路350では、MPEG−1,MPEG−2,MPEG−4,H.264など、フレーム間の相関を利用したエンコード処理が行われる。本第2の実施の形態においては、例えば、H.264によるエンコード処理が行われるものとして説明する。
記録メディア360は、エンコード回路350から出力された圧縮符号化後の画像データ(又はストリームデータ)を記録する。また、記録メディア360は、例えば、可搬可能な記録媒体であり、ターゲット装置300に対して着脱可能なものとなっている。本第2の実施の形態においては、例えば、記録メディア360はターゲット装置300から取り外され、外部装置(図示しない)に取り付けられ、外部装置においてストリームデータが再生されて評価装置100に出力するようになっている。又は、外部装置に代えて、記録メディア360が評価装置100のストリームIF部109に装填されて、記録メディア360に記録されたストリームデータがストリームIF部109を介して読み出されるようにしてもよい。或いは、エンコード回路350とストリームIF部109が直接接続されてストリームデータが送信されてもよい。
<評価装置100の構成例>
評価装置100は、評価用画像記録部101、マーカー映像発生部102、映像合成部103、映像出力部104、映像入力部105、モニタ映像出力部106、モニタ画像記録部107、位相調整部108、動き予測性能解析部(以下、「解析部」と称する場合がある)110、デコード画像記録部120、全体制御部130、及び評価部140を備える。
なお、動き予測性能解析部110は、例えば、第1の実施の形態における解析部170に対応する。また、評価部140は、例えば、第1の実施の形態における評価部175に対応する。
評価用画像記録部101は、例えば、HDD(Hard Disk Drive)などの大容量記憶媒体であって、評価用画像の画像データを記録する。評価用画像は、例えば、エンコーダにおける動き予測の性能の評価することに適した画像となっている。
マーカー映像発生部102は、マーカー画像の画像データを生成する。マーカー画像は、例えば、解析部110で行われるマスキング処理112やスケーリング処理113、フレーム合わせ処理114などを行う際に手掛かりとなる画像となる。マスキング処理112などの詳細は後述する。
映像合成部103は、評価用画像記録部101から出力された評価用映像と、マーカー映像発生部102から出力されたマーカー画像を合成し、合成画像の画像データを生成する。合成画像の生成の方法などについては後述する。ただし、映像合成部103は評価用画像をマーカー画像と合成せずに、マーカー画像の画像データを出力することもできる。
映像出力部104は合成画像を映像表示装置200に出力する。この場合、映像出力部104は、位相調整部108から同期信号と画素クロックとを入力し、例えば、同期信号のタイミングでフレームを切り替え、画素クロックのタイミングで表示フレームの各画素の画像データ(又は画素値)を出力する。
映像入力部105は、ターゲット装置300からモニタ画像の画像データを入力する。モニタ画像の画像データは、例えば、HDMIなどのフォーマットで入力される。映像入力部105は、当該フォーマット形式のデータから画像データを抽出する。
モニタ映像出力部106は、映像入力部105から出力されたモニタ画像の画像データをモニタ映像表示装置400に送信する。モニタ映像出力部106は、例えば、画像データをHDMIなどの形式に変換し、変換後の画像データをモニタ映像表示装置400に送信する。
モニタ画像記録部107は、映像入力部105から出力されたモニタ画像の画像データを記録(以下においては、「キャプチャ」と称する場合がある)する。モニタ画像記録部107は、例えば、このような画像データを記録することができるようHDDなどの大容量記憶媒体とすることができる。
なお、評価用画像記録部101とモニタ画像記録部107は、本第2の実施の形態においては画像の読出しや書き込みの能力の関係から異なる記憶媒体としているが、十分な読出しや書き込み能力があれば、同一の記憶媒体であってもよい。
また、評価用画像記録部101と、マーカー映像発生部102、映像合成部103についても、評価用画像記録部101にマーカー画像、評価用画像、及び合成画像の各画像データを記録することができれば、映像合成部103とマーカー映像発生部102はなくてもよい。
ストリーム入力部109はターゲット装置300でエンコードされた合成画像の圧縮符号化データ(又はストリームデータ)を入力する。ストリーム入力部109はストリームデータを解析部110に出力する。
解析部110は、例えば、デコード1処理111、マスキング処理112、スケーリング処理113、フレーム合わせ処理114、デコード2処理115の各処理を実行する機能を有する。あるいは、解析部110は、デコード1処理部111、マスキング処理部112、スケーリング処理部113、フレーム合わせ処理部114、デコード2処理部115の各処理ブロックを備えるようにしてもよい。本第2の実施の形態では、説明を容易にするため、解析部110がデコード1処理111などの各処理を実行する機能を有するものとして説明する。
本第2の実施の形態においては、解析部110がストリームデータ入力部109を介して入力されたストリームデータに対して、デコード1処理111を行うことで、例えば、伸張復号化処理が行われて、デコード画像を生成する。解析部110は生成したデコード画像の画像データをデコード画像記録部120に記録する。
また、解析部110がモニタ画像記録部107に記録されたモニタ画像の画像データに対してマスキング処理112やスケーリング処理113を施すことで調整されたモニタ画像を生成する。解析部110は調整されたモニタ画像をモニタ画像記録部107や内部のフレームメモリなどに記録することもできる。
さらに、解析部110がフレーム合わせ処理114を行うことで、例えば、調整されたモニタ画像とデコード画像の各フレームについて一致させるよう処理を行うことができる。
そして、解析部110が、フレーム合わせ処理114においてフレームが一致した状態でデコード2処理115を行うことで、例えば、調整されたモニタ画像とデコード1処理111で用いた動きベクトルに基づいて予測画像の画像データを生成する。解析部110は生成した予測画像を内部のフレームメモリなどに記録することもできる。
解析部110は、予測画像と調整されたモニタ画像の各画像データをフレームメモリなどから読み出して、評価部140に出力する。解析部110における各処理111〜115の詳細は後述する。
デコード画像記録部120は、解析部110でデコードされたデコード画像の画像データを記録する。デコード画像記録部120も、例えば、画像データを記録することができるよう大容量の記憶媒体とすることができる。なお、デコード画像記録部120についても、評価用画像記録部101、モニタ画像記録部107とで別々の記録部ではなく、デコード画像記録部120も含む1つの記憶媒体として評価装置100に設けられてもよい。
全体制御部130は、評価用画像記録部101、マーカー映像発生部102、映像合成部103、位相調整部108、及び解析部110を制御する。全体制御部130による制御の詳細は後述する。
評価部140は、解析部110から出力された予測画像と調整されたモニタ画像の各画像データを入力し、両者を比較することで、ターゲット装置300におけるエンコード回路350の動き予測性能を評価する。評価部140は、例えば、PSNR(Peak to Signal Noise Ratio)による評価方法を用いて評価することができる。PSNRは、例えば、予測画像とモニタ画像とにおいて同一画素位置における画素値を比較してその差が閾値以下のとき動き予測の性能が高く、逆にその差が閾値より大きいとき動き予測の性能は低いなどと評価することができる。この場合において、閾値を複数設定することで、動き予測の性能を点数化することも可能となる。評価部140は、動き予測の性能評価と同様の評価手法を行うことで、ターゲット装置100における画質についても、画質の善し悪しや画質の点数化を図ることも可能である。なお、評価手法については、PSNR以外にもSSIM(Structural Similarity)など、その他の評価方法であってもよい。
<動作例>
次に評価装置100における動作例について説明する。図3は評価装置100における全体の動作例を表わすフローチャートである。図3に示す動作例において、理解を容易にするために、最初にデコード1処理111(S4)、デコード2処理115(S8)、及び評価処理(S9)について説明し、次に、キャプチャ処理(S2)、マスキング処理112(S5)、スケーリング処理113(S6)、及びフレーム合わせ処理114(S7)について説明することにする。
<デコード1処理111、デコード2処理115、及び評価処理の動作>
評価装置100は、ターゲット装置300から圧縮符号化されたストリームデータを入力すると処理を開始する(S3)。
次いで、評価装置100はデコード1処理111を行う(S4)。例えば、解析部110はターゲット装置300から出力されたストリームデータに対して、伸張復号化処理(以下、「デコード処理」又は「デコード」と称する場合がある)を行う。デコード1処理111は、例えば、ターゲット装置300におけるエンコード回路350と対応するデコード処理であって、本第2の実施の形態ではH.264方式によるデコード処理である。解析部110は、デコード画像の画像データをデコード画像記録部120に記録する。
次いで、評価装置100はデコード2処理115を行う(S8)。図4(A)から図4(E)はデコード2処理115を説明するための図である。
図4(A)は処理の順序、図4(B)は解析部110に入力されるストリームデータの例をそれぞれ表わす。また、図4(C)はデコード1処理111でデコードされたデコード画像の例、図4(D)はモニタ画像記録部107においてキャプチャされるモニタ画像の例をそれぞれ表わしている。また、図5(A)から図5(C)は図4(B)に対応するストリームデータの例を表わしている。
解析部110におけるデコード2処理115は、モニタ画像については調整されたモニタ画像を用いるが、図4(D)の例では説明の容易のため、「モニタ画像」と記載している。
図4(B)に示すように、評価装置100が入力するストリームデータにはストリームS1,S2,S3が含まれる。例えば、各ストリームS1,S2,S3は個々の画像に対応した圧縮符号化データを示し、デコード1処理111においてはストリームS1に対してデコード画像D1、ストリーム2に対してデコード画像D2、ストリーム3に対してデコード画像D3が生成される。
また、ストリームS1は圧縮符号化前の画像としてモニタ画像M1に対応し、ストリームS2は圧縮符号化前の画像としてモニタ画像M2に対応し、ストリームS3は圧縮符号化前の画像としてモニタ画像M3に対応する。よって、デコード画像D1に対応するモニタ画像はモニタ画像M1、デコード画像D2に対応するモニタ画像はモニタ画像M2、デコード画像D3に対応するモニタ画像はモニタ画像M3となっている。
ただし、H.264などでは、時間的なフレームの順番とストリーム上のフレームの順番は必ずしも一致しない。図4(C)の例では、ストリームの時間的な順番はストリームS1,S2,S3となっているが、時間的なフレームの順番はD1,D3,D2となっている。モニタ画像についても時間的な順番はM1,M3,M2となっている。
図4(C)の例の場合、デコード画像D3は、時間的に過去のデコード画像D1と未来のデコード画像D2とを参照画像としてデコード処理が行われる場合もある。例えば、デコード画像D3はP(Predictive)ピクチャ(又はPフレーム)又はB(Bidirectionally Predictive)ピクチャ(又はBフレーム)に対応し、デコード画像D1,D2はI(Intra)ピクチャ(又はIフレーム)又はPピクチャに対応する。以下においては説明の容易のため、デコード画像D3はデコード画像D1を参照画像としてデコード処理が行われるものとして説明する。
デコード画像D3にはマクロブロックD3−Mnが存在し、マクロブロックD3−Mnに対応するストリームS3中のデータをS3−Mn(図5(B)参照)とする。データS3−Mnは、例えば、マクロブロックD3−Mnの動きベクトル情報Mn−Vecと画素係数データMn−SDiffを含む。
画素係数データMn−SDiffは、例えば、ターゲット装置300においてエンコードされる際に、参照画像(デコード画像D1に対応するエンコード直前の画像)とデコード画像D3に対応するエンコード直前の画像との差分データ(画素差分データMn−Diff)に対して整数変換及び量子化処理された後のデータである。
ここで、デコード2処理115における処理を容易に理解するために、図4(C)などを用いて最初にデコード1処理111について説明する。
デコード1処理111では、まず、動きベクトル情報Mn−Vecに含まれる動きベクトルに基づいて、マクロブロック単位で予測画像が生成される。図4(C)の例ではデコード画像D1におけるマクロブロックD3−MnPreが予測画像となる。マクロブロックD3−MnPreは、画像D3のマクロブロックD3−Mnに対して動きベクトル情報Mn−Vecに含まれる動きベクトル分移動した画像D1上の位置にある。
なお、どの参照画像(図4(B)の例ではデコード画像D1)から予測画像を生成するかは動きベクトル情報Mn−Vecの予測タイプ情報に含まれる。図3(B)の例では、予測タイプ情報からデコード画像D1を参照画像としている。
そして、デコード1処理111では、画素係数データMn−SDiffに対して逆量子化処理及び逆整数変換処理が行われ、整数変換及び量子化処理が行われる前の画素差分データMn−Diffが生成される。デコード1処理111においては、画素差分データMn−Diffと予測画像D3−MnPreにおける画像データ(デコード後の画像データ)とが加算されることで、マクロブロックD3−Mnにおけるデコードデータが生成される。以上の処理を、1フレーム分行うことでデコード画像D3が生成される。
なお、H.264では、マクロブロックがサブブロックに分割されて、サブブロック単位で予測タイプと動きベクトルとを有する場合がある。この場合は、サブブロック単位でデコード画像D3が生成される。
以上のようにして、解析部110はデコード1処理においてデコード画像を生成する。解析部110は生成したデコード画像をデコード画像記録部120に記録する。
次に解析部110はデコード2処理115(S8)を行う。デコード2処理115においては、例えば、動きベクトル情報Mn−Vecに基づいてマクロブロック単位で予測画像を生成する。この場合、デコード2処理115は、デコード画像D1におけるマクロブロックD3−MnPreを予測画像とするのではなく、デコード画像D1に対応するモニタ画像M1上の、マクロブロックD3−MnPreと同一座標にあるマクロブロックE3−MnPreを予測画像とする。
デコード2処理115では、この予測画像E3−MnPreに対して、画素差分データMn−Diffを加算することはせず、予測画像E3−MnPreにおける画像データをそのまま画像E3におけるマクロブロックE3−Mnの画像データとする。デコード2処理115は、このような処理を1フレーム分行うことで画像E3を生成する。以下においては、デコード2処理115で生成された画像E3を予測画像と称する場合がある。
ここで予測画像E3について説明する。予測画像E3には、画素差分データMn−Diffが加算されていない。画素差分データMn−Diffは、エンコード回路350において量子化値(Q値)により量子化処理される。ただし、量子化値は、例えば、ターゲット装置300を製造する各社によって異なる値が設定される。この量子化値によって、ターゲット装置300からエンコード処理されたストリームデータのビットレートが大きく影響する。例えば、A社のターゲット装置とB社のターゲット装置は、量子化値が異なることで出力されるストリームデータのビットレートが異なる場合がある。エンコード2処理115において、画素差分データMn−Diffが加算されないことにより、量子化値の影響、ひいてはビットレートの影響をできるだけ排除した予測画像E3を生成することができる。
上述したように、例えば、最終製品であるターゲット装置300のビットレートをある一定のものにする(例えば、240Mbpsにする)ということができない場合がある。評価装置100では予測画像E3を生成するときに画素差分データMn−Diffを加算しないことで、例えば、ビットレートを一定にしなくても画質等の評価を行うことができるようになる。
また、デコード2処理115においては動きベクトルに基づいて予測画像E3が生成される(例えば図4(E))。画素差分データMn−Diffが加算されず、動きベクトルに基づいて予測画像E3が生成されることで、結果として、ターゲット装置300におけるエンコード回路350の動き予測の性能に大きく影響した予測画像E3が生成される。評価装置100は、この予測画像E3を評価対象とすることで、エンコード回路350における動き予測の性能を評価し、さらにターゲット装置300の画質を評価することができる。
なお、デコード1処理111において予測タイプによっては画像D1,D2が選択される場合もある。このような場合、デコード2処理115においては、対応するモニタ画像M1,M2におけるマクロブロックE3−MnPre,E2−MnPreに含まれる画像データの平均をとったものが予測画像E3となる。
また、マクロブロックD3−Mnがサブブロックに分割される場合にも、デコード2処理115においてサブブロックごとに予測タイプと動きベクトルに基づいて予測画像E3が生成される。
なお、デコード1処理111とデコード2処理115の上述した処理については、例えば、解析部110が内部のフレームメモリ或いはデコード画像記録部120を利用して、画像データを書き込んだり、読み出したりすることで処理を行うことが可能となる。
図3に戻り、評価装置100においてデコード2処理115(S4)が終了すると、評価処理を行う(S9)。例えば、評価部140は、生成された予測画像E3と調整されたモニタ画像とを比較して上述した評価処理を行う。図4(D)と図4(E)の例では、評価部140は予測画像E3におけるマクロブロックE3−Mn(モニタ画像M1のマクロブロックE3−MnPreに対応)の画像データと、マクロブロックE3−Mnと同じ画素位置にあるモニタ画像M3のマクロブロックM3−Mnの画像データとを比較する。
<キャプチャ処理、マスキング処理112、スケーリング処理113、及びフレーム合わせ処理114>
上記したデコード2処理115(S8)においては調整されたモニタ画像が用いられる。調整されたモニタ画像は、評価装置100においてキャプチャしたモニタ画像に対してマスキング処理112(S5)とスケーリング処理113(S6)を施すことで生成される。また、デコード2処理115(S8)については動きベクトルを用いており、デコード画像のフレームと調整されたモニタ画像のフレームが一致した状態でデコード2処理115(S8)が行われる。そのため、デコード画像と調整されたモニタ画像との間でフレーム合わせ処理114(S7)も行われる。
そこで、最初にマスキング処理112(S5)からフレーム合わせ処理114(S7)について簡単に説明し、その後、キャプチャ処理(S2)の詳細、さらにマスキング処理112(S5)以降の各処理の詳細について説明する。この順番による説明でキャプチャ処理(S2)についての理解も容易になる。
図6はマスキング処理112(S5)を説明するための図である。モニタ画像には、録画状態や録画時間を含むOSD表示がなされる場合がある。例えばターゲット装置300の前処理部330などでOSDの表示処理が行われる。
このような場合において、ターゲット装置300においてOSD表示をオフできればその状態でモニタ画像を評価装置100においてキャプチャできればよいが、そのような機能を持たないターゲット装置300もある。このようなことを考慮して、評価装置100ではモニタ画像に対してマスキング処理112(S5)を行うことができる。評価装置100はモニタ画像にマスキング処理115を行うと、デコード画像に対してもマスキング処理115を行う。これにより、例えば、フレーム合わせ処理114(S7)においてデコード画像とモニタ画像とでフレーム合わせを容易に行うことができる。
図6において前処理部330から出力されるモニタ画像にはOSD表示がなされているが、前処理部330からエンコード回路350に出力される映像にはOSD表示はなされていない。これは、通常、ビデオカメラなどにはビューファインダなどが備えられてユーザに対してOSD表示することで録画状態などを知らせているが、実際にエンコードする映像にはこのようなOSD表示はなされておらず、OSD表示のない映像をエンコードしているからである。マスキング処理112(S5)の詳細については後述する。
次にスケーリング処理113(S6)について簡単に説明する。図7はスケーリング処理113(S6)を説明するための図である。
例えば、TV画面に映像を表示させるとき、TV装置内においてはフレームの上下左右の部分を表示させないようにオーバースキャンと呼ばれる処理が行われる場合がある。ターゲット装置300においても、TV画面にモニタ画像を表示させるときにオーバースキャンが行われてモニタ画面の上下左右の端が画面外で見えなくなる事を避けるため、あらかじめモニタ画像の各フレームの映像を本来より縮小し上下左右に黒枠等を付加する場合がある。TV装置内においてオーバースキャンされて付加した黒枠等が画面外で見えなくなっても、TV画面には、モニタ画像全体が表示されるようになる。
ターゲット装置300において、このような黒枠等の付加をオフにする機能(例えば、ドットバイドット機能など)が設定可能であれば、オフにした状態で評価装置100がモニタ画像をキャプチャできればよいが、そのような設定ができない場合もある。このような場合、評価装置100は、スケーリング処理113を行うことでキャプチャしたモニタ画像とデコード画像とのサイズを一致させるようにする。サイズを一致させることで、例えば、後段のフレーム合わせ処理114で行われる処理を容易にできる。スケーリング処理113の詳細は後述する。
次にフレーム合わせ処理14(S7)について簡単に説明する。図8はフレーム合わせ処理114(S7)を説明するための図である。
例えば、評価装置100においてキャプチャするモニタ画像は、ターゲット装置300において電源がオンになっている限り、ターゲット装置300から出力され続ける。一方、ターゲット装置300は録画ボタンが押圧されると例えばエンコードを開始し、ストリームデータを出力する。従って、映像表示装置200において合成映像が表示されるタイミングと、表示されたモニタ画像のフレームのタイミングとデコード画像のフレームのタイミングが一致しない場合がある。そこで、評価装置100はフレーム合わせ処理114(S7)を行い、モニタ画像とデコード画像のフレームのタイミングを合わせるようにしている。
例えば、フレーム合わせ処理114を行うためのマーカー画像がマーカー映像発生部102で生成される。フレーム合わせ処理114用のマーカー画像には、例えば、縦4個に並んだ黒枠白塗りの矩形と数字が含まれ、フレーム毎に縦4個の矩形が除々に画面左から右に位置を変え、また、数字もフレーム毎に「1」から順番に表示されるものとなっている。
図8の例では、キャプチャしたモニタ画像は「1」〜「6」であるのに対して、デコード画像はフレーム番号が「3」〜「6」となっている。よって、フレーム合わせ処理114においては、モニタ画像もフレーム番号が「3」〜「6」を使用するようにフレーム合わせを行う。フレーム合わせ処理114の詳細は後述する。
かかるフレーム合わせ処理114により、例えば、後段のデコード2処理115においては、デコード画像(或いは動きベクトル)に対してフレーム番号が一致したモニタ画像を用いて予測画像が生成可能となる。
<キャプチャ処理>
次にキャプチャ処理(図3のS2)の詳細について説明する。以降においては、キャプチャ処理(S2)、マスキング処理112(S5)、スケーリング処理113(S6)、及びフレーム合わせ処理114(S7)の詳細について順を追って説明する。
図9はキャプチャ動作の例を表わすフローチャートである。本キャプチャ処理(S2)については、評価装置100におけるマーカー映像の生成から、モニタ画像のキャプチャまでの動作が含まれている。
評価装置100は処理を開始すると(S20)、マーカー画像を生成する(S21)。図10(A)〜図10(D)はマーカー画像の例を表わす図である。マーカー画像は、位相調整用マーカー画像(例えば図10(A))、マスキング用マーカー画像(例えば図10(B))、スケーリング用マーカー画像(例えば図10(C))、及びフレーム合わせ用マーカー画像(例えば図10(D))がある。このようなマーカー画像は、例えば、マーカー映像発生部102で生成される。なお、これらの各マーカー画像がどのように使用されるかについては後述する。
図11はマーカー映像発生部102の構成例を表わす図である。マーカー映像発生部102は、全体制御部130からのマーカーパタン選択信号と繰り返し数指定信号、映像合成部103からの画素クロックと映像切り替え信号とに基づいて、マーカー画像を順次出力する。すなわち、マーカー映像発生部102は全体制御部130から出力されたマーカーパタン選択信号に従って、各マーカー画像(例えば図10(A)〜図10(D)のいずれか)を生成する。なお、映像切り替え信号と画素クロックは位相調整部108で生成され、映像出力部104及び映像合成部103を介してマーカー映像発生部102に出力される。
マーカー映像発生部102は、マーカーパタン管理データ部1021、フレームカウンタ1022、画素カウンタ1023、アドレス計算部1024、及びマーカーパタンデータメモリ1025を備える。
マーカーパタン管理データ部1021は、全体制御部130から出力されたマーカーパタン選択信号に基づいて、位相調整用のマーカー映像か、マスキング用マーカー映像か、スケーリング用マーカー映像か、又はフレーム合わせ用マーカーかを識別する。そして、マーカーパタン管理データ部1021は、識別した各マーカー画像に対応するアドレス値(例えば先頭アドレスのアドレス値)をアドレス計算部1024に出力する。
また、マーカーパタン管理データ部1021は、全体制御部130から出力された繰り返し数指定信号に基づいて、繰り返し出力するフレーム数をフレームカウンタ1022に出力する。さらに、マーカーパタン管理データ部1021は、選択したマーカー画像に対してマーカーパタンの最大値を画素カウンタ1023に出力する。なお、マーカーパタン管理データ部1021は、アドレス値以外にも、繰り返しフレーム数、マーカーパタンの最大値をアドレス計算部1024に出力する。
フレームカウンタ1022は、映像合成部103から出力された映像切り替え信号に従ってカウントを開始し、マーカーパタン管理データ部1021から出力されたフレーム数をカウントする。例えば、フレーム数が「2」のとき、フレームカウンタ1022は「1」、「2」、「1」、「2」…を繰り返す。
画素カウンタ1023は、映像合成部103から出力された画素クロックに従ってカウントを「0」から開始し、マーカーパタン管理データ部1021から出力されたマーカーパタンの最大値までカウントするカウンタである。画素カウンタ1023は最大値に達すると再び「0」に戻ってカウントする。
アドレス計算部1024は、マーカー画像のマーカーパタンデータメモリ1025上のアドレスを計算する。マーカーパタン管理データ1021から出力されるアドレス値をX、フレーム数をY、最大値をZ、フレームカウンタ1022から出力されるカウント値をU、画素カウンタ1023から出力されるカウント値をVとすると、アドレス計算部1024は以下の計算を行う。
X×Y×Z+Z×U+Z×V ・・・(1)
上記式(1)は例えば、選択したマーカー画像の画素値(又は画像データ)をマーカーパタンデータメモリ1025から繰り返し読み出すことを表わしている。
マーカーパタンデータメモリ1025は、各マーカー画像の画像データをメモリ内の所定アドレスに記憶する。マーカー画像の画像データは、マーカー信号としてマーカー映像発生部102から映像合成部103に出力される。
図9に戻り、次いで、評価装置100は評価用画像とマーカー画像とを合成する(S22)。例えば、映像合成部103が合成を行う。
図12は映像合成部103の構成例を表わす図である。映像合成部103は、第1のFF(Flip Flop)〜第3のFF1031,1033,1035、SEL部(Selector)1032、CMP部(Comparator)1034を備える。
CMP部1034は、第2のFF1035を介して入力したマーカー信号と、全体制御部130から出力されたマーカー透過データ指定値とを比較し、比較結果に応じた選択信号をSEL部1032に出力する。CMP部1034は、例えば、マーカー信号が当該指定値と等しいときは評価用画像の画像データがSEL部1032において選択され、マーカー信号が当該指定値と等しくないときはマーカー画像の画像データがSEL部1032において選択される選択信号を出力する。これにより、例えば、マーカー画像のマーカー部分(例えば図10(C)の例では矩形部分)はマーカー画像の画像データが選択され、それ以外の部分は評価用画像の画像データが選択されることで、合成画像が映像合成部103から出力される。
例えば、映像合成部103からは位相調整用マーカー画像(例えば図10(A))が数秒程度出力され、次に、マスキング用マーカー画像(例えば図10(B))が数秒程度出力される。更に、スケーリング用マーカー画像(例えば図10(C))が数秒程度出力され、最後にフレーム合わせ用マーカー画像(例えば図10(D))と評価用画像との合成画像が出力される。評価装置100は、このようなマーカー画像をターゲット装置300において撮像させ、各マーカー画像を含むモニタ画像に対して、マスキング処理112などを行うようにしている。
なお、映像合成部103からは必ずしも、マーカー画像と評価用画像とが合成された画像が表示されなくてもよく、マーカー画像が単独で出力されたり、評価用画像が単独で出力されてもよい。以下においては、映像合成部103から出力される画像を合成画像と称する場合があるが、この合成画像にはマーカー画像単独の画像や、評価用画像とマーカー画像との合成画像も含まれるものとする。
図9に戻り、次いで、評価装置100は合成後の画像を表示させる(S23)。例えば、評価装置100は映像表示装置200に合成画像の画像データを出力することで合成画像を表示させる。合成画像が映像表示装置200に表示されることで、ターゲット装置300は当該合成画像を撮像することができる。
次いで、評価装置100はターゲット装置300から出力されたモニタ画像を入力する(S24)。このモニタ画像には、マーカー画像が含まれる場合もあるし、OSD表示を含むマーカー画像が含まれる場合もある。例えば、映像入力部105においてモニタ画像の画像データを入力する。
次いで、評価装置100は位相調整を行う(S25)。位相調整の際には、図10(A)のマーカー画像を映像表示装置200にて表示して行う。例えば、映像表示装置200における映像表示の切り替えタイミングと、ターゲット装置300の撮影タイミングとが一致していない場合、モニタ画像のあるフレーム内に次のフレームが撮像される画像となる場合がある。図14(B)は2つのタイミングが一致していないときのモニタ画像の例を表わしている。評価装置100は位相調整を行うことで、例えば、2つのタイミングを一致させることができる。
実際の位相調整は、例えば、以下のようにして行われる。
すなわち、全体制御部130によるマーカーパタン選択信号によりマーカー映像発生部102から位相調整用マーカー画像の画像データが出力される。例えば、図14(A)に示す位相調整用マーカー画像が出力される。ターゲット装置300は、位相調整用マーカー画像を撮像し、撮像した当該画像をモニタ画像として評価装置100に出力する。
映像入力部105はモニタ画像の画像データから同期信号を抽出し、位相調整部108に出力する(例えば図2)。例えば、画像データには画素値以外にも水平同期信号や垂直同期信号などの同期信号が含まれる。位相調整部108は同期信号に対してその位相を調整し、位相調整した同期信号を生成する。映像出力部104は位相調整された同期信号に従って、合成画像の各フレームを出力する。これにより、例えば、モニタ画像のフレームの撮像タイミングと一致した、合成画像の各フレームが映像表示装置200に表示させることができる。
位相調整の詳細について説明する。図13(A)は位相調整部108の構成例、図13(B)〜図13(F)は位相調整部108におけるクロックの例を表わす。
位相調整部108は、PLL(Phase Locked Loop)回路1081とカウンタ回路1082を備える。
モニタ画像から抽出された同期信号(P1,例えば図13(B))は、カウンタ回路1082とPLL回路1081に入力される。PLL回路1081は、同期信号を基準信号とし、同期信号の立ち上がりエッジに同期した画素周期のクロック(P2,例えば図13(C))を生成する。
カウンタ回路1082は、同期信号をカウンタ回路1082内のリスタート信号(P1)とし、リスタート信号の立ち上がりで「0」からカウントを開始し、画素クロック(P2)でカウントアップする。カウンタ回路1082は、全体制御部130から位相遅延量指定信号を受け取り、カウントアップした回数が当該指定信号により指定された値(P3,例えば「4」,図13(D))に達すると、位相調整した同期信号を「HIGH」にする(P4,図13(F))。
また、カウンタ回路1082は、リスタート信号(P1)の立ち下がりの際にカウンタ値を内部に保持し、位相遅延量指定信号により指定された値(P3)とカウンタ値とを加算した値が内部保留値(例えば「5」)になると、位相調整した同期信号を「LOW」にする(P4)。
図13(F)は例えば位相調整した同期信号(P4)の例を表わしている。図13(B)及び図13(F)の例において、2つの同期信号P1,P4の位相差は、例えば(位相遅延量指定信号により指定した値+1)となっている。
図9に戻り、次いで、評価装置100は、操作者にターゲット装置300の録画ボタンを押圧するなどしてエンコード動作を開始するよう促す(S261)。操作者が録画開始したことを確認したら評価装置100は、マスキング処理用のマーカー画像である図10(B)、スケーリング処理用のマーカー画像である図10(C)、および、評価用画像にフレーム処理用のマーカー画像である図10(D)を重畳した映像を映像表示装置200にて表示し(S262〜S264)、ターゲット装置300のモニタ画像をキャプチャし、モニタ画像記録部107に記録する(S26)。評価装置100は位相調整が行われたモニタ画像をモニタ画像記録部107に記録する。
評価用画像は、ターゲット装置300のエンコード回路350の動き予測性能を評価するのに適した一連の動きのある動画像であり、これにフレーム処理用のマーカー画像である図10(D)を重畳した状態で、評価用の一連の動画像を映像表示装置200にて表示させる。これらの映像がターゲット装置300にて録画されたら、操作者に対して、録画停止ボタンを押圧するなどしてエンコード動作を停止するよう促す(S265)。
操作者が録画停止したことを確認したら評価装置100はターゲット装置300からのモニタ画像のキャプチャ処理を終了する(S27)。
<マスキング処理112>
図3に戻り、評価装置100はキャプチャ処理を終了すると(S2)、マスキング処理112を行う(S5)。次にこのマスキング処理112の詳細について説明する。
図15(A)から図15(E)はマスキング処理112におけるモニタ画像などの例を表わしている。また、図16はマスキング処理112の動作例を表わすフローチャートである。
図15(A)はマスキング用マーカー画像の例を表わしている。マスキング用マーカー画像としては例えば、画像全体が白の画像と、黒の画像の2種類がある。このようなマスキング用マーカー画像は、全体制御部130から出力されたマーカーパタン選択信号に従ってマーカー映像発生部102において生成される。
図15(B)及び図15(C)はモニタ画像の例を表わし、このうち、図15(B)はOSD表示のないモニタ画像、図15(C)はOSD表示のあるモニタ画像の例をそれぞれ表わしている。図15(B)や図15(C)などのモニタ画像は、ターゲット装置300で生成されて、モニタ画像記録部107に記録される。
OSD表示は、例えば、上述したようにユーザに対して録画状態などを表示するためのものでターゲット装置300の前処理部330において付加される。OSD表示のあるモニタ画像は、例えば、フレーム合わせ処理114、さらにはデコード2処理115における予測画像の生成などに影響を与え、動き予測性能の評価に際して障害となる。そのため、OSD表示されたモニタ画像に対してマスキングパタンによりマスキング処理112を行う。
図16を用いてマスキング処理112の詳細について説明する。評価装置100はマスキング処理112を開始すると(S31)、ターゲット装置300で撮像された2種類のマスキング用マーカー映像についてのモニタ画像の画像データを、モニタ画像記録部107から読み出す(S32)。
例えば、評価装置100は、白単一色のマスキング用マーカー画像を1秒程度、次いで、黒単一色のマスキング用マーカー画像を1秒程度出力し、ターゲット装置300はこれを撮像してモニタ画像として出力している。評価装置100のモニタ画像記録部107では、マスキング用マーカー画像についての画像データが2種類記録されており、各々1フレームずつ、2フレーム読み出して以降の処理を行うことができる。
次いで、評価装置100はマスキング用マーカー画像に対するモニタ画像について、マーカー画像が白の場合のモニタ画像については白以外の画素、マーカー画像が黒の場合のモニタ画像については黒以外の画素を検出する(S33)。検出した画素がマスク候補となる。
かかる検出は、例えば、以下のようにして行われる。すなわち、解析部110において、モニタ画像信号をモニタ画像記録部107から読み出し、当該信号により示された各画素の画素値が「0」以外の画素や「255」以外の画素を1フレーム分検出することで行われる。2つのマスキング用マーカー画像が用いられるのは、例えば、検出した画素についてマスク候補から漏れるのを防止するためである。例えば、図15(D)はマスク候補の画素を含む画像の例を表わしている。
なお、かかる検出は、例えばOSD表示のないモニタ画像に対しても行ってもよい。この場合、モニタ画像についてはターゲット装置300のレンズ310と撮像部320により、白や黒以外の画素が含まれる場合もある。従って、解析部110は各画素の画素値を検出する際に、例えば数%程度の幅を持たせてマスク候補を検出するようにしてもよい。
図16に戻り、次いで、評価装置100は、マスク候補の各画素周辺を含むマスクパタンを生成する(S34)。マスクパタンに周辺画素を含ませているのは、例えば、OSDによる時間表示やバッテリ表示は時間経過とともに変化し、マスクパタンによるマスクが不十分となる場合を防止するためである。例えば、マスク候補に対して上下左右10画素を周辺画素することもできる。なお、OSD表示のないモニタ画像の場合、マスク候補は検出されないため、マスクパタンは生成されない。
図15(E)はマスクパタンの例を表わす。例えば、解析部110はマスク候補とその周辺画素を含む領域を黒、それ以外の領域は白とする画像を表わす画像データを生成することでマスクパタンを生成する。マスクパタンについては、マスク候補と周辺画素を白、それ以外の領域を黒するマスクパタンであってもよい。
図16に戻り、次いで、評価装置100はモニタ画像記録部107に記録したモニタ画像に対してマスクパタンでマスク処理を行う(S35)。例えば、解析部110はモニタ画像記録部107からモニタ画像を読み出し、当該モニタ画像とマスクパタンとを合成する。これにより、OSD表示のないモニタ画像が生成される。図18(B)はマスキング処理112によりマスクされたモニタ画像の例を表わしている。なお、マスクパタンは、例えば、解析部110により内部のフレームメモリやモニタ画像記録部107などに記録される。
そして、評価装置100はマスクキング処理112を終了する(図16のS36)。
<スケーリング処理113>
図3に戻り、評価装置100はマスキング処理112(S5)を終了すると、スケーリング処理113を行う(S6)。次にスケーリング処理113の詳細について説明する。
図17はスケーリング処理113の動作例を表わすフローチャートであり、図18(A)から図18(E)はスケーリング処理113における画像の例を表わし、図19(A)及び図19(B)は画素位置の例を表わしている。
評価装置100はスケーリング処理113を開始すると(S41)、モニタ画像記録部107からスケーリング処理用画像を読み出す(S42)。
図10(C)はスケーリング用マーカー画像の例を表わしている。スケーリング用マーカー画像としては、例えば、白バックに黒の矩形のマークが複数施された画像と、黒バックに白の矩形のマークが複数施された画像の2種類がある。例えば、評価装置100は、白バックのスケーリング用マーカー画像を1秒程度、次に、黒バックのスケーリング用マーカー画像を1秒程度出力する。モニタ画像記録部107では、ターゲット装置300において撮像されたかかる画像のモニタ画像が記録されている。例えば、解析部110はモニタ画像記録部107から白バックのスケーリング用マーカー画像に対応するモニタ画像の1フレームと、黒バックのスケーリング用マーカー画像に対応するモニタ画像の1フレームの2フレーム分の画像データを読み出す。前者をモニタフレーム1、後者をモニタフレーム2と称する場合がある。例えば、解析部110がモニタ画像記録部107からスケーリング処理用画像を読み出す。
図17に戻り、次いで、評価装置100は読み出したモニタ画像についてOSD表示がなされている場合、マスクパタンでマスク処理を行う(S43)。本スケーリング処理113が行われる前において、OSD表示がなされたモニタ画像に対してマスキング処理112が行われるため、モニタ画像記録部107からモニタ画像が読み出されるときにマスクパタンによるマスク処理が行われる。
この場合のマスク処理は、例えば、以下のようにして行われる。すなわち、モニタフレーム1に対しては、マスク部分は白(例えば画素値「255」)、それ以外は透過(例えば画素値なし)とするマスクパタンが合成される。また、モニタフレーム1に対しては、マスク部分は黒(例えば画素値「0」)、それ以外は透過とするマスクパタンが合成される。図18(B)はマスク処理後のモニタフレーム(以下、マスクモニタフレームと称する場合がある)1,2の例を表わしている。
図17に戻り、次いで、評価装置100はマスクモニタフレーム1の黒色の画素部分と、マスクモニタフレーム1の白色の画素部分とを抽出し、双方の画素位置が一致している部分をモニタ・スケーリング画素として抽出する(S44)。図18(C)はモニタ・スケーリング画素を含むモニタ・スケーリング基準画像の例を表わす。図18(C)に示すモニタ・スケーリング基準画素の例は、当該画素が白、それ以外の画素は黒にしたものである。例えば、解析部110は、マスクモニタフレーム1における黒色の画素と、マスクモニタフレーム2における白色の画素とを比較して一致している画素を抽出する。そして、解析部110は、例えば、抽出した画素を白、それ以外の画素を黒とする画素値の画像を生成することで、モニタ・スケーリング基準画像を生成する。
図17に戻り、次いで、評価装置100はデコード1処理111が行われたデコード画像に対しても、モニタ画像の場合と同様にスケーリング処理113を行う。すなわち、評価装置100はデコード画像記録部120からスケーリング処理用画像を読み出す(S45)。この場合のスケーリング処理用画像は、例えば、エンコードされたスケーリング用画像に対してデコード1処理111においてデコードされた画像である。図18(D)はデコードされた画像の例を表わしており、白バックのデコード画像をデコードフレーム1、黒バックのデコード画像をデコードフレーム2と称する場合がある。
図17に戻り、次いで、評価装置100は、デコードフレーム1の黒色の画素部分と、デコードフレーム2の白色の画素部分とを抽出し、双方の画素位置が一致している部分をデコード・スケーリング基準画素として抽出する(S46)。図18(E)はデコード・スケーリング基準画素を含むデコード・スケーリング基準画像の例を表わす。図18(E)に示すデコード・スケーリング基準画素の例は、当該画素が白、それ以外の画素は黒で示されている。例えば、解析部110がデコードフレーム1の黒色とデコードフレーム2の白色の各画素を比較して一致している画素を検出し、当該画素を白、それ以外の画素を黒とする画像を生成することでデコード・スケーリング基準画像を生成する。
図17に戻り、次いで、評価装置100は、モニタ・スケーリング基準画素とデコード・スケーリング基準画素とに基づいて、スケーリングパラメータを求める(S47)。スケーリングパラメータは、例えば、モニタ画像の各画素に対してスケーリング処理113を施して、デコード1処理111が施されたデコード画像のサイズを一致させるために使用される値である。
図19(A)はデコード・スケーリング基準画素、図19(B)モニタ・スケーリング基準画素の画素位置の例をそれぞれ表わしている。デコード・スケーリング基準画素の画素位置を(xp,yp)、モニタ・スケーリング基準画素の画素位置を(xq,yq)とする。また、スケーリングパラメータとして、水平方向のオフセットをox、垂直方向のオフセットをoy、水平方向の拡大スケーリング率をsx、垂直方向の拡大スケーリング率をsyとする。デコード・スケーリング基準画素(xp,yp)とモニタ・スケーリング基準画素(xq,yq)との関係は、
xq=xp×sx+ox ・・・(2)
yq=yp×yx+oy ・・・(3)
となる。
評価装置100は、複数のモニタ・スケーリング基準画素の画素位置と、複数のデコード・スケーリング基準画素の画素位置とをS44及びS46の処理により検出している。従って、評価装置100は、この検出した各画素の画素位置を式(2)及び式(3)に代入することで、スケーリングパラメータox、oy、sx、syを算出することができる。
そして、評価装置100は、モニタ画像の各画素に対して、スケーリングパラメータox、oy、sx、syを代入した式(2)及び式(3)の処理を行うことで、例えばモニタ画像が拡大されて、モニタ画像のサイズがデコード画像のサイズと一致する画像を得ることができる(図17のS47)。
なお、式(2)及び式(3)においては、例えば、画素位置(xq,yq)が少数点以下の成分を含む場合もある。かかる場合を考慮して、例えば、画素位置(xq,yq)の画素値は、画素位置(xq,yq)における画素値とその周辺画素の画素値とに基づいて、算出することも可能である。
例えば、ターゲット装置300においてオーバースキャン処理が行われない場合、モニタ画像とデコード画像とではそのサイズが一致する。従って、マスキング用マーカー映像を用いた場合でも、デコード・スケーリング基準画素(xp,yp)とモニタ・スケーリング基準画素(xq,yq)とは一致することになる。このような場合、例えば、評価装置100は式(2)及び式(3)を用いてスケーリング処理113を行わないようにすることができる。これにより、処理削減を図ることが可能となる。
そして、評価装置100はスケーリング処理113を終了する(図17S48)。
<フレーム合わせ処理114>
図3に戻り、評価装置100はスケーリング処理113を終了すると(S6)、フレーム合わせ処理114を行う(S7)。次にフレーム合わせ処理114の詳細について説明する。
図20はフレーム合わせ処理114の動作例を表わすフローチャート、図21(A)から図21(D)はフレーム合わせ処理114における画像の例を表わしている。
評価装置100は、フレーム合わせ処理114を開始すると(S51)、モニタ画像に対してマスキング処理112及びスケーリング処理113を施したスケールモニタ画像を生成する(S52)。
図21(A)はモニタ画像の例、図21(B)はスケールモニタ画像の例をそれぞれ表わしている。図21(A)の例では、モニタ画像はフレーム番号「M−1」まではスケーリング用マーカー画像にOSD表示がなされ、フレーム番号「M」以降はフレーム合わせ用マーカー画像にOSD表示がなされたものとなっている。
この場合のフレーム合わせ用マーカー画像としては、例えば、図10(D)に示すようなものがある。フレーム合わせ用マーカー画像は、例えば、矩形の黒枠で白色のマーカーが上下左右に含まれ、フレームが進むに従い、縦方向にある1列の黒枠のマーカーが画面上左から右へと移動する画像となっている。
ただし、図21(A)の例ではフレーム番号「M」以降において、評価用画像(例えば複数の物体が様々な方向に移動する画像)とフレーム合わせ用マーカー画像とが合成された合成画像が出力される。
評価装置100は、フレーム合わせ処理114の前段においてマスキング処理112(例えば図3のS5)とスケーリング処理113(S6)を行うため、これらの処理によってモニタ画像に対してマスキング処理112とスケーリング処理113を施す。そして、評価装置100は、モニタ画像に対してマスキング処理112とスケーリング処理113とを施したスケールモニタ画像を生成する。図21(B)はスケールモニタ画像の例を表わしている。
図20に戻り、次いで、評価装置100は、モニタ画像に対してマスキング処理112が行われた場合、デコード画像に対してもマスク処理を施す(S53)。デコード画像にもマスク処理を施すのは、例えば、モニタ画像とデコード画像とで対象とするフレームを一致させるためである。
図21(C)はデコード画像、図21(D)はデコード画像にマスク処理が施されたマスクデコード画像の例をそれぞれ表わしている。デコード画像は、フレーム番号「N−1」まではスケーリング用マーカー画像がデコードされた画像であり、フレーム番号「N」以降はフレーム合わせ用マーカー画像と評価画像の合成画像がデコードされた画像となっている。デコード画像に対するマスクパタンは、例えば、モニタ画像に対するマスクパタンと同一である。
このようなデコード画像に対するマスク処理は、例えば、マスキング処理112などと同様に、解析部110がデコード1処理111を施したデコード画像の画像データをデコード画像記録部120に記録する。そして、解析部110はデコード画像記録部120からデコード画像(例えば図21(C))の画像データを読み出し、マスキング処理112を施すことでマスクデコード画像(例えば図21(D))を生成する。
図20に戻り、次いで、評価装置100は、フレーム合わせ用マーカー画像が合成されたマスクデコード画像の各フレームについて、スケールモニタ画像のどのフレームが対応するのかを算出する(S54)。
図21(B)及び図21(D)の例では、評価装置100は例えば以下のようにして対応するフレームを算出する。すなわち、解析部110はフレーム番号「N」のマスクデコード画像の画像データをデコード画像記録部120から読み出し、フレーム番号「M」以降の各スケールモニタ画像の画像データをモニタ画像記録部107から読み出す。解析部110は、フレーム番号「N」のマスクデコード画像と、フレーム番号「M」以降の各スケールモニタ画像とで画素単位に画素値(又は画像データ)の差分絶対値を求める。そして、解析部110は、1フレーム分の累積差分値が最小となるスケールモニタ画像の算出する。算出されたスケールモニタ画像が、フレーム番号「N」のマスクデコード画像に対応する画像となる。フレーム番号「N+1」以降のマスクデコード画像についても、同様にして、スケールモニタ画像の何番が対応するかを求める。
以降の処理(デコード2処理115と評価処理)においては、例えば、解析部110はフレーム番号「N」のマスクデコード画像の画像データを読み出すとき、対応するスケールモニタ画像のフレーム番号が仮に「M」だったとすれば、スケールモニタ画像「M」の画像データを読み出して処理を行う(S55)。
なお、スケールモニタ画像とデコード画像については、例えば、S52とS53の処理の際にそれぞれモニタ画像記録部107とデコード画像記録部120に記録される。この場合、モニタ画像はマスキング処理112やスケーリング処理113が施されて記録されている。かかるモニタ画像については、例えば、調整されたモニタ画像と称する場合がある。モニタ画像についてはマスキング処理112とスケーリング処理113が施されない場合もあるため、調整されたモニタ画像には、このような処理が行われないモニタ画像も含まれてもよい。
そして、評価装置100はフレーム合わせ処理114を終了する(図20のS56)。
<デコード2処理115>
図3に戻り、評価装置100はフレーム合わせ処理114(S7)を終了すると、デコード2処理115を行う(S8)。
図22はデコード2処理115の動作例を表わすフローチャートである。デコード2処理115は図4などを用いて説明したため、ここでは重複した説明を避けるため簡単に説明することにする。
評価装置100は、デコード2処理115を開始すると(S61)、デコード1処理111において用いた動きベクトルに基づいて、参照画像D1にけるマクロブロックD3−MnPreの画素を取り出す(これを動き補償と呼ぶ)替わりに、解析部110は、マクロブロックD3−MnPreと同一の画素位置にあるスケールモニタ画像M上のマクロブロックE3−MnPreの画素を取り出し、マクロブロックE3−MnPreを予測画像E3のマクロブロックE3−Mnの画像データとする(S62)。
例えば、解析部110がストリームデータから抽出した動きベクトルと、モニタ画像記録部107に記録されたモニタ画像とを読み出して、これらに基づいて処理を行うことで、マクロブロックE3−MnPreの画像データとする。
次いで、評価装置100はモニタ画像M1のマクロブロックE3−MnPreにおける画像データに対して、画素差分データMn−Diffを加算せず、予測画像E3のマクロブロックE3−Mnの画像データとする(S63)。
例えば、解析部110はモニタ画像M1のマクロブロックE3−MnPreの画像データをモニタ画像記録部107から読み出し、当該画像データを予測画像E3のマクロブロックE3−Mnにおける画像データとしてデコード画像記録部120に記録する。
次いで、評価装置100は、フレーム内のすべてのマクロブロックに対して上記した処理を繰り返して予測画像E3を生成する(S64)。例えば、解析部110は上記した処理を繰り返して生成した予測画像E3の画像データをデコード画像記録部120に記録する。解析部110はマクロブロックが分割されたサブブロック単位で処理を行うこともできる。
なお、マクロブロックによっては、動き補償を行わず、画素値そのものを持つ(一般的にイントラマクロブロックと称される)場合がある。このマクロブロックは動き予測の性能評価に適さないため、後ほど述べる動き予測性能の評価対象から除外されるよう、本来の画素値では取り得ないような値(例えば、負の値等)を持つ画像データとしておく。また、全マクロブロックがイントラマクロブロックであるようなフレーム(一般的にはイントラ・ピクチャ等と呼ばれる)については、画面全体については、画面全体が評価対象から除外される。
そして、評価装置100はデコード2処理115を終了する(S65)。1フレームのデコードが完了するごとに、対応する調整されたモニタ画像との間で画素単位にPSNR等の数値化処理を行う。なお、イントラマクロブロックやイントラ・ピクチャなどは、除外するため、本来の画素値でない値(例えば負の値等)をとる画素については、PSNRの対象外とする。
PSNR値が小さいほど、動き予測の性能が良いことになる。これをフレーム合わせ処理したフレーム、先の例で言えばフレーム「N」以降について、各フレームごとにPSNR等の値を算出して全フレームで累積し、平均等の代表値を動き予測の性能の指標とする。
なお、前方向予測ピクチャと双方向予測ピクチャでは傾向が異なる場合もあるため、これらを分けて指標化することも当然可能である。また、画面全体のマクロブロック数に対するイントラマクロブロックの数なども、動き予測の性能に関する指標の1つにすることは当然可能である。
ここで例として、動き予測予測性能の異なる2つのターゲット装置について説明する。
図23(A)は調整されたモニタ画像の例、図23(B)と図23(C)は2つの異なるターゲット装置で、M3画像に対応するフレームに対するデコード2処理の画像の例である。
図23(B)は、前方向のみ、すなわちM3画像に対してM1画像のみしか参照できず、サブブロック単位の動き予測もせずマクロブロック単位の動き予測しかしないエンコーダを搭載した装置のストリームをデコード2処理115により生成した予測画像の例である。この場合、マクロブロックE3a部分は、本来円と矩形が離れているべきであるが、参照画像M1では、円と矩形が重なった画像しなかいため、E3a部分は円と矩形が重なった映像となる。一方、図23(C)は、両方向、すなわちM3画像に対して、M1とM2の2つの参照画像として使う事ができ、さらにサブブロック単位の動き予測をするエンコーダを搭載した装置のストリームをデコード2処理115により生成された予測画像の例である。E3b部分は、円と矩形が離れているM2を参照画像とし、さらに、M2では、M3と比べて円と矩形の間隔がより離れているが、サブブロック単位で動きベクトルを使う事で、間隔もM2と同様の位置となる。図23(B)に対して、図23(C)の方が、調整された調整されたモニタ画像M3に近い画像となっている。
図23(B)のE3aの予測画像に対して、M3画像との差を埋めるだけの十分な画素差分データがあれば、通常のデコード処理では、図23(B)のようにならずに、M3画像により近い画像となる。
しかし、上述したように、評価装置100におけるデコード2処理115では、動きベクトルに基づいて予測画像E3が生成される(例えば図4(E))。この際に、画素差分データMn−Diffが加算されず、動きベクトルに基づいて予測画像E3が生成される。従って、ターゲット装置300におけるエンコード回路350の動き予測の性能に大きく影響した予測画像E3が生成されることになる。図23(B)及び図23(C)は、動き予測の性能の差となっている画像の例をそれぞれ表わしているので、調整されたモニタ画像M3において、PSNR等により数値化するなどの処理を行えば、図23(B)の装置より図23(C)の装置の方が良い評価結果が算出されることになる。
[その他の実施の形態]
次にその他の実施の形態について説明する。
図24は評価装置100の他の構成例を表わす図である。評価装置100は、更に、CPU(Central Processing Unit)151、プログラムメモリ152、データメモリ153、ストリーム入力IF(Interface)154、評価用画像記録制御部155、モニタ画像記録制御部156、デコード画像記録制御部157、モニタ画像フレームメモリ158、内部バス159、メモリ160、及び映像入出力IF165を備える。また、評価装置100は、更に、モニタ画像記憶媒体160、デコード画像記憶媒体161、映像入力IF162、評価用画像記憶媒体163、及び映像出力IF16を備える。
CPU151はプログラムメモリ152に記憶された各プログラムを実行することで、デコード1処理111、マスキング処理112、スケーリング処理113、フレーム合わせ処理114、及びデコード2処理115を行う。CPU151は、例えば、第2の実施の形態における解析部110に対応する。
データメモリ153は、例えば、フレームメモリなどであって、CPU151において処理を行うときに画像データなどが適宜記憶される。データメモリ153には、例えば、マスキング処理112において生成されるマスクパタンなどが記憶される。
ストリーム入力IF154は、ターゲット装置300でエンコードされた画像データのビットストリームを入力する。ストリーム入力IF154は、例えば、第2の実施の形態におけるストリーム入力部109に対応する。
モニタ画像記録制御部155は、CPU151の制御により、ターゲット装置300で撮像されたモニタ画像(調整されたモニタ画像も含む)の画像データをモニタ画像記憶媒体160に記録したり、モニタ画像記憶媒体160から記録した画像データを読み出す。モニタ画像記録制御部156とモニタ画像記憶媒体160は、例えば、第2の実施の形態におけるモニタ画像記録部107に対応する。
モニタ映像フレームメモリ156は、モニタ映像の画像データをモニタ画像記録制御部155から受け取り、当該画像データを記憶する。モニタ映像フレーム156に記憶された画像データはモニタ映像出力部106から適宜読み出され、モニタ映像表示装置400に出力される。
デコード画像記録制御部157は、CPU151の制御により、デコード1処理111によりデコードしたデコード画像の画像データをメモリ160にデコード画像記憶媒体161に記憶したり、デコード画像記憶媒体161からデコード画像の画像データを読み出す。デコード画像記録制御部157とデコード画像記憶媒体161は、例えば、第2の実施の形態におけるデコード画像記録部120に対応する。
なお、映像入力IF162、評価用画像記憶媒体163、映像出力IG164は、例えば、第2の実施の形態における映像入力部105、評価用画像記録部101、映像出力部104にそれぞれ対応する。
また、評価処理141は、例えばCPU151がプログラムメモリ152に記憶されたプログラムを実行することで行うことができる。CPU151は、例えば、第2の実施の形態における評価部140に対応する。
第2の実施の形態で説明した圧縮符号化の方式は、例えば、H.264の例で説明した。これ以外にも、MPEG−1、MPEG−2、MPEG−4、さらに、今後予想されるフレーム間の相関を利用した圧縮符号化方式であっても、第2の実施の形態で説明した評価システム10を実施することができる。
また、デコード1処理111については、処理の高速化を図るために専用のハードウェア構成とすることも可能である。
以上まとめると付記のようになる。
(付記1)
画像フレーム間の相関を利用して各画像フレームにおける画像データの圧縮符号化を行う圧縮符号化装置に対して当該圧縮符号化装置における画質を評価する評価装置であって、
前記圧縮符号化装置から圧縮符号化された画像データと圧縮符号化前の画像データとを入力し、前記圧縮符号化された画像データが伸張復号化されるときに第1の画像フレームにおける第1の領域において用いられる第1の動きベクトルに基づいて、前記第1の画像フレームにおいて伸張復号化されるときの参照フレームである第2の画像フレームにおける第2の領域を抽出し、前記第2の画像フレームに対応する圧縮符号化前の第3の画像フレームにおける前記第2の領域の画像データを予測画像フレームの前記第1の領域における画像データとする解析部と、
前記予測画像フレームの画像データと前記第3の画像フレームにおける画像データとを比較して前記画質を評価する評価部と
を備えることを特徴とする評価装置。
(付記2)
前記解析部は、前記第1の画像フレームにおいて伸張復号化されるときに用いられる第2の動きベクトルに基づいて前記第1の画像フレームにおいて伸張復号化されるときの参照フレームである第4の画像フレームにおける第3の領域を抽出し、前記第2の領域と前記第3の領域に基づいて第4の領域を抽出し、前記第3の画像フレームにおける前記第4の領域の画像データを予測画像フレームの前記第1の領域における画像データとすることを特徴とする付記1記載の評価装置。
(付記3)
更に、評価用画像の画像データを記録する評価用画像記録部と、前記評価用画像の画像データを前記評価用画像記録部から読み出して映像表示装置に出力する映像出力部とを備え、
前記映像出力部は前記映像表示装置に前記評価用画像の画像データを出力することで、前記圧縮符号化装置において前記評価用画像に対する圧縮符号化が行われることを特徴とする付記1記載の評価装置。
(付記4)
前記第1の画像フレームはPフレーム又はBフレームであることを特徴とする付記2記載の評価装置。
(付記5)
前記解析部は、前記圧縮符号化された画像データと、前記動きベクトルに関する動きベクトル情報、及び参照フレーム先の画像フレームの情報とを前記圧縮符号化装置から入力することを特徴とする付記1記載の評価装置。
(付記6)
第1及び第2の領域はマクロブロック又はマクロブロックが分割されたサブブロックであることを特徴とする付記1記載の評価装置。
(付記7)
前記評価部は、前記予測画像フレームの前記第1の領域における前記画像データと前記第3の画像フレームにおける第1の領域における画像データとを比較して前記圧縮符号化装置における動き予測の性能を評価することで、前記画質を評価することを特徴とする付記1記載の評価装置。
(付記8)
前記解析部は、前記圧縮符号化装置において前記第3の画像フレームに対してオンスクリーン表示が行われたとき前記第3の画像フレームに対してマスク処理を行い、マスク処理が行われた前記第3の画像フレームおける前記第2の領域の画像データを前記予測画像フレームの画像データとすることを特徴とする付記1記載の評価装置。
(付記9)
更に、マスキング処理用マーカー画像の画像データを生成するマーカー映像発生部と、前記マスキング処理用マーカー画像の画像データを出力する映像出力部とを備え、
前記解析部は、圧縮符号化前の前記マスキング処理用マーカー画像の画像データに基づいて前記オンスクリーン表示をマスクするマスクパタンを生成し、当該マスクパタンに基づいて前記マスク処理を行うことを特徴とする付記8記載の評価装置。
(付記10)
前記解析部は、前記圧縮符号化装置において前記第3の画像フレームに対してオーバースキャンが行われたとき前記第3の画像フレームに対して所定の拡大率で拡大させるスケーリング処理を行い、スケーリング処理が行われた前記第3の画像フレームにおける前記第2の領域の画像データを前記予測画像フレームの画像データとすることを特徴とする付記1記載の評価装置。
(付記11)
更に、オーバースキャン処理用マーカー画像の画像データを生成するマーカー映像発生部と、前記オーバースキャン処理用マーカー画像の画像データを出力する映像出力部とを備え、
前記解析部は、圧縮符号化前の前記オーバースキャン処理用マーカー画像の画像データと圧縮符号化後の前記オーバースキャン処理用マーカー画像の画像データとに基づいて前記拡大率を計算することを特徴とする付記10記載の評価装置。
(付記12)
更に、フレーム合わせ処理用マーカー画像の画像データを生成するマーカー映像発生部と、前記フレーム合わせ処理用マーカー画像の画像データを出力する映像出力部とを備え、
前記解析部は、圧縮符号化前の前記フレーム合わせ処理用マーカー画像の画像データと圧縮符号化後の前記フレーム合わせ処理用マーカー画像の画像データとに基づいて、前記第2の画像フレームに対応する前記第3の画像フレームを算出することを特徴とする付記1記載の評価装置。
(付記13)
画像フレーム間の相関を利用して画像フレームにおける画像データの圧縮符号化を行う圧縮符号化装置に対する画質を評価する評価装置における画質評価方法であって、
解析部において、前記圧縮符号化装置から圧縮符号化された画像データと圧縮符号化前の画像データとを入力し、前記圧縮符号化された画像データが伸張復号化されるときに第1の画像フレームにおける第1の領域において用いられる第1の動きベクトルに基づいて、前記第1の画像フレームにおいて伸張復号化されるときの参照フレームである第2の画像フレームにおける第2の領域を抽出し、前記第2の画像フレームに対応する圧縮符号化前の第3の画像フレームにおける前記第2の領域の画像データを予測画像フレームの前記第1の領域における画像データとし、
評価部において、前記予測画像フレームの画像データと前記第3の画像フレームにおける画像データとを比較して前記画質を評価する
を備えることを特徴とする画質評価方法。