実施の形態に係る画面転送システムは、リアルタイムである機器から別の機器へ画面を転送する。さらに転送先の機器においてユーザが何らかの操作入力を与えると、その操作内容が転送元の画面転送システムに転送され、操作内容を反映した更新画面が転送先の機器に転送される。図1A〜図1Eを参照して実施の形態に係る画面転送システムの構成例をいくつか説明する。
図1Aは、モバイル機器100からTV/モニタ300へ画面を転送するシステムの構成図である。
モバイル機器100とTV/モニタ300は無線LANなどのネットワークで接続されている。モバイル機器100は、一例としてポータブルゲーム機、スマートフォン、タブレットなどの携帯機器であり、後述の画面転送機能200を有する。
画面転送機能200は、モバイル機器100のディスプレイコントローラが生成する画面(モバイル機器100のディスプレイに表示される画面とは限られない)をMPEG−4 AVCなどの動画圧縮符号化方式により圧縮符号化し、無線LANなどのネットワークを経由してTV/モニタ300に転送する。
TV/モニタ300は、AVCデコーダ400を有し、モバイル機器100から受信した圧縮済みの画面データを復号して大画面ディスプレイに表示する。これにより、モバイル機器100の小さい画面で見ていた画像をTV/モニタ300の大画面に表示させることができる。
図1Bは、モバイル機器100から据え置き機器310へ画面を送信するシステムの構成図である。
モバイル機器100と据え置き機器310は無線LANなどのネットワークで接続されている。モバイル機器100の画面転送機能200は、ディスプレイコントローラが生成する画面を圧縮符号化し、無線LANなどのネットワークを経由して据え置き機器310に転送する。据え置き機器310は、一例として据え置きゲーム機、テレビ受信機、録画機、CATV(cable television)用セットトップボックスなどである。
据え置き機器310は、AVCデコーダ400を有し、モバイル機器100から受信した圧縮済みの画面データを復号して据え置き機器310にHDMI(High Definition Multimedia Interface)(登録商標)やMHL(Mobile High-definition Link)などで接続されたTV/モニタ300に表示する。これにより、モバイル機器100の小さい画面で見ていた画像をTV/モニタ300の大画面に表示させることができる。また、据え置き機器310に録画機能があれば、モバイル機器100から転送された映像を録画することもできる。
図1Cは、モバイル機器100から別のモバイル機器110へ画面を送信するシステムの構成図である。
第1のモバイル機器100と第2のモバイル機器110は無線LANなどのネットワークで接続されている。第1のモバイル機器100は画面転送機能200を有し、第2のモバイル機器110はAVCデコーダ400を有する。画面転送機能200は、第1のモバイル機器100のディスプレイに表示される画面を圧縮符号化し、無線LANなどのネットワークを経由して第2のモバイル機器110に転送する。第2のモバイル機器110は、第1のモバイル機器100から受信した圧縮済みの画面データを復号してディスプレイパネルに表示する。
さらに、第2のモバイル機器110は、ユーザから入力を受け付け、その入力内容を第1のモバイル機器100に送信する。第1のモバイル機器100は第2のモバイル機器110から受信したユーザの入力内容を反映した画面を生成して第2のモバイル機器110に転送する。これにより、対戦ゲームの場合、第1のモバイル機器100と第2のモバイル機器110の間でゲーム画面を共有し、複数のユーザがゲームに参加することができる。また、第1のモバイル機器100と第2のモバイル機器110の間で画面を共有することで、複数のユーザがネットミーティングをすることもできる。
図1Dは、配信プラットフォーム502がクラウドサーバ500を介してクラウドサービスクライアント510へ画面を転送するシステムの構成図である。
配信プラットフォーム502は、画面転送機能200を有し、PCI Express(PCIe)やUSBなどのインタフェースを介してクラウドサーバ500と接続されている。画面転送機能200は、クラウドサービスクライアント510に転送したい画面を圧縮符号化してクラウドサーバ500に供給する。クラウドサーバ500は圧縮済みの画面データをクラウドサービスクライアント510にインターネット経由で送信する。
クラウドサービスクライアント510は、AVCデコーダ400を有し、圧縮済みの画面データを復号し、ディスプレイに表示する。さらに、クラウドサービスクライアント510は、ユーザから入力を受け付け、その入力内容をクラウドサーバ500に送信する。配信プラットフォーム502は、クラウドサーバ500が受信したユーザの入力内容を反映した画面を生成し、圧縮符号化してクラウドサービスクライアント510に供給する。クラウドサービスクライアント510はユーザの入力内容が反映された画面をクラウドサービスクライアント510から受信する。
図1Eは、モバイル機器100から動画共有サービス600へ画面データをアップロードするシステムの構成図である。
モバイル機器100は、画面転送機能200を有し、ディスプレイに表示される画面を圧縮符号化し、インターネットを経由して動画共有サービス600に送信する。これにより、モバイル機器100のディスプレイに表示される画面が動画として動画共有サービス600にアップロードされる。
図1A〜図1Eの構成例で説明した、画面転送機能200を有する送信側のモバイル機器100や配信プラットフォーム502などを総称して「画面送信システム」と呼ぶ。また、AVCデコーダ400を有する受信側のTV/モニタ300、据え置き機器310、モバイル機器110、クラウドサービスクライアント510などを総称して「画面受信システム」と呼ぶ。以下では、「画面送信システム」の一例としてモバイル機器100を、「画面受信システム」の一例としてTV/モニタ300を取り上げて、構成や処理手順を説明するが、「画面送信システム」および「画面受信システム」の例はこれらに限定されるものではない。
図2は、モバイル機器100の構成図である。モバイル機器100は、システムLSI270を含む。システムLSI270は、CPU10と、グラフィックスプロセッシングユニット(GPU)20と、ペリフェラル30と、メインメモリ50と、ディスプレイコントローラ(DISPC)60と、専用メモリ70と、AVCエンコーダ80と、I/O90とを含み、これらの構成はシステムインターコネクト40によって互いに接続されている。
CPU10は、アプリケーションを実行し、システムLSI270の各構成を制御する。GPU20は、グラフィックス処理を実行し、動画を生成してメインメモリ50のフレームバッファ52に格納する。ペリフェラル30は、各種周辺機器を制御する。
システムインターコネクト40は、システムコンポーネントを相互に接続するコネクションであり、共有バス、クロスバースイッチ、リングバス、ツリー状ネットワークなど任意の物理形態を有し、データ伝送方式としてはハンドシェイク方式やパケットベースネットワークなど任意の方式を採ることができ、これらは例示であり、システムインターコネクト40の物理形態、データ転送方式はここに挙げるものに限定されるものではない。
モバイル機器100は、LCD(Liquid Crystal Display)/OLED(Organic Light Emitting Diode)パネル230とタッチパッド240を含むタッチパネル280を有する。
メインメモリ50は、動画のフレームを格納する複数のフレームバッファ52を含む。DISPC60は、複数のフレームバッファ52に格納された画像をライン単位で読み出して変換処理し、一定のリフレッシュレートで最終的な画面イメージを生成してLCD/OLEDパネル230に出力する。また、オプションとして、DISPC60は最終的な画面イメージをHDMI/MHLコネクタ260に出力し、HDMI/MHLで接続された外部ディスプレイなどに画面を表示させることができる。
本実施の形態のDISPC60には、生成された画面イメージを転送用画面イメージとして取り出す専用パス(「転送用書き戻しパス」と呼ぶ)が設けられている。DISPC60は、イニシエータ(バスマスタ)として、この転送用書き戻しパスを経由して転送用画面イメージを専用パスまたはシステムインターコネクト40へ出力し、転送用画面イメージを、メインメモリ50とは別に設けられた専用メモリ70に書き戻すことができる。
AVCエンコーダ80は、専用メモリ70に格納された転送用画面イメージを読み出してMPEG−4 AVCなどの動画圧縮符号化方式により圧縮符号化し、圧縮符号化された画面データを専用メモリ70に書き込む。
ここで、MPEG−4 AVCでは通常、Iフレーム(Intra-coded Frame)、Pフレーム(Predicted Frame)およびBフレーム(Bi-directional Predicted Frame)を用いたフレーム間予測が行われるが、本実施の形態のAVCエンコーダ80は、画面転送のリアルタイム性を確保するためにフレーム間予測を行わず、Iフレームのみで画像を圧縮符号化してもよい。
フレーム間予測を行うと圧縮後のデータ量を小さくして転送帯域を抑えることができるが、予測をするために処理時間がかかり、画面転送のレイテンシが大きくなる。そこで、本実施の形態のAVCエンコーダ80では、WLANやブルートゥース(商標)などの機器間接続が高速化していることに鑑み、圧縮効率を犠牲にして、レイテンシを小さくすることを優先し、フレーム間予測を行わず、Iフレームのみで画像を圧縮符号化する方式を採用した。機器間接続の帯域に制約がある場合は、画質は低下するが、フレーム間予測並みのデータ量になるように圧縮率を高めて必要帯域を低減することもできる。
なお、図1Eで示した動画共有サービス600への動画のアップロードの場合のように、レイテンシが問題とならない用途では、圧縮率を優先させて、通常のフレーム間予測により圧縮符号化してもよい。
MPEG−4 AVCではフレーム間予測を行わず、Iフレームのみで動画を圧縮符号化することも規格上は許されているから、規格準拠のデコーダであればIフレームのみで圧縮符号化された動画でも復号することができる。したがって、画面受信システム側には専用のハードウェアやソフトウェアは不要であり、汎用のAVCデコーダ400を搭載するだけで転送用画面イメージを復号することができ、幅広い機器に対応することができる。
I/O90は、圧縮済みの画面データを専用メモリ70から読み出して、WLANアンテナ220a、イーサネット(登録商標)コネクタ220b、USBポート220c、PCIeスロット220dなどの外部接続インタフェースに出力して外部に送信する。これらの外部接続インタフェースは、音声データや汎用処理結果を外部に送信する場合にも用いられる。
また、I/O90は、ボタン・キーボード・センサ250およびタッチパッド240からユーザ入力を受け付け、CPU10に供給する。CPU10は、必要に応じてユーザから入力されたデータをI/O90を介してWLANアンテナ220a、イーサネットコネクタ220b、USBポート220c、PCIeスロット220dなどの外部接続インタフェースに出力して外部に送信する。
旧世代機互換ハードウェア210は、旧世代ゲーム機などの旧世代機と互換性を保つための旧世代機のハードウェア構成であり、たとえば、CPU、ベクタ演算を行うFPUであるVFPU、GPU、DMA(Direct Memory Access)コントローラなどの回路を内蔵する。旧世代機互換ハードウェア210は、システムインターコネクト40に接続され、データを読み書きするバッファとして専用メモリ70を用いる。
図3A〜図3Cを参照してシステムLSI270内に実装される画面転送機能200の構成を説明する。
図3Aは、システムLSI270における画面転送機能200の実装例を説明する図である。この実装例では、システムLSI270の内、点線120で囲まれたDISPC60、専用メモリ70、AVCエンコーダ80、およびI/O90が、図1A〜図1Eで説明した画面送信システムの画面転送機能200の主要ブロックとして作用する。
DISPC60は、メインメモリ50の複数のフレームバッファ52からフレームデータをライン単位で読み出してLCD/OLEDパネル230のサイズに合わせて拡大、縮小、合成などの変換処理を行い、LCD/OLEDパネル230のリフレッシュレートで最終画面データを生成してLCD/OLEDパネル230に表示する。
一方、DISPC60には拡大、縮小、合成などの変換処理がなされた画面イメージを引き抜いて専用メモリ70に書き戻すための専用パス62が設けられており、変換処理後の画面イメージが専用メモリ70に書き戻される。AVCエンコーダ80は、専用メモリ70に格納された変換処理後の画面イメージを専用パス82を経由して専用メモリ70から読み出して圧縮符号化し、圧縮符号化された画面イメージを専用パス82を経由して専用メモリ70に書き込む。I/O90は、圧縮符号化された画面イメージを専用パス92を経由して専用メモリ70から読み出し、転送用画面イメージとして転送先の機器に転送する。
図3Aの実装例では、DISPC60が生成した画面イメージを取り出して圧縮符号化し、転送画面イメージとして外部に出力するまでの専用メモリ70に対するデータの読み書きには専用パス62、82、92が用いられており、システムインターコネクト40は介在していない。すなわち、圧縮済みの転送画面イメージのデータフローに専用メモリ70と専用パス62、82、92を利用し、システムインターコネクト40を用いる通常のデータ処理とはデータパスが分離されている。これにより、システムインターコネクト40のデータ転送帯域を圧迫することなく画面転送処理を実行することができる。また、専用メモリ70に専用パス62、82、92で直接アクセスする構成であり、システムインターコネクト40を介してメインメモリ50にアクセスする必要がないため、低レイテンシで画面転送処理を実行することができる。
図3Bは、システムLSI270における画面転送機能200の別の実装例を説明する図である。この実装例では、システムLSI270の内、点線130で囲まれたDISPC60、専用メモリ70、AVCエンコーダ80、I/O90、およびシステムインターコネクト40が、図1A〜図1Eで説明した画面送信システムの画面転送機能200の主要ブロックとして作用する。
図3Bの実装例では、DISPC60が生成した画面イメージを取り出して圧縮符号化し、転送画面イメージとして外部に出力するまでの専用メモリ70に対するデータの読み書きにシステムインターコネクト40を用いる点が図3Aの実装例とは異なる。
システムインターコネクト40は、転送画面イメージのデータフローに対してQoS機能により帯域を予約し、通常処理とはデータパスを分離する。このQoS制御により、システムインターコネクト40を画面転送処理と通常処理で共有しても、画面転送処理が通常処理の影響を受けて画面イメージの転送に遅れが生じてリアルタイム性が失われる事態を避け、また、逆に、画面転送処理によりシステムインターコネクト40のデータ伝送帯域が圧迫されて、通常処理のデータ処理に遅延が生じてレスポンスが悪化する事態を避けることができる。
図3Cは、専用メモリ70を画面転送処理と下位互換処理の間で共有する構成を説明する図である。
旧世代機互換ハードウェア210は、旧世代ゲーム機などの旧世代機のハードウェアブロックである。旧世代機互換ハードウェア210は、メインメモリ50ではなく、専用メモリ70を利用してデータの読み書きを行う。ここで、専用メモリ70は、旧世代機互換性を維持するために、旧世代機に搭載されていたビデオメモリとレイテンシや帯域が同等になるように設計される。システムインターコネクト40を経由してアクセスされるメインメモリ50は、旧世代機に搭載されていたビデオメモリよりもレイテンシが大きく、互換性を維持するには適さないためである。
旧世代機互換ハードウェア210が動作する際、専用メモリ70はビデオメモリとして使用され、旧世代機互換ハードウェア210のGPUが専用メモリ70に描画データを書き込む。一方、図3Aおよび図3Bで説明したように、画面転送処理は、通常処理の影響を受けずにリアルタイムで動作させる必要があり、そのためにメインメモリ50とは別に専用メモリ70を搭載し、転送用画面イメージを専用メモリ70に書き込む構成とした。1つの専用メモリ70が旧世代機互換処理と画面転送処理の間で共有される構成であり、旧世代機との互換性を保つ目的と、画面転送処理のリアルタイム性を保証する目的の両方が同時に達成される。これにより回路規模を小さくし、かつ、効率良く旧世代機互換処理と画面転送処理を実行することができる。
図4は、DISPC60の構成図である。DISPC60は、システムインターコネクト40を介してメインメモリ50の複数のフレームバッファ52からライン単位でフレームデータを読み出し、フォーマット変換、ビット拡張処理、スケーリング処理、および色空間変換を行い、アルファブレンディングにより画像を合成して最終画面データを生成し、パネルに出力する。DISPC60のパイプラインはディスプレイ画面のリフレッシュレートで画面更新を行う。たとえば、リフレッシュレートが60Hzであれば、1秒間に60回、最終画面を生成する。
パスa(符号160a)は、フォーマット変換/ビット拡張部150a、スケーリング処理部152a、カラースペース変換部154aを含み、第1のフレームバッファ52から読み出されたフレームデータに対して、フォーマット変換、ビット拡張処理、スケーリング処理、および色空間変換を行う構成である。
パスb(符号160b)は、フォーマット変換/ビット拡張部150b、スケーリング処理部152b、カラースペース変換部154bを含み、第2のフレームバッファ52から読み出されたフレームデータに対して、フォーマット変換、ビット拡張処理、スケーリング処理、および色空間変換を行う構成である。
フォーマット変換/ビット拡張部150a、150bは、フレームバッファの各種フォーマット情報を読み取ってデータフォーマットを変換し、後段の処理で用いるビット長に拡張する。
スケーリング処理部152a、152bは、フレーム画像をディスプレイのサイズに合わせて拡大・縮小し、バイリニアフィルタなどを用いた画質改善を行う。
カラースペース変換部154a、154bは、ディスプレイの仕様に合わせてフレームの色空間を変換する。たとえばフレームデータをRGBやYCbCrなどのピクセル形式に変換する。
アルファブレンド部156は、パスaの変換後のフレームデータとパスbの変換後のフレームデータの入力をアルファブレンドし、合成画像を生成し、合成画像をMIPIインタフェース部158に出力する。MIPIインタフェース部158はアルファブレンド部156から受け取った画像を最終画面データとしてパネルに出力する。
図4では、2つのフレームバッファからのフレームデータの入力を前提とした構成例を示したが、3以上のフレームバッファをサポートする場合は、点線160aで囲んだフォーマット変換/ビット拡張部150a、スケーリング処理部152a、カラースペース変換部154aの構成を3以上並列に設け、アルファブレンド部156を、3以上のパスからの入力を受けて合成する多入力1出力の構成にすればよい。
DISPC60には、生成された画面イメージを転送用画面イメージとして取り出す転送用書き戻しパス64が設けられている。パスaおよびパスbの出力、すなわちフレームバッファからのフレームデータをフォーマット変換、ビット拡張、スケーリング処理、色空間変換した後の画面イメージは、パスa出力(path a−out)、パスb出力(path b−out)として取り出される。また、パスcの出力、すなわちパスaの出力とパスbの出力をアルファブレンドした後の画面イメージは、パスc出力(path c−out)として取り出される。パスa出力、パスb出力、およびパスc出力の画面イメージは、図3Aの実装例では専用パス62を経由して、図3Bの実装例ではシステムインターコネクト40を経由して、専用メモリ70に転送用画面イメージとして書き戻される。
パスa出力およびパスb出力の画面イメージを専用パス62またはシステムインターコネクト40経由で専用メモリ70に書き戻すことで、2画面合成前の画面イメージを個別に取り出すことができる。パスc出力をシステムインターコネクト40経由で専用メモリ70に書き戻すことで、2画面合成後の画面イメージを取り出すことができる。
図5(a)〜図5(c)は、DISPC60から転送用書き戻しパス64を用いて取り出した画面イメージを説明する図である。
図5(a)はパスa出力の画面イメージであり、ここでは動画ストリームである。図5(b)はパスb出力の画面イメージであり、ここではメニュー画面やゲーム画面である。図5(c)はパスc出力の画面イメージであり、ここではパスb出力のメニュー画面にパスa出力の動画を合成した画像である。DISPC60の転送用書き戻しパス64を利用することにより、これら3種類の画面イメージを取り出すことができる。
転送用画面イメージとして取り出された3種類の画面イメージの用途例をいくつか説明する。用途例1として、画面転送機能200を有する画面送信システムのディスプレイパネルにはパスc出力の合成画像を表示し、同じ画面イメージをAVCデコーダ400を有する画面受信システムに転送する。たとえば画面を送信側と受信側で共有したい場合や、受信側の大画面ディスプレイで送信側の画面を見たい場合などにこの方法を用いる。
用途例2として、画面送信システムのディスプレイパネルにはパスc出力の合成画像を表示し、画像受信システムにはパスa出力の動画ストリームを転送する。たとえば映画を大画面ディスプレイで見ながら、メニュー画面は送信側のモバイル機器100に表示させて手元で操作を行いたい場合にはこの方法が適する。メニュー画面は送信側のモバイル機器100には表示させずに、画面受信システムにおいて別途生成して表示してもよい。
用途例3として、画面送信システムのディスプレイパネルにはパスc出力の合成画面を表示し、2つの画面受信システムの内、一方にはパスa出力の画面を転送し、他方にはパスb出力の画面を転送する。たとえば、一方の画面受信システムのディスプレイには動画を、他方の画面受信システムのディスプレイにはゲーム画面を表示させることができる。
用途例4として、画面送信システムのディスプレイパネルにはいずれのパス出力の画像も表示せず、画面受信システムにはパスc出力の合成画像を転送する。送信側のモバイル機器100で見ていた画面を受信側のTV/モニタ300の大画面に切り替えて見たい場合などにこの方法を用いる。
図4では、1チャネルの画像出力を有するDISPC60の構成を示したが、画像出力を2チャネル設けてもよい。図6は、2チャネルの画像出力を設けたDISPC60の構成を説明する図である。第1チャネルCH1の構成(符号162)、第2チャネルCH2(符号164)の各構成は、図4と同じである。図2にも示したように、通常の用途では、第1チャネルCH1の最終画面データはLCD/OLEDパネル230に供給される一方、第2チャネルCH2の最終画面データはHDMI/MHLコネクタ260に供給され、HDMI/MHLで接続されたモニタなどに表示される。
図6のDISPC60においても、第1チャネルCH1について、第1チャネルCH1のパスaおよびパスbのアルファブレンド前の画像を取り出すパスpath a−outおよびpath b−out、第1チャネルCH1のパスcのアルファブレンド後の合成画像を取り出すパスpath c−outが設けられる。また、第2チャネルCH2についても、第2チャネルCH2のパスaおよびパスbのアルファブレンド前の画像を取り出すパスpath a−outおよびpath b−out、および第2チャネルCH2のパスcのアルファブレンド後の合成画像を取り出すパスpath c−outが設けられる。これらのパス出力の画面イメージは、図4と同様、図3Aの実装例では専用パス62を経由して、図3Bの実装例ではシステムインターコネクト40を経由して、専用メモリ70に転送用画面イメージとして書き戻される。
図6の出力2チャネルのDISPC60を用いれば、2種類の画面イメージを生成して転送用書き戻しパス65(path a−out、path b−out、path c−out)から転送用画面イメージとして取り出し、転送先の機器に転送することができる。
図7(a)〜図7(c)は、出力2チャネルのDISPC60の用途例を説明する図である。第1チャネルCH1では、送信側のモバイル機器100用の画面として、図7(a)に示す横1280縦720ピクセルの低解像度の画面Aを生成する。他方、第2チャネルCH2では、受信側のTV/モニタ300用の画面として、図7(b)に示す横1980縦1080ピクセルの高解像度の画面Bを生成する。第1チャネルCH1ではモバイル機器100のパネルのリフレッシュレートに合わせて画面を更新し、第2チャネルCH2ではTV/モニタ300のリフレッシュレートに合わせて画面を更新する。
図7(c)に示すように、DISPC60の第1チャネルCH1の画面Aは送信側のモバイル機器100のディスプレイパネルに出力される一方、第2チャネルCH2の画面Bは転送用書き戻しパスから転送用画面イメージとして取り出され、圧縮符号化された後、転送先のTV/モニタ300に転送される。TV/モニタ300は圧縮符号化された画面イメージを受信し、AVCデコーダ400により復号して、ディスプレイに表示する。これにより、送信側のモバイル機器100では低解像度の画面Aが表示され、受信側のTV/モニタ300では高解像度の画面Bが表示される。ただし、送信側のモバイル機器100に画面Aを表示する必要がない場合は、画面Aを未表示にしてもよい。
このようにして、出力2チャネルのDISPC60を用いれば、同じ画像であるが解像度やリフレッシュレートが異なる画面を生成することができるので、低解像度画面はモバイル機器100に直接出力する一方、高解像度画面はTV/モニタ300に転送して表示することができる。異なる解像度のフレームバッファを2つ用意する従来の方法と比べて、本実施の形態では、メモリ占有量やCPU負荷を増やさずに解像度とリフレッシュレートの異なる2枚の画面イメージを生成することができる。
図8(a)〜図8(c)は、出力2チャネルのDISPC60の別の用途例を説明する図である。第1チャネルCH1では、送信側のモバイル機器100用の画面として、図8(a)に示すタッチ操作メニューの画面Aを生成する。他方、第2チャネルCH2では、受信側のTV/モニタ300用の画面として、図8(b)に示すゲーム映像の画面Bを生成する。第1チャネルCH1ではモバイル機器100のパネルのリフレッシュレートに合わせて画面を更新し、第2チャネルCH2ではTV/モニタ300のリフレッシュレートに合わせて画面を更新する。
図8(c)に示すように、DISPC60の第1チャネルCH1の画面Aは送信側のモバイル機器100のディスプレイパネルに出力される一方、第2チャネルCH2の画面Bは転送用書き戻しパスから転送用画面イメージとして取り出され、圧縮符号化された後、転送先のTV/モニタ300に転送される。TV/モニタ300は圧縮符号化された画面イメージを受信し、AVCデコーダ400により復号して、ディスプレイに表示する。これにより、送信側のモバイル機器100ではタッチ操作メニューの画面Aが表示され、受信側のTV/モニタ300ではゲーム映像の画面Bが表示される。
このようにして、出力2チャネルのDISPC60を用いれば、異なる画面を生成することができるので、タッチ操作メニュー画面はモバイル機器100に直接出力して手元操作ができるようにする一方、ゲーム映像画面はTV/モニタ300に転送して大画面に表示することができる。
図9(a)〜図9(c)は、出力2チャネルのDISPC60のさらに別の用途例を説明する図である。第1チャネルCH1では、送信側のモバイル機器100用の画面として、図9(a)に示す横1280縦720ピクセルの低解像度の画面Aを生成する。他方、第2チャネルCH2では、受信側のTV/モニタ300およびパーソナルコンピュータ320用の画面として、図9(b)に示す横1980縦1080ピクセルの高解像度の画面Bを生成する。
図9(c)に示すように、DISPC60の第1チャネルCH1の画面Aは送信側のモバイル機器100のディスプレイパネルに出力される一方、第2チャネルCH2の画面Bは転送用書き戻しパスから転送用画面イメージとして取り出され、圧縮符号化された後、転送先のTV/モニタ300およびパーソナルコンピュータ320に送信される。TV/モニタ300およびパーソナルコンピュータ320は圧縮符号化された画面イメージを受信し、AVCデコーダ400により復号して、ディスプレイに表示する。これにより、送信側のモバイル機器100では低解像度の画面Aが表示され、受信側のTV/モニタ300およびパーソナルコンピュータ320では高解像度の画面Bが表示される。ただし、送信側のモバイル機器100に画面Aを表示する必要がない場合は、画面Aを未表示にしてもよい。
このようにして、出力2チャネルのDISPC60を用いれば、同じ画像であるが解像度やリフレッシュレートが異なる画面を生成することができるので、低解像度画面はモバイル機器100に直接出力する一方、高解像度画面はTV/モニタ300およびパーソナルコンピュータ320に転送して表示することができる。高解像度画面を複数の受信システムに転送することで複数のユーザが同じ画面を共有することができる。
図10は、画面送信システムと画面受信システムの間のソフトウェアハンドシェイクの手順を説明するフローチャートである。
画面送信システムは、画面接続リクエストを画面受信システムに送信する(S10)。この画面接続リクエストには、付属情報として、ゲームや映画など映像の種別を示す画面内容、解像度、リフレッシュレート、AVC圧縮フォーマット、オーディオの有無、オーディオフォーマット、画面受信システムにおけるユーザ入力の有無の問い合わせなどが含まれる。
画面送信システムは、DISPC60、AVCエンコーダ80およびI/O90を初期化してビデオ転送を準備し、オーディオ転送を準備し、TCP/IPとUDPを準備する(S12)。
画面接続リクエストを受けた画面受信システムは、AVCデコーダ400、I/Oを初期化し、オーディオ処理を準備し、ユーザ入力の転送準備、TCP/IPとUDPを準備する(S14)。画面受信システムは画面接続アクノレッジを画面送信システムに返信する(S16)。この画面接続アクノレッジには、付属情報として、ユーザ入力の有無が含まれる。ここではユーザ入力がある場合を説明する。画面送信システムは、画面受信システムからユーザ入力を受け取る準備をする(S18)。
画面受信システムは、初期化が完了し、画面転送を受け取る準備ができた旨の接続OKの通知を画面送信システムに送信する(S20)。画面送信システムは画面転送の準備完了を確認し(S22)、初期化が完了し、画面転送を開始する旨の接続開始通知を画面受信システムに送信する(S24)。
画面送信システムと画面受信システムは、TCP/IPにおけるUDPコネクションレス通信でデータの送受信を行う(S26〜S29)。画面送信システムは、画面とオーディオを画面受信システムに送信し、画面受信システムからユーザ入力を受信する(S30)。画面受信システムは、画面とオーディオを画面送信システムから受信し、画面送信システムへユーザ入力を送信する(S32)。
本実施の形態の画面転送システムによれば、ある機器から別の機器へ画面イメージをリアルタイムで転送することができる。また転送先の機器におけるユーザ入力が転送元の機器に転送されるため、転送元の機器においてユーザ入力を反映した画面イメージを生成し、転送先の機器に更新された画面イメージを転送することができる。これにより、ユーザ入力が転送画面にリアルタイムで反映され、転送先の機器をユーザが用いてもレスポンスが悪くなることがない。
転送用画面イメージをディスプレイコントローラから取り出して専用メモリに書き戻すパスを設けたことにより、低レイテンシで画面イメージを転送先の機器に転送することができる。また、システムインターコネクトとは分離して画面転送処理用の専用のデータパスを設けたことにより、画面転送処理と通常処理が競合してシステムリソースを奪い合い、アプリケーションの挙動に変化が生じたり、画面転送が遅延する事態を避けることができる。
特に画面転送時のシステム負荷が増大すると、ソフトウェアの挙動に予測できない変化が起き、ソフトウェアの挙動を安定させるための開発コストが増大する。また、画面転送をすることでアプリケーションの動作が重くなったり、画面更新頻度が低下することをユーザは望まない。本実施の形態では、画面転送処理と通常処理を専用パスやQoS制御によって分離することでそのような事態を回避している。
また、転送用画面イメージは標準的な圧縮符号化を用いて符号化されて転送されるため、画面受信システムに通常のデコーダを搭載するだけで画面イメージを復号して表示することができる。特にフレーム間予測を行わない圧縮符号化を用いることにより、符号化にかかる処理時間を抑え、遅延なく画面イメージを転送することができる。
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。