以下、図面を参照して本発明の実施形態を説明する。
図1には、本発明の一実施形態の係る再生装置の構成例が示されている。この再生装置はオーディオ・ビデオ(AV)コンテンツを再生するメディアプレーヤである。この再生装置は、例えば、HD−DVD(High Definition Digital Versatile Disc)規格のDVDメディアに格納されたオーディオ・ビデオ(AV)コンテンツを再生するHD−DVDプレーヤとして実現されている。
このHD−DVDプレーヤは、図1に示されているように、CPU(Central Processing Unit)11、ノースブリッジ12、主メモリ13、サウスブリッジ14、不揮発性メモリ15、オーディオコーデック16、USB(Universal Serial Bus)コントローラ17、HD−DVDドライブ18、オーディオバス19、グラフィクスバス20、PCI(Peripheral Component Interconnect)バス21、ビデオコントローラ22、オーディオコントローラ23、オーディオデコーダ24、ビデオデコーダ25、ブレンド処理部30、オーディオミキサ(Audio Mix)31,32、ビデオエンコーダ40、およびHDMI(High Definition Multimedia Interface)のようなAVインタフェース(HDMI−TX)41等から構成されている。
本HD−DVDプレーヤにおいては、プレーヤアプリケーション150と、オペレーティングシステム(OS)151とが予め不揮発性メモリ15にインストールされている。プレーヤアプリケーション150はOS151上で動作するソフトウェアであり、HD−DVDドライブ18から読み出されるAVコンテンツを再生するための制御を行う。
HD−DVDドライブ18によって駆動されるHD−DVDメディアに蓄積されたAVコンテンツは、H.264またはMPEG2方式で圧縮符号化されたストリームのような動画像ストリーム(HD−DVDストリーム)から構成されている。このHD−DVDストリームには、圧縮符号化されたメインビデオデータ(動画像)、圧縮符号化されたメインオーディオデータ、アルファデータを含む圧縮符号化されたグラフィクスデータ、圧縮符号化されたサブオーディオデータとが多重化されている。
圧縮符号化されたメインビデオデータは、主映像(主画面イメージ)として用いられる動画像データをH.264/AVC規格の符号化方式で符号化したデータである。メインビデオデータはHD規格の高精細画像から構成されている。また、SD(Standard Definition)規格のメインビデオデータを使用することもできる。圧縮符号化されたグラフィクスデータは、メインビデオ上に重ね合わされた状態で表示される副映像(副画面イメージ)である。グラフィクスデータは、メインビデオを補足する動画像から構成されるサブビデオデータと、字幕等のテキスト/静止画を含むサブピクチャデータと、メニューオブジェクトのような操作ガイダンスを表示するためのナビゲーションデータ(Advanced Navigation)とから構成されている。ナビゲーションデータは、静止画/動画(アニメーションを含む)/テキストから構成されている。ナビゲーションデータは、メニューオブジェクトのようなオブジェクト画像の動きを記述したスクリプトを含んでいる。このスクリプトはCPU11によって解釈および実行される。これにより、インタラクティブ性の高いメニューオブジェクトをメインビデオ上に表示することができる。
これらサブビデオデータ、サブピクチャデータ、およびナビゲーションデータもそれぞれ圧縮符号化されている。
HD規格のメインビデオは例えば1920×1080ピクセルまたは1280×720ピクセルの解像度を持つ。また、サブビデオデータ、サブピクチャデータ、およびナビゲーションデータの各々は、例えば720×480ピクセルの解像度を持つ。
本HD−DVDプレーヤにおいては、HD−DVDドライブ18から読み出されるHD−DVDストリームからメインビデオデータ、メインオーディオデータ、グラフィクスデータ、サブオーディオデータを分離する分離処理と、グラフィクスデータおよびサブオーディオデータをデコードするデコード処理はソフトウェア(プレーヤアプリケーション150)によって実行され、多くの処理量を必要とするメインビデオデータおよびメインオーディオデータをデコードするデコード処理は専用のハードウェアによって実行される。
CPU11は、本HD−DVDプレーヤの動作を制御するために設けられたプロセッサであり、不揮発性メモリ15から主メモリ13にロードされる、OS151およびプレーヤアプリケーション150を実行する。主メモリ13内の記憶領域の一部は、ビデオメモリ(VRAM)131として使用される。なお、主メモリ13内の記憶領域の一部をVRAM131として使用する必要はなく、主メモリ13とは独立したメモリデバイスとしてVRAM131を設けてもよい。
ノースブリッジ12は、CPU11のローカルバスとサウスブリッジ14との間を接続するブリッジデバイスである。このノースブリッジ12には、主メモリ13をアクセス制御するメモリコントローラが内蔵されている。さらに、このノースブリッジ12には、GPU(Graphics Processing Unit)120も内蔵されている。
GPU120は、主メモリ13の一部の記憶領域に割り当てられたビデオメモリ(VRAM)131にCPU11によって書き込まれたデータから、グラフィクス画面イメージを形成するグラフィクスデータ(またはグラフィクス画像データと云う)を生成するグラフィクスコントローラである。GPU120は、ビットブロック転送(bit block transfer)のようなグラフィクス演算機能を用いて、グラフィクスデータを生成する。例えば、CPU11によってVRAM131上の3つのプレーンにそれぞれ画像データ(サブビデオ、サブピクチャ、ナビゲーション)が書き込まれた場合、GPU120は、それら3つのプレーンに対応する画像データ同士をピクセル毎に重ね合わせるブレンド処理をビットブロック転送を用いて実行し、これによってメインビデオと同じ解像度(例えば1920×1080ピクセル)を有するグラフィクス画面イメージを形成するためのグラフィクスデータを生成する。ブレンド処理は、サブビデオ、サブピクチャ、ナビゲーションの画像データそれぞれに対応するアルファデータを用いて実行される。アルファデータは、それに対応する画像データの各ピクセルの透明度(または不透過度)を示す係数である。サブビデオ、サブピクチャ、ナビゲーションそれぞれに対応するアルファデータは、それらサブビデオ、サブピクチャ、ナビゲーションの画像データと一緒にストリームに多重化されている。すなわち、ストリームに含まれるサブビデオ、サブピクチャ、ナビゲーションの各々は、画像データとアルファデータとから構成される。
GPU120によって生成されたグラフィクスデータはRGB色空間を有している。グラフィクスデータの各ピクセルはデジタルRGBデータ(24bit)によって表現される。
GPU120は、グラフィクス画面イメージを形成するグラフィクスデータを生成するだけでなく、その生成したグラフィクスデータに対応するアルファデータを外部に出力する機能も有している。
具体的には、GPU120は、生成したグラフィクスデータをデジタルRGBビデオ信号として外部に出力すると共に、その生成したグラフィクスデータに対応するアルファデータも外部に出力する。アルファデータは、生成されたグラフィクスデータ(RGB)の各ピクセルの透明度(または不透明度)を示す係数(8bit)である。GPU120は、グラフィクスデータ(24bitのデジタルRGBビデオ信号)およびアルファデータ(8bit)から構成されるアルファデータ付きのグラフィクスデータ(32bitのRGBAデータ)をピクセル毎に出力する。アルファデータ付きのグラフィクスデータ(32bitのRGBAデータ)は専用のグラフィクスバス20を介してピクセル毎に同期してブレンド処理部30に送られる。グラフィクスバス20は、GPU120とブレンド処理部30との間に接続された伝送線路である。
このように、本HD−DVDプレーヤにおいては、アルファデータ付きのグラフィクスデータがグラフィクスバス20を介してGPU120からブレンド処理部30に直接的に転送される。これにより、PCIバス21等を介してアルファデータをVRAM131からブレンド処理部30を転送する必要が無くなり、アルファデータの転送によるPCIバス21のトラフィックの増大を防止することができる。
もしPCIバス21等を介してアルファデータをVRAM131からブレンド処理部30に転送したならば、GPU120から出力されるグラフィクスデータとPCIバス21経由で転送されるアルファデータとをブレンド処理部30内で同期化しなければならず、そのためにブレンド処理部30の構成が複雑化される。本HD−DVDプレーヤにおいては、GPU120はグラフィクスデータとアルファデータとをピクセル毎に同期して出力する。このため、グラフィクスデータとアルファデータとの同期化を容易に実現することができる。
サウスブリッジ14は、PCIバス21上の各デバイスを制御する。また、サウスブリッジ14は、HD−DVDドライブ18を制御するためのIDE(Integrated Drive Electronics)コントローラを内蔵している。さらに、サウスブリッジ14は、不揮発性メモリ15、USBコントローラ17、およびオーディオコーデック16をアクセスする機能を有している。
HD−DVDドライブ18は、HD−DVD規格に対応するオーディオ・ビデオ(AV)コンテンツが格納されたHD−DVDメディアのような蓄積メディアを駆動するためのドライブユニットである。
オーディオコーデック16は、ソフトウェアによってデコードされたサブオーディオデータをI2S(Inter-IC Sound)形式のデジタルオーディオ信号に変換する。このオーディオコーデック16は、オーディオバス19を介してオーディオミキサ(Audio Mix)31および32にそれぞれ接続されている。オーディオバス19は、オーディオコーデック16とオーディオミキサ(Audio Mix)31および32の各々との間に接続された伝送線路である。このオーディオバス19により、オーディオコーデック16からのデジタルオーディオ信号は、PCIバス21を介さずにオーディオミキサ(Audio Mix)31および32にそれぞれ転送される。
ビデオコントローラ22は、PCIバス21に接続されている。このビデオコントローラ22は、ビデオデコーダ25とのインターフェースを実行するためのLSIである。ソフトウェアによってHD−DVDストリームから分離されたメインビデオデータのストリーム(Video Stream)は、PCIバス21およびビデオコントローラ22を介して、ビデオデコーダ25に送られる。また、CPU11から出力されるデコード制御情報(Control)も、PCIバス21およびビデオコントローラ22を介して、ビデオデコーダ25に送られる。
ビデオデコーダ25は、H.264/AVC規格に対応するデコーダであり、HD規格のメインビデオデータをデコードして例えば1920×1080ピクセルの解像度のビデオ画面イメージを形成するデジタルYUVビデオ信号を生成する。このデジタルYUVビデオ信号はブレンド処理部30に送られる。
オーディオコントローラ23は、PCIバス21に接続されている。オーディオコントローラ23は、オーディオデコーダ24とのインターフェースを実行するためのLSIである。ソフトウェアによってHD−DVDストリームから分離されたメインオーディオデータのストリーム(Audio Stream)は、PCIバス21およびオーディオコントローラ23を介して、オーディオデコーダ24に送られる。
オーディオデコーダ24は、メインオーディオデータをデコードしてI2S(Inter-IC Sound)形式のデジタルオーディオ信号を生成する。このデジタルオーディオ信号は、オーディオコントローラ23を介してオーディオミキサー(Audio Mix)31および32にそれぞれ送られる。
ブレンド処理部30は、GPU120およびビデオデコーダ25にそれぞれ結合されており、GPU120から出力されるグラフィクスデータとビデオデコーダ25によってデコードされたメインビデオデータとを重ね合わせるためのブレンド処理を実行する。このブレンド処理においては、GPU120からグラフィクスデータ(RGB)と一緒に出力されるアルファデータに基づいて、グラフィクスデータを構成するデジタルRGBビデオ信号とメインビデオデータを構成するデジタルYUVビデオ信号とをピクセル単位で重ね合わせるためのブレンド処理(アルファブレンディング処理)が実行される。この場合、メインビデオデータは下側の画面イメージとして用いられ、グラフィクスデータはメインビデオデータ上に重ねられる上側の画面イメージとして用いられる。
ブレンド処理によって得られる出力画像データは例えばデジタルYUVビデオ信号としてビデオエンコーダ40およびAVインタフェース(HDMI−TX)41にそれぞれ供給される。ビデオエンコーダ40は、ブレンド処理によって得られる出力画像データ(デジタルYUVビデオ信号)をコンポーネントビデオ信号またはS−ビデオ信号に変換して、TV受像機のような外部の表示装置(モニタ)に出力する。AVインタフェース(HDMI−TX)41は、デジタルYUVビデオ信号とデジタルオーディオ信号とを含むデジタル信号群を外部のHDMI機器に出力する。
オーディオミキサ(Audio Mix)31は、オーディオコーデック16によってデコードされたサブオーディオデータとオーディオデコーダ24によってデコードされたメインオーディオデータとを合成(ミキシング)し、そのミキシング結果をステレオオーディオ信号として出力する。オーディオミキサ(Audio Mix)32は、オーディオコーデック16によってデコードされたサブオーディオデータとオーディオデコーダ24によってデコードされたメインオーディオデータとを合成(ミキシング)し、そのミキシング結果を5.1チャンネルのオーディオ信号として出力する。
次に、図2を参照して、CPU11によって実行されるプレーヤアプリケーション150の構成を説明する。
プレーヤアプリケーション150は、デマルチプレクス(Demux)モジュール、デコード制御モジュール、サブピクチャ(Sub-Picture)デコードモジュール、サブビデオ(Sub-Video)デコードモジュール、ナビゲーション(Navigation)デコードモジュール、サブオーディオ(Sub-Audio)デコードモジュール、グラフィクスドライバ、オーディオドライバ、およびPCIストリーム転送ドライバを備えている。
Demuxモジュールは、HD−DVDドライブ18から読み出されたストリームから、メインビデオデータ、メインオーディオデータ、グラフィクスデータ(サブピクチャデータ、サブビデオデータ、ナビゲーションデータ)、サブオーディオデータを分離するデマルチプレクス処理を実行するソフトウェアである。デコード制御モジュールは、メインビデオデータ、メインオーディオデータ、グラフィクスデータ(サブピクチャデータ、サブビデオデータ、ナビゲーションデータ)、およびサブオーディオデータそれぞれのデコード処理を制御するソフトウェアである。デコード処理の制御は、HD−DVDストリームに多重化されたている再生制御情報等にしたがって実行される。この再生制御情報は、メインビデオデータおよびグラフィクスデータ(サブピクチャデータ、サブビデオデータ、ナビゲーションデータ)の再生手順を制御する情報である。
サブピクチャ(Sub-Picture)デコードモジュールは、サブピクチャデータをデコードする。サブビデオ(Sub-Video)デコードモジュールは、サブビデオデータをデコードする。ナビゲーション(Navigation)デコードモジュールは、ナビゲーションデータをデコードする。サブオーディオ(Sub-Audio)デコードモジュールは、サブオーディオデータをデコードする。
グラフィクスドライバは、GPU120を制御するためのソフトウェアである。デコードされたサブピクチャデータ、デコードされたサブビデオデータ、およびデコードされたナビゲーションは、グラフィクスドライバを介してGPU120に送られる。また、グラフィクスドライバは、GPU120に対して各種描画命令を発行する。
オーディオドライバは、オーディオコーデック16を制御するためのソフトウェアである。デコードされたサブオーディオデータは、グラフィクスドライバを介してオーディオコーデック16に送られる。
PCIストリーム転送ドライバは、PCIバス21を介してストリームを転送するためのソフトウェアである。メインビデオデータおよびメインオーディオデータは、PCIストリーム転送ドライバによって、PCIバス21を介してビデオデコーダ25およびオーディオデコーダ24にそれぞれ転送される。
次に、図3を参照して、CPU11によって実行されるプレーヤアプリケーション150によって実現されるソフトウェアデコーダの機能構成を説明する。
ソフトウェアデコーダは、図示のように、ストリーム読み取り部101、暗号化解除処理部102、デマルチプレクス(Demux)部103、Sub-Pictureデコーダ104、Sub-Videoデコーダ105、Advanced Navigationデコーダ106、およびSub-Audioデコーダ107等を備えている。
HD−DVDドライブ18のHD−DVDメディアに格納されたストリーム(HD−DVDストリーム)は、ストリーム読み取り部101によってHD−DVDドライブ18から読み出される。HD−DVDストリームはCSS(Content Scrambling System)などによって暗号化されている。ストリーム読み取り部101によってHD−DVDメディアから読み出されたHD−DVDストリームは、暗号化解除処理部102に入力される。暗号化解除処理部102は、HD−DVDストリームの暗号化を解除するための処理を実行する。暗号化が解除されたHD−DVDストリームは、デマルチプレクス(Demux)部103に入力される。このDemux103は、プレーヤアプリケーション150のDemuxモジュールによって実現されている。Demux103は、HD−DVDストリームからメインビデオデータ(MAIN VIDEO)、メインオーディオデータ(MAIN AUDIO)、グラフィクスデータ(Sub-Picture、Sub-Video、およびAdvanced Navigation)、およびサブオーディオデータ(Sub-Audio)を分離する。
メインビデオデータ(MAIN VIDEO)は、PCIバス21を介してビデオデコーダ25に送られる。メインビデオデータ(MAIN VIDEO)はビデオデコーダ25によってデコードされる。デコードされたメインビデオデータはHD規格の1920×1080ピクセルの解像度を有し、デジタルYUVビデオ信号としてブレンド処理部30に送られる。メインオーディオデータ(MAIN AUDIO)は、PCIバス21を介してオーディオデコーダ24に送られる。メインオーディオデータ(MAIN AUDIO)はオーディオデコーダ24によってデコードされる。デコードされたメインオーディオデータ(MAIN AUDIO)は、I2S形式のデジタルオーディオ信号としてオーディオミキサ31に送られる。
Sub-Pictureデータ、Sub-Videoデータ、およびAdvanced Navigationデータは、それぞれSub-Pictureデコーダ104、Sub-Videoデコーダ105、およびAdvanced Navigationデコーダ106にそれぞれ送られる。これらSub-Pictureデコーダ104、Sub-Videoデコーダ105、およびAdvanced Navigationデコーダ106は、それぞれプレーヤアプリケーション150のサブピクチャ(Sub-Picture)デコードモジュール、サブビデオ(Sub-Video)デコードモジュール、およびナビゲーション(Navigation)デコードモジュールによって実現されている。これらSub-Pictureデコーダ104、Sub-Videoデコーダ105、およびAdvanced Navigationデコーダ106によってそれぞれデコードされたSub-Pictureデータ、Sub-Videoデータ、およびAdvanced Navigationデータは、VRAM131に書き込まれる。VRAM131に書き込まれたSub-Pictureデータ、Sub-Videoデータ、およびAdvanced Navigationデータの各々は、ピクセル毎にRGBデータとアルファデータ(A)とを含む。
Sub-Audioデータは、Sub-Audioデコーダ107に送られる。Sub-Audioデコーダ107は、プレーヤアプリケーション150のサブオーディオ(Sub-Audio)デコードモジュールから実現されている。Sub-AudioデータはSub-Audioデコーダ107によってデコードされる。デコードされたSub-Audioデータはオーディオコーデック16によってI2S形式のデジタルオーディオ信号に変換された後、オーディオミキサ31に送られる。
GPU120は、Sub-Pictureデコーダ104、Sub-Videoデコーダ105、およびAdvanced Navigationデコーダ106それぞれのデコード結果から、つまり、CPU11によってVRAM131に書き込まれた、Sub-Pictureデータ、Sub-Videoデータ、およびAdvanced Navigationデータそれぞれに対応する画像データから、1920×1080ピクセルのグラフィクス画面イメージを形成するグラフィクスデータを生成する。この場合、Sub-Pictureデータ、Sub-Videoデータ、およびAdvanced Navigationデータそれぞれに対応する3つの画像データは、GPU120のミキサ(MIX)部121によって実行されるアルファブレンディング処理によってピクセル毎に重ね合わされる。
このアルファブレンド処理においては、VRAM131に書き込まれた3つの画像データそれぞれに対応するアルファデータが用いられる。すなわち、VRAM131に書き込まれた3つの画像データの各々は、RGBデータとアルファデータとから構成されている。ミキサ(MIX)部121は、3つの画像データそれぞれのアルファデータとCPU11から通知される3つの画像データそれぞれの位置情報とに基づいてブレンド処理を実行することにより、例えば、少なくとも一部が重ね合わされた3つの画像データを含むグラフィクス画面イメージを生成する。画像データ同士が重ね合わされた領域については、その領域に対応する新たなアルファデータがミキサ(MIX)部121によって算出される。1920×1080ピクセルのグラフィクス画面イメージの内、有効な画像データが存在しない領域の各ピクセルの色は黒となる。有効な画像データが存在しない領域の各ピクセルに対応するアルファ値は当該ピクセルが透明であることを示す値(アルファ=0)となる。
このようにして、GPU120は、Sub-Pictureデコーダ104、Sub-Videoデコーダ105、およびAdvanced Navigationデコーダ106それぞれのデコード結果から、1920×1080ピクセルのグラフィクス画面イメージを形成するグラフィクスデータ(RGB)およびそのグラフィクスデータに対応するアルファデータを生成する。なお、Sub-Pictureデータ、Sub-Videoデータ、およびAdvanced Navigationデータのいずれか一つの画像のみが表示されるシーンについては、1920×1080ピクセルのサーフェース上に当該画像(例えば720×480)が配置されたグラフィクス画面イメージに対応するグラフィクスデータおよびそのグラフィクスデータに対応するアルファデータが生成される。
GPU120によって生成されたグラフィクスデータ(RGB)およびアルファデータは、グラフィクスバス20を介してRGBAデータとしてブレンド処理部30に送られる。
次に図4を参照して、ブレンド処理部30によって実行されるブレンド処理(アルファブレンディング処理)を説明する。
アルファブレンディング処理は、グラフィクスデータ(RGB)に付随するアルファデータ(A)に基づいて、グラフィクスデータとメインビデオデータとをピクセル単位で重ね合せるブレンド処理である。この場合、グラフィクスデータ(RGB)はオーバーサーフェースとして用いられ、ビデオデータ上に重ね合される。GPU120から出力されるグラフィクスデータの解像度は、ビデオデコーダ25から出力されるメインビデオデータの解像度と同一である。
いま、1920×1080ピクセルの解像度を持つメインビデオデータ(Video)が画像データCとしてブレンド処理部30に入力され、1920×1080ピクセルの解像度を持つグラフィクスデータが画像データGとしてブレンド処理部30に入力された場合を想定する。ブレンド処理部30は、1920×1080ピクセルの解像度を持つアルファデータ(A)に基づき、画像データC上に画像データGをピクセル単位で重ね合わせるための演算を実行する。この演算は、以下の式(1)によって実行される。
V=α×G+(1−α)C …(1)
ここで、Vはアルファブレンディング処理によって得られる出力画像データの各ピクセルの色、αはグラフィクスデータGの各ピクセルに対応するアルファ値である。
次に、図5を参照して、GPU120のMIX部121によって実行されるブレンド処理(アルファブレンディング処理)を説明する。
ここでは、VRAM131に書き込まれたSub-PictureデータおよびSub-Videoデータから1920×1080ピクセルの解像度を持つグラフィクスデータを生成する場合を想定する。Sub-PictureデータおよびSub-Videoデータの各々は、例えば720×480ピクセルの解像度を持つ。この場合、Sub-PictureデータおよびSub-Videoデータの各々には、例えば720×480ピクセルの解像度のアルファデータも付随する。
例えば、Sub-Pictureデータに対応するイメージはオーバーサーフェースとして使用され、Sub-Videoデータに対応するイメージはアンダーフェースとして使用される。
Sub-Pictureデータに対応するイメージとSub-Videoデータに対応するイメージとが重なった領域の各ピクセルの色は、以下の式(2)によって求められる。
G=Go×αo+Gu(1−αo) …(2)
ここで、Gは重なった領域の各ピクセルの色、Goはオーバーサーフェースとして使用されるSub-Pictureデータの各ピクセルの色、αoはオーバーサーフェースとして使用されるSub-Pictureデータの各ピクセルのアルファ値、Guはアンダーフェースとして使用されるSub-Videoデータの各ピクセルの色である。
また、Sub-Pictureデータに対応するイメージとSub-Videoデータに対応するイメージとが重なった領域の各ピクセルのアルファ値は、以下の式(3)によって求められる。
α=αo+αu×(1−αo) …(3)
ここで、αは重なった領域の各ピクセルのアルファ値、αuはアンダーサーフェースとして使用されるSub-Videoデータの各ピクセルのアルファ値である。
このように、GPU120のMIX部121は、Sub-Pictureデータに対応するアルファデータおよびSub-Videoデータに対応するアルファデータの内、オーバーサーフェースとして使用される方のアルファデータを用いて、Sub-PictureデータとSub-Videoデータとを重ね合わせ、これにより1920×1080ピクセルの画面イメージを形成するグラフィクスデータを生成する。さらに、GPU120のMIX部121は、Sub-Pictureデータに対応するアルファデータとSub-Videoデータに対応するアルファデータとから、1920×1080ピクセルの画面イメージを形成するグラフィクスデータの各ピクセルのアルファ値を算出する。
具体的には、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データのサーフェースが最も上側のサーフェースとして使用される。
1920×1080ピクセルの画面イメージの内、Sub-PictureデータおよびSub-Videoデータのどちらも存在しない領域の各ピクセルの色は黒となる。また、Sub-Pictureデータのみが存在する領域内の各ピクセルの色は、Sub-Pictureデータの対応する各ピクセルの本来の色と同じとなる。同様に、Sub-Videoデータのみが存在する領域内の各ピクセルの色は、Sub-Videoデータの対応する各ピクセルの本来の色と同じとなる。
また1920×1080ピクセルの画面イメージの内、Sub-PictureデータおよびSub-Videoデータのどらも存在しない領域の各ピクセルに対応するアルファ値は零となる。Sub-Pictureデータのみが存在する領域内の各ピクセルのアルファ値は、Sub-Pictureデータの対応する各ピクセルの本来のアルファ値と同じとなる。同様に、Sub-Videoデータのみが存在する領域内の各ピクセルのアルファ値は、Sub-Videoデータの対応する各ピクセルの本来のアルファ値と同じとなる。
図6には、1920×1080ピクセルのメインビデオデータ上に720×480ピクセルのサブビデオデータが重ねて表示される様子が示されている。
図6においては、グラフィクスデータは、1920×1080ピクセルのサーフェース(全ピクセルの色=黒、全ピクセルのアルファ値=0)と、720×480ピクセルのSub-Videoデータのサーフェースとをピクセル毎に重ね合わせるブレンド処理によって生成される。
上述したように、表示装置に出力される出力画像データ(Video+Graphics)は、グラフィクスデータとメインビデオデータとをブレンドすることによって生成される。
1920×1080ピクセルのグラフィクスデータの内、720×480ピクセルのサブビデオデータが存在しない領域の各ピクセルのアルファ値は零である。このため、720×480ピクセルのサブビデオデータが存在しない領域は透明となるので、その領域にはメインビデオデータが100パーセントの不透明度で表示される。
720×480ピクセルのサブビデオデータの各ピクセルは、サブビデオデータに対応するアルファデータで指定される透明度でメインビデオデータ上に表示される。例えば、アルファ値=1のサブビデオデータのピクセルは100パーセントの不透明度で表示され、当該ピクセル位置に対応するメインビデオデータのピクセルは表示されない。
また、図7に示すように、720×480ピクセルの解像度に縮小されたメインビデオデータを、1920×1080ピクセルの解像度に拡大されたサブビデオデータ上の一部の領域に表示することもできる。
図7の表示形態は、GPU120が有するスケーリング機能およびビデオデコーダ25が有するスケーリング機能を用いて実現される。
具体的には、GPU120は、CPU11からの指示に従って、サブビデオデータの解像度(画像サイズ)が1920×1080ピクセルになるまでサブビデオデータの解像度を段階的に拡大するスケーリング処理を実行する。このスケーリング処理は、ピクセル補間を用いて実行される。サブビデオデータの解像度が大きくなるに従い、1920×1080ピクセルのグラフィクスデータの内、720×480ピクセルのサブビデオデータが存在しない領域(アルファ値=0の領域)は徐々に小さくなる。これにより、メインビデオデータ上に重ねて表示されるサブビデオデータのサイズは徐々に大きくなり、逆にアルファ値=0の領域は徐々小さくなる。サブビデオデータの解像度(画像サイズ)が1920×1080ピクセルになった場合、GPU120は、例えば、720×480ピクセルのサーフェース(全ピクセルの色=黒、全ピクセルのアルファ値=0)を1920×1080ピクセルのサブビデオデータ上にピクセル毎に重ね合わせるブレンド処理を実行して、1920×1080ピクセルのサブビデオデータ上にアルファ値=0の720×480ピクセルの領域を配置する。
一方、ビデオデコーダ25は、CPU11からの指示に従って、メインビデオデータの解像度を720×480ピクセルに縮小するスケーリング処理を実行する。
720×480ピクセルに縮小されたメインビデオデータは、1920×1080ピクセルのサブビデオデータ上に配置された、720×480ピクセルのアルファ値=0の領域に表示される。すなわち、GPU120から出力されるアルファデータは、メインビデオデータが表示される領域を制限するためのマスクとしても使用することができる。
このように、GPU120から出力されるアルファデータはソフトウェアによって自由に制御することができるので、グラフィクスデータを効果的にメインビデオデータ上に重ねて表示することができ、これによりインタラクティブ性の高い映像表現を容易に実現することができる。さらに、アルファデータはグラフィクスデータと一緒にGPU120からブレンド処理部30に自動的に転送されるので、ソフトウェアは、ブレンド処理部30へのアルファデータの転送を意識する必要はない。
次に、図8を参照して、メインビデオデータおよびグラフィクスデータそれぞれがブレンド処理部30に転送される動作を説明する。
メインビデオデータは、デジタルYUVビデオ信号としてビデオデコーダ25からブレンド処理部30に転送される。HD−DVDストリームに含まれるAVコンテンツによっては、HD(High Definition)規格のメインビデオデータではなく、SD(Standard Definition)規格のメインビデオデータを使用するものもある。このため、ビデオデコーダ25は、SDおよびHDの双方に対応できるように構成されている。ビデオデコーダ25から出力されるメインビデオデータの垂直ライン数は、480i,480p,1080i,720pのいずれかである。480iはSD規格のインターレース画像の垂直ライン数であり、480pはSD規格のプログレッシブ画像の垂直ライン数である。また、1080iはHD規格のインターレース画像の垂直ライン数であり、720pはHD規格のプログレッシブ画像の垂直ライン数である。
GPU120はアルファデータ付きのグラフィクスデータをRGBA形式のデジタルビデオ信号としてグラフィクスバス20上に出力する。アルファデータ付きのグラフィクスデータの画面イメージの解像度はメインビデオデータの画面イメージの解像度と同じである。すなわち、CPU11の制御の下、GPU120は、480i,480p,1080i,720pのいずれかに対応する、アルファデータ付きのグラフィクスデータを出力する。
図9は、グラフィクスバス20を介してアルファデータ付きのグラフィクスデータが転送される様子を示している。
グラフィクスバス20は32ビット幅を有しており、図9に示されているように、グラフィクスデータ(RGB=24bit)およびアルファデータ(A=8bit)はピクセルクロック信号に同期してグラフィクスバス20を介して転送される。ピクセルクロック信号は、例えばGPU120内に設けられたピクセルクロック発生器(PLL:Phase-Locked Loop)から出力される。R1,G1,B1,A1は第1ピクセルの赤,緑,青,透明度(アルファ)の4つの成分を示し、同様に、R2,G2,B2,A2は第2ピクセルの赤,緑,青,透明度(アルファ)の4つの成分を示している。
このようにして、グラフィクスデータ(RGB)およびアルファデータ(A)はピクセル毎に同期した状態でブレンド処理部30に送られる。したがって、グラフィクスデータ(RGB)とアルファデータ(A)との同期化を図る回路をブレンド処理部30に設けることなく、グラフィクスデータ(RGB)とメインビデオデータ(YUV)との重ね合わせを容易に実行することができる。
なお、アルファデータ(A)とグラフィクスデータ(RGB)とを必ずしも同一のバスを介して転送する必要はなく、図10に示すように、アルファデータ(A)とグラフィクスデータ(RGB)とを互いに異なる伝送線路を介して転送してもよい。図10においては、アルファデータ(A)は第1のグラフィクスバス20Aを介してGPU120からブレンド処理部30に転送され、グラフィクスデータ(RGB)は第2のグラフィクスバス20Bを介してGPU120からブレンド処理部30に転送される。グラフィクスバス20A,20Bは、それぞれGPU120とブレンド処理部30との間に配設されている。
次に、図11を参照して、ブレンド処理部30の構成例を説明する。
ビデオデコーダ25から出力されるビデオデータは、輝度信号の解像度よりも色差信号の解像度が低い4:2:2フォーマットのYUVデータである。一方、GPU120から出力されるグラフィクスデータはRGBデータである。グラフィクスデータの色空間をRGB色空間からYUV色空間に変換した場合、グラフィクスデータは輝度信号の解像度と色差信号の解像度が等しい4:4:4フォーマットのYUVデータとなる。
グラフィクスデータとビデオデータとをYUV色空間上でブレンドするために、ブレンド処理部30は、図示のように、RGBA−to−YUV変換部201、4:2:2−to−4:4:4変換部202、アルファ演算部210、および4:4:4−to−4:2:2変換部211を備えている。
GPU120からのアルファデータ付きのグラフィクスデータ(RGBA)はRGBA−to−YUV変換部201に送られる。RGBA−to−YUV変換部201は、グラフィクスデータ(RGB)の色空間をRGB色空間からYUV色空間に変換することにより、アルファデータ付きのYUV4:4:4フォーマットのグラフィクスデータ(YUVA)を生成する。YUV4:4:4フォーマットのグラフィクスデータに付加されるアルファデータは、RGBデータに付加されている値がそのまま使用される。生成されたグラフィクスデータ(YUVA)はアルファ演算部210に送られる。
ビデオデコーダ25からのYUV4:2:2フォーマットのビデオデータは4:2:2−to−4:4:4変換部202に送られる。4:2:2−to−4:4:4変換部202は、YUV4:2:2フォーマットのビデオデータをアップサンプリングして、YUV4:4:4フォーマットのビデオデータを生成する。このYUV4:4:4フォーマットのビデオデータはアルファ演算部210に送られる。
アルファ演算部210は、アルファデータ付きのグラフィクスデータ(YUVA)のアルファデータ(A)に基づいて、グラフィクスデータ(YUV4:4:4)とビデオデータ(YUV4:4:4)とをピクセル毎に重ね合わせるための演算(アルファブレンディング演算)を実行して、YUV4:4:4フォーマットの出力画像データを生成する。YUV4:4:4フォーマットの出力画像データは、直接に、あるいは4:4:4−to−4:2:2変換部211を介してYUV4:2:2フォーマットにダウンサンプリングされた後に、ビデオエンコーダ40に送られる。
以上のように、本実施形態のHD−DVDプレーヤにおいては、アルファデータ付きのグラフィクスデータは専用のグラフィクスバス20を介してGPU120からブレンド処理部30に直接的に送られる。このため、アルファデータをPCIバス21を介してVRAM131からブレンド処理部30に転送することなく、GPU120からのグラフィクスデータとビデオデコーダ25からのビデオデータとを重ね合わせるためのブレンド処理を効率よく実行することが可能となる。
なお、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に構成要素を適宜組み合わせてもよい。