(58)【調査した分野】(Int.Cl.,DB名)
前記符号化制御部は、前記無線通信の通信品質の低下を検出した場合に、更に、前記差分フレームに含める前記基準フレーム内の前記ブロックのブロックサイズを第1のサイズから、前記第1のサイズよりも小さい第2のサイズに変更して符号化を行うように前記符号化部を制御する、請求項1に記載の無線通信装置。
前記符号化制御部は、前記無線通信の通信品質の低下を検出した場合に、前記映像コンテンツのビットレートを第1のビットレートから、前記第1のビットレートよりも小さい第2のビットレートに変更して符号化を行うように前記符号化部を制御する、請求項1又は請求項2に記載の無線通信装置。
【背景技術】
【0002】
近年、例えば、スマートフォン、タブレット端末などの無線通信装置が再生している映像や音声などのコンテンツを、テレビ、ディスプレイ、及びスピーカーなどの出力装置へと無線通信を利用して送信し、出力させる技術が普及してきている。例えば、スマートフォン、タブレット端末などでは、Wi-Fi Display(ミラキャスト:Miracast)のソース(Source)機能が標準で搭載されることが増えている。なお、ソースとは、例えば、無線通信装置が再生している映像や音声をシンク(Sink)機器へと無線通信を利用して送信する機能を有する機器であってよい。無線通信は、例えば無線LAN(Local Area Network)などを介して行われてよい。また、シンクとは、例えば、ソース機能を備えた機器から受信した映像や音声を出力する機能を有する出力装置であってよく、テレビ、ディスプレイ、及びスピーカーなどを含んでいてよい。
【0003】
ミラキャストでは、映像コンテンツを送信する際に、MPEG2-TSコンテナフォーマットが利用される。なお、MPEG2は、Moving Picture Experts Group 2の略称である。TSは、Transport Streamの略称である。MPEG2-TSコンテナフォーマットでは、映像コーデックに、例えば、H.264コーデックが利用される。また、音声コーデックには、例えば、AACが利用される。AACは、Advanced Audio Codingの略称である。H.264コーデックは、例えば、イントラ符号化フレーム(Iフレーム)、予測符号化フレーム(Pフレーム)、及び双方向予測符号化フレーム(Bフレーム)の3種類のフレームを含み得る。
【0004】
Iフレームは、フレーム内予測(イントラ予測)の結果に基づいて生成される。Iフレームは、例えば、他のフレームを参照することなく、単独で復号可能な自己完結型のフレームであり、ビデオシーケンスの最初の画像として用いられる。Iフレームは、例えば、新しいビューワの開始ポイントや、送信されたビットストリームが破損している場合の再同期化ポイントとして使用される。Iフレームは、例えば、早送り、巻き戻し、その他のランダムアクセス機能を実装するために使用され、一定間隔でIフレームは自動的に挿入されてよい。Iフレームは、例えば、3つのフレームの中ではデータ量が最も大きくなる傾向があるフレームである。なお、以下の説明では、他のフレームを参照せずに復号可能であり、他のフレームの復号において参照される例えばIフレームなどのフレームを基準フレームと呼ぶことがある。
【0005】
また、Pフレームは、例えば、過去のフレームからフレーム間予測(インター予測)によりフレーム間の差分を符号化して伝送するフレームである。また、Bフレームは、例えば、過去及び未来のフレームからフレーム間予測によりフレーム間の差分を符号化して伝送するフレームである。Bフレームは、フレーム間の差分を伝送するため、例えば、Iフレームよりも少ないデータ量で済む傾向があるが、復号のためにPフレーム及びIフレームなどの他のフレームを参照するため、伝送エラーの影響を受け易い。また、Pフレームも、復号のために他のフレームを参照するため、Bフレームと同様に伝送エラーの影響を受け易い。なお、以下の説明では、Bフレーム及びPフレームなどの復号の際に他のフレームを参照するフレームを差分フレームと呼ぶことがある。
【0006】
これに関し、能率良く伝送が行え、かつ伝送誤りが生じてもかかる誤りを良好に処理して回復出来る伝送装置を提供するための技術が知られている(例えば、特許文献1参照)。また、シーケンスの先頭がPピクチャである場合の参照画像ミスマッチと、Iピクチャである場合のピクチャスキップを回避できるようにするための技術が知られている(例えば、特許文献2参照)。
【発明を実施するための形態】
【0012】
以下、図面を参照しながら、本発明のいくつかの実施形態について詳細に説明する。なお、複数の図面において対応する要素には同一の符号を付す。
【0013】
図1は、例示的なミラキャストによるソース機器101からのシンク機器102へのコンテンツの伝送処理の流れを説明する図である。なお、ソース機器101は、無線通信機能を備える無線通信装置であってよく、例えば、スマートフォン、携帯電話機、タブレット端末などであってよい。また、シンク機器102は、例えば、テレビ、ディスプレイ、及びスピーカーなどの無線通信機能を備える出力装置であってよい。そして、例えば、ソース機器101で実行されるアプリケーション104において、コンテンツの再生指示が入力されたとする。この場合に、アプリケーション104は、記憶部103に記憶されているコンテンツのファイルを読み出し、コンテンツを復号化して、ソース機器101が備える表示部105の表示画面へのコンテンツの描画を実行する。また、アプリケーション104は、ミラキャストを実行する指示が入力されている場合には、表示部105の表示画面へと描画するための画像データをキャプチャする。そして、アプリケーション104は、キャプチャした画像のリサイズを行い、MPEG2-TSコンテナフォーマットに符号化してシンク機器102へと送信する。なお、MPEG2-TSコンテナフォーマットでは、例えば、コンテンツの映像データはH.264コーデックで符号化され、また音声データはAAC(Advanced Audio Coding)コーデックにより符号化される。
【0014】
図2は、H.264におけるフレームの構成を例示する図である。H.264では、フレームは、例えば、イントラ符号化フレーム(Iフレーム)、予測符号化フレーム(Pフレーム)、及び双方向予測符号化フレーム(Bフレーム)の3種類を含む。また、
図2において、矢印200は、符号化の際の参照先のフレームを表しており、Bフレームは、Iフレームと、Pフレームとを参照している。また、PフレームはIフレームを参照している。Iフレームは、他のフレームを参照しておらず、単独で復号可能な自己完結型のフレームであり、例えば、ビデオシーケンスの最初の画像として用いられる。そのため、Iフレームは、3つのフレームの中ではデータ量が大きくなる傾向がある。
【0015】
また、
図3は、ソース機器101からのシンク機器102へのコンテンツの伝送において、シンク機器102でIフレームが正常に受信されない場合を例示する図である。例えば、マルチチャネル伝送の利用による電波の干渉などによって、無線通信の通信品質が著しく劣化することがある。この場合、通信パケットの伝送エラーの増加や、リンクスピードの落ち込みが発生し、それによって通信パケットが劣化してしまい、例えば、データ量の大きいIフレームが正常にシンク機器102において受信されないことがある。なお、リンクスピードは、例えば、ソース機器101とシンク機器102との間の通信の通信速度であってよい。また、伝送エラーは、例えば、ソース機器101がシンク機器102へと送信したパケットがシンク機器102で正常に受信されない事象であってよい。この場合、その後に受信されるBフレームやPフレームなどの差分フレームは画面全体の映像情報を含んでおらず、復号の際にIフレームを参照する。そのため、Iフレームと比較してデータ量が小さくなる傾向のあるBフレームやPフレームなどの差分フレームが正常に受信できたとしても、Iフレームが受信されなかったことに起因して差分フレームからは画面全体が正常に復号されない。そして、例えば、或る期間(例えば、
図3の矢印300の期間)に渡って表示画面にブロックノイズが発生し、映像が乱れて正常に再生されない状況が発生する。なお、斜線で示されるフレームは正常に再生されないフレームを表している。
【0016】
また、この映像の乱れは、次のIフレームが正常に受信されれば、復旧することができるが、通信状態によっては次のIフレームも正常に受信されないことが起こり得る。その結果、ユーザーが、長い期間にわたって映像が復旧されない状態でコンテンツを見る事態が生じることがある。そこで、以下で述べる第1の実施形態ではソース機器101は、通信品質が低下した場合に、例えば、Iフレームなどの基準フレーム内の少なくとも1つの描画ブロックを、BフレームやPフレームなどの差分フレームに含めて伝送する。なお、描画ブロックは、例えば、符号化の単位となるブロックであってよく、H.264においてはマクロブロックであってよい。それにより、シンク機器102は、差分フレームに含めて受信された基準フレームの描画ブロックのデータを用いて、ブロックノイズが生じている映像中の描画ブロックに対応する領域を再描画して復旧することができる。従って、ソース機器101は、シンク側の出力装置が受信して出力する映像に乱れが発生した場合に、映像を早期に復旧させることができる。以下、第1の実施形態を説明する。
【0017】
<第1の実施形態>
図4は、第1の実施形態に係るソース機器101の機能ブロック構成を例示する図である。ソース機器101は、例えば、制御部400、記憶部103、及び送信部420を含んでいる。制御部400は、例えば符号化制御部401、及び符号化部402などの機能部を含んでいる。ソース機器101の記憶部103は、例えば、プログラム、並びに後述する符号化設定情報1200などの情報を記憶していてよい。符号化部402は、例えば、コンテンツの符号化を実行してよく、また、符号化制御部401は、符号化部402による符号化を制御してよい。送信部420は、制御部400の指示に従って、シンク機器102と通信を行う。これらの各機能部及び記憶部103に格納されている情報の更なる詳細については後述する。
【0018】
図5は、第1の実施形態に係るソース機器101の別の機能ブロック構成を例示する図である。
図5ではソース機器101は、例えば、制御部400及び無線通信部520を含んでいる。ソース機器101の制御部400は、例えば、入力制御部501、メディア再生制御部502、ビデオ制御部503、オーディオ制御部504、符号化部505、パケット処理部506、符号化制御部507、通信部508、及び通信監視部509を含む。入力制御部501は、例えば、ソース機器101上で動作するメディアプレーヤーなどのアプリケーションであってよく、ユーザーとのインタフェースとして機能してよい。入力制御部501は、例えば、ミラキャストによるシンク機器102へのコンテンツの出力指示がユーザーから入力された場合、メディア再生制御部502に再生依頼を出力する。再生依頼が入力されたメディア再生制御部502は、例えば、コンテンツのデータを映像データと音声データとの2つのコーデックに分け、映像データをビデオ制御部503に渡し、音声データをオーディオ制御部504に渡す。ビデオ制御部503は、渡された映像データを復号化し、符号化部505へと渡す。符号化部505は、ミラキャストでの映像データの出力に用いるフォーマットへと映像データを符号化する処理を実行する。オーディオ制御部504は、音声データを復号化し、パケット処理部506へと渡す。音声データ、及び符号化された映像データは、パケット処理部506に渡され、外部へと出力するためにパケット化される。なお、パケットは、例えば、MPEG2-TSのコンテナフォーマットで作成されてよい。
【0019】
パケット化されたデータは、通信部508に渡され、無線通信部520を経由して、シンク機器102へと出力される。なお、無線通信部520とシンク機器102との間の通信は、例えば、無線LANを介してRTPで実行されてよい。なお、RTPは、Real-time Transport Protocolの略称である。通信監視部509は、例えば、無線通信部520とシンク機器102との間の通信の通信品質(例えば、リンクスピード、パケットロス率、及びパケット再送率など)を所定の周期で監視してよい。リンクスピードは、例えば、ソース機器101とシンク機器102との間の通信の通信速度であってよい。パケットロス率は、例えば、ソース機器101がシンク機器102へと送信したパケットのうちで、シンク機器102で正常に受信されなかったパケットが占める割合であってよい。パケット再送率は、例えば、ソース機器101がシンク機器102へと送信したパケットのうちで、シンク機器102から再送依頼を受信したパケットの割合であってよい。なお、シンク機器102は、正常に受信されなかったパケットについてソース機器101に再送依頼を送信してよい。
【0020】
そして、通信監視部509は、例えば、通信品質が所定の品質を下回って低下した場合に、符号化制御部507に通信品質が低下したことを示す情報を通知する。符号化制御部507は、通信監視部509から通信品質が低下したことを示す情報の通知を受けると、符号化部505に映像データの符号化処理を変更するように指示する。符号化部505は、符号化制御部507からの指示に従って、コンテンツの符号化処理を変更して、符号化を行う。例えば、符号化部505は、符号化処理の変更が指示された場合に、シンク機器102へと最後に出力した基準フレームのデータの一部(例えば、マクロブロック単位のデータ)を差分フレームに挿入するように符号化部505による符号化処理を変更してよい。これにより、シンク機器102は、受信した差分フレームに挿入されている基準フレームの一部のデータを用いて、一部のデータに対応するフレーム内の領域の画像を再描画することができる。従って、例えば、ソース機器101とシンク機器102との間の通信品質が低下し、シンク機器102での再生映像に乱れが発生している場合に、シンク機器102で再生される映像の復旧にかかる時間を早めることができる。
【0021】
図6は、第1の実施形態に係るコンテンツの伝送処理の動作シーケンスを例示する図である。ミラキャストでコンテンツを再生する場合、Wi-Fi Directを用いてソース機器101とシンク機器102の間で接続が確立される。続いて、RTSPを用いて、ソース機器101とシンク機器102は、お互いの機器のサポートする機能、能力の情報を交換する。なお、RTSPは、Real Time Streaming Protocolの略称である。その後、ソース機器101は、AV Streamingを開始してシンク機器102へとRTPパケットを送信し、それにより、シンク機器102にコンテンツの映像データ及び音声データが伝送される。そして、第1の実施形態では、AV Streamingを開始すると、ソース機器101は、シンク機器102に送信するRTPパケットの通信品質を監視する。ソース機器101は、通信品質の低下を検出した場合、コンテンツの符号化処理を変更して符号化を行い、シンク機器102に送信する。なお、通信品質の低下は、例えばリンクスピードの低下、パケットロス率の増加、パケットの再送率の増加などに基づいて検出されてよい。
【0022】
また、符号化処理の変更は、例えば以下であってよい。
(1)映像データの基準フレームの描画ブロックのデータを差分フレームに含めて差分フレームを送信する。
(2)映像データの描画ブロックのサイズを小さくする。
(3)映像データのビットレートを低くして符号化を行う。
【0023】
従って、例えば、シンク機器102では、次の基準フレームの受信を待たなくても差分フレームに含まれる基準フレームの描画ブロックのデータを用いて、対応する画面領域を再描画することができる。なお、描画ブロックは、例えば、符号化の単位となるブロックであってよく、H.264においてはマクロブロックであってよい。また、例えば、差分フレームに含める基準フレームのデータの単位である描画ブロックのサイズを小さくすることで、差分フレームに含める基準フレームのデータのデータサイズを細かく調節することが可能である。そのため、例えば、送信するフレームのデータサイズを低減することも可能である。また更に、映像データを、ビットレートを低下させて符号化することでも、送信するフレームのデータサイズを低減することができる。そして、このようにフレームのデータサイズを削減することで、ソース機器101とシンク機器102との間の通信品質が低下した場合にも、シンク機器102でフレームのデータが正常に受信される可能性を高めることができる。
【0024】
図7は、上述の通信品質が低下した際の差分フレームへの基準フレームの一部の描画ブロックのデータの挿入について更に説明する図である。例えば、通信品質の低下などに起因して、
図7の左端の第1の基準フレーム701に伝送エラーが発生し、第1の基準フレーム701がシンク機器102に正常に送達しなかったとする。この場合に、例えば、ソース機器101は、最後にシンク機器102へと送信した第1の基準フレームの描画ブロック(例えば、マクロブロック)のデータをBフレームやPフレームなどの差分フレームのデータに含めて送信する。例えば、
図7では、ソース機器101は、第1の差分フレーム702に第1の基準フレームの上半分の画面領域と対応する複数のマクロブロックのデータを含めて、シンク機器102へと伝送する。また、ソース機器101は、第2の差分フレーム703に第1の基準フレーム701の下半分の画面領域と対応する複数のマクロブロックのデータを含めて、シンク機器102へと伝送する。従って、シンク機器102では、第1の差分フレーム702を受信した時点で、第1の差分フレーム702に含まれる第1の基準フレーム701の上半分の画面領域のデータを用いて、上半分の画面領域を再描画し、復旧することができる。また、同様に、シンク機器102は、第2の差分フレーム703を受信した時点で、第2の差分フレーム703に含まれる第1の基準フレーム701の下半分の画面領域のデータを用いて、下半分の画面領域を再描画し、復旧することができる。従って、シンク機器102は、次の第2の基準フレーム704が受信されるのを待たなくても、例えば、第2の差分フレーム703を受信した時点で、フレーム内の画像全体を復旧することができる。なお、
図7では、Pフレームに基準フレームの一部の描画ブロックのデータを挿入する例を示しているが、Bフレームなどの他の差分フレームに基準フレームの一部の描画ブロックのデータが挿入されてもよい。また、差分フレームに挿入する基準フレームの一部の描画ブロックのデータは、1つの描画ブロックのデータであっても、複数の描画ブロックのデータであってもよい。例えば、差分フレームに挿入される基準フレームの描画ブロックの数は、通信品質が低下しても、基準フレームの一部の描画ブロックのデータを含む差分フレームがシンク機器102に送達される可能性の高いデータサイズとなるように、所定の数に設定されてよい。
【0025】
また、
図8は、描画ブロックのブロックサイズを小さくすることで、差分フレームに含める基準フレームのデータのデータサイズを細かく調節することについて更に説明する図である。上述のように、描画ブロックは、例えば、符号化の単位となるブロックであってよく、H.264においてはマクロブロックであってよい。この場合、描画ブロックは符号化の単位であるため、描画ブロック単位でデータを受信できれば、シンク機器102は、その描画ブロックのデータを復号して対応する領域の画像を描画することができる。従って、描画ブロックは、差分フレームに含める基準フレームのデータの単位として用いることができる。そして、ソース機器101は、例えば、ソース機器101とシンク機器102との間の通信品質が低下した場合に、差分フレームに含める基準フレームの描画ブロックのブロックサイズをより小さいサイズに変更する。
図9は、H.264において選択することが可能なマクロブロックサイズを例示する図であり、16×16画素、16×8画素、8×16画素、8×8画素の複数のマクロブロックサイズが示されている。そして、ソース機器101の制御部400は、例えば、通信品質が低下した場合に、
図8に示す様に、差分フレームに含める基準フレームのマクロブロックのブロックサイズを16×16画素からより小さいサイズである8×8画素に変更してよい。この様に、差分フレームに含める基準フレームの描画ブロックのブロックサイズをより小さいサイズに変更することで、基準フレームの一部のデータが挿入された差分フレームのデータサイズをより細かく調節することが可能になる。そのため、例えば、送信するフレームのデータサイズを低減することも可能であり、それによって、基準フレームの一部のデータを含む差分フレームがシンク機器102に正常に送達される可能性を高めることができる。
【0026】
また更に、ソース機器101の制御部400は、通信品質が低下し、差分フレームに基準フレームのデータの一部を含めて伝送する場合に、コンテンツの映像データの画質を低下させてビットレートを小さくし、符号化を実行してよい。なお、ビットレートは、例えば、映像データの1秒当たりのデータ量を表す値であってよい。一例として、フルHD(画素数1920×1080)の映像を、720p(画素数1280×720)に符号化することでフレーム当たりのデータサイズを削減し、ビットレートを小さくすることができる。そのため、基準フレームの一部のデータを含む差分フレームがシンク機器102に送達される可能性を高めることができる。或いは、ビットレートを小さくすることで、例えば、基準フレームに含まれる描画ブロックの数が減るため、差分フレームに含めて伝送する描画ブロックの数を少なくすることができる。そのため、例えば、通信品質が低下して映像が乱れた場合に、映像の復旧を早めることができる。
【0027】
図10は、第1の実施形態に係るソース機器101の制御部400が実行するコンテンツの伝送処理の動作フローを例示する図である。
図10のコンテンツの伝送処理の動作フローは、例えば、コンテンツをシンク機器102へとストリーミングにより再生する指示がソース機器101に入力されると開始してよい。
【0028】
ステップ1001(以降、ステップを“S”と記載し、例えば、S1001と表記する)においてソース機器101の制御部400は、例えば、シンク機器102との接続を確立する。例えば、ソース機器101の制御部400は、Wi-Fi Directを用いてシンク機器102との接続を確立してよい。S1002においてソース機器101の制御部400は、コンテンツを符号化する。例えば、ソース機器101の制御部400は、コンテンツから復号化した映像をキャプチャしてリサイズを行い、音声データとともにMPEG2-TSコンテナフォーマットに符号化してよい。S1003においてソース機器101の制御部400は、符号化したデータをシンク機器102へと送信する。S1004においてソース機器101の制御部400は、シンク機器102との間の通信の通信品質を監視する。ソース機器101の制御部400は、S1004において、例えば、所定のタイミングで通信品質の確認を行ってよく、また、通信品質は、例えばリンクスピード、パケットロス率、及びパケット再送率などであってよい。
【0029】
S1005においてソース機器101の制御部400は、通信品質が所定の品質以下に低下しているか否かを判定する。例えば、ソース機器101の制御部400は、リンクスピードが第1の閾値以下である場合に、通信品質が所定の品質以下であると判定してよい。または、ソース機器101の制御部400は、パケットロス率が第2の閾値以上である場合に、通信品質が所定の品質以下であると判定してよい。また、別の実施形態では、ソース機器101の制御部400は、パケット再送率が第3の閾値以上である場合に、通信品質が所定の品質以下であると判定してよい。或いは、ソース機器101の制御部400は、これらのリンクスピード、パケットロス率、及びパケット再送率による判定を組み合わせて、通信品質が所定の品質以下になったか否かを判定してよい。例えば、ソース機器101の制御部400は、リンクスピードが第1の閾値以下であるか、又は、パケットロス率が第2の閾値以上である場合に、通信品質が所定の品質以下になったと判定してよい。
【0030】
S1005において通信品質が所定の品質以下である場合(S1005がYes)、フローはS1006へと進む。S1006においてソース機器101の制御部400は、再生中のコンテンツの符号化処理を通信品質が低下している場合の設定に変更する。この符号化処理の変更では、制御部400は、例えば、直前にシンク機器102へと送信した基準フレームの一部のデータ(例えば、マクロブロック単位のデータ)を差分フレームに含めて符号化を行うように符号化処理を変更してよい。また、この符号化処理の変更では、ソース機器101の制御部400は、基準フレームの一部のデータを差分フレームに含めて伝送する場合に、例えば、差分フレームに含める基準フレームの描画ブロックのサイズをより小さいブロックサイズに変更してよい。更には、この符号化処理の変更では、ソース機器101の制御部400は、例えば、映像データのビットレートを通信品質に応じて低下させてよい。S1006においてソース機器101の制御部400が、コンテンツの符号化処理を変更すると、フローはS1002へと戻る。そして、制御部400は、変更された符号化処理によってS1002のコンテンツの符号化を実行してよい。
【0031】
一方、S1005において通信品質が所定の品質以下でないと判定された場合(S1005がNo)、フローはS1007へと進む。S1007において制御部400は、コンテンツの符号化処理を、通信品質が低下している場合の設定に変更済みか否かを判定する。コンテンツの符号化処理を、通信品質が低下している場合の設定に変更済みでない場合(S1007がNo)、フローはS1002へと戻る。なお、この場合、例えば、ソース機器101とシンク機器102との間の通信の通信品質は良好であると考えられる。
【0032】
一方、S1007においてコンテンツの符号化処理を通信品質が低下している場合の設定に変更済みである場合(S1007がYes)、フローはS1008へと進む。S1008において制御部400は、符号化処理を通信品質が低下している場合の設定から元の設定に戻す。例えば、ソース機器101の制御部400は、基準フレームの一部のデータを差分フレームに含めてシンク機器102に伝送している場合には、S1008において、差分フレームへの基準フレームの一部のデータの挿入を停止してよい。また、ソース機器101の制御部400は、差分フレームに含める基準フレームの描画ブロックのサイズをより小さいブロックサイズに変更している場合には、S1008において、描画ブロックのサイズを変更前の元のサイズに戻してよい。更には、ソース機器101の制御部400は、例えば、ビットレートを通信品質に応じて低下させている場合には、S1008において、変更したビットレートを元のビットレートに戻してよい。ソース機器101の制御部400が、コンテンツの符号化処理を元に戻すと、フローはS1002へと戻る。なお、コンテンツの伝送が完了すると、ソース機器101の制御部400は、本動作フローを終了してよい。
【0033】
以上の
図10の動作フローのS1002において、ソース機器101の制御部400は、例えば、符号化部402として機能してよい。或いは、S1002においてソース機器101の制御部400は、メディア再生制御部502、ビデオ制御部503、オーディオ制御部504、符号化部505、パケット処理部506、通信部508として機能してよい。S1003において、ソース機器101の制御部400は、例えば、送信部420、又は無線通信部520として機能してよい。S1004〜S1008の処理では、ソース機器101の制御部400は、例えば、符号化制御部401として機能してよい。或いは、S1004の処理においてソース機器101の制御部400は、通信監視部509として機能してよく、また、S1005〜S1008の処理において符号化制御部507として機能してよい。
【0034】
以上で述べたように、第1の実施形態では、ソース機器101の制御部400は、コンテンツのシンク機器102への伝送を開始すると、シンク機器102との間の通信の通信品質を監視する。そして、ソース機器101の制御部400は、シンク機器102との間の通信品質が所定の品質以下に低下した場合には、直前に送信した基準フレーム内の描画ブロックのデータを、差分フレームに含めて符号化を実行し、シンク機器102に伝送する。従って、例えば、ソース機器101とシンク機器102との間の通信品質の低下に起因して基準フレームの受信にエラーが発生し、シンク機器102で再生している映像が乱れたとする。この場合に、シンク機器102は、例えば、次の基準フレームの受信を待たなくても、差分フレームに含まれる基準フレームの描画ブロックのデータを用いて、その描画ブロックを再描画して、映像を復旧することができる。
【0035】
また、ソース機器101の制御部400は、シンク機器102との間の通信品質が所定の品質以下に低下した場合に、符号化に用いる描画ブロック(例えば、マクロブロック)のサイズをより小さいブロックサイズに変更する。例えば、ソース機器101の制御部400は、差分フレームに含める基準フレームの描画ブロックのサイズをより小さいブロックサイズに変更してよい。それによって、差分フレームに含める基準フレームの描画ブロックのデータ量を細かく調節することが可能である。そのため、ソース機器101の制御部400は、例えば、送信するフレームのデータサイズを低減することも可能であり、基準フレームの一部のデータを含む差分フレームがシンク機器102に送達される可能性を高めることができる。また、ソース機器101の制御部400は、シンク機器102との間の通信品質が所定の品質以下に低下した場合に、映像データのビットレートを小さくして符号化を実行してもよい。それによって、ソース機器101の制御部400は、例えば、送信するフレームのデータサイズを低減することができ、基準フレームの一部のデータを含む差分フレームがシンク機器102に送達される可能性を高めることができる。また、ビットレートを小さくすることで、例えば、基準フレームに含まれるマクロブロックの数を減らすことができるため、差分フレームに基準フレームのデータを含めて伝送する場合の再描画を早めることができる。
【0036】
なお、上述のS1005において、制御部400は、例えば、リンクスピードが第1の閾値以下であるか、又は、パケットロス率が第2の閾値以上である場合に、通信品質が所定の品質以下になったと判定してよい。リンクスピードは、例えば、シンク機器102からの距離が離れた場合などに低下する傾向があり、リンクスピードの低下によりパケットの伝送エラーが発生する可能性がある。一方で、パケットの伝送エラーは、例えば、リンクスピードが良好な速度であったとしても、周囲で類似する周波数帯域での通信が行われていると、電波干渉により発生してしまうことがある。そのため、通信品質の低下を、例えば、リンクスピード及びパケットロス率などの複数の評価指標に基づいて判定することで、通信品質の低下をより確実に検出することができる。
【0037】
以上で述べたように、第1の実施形態によれば、例えば、通信品質の低下により、出力装置が受信して出力する映像に乱れが発生した場合に、映像を早期に復旧することができる。
【0038】
<第2の実施形態>
第1の実施形態では、ソース機器101とシンク機器102との間の通信品質が所定の品質以下に低下した場合に、符号化処理を通信品質が低下している場合の設定に変更する実施形態が説明されている。しかしながら、実施形態はこれに限定されるものではない。例えば、制御部400は、通信品質に応じて、符号化処理を段階的に制御してもよい。以下、
図11及び
図12を参照して第2の実施形態に係るコンテンツの伝送処理を説明する。
【0039】
図11は、第2の実施形態に係るソース機器101の制御部400が実行するコンテンツの伝送処理の動作フローを例示する図である。
図11のコンテンツの伝送処理の動作フローは、例えば、コンテンツをシンク機器102へとストリーミングにより再生する指示がソース機器101に入力されると開始してよい。
【0040】
S1101においてソース機器101の制御部400は、例えば、シンク機器102との接続を確立する。例えば、ソース機器101の制御部400は、Wi-Fi Directを用いてシンク機器102との接続を確立してよい。S1102においてソース機器101の制御部400は、コンテンツを符号化する。例えば、ソース機器101の制御部400は、コンテンツから復号化した映像をキャプチャしてリサイズを行い、音声データとともにMPEG2-TSコンテナフォーマットに符号化してよい。S1103においてソース機器101の制御部400は、符号化したデータをシンク機器102へと送信する。S1104においてソース機器101の制御部400は、シンク機器102との間の通信の通信品質を監視する。ソース機器101の制御部400は、S1104において、例えば、所定のタイミングで通信品質の確認を行ってよく、また、通信品質は、例えばリンクスピード、パケットロス率、及びパケット再送率などであってよい。S1105においてソース機器101の制御部400は、検出された通信品質に応じて再生中のコンテンツの符号化処理を変更する。第2の実施形態では制御部400は、例えば、符号化設定情報1200を参照して、通信品質に応じた符号化処理の設定を取得してよい。
【0041】
図12は、第2の実施形態に係る符号化設定情報1200を例示する図である。符号化設定情報1200には、リンクスピード、及びパケットロス率の値範囲が通信品質と対応付けて含まれている。
図12では、一番左側に最も悪い通信品質である品質1が登録されており、品質1から右へと順により高い通信品質である品質2、品質3、品質4が登録されている。また、リンクスピードとパケットロス率には、品質1〜品質4のそれぞれの品質に対応する値範囲が登録されている。また更に、符号化設定情報1200は、通信品質に応じて変更される符号化処理の設定を含んでおり、品質1〜品質4に対応付けて、例えば、符号化のビットレートと、マクロブロックサイズとが含まれている。そして、ソース機器101の制御部400は、S1105において、例えば、S1104で検出されたリンクスピード及びパケットロス率を値範囲に含む通信品質を特定する。なお、リンクスピードとパケットロス率とで特定される通信品質が異なる場合には、一例として、制御部400は、より悪い通信品質を、現在の通信の通信品質として特定してよい。例えば、リンクスピードに基づいて特定された通信品質が品質2であり、パケットロス率に基づいて特定された通信品質が品質3であれば、品質2をソース機器101とシンク機器102との現在の通信の通信品質として特定してよい。しかしながら、実施形態はこれに限定されるものではなく、例えば、制御部400は、より良い通信品質である品質3をソース機器101とシンク機器102との現在の通信の通信品質として特定してもよい。
【0042】
そして、ソース機器101の制御部400は、S1105において、特定された通信品質に基づいて、符号化処理を変更する。例えば、特定された通信品質が最も良い通信品質:品質4から別の品質に低下していたとする。この場合に、ソース機器101の制御部400は、シンク機器102へと送信した基準フレームのうちで最後に送信した基準フレームの一部の描画ブロックのデータを、差分フレームに含めて符号化を実行するように符号化処理を変更する。そして、フローはS1102へと戻り、ソース機器101の制御部400は、基準フレームの一部の描画ブロックのデータを含めて符号化した差分フレームのデータをシンク機器102へと伝送してよい。なお、特定された通信品質が最も良い通信品質:品質4である場合には、制御部400は、S1105において基準フレームの一部の描画ブロックのデータを差分フレームに含めずに差分フレームの符号化を実行するように符号化処理を設定してよい。また、ソース機器101の制御部400は、例えば、特定された通信品質に対応する符号化のビットレートと、マクロブロックサイズとを符号化設定情報1200から取得し、その値をコンテンツの符号化で用いるように符号化処理を変更してよい。例えば、ソース機器101の制御部400は、符号化設定情報1200から特定された通信品質が品質2であれば、シンク機器102に送信するコンテンツを2.1〜4.0Mbpsのビットレートで符号化するように符号化処理を変更してよい。また、制御部400は、差分フレームに含める基準フレームのマクロブロックのサイズとして8×8画素を用いて符号化を行うように符号化処理を変更してよい。S1105においてソース機器101の制御部400が、通信品質に応じて再生中のコンテンツの符号化処理を変更すると、フローはS1102へと戻り、制御部400は、変更された符号化処理によってS1102でコンテンツの符号化を実行してよい。なお、コンテンツの伝送が完了すると、ソース機器101の制御部400は、本動作フローを終了してよい。
【0043】
以上の
図11の動作フローのS1102において、ソース機器101の制御部400は、例えば、符号化部402として機能してよい。或いは、S1102においてソース機器101の制御部400は、メディア再生制御部502、ビデオ制御部503、オーディオ制御部504、符号化部505、パケット処理部506、通信部508として機能してよい。S1103において、ソース機器101の制御部400は、例えば、送信部420、又は無線通信部520として機能してよい。S1104〜S1105の処理では、ソース機器101の制御部400は、例えば、符号化制御部401として機能してよい。或いは、S1104の処理においてソース機器101の制御部400は、通信監視部509として機能してよく、また、S1105の処理において符号化制御部507として機能してよい。
【0044】
以上で述べたように、第2の実施形態においても制御部400は、例えば、特定された通信品質が最も良い品質4よりも低下している場合には、基準フレームの一部の描画ブロックのデータを、差分フレームに含めてシンク機器102へと伝送する。そのため、第2の実施形態は、第1の実施形態が奏する効果を有する。また更に、第2の実施形態によれば、通信品質の低下の度合いに応じて、符号化処理が段階的に変更される。そのため、例えば、通信品質の低下の度合いに応じて、符号化処理を適切に変更することができる。
【0045】
以上においていくつかの実施形態を例示したが、実施形態は上述の実施形態に限定されるものではない。例えば、上記の例は、H.264による動画像符号化を例として説明されるが、実施形態はこれに限定されるものではない。例えば、H.265(HEVC:High Efficiency Video Coding)などの他の動画像符号化方式でも、基準フレームと差分フレームとを用いて映像がシンク機器102に伝送される場合には、実施形態を適用することが可能である。また、上述の実施形態では、無線通信装置が再生している映像や音声などのコンテンツを、出力装置へと無線通信を利用して送信し、出力させる技術として、ミラキャスト用いる例を示しているが、実施形態はこれに限定されるものではない。例えば、無線通信装置が再生している映像や音声などのコンテンツを、出力装置へと無線通信を利用して送信し、出力させるその他の技術に対して実施形態が適用されてもよい。
【0046】
また、上述の実施形態において、差分フレームに、基準フレームの一部のデータを挿入する場合に、挿入する描画ブロック単位のデータは、差分フレーム内の描画ブロックの符号化データと同様のフォーマットで差分フレーム内に挿入されてよい。例えば、H.264では、差分フレーム内の描画ブロックは、インター符号化又はイントラ符号化を用いてそれぞれ符号化される。また、基準フレーム内の描画ブロックはイントラ符号化を用いて差分フレームと同様の形式で符号化される。そのため、差分フレームの符号化データに、差分フレームの描画ブロックの符号化形式と同様の形式で符号化された基準フレームの描画ブロックのデータを含めることができる。そして、シンク機器102は、例えば、受信した差分フレームの符号化データを描画ブロック単位で復号して画像を表示する。そのため、シンク機器102は、差分フレーム内の描画ブロックの符号化データと同様に差分フレームに含まれる基準フレームの描画ブロックのデータの復号処理を行うことができ、表示画面に表示することができる。
【0047】
また、例えば、
図10及び
図11の動作フローは例示であり、実施形態はこれに限定されるものではない。例えば、
図10及び
図11の動作フローは、可能な場合には、処理の順番が変更されてもよく、別に更なる処理を含んでいてもよく、又は、一部の処理が省略されてもよい。
【0048】
また、実施形態に係るソース機器101は、ハードウェア回路として実装することもでき、例えば、
図13に示すような無線通信機能を備える情報処理装置(コンピュータ)1300を用いて実現することもできる。なお、情報処理装置1300は、例えば、スマートフォン、携帯電話機、タブレット端末などの無線通信装置であってよい。情報処理装置1300は、例えばプロセッサ1301、オーディオデジタル信号プロセッサ(DSP)1302、ビデオDSP1303、メモリ1304を含んでいてよい。また、情報処理装置1300は、例えば、表示装置1305、入出力インタフェース1306、レシーバ1307、マイク1308、無線通信機器1309、アンテナ1310を含んでいてよい。プロセッサ1301は、例えば、オーディオDSP1302、ビデオDSP1303、メモリ1304、表示装置1305、入出力インタフェース1306、無線通信機器1309と接続されていてよい。
【0049】
プロセッサ1301は、情報処理装置1300の各部を制御してよい。例えば、オーディオDSP1302は、プロセッサ1301の指示に従って、レシーバ1307から出力する音声信号、及びマイク1308を介して入力される音声信号を処理する。また、オーディオDSP1302は、例えば、プロセッサの指示に従って、コンテンツの音声データの符号化及び復号化を行ってよい。ビデオDSP1303は、例えば、プロセッサの指示に従って、コンテンツの映像データの符号化又は復号化を行ってよい。
【0050】
また、無線通信機器1309は、例えば、アンテナ1310で送受信される信号を処理してよい。無線通信機器1309は、例えば、プロセッサ1301の指示に従って、オーディオDSP1302、及びビデオDSP1303で処理された音声データ及び映像データを含むパケットをアンテナ1310を介してシンク機器102へと無線通信で送信してよい。
【0051】
また、プロセッサ1301は、例えば、メモリ1304を利用して上述の動作フローの手順を記述したプログラムを実行することで、オーディオDSP1302、ビデオDSP1303を制御し、上述の動作フローの処理を実行してよい。
【0052】
メモリ1304は、例えば半導体メモリであってよく、RAM領域及びROM領域を含んでいてよい。なお、RAMは、Random Access Memoryの略称である。ROMは、Read Only Memoryの略称である。ROM領域は、例えば、フラッシュメモリ等の半導体メモリであってよい。なお、情報処理装置1300は、更に、例えば、プロセッサ1301の指示に従って可搬型記録媒体にアクセスする読取装置を含んでいてもよい。可搬型記録媒体は、例えば、半導体デバイス(USBメモリ、SDメモリカード等)、磁気的作用により情報が入出力される媒体(磁気ディスク等)、及び光学的作用により情報が入出力される媒体(CD−ROM、DVD等)などにより実現されてよい。なお、USBは、Universal Serial Busの略称である。CDは、Compact Discの略称である。DVDは、Digital Versatile Diskの略称である。
【0053】
入出力インタフェース1306は、例えば、入力装置及び出力装置との間のインタフェースである。入力装置は、例えばユーザーからの入力を受け付ける入力キー、及びタッチパネルなどのデバイスであってよい。出力装置は、例えば、スピーカー、印刷装置などであってよい。表示装置1305は、例えばディスプレイ、タッチパネルなどであってよい。なお、例えば、表示装置1305と、入出力インタフェース1306に接続される入力装置とが、タッチパネルである場合には表示装置1305、入出力インタフェース1306、及び入力装置は一体化していてよい。
【0054】
また、上述の動作フローを情報処理装置1300に実行させるための実施形態に係る各プログラムは、例えば、下記の形態で情報処理装置1300に提供されてよい。
(1)メモリ1304に予めインストールされている。
(2)可搬型記録媒体により提供される。
(3)プログラムサーバなどのサーバからネットワークを介して提供される。
【0055】
なお、上述の制御部400は、一実施形態においては、例えば、プロセッサ1301、オーディオDSP1302、及びビデオDSP1303を含んでいてよい。例えば、上述の符号化制御部401、入力制御部501、メディア再生制御部502、パケット処理部506、符号化制御部507、通信部508、及び通信監視部509は、プロセッサ1301であってよい。また、オーディオ制御部504は、例えば、オーディオDSP1302であってよい。符号化部402、ビデオ制御部503、及び符号化部505は、ビデオDSP1303であってよい。送信部420及び無線通信部520は、例えば、無線通信機器1309であってよい。記憶部103は、例えば、メモリ1304であってよく、上述の動作フローの手順を記述したプログラム、コンテンツ、及び符号化設定情報1200などを記憶していてよい。表示部105は、例えば、表示装置1305であってよい。
【0056】
また、別の実施形態では、上述のソース機器101の制御部400の一部又は全部の機能はFPGA及びSoCなどによるハードウェアとして実装されてもよい。なお、FPGAは、Field Programmable Gate Arrayの略称である。SoCは、System-on-a-chipの略称である。
【0057】
上述の実施形態を含むいくつかの実施形態は、上述の実施形態の各種変形形態及び代替形態を包含するものとして当業者には理解される。例えば、各種実施形態は、構成要素を変形して具体化されてよい。また、上述した実施形態に開示されている複数の構成要素を適宜組み合わせることにより、種々の実施形態が実施されてよい。更には、実施形態に示される全構成要素からいくつかの構成要素を削除して又は置換して、或いは実施形態に示される構成要素にいくつかの構成要素を追加して種々の実施形態が実施されてよい。