JP2014063259A - 端末装置,及び処理プログラム - Google Patents

端末装置,及び処理プログラム Download PDF

Info

Publication number
JP2014063259A
JP2014063259A JP2012206747A JP2012206747A JP2014063259A JP 2014063259 A JP2014063259 A JP 2014063259A JP 2012206747 A JP2012206747 A JP 2012206747A JP 2012206747 A JP2012206747 A JP 2012206747A JP 2014063259 A JP2014063259 A JP 2014063259A
Authority
JP
Japan
Prior art keywords
content
terminal device
processing
display
encoder
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2012206747A
Other languages
English (en)
Inventor
Takuma Yamada
琢磨 山田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2012206747A priority Critical patent/JP2014063259A/ja
Priority to US14/016,694 priority patent/US20140078020A1/en
Publication of JP2014063259A publication Critical patent/JP2014063259A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/147Digital output to display device ; Cooperation and interconnection of the display device with other functional units using display panels
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/1454Digital output to display device ; Cooperation and interconnection of the display device with other functional units involving copying of the display data of a local workstation or window to a remote workstation or window so that an actual copy of the data is displayed simultaneously on two or more displays, e.g. teledisplay
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/02Handling of images in compressed format, e.g. JPEG, MPEG
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2370/00Aspects of data communication
    • G09G2370/16Use of wireless transmission of display information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

【課題】端末装置に表示されるコンテンツを受信装置に表示させる際の利便性を向上させる。
【解決手段】表示処理部14において表示処理が行なわれたコンテンツに対して、受信装置20へ送信するための第1のエンコード処理を実行する第1エンコーダ16を実装する集積回路3を有する。
【選択図】図1

Description

本発明は、端末装置,及び処理プログラムに関する。
近年、テレビやPersonal Computer(PC)に加えて、スマートフォンやタブレットPC(以下、単にタブレットという)等の端末装置の普及が進んでいる。端末装置に表示される画面を、テレビ又はPCのディスプレイ等の表示装置に表示(画面ミラーリング)させることができれば、多人数で映像や音声等のコンテンツ又は各種サービスを利用することができる。なお、端末装置としては、Android(登録商標) OSにより動作するスマートフォン又はタブレット等が挙げられる。
画面ミラーリングを行なう手法としては、High-Definition Multimedia Interface(HDMI)ケーブル又はHDMI変換アダプタを用いて、ミラーリング元である端末装置とミラーリング先である表示装置とを接続する手法が知られている。
また、ネットワーク上の離れたPCを遠隔操作するための技術として、Virtual Network Computing(VNC)が知られている。VNCでは、VNCサーバとしてのミラーリング元からデスクトップ等の画面データを送信するとともに処理を受け付け、VNCクライアントとしてのミラーリング先が、受信した画面データに基づきVNCサーバを遠隔操作する。図23は、VNCサーバにおける画像処理の動作例を説明するフローチャートである。なお、図23では、1フレームの処理を示している。
図23に示すように、VNCサーバでは、VNCクライアントへ送信するフレームについて、前フレームとの比較が行なわれ(ステップS101)、前フレームとの差分から更新ブロックが決定される(ステップS102)。そして、VNCサーバにより、残り処理ブロックがあるか否かが判定される(ステップS103)。残り処理ブロックがない場合(ステップS103のNoルート)、例えばステップS102において更新ブロックが決定されなかった場合、1フレームの処理が終了する。一方、残り処理ブロックがある場合(ステップS103のYesルート)、VNCサーバにより、更新ブロック内が単色か否かが判定される(ステップS104)。
更新ブロック内が単色である場合(ステップS104のYesルート)、VNCサーバにより、更新ブロックの矩形が塗りつぶされてVNCクライアントへ送信され、ステップS103に移行する(ステップS105)。一方、更新ブロック内が単色ではない場合(ステップS104のNoルート)、VNCサーバにより、前フレームから更新ブロックに近い画像が検索されることで動き補償が検出され(ステップS106)、前フレーム内に更新ブロックに近い画像があるか否か、つまり動き補償があるか否かが判定される(ステップS107)。
前フレーム内に更新ブロックに近い画像がある場合、つまり動き補償がある場合(ステップS107のYesルート)、VNCサーバにより、前フレーム内の該当領域の矩形をコピーする旨の命令がVNCクライアントへ送信され、ステップS103に移行する(ステップS108)。一方、前フレーム内に更新ブロックに近い画像がない場合、つまり動き補償がない場合(ステップS107のNoルート)、VNCサーバにより、ブロック画像が圧縮され(ステップS109)、圧縮画像とともに矩形を描画する旨の命令がVNCクライアントへ送信され、ステップS103に移行する(ステップS110)。
VNCサーバは、上記処理をフレームごとに実行することにより、VNCクライアントへミラーリング元の画像データを送信する。このVNCを用いて、画面ミラーリングを行なうことも考えられる。
図24は、装置間でVNCにより画面ミラーリングを行なう通信システム100−1の構成例を示す図であり、図25は、装置間でHDMIにより画面ミラーリングを行なう通信システム100−2の構成例を示す図である。図24に示すように、通信システム100−1は、ミラーリング元である端末装置1000−1と、ミラーリング先である表示装置2000−1とを有している。また、図25に示すように、通信システム100−2は、ミラーリング元である端末装置1000−2と、ミラーリング先である表示装置2000−2とを有している。以下、通信システム100−1及び100−2を区別しない場合には、単に通信システム100という。また、端末装置1000−1及び1000−2を区別しない場合には、単に端末装置1000といい、表示装置2000−1及び2000−2を区別しない場合には、単に表示装置2000という。
図24に示す例では、端末装置1000−1と表示装置2000−1とは、Local Area Network(LAN)、例えば無線LAN1000aを介して接続される。また、図25に示す例では、端末装置1000−2と表示装置2000−2とは、HDMIケーブル又はHDMIアダプタ等のケーブル1000bを介して接続される。以下、図24に示す通信システム100−1が、端末装置1000−1及び表示装置2000−1間の画面ミラーリングを、無線LAN1000aを介してVNCを実行する場合を想定して説明する。また、図25に示す通信システム100−2が、端末装置1000−2及び表示装置2000−2間の画面ミラーリングを、ケーブル1000bを介してHDMI出力を行なう場合を想定して説明する。
図24に示すように、端末装置1000−1は、アプリケーション1100−1、ライブラリ1200、ドライバ1300−1、表示処理部1400−1、表示部1500、及び送信部1600を有する。また、表示装置(受信装置)2000−1は、アプリケーション2100−1、ライブラリ2200、ドライバ2300−1、表示処理部2400−1、表示部2500−1、及び受信部2600を有する。
一方、図25に示すように、端末装置1000−2は、アプリケーション1100−2、ライブラリ1200、ドライバ1300−2、表示処理部1400−2、及び表示部1500を有する。また、表示装置(受信装置)2000−2は、アプリケーション2100−2、ライブラリ2200、ドライバ2300−2、表示処理部2400−2、及び表示部2500−2を有する。
まず、図24及び図25に示す各構成の共通の機能を説明する。なお、以下の説明では、便宜上、各構成の符号の末尾の“−1”又は“−2”の表記を省略する。例えば、アプリケーション1100−1及び1100−2の共通の機能を説明する場合には、アプリケーション1100と表記する。他の構成についても同様である。
アプリケーション1100,2100は、それぞれ端末装置1000,表示装置2000においてコンテンツを生成又は管理するソフトウェアである。ライブラリ1200,2200は、それぞれアプリケーション1100とドライバ1300との間,アプリケーション2100とドライバ2300との間の中間レイヤに位置する共通インターフェースである。ドライバ1300,2300は、それぞれ端末装置1000,表示装置2000のハードウェアを制御するソフトウェアである。
表示処理部1400,2400は、それぞれアプリケーション1100,2100からのコンテンツに対して、表示部1500,2500に表示するための表示処理を実行する。なお、表示処理部1400,2400としては、例えばGraphics Processing Unit(GPU)及びDisplay Controller(ディスプレイコントローラ,以下、DCという)が挙げられる。表示部1500,2500は、それぞれ表示処理部1400,2400により表示処理が行なわれたコンテンツを表示する。表示部1500,2500としては、Liquid Crystal Display(LCD)等のディスプレイが挙げられる。
また、上述した図24及び図25の各構成の共通の機能に加えて、図24に示す各構成は、以下の機能を有する。
アプリケーション1100−1はVNCサーバの機能を含み、アプリケーション2100−2はVNCクライアントの機能を含む。ドライバ1300−1は、VNCサーバとしてのアプリケーション1100−1により生成されたコンテンツを送信部1600へ渡す機能を有する。また、ドライバ2300−1は、受信部2600により受信されたコンテンツを受け取り、表示処理部2400−1へ渡す機能を有する。
表示処理部2400−1は、無線LAN1000a及び受信部2600を介してドライバ2300−1が受信した、VNCサーバ(端末装置1000−1)からのコンテンツ(画像情報)に対しても表示処理を実行する。送信部1600は、VNCサーバとしてのアプリケーション1100−1により生成されたコンテンツを、無線LAN1000aを介して表示装置2000へ送信する。受信部2600は、送信部1600からのコンテンツを受信し、ドライバ2300−1へ渡す。
以上の構成により、図24に示す通信システム100−1は、端末装置1000−1に表示される画面を、無線LAN1000aを用いたVNCにより、表示装置2000−1に表示(画面ミラーリング)することができる。
一方、上述した図24及び図25の各構成の共通の機能に加えて、図25に示す各構成は、以下の機能を有する。
表示処理部1400−2は、表示処理を実行したコンテンツをケーブル1000bを介して表示装置2000へ転送する機能を有する。また、表示部2500−2は、ケーブル1000bを介して受信したコンテンツを表示することができる。
以上の構成により、図25に示す通信システム100−2は、端末装置1000−2に表示される画面を、ケーブル1000bを用いたHDMIにより、表示装置2000−2に表示(画面ミラーリング)することができる。
次に、図24に示す端末装置1000−1における、コンテンツの表示処理及び格納処理について説明する。図26は、図24に示す端末装置1000−1のハードウェア構成例を示す図であり、図27は、図26に示す端末装置1000−1によるコンテンツの表示処理及び格納処理の動作例を説明するフローチャートである。
図26に示すように、端末装置1000−1は、System-on-a-chip(SoC,システムオンチップ)3000、カメラ5100、及びSynchronous Dynamic Random Access Memory(SDRAM)5200を有する。また、端末装置1000−1は、フラッシュメモリ5300、Wireless Fidelity(Wi−Fi)コントローラ5400、及びLCD1500を有する。
カメラ5100は、静止画又は動画(ムービー,ビデオ)を撮影して電気信号に変換し、コンテンツとしてSoC3000へ出力する撮像素子である。SDRAM5200は、カメラ5100により撮影されたコンテンツを一時的に保持する揮発性メモリの一例である。フラッシュメモリ5300は、カメラ5100により撮影され、SoC3000により所定の処理が行なわれたコンテンツを格納する不揮発性メモリの一例である。Wi−Fiコントローラ5400は、表示装置2000−1との間でWi−Fi通信によるデータの送受信を行なうコントローラであり、図24に示す送信部1600の一例である。
SoC3000は、L3 Interconnect(L3インターコネクト)3100、Central Processing Unit(CPU)3200、イメージングプロセッサ3300、GPU3400、及びDC3500を有する。また、SoC3000は、H.264エンコーダ3600、NANDコントローラ3700、Ethernet(登録商標) Media Access Controller(EMAC)3800を有する。
L3インターコネクト3100は、SoC3000上の回路ブロック間を接続する高速インターフェースである。図26に示す符号3200〜3800の各ブロック、及びSDRAM5200は、L3インターコネクト3100を介して相互に接続される。CPU3200は、SDRAM5200に格納された所定のプログラムを実行することにより、端末装置1000−1における各種処理を実行するプロセッサの一例である。なお、CPU3200に代えて、Micro Processing Unit(MPU)が用いられても良い。
イメージングプロセッサ3300は、カメラ5100により撮影されたコンテンツに対してノイズ補正やフィルタ処理等の所定の処理を実行して、SDRAM5200へ保持させるプロセッサである。GPU3400は、SDRAM5200が保持するコンテンツに対して、LCD1500に表示させるための描画処理を実行するプロセッサである。DC3500は、GPU3400により描画処理が行なわれたコンテンツをLCD1500へ出力するコントローラである。GPU3400及びDC3500は、図24に示す表示処理部1400−1の一例である。
H.264エンコーダ3600は、SDRAM5200が保持する動画(ムービー)のコンテンツに対して、H.264方式のエンコード(圧縮)処理を行なうエンコーダである。NANDコントローラ3700は、フラッシュメモリ5300に対する書き込み及び読み出しを制御するコントローラであり、H.264エンコーダ3600によりエンコードされたコンテンツをフラッシュメモリ5300へ格納する。EMAC3800は、CPU3200とイーサネット(登録商標)ネットワークとの間の送受信を制御するコントローラであり、図26に示す例では、Wi−Fiコントローラ5400を通じてCPU3200とWi−Fiネットワークとの間の送受信を制御する。
なお、LCD1500は、GPU3400及びDC3500により表示処理が行なわれたコンテンツを表示するものであり、図24に示す表示部1500の一例である。
上述の如く構成された端末装置1000−1では、図27に示すようにコンテンツの表示処理及び格納処理が実行される。なお、図27では、カメラ5100により動画(ムービー)のコンテンツが撮影される場合の処理を示す。
図27に示すように、カメラ5100によりコンテンツが撮影(生成)されると(ステップS111)、イメージングプロセッサ3300により、コンテンツに対する画像処理が実行され(ステップS112)、画像処理結果がSDRAM5200に保持される(ステップS113)。
次いで、GPU3400により、SDRAM5200が保持するコンテンツに対して描画処理が実行され(ステップS114)、DC3500により、描画結果がLCD1500へ出力される(ステップS115)。そして、LCD1500により出力結果が表示され(ステップS116)、処理が完了する。
一方、H.264エンコーダ3600では、SDRAM5200が保持するコンテンツに対してH.264方式のエンコードが実行され(ステップS117)、エンコード結果がフラッシュメモリ5300に保持されて(ステップS118)、処理が完了する。
なお、図27は、端末装置1000−1における1フレームに対する処理を示しているため、端末装置1000−1は、コンテンツの全フレームに対して図27に示す処理を行なう。
上述した構成例及び動作例により、端末装置1000−1において、コンテンツのLCD1500への表示処理及びフラッシュメモリ5300への格納処理が行なわれる。なお、図25に示す端末装置1000−2についても、図26及び図27に示すものと同様の構成及び動作とすることができる。
なお、関連する技術として、システムオンチップの電力管理に関し、インターコネクトに接続されるスレーブユニットが、トランザクションとともに渡される、次のトランザクションが送られるまでの時間間隔を指定する信号に応答して、電力状態を制御する技術が知られている(例えば、特許文献1参照)。この技術によれば、システムオンチップにおける電力と遅延のトレードオフを軽減して電力を管理することができ、また、中央電力コントローラを不要とすることができる。
また、関連する他の技術として、アービトレーション回路が、マスタデバイスから共有リソースへ発行された複数のトランザクションの中から、複数のトランザクションのそれぞれに関連付けられた優先レベルを使用して、あるトランザクションを選択する技術が知られている(例えば、特許文献2参照)。
特表2009−545048号公報 特開2011−65649号公報
上述のように、技術的には、VNC技術により、Android OSに対応する端末装置1000−1に表示される画面を、表示装置2000−1に表示させることができる可能性があるが、以下の(i)〜(iv)に示す問題により、利便性が損なわれる場合がある。
(i)VNCでは、変更が生じたブロックのみ更新され、また、ブロックごとにVNCサーバから出力されるタイミングが異なるため、表示装置2000−1に表示される画面にブロック状の表示乱れが生じる。
(ii)VNCサーバにおける画像処理における更新ブロック数や処理の流れによって、1〜数10フレームの遅延幅がある。つまり、表示装置2000−1における画面表示に、最大数10フレーム(数秒)程度の遅延が生じる。
(iii)VNCでは、2Mbps以上の伝送速度で動作可能であるが、高解像度の動画の表示には数10Mbps以上が要求される。従って、高解像度の動画ではVNCサーバにおける画像処理が間に合わず、数〜数10フレーム飛ばしの動作となる。このため、VNC技術を用いてムービー等のマルチメディアコンテンツを表示装置2000−1に表示することは困難である。
(iv)VNCサーバにおけるフレーム間差分、動き補償、及び画像圧縮等の負荷の高い各処理はソフトウェアにより行なわれるため、端末装置1000−1のMPU(CPU1500)の使用率が上昇する。これにより、MPUは、アプリケーション1100−1及びOperating System(OS)と共通のMPUリソースを大量に使用することになり、アプリケーション1100−1及びOSの動作に与える影響が大きい。
一方、HDMIにより、ケーブル1000bを介して端末装置1000−2に表示される画面を表示装置2000−2に表示させる場合には、マルチメディアコンテンツを表示装置2000−2に表示することも可能である。例えば、図25に示す表示制御部1400−2から、1080p,30fps,24bit出力の動画のコンテンツが出力される場合、非圧縮のデータが約1.5Gbpsの転送速度で出力される。一方、HDMIケーブル又はHDMIアダプタ等のケーブル1000bは、当該動画のコンテンツを約1.5Gbpsの転送速度で転送することができる。
しかし、HDMIにより動画のコンテンツを転送する場合には、端末装置1000−2と表示装置2000−2とをケーブル1000bにより物理的に接続することになるため、端末装置1000−2と表示装置2000−2との位置関係が制限され、利便性が損なわれる。
このように、上述した各技術では、端末装置1000に表示されるコンテンツを表示装置(受信装置)2000に表示させる画面ミラーリングにおいて、利便性が損なわれるという問題がある。
なお、上述した関連する各技術では、上述した問題については考慮されていない。
1つの側面では、本発明は、端末装置に表示されるコンテンツを受信装置に表示させる際の利便性を向上させることを目的とする。
なお、前記目的に限らず、後述する発明を実施するための形態に示す各構成により導かれる作用効果であって、従来の技術によっては得られない作用効果を奏することも本発明の他の目的の1つとして位置付けることができる。
本件の端末装置は、表示処理部において表示処理が行なわれたコンテンツに対して、受信装置へ送信するための第1のエンコード処理を実行する第1エンコーダを実装する集積回路を有する。
一実施形態によれば、端末装置に表示されるコンテンツを受信装置に表示させる際の利便性を向上させることができる。
一実施形態に係る通信システムの構成例を示す図である。 図1に示す端末装置のハードウェア構成例を示す図である。 図2に示す端末装置によるコンテンツの表示処理、格納処理、及び送信処理の動作例を説明するフローチャートである。 図2に示すM−JPEGエンコーダによるエンコード処理の動作例を説明するフローチャートである。 一実施形態の第1実施例に係る端末装置のハードウェア構成例を示す図である。 図5に示す端末装置によるコンテンツの表示処理、格納処理、及び送信処理の動作例を説明するフローチャートである。 図5に示す端末装置によるコンテンツの表示処理、格納処理、及び送信処理の動作例を説明するシーケンス図である。 一実施形態の第1実施例に係る表示装置のハードウェア構成例を示す図である。 図8に示す表示装置によるコンテンツの受信処理、及び表示処理の動作例を説明するフローチャートである。 図8に示す表示装置によるコンテンツの受信処理、及び表示処理の動作例を説明するシーケンス図である。 一実施形態の第2実施例に係る端末装置のハードウェア構成例を示す図である。 図11に示すハードウェアアクセラレータの構成例を示す図である。 図11に示すハードウェアアクセラレータによるエンコード処理の動作例を説明するフローチャートである。 図11に示す端末装置によるコンテンツの表示処理、格納処理、及び送信処理の動作例を説明するフローチャートである。 図11に示す端末装置によるコンテンツの表示処理、格納処理、及び送信処理の動作例を説明するシーケンス図である。 一実施形態の第3実施例に係る端末装置のハードウェア構成例を示す図である。 図16に示す端末装置によるコンテンツの表示処理、格納処理、及び送信処理の動作例を説明するフローチャートである。 図16に示す端末装置によるコンテンツの表示処理、格納処理、及び送信処理の動作例を説明するシーケンス図である。 一実施形態及び第1実施例〜第3実施例に係る端末装置におけるSoCの内部バスの通信量の一例を示す図である。 一実施形態の第1実施例に係る端末装置におけるSoCの内部バスの通信量の一例を示す図である。 一実施形態の第2実施例に係る端末装置におけるSoCの内部バスの通信量の一例を示す図である。 一実施形態の第3実施例に係る端末装置におけるSoCの内部バスの通信量の一例を示す図である。 VNCサーバにおける画像処理の動作例を説明するフローチャートである。 装置間でVNCにより画面ミラーリングを行なう通信システムの構成例を示す図である。 装置間でHDMIにより画面ミラーリングを行なう通信システムの構成例を示す図である。 図24に示す端末装置のハードウェア構成例を示す図である。 図26に示す端末装置によるコンテンツの表示処理及び格納処理の動作例を説明するフローチャートである。
以下、図面を参照して実施の形態を説明する。
〔1〕一実施形態
〔1−1〕通信システムの説明
図1は、一実施形態に係る通信システム1の構成例を示す図であり、図2は、図1に示す端末装置10(10a〜10c)のハードウェア構成例を示す図である。図1に示すように、通信システム1は、端末装置10(10a〜10c)及び表示装置20を有している。なお、端末装置10a〜10cは、それぞれ後述する第1実施例〜第3実施例に係る端末装置であるが、基本的な構成は本実施形態に係る端末装置10と共通している。以下の説明において、端末装置10及び後述する各端末装置10a〜10cを区別しない場合には、単に端末装置10という。
本実施形態において、通信システム1は、ミラーリング元である端末装置10に表示される画面を、ミラーリング先である表示装置20に表示させる画面ミラーリングを行なう。
端末装置10と表示装置20とは、LAN(好ましくは無線LAN)等のネットワークを介して接続される。以下、通信システム1が、端末装置10及び表示装置20間の画面ミラーリングを、Wi−Fi通信1aを介して行なう場合について説明する。
端末装置10は、図1に示すように、アプリケーション11、ライブラリ12、ドライバ13、表示処理部14、表示部15、エンコーダ16、及び送信部17を有する。また、表示装置(受信装置)20は、図1に示すように、アプリケーション21、ライブラリ22、ドライバ23、表示処理部24、表示部25、受信部26、及びデコーダ27を有する。
なお、端末装置10としては、スマートフォン、タブレット、又はノートPC等の移動可能な情報処理装置が挙げられる。また、端末装置10として、デスクトップPCやサーバ等の据え置き型の情報処理装置が用いられても良い。本実施形態においては、端末装置10は、Android OSにより動作するスマートフォン又はタブレットであるものとして説明する。
また、表示装置20としては、テレビ、スマートフォン、タブレット、又はPC等、端末装置10からコンテンツを受信し表示可能な装置が挙げられる。
さらに、コンテンツとは、静止画、動画(ムービー,ビデオ)、及び音声(オーディオ)の1以上の組み合わせを含む情報である。以下、本実施形態においては、コンテンツは、ムービー及びオーディオを含むマルチメディアコンテンツであるものとして説明する。
アプリケーション11,21は、それぞれ端末装置10,表示装置20においてコンテンツを生成又は管理するソフトウェアである。例えば、アプリケーション11は、カメラ51(図2参照)によるムービー撮影、表示部15に対する画面表示、及びWi−Fi通信1aを介した画面ミラーリング出力の実行を制御する機能を含む。また、アプリケーション21は、Wi−Fi通信1aを介した画面ミラーリング入力、及び表示部25に対する画面表示の実行を制御する機能を含む。
ライブラリ12,22は、それぞれアプリケーション11とドライバ13との間,アプリケーション21とドライバ23との間の中間レイヤに位置する共通インターフェースである。ドライバ13は、端末装置10のハードウェアを制御するソフトウェアである。表示処理部14は、アプリケーション11からのコンテンツに対して、表示部15に表示するための表示処理を実行する。表示部15,25は、それぞれ表示処理部14,24により表示処理が行なわれたコンテンツを表示する。表示部15,25としては、LCD等のディスプレイ又はプロジェクタ等が挙げられる。
エンコーダ(第1エンコーダ)16は、表示処理部15において表示処理が行なわれたコンテンツ(表示処理後のコンテンツ)に対して、表示装置20へ送信するためのエンコード(圧縮)処理(第1のエンコード処理)を実行する。
送信部17は、エンコーダ16によりエンコード処理が行なわれたコンテンツを、Wi−Fi通信1aを介して表示装置20へ送信する。受信部26は、送信部17からのコンテンツを受信し、ドライバ23へ渡す。ドライバ23は、表示装置20のハードウェアを制御するソフトウェアである。また、ドライバ23は、受信部26が受信したコンテンツを受け取り、デコーダ27へ渡す。
デコーダ27は、ドライバ23から受け取ったコンテンツに対して、エンコーダ16によりエンコードされた方式でデコードを実行する。表示処理部24は、アプリケーション21からのコンテンツに対して、表示部25に表示するための表示処理を実行する。また、表示処理部24は、デコーダ27によりデコード処理が行なわれたコンテンツに対しても表示処理を実行する。なお、表示処理部14,24としては、例えばGPU及びディスプレイコントローラ(DC)が挙げられる。
以上の構成により、通信システム1は、端末装置10に表示される画面を、表示装置20に表示する画面ミラーリングを実行することができる。
なお、受信部26は、送信部17から受信したコンテンツを、ドライバ23ではなくライブラリ22へ渡すこととしても良い。
また、エンコーダ16によるエンコード処理は、圧縮率の高い方式により行なわれることが好ましい。これは、Wi−Fi通信1a等の無線LANは、HDMI等のケーブルを介した通信よりも転送速度が低いためである。
例えば、HDMI 1.0〜1.2は最大4.95Gbps、HDMI 1.3〜1.4は最大10.2Gbpsの転送速度を有する。一例として、端末装置10から、1080p,30fps、24bit出力の非圧縮の動画のコンテンツが出力される場合、HDMIによれば、既述のように非圧縮の動画のコンテンツが約1.5Gbpsの転送速度で転送される。
一方、IEEE 802.11nで規定されるWi−Fi通信は、公称速度が65〜600Mbpsである(但し、実効速度は公称速度の半分から1/3程度)。
以上のことから、エンコーダ16によるエンコード処理は、圧縮率が1/20〜1/30程度を目標とすることが好ましい。上記圧縮率の条件を満たす方式としては、Motion-Joint Photographic Experts Group(M−JPEG)方式が挙げられる。以下、本実施形態においては、エンコーダ16は、送信するコンテンツに対して、M−JPEG方式のエンコード処理を実行し、デコーダ27は、受信したコンテンツに対して、M−JPEG方式のデコード処理を実行するものとして説明する。
〔1−2〕端末装置の構成例
次に、本実施形態に係る端末装置10のハードウェア構成例を説明する。
図2に示すように、端末装置10は、システムオンチップ(SoC)3、カメラ51、SDRAM52、フラッシュメモリ53、Wi−Fiコントローラ54、及びLCD15を有する。なお、端末装置10は、Input Output(I/O)デバイスとして、オーディオデータを取得(録音)するマイク、オーディオデータを出力するスピーカー、並びにLCD15に搭載されるタッチパネル又はキーボード等の入力装置(いずれも図示省略)を有しても良い。
カメラ51は、静止画又は動画を撮影して電気信号に変換し、コンテンツとしてSoC3へ出力する撮像素子である。
SDRAM(メモリ)52は、種々のデータやプログラムを一時的に格納する記憶装置であって、揮発性メモリの一例である。SDRAM52は、CPU32がプログラムを実行する際に、データやプログラムを一時的に格納・展開して用いる。また、SDRAM52は、カメラ51により撮影されたコンテンツを一時的に保持する。
フラッシュメモリ(格納部)53は、カメラ51により撮影され、SoC3により所定の処理が行なわれたコンテンツを格納する不揮発性メモリの一例である。
Wi−Fiコントローラ54は、表示装置20との間でWi−Fi通信によるデータの送受信を行なうコントローラであり、図1に示す送信部16の一例である。
SoC(集積回路)3は、L3インターコネクト31、CPU32、イメージングプロセッサ33、GPU34、DC35、H.264エンコーダ36、NANDコントローラ37、EMAC38を有する。
L3インターコネクト31は、SoC3上の回路ブロック間を接続するインターフェースであり、SoC3内の他のインターコネクト及びバスの中で最も高速なデータ転送速度を有する。図2に示す符号16及び32〜38の各ブロック、並びにSDRAM52は、L3インターコネクト31を介して相互に接続される。
CPU32は、SDRAM52又は図示しないRead Only Memory(ROM)等に格納されたプログラムを実行することにより、種々の機能を実現するプロセッサの一例である。なお、CPU32に代えて、後述する第1〜第3実施例のように、MPUが用いられても良い。
イメージングプロセッサ33は、カメラ51により撮影されたコンテンツに対してノイズ補正やフィルタ処理等の所定の処理を実行して、SDRAM52へ保持させるプロセッサである。
GPU34は、SDRAM52が保持するコンテンツに対して、LCD15に表示させるための描画処理を実行するプロセッサである。また、DC35は、GPU34により描画処理が行なわれたコンテンツをLCD15へ出力するコントローラである。なお、GPU34及びDC35は、図1に示す表示処理部14の一例である。
H.264エンコーダ(第2エンコーダ)36は、SDRAM52に保持される動画のコンテンツに対して、フラッシュメモリ53に格納するためのH.264方式のエンコード(圧縮)処理を実行して、フラッシュメモリ53へ格納するエンコーダである。
NANDコントローラ37は、フラッシュメモリ53に対する書き込み及び読み出しを制御するコントローラであり、H.264エンコーダ36によりエンコードされたコンテンツをフラッシュメモリ53へ格納する。
M−JPEGエンコーダ(第1エンコーダ)16は、図1に示すエンコーダ16の一例であり、DC35により表示処理が施されたコンテンツに対して、M−JPEG方式のエンコード処理を行なう。なお、M−JPEGエンコーダ16によるエンコード処理は、H.264エンコーダ36によるエンコード処理よりも圧縮率の高いエンコード処理である。
EMAC38は、CPU32とイーサネットネットワークとの間の送受信を制御するコントローラであり、図2に示す例では、Wi−Fiコントローラ54を通じてCPU32とWi−Fiネットワークとの間の送受信を制御する。
なお、LCD15は、GPU34及びDC35により表示処理が行なわれたコンテンツを表示するものであり、図1に示す表示部15の一例である。
〔1−3〕一実施形態の動作例
次に、上述の如く構成された端末装置10の動作例を、図3及び図4を参照して説明する。図3は、図2に示す端末装置10によるコンテンツの表示処理、格納処理、及び送信処理の動作例を説明するフローチャートであり、図4は、図2に示すM−JPEGエンコーダ16によるエンコード処理の動作例を説明するフローチャートである。
なお、図3では、カメラ5100により動画(ムービー)のコンテンツが撮影される。
〔1−3−1〕通信システムの動作例
はじめに端末装置10の動作例を説明する。
図3に示すように、カメラ51によりコンテンツが撮影(生成)されると(ステップS1)、イメージングプロセッサ33により、コンテンツに対する画像処理が実行され(ステップS2)、画像処理結果がSDRAM52に保持される(ステップS3)。
次いで、GPU34により、SDRAM52が保持するコンテンツに対して描画処理が実行され(ステップS4)、DC35により、描画結果がLCD15へ出力される(ステップS5)。そして、LCD15により出力結果が表示され(ステップS6)、表示処理が完了する。
一方、H.264エンコーダ36では、SDRAM52が保持するコンテンツに対してH.264方式のエンコードが実行され(ステップS7)、エンコード結果がフラッシュメモリ53に保持されて(ステップS8)、格納処理が完了する。
また、M−JPEGエンコーダ16では、DC35によりLCD15用に調整されてLCD15へ出力される描画結果、つまり表示処理が行なわれたコンテンツに対してM−JPEG方式のエンコードが実行される(ステップS9)。そして、Wi−Fiコントローラ54により、エンコード結果がWi−Fi通信1aを介して表示装置20へ送信され(ステップS10)、送信処理が完了する。
なお、図3は、端末装置10における1フレームに対する処理を示しているため、端末装置10は、コンテンツの全フレームに対して図3に示す処理を行なう。このように、上述した動作が、生成されるコンテンツのフレームごとに実行されることにより、端末装置10において、コンテンツのLCD15への表示処理、フラッシュメモリ53への格納処理、及び表示装置20への送信処理(画面ミラーリング)が行なわれる。
〔1−3−2〕M−JPEGエンコーダの動作例
次に、M−JPEGエンコーダ16の動作例を説明する。
図4に示すように、M−JPEGエンコーダ16により、DC35によって表示処理が行なわれたコンテンツに対して、例えば16ラインごとに処理を行なうために16ライン分のバッファリングが行なわれる(ステップS11)。なお、バッファリングは、図示しないM−JPEGエンコーダ16が有するレジスタを用いて行なわれる。
次いで、M−JPEGエンコーダ16により、16ライン分のコンテンツに対して、RGB系からYCbCrによる色空間への変換が行なわれる(ステップS12)。そして、M−JPEGエンコーダ16により、色変換が行なわれたコンテンツに対して、色差に基づくビット数又はピクセル数の間引きが行なわれ(ステップS13)、Discrete Cosine Transform(DCT)により周波数領域への変換が行なわれる(ステップS14)。
また、M−JPEGエンコーダ16により、DCTによる変換結果について量子化が行なわれ、高周波のビット数の間引きが行なわれる(ステップS15)。そして、M−JPEGエンコーダ16により、ハフマン圧縮が行なわれ(ステップS16)、バッファリングされたデータに対する処理が完了する。
なお、図4は、1フレームのうちのバッファリングされたデータに対する処理を示しているため、M−JPEGエンコーダ16により、図4に示す処理が、DC35によって表示処理が行なわれたコンテンツにおける1フレームの全ラインに対して実行される。そして、M−JPEGエンコーダ16により、1フレームに対するエンコード処理が、DC35によって表示処理が行なわれたコンテンツの全フレームに対して実行されることにより、表示装置20へ送信するためのエンコード処理が完了する。なお、M−JPEG方式のエンコードでは、コンテンツのフレームごとに独立したエンコードが行なわれるため、M−JPEGエンコーダ16は、フレーム間の差分等について考慮せずに済む。これにより、高速なエンコード処理が実現できる。
上述のように、本実施形態に係る端末装置10のエンコーダ16によれば、表示処理部14において表示処理が行なわれたコンテンツに対して、表示装置20へ送信するためのエンコード処理が実行される。つまり、ミラーリング元の端末装置10内の表示処理部14からの出力が、エンコーダ16を通して圧縮される。そして、送信部17により、無線LAN(Wi−Fi通信1a)経由でミラーリング先の表示装置20へ送信される。
これにより、端末装置10は、無線LAN接続により画面ミラーリングを実現することができ、端末装置10に表示されるコンテンツを受信装置20に表示させる際の利便性を向上させることができる。
また、少なくとも表示制御部14(GPU34及びDC35)とエンコーダ16とは、SoC3内に実装され、既存のL3インターコネクト31で相互に接続される。これにより、エンコーダ16のために新たなIntegrated Circuit(IC)間接続用の高速バス(例えばL3インターコネクトに準じた転送速度のインターフェース)を追加せずに済む。このように、本実施形態に係る端末装置10は、SoC3内部への画面ミラーリングに係る通信経路の追加、SoC3に対するエンコーダ16の追加及び接続の変更等を行なうことにより実現される。これにより、VNC技術を用いた画面ミラーリングを行なうよりもMPU32の負荷を抑えることができるとともに、消費電力の増大、基板設計の難易度の増加、及びコストアップを最小限に留めることができる。
さらに、表示処理部14により表示処理が行なわれたコンテンツは、本来は表示部15に対して出力されるのみである。これに対して、本実施形態に係る端末装置10は、表示部15に表示するための最適な調整が既に行なわれているコンテンツについてエンコーダ16によりエンコードを実行させることで、表示装置20に対して良好なコンテンツを提供することができる。特に、端末装置10の表示部15と表示装置20の表示部25とが同等の性能を有する場合には、端末装置10は、表示装置20に対して最適な調整が行なわれたコンテンツを提供することができ、表示処理部24等の処理負荷を低減させることができる。
また、端末装置10によれば、VNC技術を用いて画面ミラーリングを行なう場合に生じ得る上記(i)〜(iv)の問題についても、対応する以下の(I)〜(IV)に示す理由により解消することができる。
(I)M−JPEG方式のエンコード処理では、フレームごとに画面全体が出力されるため、表示装置20に表示される画面にブロック状の表示乱れは発生しない。
(II)M−JPEG方式のエンコード処理では、安定的に約2〜3フレーム程度の遅延が発生するだけであり、遅延量及び遅延幅は僅かである。
(III)M−JPEG方式のエンコード処理では、高解像度の動画のコンテンツに対しても、30fpsで連続出力が可能であり、VNCのように数〜数10フレーム飛ばしの動作とはならない。
(IV)端末装置10は、表示装置20へ送信するコンテンツに係る大半の処理を、専用のエンコーダ16により実行する。つまり、端末装置10は、コンテンツを表示装置20へ送信するための処理(主にエンコード処理)を、アプリケーション11及びOSの動作と部分的に又は完全に切り離して実行するため、アプリケーション11及びOSの動作に与える影響が小さい。
このように、端末装置10は、無線LAN接続により、VNC技術では困難であった高解像度の動画のコンテンツの画面ミラーリングについても実現することができる。
〔2〕一実施形態の実施例
次に、上述した一実施形態に係る通信システム1における、端末装置10(10a〜10c)のエンコーダ16(M−JPEGエンコーダ16)の実装例を説明する。
エンコーダ16は、以下の(1)〜(3)の構成により実現することができる。
(1)ソフトウェアエンコード方式
(2)ハードウェアアクセラレータの時分割エンコード方式
(3)ハードウェアエンコーダ追加方式
以下、上記(1)〜(3)の構成を適用した通信システム1を、第1実施例〜第3実施例により説明する。
なお、以下、端末装置10(10a〜10c)は、MPU32に対する処理負荷が大きいカメラ51によるムービー撮影及びコンテンツの格納、表示部15によるコンテンツの表示(画面プレビュー)、並びに無線LANによる画面ミラーリング出力、の各動作を行なう場合を想定して説明する。
〔2−1〕第1実施例
はじめに、図5〜図10を参照して第1実施例について説明する。第1実施例では、エンコーダ16が上記(1)のソフトウェアエンコーダにより構成される。
〔2−1−1〕第1実施例の端末装置の構成例
まず、一実施形態の第1実施例に係る端末装置10aの構成例について説明する。
図5は、第1実施例に係る端末装置10aのハードウェア構成例を示す図である。図5に示すように、端末装置10aは、図2に示す端末装置10の構成に加えて、Direct Memory Access(DMA)サブシステム39、Digital Signal Processor(DSP)40、及びL4インターコネクト41を有する。なお、図5においては、便宜上、図2に示す端末装置10の一部のブロックの図示を省略している。
また、図5において、L3インターコネクト31の紙面下側に接続されている各ブロックは、アクセス対象又は制御を受けて所定の動作を実行するターゲットであり、L3インターコネクト31の紙面上側に接続されている各ブロックは、ターゲットに対する制御を行なうイニシエータである。なお、後述する表示装置20、端末装置10b、及び10cの各ハードウェア構成(図8、図11、及び図16参照)においても同様である。
DMAサブシステム39は、L3インターコネクト31に接続され、SDRAM52と他のブロックとの間のデータ転送を制御する。例えば、DMAサブシステム39は、GPU34、DC35、及びカメラ51(イメージングプロセッサ33)等によるSDRAM52へのコンテンツの書き込み及び読み出しを制御する。
DSP40は、SDRAM52が保持するオーディオデータに対する圧縮処理を実行するとともに、圧縮を行なったオーディオデータをSDRAM52に保持させるプロセッサである。なお、DSP40により圧縮されるオーディオデータは、I/Oデバイスとしてのマイク(図示省略)等により取得(録音)され、SDRAM52に保存される。
L4インターコネクト41は、SoC3上の回路ブロック間を接続するインターフェースであり、L3インターコネクトよりも低速なデータ転送速度を有する。図5に示す例では、L4インターコネクト41は、L3インターコネクト31及びDMAサブシステム39と接続される。また、L4インターコネクト41は、端末装置10がI/Oデバイスを有する場合には、これらのI/Oデバイスと接続される。
また、図5に示すように、端末装置10aは、図2に示す端末装置10のCPU32に代えて、MPU32′を有する。
MPU32′は、複数、例えば4つのコア32a〜32dを有する。各コア32a〜32dは、独立に処理を実行することができる。第1実施例に係るMPU32′は、複数のコア32a〜32dのうちの少なくとも1つに対して、SDRAM52等に格納された処理プログラムを実行させることにより、M−JPEGエンコーダ16としての機能を実現する。
例えば、第1実施例に係る端末装置10aは、予めコア32a〜32dの割り当てを以下のように決定する。
コア32a:アプリケーション11のメイン処理及びOS処理
コア32b:イメージング/ビデオ処理
コア32c+32d:ソフトウェアエンコード処理
このように、4つのコア32a〜32dそれぞれに処理を割り当てることで、MPU32′は、M−JPEGエンコーダ16としてのエンコード処理を、アプリケーション11のメイン処理及びOS処理と部分的に切り離して実行することができる。従って、コア32c及び32dがソフトウェアエンコード処理を実行している場合にも、アプリケーション11及びOSの動作に与える影響を小さく抑えることができる。
なお、上述したMPU32′によるソフトウェアエンコード処理を実現するために、端末装置10aは、図5に示すように、DC35からL3インターコネクト31へ、表示処理の実行結果(出力)を戻すパスが実装される。また、DC35からL3インターコネクト31への出力は一度SDRAM52に保存される。そして、MPU32′は、SDRAM52から表示処理の実行結果出力が読み出されて、コア32c及び32dによりソフトウェアエンコード処理が実行される。
〔2−1−2〕第1実施例の端末装置の動作例
次に、上述の如く構成された端末装置10aの動作例を、図6及び図7を参照して説明する。図6及び図7は、図5に示す端末装置10aによるコンテンツの表示処理、格納処理、及び送信処理の動作例を説明するフローチャート及びシーケンス図である。
なお、図6及び図7では、カメラ51によりムービー(ビデオ)のコンテンツが撮影(生成)されるとともに、図示しないI/Oデバイスのマイクによりオーディオのコンテンツが取得(生成)される。
なお、図6の説明において、図3に示す符号と同一の符号は、同一又は略同一の処理を表しているため、詳細な説明は省略する。以下、図7のシーケンス図に従って、図6との対応を取りながら説明する。また、以下、図6及び図7の説明において、コア32a〜32dをそれぞれコア1〜コア4という場合がある。
図7に示すように、MPU32′のコア1において、OS及びアプリケーション11が実行される(処理T1,図6のステップS21及びS22)。また、SDRAM52のビデオ表示用の領域であるVideo RAM(VRAM)が、後述するGPU34及びDC35による表示処理のために確保される(処理T2)。
また、MPU32′のコア2により、カメラ51の制御が指示されると(処理T3)、イメージングプロセッサ33により、カメラ51が起動され、撮影(生成)されたコンテンツが入力される(処理T4,図6のステップS1)。また、MPU32′のコア2により、画質制御が指示され(処理T5)、イメージングプロセッサ33により、入力されたコンテンツに対する画像処理が行なわれる(処理T6,図6のステップS2)。
次いで、イメージングプロセッサ33(DMAサブシステム39)により、画像処理結果がSDRAM52のV−RAW領域に、ビデオRAWデータとして保存される(処理T7,図6のステップS3)。また、ビデオRAWデータがH.264エンコーダ(ビデオエンコーダ)36へ転送され(処理T8)、H.264エンコーダ36によりH.264方式のムービー圧縮(エンコード処理)が行なわれる(処理T9,図6のステップS7)。そして、H.264エンコーダ36により、ムービー圧縮が行なわれたコンテンツが、SDRAM52のV−COMP領域にビデオ圧縮データとして保存される(処理T10)。
また、I/Oデバイスのマイクによりオーディオデータが取得され(処理T11)、SDRAM52のA−RAW領域にオーディオRAWデータとして保存される(処理T12)。そして、DSP40により、オーディオRAWデータに対してオーディオ圧縮処理が実行される(処理T13)。なお、オーディオ圧縮処理は、DSP40により、MPU32′のコア2による音質制御の指示(処理T14)を受けて実行され、圧縮結果がSDRAM52のA−COMP領域にオーディオ圧縮データとして保存される(処理T15)。
次に、MPU32′のコア2により、SDRAM52からビデオ圧縮データ及びオーディオ圧縮データが取得され(処理T16及びT17)、各圧縮データが纏められてコンテナ化される(処理T18)。そして、コア2により、コンテナ化したコンテンツがNANDコントローラ37へ転送され、フラッシュメモリ53に記録される(処理T19,図6のステップS8)。
以上により、端末装置10aにおいて、カメラ51によるムービー撮影及びコンテンツの格納処理が完了する。
一方、処理T8の処理と並行して、I/Oデバイスのタッチパネルにより、アプリケーション11に対してLCD15へのコンテンツの表示(画面プレビュー)が要求される(処理T20)。画面プレビューの要求を受けると、MPU32′のコア1により、OS描画の指示が行なわれ(処理T21)、GPU34により、LCD15に対するOSの画面の描画処理が実行される(処理T22)。このとき、OSの画面のデータがVRAM領域に保持されている場合には、GPU34により、当該画面のデータが描画処理に用いられる(処理T23)。OS描画処理が完了すると、GPU34により結果がVRAM領域に書き込まれる(処理T24)。
次いで、MPU32′のコア1により、アプリケーション描画の指示が行なわれ(処理T25)、GPU34により、OSの画面の描画と同様に、LCD15に対するアプリケーション11の画面の描画処理が実行される(処理T26)。このとき、アプリケーション11の画面のデータがVRAM領域に保持されている場合には、GPU34により、当該画面のデータが描画処理に用いられる(処理T27)。アプリケーション描画処理が完了すると、GPU34(DMAサブシステム39)により結果がVRAM領域に書き込まれる(処理T28)。
そして、MPU32′のコア1により、プレビュー描画の指示が行なわれ(処理T29)、GPU34により、LCD15に対する、アプリケーション12で指定されたコンテンツのプレビュー画面の描画処理が実行される(処理T30)。このとき、GPU34により、V−RAW領域からビデオRAWデータが読み出されて、描画処理に用いられる(処理T31)。プレビュー描画処理が完了すると、GPU34(DMAサブシステム39)により結果がVRAM領域に書き込まれる(処理T32,図6のステップS4)。
処理T24、T28、及びT32の各描画処理の結果がVRAM領域に書き込まれると、DC35により、画面出力のタイミングで、描画結果がVRAM領域からLCD15へ出力され(処理T33,図6のステップS5)、LCD15により出力結果が表示される(図6のステップS6)。また、SDRAM52のA−RAW領域のオーディオRAWデータが、I/Oデバイスのスピーカーにより出力される(処理T34)。
以上により、端末装置10aにおいて、LCD15によるコンテンツの表示が完了する。
また、DC35により、描画結果がVRAM領域から画面ミラーリング出力され(処理T35)、DMAサブシステム39によりSDRAM52のバッファ領域に画面ミラーリングデータとして書き込まれる(処理T36)。なお、DC35は、処理T33及びT35において、それぞれ異なる解像度のコンテンツを出力することができる。例えばDC35は、表示装置20の表示部25に適した解像度で、画面ミラーリング出力を行なっても良い。一方、DC35は、処理T33及びT35において、同一のコンテンツの出力を行なう場合には、処理T35を省略して、画面ミラーリング用に処理T33の出力を分岐させても良い。
そして、MPU32′のコア3及び4により、バッファ領域から画面ミラーリングデータが読み出されるとともに(処理T37)、A−RAW領域からオーディオRAWデータが読み出される(処理T38)。
MPU32′のコア3及び4では、入力された画面ミラーリング出力に対して、M−JPEG方式の圧縮(エンコード処理)が実行され、オーディオRAWデータ及び制御信号とともにコンテナ化される(処理T39,図6のステップS23)。そして、コア3及び4により、コンテナ化したコンテンツがEMAC38へ転送され(処理T40)、Wi−Fiコントローラ54により表示装置20へ送信される(処理T41,図6のステップS10)。
なお、コア3及び4により、著作権管理機能が実行され(処理T42)、暗号化に用いる鍵等の情報が、Wi−Fi通信1aを介して表示装置20との間で送受信されても良い(処理T43〜T45)。
以上により、端末装置10aにおいて、無線LANによる画面ミラーリング出力が完了する。
なお、図6及び図7は、端末装置10における1フレームに対する処理を示しているため、端末装置10は、コンテンツの全フレームに対して図6及び図7に示す処理を行なう。このように、上述した動作が、生成されるコンテンツのフレームごとに実行されることにより、端末装置10において、コンテンツのLCD15への表示処理、フラッシュメモリ53への格納処理、及び表示装置20への送信処理(画面ミラーリング)が行なわれる。
上述のように、一実施形態の第1実施例に係る端末装置10aによれば、一実施形態に係る端末装置10と同様の効果を奏することができる。
〔2−1−3〕第1実施例の表示装置の構成例
次に、一実施形態の第1実施例に係る表示装置20の構成例について説明する。
図8は、一実施形態の第1実施例に係る表示装置20のハードウェア構成例を示す図である。なお、図8に示す表示装置20の構成は、図1に示す一実施形態に係る表示装置20、並びに後述する第2実施例及び第3実施例に係る表示装置20と共通である。従って、以下の説明において、画面ミラーリングに係るコンテンツの送信元は、端末装置10aに限定されず、端末装置10であるものとする。
図8に示すように、表示装置20は、図示しないSoCに実装されるL3インターコネクト131、MPU132、イメージングプロセッサ133、GPU134、DC135、及びビデオエンコーダ136を有する。また、表示装置20は、図示しないSoCに実装されるDMAサブシステム139、L4インターコネクト141、及びM−JPEGデコーダ116を有する。さらに、表示装置20は、カメラ151、SDRAM152、フラッシュメモリ153、Wi−Fiコントローラ154、及びLCD25を有する。なお、端末装置10は、I/Oデバイスとして、オーディオデータを出力するスピーカー(図示省略)を有しても良い。
図8に示す各ブロックは、基本的に図2及び図5に示す端末装置10における同一の名称の各ブロックと同様の機能を有するため、重複した説明は省略する。つまり、L3インターコネクト131、MPU132、イメージングプロセッサ133、GPU134、及びDC135は、それぞれ端末装置10のL3インターコネクト31、MPU32、イメージングプロセッサ33、GPU34、及びDC35と同様の機能を有する。また、ビデオエンコーダ136、DMAサブシステム139、及びL4インターコネクト141は、それぞれ端末装置10のビデオエンコーダ36、DMAサブシステム39、及びL4インターコネクト41と同様の機能を有する。さらに、カメラ151、SDRAM152、フラッシュメモリ153、Wi−Fiコントローラ154、及びLCD25は、それぞれ端末装置10のカメラ51、SDRAM52、フラッシュメモリ53、Wi−Fiコントローラ54、及びLCD15と同様の機能を有する。なお、図8においては、図5に示す端末装置10aと同様に、便宜上、一部のブロックの図示を省略している。
以下、表示装置20が有する各ブロックにおける、端末装置10との相違点について説明する。
MPU132は、複数、例えば2つのコア132a及び132bを有する。各コア132a及び132bは、独立に処理を実行することができる。例えば、第1実施例に係る表示装置20は、予めコア132a及び132bの割り当てを以下のように決定する。
コア132a:アプリケーション21のメイン処理及びOS処理
コア132b:イメージング/ビデオ処理
M−JPEGデコーダ116は、Wi−Fiコントローラ154によりWi−Fi通信1aを介して端末装置10から受信したコンテンツに対して、M−JPEG方式のデコード(伸張)処理を実行する。
なお、表示装置20によるコンテンツのデコード及びLCD25への表示は、モバイル端末等におけるインターネット動画のデコード及び表示と同様に行なうことができる。
〔2−1−4〕第1実施例の表示装置の動作例
次に、上述の如く構成された表示装置20の動作例を、図9及び図10を参照して説明する。図9及び図10は、図8に示す表示装置20によるコンテンツの受信処理、及び表示処理の動作例を説明するフローチャート及びシーケンス図である。
なお、図9及び図10は、表示装置20における1フレームに対する処理を示している。また、図9及び図10では、端末装置10からムービー及びオーディオを含むコンテンツであって、M−JPEG方式のエンコード処理が施されたコンテンツを受信した場合を示している。
以下、図10のシーケンス図に従って、図9との対応を取りながら説明する。また、以下、図9及び図10の説明において、コア132a及び132bをそれぞれコア1及びコア2という場合がある。
図10に示すように、MPU132のコア1において、OS及びアプリケーション21が実行される(処理T51)。また、SDRAM152のVRAM領域が、後述するGPU134及びDC135による表示処理のために確保される(処理T52)。
ここで、Wi−Fiコントローラ154(及び図示しないEMAC)により、端末装置10からコンテンツが受信されると(処理T53,図9のステップS31)、SDRAM152のバッファ領域にコンテンツがバッファリングされる(処理T54)。バッファ領域に保持されたコンテンツは、MPU132のコア2により読み出され(処理T55)、デコンテナが実行される(処理T56)。デコンテナにおいて、ビデオ圧縮データ及びオーディオ圧縮データに分離されたコンテンツは、コア2により、それぞれSDRAM52のV−COMP領域及びA−COMP領域に保存される(処理T57及びT58)。
次いで、DMAサブシステム139により、V−COMP領域に保存されたビデオ圧縮データがM−JPEGデコーダ116へ転送される(処理T59)。そして、M−JPEGデコーダ116により、ビデオ圧縮データに対してムービー伸張(デコード処理)が行なわれ(処理T60,図9のステップS32)、SDRAM52のV−RAW領域に保存される(処理T61,図9のステップS33)。一方、A−COMP領域に保存されたオーディオ圧縮データは、DSP140によりオーディオ伸張が行なわれ(処理T62)、SDRAM52のA−RAW領域に保存される(処理T63)。
そして、MPU132のコア1により、描画の指示が行なわれ(処理T64)、GPU134により、LCD25に対する、アプリケーション12で指定されたコンテンツの描画処理が実行される(処理T65)。このとき、GPU134により、V−RAW領域からビデオRAWデータが読み出されて、描画処理に用いられる(処理T66)。描画処理が完了すると、GPU134により結果がVRAM領域に書き込まれる(処理T67,図9のステップS34)。
描画処理の結果がVRAM領域に書き込まれると、DC135により、画面出力のタイミングで、描画結果がVRAM領域からLCD25へ出力され(処理T68,図9のステップS35)、LCD25により出力結果が表示される(図9のステップS36)。また、A−RAW領域のオーディオRAWデータが、I/Oデバイスのスピーカーにより出力される(処理T69)。
なお、コア2により、著作権管理機能が実行され(処理T70)、暗号化に用いる鍵等の情報が、Wi−Fi通信1aを介して端末装置10との間で送受信されても良い(処理T71〜T73)。
以上により、表示装置20において、コンテンツの受信、及びLCD25による受信したコンテンツの表示が完了する。
なお、図9及び図10は、表示装置20における1フレームに対する処理を示しているため、表示装置20は、コンテンツの全フレームに対して図9及び図10に示す処理を行なう。このように、上述した動作が、受信したコンテンツのフレームごとに実行されることにより、表示装置20において、コンテンツの受信処理、及び受信したコンテンツのLCD25への表示処理が行なわれる。
〔2−2〕第2実施例
次に、図11〜図15を参照して第2実施例について説明する。第2実施例では、エンコーダ16が上記(2)のハードウェアアクセラレータにより構成される。
〔2−2−1〕第2実施例の端末装置の構成例
まず、一実施形態の第2実施例に係る端末装置10bの構成例について説明する。
図11は、第2実施例に係る端末装置10bのハードウェア構成例を示す図である。図11に示すように、端末装置10bは、図2に示す端末装置10の構成に加えて、DMAサブシステム39、DSP40、L4インターコネクト41、及びハードウェアアクセラレータ42を有する。なお、図11においては、便宜上、図2に示す端末装置10の一部のブロックの図示を省略している。
なお、DMAサブシステム39、DSP40、及びL4インターコネクト41は、図5に示す同一の符号と同様であるため、詳細な説明は省略する。
MPU32は、複数、例えば2つのコア32a及び32bを有する。各コア32a及び32bは、独立に処理を実行することができる。例えば、第2実施例に係る端末装置10bは、予めコア32a及び32bの割り当てを以下のように決定する。
コア32a:アプリケーション11のメイン処理及びOS処理
コア32b:イメージング/ビデオ処理
ハードウェアアクセラレータ(第3エンコーダ)42は、MPU32等のプロセッサに付加的に実装されたハードウェアである。具体的には、ハードウェアアクセラレータ42は、図2に示すM−JPEGエンコーダ16が実行するM−JPEG方式のエンコード処理と、H.264エンコーダ36が実行するH.264方式のエンコード処理と、を時分割で実行することができる。このため端末装置10bにおいては、M−JPEGエンコーダ16及びH.264エンコーダ36の実装を省略することができる。
つまり、第2実施例に係る端末装置10bにおいては、図2に示すM−JPEGエンコーダ16及びH.264エンコーダ36は、共通の一つのエンコーダとしてのハードウェアアクセラレータ42により構成される。
なお、上述したハードウェアアクセラレータ42によるエンコード処理を実現するために、端末装置10bは、図11に示すように、DC35からL3インターコネクト31へ、表示処理の実行結果(出力)を戻すパスが実装される。また、DC35からL3インターコネクト31への出力は一度SDRAM52に保存される。そして、ハードウェアアクセラレータ42は、フレーム時間(例えば1/30s)ごとに(時分割で)、ムービー用のH.264方式のエンコード処理と、画面ミラーリング用のM−JPEG方式のエンコード処理とを切り替えて実行する。
ここで、ビデオエンコーダ(ハードウェアアクセラレータ)は、エンコード方式が固定か、又は、多くの設定レジスタを変更する若しくはソフトウェアを再ロードするためにエンコード方式の切替処理に時間がかかる。そこで、第2実施例に係るハードウェアアクセラレータ42は、ムービー向きのエンコード(例えばH.264方式)の処理の途中で割込み可能とし、直前の状態を保持したままミラーリング向きの別方式のエンコード(例えばM−JPEG方式)の処理を可能とする。
ハードウェアアクセラレータ42は、ムービー向きのエンコードにおいて、前後のフレームを参照して処理を行なうため、フレーム間比較機能を備えることになる。一方、ハードウェアアクセラレータ42は、ミラーリング向きのエンコードにおいて、単一のフレームを処理するため、フレーム間比較機能は使用しなくて良い。このように、ムービー向き及びミラーリング向きの両者のエンコード間で実行される機能ユニットに差があるため、ハードウェアアクセラレータ42には、両方式間で共通する一部の機能ユニットの状態だけを退避する機構を追加することが望ましい。
ここで、ムービー向きのエンコードであるH.264方式と、ミラーリング向きのエンコードであるM−JPEG方式とでは、図4に示すエンコード処理の機能が共通している。そこで、ハードウェアアクセラレータ42は、図12及び図13に示すように、両方式間で共通する機能を退避させる構成を有する。
図12は、図11に示すハードウェアアクセラレータ42の構成例を示す図であり、図13は、ハードウェアアクセラレータ42によるエンコード処理の動作例を説明するフローチャートである。
図12(b)に示すように、ハードウェアアクセラレータ42は、エンコード処理部420、第1レジスタ420a、及び第2レジスタ420bを有する。
エンコード処理部420は、少なくとも図12(a)に示す両エンコード方式の共通処理を実行する。エンコード処理部420は、バッファリング機能部421、色変換機能部422、色差間引き機能部423、DCT変換機能部424、量子化機能部425、及びハフマン圧縮機能部426を有する。
バッファリング機能部421は、エンコード対象のコンテンツに対して、例えば16ライン分のバッファリングを行なう。色変換機能部422は、16ライン分のコンテンツに対してエンコード方式に係る色空間への変換を行なう。色差間引き機能部423は、色変換が行なわれたコンテンツに対して、色差に基づくビット数又はピクセル数の間引きを行なう。DCT変換機能部424は、色差間引きが行なわれたコンテンツに対して、周波数領域への変換を行なう。量子化機能部425は、DCTによる変換結果について量子化を行ない、高周波のビット数の間引きを行なう。ハフマン圧縮機能部426は、量子化されたコンテンツに対して、ハフマン圧縮を行なう。
第1レジスタ420aは、各機能部421〜426により例えばM−JPEG方式のエンコードが行なわれる場合に用いられる状態情報を保持する設定レジスタであり、各機能部421〜426に対応してレジスタ421a〜426aを有する。
第2レジスタ420aは、各機能部421〜426により例えばH.264方式のエンコードが行なわれる場合に用いられる状態情報を保持する設定レジスタであり、各機能部421〜426に対応してレジスタ421b〜426bを有する。
なお、時分割エンコードにおいて、ハードウェアアクセラレータ42は、一方の方式によるエンコードを実行している間に他方の方式によるエンコードが実行されないように、ロックを行なう。このロックは、時分割の切替タイミングや一方の方式によるエンコードが完了したときに、解除(リリース)される。
以上の構成により、ハードウェアアクセラレータ42は、図13に示す処理を実行する。なお、図13に示す処理のうち、M−JPEG方式のエンコードで実行される処理は、ステップS11〜S16(図4参照)である。エンコード処理部420は、M−JPEG方式及びH.264方式のいずれか一方の方式のみのエンコードを行なう際には、実行するエンコード用の設定を、対応する第1レジスタ420a又は第2レジスタ420bに対して行ない、要求される処理のみを実行する。
一方、エンコード処理部420は、時分割で両方式のエンコードを並行に処理する場合には、各エンコード用の第1レジスタ420a及び第2レジスタ420bを切り替えながらエンコード処理を実行する。これにより、エンコード処理部420は、エンコード方式の切り替えに係るオーバーヘッド(時間)を低減することができる。
以下、ハードウェアアクセラレータ42による時分割エンコードの具体例を説明する。
はじめにM−JPEG方式のエンコードが行なわれる場合、図13に示すように、エンコード処理部420により、入力画像に対してステップS11〜S16の処理がレジスタ421a〜426aを用いて実行され、出力ストリームが出力される。ここで、時分割の切替のタイミング(例えばフレーム時間)になると、エンコード処理部420により、入力画像に対してH.264方式によるステップS11〜S15の処理がレジスタ421b〜425bを用いて実行される。
そして、エンコード処理部420により、入力画像に対して、H.264エンコード専用の処理である逆量子化及び逆DCT変換が行なわれ(ステップS41及びS42)、ループフィルタによりブロックノイズの低減処理が行なわれる(ステップS43)。また、エンコード処理部420により、処理結果がフレームメモリに格納され(ステップS44)、フレームメモリ内のデータとステップS13における色差間引きの結果とに基づき動き検出が行なわれる(ステップS45)。そして、動き検出の結果に応じて、エンコード処理部420により動き予測(ステップS46)又は空間予測(ステップS47)が行なわれる。H.264形式のエンコードでは、上述した処理がフレーム間の比較により行なわれる。
〔2−2−2〕第2実施例の端末装置の動作例
次に、上述の如く構成された端末装置10bの動作例を、図14及び図15を参照して説明する。図14及び図15は、図11に示す端末装置10bによるコンテンツの表示処理、格納処理、及び送信処理の動作例を説明するフローチャート及びシーケンス図である。なお、図14の説明において、図3に示す符号と同一の符号は、同一又は略同一の処理を表しているため、詳細な説明は省略する。また、図15は、図7における処理T8〜T10を処理T81〜T84に置き換え、図7における処理T37及びT39を処理T85〜T89に置き換えたものである。以下、上記変更部分について説明する。
図15に示すように、ハードウェアアクセラレータ42により、ムービーエンコードの初期化が行なわれる(処理T81)。この初期化では、ハードウェアアクセラレータ42のロックや(図14のステップS51)、使用する第2レジスタ420bへの切り替え等の処理が行なわれる。そして、処理T7においてV−RAW領域に保存されたビデオRAWデータが、ハードウェアアクセラレータ42により読み出される(処理T82)。ハードウェアアクセラレータ42においては、入力されたビデオRAWデータに対して、H.264方式のムービー圧縮が行なわれ(処理T83)、圧縮結果がV−COMP領域に保存される(処理T84)。なお、処理T83においてムービー圧縮が完了すると、ハードウェアアクセラレータ42により、ロックが解除(リリース)される(図14のステップS52)。
また、図15に示すように、ハードウェアアクセラレータ42により、静止画エンコードの初期化が行なわれる(処理T85)。この初期化では、ハードウェアアクセラレータ42のロックや(図14のステップS53)、使用する第1レジスタ420aへの切り替え等の処理が行なわれる。そして、処理T36において、DMAサブシステム39によりSDRAM52のバッファ領域に画面ミラーリングデータが書き込まれると、ハードウェアアクセラレータ42により、バッファ領域から画面ミラーリングデータが読み出される(処理T86)。ハードウェアアクセラレータ42においては、読み出した画面ミラーリングデータ(コンテンツ)に対して、M−JPEG方式の画像圧縮が行なわれ(処理T87)、圧縮結果がMPU32のコア2へ転送される(処理T88)。なお、処理T88において画像圧縮が完了すると、ハードウェアアクセラレータ42により、ロックが解除(リリース)される(図14のステップS54)。
そして、MPU32のコア2により、処理T88により画像圧縮されたコンテンツ、処理T36によりA−RAW領域から読み出されたオーディオRAWデータ、及び制御信号がコンテナ化される(処理T89)。
以上の処理により、端末装置10bにおいて、コンテンツの表示処理、格納処理、及び送信処理が実行される。
上述のように、一実施形態の第2実施例に係る端末装置10bによれば、一実施形態に係る端末装置10と同様の効果を奏することができる。
また、第2実施例に係る端末装置10bによれば、表示装置20へ送信するコンテンツに係るM−JPEG形式のエンコード処理が、ハードウェアアクセラレータ42により行なわれる。これにより、コンテンツを表示装置20へ送信するための処理を、アプリケーション11及びOSの動作と完全に切り離して実行することができるため、アプリケーション11及びOSの動作に与える影響を大幅に低下させることができる。
特に、スマートフォンやタブレット用のMPU32は、PCよりも演算能力が低いため、ソフトウェアエンコード処理を実行させると負荷が大きく、アプリケーション11及びOSの動作に及ぼすことになる。又は、MPU32の演算能力を上げるためには、標準よりも高性能・高コストなMPUを選択することになる。
このように、第2実施例に係る端末装置10bによれば、アプリケーション11及びOSの動作を低下させることなく、また、コストの上昇を抑えることができるため、端末装置10bに表示されるコンテンツを表示装置20に表示させる際の利便性を向上させることができる。
〔2−3〕第3実施例
次に、図16〜図18を参照して第3実施例について説明する。第3実施例では、エンコーダ16が上記(3)のハードウェアエンコーダの追加により実現される。
〔2−3−1〕第3実施例の端末装置の構成例
まず、一実施形態の第3実施例に係る端末装置10cの構成例について説明する。
図16は、第3実施例に係る端末装置10cのハードウェア構成例を示す図である。図16に示すように、端末装置10cは、図11に示す第2実施例の端末装置10bの構成に対して、ハードウェアアクセラレータ42をM−JPEGエンコーダ16′及びH.264エンコーダ36に置き換えた点が異なる。また、端末装置10cは、端末装置10bの構成に対して、GPU34をL3インターコネクト31に直接接続している点が異なるが、それ以外の点については同様であるため、重複した説明を省略する。なお、図16においては、便宜上、図2に示す端末装置10の一部のブロックの図示を省略している。
M−JPEGエンコーダ16′は、追加のビデオコーデックであり、M−JPEG方式のエンコード処理をハードウェアにより実行する。なお、既述のように、M−JPEG方式のエンコード処理は、フレーム間圧縮や動き補償等の処理が不要である。従って、例えばコンテンツの表示処理、及び格納処理のみを行なう端末装置に対して、M−JPEGエンコーダ16′を追加する場合でも、小規模な回路を追加するだけで済むため、大幅な設計変更を行なわずに、端末装置10cを実現することができる。
〔2−3−2〕第3実施例の端末装置の動作例
次に、上述の如く構成された端末装置10cの動作例を、図17及び図18を参照して説明する。図17及び図18は、図16に示す端末装置10cによるコンテンツの表示処理、格納処理、及び送信処理の動作例を説明するフローチャート及びシーケンス図である。なお、図17の説明において、図3に示す符号と同一の符号は、同一又は略同一の処理を表しているため、詳細な説明は省略する。また、図18は、図7における処理T37及びT39を処理T91〜T94に置き換えたものである。以下、上記変更部分について説明する。
図18に示すように、処理T36において、DMAサブシステム39によりSDRAM52のバッファ領域に画面ミラーリングデータが書き込まれると、M−JPEGエンコーダ16′により、バッファ領域から画面ミラーリングデータが読み出される(処理T91)。M−JPEGエンコーダ16′においては、入力された画面ミラーリング出力(コンテンツ)に対して、M−JPEG方式の画像圧縮が行なわれ(処理T92,図17のステップS61)、圧縮結果がMPU32のコア2へ転送される(処理T93)。
そして、MPU32のコア2により、処理T92により画像圧縮されたコンテンツ、処理T36によりA−RAW領域から読み出されたオーディオRAWデータ、及び制御信号がコンテナ化される(処理T94)。
以上の処理により、端末装置10cにおいて、コンテンツの表示処理、格納処理、及び送信処理が実行される。
上述のように、一実施形態の第3実施例に係る端末装置10cによれば、一実施形態に係る端末装置10及び第2実施例に係る端末装置10bと同様の効果を奏することができる。
〔2−4〕SoC内部の通信量について
ここで、図2、図5、図11、及び図16に示す端末装置10(10a〜10c)において、SoC3の内部バスの通信量を概算してみる。
図19は、一実施形態及び第1実施例〜第3実施例に係る端末装置10におけるSoC3の内部バスの通信量の一例を示す図であり、図20は、第1実施例に係る端末装置10aにおけるSoC3の内部バスの通信量の一例を示す図である。図21は、第2実施例に係る端末装置10bにおけるSoC3の内部バスの通信量の一例を示す図であり、図22は、第3実施例に係る端末装置10cにおけるSoC3の内部バスの通信量の一例を示す図である。
なお、図19〜図22は、端末装置10(10a〜10c)において、カメラ51によるムービー撮影等の負荷の高い処理を行なった場合の、SoC3の内部バスの通信量を概算した図である。
例えば、図19に示すように、No.1、2、及び5は、それぞれ通信量が200MB/sと多く、SoC3の内部バスにおける通信のネックになり得るフローであることが分かる。つまり、No.1、2、及び5のフローは、それぞれL3インターコネクト31を用いて通信を行なうことが好ましい。換言すれば、一実施形態及び第1実施例〜第3実施例に係る端末装置10(10a〜10c)は、いずれも上記No.1、2、及び5のフローの内部バスにL3インターコネクト31を用いているため、200MB/sの通信量を確保できていると言える。
なお、図19において、通信量が“−”であるフローは、変動量が大きく通信量の算出が困難であるフロー、或いは通信量が少ないために数値の記載を省略したフローである。なお、通信量が“File Read”又は“File Write”であるフローは、読み出し又は書き込み処理に応じて通信量の変動が大きいが、通信量が少ないために数値の記載を省略したフローである。
また、図20〜図22に示すように、No.14、15、18、19、22は、それぞれ通信量が200MB/sと多い。つまり、第1実施例〜第3実施例に係る端末装置10a〜10cは、それぞれ上記No.14、15、18、19、22のフローの内部バスにL3インターコネクト31を用いているため、200MB/sの通信量を確保できていると言える。
このように、上述した一実施形態及び第1実施例〜第3実施例では、負荷の高い処理を行なう際に通信のネックとなるフローに、L3インターコネクト31を用いている。特に、図20〜図22に示すように、M−JPEGエンコーダ16(MPU32′、ハードウェアアクセラレータ42、M−JPEGエンコーダ16′)に対する/からの通信にL3インターコネクト31を用いている。従って、通信量の減少を抑制することができ、端末装置10と表示装置20との間で効率的な画面ミラーリングを行なうことができる。
〔3〕その他
以上、本発明の好ましい実施形態について詳述したが、本発明は、係る特定の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲内において、種々の変形、変更して実施することができる。
例えば、上述した一実施形態及び第1実施例〜第3実施例においては、ミラーリング向きのエンコード方式としてM−JPEG方式を用い、ムービー向きのエンコード方式としてH.264方式を用いたが、これに限定されるものでなく、種々のエンコード方式を用いることができる。
また、上述した一実施形態及び第1実施例〜第3実施例においては、ネットワーク1aがWi−Fiである場合について説明したが、これに限定されるものではない。例えば、ネットワーク1aが他の無線LANや、有線LAN(LANケーブル)により実現されても良い。なお、ネットワーク1aがLANケーブルである場合、図25に示すHDMIケーブル等のケーブル1000bを用いる場合よりも、長いケーブルを容易に確保できる点やケーブル自体のコストが低い点等の観点から、利便性が高い。
さらに、上述した第2実施例において、ハードウェアアクセラレータ42により時分割エンコードが行なわれる際に、一方のエンコード方式として、フレーム間比較機能を使用しないM−JPEG方式を挙げたが、これに限定されるものではない。例えば、ハードウェアアクセラレータ42は、フレーム間比較機能を使用する2以上のエンコード方式により、時分割エンコードを行なっても良い。この場合、第1レジスタ420a及び第2レジスタ420bは、それぞれ当該2以上のエンコード方式において共通する機能ごとの設定レジスタを有するようにすれば良い。
また、上述した第2実施例において、ハードウェアアクセラレータ42は、2つのエンコード方式により時分割エンコードを行なう場合を挙げたが、これに限定されるものではない。例えば、ハードウェアアクセラレータ42を、2以上の入力ストリームを異なるエンコード方式で並行処理するマルチスレッド方式の構成としても良い。この場合、ハードウェアアクセラレータ42は、各機能ユニットを最適数だけ配置する設計とすることができる。
さらに、上述した一実施形態及び第1実施例〜第3実施例においては、表示処理部14の一例としてのGPU34及びDC35等がSoC3に実装される場合について説明したが、これに限定されるものではなく、GPU34及びDC35はSoC3の外部に設けられても良い。
なお、一実施形態及び第1実施例〜第3実施例の通信システム1の各種機能の全部もしくは一部は、コンピュータ(端末装置10(10a〜10c)及び表示装置20の少なくとも一方を含む)が所定のプログラムを実行することによって実現されても良い。
そのプログラムは、例えばフレキシブルディスク,CD(CD−ROM,CD−R,CD−RWなど),DVD(DVD−ROM,DVD−RAM,DVD−R,DVD−RW,DVD+R,DVD+RWなど),ブルーレイディスク等のコンピュータ読取可能な記録媒体に記録された形態で提供される。この場合、コンピュータはその記録媒体からプログラムを読み取って内部記憶装置または外部記憶装置に転送し格納して用いる。
ここで、コンピュータとは、ハードウェアとOS(オペレーティングシステム)とを含む概念であり、OSの制御の下で動作するハードウェアを意味している。また、OSが不要でアプリケーションプログラム単独でハードウェアを動作させるような場合には、そのハードウェア自体がコンピュータに相当する。ハードウェアは、少なくとも、CPU等のマイクロプロセッサと、記録媒体に記録されたコンピュータプログラムを読み取る手段とをそなえている。上記プログラムは、上述のようなコンピュータに、一実施形態及び第1位実施例〜第3実施例の各種機能を実現させるプログラムコードを含んでいる。また、その機能の一部は、アプリケーションプログラムではなくOSによって実現されてもよい。
〔4〕付記
以上の実施形態に関し、更に以下の付記を開示する。
(付記1)
表示処理部において表示処理が行なわれたコンテンツに対して、受信装置へ送信するための第1のエンコード処理を実行する第1エンコーダを実装する集積回路を有することを特徴とする、端末装置。
(付記2)
コンテンツを保持するメモリと、
前記集積回路に実装され、前記メモリに保持された前記コンテンツに対して、格納部に格納するための第2のエンコード処理を実行して、前記格納部へ格納する第2エンコーダと、
前記メモリに保持された前記コンテンツに対して前記表示処理を実行する前記表示処理部と、をさらに有することを特徴とする、付記1記載の端末装置。
(付記3)
前記表示処理部は、前記表示処理が行なわれたコンテンツを前記メモリに保持し、
前記第1エンコーダは、前記メモリに保持された前記表示処理を行なわれたコンテンツを読み出して、前記第1のエンコード処理を実行することを特徴とする、付記2記載の端末装置。
(付記4)
前記表示処理部、前記第1エンコーダ、及び前記メモリは、それぞれインターコネクトに接続されることを特徴とする、付記3記載の端末装置。
(付記5)
前記第1エンコーダ及び第2エンコーダは、共通の一つの第3エンコーダにより構成されることを特徴とする、付記2〜4のいずれか1項記載の端末装置。
(付記6)
前記第3エンコーダは、
前記第1及び第2のエンコード処理を時分割で実行するエンコード処理部を有することを特徴とする、付記5記載の端末装置。
(付記7)
前記第3エンコーダは、
前記第1のエンコード処理における状態情報を保持する第1レジスタと、
前記第2のエンコード処理における状態情報を保持する第2レジスタと、をさらに有し、
前記エンコード処理部は、前記第1レジスタ及び第2レジスタを用いて、前記第1及び第2のエンコード処理を時分割で実行することを特徴とする、付記6記載の端末装置。
(付記8)
前記集積回路に実装され、前記端末装置における所定の処理を行なうとともに、前記第1のエンコード処理を実行するプロセッサをさらに有し、
前記プロセッサは、前記第1エンコーダとして機能することを特徴とする、付記2〜4のいずれか1項記載の端末装置。
(付記9)
前記第1のエンコード処理は、前記第2のエンコード処理よりも圧縮率の高いエンコード処理であることを特徴とする、付記2〜8のいずれか1項記載の端末装置。
(付記10)
前記表示処理部において前記表示処理が完了したコンテンツを表示する表示部をさらに有し、
前記第1エンコーダは、前記表示処理部において前記表示部に表示させるための表示処理が完了した前記コンテンツに対して、前記第1のエンコード処理を実行することを特徴とする、付記1〜9のいずれか1項記載の端末装置。
(付記11)
前記第1エンコーダにより前記第1のエンコード処理が行なわれた前記コンテンツを前記受信装置へ送信する送信部をさらに有することを特徴とする、付記1〜10のいずれか1項記載の端末装置。
(付記12)
前記送信部は、無線通信により前記コンテンツを前記受信装置へ送信することを特徴とする、付記11記載の端末装置。
(付記13)
プロセッサを実装する集積回路を有するコンピュータに、
表示処理部において表示処理が行なわれたコンテンツに対して、受信装置へ送信するための第1のエンコード処理を実行する、
処理を実行させることを特徴とする、処理プログラム。
(付記14)
前記コンピュータは、前記表示処理が完了したコンテンツを表示する表示部をさらに有し、
前記表示部に表示させるための表示処理が完了した前記コンテンツに対して、前記第1のエンコード処理を実行する、
処理を前記コンピュータに実行させることを特徴とする、付記13記載の処理プログラム。
(付記15)
表示処理部によって表示処理が行なわれたコンテンツに対して、受信装置へ送信するための第1のエンコード処理を実行する第1エンコーダを有することを特徴とする、集積回路。
1,100,100−1,100−2 通信システム
1a Wi−Fi通信(LAN,ネットワーク)
10,10a〜10c,1000,1000−1,1000−2 端末装置
11,1100,1100−1,1100−2,21,2100,2100−1,2100−2 アプリケーション
12,1200,22,2200 ライブラリ
13,1300,1300−1,1300−2,23,2300,2300−1,2300−2 ドライバ
14,1400,1400−1,1400−2,24,2400,2400−1,2400−2 表示処理部
15,1500,25,2500,2500−1,2500−2 LCD(表示部)
16,16′ M−JPEGエンコーダ(エンコーダ,ビデオエンコーダ,第1エンコーダ)
17,1600 送信部
131,3100 L3インターコネクト
136 H.264エンコーダ(ビデオエンコーダ)
153,5300 フラッシュメモリ
1000a Wi−Fi(無線LAN)
1000b ケーブル
2,2000 表示装置(受信装置)
26,2600 受信部
27 M−JPEGデコーダ(ビデオデコーダ,デコーダ)
3 システムオンチップ(集積回路)
31 L3インターコネクト(接続部)
32 CPU(MPU,プロセッサ)
32′,132 MPU(プロセッサ)
32a〜32d,132a,132b コア
33,133,3300 イメージングプロセッサ
34,134,3400 GPU
35,135,3500 ディスプレイコントローラ
36,36′ H.264エンコーダ(ビデオエンコーダ,第2エンコーダ)
37,3700 NANDコントローラ
38,3800 EMAC
39,139 DMAサブシステム
3000 システムオンチップ
3200 CPU
3600 H.264エンコーダ
40 DSP
41,141 L4インターコネクト
42 ハードウェアアクセラレータ(第3エンコーダ)
420 エンコード処理部
420a レジスタグループ(第1レジスタ)
420b レジスタグループ(第2レジスタ)
421 バッファリング機能部
421a〜426a,421b〜426b レジスタ
422 色変換機能部
423 色差間引き機能部
424 DTC変換機能部
425 量子化機能部
426 ハフマン圧縮機能部
51,151,5100 カメラ
52,152 SDRAM(メモリ)
53 フラッシュメモリ(格納部)
54,154,5400 Wi−Fiコントローラ
5200 SDRAM

Claims (6)

  1. 表示処理部において表示処理が行なわれたコンテンツに対して、受信装置へ送信するための第1のエンコード処理を実行する第1エンコーダを実装する集積回路を有することを特徴とする、端末装置。
  2. 前記コンテンツを保持するメモリと、
    前記集積回路に実装され、前記メモリに保持された前記コンテンツに対して、格納部に格納するための第2のエンコード処理を実行して、前記格納部へ格納する第2エンコーダと、
    前記メモリに保持された前記コンテンツに対して前記表示処理を実行する前記表示処理部と、をさらに有することを特徴とする、請求項1記載の端末装置。
  3. 前記表示処理部は、前記表示処理が行なわれたコンテンツを前記メモリに保持し、
    前記第1エンコーダは、前記メモリに保持された前記表示処理を行なわれたコンテンツを読み出して、前記第1のエンコード処理を実行することを特徴とする、請求項2記載の端末装置。
  4. 前記表示処理部、前記第1エンコーダ、及び前記メモリは、それぞれインターコネクトに接続されることを特徴とする、請求項3記載の端末装置。
  5. 前記第1エンコーダ及び第2エンコーダは、共通の一つの第3エンコーダにより構成されることを特徴とする、請求項2〜4のいずれか1項記載の端末装置。
  6. プロセッサを実装する集積回路を有するコンピュータに、
    表示処理部において表示処理が行なわれたコンテンツに対して、受信装置へ送信するための第1のエンコード処理を実行する、
    処理を実行させることを特徴とする、処理プログラム。
JP2012206747A 2012-09-20 2012-09-20 端末装置,及び処理プログラム Pending JP2014063259A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012206747A JP2014063259A (ja) 2012-09-20 2012-09-20 端末装置,及び処理プログラム
US14/016,694 US20140078020A1 (en) 2012-09-20 2013-09-03 Terminal apparatus, integrated circuit, and computer-readable recording medium having stored therein processing program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012206747A JP2014063259A (ja) 2012-09-20 2012-09-20 端末装置,及び処理プログラム

Publications (1)

Publication Number Publication Date
JP2014063259A true JP2014063259A (ja) 2014-04-10

Family

ID=50273925

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012206747A Pending JP2014063259A (ja) 2012-09-20 2012-09-20 端末装置,及び処理プログラム

Country Status (2)

Country Link
US (1) US20140078020A1 (ja)
JP (1) JP2014063259A (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11228769B2 (en) 2013-06-03 2022-01-18 Texas Instruments Incorporated Multi-threading in a video hardware engine
KR102088384B1 (ko) * 2013-09-04 2020-05-28 삼성전자주식회사 디스플레이 기기의 제어 방법, 그에 따른 싱크 기기 및 그에 따른 미러링 시스템
CN104767949A (zh) * 2014-11-08 2015-07-08 晶晨半导体(上海)有限公司 分体式电视
TWI536174B (zh) * 2014-12-17 2016-06-01 緯創資通股份有限公司 資料分享方法、資料分享系統及其伺服端裝置
CN116774961A (zh) * 2017-08-25 2023-09-19 微软技术许可有限责任公司 无线可编程媒体处理***
JP7003079B2 (ja) * 2019-03-14 2022-01-20 株式会社東芝 電子機器
CN110381195A (zh) * 2019-06-05 2019-10-25 华为技术有限公司 一种投屏显示方法及电子设备
US20220398216A1 (en) * 2021-06-14 2022-12-15 Videon Central, Inc. Appliances and methods to provide robust computational services in addition to a/v encoding, for example at edge of mesh networks

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000253400A (ja) * 1999-03-02 2000-09-14 Fujiya Denki Seisakusho:Kk 画像データ変換通信システム
JP2004264769A (ja) * 2003-03-04 2004-09-24 Toshiba Corp 情報処理装置およびプログラム
JP2004274449A (ja) * 2003-03-10 2004-09-30 Hitachi Ltd 情報記録装置および情報記録装置における状態表示方法
JP2008539614A (ja) * 2005-04-21 2008-11-13 クォーティックス インク 統合無線マルチメディア送信システム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4806515B2 (ja) * 2003-05-19 2011-11-02 株式会社日立製作所 符号化装置、これを用いたビデオカメラ装置及び符号化方法
WO2005096168A1 (ja) * 2004-04-01 2005-10-13 Matsushita Electric Industrial Co., Ltd. 映像音声処理用集積回路
US9197912B2 (en) * 2005-03-10 2015-11-24 Qualcomm Incorporated Content classification for multimedia processing
US9635374B2 (en) * 2011-08-01 2017-04-25 Apple Inc. Systems and methods for coding video data using switchable encoders and decoders

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000253400A (ja) * 1999-03-02 2000-09-14 Fujiya Denki Seisakusho:Kk 画像データ変換通信システム
JP2004264769A (ja) * 2003-03-04 2004-09-24 Toshiba Corp 情報処理装置およびプログラム
JP2004274449A (ja) * 2003-03-10 2004-09-30 Hitachi Ltd 情報記録装置および情報記録装置における状態表示方法
JP2008539614A (ja) * 2005-04-21 2008-11-13 クォーティックス インク 統合無線マルチメディア送信システム

Also Published As

Publication number Publication date
US20140078020A1 (en) 2014-03-20

Similar Documents

Publication Publication Date Title
JP2014063259A (ja) 端末装置,及び処理プログラム
US9665332B2 (en) Display controller, screen transfer device, and screen transfer method
JP5726919B2 (ja) リモートディスプレイに画像をレンダリングするためのデルタ圧縮ならびに動き予測およびメタデータの修正を可能にすること
US10951914B2 (en) Reliable large group of pictures (GOP) file streaming to wireless displays
KR20070011335A (ko) 영상음성 처리용 집적회로
US20160188279A1 (en) Mode-switch protocol and mechanism for hybrid wireless display system with screencasting and native graphics throwing
WO2009133671A1 (ja) ビデオ符号化・復号化装置
JP2003204556A (ja) マルチメディア信号処理のための映像復元プロセッサ
JPH10145739A (ja) メモリを共用するビデオ及び/又はオーディオ脱圧縮及び/又は圧縮装置
US7609768B2 (en) Video buffer control apparatus for dual video decoding and digital broadcasting receiver thereof
US11968380B2 (en) Encoding and decoding video
US10349073B2 (en) Decoding device, image transmission system, and decoding method
US9609215B2 (en) Moving-image recording/reproduction apparatus
CN110583019B (zh) 视频帧编解码器架构
US10356439B2 (en) Flexible frame referencing for display transport
US20130235924A1 (en) Electronic apparatus and method for encoding
US10595047B2 (en) Wireless display subsystem and system-on-chip
KR100623710B1 (ko) 하드웨어 리소스를 공유하여 복수의 동영상 콘텐츠를처리하는 방법
JP2016506662A (ja) スケーラブルな高スループットビデオエンコーダ
US20080056377A1 (en) Neighboring Context Management
TWI466100B (zh) 電子裝置及其顯示資料之處理方法
US20240205469A1 (en) Apparatus and method for processing cloud streaming low latency playback
JP6067085B2 (ja) 画面転送装置
JP2016149770A (ja) ストリーミングレイテンシの最小化システム及びそれを使用する方法
KR200422852Y1 (ko) 하드웨어 리소스를 공유하여 복수의 멀티미디어 데이터를처리하는 장치

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150604

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160428

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160517

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160711

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161206

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170206

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20170214