情報処理装置および情報処理方法
【課題】元の映像の品質をほぼ維持したまま再生できるようにする。
【解決手段】S/Wデコーダ61は、プログレッシブ方式の映像データの中の偶数ラインのデータと奇数ラインのデータとを複数のバッファに交互に記憶させる制御を行うと共にデータ送出の停止および再開の制御を行うことにより、プルダウンされた映像データを生成する。フィールド組立処理部63は、生成された映像データに基づき、グラフィクスデータを記憶することが可能なフレームバッファ64の画像サイズに適合する解像度のグラフィクスデータのフィールド組立処理を行う。
【解決手段】S/Wデコーダ61は、プログレッシブ方式の映像データの中の偶数ラインのデータと奇数ラインのデータとを複数のバッファに交互に記憶させる制御を行うと共にデータ送出の停止および再開の制御を行うことにより、プルダウンされた映像データを生成する。フィールド組立処理部63は、生成された映像データに基づき、グラフィクスデータを記憶することが可能なフレームバッファ64の画像サイズに適合する解像度のグラフィクスデータのフィールド組立処理を行う。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、HD DVD(High Definition Digital Versatile Disc)プレーヤの機能を備えた情報処理装置および情報処理方法に関する。
【背景技術】
【0002】
近年、動画像のデジタル圧縮符号化技術の進展に伴い、HD(High Definition)規格の高精細映像を扱うことが可能な再生装置(プレーヤ)の開発が進められている。
【0003】
この種のプレーヤにおいては、インタラクティブ性を高めるために、複数の画像データを高次元で融合させるための機能が要求されている。
【0004】
例えば特許文献1には、グラフィクスデータとビデオデータとをディスプレイコントローラによって合成するシステムが開示されている。このシステムにおいては、ディスプレイコントローラは、ビデオデータをキャプチャし、そのキャプチャしたビデオデータをグラフィクス画面上の一部のエリア上に合成する。
【特許文献1】特開平8−205092号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
ところで、パーソナルコンピュータ(PC)のような情報処理装置は、一般に、プログレッシブ方式の画像出力を行うことを前提として構築されている。映画などの映像の再生をPCで実現する場合、例えば24フレーム/秒のプログレッシブ方式の映像を30フレーム/秒のプログレッシブ方式の映像に変換して出力する。しかしながら、このような方法では、映像が再生される際の品質の低下が著しい。
【0006】
一方、再生専用機などの民生機では、一般に、24フレーム/秒のプログレッシブ方式の映像を60フレーム/秒のインタレース方式の映像に変換して出力する。このような変換方法では、元の映像の品質をほぼ維持したまま再生することができる。
【0007】
PCなどの情報処理装置においても、民生機並みの映像品質で再生を行えるようにすることが望まれる。
【0008】
この発明は、このような事情を考慮してなされたものであり、元の映像の品質をほぼ維持したまま再生することが可能な情報処理装置および情報処理方法を提供することを目的とする。
【課題を解決するための手段】
【0009】
本発明に係る情報処理装置は、グラフィクスデータを記憶することが可能なフレームバッファと、プログレッシブ方式の映像データの中の偶数ラインのデータと奇数ラインのデータとを複数のバッファに交互に記憶させる制御を行うと共にデータ送出の停止および再開の制御を行うことにより、プルダウンされた映像データを生成する制御手段と、前記制御手段により生成された映像データに基づき、前記フレームバッファの画像サイズに適合する解像度のグラフィクスデータのフィールド組立処理を行うフィールド組立処理手段とを具備することを特徴とする。
【0010】
本発明に係る情報処理方法は、プログレッシブ方式の映像データの中の偶数ラインのデータと奇数ラインのデータとを複数のバッファに交互に記憶させる制御を行うと共にデータ送出の停止および再開の制御を行うことにより、プルダウンされた映像データを生成し、前記生成された映像データに基づき、グラフィクスデータを記憶することが可能なフレームバッファの画像サイズに適合する解像度のグラフィクスデータのフィールド組立処理を行うことを特徴とする。
【発明の効果】
【0011】
本発明によれば、元の映像の品質をほぼ維持したまま再生することが可能となる。
【発明を実施するための最良の形態】
【0012】
以下、図面を参照して本発明の実施形態を説明する。
【0013】
図1には、本発明の一実施形態に係る再生装置の構成例が示されている。この再生装置はPCのアーキテクチャを採用した情報処理装置であり、オーディオ・ビデオ(AV)コンテンツを再生するメディアプレーヤとしての機能を備えている。この再生装置は、例えば、HD DVD(High Definition Digital Versatile Disc)規格のDVDメディアに格納されたオーディオ・ビデオ(AV)コンテンツを再生するHD DVDプレーヤとして実現されている。
【0014】
このHD DVDプレーヤは、図1に示されているように、CPU(Central Processing Unit)11、ノースブリッジ12、主メモリ13、サウスブリッジ14、不揮発性メモリ15、USB(Universal Serial Bus)コントローラ17、HD DVDドライブ18、グラフィクスバス20、PCI(Peripheral Component Interconnect)バス21、ビデオコントローラ22、オーディオコントローラ23、ビデオデコーダ25、ブレンド処理部30、メインオーディオデコーダ31、サブオーディオデコーダ32、オーディオミキサ(Audio Mix)33、ビデオエンコーダ40、およびHDMI(High Definition Multimedia Interface)のようなAVインタフェース(HDMI−TX)41等から構成されている。
【0015】
本HD DVDプレーヤにおいては、プレーヤアプリケーション150と、オペレーティングシステム(OS)151とが予め不揮発性メモリ15にインストールされている。プレーヤアプリケーション150はOS151上で動作するソフトウェアであり、HD DVDドライブ18から読み出されるAVコンテンツを再生するための制御を行う。
【0016】
HD DVDドライブ18によって駆動されるHD DVDメディアのような蓄積メディアに格納されたAVコンテンツは、圧縮符号化されたメインビデオデータ、圧縮符号化されたメインオーディオデータ、圧縮符号化されたサブビデオデータ、圧縮符号化されたサブピクチャデータ、アルファデータを含むグラフィクスデータ、圧縮符号化されたサブオーディオデータ、AVコンテンツの再生を制御するナビゲーションデータ等から構成されている。
【0017】
圧縮符号化されたメインビデオデータは、主映像(主画面イメージ)として用いられる動画像データをH.264/AVC規格の圧縮符号化方式で圧縮符号化したデータである。メインビデオデータはHD規格の高精細画像から構成されている。また、SD(Standard Definition)規格のメインビデオデータを使用することもできる。圧縮符号化されたメインオーディオデータは、メインビデオデータに対応するオーディオデータである。メインオーディオデータの再生は、メインビデオデータの再生と同期して実行される。
【0018】
圧縮符号化されたサブビデオデータはメインビデオ上に重ね合わされた状態で表示される副映像(副画面イメージ)であり、メインビデオデータを補足する動画像(例えば映画監督のインタビューシーンなど)から構成されている。圧縮符号化されたサブオーディオデータは、サブビデオデータに対応するオーディオデータである。サブオーディオデータの再生は、サブビデオデータの再生と同期して実行される。
【0019】
グラフィクスデータもメインビデオ上に重ね合わされた状態で表示される副映像(副画面イメージ)であり、例えば、メニューオブジェクトのような操作ガイダンスを表示するための各種データ(Advanced Elements)から構成されている。各Advanced Elementは、静止画、動画(アニメーションを含む)、またテキストから構成されている。プレーヤアプリケーション150はユーザによるマウス操作に従って絵を描くドローウィング機能を有している。このドローウィング機能によって描画されたイメージもグラフィクスデータとして用いられ、メインビデオ上に重ね合わされた状態で表示することができる。
【0020】
圧縮符号化されたサブピクチャデータは、字幕等のテキストから構成されている。
【0021】
ナビゲーションデータは、コンテントの再生順を制御するプレイリストと、サブビデオおよびグラフィクス(Advanced Elements)等の再生を制御するスクリプトとを含んでいる。スクリプトは、XMLのようなマークアップ言語によって記述されている。
【0022】
HD規格のメインビデオデータは例えば1920×1080ピクセルまたは1280×720ピクセルの解像度を持つ。また、サブビデオデータ、サブピクチャデータ、およびグラフィクスデータの各々は、例えば720×480ピクセルの解像度を持つ。
【0023】
本HD DVDプレーヤにおいては、HD DVDドライブ18から読み出されるHD DVDストリームからメインビデオデータ、メインオーディオデータ、サブビデオデータ、サブオーディオデータ、サブピクチャデータを分離する分離処理と、サブビデオデータ、サブピクチャデータ、およびグラフィクスデータをデコードするデコード処理はソフトウェア(プレーヤアプリケーション150)によって実行される。一方、多くの処理量を必要とする処理、つまりメインビデオデータをデコードする処理、およびメインオーディオデータおよびサブオーディオデータをデコードするデコード処理等は、ハードウェアによって実行される。
【0024】
CPU11は、本HD DVDプレーヤの動作を制御するために設けられたプロセッサであり、不揮発性メモリ15から主メモリ13にロードされる、OS151およびプレーヤアプリケーション150を実行する。主メモリ13内の記憶領域の一部は、ビデオメモリ(VRAM)131として使用される。なお、必ずしも主メモリ13内の記憶領域の一部をVRAM131として使用する必要はなく、主メモリ13とは独立した専用のメモリデバイスをVRAM131として使用してもよい。
【0025】
ノースブリッジ12は、CPU11のローカルバスとサウスブリッジ14との間を接続するブリッジデバイスである。このノースブリッジ12には、主メモリ13をアクセス制御するメモリコントローラが内蔵されている。さらに、このノースブリッジ12には、GPU(Graphics Processing Unit)120も内蔵されている。
【0026】
GPU120は、主メモリ13の一部の記憶領域に割り当てられたビデオメモリ(VRAM)131にCPU11によって書き込まれたデータから、グラフィクス画面イメージを形成するグラフィクス信号を生成するグラフィクスコントローラである。GPU120は、ビットブロック転送(bit block transfer)のようなグラフィクス演算機能を用いて、グラフィクス信号を生成する。例えば、CPU11によってVRAM131上の4つのプレーンにそれぞれ画像データ(サブビデオ、サブピクチャ、グラフィクス、カーソル)が書き込まれた場合、GPU120は、それら4つのプレーンに対応する画像データ同士をピクセル毎に重ね合わせるブレンド処理をビットブロック転送を用いて実行し、これによってメインビデオと同じ解像度(例えば1920×1080ピクセル)を有するグラフィクス画面イメージを形成するためのグラフィクス信号を生成する。ブレンド処理は、サブビデオ、サブピクチャ、グラフィクスそれぞれに対応するアルファデータを用いて実行される。アルファデータは、そのアルファデータに対応する画像データの各ピクセルの透明度(または不透過度)を示す係数である。サブビデオ、サブピクチャ、グラフィクスそれぞれに対応するアルファデータは、それらサブビデオ、サブピクチャ、グラフィクスの画像データと一緒にHD DVDメディアに格納されている。すなわち、サブビデオ、サブピクチャ、グラフィクスの各々は、画像データとアルファデータとから構成されている。
【0027】
GPU120によって生成されたグラフィクス信号はRGB色空間を有している。グラフィクス信号の各ピクセルはデジタルRGBデータ(24bit)によって表現される。
【0028】
GPU120は、グラフィクス画面イメージを形成するグラフィクス信号を生成するだけでなく、その生成したグラフィクス信号に対応するアルファデータを外部に出力する機能も有している。
【0029】
具体的には、GPU120は、生成したグラフィクス信号をデジタルRGBビデオ信号として外部に出力すると共に、その生成したグラフィクス信号に対応するアルファデータも外部に出力する。アルファデータは、生成されたグラフィクス信号(RGBデータ)の各ピクセルの透明度(または不透明度)を示す係数(8bit)である。GPU120は、グラフィクス信号(24bitのデジタルRGBビデオ信号)とアルファデータ(8bit)とから構成されるアルファデータ付きのグラフィクス出力データ(32bitのRGBAデータ)を、ピクセル毎に出力する。アルファデータ付きのグラフィクス出力データ(32bitのRGBAデータ)は専用のグラフィクスバス20を介してブレンド処理部30に送られる。グラフィクスバス20は、GPU120とブレンド処理部30との間を接続する伝送線路である。
【0030】
このように、本HD DVDプレーヤにおいては、アルファデータ付きのグラフィクス出力データがグラフィクスバス20を介してGPU120からブレンド処理部30に直接的に転送される。これにより、PCIバス21等を介してアルファデータをVRAM131からブレンド処理部30を転送する必要が無くなり、アルファデータの転送によるPCIバス21のトラフィックの増大を防止することができる。
【0031】
もしPCIバス21等を介してアルファデータをVRAM131からブレンド処理部30に転送したならば、GPU120から出力されるグラフィクス信号とPCIバス21経由で転送されるアルファデータとをブレンド処理部30内で同期化しなければならず、そのためにブレンド処理部30の構成が複雑化される。本HD DVDプレーヤにおいては、GPU120はグラフィクス信号とアルファデータとをピクセル毎に同期して出力する。このため、グラフィクス信号とアルファデータとの同期化を容易に実現することができる。
【0032】
サウスブリッジ14は、PCIバス21上の各デバイスを制御する。また、サウスブリッジ14は、HD DVDドライブ18を制御するためのIDE(Integrated Drive Electronics)コントローラを内蔵している。さらに、サウスブリッジ14は、不揮発性メモリ15、およびUSBコントローラ17を制御する機能も有している。USBコントローラ17は、マウスデバイス171の制御を行う。ユーザは、マウスデバイス171を操作することにより、メニューの選択等を行うことができる。もちろん、マウスデバイス171の代わりに、リモコンユニット等を用いることもできる。
【0033】
HD DVDドライブ18は、HD DVD規格に対応するオーディオ・ビデオ(AV)コンテンツが格納されたHD DVDメディアのような蓄積メディアを駆動するためのドライブユニットである。
【0034】
ビデオコントローラ22は、PCIバス21に接続されている。このビデオコントローラ22は、ビデオデコーダ25とのインタフェースを実行するためのLSIである。ソフトウェアによってHD DVDストリームから分離されたメインビデオデータのストリーム(Video Stream)は、PCIバス21およびビデオコントローラ22を介して、ビデオデコーダ25に送られる。また、CPU11から出力されるデコード制御情報(Control)も、PCIバス21およびビデオコントローラ22を介して、ビデオデコーダ25に送られる。
【0035】
ビデオデコーダ25は、H.264/AVC規格に対応するデコーダであり、HD規格のメインビデオデータをデコードして例えば1920×1080ピクセルの解像度のビデオ画面イメージを形成するデジタルYUVビデオ信号を生成する。このデジタルYUVビデオ信号はブレンド処理部30に送られる。
【0036】
ブレンド処理部30は、GPU120およびビデオデコーダ25にそれぞれ結合されており、GPU120から出力されるグラフィクス出力データとビデオデコーダ25によってデコードされたメインビデオデータとを重ね合わせるためのブレンド処理を実行する。このブレンド処理においては、GPU120からグラフィクスデータ(RGB)と一緒に出力されるアルファデータに基づいて、グラフィクスデータを構成するデジタルRGBビデオ信号とメインビデオデータを構成するデジタルYUVビデオ信号とをピクセル単位で重ね合わせるためのブレンド処理(アルファブレンディング処理)が実行される。この場合、メインビデオデータは下側の画面イメージとして用いられ、グラフィクスデータはメインビデオデータ上に重ねられる上側の画面イメージとして用いられる。
【0037】
ブレンド処理によって得られる出力画像データは例えばデジタルYUVビデオ信号としてビデオエンコーダ40およびAVインタフェース(HDMI−TX)41にそれぞれ供給される。ビデオエンコーダ40は、ブレンド処理によって得られる出力画像データ(デジタルYUVビデオ信号)をコンポーネントビデオ信号またはS−ビデオ信号に変換して、TV受像機のような外部の表示装置(モニタ)に出力する。AVインタフェース(HDMI−TX)41は、デジタルYUVビデオ信号とデジタルオーディオ信号とを含むデジタル信号群を外部のHDMI機器に出力する。
【0038】
オーディオコントローラ23は、PCIバス21に接続されている。オーディオコントローラ23は、メインオーディオデコーダ31およびサブオーディオデコーダ32それぞれとのインタフェースを実行するためのLSIである。ソフトウェアによってHD DVDストリームから分離されたメインオーディオデータのストリームは、PCIバス21およびオーディオコントローラ23を介して、メインオーディオデコーダ31に送られる。また、ソフトウェアによってHD DVDストリームから分離されたサブオーディオデータのストリームは、PCIバス21およびオーディオコントローラ23を介して、サブオーディオデコーダ32に送られる。CPU11から出力されるデコード制御情報(Control)も、ビデオコントローラ22を介して、メインオーディオデコーダ31およびサブオーディオデコーダ32それぞれに供給される。
【0039】
メインオーディオデコーダ31は、メインオーディオデータをデコードしてI2S(Inter-IC Sound)形式のデジタルオーディオ信号を生成する。このデジタルオーディオ信号は、オーディオミキサ(Audio Mix)33に送られる。メインオーディオデータは、予め決められた複数種の圧縮符号化方式(つまり複数種のオーディオコーデック)の中の任意の一つを用いて圧縮符号化されている。このため、メインオーディオデコーダ31は、複数種の圧縮符号化方式それぞれに対応するデコード機能を有している。すなわち、メインオーディオデコーダ31は、複数種の圧縮符号化方式の内の任意の一つを用いて圧縮符号化されたメインオーディオデータをデコードしてデジタルオーディオ信号を生成する。メインオーディオデータに対応する圧縮符号化方式の種類は、例えば、CPU11からのデコード制御情報によってメインオーディオデコーダ31に通知される。
【0040】
サブオーディオデコーダ32は、サブオーディオデータをデコードしてI2S(Inter-IC Sound)形式のデジタルオーディオ信号を生成する。このデジタルオーディオ信号は、オーディオミキサ(Audio Mix)33に送られる。サブオーディオデータも、予め決められた上述の複数種の圧縮符号化方式(つまり複数種のオーディオコーデック)の中の任意の一つを用いて圧縮符号化されている。このため、サブオーディオデコーダ32も、複数種の圧縮符号化方式それぞれに対応するデコード機能を有している。すなわち、サブオーディオデコーダ32は、複数種の圧縮符号化方式の内の任意の一つを用いて圧縮符号化されたサブオーディオデータをデコードしてデジタルオーディオ信号を生成する。サブオーディオデータに対応する圧縮符号化方式の種類は、例えば、CPU11からのデコード制御情報によってサブオーディオデコーダ32に通知される。
【0041】
オーディオミキサ(Audio Mix)33は、メインオーディオデコーダ31によってデコードされたメインオーディオデータとサブオーディオデコーダ32によってデコードされたサブオーディオデータとをミックスするミキシング処理を実行してデジタルオーディオ出力信号を生成する。このデジタルオーディオ出力信号はAVインタフェース(HDMI−TX)41に送出されるとともに、アナログオーディオ出力信号に変換された後に外部に出力される。
【0042】
次に、図2を参照して、CPU11によって実行されるプレーヤアプリケーション150の機能構成を説明する。
【0043】
プレーヤアプリケーション150は、デマルチプレクス(Demux)モジュール、デコード制御モジュール、サブピクチャ(Sub-Picture)デコードモジュール、サブビデオ(Sub-Video)デコードモジュール、グラフィクスデコードモジュール等を備えている。
【0044】
Demuxモジュールは、HD DVDドライブ18から読み出されたストリームから、メインビデオデータ、メインオーディオデータ、サブピクチャデータ、サブビデオデータ、サブオーディオデータを分離するデマルチプレクス処理を実行するソフトウェアである。デコード制御モジュールは、ナビゲーションデータに基づいて、メインビデオデータ、メインオーディオデータ、サブピクチャデータ、サブビデオデータ、サブオーディオデータ、グラフィクスデータそれぞれのデコード処理を制御するソフトウェアである。
【0045】
サブピクチャ(Sub-Picture)デコードモジュールは、サブピクチャデータをデコードする。サブビデオ(Sub-Video)デコードモジュールは、サブビデオデータをデコードする。グラフィクスデコードモジュールは、グラフィクスデータ(Advanced Elements)をデコードする。
【0046】
グラフィクスドライバは、GPU120を制御するためのソフトウェアである。デコードされたサブピクチャデータ、デコードされたサブビデオデータ、およびデコードされたグラフィクスデータは、グラフィクスドライバを介してGPU120に送られる。また、グラフィクスドライバは、GPU120に対して各種描画命令を発行する。
【0047】
PCIストリーム転送ドライバは、PCIバス21を介してストリームを転送するためのソフトウェアである。メインビデオデータ、メインオーディオデータ、およびサブオーディオデータは、PCIストリーム転送ドライバによって、PCIバス21を介してビデオデコーダ25、メインオーディオデコーダ31、およびサブオーディオデコーダ32にそれぞれ転送される。
【0048】
次に、図3を参照して、CPU11によって実行されるプレーヤアプリケーション150によって実現されるソフトウェアデコーダの機能構成を説明する。
【0049】
ソフトウェアデコーダは、図示のように、データ読み取り部101、暗号化解除処理部102、デマルチプレクス(Demux)部103、サブピクチャデコーダ104、サブビデオデコーダ105、グラフィクスデコーダ106、およびナビゲーション制御部201等を備えている。
【0050】
HD DVDドライブ18のHD DVDメディアに格納されたコンテント(メインビデオデータ、サブビデオデータ、サブピクチャデータ、メインオーディオデータ、サブオーディオデータ、グラフィクスデータ、ナビゲーションデータ)は、データ読み取り部101によってHD DVDドライブ18から読み出される。メインビデオデータ、サブビデオデータ、サブピクチャデータ、メインオーディオデータ、サブオーディオデータ、グラフィクスデータ、ナビゲーションデータはそれぞれ暗号化されている。メインビデオデータ、サブビデオデータ、サブピクチャデータ、メインオーディオデータ、サブオーディオデータは、HD DVDストリームに多重化されている。データ読み取り部101によってHD DVDメディアから読み出されたメインビデオデータ、サブビデオデータ、サブピクチャデータ、メインオーディオデータ、サブオーディオデータ、グラフィクスデータ、ナビゲーションデータはそれぞれコンテント暗号化解除処理部102に入力される。暗号化解除処理部102は各データの暗号化を解除するための処理を実行する。暗号化が解除されたナビゲーションデータはナビゲーション制御部201に送られる。また、暗号化が解除されたHD DVDストリームはデマルチプレクス(Demux)部103に送られる。
【0051】
ナビゲーション制御部201はナビゲーションデータに含まれるスクリプト(XML)を解析して、グラフィクスデータ(Advanced Elements)の再生を制御する。グラフィクスデータ(Advanced Elements)はグラフィクスデコーダ106に送られる。グラフィクスデコーダ106はプレーヤアプリケーション150のグラフィクスデコードモジュールから構成されており、グラフィクスデータ(Advanced Elements)をデコードする。
【0052】
また、ナビゲーション制御部201は、ユーザによるマウスデバイス171の操作に応じてカーソルを移動する処理、およびメニュー選択に応答して効果音を再生するため処理等も実行する。前述のドローウィング機能によるイメージの描画は、ユーザによるマウスデバイス171の操作をナビゲーション制御部201が取得し、その軌跡、つまりカーソルの軌跡からなる絵のグラフィックスデータをGPU120に生成させた後、グラフィクスデコーダ106でデコードされるナビゲーションデータによるグラフィックスデータと同等のグラフィクスデータとしてGPU120に再投入することで実現される。
【0053】
このDemux103は、プレーヤアプリケーション150のDemuxモジュールによって実現されている。Demux103は、HD DVDストリームからメインビデオデータ、メインオーディオデータ、サブオーディオデータ、サブピクチャデータ、サブビデオデータ等を分離する。
【0054】
メインビデオデータは、PCIバス21を介してビデオデコーダ25に送られる。メインビデオデータはビデオデコーダ25によってデコードされる。デコードされたメインビデオデータはHD規格の例えば1920×1080ピクセルの解像度を有し、デジタルYUVビデオ信号としてブレンド処理部30に送られる。
【0055】
メインオーディオデータは、PCIバス21を介してメインオーディオデコーダ31に送られる。メインオーディオデータはメインオーディオデコーダ31によってデコードされる。デコードされたメインオーディオデータは、I2S形式のデジタルオーディオ信号としてオーディオミキサ33に送られる。
【0056】
サブオーディオデータは、PCIバス21を介してサブオーディオデコーダ32に送られる。サブオーディオデータはサブオーディオデコーダ32によってデコードされる。デコードされたサブオーディオデータは、I2S形式のデジタルオーディオ信号としてオーディオミキサ33に送られる。
【0057】
サブピクチャデータおよびサブビデオデータは、それぞれサブピクチャデコーダ104およびサブビデオデコーダ105にそれぞれ送られる。これらサブピクチャデコーダ104およびサブビデオデコーダ105は、サブピクチャデータおよびサブビデオデータをそれぞれデコードする。これらサブピクチャデコーダ104およびサブビデオデコーダ105は、それぞれプレーヤアプリケーション150のサブピクチャデコードモジュールおよびサブビデオデコードモジュールによって実現されている。
【0058】
サブピクチャデコーダ104、サブビデオデコーダ105、およびグラフィクスデコーダ106によってそれぞれデコードされたサブピクチャデータ、サブビデオデータ、およびグラフィクスデータは、CPU11によってVRAM131に書き込まれる。また、VRAM131にはカーソルイメージに対応するカーソルデータもCPU11によって書き込まれる。サブピクチャデータ、サブビデオデータ、グラフィクスデータ、およびカーソルデータの各々は、ピクセル毎にRGBデータとアルファデータ(A)とを含む。
【0059】
GPU120は、CPU11によってVRAM131に書き込まれた、サブビデオデータ、グラフィクスデータ、サブピクチャデータ、およびカーソルデータから、例えば1920×1080ピクセルのグラフィクス画面イメージを形成するグラフィクス出力データを生成する。この場合、サブビデオデータ、グラフィクスデータ、サブピクチャデータ、およびカーソルデータは、GPU120のミキサ(MIX)部121によって実行されるアルファブレンディング処理によってピクセル毎に重ね合わされる。
【0060】
このアルファブレンド処理においては、VRAM131に書き込まれた、サブビデオデータ、グラフィクスデータ、サブピクチャデータ、およびカーソルデータそれぞれに対応するアルファデータが用いられる。すなわち、VRAM131に書き込まれたサブビデオデータ、グラフィクスデータ、サブピクチャデータ、およびカーソルデータの各々は、画像データとアルファデータとから構成されている。ミキサ(MIX)部121は、サブビデオデータ、グラフィクスデータ、サブピクチャデータ、およびカーソルデータそれぞれに対応するアルファデータと、CPU11によって指定される、それらサブビデオデータ、グラフィクスデータ、サブピクチャデータ、およびカーソルデータそれぞれの位置情報とに基づいてブレンド処理を実行することにより、例えば1920×1080ピクセルの背景画像上にサブビデオデータ、グラフィクスデータ、サブピクチャデータ、およびカーソルデータが重ね合わされたグラフィクス画面イメージを生成する。
【0061】
背景画像の各ピクセルに対応するアルファ値は、当該ピクセルが透明であることを示す値つまり0である。グラフィクス画面イメージの内、画像データ同士が重ね合わされた領域については、その領域に対応する新たなアルファデータがミキサ(MIX)部121によって算出される。
【0062】
このようにして、GPU120は、サブビデオデータ、グラフィクスデータ、サブピクチャデータ、およびカーソルデータから、1920×1080ピクセルのグラフィクス画面イメージを形成するグラフィクス出力データ(RGB)およびそのグラフィクスデータに対応するアルファデータを生成する。なお、サブビデオデータ、グラフィクスデータ、サブピクチャデータ、およびカーソルデータのいずれか一つの画像のみが表示されるシーンについては、1920×1080ピクセルの背景画像上に当該画像(例えば720×480)のみが配置されたグラフィクス画面イメージに対応するグラフィクスデータおよびそのグラフィクスデータに対応するアルファデータが生成される。
【0063】
GPU120によって生成されたグラフィクスデータ(RGB)およびアルファデータは、グラフィクスバス20を介してRGBAデータとしてブレンド処理部30に送られる。
【0064】
次に、図4を参照して、ブレンド処理部30によって実行されるブレンド処理(アルファブレンディング処理)を説明する。
【0065】
アルファブレンディング処理は、グラフィクスデータ(RGB)に付随するアルファデータ(A)に基づいて、グラフィクスデータとメインビデオデータとをピクセル単位で重ね合せるブレンド処理である。この場合、グラフィクスデータ(RGB)はオーバーサーフェースとして用いられ、ビデオデータ上に重ね合される。GPU120から出力されるグラフィクスデータの解像度は、ビデオデコーダ25から出力されるメインビデオデータの解像度と同一である。
【0066】
いま、1920×1080ピクセルの解像度を持つメインビデオデータ(Video)が画像データCとしてブレンド処理部30に入力され、1920×1080ピクセルの解像度を持つグラフィクスデータが画像データGとしてブレンド処理部30に入力された場合を想定する。ブレンド処理部30は、1920×1080ピクセルの解像度を持つアルファデータ(A)に基づき、画像データC上に画像データGをピクセル単位で重ね合わせるための演算を実行する。この演算は、以下の式(1)によって実行される。
【0067】
V=α×G+(1−α)C …(1)
ここで、Vはアルファブレンディング処理によって得られる出力画像データの各ピクセルの色、αはグラフィクスデータGの各ピクセルに対応するアルファ値である。
【0068】
次に、図5を参照して、GPU120のMIX部121によって実行されるブレンド処理(アルファブレンディング処理)を説明する。
【0069】
ここでは、VRAM131に書き込まれたSub-PictureデータおよびSub-Videoデータから1920×1080ピクセルの解像度を持つグラフィクスデータを生成する場合を想定する。Sub-PictureデータおよびSub-Videoデータの各々は、例えば720×480ピクセルの解像度を持つ。この場合、Sub-PictureデータおよびSub-Videoデータの各々には、例えば720×480ピクセルの解像度のアルファデータも付随する。
【0070】
例えば、Sub-Pictureデータに対応するイメージはオーバーサーフェースとして使用され、Sub-Videoデータに対応するイメージはアンダーフェースとして使用される。
【0071】
Sub-Pictureデータに対応するイメージとSub-Videoデータに対応するイメージとが重なった領域の各ピクセルの色は、以下の式(2)によって求められる。
【0072】
G=Go×αo+Gu(1−αo)αu …(2)
ここで、Gは重なった領域の各ピクセルの色、Goはオーバーサーフェースとして使用されるSub-Pictureデータの各ピクセルの色、αoはオーバーサーフェースとして使用されるSub-Pictureデータの各ピクセルのアルファ値、Guはアンダーフェースとして使用されるSub-Videoデータの各ピクセルの色である。
【0073】
また、Sub-Pictureデータに対応するイメージとSub-Videoデータに対応するイメージとが重なった領域の各ピクセルのアルファ値は、以下の式(3)によって求められる。
【0074】
α=αo+αu×(1−αo) …(3)
ここで、αは重なった領域の各ピクセルのアルファ値、αuはアンダーサーフェースとして使用されるSub-Videoデータの各ピクセルのアルファ値である。
【0075】
このように、GPU120のMIX部121は、Sub-Pictureデータに対応するアルファデータおよびSub-Videoデータに対応するアルファデータの内、オーバーサーフェースとして使用される方のアルファデータを用いて、Sub-PictureデータとSub-Videoデータとを重ね合わせ、これにより1920×1080ピクセルの画面イメージを形成するグラフィクスデータを生成する。さらに、GPU120のMIX部121は、Sub-Pictureデータに対応するアルファデータとSub-Videoデータに対応するアルファデータとから、1920×1080ピクセルの画面イメージを形成するグラフィクスデータの各ピクセルのアルファ値を算出する。
【0076】
具体的には、GPU120のMIX部121は、1920×1080ピクセルのサーフェース(全ピクセルの色=黒、全ピクセルのアルファ値=0)と、720×480ピクセルのSub-Videoデータのサーフェースと、720×480ピクセルのSub-Pictureデータのサーフェースとを重ね合わせるブレンド処理を実行することにより、1920×1080ピクセルの画面イメージを形成するグラフィクスデータと1920×1080ピクセルのアルファデータとを算出する。1920×1080ピクセルのサーフェースが最も下側のサーフェースとして使用され、Sub-Videoデータのサーフェースが2番目に下側のサーフェースとして使用され、Sub-Pictureデータのサーフェースが最も上側のサーフェースとして使用される。
【0077】
1920×1080ピクセルの画面イメージの内、Sub-PictureデータおよびSub-Videoデータのどちらも存在しない領域の各ピクセルの色は黒となる。また、Sub-Pictureデータのみが存在する領域内の各ピクセルの色は、Sub-Pictureデータの対応する各ピクセルの本来の色と同じとなる。同様に、Sub-Videoデータのみが存在する領域内の各ピクセルの色は、Sub-Videoデータの対応する各ピクセルの本来の色と同じとなる。
【0078】
また1920×1080ピクセルの画面イメージの内、Sub-PictureデータおよびSub-Videoデータのどらも存在しない領域の各ピクセルに対応するアルファ値は零となる。Sub-Pictureデータのみが存在する領域内の各ピクセルのアルファ値は、Sub-Pictureデータの対応する各ピクセルの本来のアルファ値と同じとなる。同様に、Sub-Videoデータのみが存在する領域内の各ピクセルのアルファ値は、Sub-Videoデータの対応する各ピクセルの本来のアルファ値と同じとなる。
【0079】
図6には、1920×1080ピクセルのメインビデオデータ上に720×480ピクセルのサブビデオデータが重ねて表示される様子が示されている。
【0080】
図6においては、グラフィクスデータは、1920×1080ピクセルのサーフェース(全ピクセルの色=黒、全ピクセルのアルファ値=0)と、720×480ピクセルのSub-Videoデータのサーフェースとをピクセル毎に重ね合わせるブレンド処理によって生成される。
【0081】
前述したように、表示装置に出力される出力画像データ(Video+Graphics)は、グラフィクスデータとメインビデオデータとをブレンドすることによって生成される。
【0082】
1920×1080ピクセルのグラフィクスデータの内、720×480ピクセルのサブビデオデータが存在しない領域の各ピクセルのアルファ値は零である。このため、720×480ピクセルのサブビデオデータが存在しない領域は透明となるので、その領域にはメインビデオデータが100パーセントの不透明度で表示される。
【0083】
720×480ピクセルのサブビデオデータの各ピクセルは、サブビデオデータに対応するアルファデータで指定される透明度でメインビデオデータ上に表示される。例えば、アルファ値=1のサブビデオデータのピクセルは100パーセントの不透明度で表示され、当該ピクセル位置に対応するメインビデオデータのピクセルは表示されない。
【0084】
また、図7に示すように、720×480ピクセルの解像度に縮小されたメインビデオデータを、1920×1080ピクセルの解像度に拡大されたサブビデオデータ上の一部の領域に表示することもできる。
【0085】
図7の表示形態は、GPU120が有するスケーリング機能およびビデオデコーダ25が有するスケーリング機能を用いて実現される。
【0086】
具体的には、GPU120は、CPU11からの指示に従って、サブビデオデータの解像度(画像サイズ)が1920×1080ピクセルになるまでサブビデオデータの解像度を段階的に拡大するスケーリング処理を実行する。このスケーリング処理は、ピクセル補間を用いて実行される。サブビデオデータの解像度が大きくなるに従い、1920×1080ピクセルのグラフィクスデータの内、720×480ピクセルのサブビデオデータが存在しない領域(アルファ値=0の領域)は徐々に小さくなる。これにより、メインビデオデータ上に重ねて表示されるサブビデオデータのサイズは徐々に大きくなり、逆にアルファ値=0の領域は徐々小さくなる。サブビデオデータの解像度(画像サイズ)が1920×1080ピクセルになった場合、GPU120は、例えば、720×480ピクセルのサーフェース(全ピクセルの色=黒、全ピクセルのアルファ値=0)を1920×1080ピクセルのサブビデオデータ上にピクセル毎に重ね合わせるブレンド処理を実行して、1920×1080ピクセルのサブビデオデータ上にアルファ値=0の720×480ピクセルの領域を配置する。
【0087】
一方、ビデオデコーダ25は、CPU11からの指示に従って、メインビデオデータの解像度を720×480ピクセルに縮小するスケーリング処理を実行する。
【0088】
720×480ピクセルに縮小されたメインビデオデータは、1920×1080ピクセルのサブビデオデータ上に配置された、720×480ピクセルのアルファ値=0の領域に表示される。すなわち、GPU120から出力されるアルファデータは、メインビデオデータが表示される領域を制限するためのマスクとしても使用することができる。
【0089】
このように、GPU120から出力されるアルファデータはソフトウェアによって自由に制御することができるので、グラフィクスデータを効果的にメインビデオデータ上に重ねて表示することができ、これによりインタラクティブ性の高い映像表現を容易に実現することができる。さらに、アルファデータはグラフィクスデータと一緒にGPU120からブレンド処理部30に自動的に転送されるので、ソフトウェアは、ブレンド処理部30へのアルファデータの転送を意識する必要はない。
【0090】
図8は、本HD DVDプレーヤによって再生されるHD規格のAVコンテンツ中の複数の画像データそれぞれが、前述のように動作するGPU120とブレンド処理部30とによってどのような手順で重ね合わされるのかを示す概念図である。
【0091】
HD規格では、レイヤ1〜レイヤ5の5つのレイヤが定義されており、各レイヤに前述のカーソル、グラフィクス、サブピクチャ、サブビデオ、メインビデオがそれぞれ割り当てられている。そして、本HDD DVDプレーヤでは、図8に示すように、このレイヤ1〜レイヤ5のうち、レイヤ1〜レイヤ4の4つの画像a1〜画像a4の重ね合わせを前段処理としてGPU120のミキサ部121で実行し、このGPU120の出力画像とレイヤ5の画像a5との重ね合わせを後段処理としてブレンド処理部30で実行することにより、目的の画像a6を作成している。
【0092】
このように、HD規格で定義されるレイヤ1〜レイヤ5の5つの画像データの重ね合わせを2段階に分離させることで、本HD DVDプレーヤは、第1に、適切な負荷分散を図っている。また、レイヤ5のメインビデオは高精細映像であり、30フレーム/秒の各フレームについて更新を欠かせない。そのために、このメインビデオを扱うブレンド処理部30での重ね合わせは30回/秒必要となる。これに対して、レイヤ1〜レイヤ4のカーソル、グラフィクス、サブピクチャ、サブビデオは、メインビデオ程の高い画質は要求されていないので、GPU120のミキサ部121での重ね合わせは例えば10回/秒で良い。仮に、このレイヤ1〜レイヤ4のカーソル、グラフィクス、サブピクチャ、サブビデオの重ね合わせをレイヤ5のメインビデオとともにブレンド処理部30で実行したならば、レイヤ1〜レイヤ4の各レイヤについても30回/秒、つまり20回/秒も必要以上に重ね合わせを実行することになる。つまり、本HD DVDプレーヤは、第2に、適切な効率化を図っている。
【0093】
レイヤ1〜レイヤ4のカーソル、グラフィクス、サブピクチャ、サブビデオは、プレーヤアプリケーション150からGPU120に供給されるが、このGPU120への各画像データの供給のために、プレーヤアプリケーション150は、図8に示すように、前述のサブピクチャデコーダ104、サブビデオデコーダ105、グラフィクスデコーダ(エレメントデコーダ)106のほか、カーソルドローウィングマネージャ107およびサーフェースマネジメント/タイミングコントローラ108を有している。
【0094】
カーソルドローウィングマネージャ107は、ナビゲーション制御部201の一機能として実現され、ユーザによるマウスデバイス171の操作に応じてカーソルを移動させるためのカーソル描画制御を実行する。一方、サーフェースマネジメント/タイミングコントローラ108は、サブピクチャデコーダ104によってデコードされたサブピクチャデータの画像を適時に表示させるためのタイミング制御を実行する。
【0095】
なお、図中のCursor Controlは、マウスデバイス171の操作に応じてUSBコントローラ17が発行するカーソル移動用の制御データである。ECMA Scriptは、点、線、図形等の描画を指示するdrawingAPIが記述されたスクリプトである。iHD Markupは、様々なAdvanced Elementを適時に表示させるためにマークアップ言語で記述されたテキストデータである。
【0096】
また、GPU120は、前述のミキサ部121のほか、スケーリング処理部122、ルーマキー処理部123および3Dグラフィクスエンジン124を有している。
【0097】
スケーリング処理部122は、図7の説明で触れたスケーリング処理を実行する。ルーマキー処理部123は、輝度値がしきい値以下のピクセルのアルファ値を0にすることによって画像中の背景(黒)を取り除くルーマキー処理を実行する。3Dグラフィクスエンジン124は、前述のドローウィング機能のための(カーソルの軌跡からなる絵の)イメージ生成を含むグラフィクスデータの生成処理を実行する。
【0098】
本HD DVDプレーヤでは、図8に示すように、レイヤ2〜レイヤ4の画像a2〜画像a4についてスケーリング処理を行い、レイヤ4の画像a4についてはさらにルーマキー処理を行っている。そして、本HD DVDプレーヤでは、このスケーリング処理やルーマキー処理をそれぞれ単独でGPU120に実行させるのではなく、(ミキサ部121による)ブレンド処理を実行させる際、このブレンド処理と並行して実行させる。プレーヤアプリケーション150の立場から言えば、このスケーリング処理やルーマキー処理をブレンド処理と同時に依頼する。仮に、このスケーリング処理やルーマキー処理をそれぞれ単独でGPU120に実行させたならば、スケーリング処理後の画像やルーマキー処理後の画像を一時的に格納する中間バッファが必要となり、また、この中間バッファとGPU120との間のデータ転送が必要となる。これに対して、GPU120内において、スケーリング処理部122の出力が随時にルーマキー処理部123に入力され、さらにルーマキー処理部123の出力が随時にミキサ部121に入力されていくといった、スケーリング処理部122、ルーマキー処理部123およびミキサ部121を協働させたいわゆるパイプライン処理を行う本HD DVDプレーヤでは、中間バッファが不要であり、中間バッファとGPU120との間のデータ転送も生じさせない。つまり、本HD DVDプレーヤは、この点でも、適切な効率化を図っている。
【0099】
なお、図8に示すPixelバッファマネージャ153は、3Dグラフィクスエンジン124を使ったマウス操作による絵の描画やエレメントデコーダ106による操作ガイダンス等のオブジェクトの描画のための作業領域として使用されるPixelバッファの割り当て管理を実行するミドルウェアである。ハードウェアであるPixelバッファをソフトウェアで使用するために用意されるドライバによる割り当て管理をより最適化するために、Pixelバッファマネージャ153は、このドライバとPixelバッファを用いる上位システムとの間に介在して設けられる。
【0100】
以上のように、本HD DVDプレーヤにおいては、HD規格で定義されるレイヤ1〜レイヤ5の5つの画像データの重ね合わせを2段階に分離させることで、適切な負荷分散および効率化を図っており、また、スケーリング処理やルーマキー処理をブレンド処理と並行して実行することで、さらなる効率化を図っている。
【0101】
以下では、上述した各種の画像データのうち、サブビデオデータに関して説明する。
【0102】
図9は、GPU120の機能を用いて民生機並みの映像品質の再生を実現する制御に関わる構成部分を示すブロック図である。
【0103】
グラフィクスマネージャ50は、GPU120を通じて、カーソル、グラフィクス、サブピクチャ、サブビデオといった各レイヤの画像データに対してブレンド処理を含むグラフィクス処理を行ってグラフィクス画面イメージを形成するための制御を行うものである。
【0104】
サブビデオデコーダ51は、図8中のデコーダ105に相当するものであり、供給されてくるサブビデオデータに対してデコード処理を行う。ビデオポストプロセシングマネージャ52は、サブビデオデコーダ51とグラフィクスマネージャ50との間に設けられ、デコード処理されたサブビデオデータに対して必要な後処理を行ってから出力する。フィールドコンポーザ53は、ビデオポストプロセシングマネージャ52の中に設けられ、グラフィクスマネージャ50を通じて後述するフレームバッファへ供給すべきサブビデオデータに関するフィールド組立処理などを行うものである。以下では、このフィールドコンポーザ53により実現される処理について詳述する。
【0105】
図10は、フレームバッファを用いたダブルバッファ方式を説明するための図である。
【0106】
ダブルバッファを構成するフレームバッファ(A)およびフレームバッファ(B)は、GPU120により生成されるグラフィクスデータを交互に記憶して出力するものであり、グラフィクスマネージャ50により制御される。グラフィクスマネージャ50は、例えば、サブビデオデータのフレームバッファ(A)へのデータ書込みを止めてフレームバッファ(B)への書込みを実行する第1の状態と、サブビデオデータのフレームバッファ(B)へのデータ書込みを止めてフレームバッファ(A)への書込みを実行する第2の状態とを、例えば1/30秒毎に切り替える。
【0107】
図11は、1つのフレームバッファに記憶されるデータの構成を説明するための図である。
【0108】
フレームバッファは、1920×1080ピクセルの画像サイズを有し、インタレース方式の映像再生に適合するグラフィクスデータとプログレッシブ方式の映像再生に適合するグラフィクスデータのいずれの記憶にも使用可能である。インタレース方式に対応させるためには、図11に示される偶数ラインのデータをインタレース方式用のトップフィールドのデータとして図12のようにまとめて書き込むと共に、図11に示される奇数ラインのデータをインタレース方式用のボトムフィールドのデータとして図12のようにまとめて書き込む必要がある。図12のようなデータ書き込みにより、インタレース方式に基づくグラフィクス画面イメージを形成することが可能となる。この場合、トップフィールドのデータは1/60秒で読み出され、ボトムフィールドのデータも1/60秒で読み出される。これにより、1/30秒で1フレーム分の画像が生成されることになる。
【0109】
図13は、フィールドコンポーザ53により実現される処理を説明するための図である。
【0110】
S/Wデコーダ61は、ソフトウェアで実現されるデコーダであり、例えば、供給されてくる24フレーム/秒のプログレッシブ方式の映像データの中の偶数ラインのデータと奇数ラインのデータとを複数のバッファに交互に記憶させる制御を行うと共にデータ送出の停止および再開の制御を行うことにより、プルダウンされた30フレーム/秒の映像データを生成する。
【0111】
バッファa,b,c,dは、S/Wデコーダ61により制御され、プルダウンされた映像データを生成するために使用される。なお、バッファdは必ずしも必要とされるものではない。
【0112】
スケーリング処理部62は、フィールド組立処理部63によるフィールド組立処理の前段処理として、S/Wデコーダ61の制御により複数のバッファから生成された映像データの解像度を拡大するスケーリング処理(例えば、720×480ピクセルから1920×1080ピクセルへ拡大する処理)を行う。
【0113】
フィールド組立処理部63は、スケーリング処理部62によりスケーリング処理された映像データに基づき、フレームバッファ64の画像サイズに適合する解像度のグラフィクスデータのフィールド組立処理を行う。すなわち、このフィールド組立処理部63は、インタレース方式の映像再生に適合するグラフィクスデータを形成する。
【0114】
フレームバッファ64は、フィールド組立処理部63により形成されたグラフィクスデータを記憶する。このグラフィクスデータは、図12に示されるようなデータ構成を有しており、インタレース方式の映像再生を行うのに適する。
【0115】
図14は、図13中に示されるスケーリング処理部62の内部構成の一例を示す図である。
【0116】
スケーリング処理部62は、トップデータスケーリング処理部71およびボトムデータスケーリング処理部72を有する。トップデータスケーリング処理部71は、トップフィールド用のデータを入力してスケーリング処理を行い、スケーリング処理後のデータを次段のボトムデータスケーリング処理部72へ送り出す。ボトムデータスケーリング処理部72は、ボトムフィールド用のデータを入力してスケーリング処理を行い、このスケーリング処理後のデータと、前段から送られてくるスケーリング処理後のトップフィールド用のデータとを合わせ、これをサブビデオプレーンとして出力する。
【0117】
図15は、図13中に示されるS/Wデコーダ61がバッファa,b,cを制御する手順を説明するための図である。
【0118】
S/Wデコーダ61は、1フレーム目の生成において、バッファaおよびバッファbの各データがフレームバッファ側へ送られるように制御する。2フレーム目の生成においても同様に、バッファaおよびバッファbの各データがフレームバッファ側へ送られるように制御する。3フレーム目の生成においては、バッファcおよびバッファbの各データがフレームバッファ側へ送られるように制御する。4フレーム目の生成においても同様に、バッファcおよびバッファbの各データがフレームバッファ側へ送られるように制御する。S/Wデコーダ61は、4フレーム目の処理が終わった時点で動作を一旦停止させた後、5フレーム目の生成において、バッファaおよびバッファbの各データがフレームバッファ側へ送られるように制御する。以降、同じ手順が繰り返されることになる。
【0119】
図16は、図15に示される制御によりプログレッシブ画像がインタレース画像にプルダウン変換される様子を示す図である。
【0120】
例えば、1/24秒毎にプログレッシブ画像A,B,C,Dが順次送られてくるものとする。この場合、これら4枚のフレームに基づき、1/30秒毎に5枚のインタレース画像が生成される。
【0121】
1フレーム目のインタレース画像は、画像Aのトップフィールドのデータと画像Aのボトムフィールドのデータとを合わせた画像となる。2フレーム目のインタレース画像は、画像Bのトップフィールドのデータと画像Bのボトムフィールドのデータとを合わせた画像となる。3フレーム目のインタレース画像は、画像Bのトップフィールドのデータと画像Cのボトムフィールドのデータとを合わせた画像となる。4フレーム目のインタレース画像は、画像Cのトップフィールドのデータと画像Dのボトムフィールドのデータとを合わせた画像となる。1フレーム目のインタレース画像は、画像Dのトップフィールドのデータと画像Dのボトムフィールドのデータとを合わせた画像となる。
【0122】
図17は、スケーリング処理における具体的な手法の一例を示す図である。
【0123】
920×1080ピクセルのデータと720×480ピクセルのデータとの間のスケーリング処理を行う場合、例えば図17に示されるようなデータ割り当てを行う。すなわち、トップフィールドのデータとボトムデータとに基づいて1つのフィールドを形成する変換処理と、このような変換処理を行わない処理とを適宜組み合わせて全体の画像を形成することにより、所望のスケーリング処理を実現することができる。
【0124】
以上のように本実施形態によれば、PCなどの情報処理装置においても、GPUなどの機能を用いて民生機並みの映像品質の映像をインタレース方式で再生することが可能となる。
【0125】
本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【0126】
【図1】本発明の一実施形態に係る再生装置の構成を示すブロック図。
【図2】図1の再生装置で用いられるプレーヤアプリケーションの構成を示す図。
【図3】図2のプレーヤアプリケーションによって実現されるソフトウェアデコーダの機能構成を説明するための図。
【図4】図1の再生装置に設けられたブレンド処理部によって実行されるブレンド処理を説明するための図。
【図5】図1の再生装置に設けられたGPUによって実行されるブレンド処理を説明するための図。
【図6】図1の再生装置においてメインビデオデータ上にサブビデオデータが重ねて表示される様子を示す図。
【図7】図1の再生装置においてサブビデオデータ上の一部の領域にメインビデオデータが表示される様子を示す図。
【図8】図1の再生装置においてHD規格のAVコンテンツ中の複数の画像データそれぞれがどのような手順で重ね合わされるのかを示す概念図。
【図9】GPUの機能を用いて民生機並みの映像品質の再生を実現する制御に関わる構成部分を示すブロック図。
【図10】フレームバッファを用いたダブルバッファ方式を説明するための図。
【図11】1つのフレームバッファに記憶されるデータの構成を説明するための図。
【図12】図11に示されるデータをインタレース方式用のデータとして書き込む方法を説明するための図。
【図13】フィールドコンポーザにより実現される処理を説明するための図。
【図14】図13中に示されるスケーリング処理部の内部構成の一例を示す図。
【図15】図13中に示されるS/Wデコーダがバッファを制御する手順を説明するための図。
【図16】図15に示される制御によりプログレッシブ画像がインタレース画像にプルダウン変換される様子を示す図。
【図17】スケーリング処理における具体的な手法の一例を示す図。
【符号の説明】
【0127】
11…CPU、18…HD DVDドライブ、30…ブレンド処理部、50…グラフィクスマネージャ、51…サブビデオデコーダ、52…ビデオポストプロセシングマネージャ、53…フィールドコンポーザ、61…S/Wデコーダ、62…スケーリング処理部、63…フィールド組立処理部、64…フレームバッファ、101…データ読取り部、102…暗号化解除処理部、103…デマルチプレクス部、104…サブピクチャデコーダ、105…サブビデオデコーダ、106…グラフィクスデコーダ、120…GPU、121…ミキサ部、122…スケーリング処理部、123…ルーマキー処理部、150…プレーヤアプリケーション、201…ナビゲーション制御部。
【技術分野】
【0001】
本発明は、HD DVD(High Definition Digital Versatile Disc)プレーヤの機能を備えた情報処理装置および情報処理方法に関する。
【背景技術】
【0002】
近年、動画像のデジタル圧縮符号化技術の進展に伴い、HD(High Definition)規格の高精細映像を扱うことが可能な再生装置(プレーヤ)の開発が進められている。
【0003】
この種のプレーヤにおいては、インタラクティブ性を高めるために、複数の画像データを高次元で融合させるための機能が要求されている。
【0004】
例えば特許文献1には、グラフィクスデータとビデオデータとをディスプレイコントローラによって合成するシステムが開示されている。このシステムにおいては、ディスプレイコントローラは、ビデオデータをキャプチャし、そのキャプチャしたビデオデータをグラフィクス画面上の一部のエリア上に合成する。
【特許文献1】特開平8−205092号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
ところで、パーソナルコンピュータ(PC)のような情報処理装置は、一般に、プログレッシブ方式の画像出力を行うことを前提として構築されている。映画などの映像の再生をPCで実現する場合、例えば24フレーム/秒のプログレッシブ方式の映像を30フレーム/秒のプログレッシブ方式の映像に変換して出力する。しかしながら、このような方法では、映像が再生される際の品質の低下が著しい。
【0006】
一方、再生専用機などの民生機では、一般に、24フレーム/秒のプログレッシブ方式の映像を60フレーム/秒のインタレース方式の映像に変換して出力する。このような変換方法では、元の映像の品質をほぼ維持したまま再生することができる。
【0007】
PCなどの情報処理装置においても、民生機並みの映像品質で再生を行えるようにすることが望まれる。
【0008】
この発明は、このような事情を考慮してなされたものであり、元の映像の品質をほぼ維持したまま再生することが可能な情報処理装置および情報処理方法を提供することを目的とする。
【課題を解決するための手段】
【0009】
本発明に係る情報処理装置は、グラフィクスデータを記憶することが可能なフレームバッファと、プログレッシブ方式の映像データの中の偶数ラインのデータと奇数ラインのデータとを複数のバッファに交互に記憶させる制御を行うと共にデータ送出の停止および再開の制御を行うことにより、プルダウンされた映像データを生成する制御手段と、前記制御手段により生成された映像データに基づき、前記フレームバッファの画像サイズに適合する解像度のグラフィクスデータのフィールド組立処理を行うフィールド組立処理手段とを具備することを特徴とする。
【0010】
本発明に係る情報処理方法は、プログレッシブ方式の映像データの中の偶数ラインのデータと奇数ラインのデータとを複数のバッファに交互に記憶させる制御を行うと共にデータ送出の停止および再開の制御を行うことにより、プルダウンされた映像データを生成し、前記生成された映像データに基づき、グラフィクスデータを記憶することが可能なフレームバッファの画像サイズに適合する解像度のグラフィクスデータのフィールド組立処理を行うことを特徴とする。
【発明の効果】
【0011】
本発明によれば、元の映像の品質をほぼ維持したまま再生することが可能となる。
【発明を実施するための最良の形態】
【0012】
以下、図面を参照して本発明の実施形態を説明する。
【0013】
図1には、本発明の一実施形態に係る再生装置の構成例が示されている。この再生装置はPCのアーキテクチャを採用した情報処理装置であり、オーディオ・ビデオ(AV)コンテンツを再生するメディアプレーヤとしての機能を備えている。この再生装置は、例えば、HD DVD(High Definition Digital Versatile Disc)規格のDVDメディアに格納されたオーディオ・ビデオ(AV)コンテンツを再生するHD DVDプレーヤとして実現されている。
【0014】
このHD DVDプレーヤは、図1に示されているように、CPU(Central Processing Unit)11、ノースブリッジ12、主メモリ13、サウスブリッジ14、不揮発性メモリ15、USB(Universal Serial Bus)コントローラ17、HD DVDドライブ18、グラフィクスバス20、PCI(Peripheral Component Interconnect)バス21、ビデオコントローラ22、オーディオコントローラ23、ビデオデコーダ25、ブレンド処理部30、メインオーディオデコーダ31、サブオーディオデコーダ32、オーディオミキサ(Audio Mix)33、ビデオエンコーダ40、およびHDMI(High Definition Multimedia Interface)のようなAVインタフェース(HDMI−TX)41等から構成されている。
【0015】
本HD DVDプレーヤにおいては、プレーヤアプリケーション150と、オペレーティングシステム(OS)151とが予め不揮発性メモリ15にインストールされている。プレーヤアプリケーション150はOS151上で動作するソフトウェアであり、HD DVDドライブ18から読み出されるAVコンテンツを再生するための制御を行う。
【0016】
HD DVDドライブ18によって駆動されるHD DVDメディアのような蓄積メディアに格納されたAVコンテンツは、圧縮符号化されたメインビデオデータ、圧縮符号化されたメインオーディオデータ、圧縮符号化されたサブビデオデータ、圧縮符号化されたサブピクチャデータ、アルファデータを含むグラフィクスデータ、圧縮符号化されたサブオーディオデータ、AVコンテンツの再生を制御するナビゲーションデータ等から構成されている。
【0017】
圧縮符号化されたメインビデオデータは、主映像(主画面イメージ)として用いられる動画像データをH.264/AVC規格の圧縮符号化方式で圧縮符号化したデータである。メインビデオデータはHD規格の高精細画像から構成されている。また、SD(Standard Definition)規格のメインビデオデータを使用することもできる。圧縮符号化されたメインオーディオデータは、メインビデオデータに対応するオーディオデータである。メインオーディオデータの再生は、メインビデオデータの再生と同期して実行される。
【0018】
圧縮符号化されたサブビデオデータはメインビデオ上に重ね合わされた状態で表示される副映像(副画面イメージ)であり、メインビデオデータを補足する動画像(例えば映画監督のインタビューシーンなど)から構成されている。圧縮符号化されたサブオーディオデータは、サブビデオデータに対応するオーディオデータである。サブオーディオデータの再生は、サブビデオデータの再生と同期して実行される。
【0019】
グラフィクスデータもメインビデオ上に重ね合わされた状態で表示される副映像(副画面イメージ)であり、例えば、メニューオブジェクトのような操作ガイダンスを表示するための各種データ(Advanced Elements)から構成されている。各Advanced Elementは、静止画、動画(アニメーションを含む)、またテキストから構成されている。プレーヤアプリケーション150はユーザによるマウス操作に従って絵を描くドローウィング機能を有している。このドローウィング機能によって描画されたイメージもグラフィクスデータとして用いられ、メインビデオ上に重ね合わされた状態で表示することができる。
【0020】
圧縮符号化されたサブピクチャデータは、字幕等のテキストから構成されている。
【0021】
ナビゲーションデータは、コンテントの再生順を制御するプレイリストと、サブビデオおよびグラフィクス(Advanced Elements)等の再生を制御するスクリプトとを含んでいる。スクリプトは、XMLのようなマークアップ言語によって記述されている。
【0022】
HD規格のメインビデオデータは例えば1920×1080ピクセルまたは1280×720ピクセルの解像度を持つ。また、サブビデオデータ、サブピクチャデータ、およびグラフィクスデータの各々は、例えば720×480ピクセルの解像度を持つ。
【0023】
本HD DVDプレーヤにおいては、HD DVDドライブ18から読み出されるHD DVDストリームからメインビデオデータ、メインオーディオデータ、サブビデオデータ、サブオーディオデータ、サブピクチャデータを分離する分離処理と、サブビデオデータ、サブピクチャデータ、およびグラフィクスデータをデコードするデコード処理はソフトウェア(プレーヤアプリケーション150)によって実行される。一方、多くの処理量を必要とする処理、つまりメインビデオデータをデコードする処理、およびメインオーディオデータおよびサブオーディオデータをデコードするデコード処理等は、ハードウェアによって実行される。
【0024】
CPU11は、本HD DVDプレーヤの動作を制御するために設けられたプロセッサであり、不揮発性メモリ15から主メモリ13にロードされる、OS151およびプレーヤアプリケーション150を実行する。主メモリ13内の記憶領域の一部は、ビデオメモリ(VRAM)131として使用される。なお、必ずしも主メモリ13内の記憶領域の一部をVRAM131として使用する必要はなく、主メモリ13とは独立した専用のメモリデバイスをVRAM131として使用してもよい。
【0025】
ノースブリッジ12は、CPU11のローカルバスとサウスブリッジ14との間を接続するブリッジデバイスである。このノースブリッジ12には、主メモリ13をアクセス制御するメモリコントローラが内蔵されている。さらに、このノースブリッジ12には、GPU(Graphics Processing Unit)120も内蔵されている。
【0026】
GPU120は、主メモリ13の一部の記憶領域に割り当てられたビデオメモリ(VRAM)131にCPU11によって書き込まれたデータから、グラフィクス画面イメージを形成するグラフィクス信号を生成するグラフィクスコントローラである。GPU120は、ビットブロック転送(bit block transfer)のようなグラフィクス演算機能を用いて、グラフィクス信号を生成する。例えば、CPU11によってVRAM131上の4つのプレーンにそれぞれ画像データ(サブビデオ、サブピクチャ、グラフィクス、カーソル)が書き込まれた場合、GPU120は、それら4つのプレーンに対応する画像データ同士をピクセル毎に重ね合わせるブレンド処理をビットブロック転送を用いて実行し、これによってメインビデオと同じ解像度(例えば1920×1080ピクセル)を有するグラフィクス画面イメージを形成するためのグラフィクス信号を生成する。ブレンド処理は、サブビデオ、サブピクチャ、グラフィクスそれぞれに対応するアルファデータを用いて実行される。アルファデータは、そのアルファデータに対応する画像データの各ピクセルの透明度(または不透過度)を示す係数である。サブビデオ、サブピクチャ、グラフィクスそれぞれに対応するアルファデータは、それらサブビデオ、サブピクチャ、グラフィクスの画像データと一緒にHD DVDメディアに格納されている。すなわち、サブビデオ、サブピクチャ、グラフィクスの各々は、画像データとアルファデータとから構成されている。
【0027】
GPU120によって生成されたグラフィクス信号はRGB色空間を有している。グラフィクス信号の各ピクセルはデジタルRGBデータ(24bit)によって表現される。
【0028】
GPU120は、グラフィクス画面イメージを形成するグラフィクス信号を生成するだけでなく、その生成したグラフィクス信号に対応するアルファデータを外部に出力する機能も有している。
【0029】
具体的には、GPU120は、生成したグラフィクス信号をデジタルRGBビデオ信号として外部に出力すると共に、その生成したグラフィクス信号に対応するアルファデータも外部に出力する。アルファデータは、生成されたグラフィクス信号(RGBデータ)の各ピクセルの透明度(または不透明度)を示す係数(8bit)である。GPU120は、グラフィクス信号(24bitのデジタルRGBビデオ信号)とアルファデータ(8bit)とから構成されるアルファデータ付きのグラフィクス出力データ(32bitのRGBAデータ)を、ピクセル毎に出力する。アルファデータ付きのグラフィクス出力データ(32bitのRGBAデータ)は専用のグラフィクスバス20を介してブレンド処理部30に送られる。グラフィクスバス20は、GPU120とブレンド処理部30との間を接続する伝送線路である。
【0030】
このように、本HD DVDプレーヤにおいては、アルファデータ付きのグラフィクス出力データがグラフィクスバス20を介してGPU120からブレンド処理部30に直接的に転送される。これにより、PCIバス21等を介してアルファデータをVRAM131からブレンド処理部30を転送する必要が無くなり、アルファデータの転送によるPCIバス21のトラフィックの増大を防止することができる。
【0031】
もしPCIバス21等を介してアルファデータをVRAM131からブレンド処理部30に転送したならば、GPU120から出力されるグラフィクス信号とPCIバス21経由で転送されるアルファデータとをブレンド処理部30内で同期化しなければならず、そのためにブレンド処理部30の構成が複雑化される。本HD DVDプレーヤにおいては、GPU120はグラフィクス信号とアルファデータとをピクセル毎に同期して出力する。このため、グラフィクス信号とアルファデータとの同期化を容易に実現することができる。
【0032】
サウスブリッジ14は、PCIバス21上の各デバイスを制御する。また、サウスブリッジ14は、HD DVDドライブ18を制御するためのIDE(Integrated Drive Electronics)コントローラを内蔵している。さらに、サウスブリッジ14は、不揮発性メモリ15、およびUSBコントローラ17を制御する機能も有している。USBコントローラ17は、マウスデバイス171の制御を行う。ユーザは、マウスデバイス171を操作することにより、メニューの選択等を行うことができる。もちろん、マウスデバイス171の代わりに、リモコンユニット等を用いることもできる。
【0033】
HD DVDドライブ18は、HD DVD規格に対応するオーディオ・ビデオ(AV)コンテンツが格納されたHD DVDメディアのような蓄積メディアを駆動するためのドライブユニットである。
【0034】
ビデオコントローラ22は、PCIバス21に接続されている。このビデオコントローラ22は、ビデオデコーダ25とのインタフェースを実行するためのLSIである。ソフトウェアによってHD DVDストリームから分離されたメインビデオデータのストリーム(Video Stream)は、PCIバス21およびビデオコントローラ22を介して、ビデオデコーダ25に送られる。また、CPU11から出力されるデコード制御情報(Control)も、PCIバス21およびビデオコントローラ22を介して、ビデオデコーダ25に送られる。
【0035】
ビデオデコーダ25は、H.264/AVC規格に対応するデコーダであり、HD規格のメインビデオデータをデコードして例えば1920×1080ピクセルの解像度のビデオ画面イメージを形成するデジタルYUVビデオ信号を生成する。このデジタルYUVビデオ信号はブレンド処理部30に送られる。
【0036】
ブレンド処理部30は、GPU120およびビデオデコーダ25にそれぞれ結合されており、GPU120から出力されるグラフィクス出力データとビデオデコーダ25によってデコードされたメインビデオデータとを重ね合わせるためのブレンド処理を実行する。このブレンド処理においては、GPU120からグラフィクスデータ(RGB)と一緒に出力されるアルファデータに基づいて、グラフィクスデータを構成するデジタルRGBビデオ信号とメインビデオデータを構成するデジタルYUVビデオ信号とをピクセル単位で重ね合わせるためのブレンド処理(アルファブレンディング処理)が実行される。この場合、メインビデオデータは下側の画面イメージとして用いられ、グラフィクスデータはメインビデオデータ上に重ねられる上側の画面イメージとして用いられる。
【0037】
ブレンド処理によって得られる出力画像データは例えばデジタルYUVビデオ信号としてビデオエンコーダ40およびAVインタフェース(HDMI−TX)41にそれぞれ供給される。ビデオエンコーダ40は、ブレンド処理によって得られる出力画像データ(デジタルYUVビデオ信号)をコンポーネントビデオ信号またはS−ビデオ信号に変換して、TV受像機のような外部の表示装置(モニタ)に出力する。AVインタフェース(HDMI−TX)41は、デジタルYUVビデオ信号とデジタルオーディオ信号とを含むデジタル信号群を外部のHDMI機器に出力する。
【0038】
オーディオコントローラ23は、PCIバス21に接続されている。オーディオコントローラ23は、メインオーディオデコーダ31およびサブオーディオデコーダ32それぞれとのインタフェースを実行するためのLSIである。ソフトウェアによってHD DVDストリームから分離されたメインオーディオデータのストリームは、PCIバス21およびオーディオコントローラ23を介して、メインオーディオデコーダ31に送られる。また、ソフトウェアによってHD DVDストリームから分離されたサブオーディオデータのストリームは、PCIバス21およびオーディオコントローラ23を介して、サブオーディオデコーダ32に送られる。CPU11から出力されるデコード制御情報(Control)も、ビデオコントローラ22を介して、メインオーディオデコーダ31およびサブオーディオデコーダ32それぞれに供給される。
【0039】
メインオーディオデコーダ31は、メインオーディオデータをデコードしてI2S(Inter-IC Sound)形式のデジタルオーディオ信号を生成する。このデジタルオーディオ信号は、オーディオミキサ(Audio Mix)33に送られる。メインオーディオデータは、予め決められた複数種の圧縮符号化方式(つまり複数種のオーディオコーデック)の中の任意の一つを用いて圧縮符号化されている。このため、メインオーディオデコーダ31は、複数種の圧縮符号化方式それぞれに対応するデコード機能を有している。すなわち、メインオーディオデコーダ31は、複数種の圧縮符号化方式の内の任意の一つを用いて圧縮符号化されたメインオーディオデータをデコードしてデジタルオーディオ信号を生成する。メインオーディオデータに対応する圧縮符号化方式の種類は、例えば、CPU11からのデコード制御情報によってメインオーディオデコーダ31に通知される。
【0040】
サブオーディオデコーダ32は、サブオーディオデータをデコードしてI2S(Inter-IC Sound)形式のデジタルオーディオ信号を生成する。このデジタルオーディオ信号は、オーディオミキサ(Audio Mix)33に送られる。サブオーディオデータも、予め決められた上述の複数種の圧縮符号化方式(つまり複数種のオーディオコーデック)の中の任意の一つを用いて圧縮符号化されている。このため、サブオーディオデコーダ32も、複数種の圧縮符号化方式それぞれに対応するデコード機能を有している。すなわち、サブオーディオデコーダ32は、複数種の圧縮符号化方式の内の任意の一つを用いて圧縮符号化されたサブオーディオデータをデコードしてデジタルオーディオ信号を生成する。サブオーディオデータに対応する圧縮符号化方式の種類は、例えば、CPU11からのデコード制御情報によってサブオーディオデコーダ32に通知される。
【0041】
オーディオミキサ(Audio Mix)33は、メインオーディオデコーダ31によってデコードされたメインオーディオデータとサブオーディオデコーダ32によってデコードされたサブオーディオデータとをミックスするミキシング処理を実行してデジタルオーディオ出力信号を生成する。このデジタルオーディオ出力信号はAVインタフェース(HDMI−TX)41に送出されるとともに、アナログオーディオ出力信号に変換された後に外部に出力される。
【0042】
次に、図2を参照して、CPU11によって実行されるプレーヤアプリケーション150の機能構成を説明する。
【0043】
プレーヤアプリケーション150は、デマルチプレクス(Demux)モジュール、デコード制御モジュール、サブピクチャ(Sub-Picture)デコードモジュール、サブビデオ(Sub-Video)デコードモジュール、グラフィクスデコードモジュール等を備えている。
【0044】
Demuxモジュールは、HD DVDドライブ18から読み出されたストリームから、メインビデオデータ、メインオーディオデータ、サブピクチャデータ、サブビデオデータ、サブオーディオデータを分離するデマルチプレクス処理を実行するソフトウェアである。デコード制御モジュールは、ナビゲーションデータに基づいて、メインビデオデータ、メインオーディオデータ、サブピクチャデータ、サブビデオデータ、サブオーディオデータ、グラフィクスデータそれぞれのデコード処理を制御するソフトウェアである。
【0045】
サブピクチャ(Sub-Picture)デコードモジュールは、サブピクチャデータをデコードする。サブビデオ(Sub-Video)デコードモジュールは、サブビデオデータをデコードする。グラフィクスデコードモジュールは、グラフィクスデータ(Advanced Elements)をデコードする。
【0046】
グラフィクスドライバは、GPU120を制御するためのソフトウェアである。デコードされたサブピクチャデータ、デコードされたサブビデオデータ、およびデコードされたグラフィクスデータは、グラフィクスドライバを介してGPU120に送られる。また、グラフィクスドライバは、GPU120に対して各種描画命令を発行する。
【0047】
PCIストリーム転送ドライバは、PCIバス21を介してストリームを転送するためのソフトウェアである。メインビデオデータ、メインオーディオデータ、およびサブオーディオデータは、PCIストリーム転送ドライバによって、PCIバス21を介してビデオデコーダ25、メインオーディオデコーダ31、およびサブオーディオデコーダ32にそれぞれ転送される。
【0048】
次に、図3を参照して、CPU11によって実行されるプレーヤアプリケーション150によって実現されるソフトウェアデコーダの機能構成を説明する。
【0049】
ソフトウェアデコーダは、図示のように、データ読み取り部101、暗号化解除処理部102、デマルチプレクス(Demux)部103、サブピクチャデコーダ104、サブビデオデコーダ105、グラフィクスデコーダ106、およびナビゲーション制御部201等を備えている。
【0050】
HD DVDドライブ18のHD DVDメディアに格納されたコンテント(メインビデオデータ、サブビデオデータ、サブピクチャデータ、メインオーディオデータ、サブオーディオデータ、グラフィクスデータ、ナビゲーションデータ)は、データ読み取り部101によってHD DVDドライブ18から読み出される。メインビデオデータ、サブビデオデータ、サブピクチャデータ、メインオーディオデータ、サブオーディオデータ、グラフィクスデータ、ナビゲーションデータはそれぞれ暗号化されている。メインビデオデータ、サブビデオデータ、サブピクチャデータ、メインオーディオデータ、サブオーディオデータは、HD DVDストリームに多重化されている。データ読み取り部101によってHD DVDメディアから読み出されたメインビデオデータ、サブビデオデータ、サブピクチャデータ、メインオーディオデータ、サブオーディオデータ、グラフィクスデータ、ナビゲーションデータはそれぞれコンテント暗号化解除処理部102に入力される。暗号化解除処理部102は各データの暗号化を解除するための処理を実行する。暗号化が解除されたナビゲーションデータはナビゲーション制御部201に送られる。また、暗号化が解除されたHD DVDストリームはデマルチプレクス(Demux)部103に送られる。
【0051】
ナビゲーション制御部201はナビゲーションデータに含まれるスクリプト(XML)を解析して、グラフィクスデータ(Advanced Elements)の再生を制御する。グラフィクスデータ(Advanced Elements)はグラフィクスデコーダ106に送られる。グラフィクスデコーダ106はプレーヤアプリケーション150のグラフィクスデコードモジュールから構成されており、グラフィクスデータ(Advanced Elements)をデコードする。
【0052】
また、ナビゲーション制御部201は、ユーザによるマウスデバイス171の操作に応じてカーソルを移動する処理、およびメニュー選択に応答して効果音を再生するため処理等も実行する。前述のドローウィング機能によるイメージの描画は、ユーザによるマウスデバイス171の操作をナビゲーション制御部201が取得し、その軌跡、つまりカーソルの軌跡からなる絵のグラフィックスデータをGPU120に生成させた後、グラフィクスデコーダ106でデコードされるナビゲーションデータによるグラフィックスデータと同等のグラフィクスデータとしてGPU120に再投入することで実現される。
【0053】
このDemux103は、プレーヤアプリケーション150のDemuxモジュールによって実現されている。Demux103は、HD DVDストリームからメインビデオデータ、メインオーディオデータ、サブオーディオデータ、サブピクチャデータ、サブビデオデータ等を分離する。
【0054】
メインビデオデータは、PCIバス21を介してビデオデコーダ25に送られる。メインビデオデータはビデオデコーダ25によってデコードされる。デコードされたメインビデオデータはHD規格の例えば1920×1080ピクセルの解像度を有し、デジタルYUVビデオ信号としてブレンド処理部30に送られる。
【0055】
メインオーディオデータは、PCIバス21を介してメインオーディオデコーダ31に送られる。メインオーディオデータはメインオーディオデコーダ31によってデコードされる。デコードされたメインオーディオデータは、I2S形式のデジタルオーディオ信号としてオーディオミキサ33に送られる。
【0056】
サブオーディオデータは、PCIバス21を介してサブオーディオデコーダ32に送られる。サブオーディオデータはサブオーディオデコーダ32によってデコードされる。デコードされたサブオーディオデータは、I2S形式のデジタルオーディオ信号としてオーディオミキサ33に送られる。
【0057】
サブピクチャデータおよびサブビデオデータは、それぞれサブピクチャデコーダ104およびサブビデオデコーダ105にそれぞれ送られる。これらサブピクチャデコーダ104およびサブビデオデコーダ105は、サブピクチャデータおよびサブビデオデータをそれぞれデコードする。これらサブピクチャデコーダ104およびサブビデオデコーダ105は、それぞれプレーヤアプリケーション150のサブピクチャデコードモジュールおよびサブビデオデコードモジュールによって実現されている。
【0058】
サブピクチャデコーダ104、サブビデオデコーダ105、およびグラフィクスデコーダ106によってそれぞれデコードされたサブピクチャデータ、サブビデオデータ、およびグラフィクスデータは、CPU11によってVRAM131に書き込まれる。また、VRAM131にはカーソルイメージに対応するカーソルデータもCPU11によって書き込まれる。サブピクチャデータ、サブビデオデータ、グラフィクスデータ、およびカーソルデータの各々は、ピクセル毎にRGBデータとアルファデータ(A)とを含む。
【0059】
GPU120は、CPU11によってVRAM131に書き込まれた、サブビデオデータ、グラフィクスデータ、サブピクチャデータ、およびカーソルデータから、例えば1920×1080ピクセルのグラフィクス画面イメージを形成するグラフィクス出力データを生成する。この場合、サブビデオデータ、グラフィクスデータ、サブピクチャデータ、およびカーソルデータは、GPU120のミキサ(MIX)部121によって実行されるアルファブレンディング処理によってピクセル毎に重ね合わされる。
【0060】
このアルファブレンド処理においては、VRAM131に書き込まれた、サブビデオデータ、グラフィクスデータ、サブピクチャデータ、およびカーソルデータそれぞれに対応するアルファデータが用いられる。すなわち、VRAM131に書き込まれたサブビデオデータ、グラフィクスデータ、サブピクチャデータ、およびカーソルデータの各々は、画像データとアルファデータとから構成されている。ミキサ(MIX)部121は、サブビデオデータ、グラフィクスデータ、サブピクチャデータ、およびカーソルデータそれぞれに対応するアルファデータと、CPU11によって指定される、それらサブビデオデータ、グラフィクスデータ、サブピクチャデータ、およびカーソルデータそれぞれの位置情報とに基づいてブレンド処理を実行することにより、例えば1920×1080ピクセルの背景画像上にサブビデオデータ、グラフィクスデータ、サブピクチャデータ、およびカーソルデータが重ね合わされたグラフィクス画面イメージを生成する。
【0061】
背景画像の各ピクセルに対応するアルファ値は、当該ピクセルが透明であることを示す値つまり0である。グラフィクス画面イメージの内、画像データ同士が重ね合わされた領域については、その領域に対応する新たなアルファデータがミキサ(MIX)部121によって算出される。
【0062】
このようにして、GPU120は、サブビデオデータ、グラフィクスデータ、サブピクチャデータ、およびカーソルデータから、1920×1080ピクセルのグラフィクス画面イメージを形成するグラフィクス出力データ(RGB)およびそのグラフィクスデータに対応するアルファデータを生成する。なお、サブビデオデータ、グラフィクスデータ、サブピクチャデータ、およびカーソルデータのいずれか一つの画像のみが表示されるシーンについては、1920×1080ピクセルの背景画像上に当該画像(例えば720×480)のみが配置されたグラフィクス画面イメージに対応するグラフィクスデータおよびそのグラフィクスデータに対応するアルファデータが生成される。
【0063】
GPU120によって生成されたグラフィクスデータ(RGB)およびアルファデータは、グラフィクスバス20を介してRGBAデータとしてブレンド処理部30に送られる。
【0064】
次に、図4を参照して、ブレンド処理部30によって実行されるブレンド処理(アルファブレンディング処理)を説明する。
【0065】
アルファブレンディング処理は、グラフィクスデータ(RGB)に付随するアルファデータ(A)に基づいて、グラフィクスデータとメインビデオデータとをピクセル単位で重ね合せるブレンド処理である。この場合、グラフィクスデータ(RGB)はオーバーサーフェースとして用いられ、ビデオデータ上に重ね合される。GPU120から出力されるグラフィクスデータの解像度は、ビデオデコーダ25から出力されるメインビデオデータの解像度と同一である。
【0066】
いま、1920×1080ピクセルの解像度を持つメインビデオデータ(Video)が画像データCとしてブレンド処理部30に入力され、1920×1080ピクセルの解像度を持つグラフィクスデータが画像データGとしてブレンド処理部30に入力された場合を想定する。ブレンド処理部30は、1920×1080ピクセルの解像度を持つアルファデータ(A)に基づき、画像データC上に画像データGをピクセル単位で重ね合わせるための演算を実行する。この演算は、以下の式(1)によって実行される。
【0067】
V=α×G+(1−α)C …(1)
ここで、Vはアルファブレンディング処理によって得られる出力画像データの各ピクセルの色、αはグラフィクスデータGの各ピクセルに対応するアルファ値である。
【0068】
次に、図5を参照して、GPU120のMIX部121によって実行されるブレンド処理(アルファブレンディング処理)を説明する。
【0069】
ここでは、VRAM131に書き込まれたSub-PictureデータおよびSub-Videoデータから1920×1080ピクセルの解像度を持つグラフィクスデータを生成する場合を想定する。Sub-PictureデータおよびSub-Videoデータの各々は、例えば720×480ピクセルの解像度を持つ。この場合、Sub-PictureデータおよびSub-Videoデータの各々には、例えば720×480ピクセルの解像度のアルファデータも付随する。
【0070】
例えば、Sub-Pictureデータに対応するイメージはオーバーサーフェースとして使用され、Sub-Videoデータに対応するイメージはアンダーフェースとして使用される。
【0071】
Sub-Pictureデータに対応するイメージとSub-Videoデータに対応するイメージとが重なった領域の各ピクセルの色は、以下の式(2)によって求められる。
【0072】
G=Go×αo+Gu(1−αo)αu …(2)
ここで、Gは重なった領域の各ピクセルの色、Goはオーバーサーフェースとして使用されるSub-Pictureデータの各ピクセルの色、αoはオーバーサーフェースとして使用されるSub-Pictureデータの各ピクセルのアルファ値、Guはアンダーフェースとして使用されるSub-Videoデータの各ピクセルの色である。
【0073】
また、Sub-Pictureデータに対応するイメージとSub-Videoデータに対応するイメージとが重なった領域の各ピクセルのアルファ値は、以下の式(3)によって求められる。
【0074】
α=αo+αu×(1−αo) …(3)
ここで、αは重なった領域の各ピクセルのアルファ値、αuはアンダーサーフェースとして使用されるSub-Videoデータの各ピクセルのアルファ値である。
【0075】
このように、GPU120のMIX部121は、Sub-Pictureデータに対応するアルファデータおよびSub-Videoデータに対応するアルファデータの内、オーバーサーフェースとして使用される方のアルファデータを用いて、Sub-PictureデータとSub-Videoデータとを重ね合わせ、これにより1920×1080ピクセルの画面イメージを形成するグラフィクスデータを生成する。さらに、GPU120のMIX部121は、Sub-Pictureデータに対応するアルファデータとSub-Videoデータに対応するアルファデータとから、1920×1080ピクセルの画面イメージを形成するグラフィクスデータの各ピクセルのアルファ値を算出する。
【0076】
具体的には、GPU120のMIX部121は、1920×1080ピクセルのサーフェース(全ピクセルの色=黒、全ピクセルのアルファ値=0)と、720×480ピクセルのSub-Videoデータのサーフェースと、720×480ピクセルのSub-Pictureデータのサーフェースとを重ね合わせるブレンド処理を実行することにより、1920×1080ピクセルの画面イメージを形成するグラフィクスデータと1920×1080ピクセルのアルファデータとを算出する。1920×1080ピクセルのサーフェースが最も下側のサーフェースとして使用され、Sub-Videoデータのサーフェースが2番目に下側のサーフェースとして使用され、Sub-Pictureデータのサーフェースが最も上側のサーフェースとして使用される。
【0077】
1920×1080ピクセルの画面イメージの内、Sub-PictureデータおよびSub-Videoデータのどちらも存在しない領域の各ピクセルの色は黒となる。また、Sub-Pictureデータのみが存在する領域内の各ピクセルの色は、Sub-Pictureデータの対応する各ピクセルの本来の色と同じとなる。同様に、Sub-Videoデータのみが存在する領域内の各ピクセルの色は、Sub-Videoデータの対応する各ピクセルの本来の色と同じとなる。
【0078】
また1920×1080ピクセルの画面イメージの内、Sub-PictureデータおよびSub-Videoデータのどらも存在しない領域の各ピクセルに対応するアルファ値は零となる。Sub-Pictureデータのみが存在する領域内の各ピクセルのアルファ値は、Sub-Pictureデータの対応する各ピクセルの本来のアルファ値と同じとなる。同様に、Sub-Videoデータのみが存在する領域内の各ピクセルのアルファ値は、Sub-Videoデータの対応する各ピクセルの本来のアルファ値と同じとなる。
【0079】
図6には、1920×1080ピクセルのメインビデオデータ上に720×480ピクセルのサブビデオデータが重ねて表示される様子が示されている。
【0080】
図6においては、グラフィクスデータは、1920×1080ピクセルのサーフェース(全ピクセルの色=黒、全ピクセルのアルファ値=0)と、720×480ピクセルのSub-Videoデータのサーフェースとをピクセル毎に重ね合わせるブレンド処理によって生成される。
【0081】
前述したように、表示装置に出力される出力画像データ(Video+Graphics)は、グラフィクスデータとメインビデオデータとをブレンドすることによって生成される。
【0082】
1920×1080ピクセルのグラフィクスデータの内、720×480ピクセルのサブビデオデータが存在しない領域の各ピクセルのアルファ値は零である。このため、720×480ピクセルのサブビデオデータが存在しない領域は透明となるので、その領域にはメインビデオデータが100パーセントの不透明度で表示される。
【0083】
720×480ピクセルのサブビデオデータの各ピクセルは、サブビデオデータに対応するアルファデータで指定される透明度でメインビデオデータ上に表示される。例えば、アルファ値=1のサブビデオデータのピクセルは100パーセントの不透明度で表示され、当該ピクセル位置に対応するメインビデオデータのピクセルは表示されない。
【0084】
また、図7に示すように、720×480ピクセルの解像度に縮小されたメインビデオデータを、1920×1080ピクセルの解像度に拡大されたサブビデオデータ上の一部の領域に表示することもできる。
【0085】
図7の表示形態は、GPU120が有するスケーリング機能およびビデオデコーダ25が有するスケーリング機能を用いて実現される。
【0086】
具体的には、GPU120は、CPU11からの指示に従って、サブビデオデータの解像度(画像サイズ)が1920×1080ピクセルになるまでサブビデオデータの解像度を段階的に拡大するスケーリング処理を実行する。このスケーリング処理は、ピクセル補間を用いて実行される。サブビデオデータの解像度が大きくなるに従い、1920×1080ピクセルのグラフィクスデータの内、720×480ピクセルのサブビデオデータが存在しない領域(アルファ値=0の領域)は徐々に小さくなる。これにより、メインビデオデータ上に重ねて表示されるサブビデオデータのサイズは徐々に大きくなり、逆にアルファ値=0の領域は徐々小さくなる。サブビデオデータの解像度(画像サイズ)が1920×1080ピクセルになった場合、GPU120は、例えば、720×480ピクセルのサーフェース(全ピクセルの色=黒、全ピクセルのアルファ値=0)を1920×1080ピクセルのサブビデオデータ上にピクセル毎に重ね合わせるブレンド処理を実行して、1920×1080ピクセルのサブビデオデータ上にアルファ値=0の720×480ピクセルの領域を配置する。
【0087】
一方、ビデオデコーダ25は、CPU11からの指示に従って、メインビデオデータの解像度を720×480ピクセルに縮小するスケーリング処理を実行する。
【0088】
720×480ピクセルに縮小されたメインビデオデータは、1920×1080ピクセルのサブビデオデータ上に配置された、720×480ピクセルのアルファ値=0の領域に表示される。すなわち、GPU120から出力されるアルファデータは、メインビデオデータが表示される領域を制限するためのマスクとしても使用することができる。
【0089】
このように、GPU120から出力されるアルファデータはソフトウェアによって自由に制御することができるので、グラフィクスデータを効果的にメインビデオデータ上に重ねて表示することができ、これによりインタラクティブ性の高い映像表現を容易に実現することができる。さらに、アルファデータはグラフィクスデータと一緒にGPU120からブレンド処理部30に自動的に転送されるので、ソフトウェアは、ブレンド処理部30へのアルファデータの転送を意識する必要はない。
【0090】
図8は、本HD DVDプレーヤによって再生されるHD規格のAVコンテンツ中の複数の画像データそれぞれが、前述のように動作するGPU120とブレンド処理部30とによってどのような手順で重ね合わされるのかを示す概念図である。
【0091】
HD規格では、レイヤ1〜レイヤ5の5つのレイヤが定義されており、各レイヤに前述のカーソル、グラフィクス、サブピクチャ、サブビデオ、メインビデオがそれぞれ割り当てられている。そして、本HDD DVDプレーヤでは、図8に示すように、このレイヤ1〜レイヤ5のうち、レイヤ1〜レイヤ4の4つの画像a1〜画像a4の重ね合わせを前段処理としてGPU120のミキサ部121で実行し、このGPU120の出力画像とレイヤ5の画像a5との重ね合わせを後段処理としてブレンド処理部30で実行することにより、目的の画像a6を作成している。
【0092】
このように、HD規格で定義されるレイヤ1〜レイヤ5の5つの画像データの重ね合わせを2段階に分離させることで、本HD DVDプレーヤは、第1に、適切な負荷分散を図っている。また、レイヤ5のメインビデオは高精細映像であり、30フレーム/秒の各フレームについて更新を欠かせない。そのために、このメインビデオを扱うブレンド処理部30での重ね合わせは30回/秒必要となる。これに対して、レイヤ1〜レイヤ4のカーソル、グラフィクス、サブピクチャ、サブビデオは、メインビデオ程の高い画質は要求されていないので、GPU120のミキサ部121での重ね合わせは例えば10回/秒で良い。仮に、このレイヤ1〜レイヤ4のカーソル、グラフィクス、サブピクチャ、サブビデオの重ね合わせをレイヤ5のメインビデオとともにブレンド処理部30で実行したならば、レイヤ1〜レイヤ4の各レイヤについても30回/秒、つまり20回/秒も必要以上に重ね合わせを実行することになる。つまり、本HD DVDプレーヤは、第2に、適切な効率化を図っている。
【0093】
レイヤ1〜レイヤ4のカーソル、グラフィクス、サブピクチャ、サブビデオは、プレーヤアプリケーション150からGPU120に供給されるが、このGPU120への各画像データの供給のために、プレーヤアプリケーション150は、図8に示すように、前述のサブピクチャデコーダ104、サブビデオデコーダ105、グラフィクスデコーダ(エレメントデコーダ)106のほか、カーソルドローウィングマネージャ107およびサーフェースマネジメント/タイミングコントローラ108を有している。
【0094】
カーソルドローウィングマネージャ107は、ナビゲーション制御部201の一機能として実現され、ユーザによるマウスデバイス171の操作に応じてカーソルを移動させるためのカーソル描画制御を実行する。一方、サーフェースマネジメント/タイミングコントローラ108は、サブピクチャデコーダ104によってデコードされたサブピクチャデータの画像を適時に表示させるためのタイミング制御を実行する。
【0095】
なお、図中のCursor Controlは、マウスデバイス171の操作に応じてUSBコントローラ17が発行するカーソル移動用の制御データである。ECMA Scriptは、点、線、図形等の描画を指示するdrawingAPIが記述されたスクリプトである。iHD Markupは、様々なAdvanced Elementを適時に表示させるためにマークアップ言語で記述されたテキストデータである。
【0096】
また、GPU120は、前述のミキサ部121のほか、スケーリング処理部122、ルーマキー処理部123および3Dグラフィクスエンジン124を有している。
【0097】
スケーリング処理部122は、図7の説明で触れたスケーリング処理を実行する。ルーマキー処理部123は、輝度値がしきい値以下のピクセルのアルファ値を0にすることによって画像中の背景(黒)を取り除くルーマキー処理を実行する。3Dグラフィクスエンジン124は、前述のドローウィング機能のための(カーソルの軌跡からなる絵の)イメージ生成を含むグラフィクスデータの生成処理を実行する。
【0098】
本HD DVDプレーヤでは、図8に示すように、レイヤ2〜レイヤ4の画像a2〜画像a4についてスケーリング処理を行い、レイヤ4の画像a4についてはさらにルーマキー処理を行っている。そして、本HD DVDプレーヤでは、このスケーリング処理やルーマキー処理をそれぞれ単独でGPU120に実行させるのではなく、(ミキサ部121による)ブレンド処理を実行させる際、このブレンド処理と並行して実行させる。プレーヤアプリケーション150の立場から言えば、このスケーリング処理やルーマキー処理をブレンド処理と同時に依頼する。仮に、このスケーリング処理やルーマキー処理をそれぞれ単独でGPU120に実行させたならば、スケーリング処理後の画像やルーマキー処理後の画像を一時的に格納する中間バッファが必要となり、また、この中間バッファとGPU120との間のデータ転送が必要となる。これに対して、GPU120内において、スケーリング処理部122の出力が随時にルーマキー処理部123に入力され、さらにルーマキー処理部123の出力が随時にミキサ部121に入力されていくといった、スケーリング処理部122、ルーマキー処理部123およびミキサ部121を協働させたいわゆるパイプライン処理を行う本HD DVDプレーヤでは、中間バッファが不要であり、中間バッファとGPU120との間のデータ転送も生じさせない。つまり、本HD DVDプレーヤは、この点でも、適切な効率化を図っている。
【0099】
なお、図8に示すPixelバッファマネージャ153は、3Dグラフィクスエンジン124を使ったマウス操作による絵の描画やエレメントデコーダ106による操作ガイダンス等のオブジェクトの描画のための作業領域として使用されるPixelバッファの割り当て管理を実行するミドルウェアである。ハードウェアであるPixelバッファをソフトウェアで使用するために用意されるドライバによる割り当て管理をより最適化するために、Pixelバッファマネージャ153は、このドライバとPixelバッファを用いる上位システムとの間に介在して設けられる。
【0100】
以上のように、本HD DVDプレーヤにおいては、HD規格で定義されるレイヤ1〜レイヤ5の5つの画像データの重ね合わせを2段階に分離させることで、適切な負荷分散および効率化を図っており、また、スケーリング処理やルーマキー処理をブレンド処理と並行して実行することで、さらなる効率化を図っている。
【0101】
以下では、上述した各種の画像データのうち、サブビデオデータに関して説明する。
【0102】
図9は、GPU120の機能を用いて民生機並みの映像品質の再生を実現する制御に関わる構成部分を示すブロック図である。
【0103】
グラフィクスマネージャ50は、GPU120を通じて、カーソル、グラフィクス、サブピクチャ、サブビデオといった各レイヤの画像データに対してブレンド処理を含むグラフィクス処理を行ってグラフィクス画面イメージを形成するための制御を行うものである。
【0104】
サブビデオデコーダ51は、図8中のデコーダ105に相当するものであり、供給されてくるサブビデオデータに対してデコード処理を行う。ビデオポストプロセシングマネージャ52は、サブビデオデコーダ51とグラフィクスマネージャ50との間に設けられ、デコード処理されたサブビデオデータに対して必要な後処理を行ってから出力する。フィールドコンポーザ53は、ビデオポストプロセシングマネージャ52の中に設けられ、グラフィクスマネージャ50を通じて後述するフレームバッファへ供給すべきサブビデオデータに関するフィールド組立処理などを行うものである。以下では、このフィールドコンポーザ53により実現される処理について詳述する。
【0105】
図10は、フレームバッファを用いたダブルバッファ方式を説明するための図である。
【0106】
ダブルバッファを構成するフレームバッファ(A)およびフレームバッファ(B)は、GPU120により生成されるグラフィクスデータを交互に記憶して出力するものであり、グラフィクスマネージャ50により制御される。グラフィクスマネージャ50は、例えば、サブビデオデータのフレームバッファ(A)へのデータ書込みを止めてフレームバッファ(B)への書込みを実行する第1の状態と、サブビデオデータのフレームバッファ(B)へのデータ書込みを止めてフレームバッファ(A)への書込みを実行する第2の状態とを、例えば1/30秒毎に切り替える。
【0107】
図11は、1つのフレームバッファに記憶されるデータの構成を説明するための図である。
【0108】
フレームバッファは、1920×1080ピクセルの画像サイズを有し、インタレース方式の映像再生に適合するグラフィクスデータとプログレッシブ方式の映像再生に適合するグラフィクスデータのいずれの記憶にも使用可能である。インタレース方式に対応させるためには、図11に示される偶数ラインのデータをインタレース方式用のトップフィールドのデータとして図12のようにまとめて書き込むと共に、図11に示される奇数ラインのデータをインタレース方式用のボトムフィールドのデータとして図12のようにまとめて書き込む必要がある。図12のようなデータ書き込みにより、インタレース方式に基づくグラフィクス画面イメージを形成することが可能となる。この場合、トップフィールドのデータは1/60秒で読み出され、ボトムフィールドのデータも1/60秒で読み出される。これにより、1/30秒で1フレーム分の画像が生成されることになる。
【0109】
図13は、フィールドコンポーザ53により実現される処理を説明するための図である。
【0110】
S/Wデコーダ61は、ソフトウェアで実現されるデコーダであり、例えば、供給されてくる24フレーム/秒のプログレッシブ方式の映像データの中の偶数ラインのデータと奇数ラインのデータとを複数のバッファに交互に記憶させる制御を行うと共にデータ送出の停止および再開の制御を行うことにより、プルダウンされた30フレーム/秒の映像データを生成する。
【0111】
バッファa,b,c,dは、S/Wデコーダ61により制御され、プルダウンされた映像データを生成するために使用される。なお、バッファdは必ずしも必要とされるものではない。
【0112】
スケーリング処理部62は、フィールド組立処理部63によるフィールド組立処理の前段処理として、S/Wデコーダ61の制御により複数のバッファから生成された映像データの解像度を拡大するスケーリング処理(例えば、720×480ピクセルから1920×1080ピクセルへ拡大する処理)を行う。
【0113】
フィールド組立処理部63は、スケーリング処理部62によりスケーリング処理された映像データに基づき、フレームバッファ64の画像サイズに適合する解像度のグラフィクスデータのフィールド組立処理を行う。すなわち、このフィールド組立処理部63は、インタレース方式の映像再生に適合するグラフィクスデータを形成する。
【0114】
フレームバッファ64は、フィールド組立処理部63により形成されたグラフィクスデータを記憶する。このグラフィクスデータは、図12に示されるようなデータ構成を有しており、インタレース方式の映像再生を行うのに適する。
【0115】
図14は、図13中に示されるスケーリング処理部62の内部構成の一例を示す図である。
【0116】
スケーリング処理部62は、トップデータスケーリング処理部71およびボトムデータスケーリング処理部72を有する。トップデータスケーリング処理部71は、トップフィールド用のデータを入力してスケーリング処理を行い、スケーリング処理後のデータを次段のボトムデータスケーリング処理部72へ送り出す。ボトムデータスケーリング処理部72は、ボトムフィールド用のデータを入力してスケーリング処理を行い、このスケーリング処理後のデータと、前段から送られてくるスケーリング処理後のトップフィールド用のデータとを合わせ、これをサブビデオプレーンとして出力する。
【0117】
図15は、図13中に示されるS/Wデコーダ61がバッファa,b,cを制御する手順を説明するための図である。
【0118】
S/Wデコーダ61は、1フレーム目の生成において、バッファaおよびバッファbの各データがフレームバッファ側へ送られるように制御する。2フレーム目の生成においても同様に、バッファaおよびバッファbの各データがフレームバッファ側へ送られるように制御する。3フレーム目の生成においては、バッファcおよびバッファbの各データがフレームバッファ側へ送られるように制御する。4フレーム目の生成においても同様に、バッファcおよびバッファbの各データがフレームバッファ側へ送られるように制御する。S/Wデコーダ61は、4フレーム目の処理が終わった時点で動作を一旦停止させた後、5フレーム目の生成において、バッファaおよびバッファbの各データがフレームバッファ側へ送られるように制御する。以降、同じ手順が繰り返されることになる。
【0119】
図16は、図15に示される制御によりプログレッシブ画像がインタレース画像にプルダウン変換される様子を示す図である。
【0120】
例えば、1/24秒毎にプログレッシブ画像A,B,C,Dが順次送られてくるものとする。この場合、これら4枚のフレームに基づき、1/30秒毎に5枚のインタレース画像が生成される。
【0121】
1フレーム目のインタレース画像は、画像Aのトップフィールドのデータと画像Aのボトムフィールドのデータとを合わせた画像となる。2フレーム目のインタレース画像は、画像Bのトップフィールドのデータと画像Bのボトムフィールドのデータとを合わせた画像となる。3フレーム目のインタレース画像は、画像Bのトップフィールドのデータと画像Cのボトムフィールドのデータとを合わせた画像となる。4フレーム目のインタレース画像は、画像Cのトップフィールドのデータと画像Dのボトムフィールドのデータとを合わせた画像となる。1フレーム目のインタレース画像は、画像Dのトップフィールドのデータと画像Dのボトムフィールドのデータとを合わせた画像となる。
【0122】
図17は、スケーリング処理における具体的な手法の一例を示す図である。
【0123】
920×1080ピクセルのデータと720×480ピクセルのデータとの間のスケーリング処理を行う場合、例えば図17に示されるようなデータ割り当てを行う。すなわち、トップフィールドのデータとボトムデータとに基づいて1つのフィールドを形成する変換処理と、このような変換処理を行わない処理とを適宜組み合わせて全体の画像を形成することにより、所望のスケーリング処理を実現することができる。
【0124】
以上のように本実施形態によれば、PCなどの情報処理装置においても、GPUなどの機能を用いて民生機並みの映像品質の映像をインタレース方式で再生することが可能となる。
【0125】
本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【0126】
【図1】本発明の一実施形態に係る再生装置の構成を示すブロック図。
【図2】図1の再生装置で用いられるプレーヤアプリケーションの構成を示す図。
【図3】図2のプレーヤアプリケーションによって実現されるソフトウェアデコーダの機能構成を説明するための図。
【図4】図1の再生装置に設けられたブレンド処理部によって実行されるブレンド処理を説明するための図。
【図5】図1の再生装置に設けられたGPUによって実行されるブレンド処理を説明するための図。
【図6】図1の再生装置においてメインビデオデータ上にサブビデオデータが重ねて表示される様子を示す図。
【図7】図1の再生装置においてサブビデオデータ上の一部の領域にメインビデオデータが表示される様子を示す図。
【図8】図1の再生装置においてHD規格のAVコンテンツ中の複数の画像データそれぞれがどのような手順で重ね合わされるのかを示す概念図。
【図9】GPUの機能を用いて民生機並みの映像品質の再生を実現する制御に関わる構成部分を示すブロック図。
【図10】フレームバッファを用いたダブルバッファ方式を説明するための図。
【図11】1つのフレームバッファに記憶されるデータの構成を説明するための図。
【図12】図11に示されるデータをインタレース方式用のデータとして書き込む方法を説明するための図。
【図13】フィールドコンポーザにより実現される処理を説明するための図。
【図14】図13中に示されるスケーリング処理部の内部構成の一例を示す図。
【図15】図13中に示されるS/Wデコーダがバッファを制御する手順を説明するための図。
【図16】図15に示される制御によりプログレッシブ画像がインタレース画像にプルダウン変換される様子を示す図。
【図17】スケーリング処理における具体的な手法の一例を示す図。
【符号の説明】
【0127】
11…CPU、18…HD DVDドライブ、30…ブレンド処理部、50…グラフィクスマネージャ、51…サブビデオデコーダ、52…ビデオポストプロセシングマネージャ、53…フィールドコンポーザ、61…S/Wデコーダ、62…スケーリング処理部、63…フィールド組立処理部、64…フレームバッファ、101…データ読取り部、102…暗号化解除処理部、103…デマルチプレクス部、104…サブピクチャデコーダ、105…サブビデオデコーダ、106…グラフィクスデコーダ、120…GPU、121…ミキサ部、122…スケーリング処理部、123…ルーマキー処理部、150…プレーヤアプリケーション、201…ナビゲーション制御部。
【特許請求の範囲】
【請求項1】
グラフィクスデータを記憶することが可能なフレームバッファと、
プログレッシブ方式の映像データの中の偶数ラインのデータと奇数ラインのデータとを複数のバッファに交互に記憶させる制御を行うと共にデータ送出の停止および再開の制御を行うことにより、プルダウンされた映像データを生成する制御手段と、
前記制御手段により生成された映像データに基づき、前記フレームバッファの画像サイズに適合する解像度のグラフィクスデータのフィールド組立処理を行うフィールド組立処理手段と、
を具備することを特徴とする情報処理装置。
【請求項2】
前記フィールド組立処理手段によるフィールド組立処理の前段処理として、前記制御手段により生成された画像データの解像度を拡大するスケーリング処理を行うスケーリング処理手段を更に具備することを特徴とする請求項1記載の情報処理装置。
【請求項3】
前記フィールド組立処理手段は、インタレース方式の映像再生に適合するグラフィクスデータを形成することを特徴とする請求項1記載の情報処理装置。
【請求項4】
前記制御手段は、ソフトウェアのデコーダを用いて実現されることを特徴とする請求項1記載の情報処理装置。
【請求項5】
前記フレームバッファは、インタレース方式の映像再生に適合するグラフィクスデータを記憶することを特徴とする請求項1記載の情報処理装置。
【請求項6】
前記フレームバッファは、インタレース方式の映像再生に適合するグラフィクスデータとプログレッシブ方式の映像再生に適合するグラフィクスデータのいずれの記憶にも使用可能であることを特徴とする請求項1記載の情報処理装置。
【請求項7】
プログレッシブ方式の映像データの中の偶数ラインのデータと奇数ラインのデータとを複数のバッファに交互に記憶させる制御を行うと共にデータ送出の停止および再開の制御を行うことにより、プルダウンされた映像データを生成し、
前記生成された映像データに基づき、グラフィクスデータを記憶することが可能なフレームバッファの画像サイズに適合する解像度のグラフィクスデータのフィールド組立処理を行うことを特徴とする情報処理方法。
【請求項8】
前記フィールド組立処理の前段処理として、前記生成された画像データの解像度を拡大するスケーリング処理を行うことを特徴とする請求項7記載の情報処理方法。
【請求項9】
前記フィールド組立においては、インタレース方式の映像再生に適合するグラフィクスデータを形成することを特徴とする請求項7記載の情報処理方法。
【請求項10】
前記制御は、ソフトウェアのデコーダを用いて実現されることを特徴とする請求項7記載の情報処理方法。
【請求項1】
グラフィクスデータを記憶することが可能なフレームバッファと、
プログレッシブ方式の映像データの中の偶数ラインのデータと奇数ラインのデータとを複数のバッファに交互に記憶させる制御を行うと共にデータ送出の停止および再開の制御を行うことにより、プルダウンされた映像データを生成する制御手段と、
前記制御手段により生成された映像データに基づき、前記フレームバッファの画像サイズに適合する解像度のグラフィクスデータのフィールド組立処理を行うフィールド組立処理手段と、
を具備することを特徴とする情報処理装置。
【請求項2】
前記フィールド組立処理手段によるフィールド組立処理の前段処理として、前記制御手段により生成された画像データの解像度を拡大するスケーリング処理を行うスケーリング処理手段を更に具備することを特徴とする請求項1記載の情報処理装置。
【請求項3】
前記フィールド組立処理手段は、インタレース方式の映像再生に適合するグラフィクスデータを形成することを特徴とする請求項1記載の情報処理装置。
【請求項4】
前記制御手段は、ソフトウェアのデコーダを用いて実現されることを特徴とする請求項1記載の情報処理装置。
【請求項5】
前記フレームバッファは、インタレース方式の映像再生に適合するグラフィクスデータを記憶することを特徴とする請求項1記載の情報処理装置。
【請求項6】
前記フレームバッファは、インタレース方式の映像再生に適合するグラフィクスデータとプログレッシブ方式の映像再生に適合するグラフィクスデータのいずれの記憶にも使用可能であることを特徴とする請求項1記載の情報処理装置。
【請求項7】
プログレッシブ方式の映像データの中の偶数ラインのデータと奇数ラインのデータとを複数のバッファに交互に記憶させる制御を行うと共にデータ送出の停止および再開の制御を行うことにより、プルダウンされた映像データを生成し、
前記生成された映像データに基づき、グラフィクスデータを記憶することが可能なフレームバッファの画像サイズに適合する解像度のグラフィクスデータのフィールド組立処理を行うことを特徴とする情報処理方法。
【請求項8】
前記フィールド組立処理の前段処理として、前記生成された画像データの解像度を拡大するスケーリング処理を行うことを特徴とする請求項7記載の情報処理方法。
【請求項9】
前記フィールド組立においては、インタレース方式の映像再生に適合するグラフィクスデータを形成することを特徴とする請求項7記載の情報処理方法。
【請求項10】
前記制御は、ソフトウェアのデコーダを用いて実現されることを特徴とする請求項7記載の情報処理方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【公開番号】特開2007−258874(P2007−258874A)
【公開日】平成19年10月4日(2007.10.4)
【国際特許分類】
【出願番号】特願2006−78222(P2006−78222)
【出願日】平成18年3月22日(2006.3.22)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】
【公開日】平成19年10月4日(2007.10.4)
【国際特許分類】
【出願日】平成18年3月22日(2006.3.22)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】
[ Back to top ]