以下に添付図面を参照して、この発明にかかる情報処理装置、および再生装置の実施の形態を詳細に説明する。
本発明の実施の一形態を図1ないし図12に基づいて説明する。本実施の形態は情報処理装置/再生装置としてノートブックタイプのパーソナルコンピュータ(PC)を適用した例である。なお、以下の説明では、PCをコンピュータと称する。
図1は、本発明の実施の一形態にかかるコンピュータ1の一利用形態を示す構成図である。本実施の形態においては、図1に示すように、動画配信サイト2が提供するAVコンテンツをインターネット3経由でダウンロードして鑑賞するために、コンピュータ1が利用される場合を想定する。
ここで、図2はコンピュータ1のハードウェア構成を示すブロック図である。コンピュータ1は、図2に示すように、CPU11、ノースブリッジ12、主メモリ13、表示コントローラ14、ビデオメモリ(VRAM)14A、LCD(Liquid Crystal Display)15、サウスブリッジ16、サウンドコントローラ17、スピーカ18、BIOS−ROM19、LANコントローラ20、HDD(Hard Disk Drive)21、ODD(Optical Disc Drive)22、無線LANコントローラ23、USBコントローラ24、エンベデッドコントローラ/キーボードコントローラ(EC/KBC)25、キーボード(KB)26、例えばマウスであるポインティングデバイス27等を備えている。
CPU11は、コンピュータ1の動作を制御するプロセッサであり、HDD21やODD22から主メモリ13にロードされるオペレーティングシステム(OS)や、このOS配下で動作する各種アプリケーションプログラムを実行する。また、CPU11は、BIOS−ROM19に格納されたBIOS(Basic Input/Output System)も実行する。BIOSは、ハードウェア制御のためのプログラムである。
ノースブリッジ12は、CPU11のローカルバスとサウスブリッジ16との間を接続するブリッジデバイスである。ノースブリッジ12には、主メモリ13をアクセス制御するメモリコントローラも内蔵されている。また、ノースブリッジ12は、表示コントローラ14との通信を実行する機能も有している。
表示コントローラ14は、コンピュータ1のディスプレイモニタとして使用されるLCD15を制御するデバイスである。この表示コントローラ14によって表示信号が生成されてLCD15に送られる。
サウスブリッジ16は、PCI(Peripheral Component Interconnect)バス上およびLPC(Low Pin Count)バス上の各デバイスを制御する。また、サウスブリッジ16は、HDD21およびODD22を制御するためのIDE(Integrated Drive Electronics)コントローラおよびBIOS−ROM19をアクセス制御するメモリコントローラが内蔵されている。さらに、サウスブリッジ16は、サウンドコントローラ17およびLANコントローラ20との通信を実行する機能も有している。
サウンドコントローラ17は音源デバイスであり、再生対象のオーディオデータをスピーカ18に出力する。
LANコントローラ20は、例えばEthernet(登録商標)規格の有線通信を実行する有線通信デバイスであり、無線LANコントローラ23は、例えばIEEE802.11規格の無線通信を実行する無線通信デバイスである。また、USBコントローラ24は、例えばUSB2.0規格のケーブルを介して外部機器との通信を実行する。
EC/KBC25は、電力管理を行うためのエンベデッドコントローラと、キーボード(KB)26およびポインティングデバイス27を制御するためのキーボードコントローラとが集積された1チップマイクロコンピュータである。このEC/KBC25は、ユーザの操作に応じてコンピュータ1をパワーオン/パワーオフする機能を有している。
以上のような構成をもつコンピュータ1は、HDD21から主メモリ13にロードされてCPU11によって実行されるプログラム群(OSおよび各種アプリケーション)によって、図1に示した動画配信サイト2が提供するAVコンテンツをインターネット3経由でダウンロードして再生するように動作する。
より具体的には、LANコントローラ20、無線LANコントローラ23またはUSBコントローラ24による通信処理によってAVコンテンツを入力し、このAVコンテンツをCPU11がデコードしたコンテンツデータであるビデオデータとオーディオデータとに分離し、ビデオデータは表示コントローラ14に供給してLCD15から画像として出力し、オーディオデータはサウンドコントローラ17に供給してスピーカ18から音声として出力する。
次に、図3を参照して、前述した、図1に示した動画配信サイト2が提供するAVコンテンツをインターネット3経由でダウンロードして再生するようにコンピュータ1を動作させるためのプログラム群の概略構成を説明する。
図3に示すように、コンピュータ1には、OS100、ブラウザ210、動画受信再生プログラム220、エフェクトエンジン230がインストールされている。また、動画受信再生プログラム220およびエフェクトエンジン230は、ブラウザ210にプラグインソフトウェアとして組み込まれている。
コンピュータ1のリソース管理を一元的に司るOS100は、カーネル部101とDLL部102とを備えている。カーネル部101は、図2に示したコンピュータ1の各部(ハードウェア)を駆動制御するモジュールであり、DLL部102は、このカーネル部101との間のインタフェースを提供するモジュールである。このDLL部102に対して各種アプリケーションプログラムがカーネル部101への各種要求を発行する段階までの階層をユーザモード、それ以降、即ち、これらの要求をDLL部102がカーネル部101に伝達する段階からの階層をカーネルモードなどと称する。
ブラウザ210で動画配信サイト2のWebページを閲覧すると、このWebページ中のタグ情報によって、ブラウザ210は、同サイトが配信可能なAVコンテンツを有することを検知し、プラグインソフトウェアとして組み込まれている動画受信再生プログラム220を起動する。そして、Webページの閲覧中にAVコンテンツの再生開始を指示する操作がユーザによって行われると、動画受信再生プログラム220が、そのAVコンテンツのインターネット3を介した動画配信サイト2からのダウンロードを開始する。
動画受信再生プログラム220は、画像再生部として機能するものであって、符号化されたデータ(符号化データ)であるAVコンテンツのダウンロードを行いながら、当該AVコンテンツからの動画像データ(ビデオデータ)/音声データ(オーディオデータ)のデコード(復号)も並行して実行する。このデコードによって、動画受信再生プログラム220は、AVコンテンツからビデオデータとオーディオデータとを分離して取り出す。動画受信再生プログラム220は、この取り出したビデオデータおよびオーディオデータを(LCD15による)画像出力および(スピーカ18による)音声出力させるべくOS100のDLL部102に出力する(a1,b1)。
通常、DLL部102に出力されたビデオデータa1およびオーディオデータb1は、このDLL部102内において、例えば形式チェック等の処理が施されてカーネル部101に供給され、カーネル部101によって、LCD15からの画像出力やスピーカ18からの音声出力が行われることになる。
これに対して、コンピュータ1では、動画配信サイト2からダウンロードしたAVコンテンツを高画質で鑑賞したいというユーザの要望に応えるために、エフェクトエンジン230を搭載し、このエフェクトエンジン230に、高画質化のための補正をビデオデータa1に対して実行させるようにした。以下、この点について詳述する。
エフェクトエンジン230は、情報処理装置として機能するものであり、ブラウザ210の起動に伴って起動される常駐型のプラグインソフトウェアとして組み込まれるプログラムであり、図3に示すように、オプション処理部240およびエンジン起動部235を有している。オプション処理部240は、キャプチャ設定部231、タイムスタンプ部232、エフェクト部233、AV同期部234、および操作指示同期部236を備えている。
エンジン起動部235は、ユーザからエフェクトエンジン230における高画質化のための補正などの処理(以下、オプション機能処理とする)の実行が指示されたことを判断した場合に、オプション処理部240を起動させるためのモジュールである。
キャプチャ設定部231は、動画受信再生プログラム220がDLL部102に対して出力したビデオデータa1およびオーディオデータb1を取得するために、DLL部102内のルーチンの書き換えを行うモジュールである。このDLL部102内のルーチンの書き換え処理の一例については後述するが、簡単にいえば、動画受信再生プログラム220から受け取ったビデオデータa1およびオーディオデータb1をエフェクトエンジン230のタイムスタンプ部232に引き渡すように書き換える(a2,b2)。キャプチャ設定部231は、エフェクトエンジン230の起動時、ブラウザ210に対して、動画受信再生プログラム220を起動した際にその旨を通知するように依頼する。そして、この通知を受けた時に、キャプチャ設定部231は、このDLL部102内のルーチンの書き換えを実行する。
このキャプチャ設定部231の働きによって、ビデオデータa2およびオーディオデータb2をDLL部102から受け取るタイムスタンプ部232は、その受け取ったタイミングを示す時間情報を各々に付与するモジュールである。時間情報は、時間的な判別が可能な値であれば、例えば、コンピュータ1のシステム時刻であっても良いし、エフェクトエンジン230の起動後にカウントアップが開始される計時データであっても良い。タイムスタンプ部232によって時間情報が付与されたビデオデータa2およびオーディオデータb2は、エフェクト部233に導かれる。
エフェクト部233は、AVコンテンツを動作受信再生プログラム220によりデコードされて得られるビデオデータa2に対するオプション機能処理である高画質化のための補正処理を実行するモジュールである。なお、ここでは、エフェクト部233が、ビデオデータa2に対してのみオプション機能処理を実行する例を挙げるが、オーディオデータb2に対してオプション機能処理である高音質化のための補正処理を実行することは何ら制限されるものではなく、ビデオデータa2およびオーディオデータb2のそれぞれに対して高画質化および高音質化のための補正処理を実行することは当然に可能であり、また、逆に、オーディオデータb2に対してのみ(高音質化のための)補正処理を実行するようにすることも可能である。また、これらの高画質化や高音質化の処理は、CPU11上でソフトウェア処理により行っても良いし、図2には図示しないCPU11とは別に設けられた専用のハードウェアチップ上で行うようにしても良い。
エフェクト部233は、入力される中解像度または低解像度フレームを、高解像度化するための画像処理(以下、「超解像度変換処理(鮮鋭化処理)」という)を実行して、高解像度の動画像データのフレーム(以下、「高解像度フレーム」という)を生成する。ここで、超解像度変換処理とは、第1解像度である低解像度や中解像度の画像信号(低解像度フレームや中解像度フレーム)から本来の画素値を推定して画素を増やすことにより、第2解像度である高解像度の鮮鋭化映像信号(高解像度フレーム)を復元する鮮鋭化処理を意味する。ここで、本来の画素値とは、例えば、低解像度(第1解像度)の画像信号を得たときと同じ被写体を、高解像度(第2解像度)の画像信号の画素数を持つカメラで撮像したときに得られる画像信号の各画素が持つ値を指す。また、「推定して画素を増やす」とは、画像の特徴を捕らえて、相関性があるという画像の特徴を利用して周辺(フレーム内またはフレーム間)の画像から本来の画素値を推定して画素を増やすことを意味する。
なお、超解像度変換処理については、特開2007−310837号公報、特開2008−98803号公報や特開2000−188680号公報等に開示された公知・公用の技術を用いることが可能である。本実施の形態の超解像度変換処理の技術としては、例えば、入力画像の標本化周期で決まるナイキスト周波数より高い周波数成分を有する画像を復元する技術を用いる。
例えば、特開2007−310837号公報に開示された超解像度変換処理を用いる場合には、複数の中解像度フレームのそれぞれに対してフレーム中の注目画素を含む注目画像領域中の画素値の変化パターンに最も近い複数の注目画像領域に対応する複数の対応点を基準フレームの中から選択し、対応点での輝度の標本値を対応点に対応している注目画素の画素値に設定し、複数の標本値の大きさと、複数の対応点の配置とに基づいて、基準フレームの画素数よりも多い画素数の高解像度フレームであって基準フレームに対応する高解像度フレームの画素値を算出することにより、中解像度フレームから本来の画素値を推定して画素を増やすことにより、高解像度フレームを復元する。
また、特開2008−98803号公報に開示された同一フレーム画像内の自己合同位置探索を利用した超解像度変換処理を用いる場合には、中解像度フレームの探索領域の各画素の誤差を比較して最小となる第1の画素位置を算出し、第1の画素位置及びこの第1の誤差、第1の画素の周辺の第2の画素位置及びこの第2の誤差に基づいて、探索領域のなかで誤差が最小となる位置を小数精度で算出する。そして、この位置を終点及び注目画素を始点とする小数精度ベクトルを算出し、小数精度ベクトルを用いて、探索領域に含まれない画面上の画素を終点とする、小数精度ベクトルの外挿ベクトルを算出する。そして、小数精度ベクトル、外挿ベクトル及び画像データから取得された画素値に基づいて、画像データに含まれる画素数よりも多い画素数の高解像度画像の画素値を算出する。エフェクト部233は、このような処理を行うことにより、中解像度フレームから本来の画素値を推定して画素を増やすことにより、高解像度フレームを復元する。
また、特開2000−188680号公報に開示された複数フレーム画像間でのマッピングを利用した超解像度変換処理を用いることもできる。
ただし、エフェクト部233における超解像度変換処理(鮮鋭化処理)の手法は、上記に限定されるものではなく、低解像度または中解像度の画像信号から本来の画素値を推定して画素を増やすことにより、高解像度の画像信号を復元する処理であれば、あらゆる手法を適用することができる。
以下、本実施の形態では、エフェクト部233は、超解像度変換処理だけでなく、フレーム補間(例えば、30フレーム等の入力動画像からフレームを補間して60フレームの出力動画像を作成する処理)や、画質改善処理(例えば、色補間/エッジ強調等)等の処理も合せて行うものとする。
エフェクト部233によって、少なくとも一方に対して補正が施されたビデオデータa2およびオーディオデータb2(ここでは、ビデオデータa2のみ)は、続いて、AV同期部234に導かれる。AV同期部234は、エフェクト部233から受け取ったビデオデータa2およびオーディオデータb2を、タイムスタンプ部232によって付与された時間情報に基づき、補正に伴う遅延時間の差を吸収すべく、時間的に一致させてDLL部102に出力するモジュールである(a3,b3)。この時間情報に基づくビデオデータa2およびオーディオデータb2の出力についても後述する。
AV同期部234からDLL部102に出力されたビデオデータa3およびオーディオデータb3は、DLL部102を仲介してカーネル部101に渡され(a4,b4)高画質化や高音質化が図られた画像出力および音声出力が行われることになる。
よって、既存の動画受信再生プログラム220をそのまま活用しつつ、ユーザは、動画配信サイト2からダウンロードしたAVコンテンツを高画質や高音質で鑑賞することが可能となる。
図4は、キャプチャ設定部231によるDLL部102内のルーチンの書き換え処理の一例を説明するための概念図である。
前述したように、動画受信再生プログラム220は、AVコンテンツから分離して取り出したビデオデータおよびオーディオデータ(AVデータ)を、OS100のDLL部102に引き渡す。そこで、この動画受信再生プログラム220が起動した旨をブラウザ210から通知されるとともに、エンジン起動部235がユーザからエフェクトエンジン230におけるオプション機能処理の実行が指示されたことを判断して起動されたエフェクトエンジン230のキャプチャ設定部231は、入力したAVデータに対して例えば形式チェックなどの処理を施すDLL部102内のルーチン(図示の「本来の処理」部分)とは別にエフェクトエンジン230にデータを引き渡すための呼び出し手続き(図示の「コール」)がその先頭部に配置されたルーチンに書き換える。AVデータの引き渡しは、補正対象のAVデータが格納されている主メモリ13上のアドレス情報を伝達することによって行う。この書き換えを、キャプチャ設定部231が実行する。
図5は、AV同期部234による、タイムスタンプ部232によって付与された時間情報に基づいた、エフェクト部233によって補正されたビデオデータおよびオーディオデータの出力原理を説明するための概念図である。
図5中、(A)は、動画受信再生プログラム220がAVコンテンツをダウンロードする様子を示すタイミングチャート、(B)は、動画受信再生プログラム220がダウンロードしたAVコンテンツをデコードして分離・取得したビデオデータおよびオーディオデータを出力する様子を示すタイミングチャート、(C)は、エフェクトエンジン230のエフェクト部233が補正後のビデオデータおよびオーディオデータを出力する様子を示すタイミングチャート、(D)は、エフェクトエンジン230のAV同期部234がエフェクト部233から受け取ったビデオデータおよびオーディオデータをDLL部102に出力する様子を示すタイミングチャートである。
コンピュータ1と動画配信サイト2との間でインターネット3を介して実行されるデータ通信は、通信環境の変化の影響を受け得るので、動画受信再生プログラム220によるAVコンテンツ(D1,D2,・・・)のダウンロードは、図5(A)に示すように、時間的に不規則となる可能性がある。これに対して、AVコンテンツをデコードする動画受信再生プログラム220は、分離して取り出したビデオデータ(V1,V2,・・・)およびオーディオデ一タ(A1,A2,・・・)を、図5(B)に示すように、時間的な同期を取ってOS100のDLL部102に出力する機能を有している。よって、エフェクトエンジン230のタイムスタンプ部232は、ほぼ、この図5(B)に示すタイミングで、時間的な同期の取られたビデオデータおよびオーディオデータに同一の時間情報を付与することになる。
しかしながら、エフェクトエンジン230のエフェクト部233によって、ビデオデータに対する高画質化のための補正やオーディオデータに対する高音質化のための補正が実行されると、(補正の有無や内容の違いによって、)図5(C)に示すように、ビデオデータとオーディオデータとの間で時差が生じてしまう。そこで、エフェクトエンジン230のAV同期部234は、タイムスタンプ部232によって付与された時間情報で特定される時点から例えばパラメータ入力される期間(x)が経過したときに、ビデオデータおよびオーディオデータを出力することによって、図5(D)に示すように、当該ビデオデータおよびオーディオデータを再度時間的に一致させる。
この期間(x)は、ユーザがAVコンテンツの再生開始を指示する操作を行った後、動画配信サイト2から動画受信再生プログラム220にAVコンテンツが転送され始めるまでの所要期間と比較して十分小さいので、ユーザに違和感を与えることはない。
このAV同期部234が、補正に伴う遅延時間差の吸収機構を備えることで、エフェクト部233に、様々な補正手法を適用することが可能となる。例えば、高度な補正手法を適用する場合には、時間(x)を大きい値とすれば良く、また、ビデオデータとオーディオデータとの関係を考慮することなく、補正の有無や補正手法を個別に決定することが可能となる。
以上の処理により、エンジン起動部235がユーザからエフェクトエンジン230におけるオプション機能処理の実行が指示されたことを判断した場合には、動画受信再生プログラム220によるAVコンテンツに含まれるビデオデータとオーディオデータとについての画像出力および音声出力と、エフェクトエンジン230で高画質化のための補正を施されたビデオデータとオーディオデータとについての画像出力および音声出力とが実行されることになる。この場合、本実施の形態においては、動画受信再生プログラム220によるAVコンテンツの再生が開始され、その後、エフェクトエンジン230によって動画受信再生プログラム220の出力画面に対して高画質化のための補正を施された動画が、LCD15の全画面で再生される。その際、動画受信再生プログラム220によるAVコンテンツの再生ウインドウW1(図10参照)は、バックグランド(エフェクトエンジン230によって高画質化された動画が表示される全画面のウインドウW2(図10参照)の下に隠れている)で続けられている。
なお、ここで、再生ウインドウW1とは、ブラウザウィンドウの一部として表示される領域であって、動画受信再生プログラム220が表示制御に関わる領域(動画像データの再生エリアのみならず、再生/停止ボタンやシークバー等の動画像データの再生制御のための操作用の画像がある場合にはそのエリアも含む)を意味するものとする。
操作指示同期部236は、詳細は後述するが、動画受信再生プログラム220による動画に対するユーザ操作と、エフェクトエンジン230で高画質化のための補正を施された動画に対するユーザ操作との同期をとるモジュールである。
図6は、エンジン起動部235の機能構成を示すブロック図である。図6に示すように、エンジン起動部235は、ビデオデータに関するデータ情報である動画情報を取得する取得部235aと、取得した動画情報に基づき、ビデオデータが、オプション処理部240がオプション機能処理を実行するための処理条件であるサポート対象条件に合致するか否かを判別する判別部235bと、ビデオデータがサポート対象条件に合致すると判別した場合、オプション処理部240を起動する起動部235cと、を備えている。
次に、エンジン起動部235におけるユーザからのエフェクトエンジン230におけるオプション機能処理の実行指示の判断処理について説明する。ここで、図7はエンジン起動部235におけるオプション機能処理の実行指示の判断処理の流れを示すフローチャートである。動画受信再生プログラム220によるAVコンテンツに含まれるビデオデータ(動画像データ)がLCD15に出力されている状態で(図8参照)、当該ビデオデータに対するポインタ操作であってポインティングデバイス27のユーザ操作によりマウスポインタが動画上(再生ウインドウW1上)に重なったこと(マウスオーバー)がEC/KBC25、OS100を介してエンジン起動部235に通知されると、取得部235aはポインティングデバイス27のマウスポインタが動画上にあると判断して(ステップS1のYes)、OS100を介してビデオデータに関する動画情報(動画サイズ、AVコンテンツのダウンロード元のURL(Uniform Resource Locator)、動画受信再生プログラム220のバージョンなど)を取得する(ステップS2)。なお、動画情報(動画サイズ、AVコンテンツのダウンロード元のURL(Uniform Resource Locator)、動画受信再生プログラム220のバージョンなど)を、動画受信再生プログラム220から直接取得するようにしても良い。
次いで、判別部235bは、ステップS2で取得した動画情報に基づき、ビデオデータが、オプション処理部240のエフェクト部233がビデオデータに対して高画質化処理を実行するためのサポート対象条件に合致するか否かを判別する(ステップS3)。動画情報として取得する動画サイズ、AVコンテンツのダウンロード元のURL、動画受信再生プログラム220のバージョンなどは、オプション処理部240のエフェクト部233による高画質化処理に様々な影響を与える情報である。例えば、判別部235bは、少なくともエフェクト部233が高画質化処理を実行可能な画像サイズの動画像データであるか否かを判別する。そして、画像サイズが規定のサイズに一致しない場合には、高画質化処理が複雑になるため、規定サイズ以外のサイズの動画はエフェクト部233による高画質化処理をサポートしないようにしたものである。また、AVコンテンツのダウンロード元のURLが予め定められた有害なサイトである場合には、当該サイトからダウンロードしたAVコンテンツは、エフェクト部233による高画質化処理をサポートしないようにしたものである。さらに、動画受信再生プログラム220のバージョンによっては、高画質化処理ルーチンが異なる可能性が考えられるため、規定のバージョン以外のバージョンの動画受信再生プログラム220による動画はエフェクト部233による高画質化処理をサポートしないようにしたものである。
起動部235cは、エフェクト部233による高画質化処理のサポート対象条件に合致すると判別した場合には(ステップS3のYes)、OS100や表示コントローラ14を介して、図9に示すようにオプション処理部240を起動させるための操作画像データである操作用のボタン(アイコン)BをLCD15に表示されている動画上にオーバーレイして表示/出力させる(ステップS4)。
図9に示す状態で動画上に表示されているボタンBがポインティングデバイス27のユーザ操作によりクリックされたことがEC/KBC25、OS100を介して起動部235cに通知されると、起動部235cはポインティングデバイス27によりボタンBがクリック(操作)されたことにより、ユーザからオプション処理部240におけるオプション機能処理の実行が指示されたことを判断して(ステップS5のYes)、オプション処理部240を起動させる(ステップS6)。
なお、起動部235cは、エフェクト部233による高画質化処理のサポート対象条件に合致しないと判別した場合は(ステップS3のNo)、ステップS1に戻り、ポインティングデバイス27のユーザ操作によるマウスオーバーに待機する。
また、ボタンBをLCD15に表示されている動画上にオーバーレイして出力し、ボタンBの出力開始後、ボタンBがクリックされないまま一定時間(例えば、数秒)経過した場合には(ステップS7のYes)、起動部235cは、動画上に表示されている高画質化処理の操作用のボタンBを非表示状態とし(ステップS8)、ステップS1に戻り、ポインティングデバイス27のユーザ操作によるマウスオーバーに待機する。
なお、本実施の形態では、起動部235cは、ステップS4からステップS8に示す処理を経てオプション処理部240を起動させているが、オプション処理部240を起動させるための処理であれば、これに限定するものではない。例えば、起動部235cは、エフェクト部233による高画質化処理のサポート対象条件に合致すると判別した場合(ステップS3のYes)、直ちに、オプション処理部240を起動させても良い。
これにより、ユーザはAVコンテンツから復号して得られたAVデータがエフェクト部233による高画質化処理などのオプション機能処理のサポート対象条件に合致するか否かを考慮することなく、高画質化処理などのオプション機能処理をスマートに起動することができる。また、LCD15に出力されている動画上にマウスポインタが重なった際に、操作用のボタンBをLCD15に表示することにより、ユーザが動画を視聴している最中にボタンBが表示されないようにし、かつユーザが意識せずにマウスポインタを操作してボタンBが表示された場合や動画が表示された画面からの操作にユーザが慣れていない場合であっても、ボタンBがLCD15に出力される動画に対する何らかの機能を起動させるものであることを分かり易くすることができる。
次に、操作指示同期部236における動画受信再生プログラム220による動画像(AVコンテンツに含まれる画像データ)に対するユーザ操作と、エフェクトエンジン230で高画質化のための補正を施された動画像(キャプチャ画像データ)に対するユーザ操作との同期をとる同期処理について説明する。
前述したように、本実施の形態においては、動画受信再生プログラム220によるAVコンテンツの再生が開始され、その後、動画受信再生プログラム220の出力画面に対して高画質化のための補正をエフェクトエンジン230によって施された動画像が、LCD15の全画面で再生される。その際、動画受信再生プログラム220によるAVコンテンツの再生ウインドウW1は、バックグランド(エフェクトエンジン230によって高画質化された動画像が表示される全画面のウインドウW2の下に隠れている)で続けられている。
ここで問題となるのは、エフェクトエンジン230によって高画質化された動画像が表示される全画面のウインドウW2に対するユーザ操作を、バックグランド(エフェクトエンジン230によって高画質化された(例えば、高解像度化処理が施された)動画像が表示される全画面のウインドウW2の下に隠れている)で再生されている動画受信再生プログラム220による動画像に対してするのでは、必ずしも良い操作環境とは言えないという点である。
本実施の形態では、エフェクトエンジン230内のエフェクト部233は、動画受信再生プログラム220で復号して得られる動画像データと、ユーザ操作用の操作画像データとを一体とした表示画像データに対して、高解像度化等の処理を施している。ここで、実際にユーザが見ている画像はエフェクトエンジン230が処理し、出力する画像であるので、ユーザは処理後の表示画像データに対して操作指示を行うこととなる。一方、実際に該操作に対する処理(例えば、再生の停止/再開等)は、動画受信再生プログラム220が行う。そのために、エフェクトエンジン230上の画像に対してユーザがポインタを操作して得られたポインタイベントを動画受信再生プログラム220に渡す必要がある。
ここで、元の表示画像データと、高解像度処理を行った後の表示画像データとでは、解像度が異なることから、画像に対するポインタの相対位置(座標位置)は、両者間で異なることとなる。つまり、エフェクトエンジン230上でユーザがポインタを操作して得られたポインタイベント(座標位置情報を含む)をそのまま動画受信再生プログラム220に渡しても、ユーザが意図した座標位置の画像への操作とはならないことになる。
そこで、本実施の形態においては、操作指示同期部236を備えることにより、操作指示同期部236が、動画受信再生プログラム220により再生されている動画像と違うウインドウ(エフェクトエンジン230によって高画質化された動画像が表示される全画面のウインドウW2)に対するユーザの操作を受け付けると、ユーザのマウス操作(ポインタイベント)を解析すると共に、座標位置情報を変換し、動画受信再生プログラム220に対し適切なメッセージを送ることにより、動画受信再生プログラム220による動画像再生ウインドウW1上でのポインタイベントと同等の振る舞いを可能としたものである。
ここで、図10は操作指示同期部236による同期処理の動作概要を示す模式図、図11は操作指示同期部236による同期処理の流れを示すフローチャートである。なお、図10に示すように、エフェクトエンジン230によって高画質化された動画像が表示される全画面のウインドウW2には動画受信再生プログラム220により実現されるAVコンテンツに対する各種処理操作をユーザに指示させるための操作指示部材であるプレーヤーの各種操作ボタンb1〜b5(操作画像データ)もキャプチャされている。図10に示すように、操作指示同期部236は、エフェクトエンジン230によって高画質化された動画像が表示される全画面のウインドウW2に表示されている操作ボタンb1〜b5のいずれかに対するポインティングデバイス27によるクリックやマウスオーバー、キーボード(KB)26のキー操作によるイベントを検知すると(ステップS11のYes)、ステップS12に進む。
続いて操作指示同期部236は、ポインティングデバイス27によるクリックやマウスオーバー、キーボード(KB)26によるキー操作/ポインティング操作された全画面上における座標位置を取得し(ステップS12)、取得した座標をキャプチャサイズに対応するように変換することにより、バックグランド(エフェクトエンジン230によって高画質化された動画像が表示される全画面のウインドウW2の下に隠れている)で再生されている動画受信再生プログラム220が出力する表示画像データ上の座標系に変換し(ステップS13)、取得されたポインタイベントの座標位置情報部分を変換した座標位置情報に置換したメッセージ(ポインタイベント)に変換して(ステップS14)、ポインティングデバイス27によるクリックやマウスオーバー、キーボード(KB)26によるキー操作された全画面上における位置(取得した座標)が後述するようなエフェクトエンジン230が有している機能に対する指示を選択させるメニューM(図12(b)参照)上でない場合には(ステップS15のNo)、変換したメッセージを動画受信再生プログラム220に転送する(ステップS16)。これにより、取得した全画面における座標位置が各種操作ボタンb1〜b5上である場合には、動画受信再生プログラム220により実現されるプレーヤーの各種操作ボタンb1〜b5に対する操作を実現することができる。
尚、ここで、エフェクトエンジン230は、ポインタイベントを動画受信再生プログラム220に渡すのみならず、自身で処理しても良い。例えば、ポインティングデバイス27を動かすイベントが発生した場合には、エフェクトエンジン235は、ウインドウW2の上部にメニューMを動画像にオーバーレイされるように表示制御する。
なお、操作指示同期部236は、ポインティングデバイス27によるクリックやマウスオーバー、キーボード(KB)26によるキー操作された全画面上における位置(取得した座標)が、エフェクトエンジン230が有している機能に対する指示を選択させるメニューM(図12(c)参照)上の領域である場合には(ステップS15のYes)、キャプチャ設定部231のみにポインタイベントを渡して(ステップS17)、エフェクトエンジン230に対する処理を実行させる。尚、ここで、上述の通り全画面のウインドウW2上で「ポインティングデバイス27を動かす」イベントが発生した場合には、場所(座標位置)は関係なくメニューMが出現する(図12(b)(c)参照)。その後、ポインティングデバイス27が止まると、ポインティングデバイス27のポインタ位置がメニューM上ではない限り、メニューMは消滅する。また、メニューMの選択肢をポインティングデバイス27でクリックした場合には、メニューMの選択肢に対応付けられたエフェクトエンジン230が有している機能が実行される。このとき、動画受信再生プログラム220にはポインタイベントは出力しない。
このように、エフェクトエンジン230によって高画質化された動画像が表示される全画面のウインドウW2上におけるマウス操作領域によって、エフェクトエンジン230によって高画質化された動画像が表示される全画面のW2に対する処理と動画受信再生プログラム220により実現されるプレーヤーの各種操作ボタンb1〜b5に対する操作処理とを異ならせることができる。
これにより、エフェクトエンジン230によって高画質化された動画像が表示される全画面のウインドウW2を操作した結果が動画受信再生プログラム220により実現されるプレーヤーの各種操作ボタンb1〜b5に対する操作に反映され、この操作が反映された動画受信再生プログラム220による動画像がさらにエフェクトエンジン230のキャプチャ設定部231にキャプチャされ、結果として、エフェクトエンジン230によって高画質化された動画像が表示される全画面の再生状態も変わる。したがって、ユーザは、エフェクトエンジン230によって高画質化された動画像が表示される全画面のウインドウW2と動画受信再生プログラム220による動画像の再生ウインドウW1との位置関係を意識せず、エフェクトエンジン230によって高画質化された動画像が表示される全画面再生ウインドウW2を動画受信再生プログラム220のフル画面状態として認識し、操作することができる。
このように本実施の形態によれば、AVコンテンツがオプション処理部240のエフェクト部233による高画質化処理などのオプション機能処理のサポート対象条件に合致する場合にのみ、高画質化処理などのオプション機能処理を施すオプション処理部240のエフェクト部233を起動させることができるので、ユーザはAVコンテンツがオプション処理部240のエフェクト部233の高画質化処理などのオプション機能処理のサポート対象条件に合致する動画であるか否かを考慮することなく、高画質化処理などのオプション機能処理をスマートに起動することができる。
なお、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に構成要素を適宜組み合わせてもよい。