JP2021057770A - 画像データ転送装置および画像圧縮方法 - Google Patents

画像データ転送装置および画像圧縮方法 Download PDF

Info

Publication number
JP2021057770A
JP2021057770A JP2019179441A JP2019179441A JP2021057770A JP 2021057770 A JP2021057770 A JP 2021057770A JP 2019179441 A JP2019179441 A JP 2019179441A JP 2019179441 A JP2019179441 A JP 2019179441A JP 2021057770 A JP2021057770 A JP 2021057770A
Authority
JP
Japan
Prior art keywords
image
unit
frame
data
display
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
JP2019179441A
Other languages
English (en)
Other versions
JP2021057770A5 (ja
Inventor
活志 大塚
Katsuyuki Otsuka
活志 大塚
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.)
Sony Interactive Entertainment LLC
Original Assignee
Sony Interactive Entertainment LLC
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 Sony Interactive Entertainment LLC filed Critical Sony Interactive Entertainment LLC
Priority to JP2019179441A priority Critical patent/JP2021057770A/ja
Priority to US17/763,339 priority patent/US20220377349A1/en
Priority to PCT/JP2020/035836 priority patent/WO2021065633A1/ja
Publication of JP2021057770A publication Critical patent/JP2021057770A/ja
Publication of JP2021057770A5 publication Critical patent/JP2021057770A5/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/167Position within a video image, e.g. region of interest [ROI]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Controls And Circuits For Display Device (AREA)

Abstract

【課題】通信によるデータ伝送を伴う画像表示において、画質と遅延時間の低減を両立させる。【解決手段】サーバ400の圧縮符号化部422において注目度推定部460は、画像生成部420が生成し動画像が表す内容に基づき、フレーム平面を分割してなる単位領域ごとに注目度を推定する。圧縮符号化処理部464は、注目度の分布に基づきフレーム平面で圧縮率を異ならせ、動画像を圧縮符号化する。通信部426は圧縮符号化されたデータを画像処理装置200に送信する。【選択図】図33

Description

この発明は、表示対象の動画像のデータを処理する画像データ転送装置および画像圧縮方法に関する。
近年の情報処理技術や画像表示技術の向上により、様々な形態で映像世界を体験することができるようになってきた。例えばヘッドマウントディスプレイにパノラマ映像を表示し、ユーザの視線に対応する画像を表示させることにより、映像世界への没入感を高めたり、ゲームなどのアプリケーションの操作性を向上させたりできる。また、潤沢なリソースを有するサーバからストリーミング転送された画像データを表示させることにより、ユーザは場所や規模によらず高精細な動画像やゲーム画面を楽しむことができる。
ネットワークを介して伝送された画像のデータをクライアント端末に即時表示させる技術においては、当該クライアント端末とサーバ間の通信による遅延時間が問題となり得る。例えばクライアント端末側でのユーザ操作を表示画像に反映させる場合、ユーザ操作のサーバへの送信と、サーバからクライアント端末への画像データの送信といったデータの行き来が必要になり、看過できない遅延時間を生むことがある。ヘッドマウントディスプレイを表示先とする場合は、ユーザの頭部の動きに対し表示が遅れることにより、臨場感が損なわれたり映像酔いを引き起こしたりすることも考えられる。この問題は、高い画質を追求するほど顕在化しやすい。
本発明はこうした課題に鑑みてなされたものであり、その目的は、通信によるデータ伝送を伴う画像表示において、画質と遅延時間の低減を両立させることのできる技術を提供することにある。
上記課題を解決するために、本発明のある態様は画像データ転送装置に関する。この画像データ転送装置は、表示対象の動画像を描画する描画部と、前記動画像が表す内容に係る情報を取得する画像内容取得部と、動画像のフレーム平面を分割してなる単位領域ごとに、動画像が表す内容に応じた注目度を推定する注目度推定部と、注目度の分布に基づきフレーム平面で圧縮率を異ならせ、動画像のデータを圧縮符号化する圧縮符号化部と、圧縮符号化された動画像のデータを送信する通信部と、を備えたことを特徴とする。
本発明の別の態様は画像圧縮方法に関する。この画像圧縮方法は画像データ転送装置が、表示対象の動画像を描画するステップと、前記動画像が表す内容に係る情報を取得するステップと、動画像のフレーム平面を分割してなる単位領域ごとに、動画像が表す内容に応じた注目度を推定するステップと、注目度の分布に基づきフレーム平面で圧縮率を異ならせ、動画像のデータを圧縮符号化するステップと、圧縮符号化された動画像のデータを送信するステップと、を含むことを特徴とする。
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、コンピュータプログラム、データ構造、記録媒体などの間で変換したものもまた、本発明の態様として有効である。
本発明によれば、通信によるデータ伝送を伴う画像表示において、画質と遅延時間の低減を両立させることができる。
本実施の形態における画像処理システムの構成例を示す図である。 本実施の形態のヘッドマウントディスプレイの外観例を示す図である。 本実施の形態におけるサーバと画像処理装置の基本的な構成を示す図である。 本実施の形態における、画像の描画から表示までの処理の様子を概念的に示す図である。 本実施の形態のサーバおよび画像処理装置の機能ブロックを示す図である。 本実施の形態においてサーバと画像処理装置が、部分画像単位でパイプライン処理を行う効果を説明するための図である。 本実施の形態におけるサーバと画像処理装置間での部分画像のデータの伝送状況を例示する図である。 本実施の形態において表示制御部が、出力対象や出力タイミングを調整しつつ、表示パネルへ部分画像のデータを出力する処理手順の例を示すフローチャートである。 本実施の形態においてリプロジェクション機能を有する画像処理装置の機能ブロックの構成を示す図である。 本実施の形態において第1補正部が実施するリプロジェクションと接眼レンズのための歪み補正を説明するための図である。 本実施の形態において第1補正部が行う補正処理の手順の例を説明するための図である。 本実施の形態において画像処理装置がリプロジェクションを行う際に、表示制御部の出力対象決定部が出力対象を調整する処理手順を示すフローチャートである。 図12のS94において、ユーザの視点に基づきデータ欠落の度合いを数値化する手法を説明するための図である。 図12のS96において評価する、リプロジェクションに必要なデータを説明するための図である。 本実施の形態の画像処理装置においてリプロジェクションを行う場合に、サーバと画像処理装置が実施する処理の手順を示すフローチャートである。 本実施の形態において、形態の異なる複数の表示装置への表示に対応できるサーバと画像処理装置の機能ブロックの構成を示す図である。 本実施の形態で実現できる画像の形式の変遷を例示する図である。 本実施の形態においてユーザ側(クライアント側)での表示装置の接続方式のバリエーションを例示する図である。 本実施の形態においてサーバが表示形態に応じて決定した形式で画像のデータを送信する処理手順を示すフローチャートである。 本実施の形態において、複数視点の画像を高率で圧縮する機能を有するサーバと、それを処理する画像処理装置の機能ブロックの構成を示す図である。 本実施の形態において第1符号化部と第2符号化部が圧縮符号化する画像ブロックと、そのために圧縮符号化結果を参照する画像ブロックの関係を例示する図である。 本実施の形態においてサーバが、複数視点の画像の類似性を利用して画像ブロック単位で圧縮符号化する効果を説明するための図である。 本実施の形態において、スケーラブル映像符号化を実施する場合の、圧縮符号化部の機能ブロックの構成を示す図である。 本実施の形態において、スケーラブル映像符号化を実施する場合の、第1符号化部と第2符号化部が圧縮符号化する画像ブロックと、そのために圧縮符号化結果を参照する画像ブロックの関係を例示する図である。 本実施の形態において、スケーラブル映像符号化を実施する場合の、第1符号化部と第2符号化部が圧縮符号化する画像ブロックと、そのために圧縮符号化結果を参照する画像ブロックの関係を例示する図である。 本実施の形態においてデータサイズ削減手段を最適化する機能を有するサーバの機能ブロックの構成を示す図である。 本実施の形態において、動画像の内容に応じてスコアを決定する事例を示す図である。 本実施の形態において、動画像の内容に応じてスコアを決定する事例を示す図である。 本実施の形態において、動画像の内容に応じてスコアを決定する事例を示す図である。 本実施の形態において、動画像の内容に応じてスコアを決定する事例を示す図である。 本実施の形態において、動画像の内容に応じてスコアを決定する事例を示す図である。 本実施の形態においてサーバが通信状況に応じてデータサイズを調整する処理手順を示すフローチャートである。 本実施の形態において、動画像が表す内容に基づき、フレーム上の領域によって圧縮率を変化させる機能を有するサーバの機能ブロックの構成を示す図である。 本実施の形態において注目度推定部が画像平面における注目度の分布を推定する処理を説明するための図である。 本実施の形態においてサーバが画像平面の領域ごとに圧縮率を制御する処理手順を示すフローチャートである。 本実施の形態において、ユーザの注視点に基づき、フレーム上の領域によって圧縮率を変化させる機能を有するサーバの機能ブロックの構成を示す図である。 本実施の形態において注目度推定部が画像平面における注目度の分布を推定する処理を説明するための図である。 本実施の形態において圧縮符号化処理部が注視点に基づき圧縮率の分布を決定する手法について説明するための図である。
1.システムの全体構成
図1は、本実施の形態における画像処理システムの構成例を示す。画像表示システム1は、画像処理装置200、ヘッドマウントディスプレイ100、平板型ディスプレイ302、およびサーバ400を含む。画像処理装置200は、ヘッドマウントディスプレイ100および平板型ディスプレイ302と、無線通信またはUSB Type−C、HDMI(登録商標)などのインターフェース300により接続される。画像処理装置200はさらに、インターネットやLAN(Local Area Network)などのネットワーク306を介してサーバ400に接続される。
サーバ400は、画像データ転送装置として、表示対象の画像の少なくとも一部を生成して画像処理装置200に送信する。ここでサーバ400は、クラウドゲームなど各種配信サービスを提供する企業などのサーバでもよいし、任意の端末にデータを送信する家庭内サーバなどでもよい。したがってネットワーク306は、インターネットなどの公衆ネットワークやLAN(Local Area Network)など、その規模は限定されない。例えばネットワーク306は携帯電話キャリアネットワークや、街中にあるWi−Fiスポット、家庭にあるWi−Fiアクセスポイントを経由したものでもよい。あるいは画像処理装置200とサーバ400は、ビデオインターフェースにより直接接続されてもよい。
画像処理装置200は、サーバ400から送信された画像のデータに必要な処理を施し、ヘッドマウントディスプレイ100および平板型ディスプレイ302の少なくともいずれかに出力する。例えばサーバ400は、各自ヘッドマウントディスプレイ100を装着した複数のユーザの頭部の動きやユーザ操作を、各ヘッドマウントディスプレイ100に接続された複数の画像処理装置200から受信する。そして、ユーザ操作に応じて変化させた仮想世界を、各ユーザの頭部の動きに対応する視野で描画したうえ、それぞれの画像処理装置200に送信する。
画像処理装置200は送信された画像のデータを、必要に応じて、ヘッドマウントディスプレイ100や平板型ディスプレイ302に適した形式に変換したうえ、適切なタイミングでヘッドマウントディスプレイ100や平板型ディスプレイ302に出力する。このような処理を、動画像のフレームごとに繰り返せば、複数のユーザが参加するクラウドゲームシステムを実現できる。この際、画像処理装置200は、サーバ400から送信された画像に、別途準備したUI(User Interface)プレーン画像(あるいはOSD(On Screen Display)プレーン画像とも呼ぶ)や、ヘッドマウントディスプレイ100が備えるカメラによる撮影画像を合成してから、ヘッドマウントディスプレイ100や平板型ディスプレイ302に出力してもよい。
画像処理装置200はまた、サーバ400から送信された画像を、ヘッドマウントディスプレイ100の表示直前の位置や姿勢に基づき補正することにより、頭部の動きに対する表示の追随性を高めてもよい。画像処理装置200は、平板型ディスプレイ302にも同様の視野で画像を表示させることにより、ヘッドマウントディスプレイ100を装着しているユーザがどのような画像を見ているかを、その他の人が見られるようにしてもよい。
ただし本実施の形態において表示対象とする動画像の内容や、その表示先は特に限定されない。例えばサーバ400は、図示しないカメラによって撮影された画像を表示対象とし、画像処理装置200にライブ配信してもよい。このときサーバ400は、スポーツ競技やコンサートなどのイベント会場を複数のカメラで撮影した多視点画像を取得し、それを用いてヘッドマウントディスプレイ100の動きに応じた視野での画像を作り出すことにより、自由視点のライブ映像を生成し、各画像処理装置200に配信してもよい。
また本実施の形態を適用できるシステムの構成は図示するものに限定されない。例えば画像処理装置200に接続する表示装置はヘッドマウントディスプレイ100と平板型ディスプレイ302のどちらか一方でもよいし、複数のヘッドマウントディスプレイ100であってもよい。また画像処理装置200はヘッドマウントディスプレイ100や平板型ディスプレイ302に内蔵されていてもよい。例えば平板型のディスプレイと画像処理装置を、それらを一体的に備えたパーソナルコンピュータや携帯端末(ポータブルゲーム機、高機能携帯電話、タブレット端末)としてもよい。
これらの装置にさらにヘッドマウントディスプレイ100および平板型ディスプレイ302の少なくともいずれかを必要に応じて接続できるようにしてもよい。画像処理装置200やこれらの端末に、図示しない入力装置を内蔵もしくは接続してもよい。またサーバ400に接続される画像処理装置200の数も限定されない。さらにサーバ400は、各自の平板型ディスプレイ302を視聴している複数のユーザの操作内容を、各平板型ディスプレイ302に接続された複数の画像処理装置200から受信し、それに対応する画像を生成したうえ、それぞれの画像処理装置200に送信してもよい。
図2は、ヘッドマウントディスプレイ100の外観例を示す。この例においてヘッドマウントディスプレイ100は、出力機構部102および装着機構部104で構成される。装着機構部104は、ユーザが被ることにより頭部を一周し装置の固定を実現する装着バンド106を含む。出力機構部102は、ヘッドマウントディスプレイ100をユーザが装着した状態において左右の目を覆うような形状の筐体108を含み、内部には装着時に目に正対するように表示パネルを備える。
筐体108内部にはさらに、ヘッドマウントディスプレイ100の装着時に表示パネルとユーザの目との間に位置し、画像を拡大して見せる接眼レンズを備える。またヘッドマウントディスプレイ100はさらに、装着時にユーザの耳に対応する位置にスピーカーやイヤホンを備えてよい。またヘッドマウントディスプレイ100はモーションセンサを内蔵し、ヘッドマウントディスプレイ100を装着したユーザの頭部の並進運動や回転運動、ひいては各時刻の位置や姿勢を検出してもよい。
ヘッドマウントディスプレイ100はさらに、筐体108の前面にステレオカメラ110、中央に広視野角の単眼カメラ111、左上、右上、左下、右下の四隅に広視野角の4つのカメラ112を備え、ユーザの顔の向きに対応する方向の実空間を動画撮影する。ある態様においてヘッドマウントディスプレイ100は、ステレオカメラ110が撮影した動画像を即時表示させることにより、ユーザが向いた方向の実空間の様子をそのまま見せるシースルーモードを提供する。
またステレオカメラ110、単眼カメラ111、4つのカメラ112による撮影画像の少なくともいずれかを、表示画像の生成に利用してもよい。例えばSLAM(Simultaneous Localization and Mapping)により周囲の空間に対するヘッドマウントディスプレイ100、ひいてはユーザの頭部の位置や姿勢を所定のレートで取得し、サーバ400において生成する画像の視野を決定したり、画像処理装置200において当該画像を補正したりしてもよい。あるいは画像処理装置200において、サーバ400から送信された画像に撮影画像を合成し表示画像としてもよい。
またヘッドマウントディスプレイ100は、内部に加速度センサ、ジャイロセンサ、地磁気センサなど、ヘッドマウントディスプレイ100の位置、姿勢、動きを導出するためのモーションセンサのいずれかを備えてよい。この場合、画像処理装置200は、当該モーションセンサの計測値に基づき、ユーザ頭部の位置や姿勢の情報を所定のレートで取得する。この情報は、サーバ400において生成する画像の視野を決定したり、画像処理装置200において当該画像を補正したりするのに用いることができる。
図3は、本実施の形態におけるサーバ400と画像処理装置200の基本的な構成を示している。本実施の形態におけるサーバ400および画像処理装置200は、表示画像の1フレームより小さい部分画像を記憶するローカルメモリを要所に備える。そしてサーバ400における画像データの圧縮符号化および送信、画像処理装置200におけるデータの受信、復号伸張、各種画像処理、表示装置への出力を、当該部分画像の単位でパイプライン処理する。これにより、サーバ400での画像の描画から、画像処理装置200に接続された表示装置への表示までの遅延時間を軽減させる。
サーバ400において、描画制御部402はCPU(Central Processing Unit)で実現され、画像描画部404における画像の描画を制御する。上述のとおり本実施の形態において表示させる画像の内容は特に限定されないが、描画制御部402は例えば、クラウドゲームを進捗させ、その結果を表す動画像のフレームを画像描画部404に描画させる。この際、描画制御部402は、画像処理装置200からユーザの頭部の位置や姿勢に係る情報を取得し、それに対応する視野で各フレームを描画するように制御してもよい。
画像描画部404はGPU(Graphics Processing Unit)で実現され、描画制御部402の制御のもと、所定または可変のレートで動画像のフレームを描画し、その結果をフレームバッファ406に格納する。フレームバッファ406はRAM(Random Access Memory)によって実現される。ビデオエンコーダ408は、描画制御部402の制御のもと、フレームバッファ406に格納された画像のデータを、1フレームより小さい部分画像の単位で圧縮符号化する。部分画像は、フレームの画像平面を所定サイズに分割してなる各領域の画像である。すなわち部分画像は、例えば画像平面を横方向、縦方向、縦横双方向、または斜め方向に設定した境界線で分割してなる、各領域の画像である。
ビデオエンコーダ408はこの際、画像描画部404による1フレーム分の描画が終了次第、サーバの垂直同期信号を待たずに、当該フレームの圧縮符号化を開始してよい。フレームの描画や圧縮符号化など各種処理を、垂直同期信号を基準として同期させる従来技術によれば、画像の描画から表示までの各処理に与える時間をフレーム単位で揃えることにより、フレーム順の管理が容易である。しかしながらこの場合、フレームの内容によって描画処理が早く終了しても、圧縮符号化処理を次の垂直同期信号まで待機する必要がある。本実施の形態では後に述べるように、部分画像単位でその生成時刻を管理することにより、無駄な待機時間が生じないようにする。
ビデオエンコーダ408が圧縮符号化に用いる符号化方式は、H.264/AVCやH.265/HEVCなど一般的なものでよい。ビデオエンコーダ408は、圧縮符号化した部分画像単位の画像のデータを部分画像記憶部410に格納する。部分画像記憶部410はSRAM(Static Random Access Memory)などで実現されるローカルメモリであり、1フレームより小さい部分画像のデータサイズに対応する記憶領域を有する。以後に述べる「部分画像記憶部」も同様である。ビデオストリーム制御部414は、圧縮符号化された部分画像のデータが部分画像記憶部410に格納される都度、当該データを読み出し、オーディオデータや制御情報などを必要に応じて含めたうえでパケット化する。
制御部412は、部分画像記憶部410に対するビデオエンコーダ408のデータ書き込み状況や、ビデオストリーム制御部414のデータを読み出し状況などを常に監視し、両者の動作を適切に制御する。例えば制御部412は、部分画像記憶部410にデータ欠乏、すなわちバッファアンダーランや、データ溢れ、すなわちバッファオーバーランが起きないように制御する。
入出力インターフェース416は画像処理装置200と通信を確立し、ビデオストリーム制御部414がパケット化したデータを、ネットワーク306を介して順次送信する。入出力インターフェース416は画像データのほか、オーディオデータなども適宜送信してよい。また上述のとおり、入出力インターフェース416はさらに、ユーザ操作やユーザの頭部の位置や姿勢に係る情報を画像処理装置200から取得し、描画制御部402に供給してもよい。画像処理装置200において入出力インターフェース202は、サーバ400から送信された画像やオーディオのデータを順次取得する。
入出力インターフェース202はさらに、ユーザ操作やユーザの頭部の位置や姿勢に係る情報をヘッドマウントディスプレイ100や図示しない入力装置などから適宜取得し、サーバ400に送信してもよい。入出力インターフェース202は、サーバ400から取得したパケットを復号のうえ、取り出した画像のデータを部分画像記憶部204に格納する。部分画像記憶部204は入出力インターフェース202とビデオデコーダ208の間に設けたローカルメモリであり、圧縮データ記憶部を構成している。制御部206は、部分画像記憶部204に対する入出力インターフェース202のデータ書き込み状況や、ビデオデコーダ208のデータを読み出し状況などを常に監視し、両者の動作を適切に制御する。
ビデオデコーダ208は、復号伸張部として、部分画像のデータが部分画像記憶部204に格納される都度、当該データを読み出し、符号化方式に応じた手順で復号伸張したうえ、部分画像記憶部210に順次格納する。部分画像記憶部210はビデオデコーダ208と画像処理部214の間に設けたローカルメモリであり、復号後データ記憶部を構成している。制御部212は、部分画像記憶部210に対するビデオデコーダ208のデータ書き込み状況や、画像処理部214のデータを読み出し状況などを常に監視し、両者の動作を適切に制御する。
画像処理部214は、復号伸張された部分画像のデータが部分画像記憶部210に格納される都度、当該データを読み出し、表示に必要な処理を施す。例えばヘッドマウントディスプレイ100において、接眼レンズを介して見たときに歪みのない画像を視認させるために、接眼レンズによる歪みと逆の歪みを与える補正処理を実施する。
あるいは画像処理部214は、別途準備したUIプレーン画像を参照し、サーバ400から送信された画像に合成(スーパーインポーズ)してもよい。また画像処理部214は、ヘッドマウントディスプレイ100が備えるカメラによる撮影画像を、サーバ400から送信された画像に合成してもよい。画像処理部214はまた、処理の時点におけるユーザの頭部の位置や姿勢に対応する視野となるように、サーバ400から送信された画像を補正してもよい。画像処理部214はまた、超解像処理など平板型ディスプレイ302へ出力するのに適した画像処理を行ってもよい。
いずれにしろ画像処理部214は、部分画像記憶部210に格納された部分画像の単位で処理を施し、部分画像記憶部216に順次格納していく。部分画像記憶部216は画像処理部214とディスプレイコントローラ220の間に設けたローカルメモリである。制御部218は、部分画像記憶部216に対する画像処理部214のデータ書き込み状況や、ディスプレイコントローラ220のデータを読み出し状況などを常に監視し、両者の動作を適切に制御する。
ディスプレイコントローラ220は、画像処理後の部分画像のデータが部分画像記憶部216に格納される都度、当該データを読み出し、ヘッドマウントディスプレイ100や平板型ディスプレイ302に適切なタイミングで出力する。具体的には、それらのディスプレイの垂直同期信号に合致するタイミングで、各フレームの最上段の部分画像のデータを出力し、その後、下方に向けて部分画像のデータを順次出力していく。
2.部分画像ごとのパイプライン処理
次に、画像の描画から表示までにサーバ400および画像処理装置200において実現される、部分画像のパイプライン処理について説明する。図4は、本実施の形態における、画像の描画から表示までの処理の様子を概念的に示している。上述のとおりサーバ400は、動画像のフレーム90を所定または可変のレートで生成する。図示する例でフレーム90は、左右に二等分した領域に左目用、右目用の画像をそれぞれ表した構成を有するが、サーバ400で生成する画像の構成をこれに限る趣旨ではない。
サーバ400は上述のとおり、フレーム90を部分画像ごとに圧縮符号化する。図では画像平面を水平方向に5分割し、部分画像92a、92b、92c、92d、92eとしている。これにより、部分画像はこの順で次々に圧縮符号化され、矢印に示すように画像処理装置200へ伝送され表示される。すなわち最上段の部分画像92aに対し、圧縮符号化、送信、復号伸張、表示パネル94への出力といった処理が施されている間に、その下の部分画像92b、さらに下の部分画像92c、というように順次部分画像が伝送され表示される。これにより、画像の描画から表示までに必要な各種処理を並列に実施でき、転送時間が介在しても最低限の遅延で表示を進捗させることができる。
図5は、本実施の形態のサーバ400および画像処理装置200の機能ブロックを示している。同図に示す各機能ブロックは、ハードウェア的にはCPU、GPU、エンコーダ、デコーダ、演算器、各種メモリなどで実現でき、ソフトウェア的には、記録媒体からメモリにロードした、情報処理機能、画像描画機能、データ入出力機能、通信機能などの諸機能を発揮するプログラムで実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。後述する機能ブロックも同様である。
サーバ400は、画像生成部420、圧縮符号化部422、パケット化部424、および通信部426を備える。画像生成部420は図3の描画制御部402、画像描画部404、フレームバッファ406で構成され、ゲーム画像など画像処理装置200に送信すべき動画像のフレームを、所定または可変のレートで生成する。あるいは画像生成部420は、図示しないカメラや記憶装置などから動画像のデータを取得してもよい。この場合、画像生成部420は、画像取得部と読み替えることができる。以後の説明でも同様である。
圧縮符号化部422は、図3のビデオエンコーダ408、部分画像記憶部410、制御部412で構成され、画像生成部420が生成した画像のデータを、部分画像の単位で圧縮符号化する。ここで圧縮符号化部422は、1行、2行など所定数の行の領域や、16×16画素、64×64画素など所定サイズの矩形領域を単位として動き補償や符号化を行う。したがって圧縮符号化部422は、圧縮符号化に必要な最小単位の領域のデータが画像生成部420により生成されたら、圧縮符号化を開始してよい。
なお圧縮符号化や送信におけるパイプライン処理の単位である部分画像は、当該最小単位の領域と同じでもよいしそれより大きな領域としてもよい。パケット化部424は、図3のビデオストリーム制御部414、制御部412で構成され、圧縮符号化された部分画像のデータを、利用する通信のプロトコルに応じた形式でパケット化する。この際、当該部分画像が描画された時刻(以下、「生成時刻」と呼ぶ)を、画像生成部420または圧縮符号化部422から取得することにより、部分画像のデータと対応づけておく。
通信部426は、図3の入出力インターフェース416で構成され、圧縮符号化された部分画像のデータとその生成時刻を含めたパケットを、画像処理装置200に送信する。これらの構成によりサーバ400は、圧縮符号化、パケット化、送信を、1フレームより小さい部分画像単位でパイプライン処理することにより並列に行う。画像処理装置200は、画像データ取得部240、復号伸張部242、画像処理部244、および表示制御部246を備える。
なお復号伸張部242と画像処理部244は、部分画像のデータに所定の処理を施し表示用の部分画像のデータを生成するという意味で共通の機能を有し、それらの少なくともいずれかを「画像処理部」と総称することもできる。画像データ取得部240は、図3の入出力インターフェース202、部分画像記憶部204、および制御部206で構成され、圧縮符号化された部分画像のデータを、その生成時刻とともにサーバ400から取得する。
復号伸張部242は、図3のビデオデコーダ208、部分画像記憶部210、制御部206、制御部212で構成され、圧縮符号化された部分画像のデータを復号伸張する。ここで復号伸張部242は、動き補償や符号化など圧縮符号化に必要な最小単位の領域のデータが画像データ取得部240により取得されたら、復号伸張処理を開始してよい。画像処理部244は図3の画像処理部214、部分画像記憶部216、制御部212、制御部218で構成され、部分画像のデータに所定の処理を施し、表示用の部分画像のデータを生成する。例えば上述のとおり画像処理部244は、ヘッドマウントディスプレイ100が備える接眼レンズの歪みを考慮して逆の歪みを与える補正を施す。
あるいは画像処理部244は、UIプレーン画像など、動画像とともに表示させるべき画像を、部分画像単位で合成する。または画像処理部244は、その時点でのユーザ頭部の位置や姿勢を取得し、サーバ400が生成した画像を、正しく表示時の視野になるように補正する。これにより、サーバ400からの転送時間によって、ユーザの頭部の動きと表示画像の間に生じる時間的なずれを最小限にすることができる。
画像処理部244はそのほか、一般的になされる画像処理のいずれかまたは組み合わせを実施してもよい。例えば画像処理部244は、ガンマーカーブ補正、トーンカーブ補正、コントラスト強調などを行ってもよい。すなわち表示装置の特性やユーザ指定に基づき、復号伸張した画像データの画素値・輝度値について必要なオフセット補正をしてもよい。また画像処理部244は、近傍画素を参照し、重畳・加重平均・平滑化などの処理を行うノイズ除去処理を行ってもよい。
また画像処理部244は、画像データの解像度と、表示パネルの解像度を合わせたり、近傍画素を参照し、バイリニア・トライリニアなど、加重平均・オーバーサンプリングなどを行ったりしてもよい。また画像処理部244は、近傍画素を参照し、画像テクスチャの種類を判定し、それに応じた、デノイズ・エッジ強調・平滑化・トーン/ガンマ/コントラスト補正を選択的に処理してもよい。このとき画像処理部244は、画像サイズのアップスケーラ・ダウンスケーラと合わせて処理してもよい。
また画像処理部244は、画像データの画素フォーマットと、表示パネルの画素フォーマットが異なる場合にフォーマット変換を行ってもよい。例えばYUVからRGB、RGBからYUV、YUVにおける444、422、420間の変換、RGBにおける8、10、12ビットカラー間の変換などを行ってもよい。また画像処理部244は、デコードした画像データがHDR(High Dynamic Range)の輝度レンジ対応フォーマットである一方、表示ディスプレイのHDRの輝度レンジ対応範囲が狭い場合(表示可能な輝度ダイナミックレンジがHDRフォーマット規定より狭いなど)、できるだけHDR画像の特徴を残しながら、表示パネル対応可能な範囲のHDRの輝度レンジフォーマットへ変換する疑似HDR処理(色空間変更)を行ってもよい。
また画像処理部244は、デコードした画像データがHDR対応フォーマットだったが、表示ディスプレイがSDR(Standard Dynamic Range)のみに対応している場合、できるだけHDR画像の特徴を残しながら、SDRフォーマットへ色空間変換してもよい。デコードした画像データがSDR対応フォーマットだったが、表示ディスプレイがHDRに対応している場合、画像処理部244はできるだけHDRパネルの特性にあわせて、HDRフォーマットへエンハンス変換してもよい。
また画像処理部244は、表示ディスプレイの階調表現能力が低い場合、誤差拡散付加をしてもよいし、画素フォーマット変換とあわせて処理するディザリング処理を実施してもよい。また画像処理部244は、ネットワーク転送データの欠落やビット化けにより、デコードした画像データに部分的な欠損や異常がある場合に、その領域を補正処理してもよい。また画像処理部244は、単色塗りつぶし、近傍画素複製による補正、前フレーム近傍画素による補正、適応型欠損補正により過去フレームや現フレームの周辺から推測した画素による補正をしてもよい。
また画像処理部244は、画像処理装置200から表示装置へ出力するインターフェースの必要帯域を削減するために、画像処理部244は画像圧縮を行ってもよい。この際、画像処理部244は、近傍画素参照によるライトウェイトなエントロピー符号化、インデックス値参照符号化、ハフマン符号化などを行ってもよい。また表示装置が液晶パネルを採用した場合、高解像度化が可能な反面、反応速度が遅い。表示装置が有機ELパネルを採用した場合は反応速度が速い反面、高解像度化が難しく、また黒色領域とその周辺で色にじみが発生するBlack Smearingと呼ばれる現象が生じ得る。
そこで画像処理部244は、このような表示パネルによる様々な悪影響を解消するように補正を行ってもよい。例えば液晶パネルの場合、画像処理部244はフレーム間に黒い画像を挿入することにより液晶をリセットし、反応速度を向上させる。また有機ELパネルの場合、画像処理部244は輝度値や、ガンマ補正におけるガンマ値にオフセットをかけBlack Smearingによる色にじみを目立ちにくくする。
表示制御部246は、図3のディスプレイコントローラ220と制御部218で構成され、表示用の部分画像のデータを順次、ヘッドマウントディスプレイ100や平板型ディスプレイ302の表示パネルに表示させる。ただし本実施の形態では、部分画像の圧縮符号化データをサーバ400から個別に取得するため、通信状況によっては取得順が入れ替わったり、パケットロスにより部分画像のデータ自体が取得できなかったりすることが考えられる。
そこで表示制御部246は、部分画像が描画されてからの経過時間を、各部分画像の生成時刻から導出したうえ、サーバ400での描画タイミングを再現するように、表示パネルへの部分画像の出力タイミングを調整する。具体的には表示制御部246は、データ取得状況特定部248、出力対象決定部250、および出力部252を備える。データ取得状況特定部248は、部分画像のデータの生成時刻、および/または生成時刻からの経過時間に基づき、部分画像のデータの本来の表示順や表示タイミング、部分画像のデータの欠落量などのデータ取得状況を特定する。
出力対象決定部250はデータ取得状況に応じて、表示パネルへの出力対象を変化させたり、出力順や出力タイミングを適切に調整したりする。例えば出力対象決定部250はデータ取得状況に応じて、次のフレームに含まれる本来の部分画像のデータを出力するか、それより前のフレームに含まれる部分画像のデータを再度出力するかを決定する。出力対象決定部250は、次のフレームの表示開始時刻である垂直同期信号のタイミングまでにそのような出力対象を決定する。
例えば出力対象決定部250は、フレーム中、所定値以上の割合で部分画像が欠落している場合に、出力対象を前のフレームのデータに置き換えるなど、取得された部分画像の量(割合)に応じて出力対象を変化させてもよい。また出力対象決定部250は、過去のフレームの出力実績や、生成時刻からの経過時間に応じて、次のフレーム表示期間の出力対象を変化させてもよい。出力部252は、出力対象決定部250が決定した順序およびタイミングで、出力対象として決定された部分画像のデータを表示パネルに出力する。
図6は、本実施の形態においてサーバ400と画像処理装置200が、部分画像単位でパイプライン処理を行う効果を説明するための図である。図の横方向は時間経過を表し、各処理時間を、処理名とともに矢印で示している。そのうちサーバ400側の処理を細線、画像処理装置200側の処理を太線で示している。処理名に併記する括弧内の記載は、フレーム番号mの1フレーム分の処理を(m)、フレーム番号mのうちn番目の部分画像の処理を(m/n)としている。
またサーバ400側の垂直同期信号をvsync(サーバ)、画像処理装置200および表示装置側の垂直同期信号をvsync(クライアント)と表記している。まず(a)は、1フレーム単位で処理を進捗させる従来の態様を比較として示している。この例でサーバ400は、垂直同期信号により各フレームに対する処理を制御している。このためサーバ400は、フレームバッファに格納された1フレーム目のデータの圧縮符号化を、垂直同期信号に合わせて開始する。
そしてサーバ400は、2フレーム目のデータの圧縮符号化を、次の垂直同期信号に合わせて開始するとともに、圧縮符号化済みの1フレーム目のデータを所定単位でパケット化して送出する。画像処理装置200は、到達したフレーム順に復号伸張処理を施す。ただし復号伸張が完了し表示が可能な状態になっても、次に到来する垂直同期信号のタイミングまでその表示は待機される。結果として図示する例では、サーバ400で1フレームの描画が完了し圧縮符号化処理が開始されてから表示開始までに、2フレーム分の表示周期以上の遅延が発生する。
サーバ400と画像処理装置200間の通信時間や、両者の垂直同期信号のタイミングの差などによっては、それ以上の遅延が生じる可能性もある。(b)に示す本実施の形態によれば、サーバ400は、1フレーム目の1番目の部分画像の圧縮符号化が完了した時点で、当該部分画像のデータの送出を開始する。そのデータがネットワーク306を伝送している間に、2番目の部分画像の圧縮符号化および伝送、3番目の部分画像の圧縮符号化および伝送、・・・というように部分画像単位で伝送処理を進捗させる。
画像処理装置200側では、取得した部分画像のデータを順番に復号伸張していく。その結果、1番目の部分画像のデータは(a)の場合と比較し格段に早く、表示が可能な状態に到達する。なお1番目の部分画像のデータは、次に到来する垂直同期信号のタイミングまで表示を待機する。後続の部分画像については、1番目の部分画像の出力に続けて順次出力していく。1フレームの表示時間自体は(a)と同様のため、次の垂直同期信号までに、n番目の部分画像の表示が完了することになる。
このように、画像データの圧縮符号化から表示までを、1フレームより細かい単位で並列に進捗させることにより、図示する例では、(a)の場合より1フレーム分早いタイミングでの表示を実現できる。なお図示する例では(b)の場合も、サーバ400による圧縮符号化を、垂直同期信号を契機に開始しているが、上述のとおり垂直同期信号を待たずに圧縮符号化を行えば、遅延時間をさらに短縮できる。
また画像処理装置200の表示制御部246は、部分画像のデータが表示可能な状態になったタイミングに応じて、表示装置が許容する範囲内で垂直同期信号および水平同期信号の少なくともいずれかのタイミングをずらしてもよい。例えば表示制御部246は、全ての表示タイミングのベースとなるピクセルクロックの動作周波数を所定の微小時間変更したり、水平帰線期間や垂直帰線期間を所定の微小時間変更したりすることにより、表示パネルへの出力の準備ができてから実際に出力するまでの待機時間を短縮してもよい。表示制御部246はこの変更を毎フレームで繰り返すことにより、一度の大きな変更で表示が破綻しないようにしてもよい。
図6で示した例は、サーバ400から独立に送出された部分画像のデータが滞りなく、およそ同じ伝送時間で画像処理装置200に到達する理想的なケースを示している。一方、処理単位の粒度を細かくすることにより、画像処理装置200におけるデータの取得状況に変化が生じやすくなる。図7は、サーバ400と画像処理装置200間での部分画像のデータの伝送状況を例示している。
図の縦方向は時間経過を表し、サーバ400の軸に示した1番目から7番目の部分画像のデータが、画像処理装置200へ到達するまでの時間を矢印で示している。サーバ400と画像処理装置200の間の通信状況は常に変化し得、圧縮符号化された後の部分画像のデータサイズも毎回変化し得るため、個々の部分画像のデータの伝送時間も様々となる。そのため、サーバ400から同程度の周期で、順番に部分画像のデータを送出しても、画像処理装置200での取得時に、その状態が維持されているとは限らない。
図示する例では、1番目と2番目の部分画像のデータの取得間隔t1と、2番目と3番目の部分画像のデータの取得間隔t2は大きく異なっている。また4番目と5番目の部分画像のデータは取得順が逆転している。さらに、6番目の部分画像のデータのように、パケットロスにより画像処理装置200に到達しないデータも発生し得る。このような状況において画像処理装置200が、取得した部分画像のデータをそのままの順序で表示パネルに出力すれば、当然、本来の画像が表示されなかったり、表示のサイクルが破綻したりすることが起こり得る。
そこでデータ取得状況特定部248が、サーバ400側での各部分画像の生成時刻を参照し、図7に示した各種状況を把握する。これにより出力対象決定部250が、各フレームの表示期間における出力対象や、部分画像の出力タイミングを最適化する。このためサーバ400の通信部426は、部分画像のデータおよびその生成時刻とともに、送信済みの所定数の部分画像の生成時刻の履歴を、画像処理装置200に送信するようにしてもよい。
例えば通信部426は、直近に送信した64個の部分画像の生成時刻を、次の部分画像のデータとともに送信する。画像処理装置200のデータ取得状況特定部248は、当該生成時刻の履歴と、実際に取得した部分画像の生成時刻とを照合することにより、データの欠落や取得順の逆転を把握できる。すなわちデータの欠落が生じた際、データ取得状況特定部248は、その部分画像の生成時刻を、後続の部分画像とともに送信された生成時刻の履歴から取得できるようにする。
図8は、本実施の形態において表示制御部246が、出力対象や出力タイミングを調整しつつ、表示パネルへ部分画像のデータを出力する処理手順の例を示すフローチャートである。このフローチャートは、表示パネルの垂直同期信号のタイミングより前の所定のタイミングで、当該垂直同期信号に合わせて表示を開始すべきフレームに対し実施する処理の手順を示している。すなわちフレームごとに、図示した処理を繰り返す。
まず表示制御部246のデータ取得状況特定部248は、対象フレームに含まれる部分画像の取得状況を特定する(S10)。データ取得状況特定部248はさらに、それまでのフレームにおける部分画像の出力実績を記録しておき、それを参照してもよい。ここで出力実績とは例えば、次のようなデータの少なくともいずれかである。
1.後述する3つの分類のうち過去の所定期間に選択された分類の履歴
2.過去の所定期間に後述する第1分類において欠落した部分画像の履歴、発生率、部分画像の欠落の面積割合
3.最後に表示画像が更新されてからの経過時間
すると出力対象決定部250は、特定されたそれらの状況が、あらかじめ準備しておいた分類のいずれに当てはまるかを判定する(S12)。出力対象決定部250は基本的に、様々な観点から総合的な判定を行い、ユーザ体験が最良となるように出力対象を決定する。そのためデータ取得状況特定部248はS10において、次のようなパラメータの少なくともいずれかを取得する。
1.対象フレームを構成する部分画像のうち取得済みの部分画像の量
2.対象フレームにおける部分画像の欠落範囲
3.同じ画像フレームの表示継続時間
4.後述するブラックアウトの継続時間
5.部分画像の生成時刻からの経過時間
上記パラメータのそれぞれには、1つまたは複数のしきい値を設定しておく。
そして出力対象決定部250は、対象フレームについて取得したパラメータがどの範囲に該当するかに応じてスコアを与えるなどして状況を分類する。例えばS10で取得したパラメータのそれぞれに、あらかじめ定めたテーブルに基づきスコアを与え、全パラメータのスコアの分布に基づき状況を分類する。図示する例では3つの分類を準備している。第1分類に当てはまる場合、出力対象決定部250は、それまでに得られた最新の部分画像のデータを出力対象と決定し、出力部252にそれを出力させる(S14)。
例えば構成する部分画像が所定値(所定割合)以上、取得済みで、なおかつ部分画像の生成時刻からの経過時間が許容範囲の場合、出力対象決定部250はスコア判定に基づき対象フレームを第1分類とする。このとき出力対象決定部250は、各生成時刻に対応する順序で部分画像が出力されるようにタイミングを調整する。理想的には図6で示したように、フレームの上段の部分画像から順次出力していく。
ただし途中に欠落している部分画像がある場合、各欠落箇所について下記パラメータのスコア化をさらに行い、前のフレームの同じ位置の部分画像を再利用するか、その部分についてはブラックアウトさせるか、判定してもよい。
1.同じ画像フレームの表示継続時間
2.後述するブラックアウトの継続時間
3.部分画像の生成時刻からの経過時間
なお、それまでに本来の画像を表示できない状況が所定時間以上、続いている場合、出力対象決定部250は、対象フレームの部分画像が所定値(所定割合)以上、取得済みでなくても第1分類としてもよい。前述のスコアを決めるテーブルをそのように設定しておいてもよい。これにより、一部であっても可能な範囲で画像の動きを表現できる。なお欠落した画像を、画像処理部244が推測のうえ修復してもよい。
第2分類に当てはまる場合、出力対象決定部250は、対象フレームより前のフレームの画像のデータを出力対象と決定し、出力部252にそれを出力させる(S16)。この場合、表示パネルには同じフレームが表示され続けることになる。例えば、対象フレームの部分画像が所定値(所定割合)以上、取得できず、前の所定時間内のフレームにおいては部分画像が所定値(所定割合)以上、取得されている場合、出力対象決定部250は対象フレームを第2分類とする。前述のスコアを決めるテーブルをそのように設定しておいてもよい。
第3分類に当てはまる場合、出力対象決定部250は、対象フレームのデータを出力すべき期間、何も出力しないことを決定する(S18)。この場合、表示パネルには1フレーム分のブラックアウト期間が発生する。例えば、対象フレームの部分画像が所定値(所定割合)以上、取得できず、表示済み画像を引き続き表示するには生成時刻からの経過が長すぎる場合、出力対象決定部250は対象フレームを第3分類とする。前述のスコアを決めるテーブルをそのように設定しておいてもよい。なおブラックアウトは、黒の塗りつぶし画像を表示することを基本とするが、あらかじめ設定した別の色を用いてもよい。
第2分類や第3分類での表示が所定時間継続したら、上述のとおり部分画像の取得状況にかかわらず第1分類に分岐させることにより、一部であっても何らかの画像の更新を行ってもよい。なお第1分類から第3分類に進むにつれて、ユーザ体験は損なわれやすくなる。そのためS10で取得した各パラメータに対して、ユーザ体験を良好にすべきときに高いスコアを与えるようにテーブルを決めておく。
そのうえで、S12では、S10で得たパラメータについて、テーブルに基づきスコアを与え、得られた複数のスコアを合算する。その合計値がどの程度大きいかで、第1から第3の分類の表示方法分類を選択する。ここで、合計値が大きい側が、第1分類、小さい側が第3分類とするしきい値をあらかじめ決めておく。
なお図示した例は一態様に過ぎず、データ取得状況特定部248が取得する情報の種類、出力対象決定部250による分類の判定基準、および各分類における出力対象は、表示対象の動画像の内容、許容できる欠落の度合いや欠落の継続時間、許容できる表示遅延や表示停止時間などに基づき適宜決定しておく。また表示制御部246は、次の垂直同期信号まで待機している間に蓄積される画像、一定範囲の表示済み画像、生成時刻、S10やS12での判定結果やスコアを図示しないメモリなどに保持してもよい。
さらに出力対象決定部250は、S12における判定とは別に、対象フレームに係る状況が、ユーザへ警告すべき条件に該当するか否かを判定する(S20)。例えば出力対象決定部250は、単位時間あたりにブラックアウトさせた時間や、部分画像の欠落の発生量がしきい値を超えたことを条件に、ユーザへの警告が必要と判定する(S20のY)。このとき出力対象決定部250は、通信状況が画像表示に影響を与えている旨のメッセージを表示させる(S22)。
当該メッセージは、画像処理部244が部分画像に重畳させることにより表示されるようにしてもよい。これによりユーザは、表示される画像の不具合の原因を知ることができる。警告条件に該当しない場合はメッセージを表示しない(S20のN)。以上の手順により対象フレームに関する処理を終了するとともに、次のフレームについて処理を開始する。
なおデータ取得状況特定部248は、S10で取得した部分画像の生成時刻からの処理時までの経過時間に基づき、データの送信遅延時間の傾向を導出してもよい。例えばデータ取得状況特定部248は、過去に取得済みの所定数の部分画像の、生成時刻からの経過時間のヒストグラムを生成する。そしてデータ取得状況特定部248は、基準値以上、経過時間が長くなる方向にヒストグラムが偏るなどしたときに、経過時間の増加の傾向を検知する。
このときデータ取得状況特定部248は、画像データ取得部240などを介してサーバ400に、送信する画像データのサイズの抑制を要求してもよい。例えばデータ取得状況特定部248は、1フレーム分の画像のデータ送信をスキップするように要求したり、圧縮率を所定量上げるように要求したりする。画面解像度を所定量下げるように要求してもよい。あるいはデータ取得状況特定部248は、出力対象決定部250に、1フレーム分の画像のデータ出力をスキップするように要求してもよい。
あるいはデータ取得状況特定部248はサーバ400に、部分画像の生成時刻から取得までの経過時間を送信してもよい。サーバ400の通信部426はこれを取得し、圧縮符号化部422が、ヒストグラムを生成して経過時間が長くなる方向にヒストグラムが偏るなどしたときに、経過時間の増加の傾向を検知し、送信する画像データのサイズを抑制してもよい。またはデータ取得状況特定部248はサーバ400に、上記の第1〜第3の分類の発生量を通知してもよい。これらの対策により、遅延時間の増加が進み、後続のフレームの表示が著しく滞ったりデータが欠落したりするのを防止できる。
以上述べた部分画像ごとのパイプライン処理によれば、サーバ400が生成した画像のデータを、クライアントである画像処理装置200が受信し表示させる形態のシステムにおいて、サーバ400は、1フレームより小さい部分画像の単位で画像のデータを圧縮符号化し送信する。画像処理装置200においても部分画像の単位で復号伸張するとともに、必要な処理を施して表示パネルに順次出力する。これにより、サーバ400と画像処理装置200の双方で、1フレームより細かい粒度でのパイプライン処理が可能となる。
結果として、1フレームごとの処理より待機時間を減らすことができ、描画から表示までの遅延時間を軽減させることができる。またサーバ400が、部分画像のデータとともにその生成時刻を伝送することにより、独立したデータが短い周期で次々に送信されても、画像処理装置200は、サーバ400が画像を生成した順序を再現するようにして表示を進捗させることができる。
また生成時刻に基づき、欠落している部分画像を把握できるため、表示内容や表示ポリシーなどに応じて、最新のデータを表示させるか前のフレームのデータを再利用するか、何も出力しないかといった態様を適切に選択することができる。データ伝送に係る様々な状況に対しとり得る対策が増えるため、ユーザ体験を悪化させないように対策することで、支障を抑えつつ低遅延での表示が可能となる。
3.画像処理部におけるリプロジェクション処理
次に、リプロジェクションの機能を有する画像処理装置200について説明する。図9は、リプロジェクション機能を有する画像処理装置200と、対応する機能を有するサーバ400の機能ブロックの構成を示している。リプロジェクションとは、ヘッドマウントディスプレイ100を利用し、ユーザの頭部の動きに応じた視野で画像を表示させる態様において、一旦描画された画像を、表示直前の頭部の位置や姿勢に対応するように補正する処理を指す。
例えば本実施の形態のように、サーバ400から画像データを送信する場合、サーバ側でヘッドマウントディスプレイ100の位置や姿勢を取得し、それに対応する画像を生成しても、当該データの伝送期間に変化した位置や姿勢は画像に反映されない。画像処理装置200側で、頭部の位置や姿勢に応じた補正をするにしても、フレーム単位で補正をする場合、当該補正処理の間に生じた位置や姿勢の変化はやはり画像に反映されない。
その結果、頭部の動きに対し表示画像に看過できない遅延が生じ、仮想現実における没入感が損なわれたり、映像酔いを引き起こしたりしてユーザ体験の質が低下する。上述のように、部分画像単位でのパイプライン処理を実施したうえ、表示の直前に、部分画像ごとに頭部の位置や姿勢を反映させる補正を行うことにより、より応答性の高い表示を実現できる。
なおフレーム単位でリプロジェクションを実施するためのレンダリング装置とヘッドマウントディスプレイについては、例えば国際公開第2019/026765号に開示されている。この技術ではレンダリング装置が、フレーム表示時のヘッドマウントディスプレイの位置や姿勢を予測して画像を描画し、ヘッドマウントディスプレイは当該予測値と、最新の位置や姿勢との差に基づきさらに画像を補正したうえで表示を行う。ここでレンダリング装置をサーバとした場合、ヘッドマウントディスプレイまでの伝送経路、ひいては伝送時間が様々となり、位置や姿勢の予測値と表示時の実際の位置や姿勢との間に補正困難な乖離が生じることも考えられる。
そこで本実施の形態では、部分画像単位でのパイプライン処理により画像生成から表示までの時間を短縮するとともに、乖離の程度などに応じて表示対象を変化させる。図9においてサーバ400は、画像生成部420、圧縮符号化部422、パケット化部424、および通信部426を含む。画像処理装置200は、画像データ取得部240、復号伸張部242、画像処理部244、および表示制御部246を含む。
サーバ400の圧縮符号化部422、パケット化部424、通信部426、および画像データ取得部240、復号伸張部242は、図5で説明したのと同様の機能を有する。ただしそれらの機能を限定する趣旨ではなく、例えば画像データ取得部240は、圧縮符号化されていない部分画像のデータをサーバ400から取得してもよい。この場合、サーバ400における圧縮符号化部422と、画像処理装置200における復号伸張部242の機能を省略できる。一方で、サーバ400での圧縮符号化処理や、画像処理装置200での復号伸張処理などを実施する場合、描画から表示までにその分の時間が必要になるため遅延が顕在化しやすく、リプロジェクションの効果をより発揮しやすい。
またサーバ400は、複数のプレイヤが参加するマルチプレイヤゲームやスポーツ競技のライブ配信などを実現してもよい。この場合、サーバ400は、複数のユーザそれぞれの頭部の動きを継続して取得し、それに対応する視野で画像を生成したうえ、ユーザ個々の画像処理装置200へストリーミング配信する。マルチプレイヤゲームであれば、サーバ400は3次元空間での各プレイヤのフットプリントに基づき、それぞれの視点から見た仮想世界を描画する。またスポーツ中継の場合、サーバ400は、分散配置された複数のカメラで競技の様子を撮影した画像に基づき、各ユーザの視点に対応する画像を生成する。
サーバ400の画像生成部420は、位置姿勢取得部284、位置姿勢予測部286、描画部288を備える。位置姿勢取得部284は画像処理装置200から、ヘッドマウントディスプレイ100を装着するユーザ頭部の位置や姿勢の情報を所定のレートで取得する。位置姿勢予測部286は、生成した画像フレームが表示される時点におけるユーザの位置や姿勢を予測する。すなわち位置姿勢予測部286は、画像フレームを生成してからヘッドマウントディスプレイ100に表示されるまでの遅延時間を求め、位置姿勢取得部284が取得した位置や姿勢が当該遅延時間の経過後にどう変化するかを予測する。
遅延時間は、サーバ400や画像処理装置200の処理性能や、伝送路における遅延時間などに基づいて導出する。そしてヘッドマウントディスプレイ100の並進速度や角速度に遅延時間を乗じることで位置や姿勢の変化量を求め、位置姿勢取得部284が取得した位置や姿勢に加算する。描画部288は、予測された位置や姿勢の情報に基づきビュースクリーンを設定し、画像フレームを描画する。この場合、パケット化部424は、画像フレームの生成時刻とともに、当該画像フレームを描画した際に前提として用いられた、ユーザ頭部の位置や姿勢の予測値も画像生成部420から取得し、部分画像のデータと対応づける。
結果として画像処理装置200の画像データ取得部240は、部分画像のデータとともに、その生成時刻および、ユーザ頭部の位置や姿勢の予測値を取得する。なお部分画像のデータが伝送途中で欠落したり画像処理装置200への到達順が逆転したりする場合に備え、サーバ400の通信部426は、直近に送信した所定数の位置姿勢の予測値を、次の部分画像のデータとともに送信してもよい。なおリプロジェクション処理に着目した場合、画像処理装置200は、部分画像ごとの生成時刻の代わりに、1フレームごとの生成時刻をサーバ400から取得してもよい。後者の場合、以下に述べる遅延時間はフレーム単位となる。
画像処理装置200の画像処理部244は、位置姿勢追跡部260、第1補正部262、合成部264、および第2補正部266を備える。位置姿勢追跡部260は、ヘッドマウントディスプレイが備える各カメラの少なくともいずれかによる撮影画像、あるいはヘッドマウントディスプレイ100が内蔵するモーションセンサの計測値を取得し、ユーザの頭部の位置や姿勢を所定のレートで導出する。
頭部の位置や姿勢の導出には、上述のとおり従来実用化されている各種手法のいずれを用いてもよい。あるいはヘッドマウントディスプレイ100の内部でそれらの情報を導出し、位置姿勢追跡部260は当該情報を所定のレートでヘッドマウントディスプレイ100から取得するのみでもよい。この情報は、画像データ取得部240を介してサーバ400に送信する。この際、送信対象の、頭部の位置や姿勢の情報の元となった撮影画像やモーションセンサの計測値が得られた時刻を対応づけて送信する。
第1補正部262は、位置姿勢追跡部260が直近に取得した、頭部の位置や姿勢と、サーバ400において部分画像が生成された時点でのそれらの予測値との差分に基づき、サーバ400から送信された部分画像にリプロジェクションの処理を施す。なおリプロジェクションの根拠とする差分は、ユーザ頭部の位置およびユーザ頭部の姿勢、の少なくともいずれかでよいが、それらを「位置姿勢」と総称している。
第1補正部262は、所定の時間間隔で取得される位置姿勢情報を補間することにより、補正時点での最新の位置姿勢情報を厳密に求めてもよい。そして第1補正部262は、補正時点での位置姿勢と、その予測値との差分を導出することにより補正を行う。より具体的には第1補正部262は、補正前の画像における画素が、補正によってどの位置に変位するかを示す変位ベクトルを画像平面に表した変位ベクトルマップを作成する。
そして部分画像を構成する画素ごとに、変位ベクトルマップを参照して変位先の画素位置を取得することにより、補正後の部分画像を生成する。このとき、補正前の部分画像から生成できる補正後の画像は、その面積が変化することがあり得る。第1補正部262は、補正後の部分画像のデータを生成するのに必要な、補正前の部分画像のデータが、前段のローカルメモリに格納された時点で、変位ベクトルマップを参照した補正処理を開始する。これにより、補正後の画像についても部分画像単位での処理が可能になる。
サーバ400から送信された画像が、接眼レンズのための歪みを有しない場合、第1補正部262はさらに、当該歪みを与える補正を同時に実施してもよい。この場合、変位ベクトルマップが画素ごとに表す変位ベクトルは、リプロジェクションのための変位ベクトルと、歪み補正のための変位ベクトルを合成したベクトルとなる。このうち歪み補正のための変位ベクトルは、接眼レンズ固有のデータとなりユーザの動き等によらないため、事前に作成しておくことができる。
第1補正部262は、そのようにして準備しておいた、歪み補正のための変位ベクトルに、リプロジェクションに必要な変位ベクトルを合成することにより、変位ベクトルマップを更新したうえで補正を行う。これにより、部分画像の各画素について一度の変位で、リプロジェクションと接眼レンズのための歪み補正を同時に行うことができる。なお変位ベクトルマップについても、部分画像に対応する領域ごとに更新し、直前の頭部の位置や姿勢を反映させることにより、フレーム全体において、頭部の動きからの遅延の少ない画像を表示できる。
合成部264はリプロジェクションなどの補正が施された部分画像に、UIプレーン画像を部分画像単位で合成する。ただし合成部264が部分画像に合成する対象はUIプレーン画像に限らず、ヘッドマウントディスプレイ100のカメラが撮影した画像など任意の画像でよい。いずれにしろヘッドマウントディスプレイ100に表示させる場合、合成する画像についてもあらかじめ、接眼レンズのための歪みを与えておく。
なお合成部264による合成処理は、第1補正部262によるリプロジェクションや歪み補正の前に行ってもよい。この場合、合成する画像には歪みを与えておかず、合成後の画像に対し一括して歪みなどの補正を施せばよい。また合成すべき画像がなければ合成部264の処理は省略できる。第2補正部266は、表示画像になすべき補正のうち、残りの補正処理を実施する。例えば色収差を補正する場合、第1補正部262において、表示パネルの原色によらず接眼レンズに対応する共通の歪みを与えておく。
例えば表示パネルを見る人間の目の特性を考慮し、まず緑色に対する補正を行う。そして第2補正部266では、赤の変位ベクトルと緑の変位ベクトルの差分だけ補正することにより、赤成分の部分画像を生成する。また青の変位ベクトルと緑の変位ベクトルの差分だけ補正することにより、青成分の部分画像を生成する。そのため第2補正部266には、赤および青の画像を生成するための差分を表す変位ベクトルを画像平面に表した変位ベクトルマップを準備しておく。
これにより赤、緑、青の原色ごとに異なる補正がなされた表示用の部分画像を生成できる。なお第1補正部262、合成部264、第2補正部266は、それぞれの処理を部分画像単位で行うことでパイプライン処理を実施してよい。この場合、図3で示した部分画像記憶部と制御部を、各機能ブロックに設けてよい。また第1補正部262、合成部264、第2補正部266で行われる処理の内容や順序は限定されない。例えば第1補正部262が原色ごとの変位ベクトルマップを参照し、他の補正と同時に色収差を補正してもよい。
表示制御部246は、基本的には図5で示したのと同様の機能を有するが、部分画像が描画されてからの経過時間に加え、位置姿勢の予測値と実際の位置姿勢との差分によっても、表示パネルへの出力対象を変化させる。すなわちデータ取得状況特定部248aは、上記生成時刻からの経過時間に加え、位置姿勢の予測値と実際の位置姿勢との差分に基づき、部分画像のデータの本来の表示順や表示タイミング、部分画像のデータの欠落量などのデータ取得状況を特定する。
出力対象決定部250bは、それらの結果に応じて、表示パネルへの出力対象を変化させたり、出力順や出力タイミングを適切に調整したりする。この際、出力対象決定部250bは、図8で示した各種分類に、リプロジェクションを行って表示が破綻しないか、といったユーザ頭部の位置姿勢に起因する基準を加える。そして破綻しないと判定された場合に、画像処理部244がリプロジェクションを実施し、それを出力部252が表示パネルに出力する。すなわちこのケースでは、表示制御部246によって出力対象が決定したあと、画像処理部244におけるリプロジェクションを含む各種処理を実施する。あるいは両者を並列に実行する。
図10は、第1補正部262が実施するリプロジェクションと接眼レンズのための歪み補正を説明するための図である。(a)に模式的に示すように、サーバ400は、ユーザ120の頭部の位置姿勢を予測し、それに対応する位置および向きでビュースクリーン122を設定する。そしてサーバ400は、表示対象の空間のうち視錐台124の内部に存在する物をビュースクリーン122に射影する。
そしてサーバ400は、部分画像ごとに適宜圧縮符号化するなどして画像処理装置200に送信する。画像処理装置200ではその画像を適宜復号伸張するなどして表示パネルに順次出力するが、このときサーバ400での位置姿勢の予測値と実際の位置姿勢の差が大きいと、頭部の動きと表示が連動せずユーザに違和感を与えたり映像酔いを生じさせたりし得る。そこで第1補正部262は、当該差分だけ画像上の像をずらすことにより、直近の頭部の位置姿勢が表示に反映されるようにする。
図示する例では、ユーザ120の頭部(顔面)が、画像描画時よりわずかに右下を向くように動いたことを想定している。このとき第1補正部262は、最新の位置姿勢に対応するように新たなビュースクリーン126を設定する。ビュースクリーン126は、元のビュースクリーン122を右下にずらしたものである。(b)に示すように、ビュースクリーン122を右下にずらしビュースクリーン126とする場合、像としては逆方向、すなわち左上に移動する。
したがって第1補正部262は、ビュースクリーンの変位方向と逆方向に、ビュースクリーンの変位量だけ像を変位させる補正を行う。なおビュースクリーンは2次元での平行移動に限らず、頭部の動きによっては3次元空間での姿勢を変化させてよい。この場合、像の変位量は画像平面での位置によって変化し得るが、コンピュータグラフィクスで用いられる一般的な変換式により、その変位ベクトルを計算できる。
上述のとおり第1補正部262はさらに、接眼レンズのための歪み補正を同時に行ってもよい。すなわち(b)の下段に示すように、接眼レンズを介して見たときに本来の像が歪みなく視認されるように、元の像に歪みを与えておく。この処理に用いる計算式には、レンズ歪みの補正に係る一般的なものを用いることができる。
ただし本実施の形態では上述のとおり、必要な補正量および補正方向を画素ごとに計算しておき、変位ベクトルマップとして準備しておく。第1補正部262は、この歪み補正のための変位ベクトルに、リアルタイムで得られるリプロジェクションのための変位ベクトルを合成することで変位ベクトルマップを生成し、それを参照することによって、2つの補正を一括して実現する。
図11は、第1補正部262が行う補正処理の手順の例を説明するための図である。(a)は補正前の画像、(b)は補正後の画像の平面を示している。補正前の画像平面におけるS00、S01、S02・・・は変位ベクトルマップにおいて変位ベクトルを設定する位置を表す。例えば画像平面の水平方向、垂直方向に離散的に(例えば、8画素あるいは16画素ごとなど等間隔に)変位ベクトルを設定する。
補正後の画像平面におけるD00、D01、D02、・・・はそれぞれ、S00、S01、S02、・・・の変位先の位置を表す。図では一例として、S00からD00への変位ベクトル(Δx,Δy)を白抜き矢印で示している。第1補正部262は、変位ベクトルを設定する画素を頂点とする最小の三角形の単位で、補正前の画像を補正後の画像にマッピングする。例えば補正前の画像のS00、S01、S10を頂点とする三角形を、補正後の画像のD00、D01、D10を頂点とする三角形にマッピングする。
ここで三角形の内部の画素は、D00、D01、D10との距離に応じて線形に、あるいはバイリニア、トライリニアなどにより補間した位置に変位させる。そして第1補正部262は、接続されたローカルメモリに格納された、補正前の部分画像の対応する画素の値を読み出すことにより、補正後の画像の画素値を決定する。この際、補正前の画像における読み出し先の位置から所定範囲内にある複数の画素の値を、バイリニア、トライリニアなどにより補間することで、補正後の画像の画素値を導出する。
これにより第1補正部262は、補正前の画像の三角形の変位先である三角形の単位で、補正後の画像を画素列順に描画していくことができる。なお上述のとおり、第1補正部262はリアルタイムでの頭部の位置や姿勢を反映させた補正を実現するため、部分画像に対応する領域単位で変位ベクトルマップを更新してもよい。第2補正部266も同様に、第1補正部262と異なる変位ベクトルマップを参照し、最小の三角形ごとに画素をマッピングしていけばよい。例えば色収差を補正する場合は、原色ごとに異なる変位ベクトルマップを用いることにより、各原色成分の画像を生成できる。
図12は、画像処理装置200がリプロジェクションを行う際に、表示制御部246の出力対象決定部250bが出力対象を調整する処理手順を示すフローチャートである。このフローチャートは、図8で示したフローチャートにおいてS12の判定処理の後に実施する。より具体的には出力対象決定部250bは、S12の判定処理において第1分類または第2分類に当てはまるとしたフレームであっても、必要に応じて第3分類に変更するために追加で判定を行う。したがって図8のS12において、部分画像の取得状況から、対象フレームが第3分類に当てはまると判定した場合は、出力対象決定部250bはそのまま処理を終了する(S90のN)。
一方、第1分類または第2分類に当てはまると判定した場合(S90のY)、出力対象決定部250bはまず、サーバ400が画像フレームを生成する際に予測した、ユーザ頭部の位置姿勢と、最新の位置姿勢との差分が許容範囲にあるか否かを判定する(S92)。上述のとおり、ヘッドマウントディスプレイ100の近傍にあるレンダリング装置から画像データを送信する場合と比較し、クラウドサーバなどからデータを送信する場合は転送に時間を要することが多い。そのため位置姿勢の予測値と実際の値に生じるずれが広がる可能性が高くなる。
そこで位置姿勢の予測値と実際との差分が、リプロジェクションではカバーできないほど大きいときは、当該フレームのデータを表示パネルに出力しないようにする。すなわち差分が許容範囲を超えている場合、出力対象決定部250bは、第1分類または第2分類とされた対象フレームの分類を第3分類に変更する(S92のN、S98)。この場合、表示はブラックアウトとなる。あるいは元が第1分類の場合に第1分類のままとし、図8のS14において、欠落部分の表示に過去のフレームを用いないようにしてもよい。
位置姿勢の差分が許容範囲か否かの判定基準は、フレームの全領域を最新の部分画像でまかなえるか(第1分類)、一部でも過去のフレームの部分画像を用いるか(第1分類または第2分類)、によって異ならせてよい。具体的には、位置姿勢の差分が小さいほど、過去のフレームの部分画像を用いることを許容してよい。許容範囲か否かは、位置姿勢の差分に設定したしきい値との大小関係により判定してもよいし、許容範囲とするスコア値として、位置姿勢の差分が大きいほど低くなるような関数を与え、図8の判定に用いたスコア値などと合算して総合的に判定してもよい。
位置姿勢の差分が許容範囲であると判定したら(S92のY)、出力対象決定部250bは次に、対象フレームにおけるデータ欠落の度合いを、ユーザの視点の観点から評価した結果が許容範囲にあるか否かを判定する(S94)。具体的には、ユーザの注視点に近いほど大きい重みづけでデータ欠落の度合いを数値化し、当該数値がしきい値を超えた場合に、データ欠落の度合いが許容範囲にないと判定する。欠落の度合いが許容範囲にない場合(S94のN)、出力対象決定部250bは、第1分類とされた対象フレームを第2分類または第3分類に変更する。
あるいは第2分類とされた対象フレームを第3分類に変更する(S98)。これにより、ユーザが視認しやすい部分でのデータ欠落が多いほど、当該フレームを出力させずに過去のフレームを再利用したりブラックアウトとしたりするように調整する。なおS94の判定処理は、図8のS12の判定処理と同時に行ってもよい。データ欠落の度合いが許容範囲であると判定したら(S94のY)、出力対象決定部250bは次に、リプロジェクションに必要なデータが十分にあるかを判定する(S96)。
すなわちリプロジェクションにより視野をずらした場合に、当該視野に含まれる部分画像のデータが十分に得られているか否かを判定する。十分なデータが得られていない場合(S96のN)、出力対象決定部250bは、第1分類とされた対象フレームを第2分類または第3分類に変更する。あるいは第2分類とされた対象フレームを第3分類に変更する(S98)。十分なデータが得られている場合は、出力対象決定部250bは元の分類のまま処理を終了する(S96のY)。
なおS92、S94、S96はそれぞれ独立に判定するのに限らず、各判定基準に基づきスコアを求め、それらを合算することにより、分類や表示内容の変更が必要か否かを総合的かつ同時に判定してもよい。このように追加で判定をした結果として、図8のS14、S16、S18の処理のいずれかを実施する。ただしS14、S16の処理に際して画像処理部244は、上述のとおりリプロジェクションを含む補正処理を実施する。すなわち第1分類の場合、画像処理部244は最新の画像フレーム、または欠落部分に過去のフレームを用いた画像フレームに対しリプロジェクションを実施する。
第2分類の場合は、出力対象とされた過去のフレームに対しリプロジェクションを実施する。これらの処理において画像処理部244は、処理対象の部分画像のリプロジェクションに用いる範囲の画像データが前段の部分画像記憶部に全て到着してから補正処理を開始する。過去フレームを用いる場合、画像処理部244は、表示制御部246の図示しないメモリから該当データを読み出す。リプロジェクションに用いる画像の範囲は、位置姿勢の予測値と実際の位置姿勢との差分によって決定する。
図13は、図12のS94において、ユーザの視点に基づきデータ欠落の度合いを数値化する手法を説明するための図である。この例ではユーザの注視点292が、表示画面290の中央付近に存在するとしている。ヘッドマウントディスプレイ100を装着しているユーザは通常、見たい方向に顔を向けるため、表示画面290の中央を注視点292と見なすこともできる。
一般的な人の視覚特性として、瞳孔から注視点へ向かう視線を中心軸として5°以内に対応する領域294は弁別視野と呼ばれ、視力などの視機能が優れている。また水平方向に約30°、垂直方向に約20°以内に対応する領域296は有効視野と呼ばれ、眼球運動だけで瞬時に情報を受容できる。さらに水平方向に60〜90°、垂直方向に45〜70°以内に対応する領域298は安定注視野、水平方向に100〜200°、垂直方向に85〜130°以内に対応する領域299は補助視野、というように、注視点292から離れるほど情報の識別能力が低くなる。
そこで図の上と左に示すように、表示画面290の平面において注視点292に近いほど大きくなる重みづけ関数320a、320bを設定する。なおこの図では、表示画面290の平面における水平方向、垂直方向の1次元での位置に対する重みづけ関数320a、320bを示しているが、実際には当該平面上の2次元の位置座標に対する関数、あるいはテーブルとする。出力対象決定部250bは例えば部分画像の欠落面積に、当該欠落が生じている位置座標に基づく重みを乗算し、それを対象フレームの全領域で合計することにより、欠落の度合いを数値として導出する。
これにより、同じ欠落面積でもより視認されやすい領域が欠落している場合は欠落の度合いを高く見積もることができ、見た目の印象を加味して許容範囲か否かを判定できる。なお図示する重みづけ関数320a、320bの形状はあくまで例示であり、上述した各範囲の視覚特性などに基づき形状を最適化したり、不連続な関数としたりしてよい。またヘッドマウントディスプレイ100に注視点検出器を設ける場合、注視点292は表示画面290の中央に限らずより厳密に求められる。この場合、出力対象決定部250bは注視点292の移動に応じて、重みづけ関数320a、320bが最大となる位置を移動させればよい。
図14は、図12のS96において評価する、リプロジェクションに必要なデータを説明するための図である。まず(a)は、サーバ400で予測した位置姿勢に対応するようにビュースクリーン340aを設定した様子を示している。サーバ400は、当該ビュースクリーン340aによって定まる視錐台342aに含まれる像344をビュースクリーン340aに描画する。ここで矢印のように、表示時の位置姿勢が、予測された位置姿勢よりやや左側を向いていたとする。
この場合、画像処理装置200の画像処理部244は、(b)に示すように、ビュースクリーン340bをやや左に向け、それに対応する像となるように画像を補正する。ところが新たに設定した視錐台342bに含まれる像のうち、サーバ400から送信されていない領域346が大きいほど、リプロジェクションが困難になる。したがってリプロジェクション後の表示領域のうち、データを取得していない領域346が所定割合以上、ある場合などに、データが十分でないと判定する。
一方、サーバ400から送信された画像には、新たに設定した視錐台342bには含まれない領域348も発生する。つまり領域348のデータは、リプロジェクション後には不必要な領域となるため、欠落していても表示に支障がない。そこで出力対象決定部250bは、図8のS12において欠落面積などを評価する際、当該領域348を評価対象から除外してもよい。なおリプロジェクションに必要な画像データを十分に取得していても、サーバ400が予測した位置姿勢と、実際の位置姿勢との差分があまりに大きいと、リプロジェクション後の画像が不自然になることが考えられる。
すなわちリプロジェクションは、サーバ400によって描画された画像に対する2次元の補正のため、表示対象の3次元オブジェクトに対する視線の変化を厳密に表現することはできない。そのため出力対象決定部250bは図12に示すように、S96の判定とは別にS92の判定を実施することで、位置姿勢の差分が大きい場合には表示パネルへの出力をキャンセルする。いずれにしろ図14に示す、リプロジェクションに必要な領域のうちデータを取得していない領域346は、ユーザ頭部の動きによらずなるべく少なくすることが望ましい。
そこでサーバ400は、領域346の画像を投機的に生成し画像処理装置200に送信しておくことで、リプロジェクションが正常に行われる確率を上げてもよい。図15は、画像処理装置200においてリプロジェクションを行う場合に、サーバ400と画像処理装置200が実施する処理の手順を示すフローチャートである。このフローチャートは基本的に、動画像のフレーム単位で行われる。まず画像処理装置200の画像データ取得部240は、ユーザ頭部の最新の位置姿勢を位置姿勢追跡部260から取得し、サーバ400に送信する(S100)。
また画像データ取得部240は、過去のフレームに対し得られた、サーバ400における生成時刻から画像処理装置200で処理されるまでの遅延時間の履歴と、ユーザ頭部の位置姿勢の予測値と実際との差分の履歴を表示制御部246から取得し、サーバ400に送信する(S102)。なおS100、S102の送信処理は、フレームと同期しない任意のタイミングで行ってもよい。またS102においては、過去の所定数のフレームについての履歴を送信することにより、送信の失敗に備えることができる。
サーバ400の位置姿勢取得部284はそれらの情報を受信し、位置姿勢予測部286がユーザ頭部の位置姿勢を予測する(S104)。すなわち画像処理装置200で処理されるまでの遅延時間後の位置姿勢を、画像処理装置200から送信された位置姿勢を用いて予測する。次に描画部288は、予測された位置姿勢に対応する画像を描画する(S106)。この際、描画部288は、画像処理装置200から送信された、上記遅延時間の履歴および位置姿勢の差分の履歴に基づき、直近に予測される遅延時間に位置姿勢がどの程度ずれる可能性があるかを特定する。つまり図14の(a)に示す矢印のように、位置姿勢の予測値に対し最も確からしいずれ量およびずれの方向を表すベクトルを予測する。
そして描画部288は、当該ベクトル分だけビュースクリーンを変位させた方向に描画対象を拡張する。すなわち図14の(b)における領域346のような、位置姿勢の予測値に対応するフレームの外側の領域を、予測されたずれを表すベクトルに基づき決定し、その画像を追加で描画する。そしてパケット化部424は必要に応じて、描画された画像を部分画像単位でパケット化し、通信部426から画像処理装置200に順次送信する。この際、通信部426は、部分画像の生成時刻、描画に用いた位置姿勢の予測値を部分画像に対応づけて送信する(S108)。
通信部426はさらに、送信済みの所定数の部分画像の、生成時刻の履歴と位置姿勢の予測値の履歴も送信することにより、画像処理装置200への送信失敗に備える。画像処理装置200の画像データ取得部240がそれらのデータを受信すると、表示制御部246は、部分画像が生成されてからの遅延時間および、位置姿勢の予測値と実際との差分を取得する(S110)。そして表示制御部246は、それらのデータに基づきフレームを分類するなどして出力対象を制御する(S112)。
第3分類によりブラックアウトさせる場合以外は、画像処理部244は、表示制御部246が決定した現フレーム、あるいは前のフレームに対し、その時点での位置姿勢に基づくリプロジェクションを部分画像の単位で施し、出力部252が表示パネルに出力する(S114)。このとき画像処理部244は、サーバ400が予測のずれを踏まえ追加で描画した画像を必要に応じて利用する。
上述のとおり画像処理部244は、リプロジェクションとともにレンズ歪みを除去する補正や色収差補正を適宜実施してよい。なおリプロジェクションに着目した場合、各処理を部分画像単位で行わずフレーム単位で実行しても有効に機能する。その際も、位置姿勢の予測値からのずれを踏まえサーバ400が追加で生成した画像データについては、サーバ400から画像処理装置200へ部分画像単位で送信してよい。
以上述べた、画像処理部におけるリプロジェクション処理によれば、サーバは、表示時のユーザ頭部の位置姿勢を予測し、それに対応する視野で画像を生成する。そして画像処理装置は、サーバから送信された画像を、表示の直前で、その時点での頭部の位置や姿勢に対応するように補正する。これにより、サーバからストリーミング配信された画像をヘッドマウントディスプレイに表示させる態様においてネックとなりやすい、頭部の動きに対する表示の追随性を良好にすることができる。
またサーバでの描画からヘッドマウントディスプレイでの表示までの一連の処理を部分画像単位のパイプライン処理とすることにより、描画から表示までの遅延時間を短縮できるため、リプロジェクションのための補正は僅かでよくなる。結果として、大幅な補正が必要なケースと比較し、簡易な計算で精度のよいリプロジェクションを行える。
さらにリプロジェクションにおいては、補正量や補正方向の分布を画像平面に表した変位ベクトルマップを用いることにより、画素ごとに独立した補正が可能となる。これにより部分画像単位であっても高精度な補正を実現できる。さらに接眼レンズのための歪み補正の成分も変位ベクトルに含めることにより一括した補正が可能となり、リプロジェクションのために必要な時間を最小限に抑えることができる。
さらに画像処理装置は、リプロジェクションの前段階として、サーバが予測した位置姿勢と実際の位置姿勢との差分、ユーザの視点の観点から評価したデータ欠落の度合い、リプロジェクションに用いる画像データの取得率、などに基づき出力対象を制御する。例えば最新のデータによるリプロジェクションの結果が良好でないと予測される場合は表示させないようにしたり、過去のフレームのデータをリプロジェクションの対象としたりする。またサーバにおいて、予測した位置姿勢のずれをさらに予測し、対応する領域の画像を投機的に生成しておく。これらの処理により、リプロジェクションの結果をできる限り良好にでき、高品質の画像を応答性よく表示できる。
4.異なる表示形態のためのデータ形成処理
図1で示したように、本実施の形態の画像表示システム1は、ヘッドマウントディスプレイ100と平板型ディスプレイ302に、同じ内容の画像を同時に表示させる機能を有する。ヘッドマウントディスプレイ100を用いた仮想現実などのゲームの場合、ヘッドマウントディスプレイ100を装着しているユーザ以外の者には表示内容がわからない。そのため複数のユーザが共にゲーム進行を視聴し、一体となって臨場感を共有することができない。
そこで上述のとおり、ヘッドマウントディスプレイ100に表示されている内容を平板型ディスプレイ302にも同時に表示させ、複数のユーザで共有できるようにすることが考えられる。また、複数のユーザがそれぞれヘッドマウントディスプレイ100を用いて共通のコンテンツを視聴する場合、各ユーザの頭部の位置姿勢に基づき、異なる視点からの画像を生成、表示させる必要がある。
ヘッドマウントディスプレイ100と平板型ディスプレイ302では、表示させる画像の形式が大きく異なるが、サーバ400において形式が異なる複数の画像のデータを生成し送信するのは、伝送帯域や処理負荷の面で非効率な場合がある。そこでサーバ400と画像処理装置200の連携により、データの形式変換の分担やタイミングを適切に選択することで、効率的に複数形態の画像表示を行えるようにする。
図16は、形態の異なる複数の表示装置への表示に対応できるサーバ400と画像処理装置200の機能ブロックの構成を示している。サーバ400は、画像生成部420、圧縮符号化部422、パケット化部424、および通信部426を含む。画像処理装置200は、画像データ取得部240、復号伸張部242、画像処理部244、および表示制御部246を含む。サーバ400の圧縮符号化部422、パケット化部424、通信部426、および画像処理装置200の画像データ取得部240、復号伸張部242は、図5で説明したのと同様の機能を有する。
ただしそれらの機能を限定する趣旨ではなく、例えばサーバ400は、圧縮符号化されていない部分画像のデータを送信してもよい。この場合、サーバ400の圧縮符号化部422と画像処理装置200の復号伸張部242の機能を省略できる。また画像処理装置200の画像処理部244は、図9で示した各種機能の少なくともいずれかをさらに有していてもよい。
サーバ400の画像生成部420は、描画部430、形成内容切り替え部432およびデータ形成部434を備える。なお描画部430およびデータ形成部434は、図3の画像描画部404(GPU)と、描画制御部402(CPU)およびソフトウェアの組み合わせによって実現されてもよい。形成内容切り替え部432は図3の描画制御部402(CPU)およびソフトウェアの組み合わせによって実現されてもよい。描画部430は、動画像のフレームを所定または可変のレートで生成する。ここで描画する画像は、画像処理装置200に接続される表示装置の形態に依存しない一般的な画像であってもよい。あるいは描画部430は、撮影された動画像のフレームを、図示しないカメラから順次取得してもよい。
形成内容切り替え部432は、画像処理装置200に接続される表示装置の表示形態に対応する形式とするのに必要な形成処理のうち、サーバ400で実施すべき処理の内容を所定規則で切り替える。最も単純には、形成内容切り替え部432は、画像処理装置200にヘッドマウントディスプレイ100が接続されているか否かによって、左目用、右目用の画像を準備したうえ接眼レンズに対応する歪みを与えるか否かを決定する。
ヘッドマウントディスプレイ100が接続されている画像処理装置200には、サーバ400側でそれらの加工を施したうえで画像を送信すれば、画像処理装置200での補正処理の少なくとも一部を省略できる。処理リソースが潤沢でない画像処理装置200を用いる場合は特に、サーバ400から送信されたデータをほぼそのまま表示できることは、低遅延での表示に有利に働く。
一方で、画像処理装置200にさらに平板型ディスプレイ302が接続されている場合、接眼レンズのための歪みが与えられた左目用、右目用の画像をサーバ400から送信すると、一方の画像を切り出したり歪みを取り除いたりする処理が必要となり、却って処理の負荷が増えることもある。サーバ400から複数形式の画像を送信すると、必要な伝送帯域が増大する。
そこで形成内容切り替え部432は、状況に応じてサーバ400側でなすべき処理を適切に選択することにより、伝送帯域を増大させることなく最も効率のよい形式の画像を画像処理装置200に送信できるようにする。また、用途に応じて画質や表示遅延が最良となる形式の画像を送信できるようにする。具体的には形成内容切り替え部432は、画像処理装置200に接続される表示装置の形態、画像処理装置200においてさらなる形成処理を行う補正部の処理性能、動画像の特徴、画像処理装置200との通信状況、の少なくともいずれかに基づき処理内容を決定する。
ここで表示装置の形態とは例えば、解像度、対応可能なフレームレート、対応色空間、レンズを介して見る場合の光学パラメータ、表示装置の個数、などである。通信状況とは例えば、その時点で実現されている通信帯域幅や通信遅延などである。それらの情報は、画像処理装置200の画像データ取得部240から取得してもよい。
形成内容切り替え部432はそれらの情報に基づき、ヘッドマウントディスプレイ100の表示形態に合わせた左目用、右目用の画像を生成するか否か、接眼レンズのための歪み補正を実施するか否か、などを決定する。ただし個々のユーザの画像処理装置200で実現したい表示形態によって、必要な処理はこれに限らず、解像度の削減、画像の変形など様々に考えられる。したがって形成内容切り替え部432が決定する処理内容の候補も、それに応じて適宜設定しておく。
データ形成部434は、形成内容切り替え部432の決定に従い、動画像の各フレームを、画像処理装置200で実現される表示形態に対応する形式とするのに必要な形成処理の一部を実施する。通信部426は、そのようにして適切に形成された画像のデータを、画像処理装置200に送信する。複数の画像処理装置200を送信先とする場合、データ形成部434は、それぞれの画像処理装置200に適した形成処理を実施する。
1つの画像処理装置200に対しては、接続された表示装置が複数の表示形態を有していても、適切に選択された1つの形式の画像データを送信することにより、必要な通信帯域の増大を防止する。通信部426は、画像のデータとともに、サーバ400側でどのような形成処理を実施したかを示す情報を付加して送信する。異なる表示形態を実現する複数の画像処理装置200には、それぞれに適合した形式の画像のデータと、形成処理の内容を示す情報とを対応づけて送信する。
画像処理装置200の画像処理部244は、補正部として、サーバ400から送信された画像を、実現する表示形態に対応する形式とする第1形成部270a(第1の補正部)および第2形成部270b(第2の補正部)を含む。図示する例では、ヘッドマウントディスプレイ100と平板型ディスプレイ302が接続された画像処理装置200を想定しているため、それらに対応するように第1、第2の2つの形成部を設けているが、当然、実現すべき表示形態の数だけ形成部を設けてよい。
すなわち画像処理部244は、サーバ400から送信された1つのフレームから、形式が異なる複数のフレームを生成する機能を有し、その数は実現すべき表示形態の数に依存する。第1形成部270aおよび第2形成部270bは、サーバ400から画像データとともに送信された、サーバ400側でなされた形成処理の内容に基づき、各表示形態に対応する形式とするために必要な処理を決定する。
なおサーバ400側でなされた形成処理の内容によっては、第1形成部270aまたは第2形成部270bはその機能を省略できる。例えば、ヘッドマウントディスプレイ100にそのまま表示できる画像のデータがサーバ400から送信された場合、ヘッドマウントディスプレイ100に対応する第1形成部270aはその処理を省略できる。
また変形例として、第1形成部270aまたは第2形成部270bのどちらか一方は、他方が形成した画像に対し必要な形成処理を実施してもよい。例えば第1形成部270aが形成してなるヘッドマウントディスプレイ100用の画像に対し、第2形成部270bが形成処理を施すことで、平板型ディスプレイ302用の画像を生成してもよい。
また図9の画像処理部244において示した各種画像処理と、表示形態に合わせた形成処理を適宜組み合わせてもよい。例えば第1形成部270a、第2形成部270bの直前に合成部264を組み入れる。そしてサーバ400から送信されたフレームに、ヘッドマウントディスプレイ100が備えるカメラによる撮影画像やUIプレーン画像を合成したうえで、第1形成部270aはヘッドマウントディスプレイ100の表示形式の画像とし、第2形成部270bは平板型ディスプレイ302の表示形式の画像とする。
合成部264は、第1形成部270a、第2形成部270bの直後に組み入れてもよい。この場合、合成対象の画像は、第1形成部270aおよび第2形成部270bによって形成された画像にそれぞれ対応する形式としておく必要がある。また第1形成部270aに、図9で示した第1補正部262の機能を含めることにより、リプロジェクションを行ってもよい。
いずれにしろ第1形成部270a、第2形成部270bは、上述のように変位ベクトルマップを生成し、それに基づき部分画像ごとに補正を行う。第1形成部270aがリプロジェクションや歪み補正を行う場合、それらの変位ベクトルを合成してなる変位ベクトルマップを生成することにより、第1形成部270aは複数の補正を一括して行ってよい。
表示制御部246は、第1制御部272a、第2制御部272bを含み、それぞれ第1形成部270a、第2形成部270bが形成してなる画像をヘッドマウントディスプレイ100、平板型ディスプレイ302の表示パネルに出力する。上述したように、第1形成部270a、第2形成部270bの処理を含め、サーバ400からの送信および画像処理装置200内部での処理は部分画像単位で順次実施する。そのため第1制御部272a、第2制御部272bはそれぞれ、形成処理後のデータを格納する部分画像記憶部を備える。
図17は、本実施の形態で実現できる画像の形式の変遷を例示している。図16で示したように、画像処理装置200にはヘッドマウントディスプレイ100と平板型ディスプレイ302が接続されているとする。図では(a)、(b)、(c)、(d)の4つのパターンを示しているが、ヘッドマウントディスプレイ100および平板型ディスプレイ302に表示すべき画像の最終形式はパターンによらない。
すなわちヘッドマウントディスプレイ100に表示すべき画像132は、左目用画像と右目用画像からなり、それぞれが接眼レンズのための歪みを与えられた形式(第1の形式)を有する。平板型ディスプレイ302に表示すべき画像134は、両眼で共通の1つの像からなり、レンズ歪みなどのない一般的な画像の形式(第2の形式)を有する。
これに対し(a)は、サーバ400側で、左目用画像と右目用画像の対130aを生成しておくパターンである。この場合、画像処理装置200の第1形成部270aは、送信された画像に対し、ヘッドマウントディスプレイ100の接眼レンズのための歪みを与える。上述のとおり第1補正部262と組み合わせ、さらにリプロジェクション等の補正を実施してもよい。第2形成部270bは、左目用画像と右目用画像のどちらかの画像を切り出し、適切な画像サイズとする。
(b)は、サーバ400から、平板型ディスプレイに適した画像130bを送信するパターンである。この場合、サーバ400のデータ形成部434は、描画部430が描画した画像に対し何らの形成処理を行わなくてよい。そして画像処理装置200の第1形成部270aは、送信された画像から左目用、右目用の画像を生成したうえ、接眼レンズのための歪みを与える。上述のとおり第1補正部262と組み合わせ、さらにリプロジェクション等の補正を実施してもよい。この場合、第2形成部270bは形成処理を省略できる。
(c)は、サーバ400側で、ヘッドマウントディスプレイ100用の左目用、右目用の画像を生成したうえ、接眼レンズのための歪みを与えた画像130cを生成するパターンである。この場合、画像処理装置200の第1形成部270aは形成処理を省略できる。ただし第1補正部262によって、リプロジェクション等の補正を実施してもよい。第2形成部270bは、左目用画像と右目用画像のどちらかの画像を切り出し、歪みを除去する補正を施したうえ適切な画像サイズとする。
(d)はサーバ400からパノラマ画像130dを送信するパターンである。ここでパノラマ画像130dは一般に、正距円筒図法によって表される全天球の画像(360°画像)である。ただし画像の形式は限定されず、多円錐図法、等距離射法、その他、魚眼レンズの画像表現に用いられる様々な形式のいずれを用いてもよい。また魚眼レンズによる画像を用いる場合、サーバ400は、2眼分の画像を用いて360°のパノラマ画像を生成してもよい。
ただしパノラマ画像は、カメラによる撮影画像に限らず、仮想的な複数の始点から見た画像をサーバ400が描画してもよい。この場合、サーバ400のデータ形成部434は、描画部430が描画したパノラマ画像に対し何らの形成処理を行わなくてもよい。そして画像処理装置200の第1形成部270aは送信された画像のうち、ユーザ頭部の最新の位置姿勢に対応する、左目および右目の視野の領域を切り出し、左目用、右目用の画像を生成する。
さらに第1形成部270aは、送信された画像にカメラのレンズによる歪みや、正距円筒図法、多円錐図法、等距離射影法などによる歪みがある場合はそれを除去したうえで、ヘッドマウントディスプレイ100の接眼レンズのための歪みを与える。多円錐図法の画像においては円錐間の隙間を、接眼レンズの歪みを考慮してつなぎあわせる。また画像処理部244について上述した様々な補正の少なくともいずれかと組み合わせ、変位ベクトルマップを用いて一括して補正を行ってよい。
第2形成部270bは、送信された画像から両眼による視野の領域を切り出し、カメラのレンズによる歪みがある場合はそれを除去する。なおこの場合、ヘッドマウントディスプレイ100と平板型ディスプレイ302へ表示させる画像は、図示するように異なる範囲のものでもよいし、同一の範囲であってもよい。例えばヘッドマウントディスプレイ100に表示させる画像は、ユーザ頭部の位置姿勢に対応する範囲のものとする一方、平板型ディスプレイ302へ表示させる画像は、ゲームコントローラを介したユーザ操作などによって別途指定された範囲のものでもよい。
ヘッドマウントディスプレイ100へ出力する画像132については、表示の直前にリプロジェクションを行うとすると、(a)のパターンは、画像処理装置200において歪み補正とリプロジェクションを同時に実施できる。一方、(c)はサーバ400での歪み補正と、画像処理装置200でのリプロジェクションが個別になされるため、サーバ400と画像処理装置200が同じ処理能力をもち、同じ変位ベクトルや画素補間処理を行う場合、ヘッドマウントディスプレイ100への出力までに要する時間は(a)の方が短くできる可能性が高い。
(d)のパターンは、表示の直前に最新のユーザの視野に対応する領域を切り出すため、あらかじめ生成されたパノラマ映像のビデオコンテンツであっても、リアルタイムで生成されたゲーム画像であっても、前述のリプロジェクションに相当する処理は必要ない。また、送信される画像の範囲に制限がないため、リプロジェクションによる表示画像の生成に必要なデータが不足するといった事態が生じない。
(a)のパターンは、平板型ディスプレイ302へ出力する画像134も、サーバ400から送信された画像の一部を切り出すのみで生成できるため、(b)のパターンでの平板型ディスプレイ302への出力とほぼ同等の速度での出力が可能となる。なお(b)や(d)のパターンにおいてサーバ400から送信される画像には、視差や奥行きの情報が含まれないため、ヘッドマウントディスプレイ100へ出力する画像132は、視差のない画像となる。
(c)のパターンにおいて平板型ディスプレイ302へ出力する画像134は、サーバ400において変形させた画像を、画像処理装置200側で元に戻す処理が含まれるため、(a)、(b)のパターンより出力速度が遅くなる。また、一旦歪ませた画像を元に戻す処理により、(a)、(b)のパターンと比較し画質が低下する可能性が高くなる。
(d)のパターンは表示側の視点が様々であっても、サーバ400は1種類の画像データを送信すればすむため処理を効率化できる。一方、表示に不必要な領域のデータも送信するため、(a)、(b)、(c)と同じ帯域幅でデータ送信し、1視点の表示画像を生成する場合は、それらのパターンより画質が低下する場合がある。このように各パターンには特性があるため、形成内容切り替え部432は、当該特性を踏まえて設定した規則に従い、いずれかのパターンを決定する。
図18は、ユーザ側(クライアント側)での表示装置の接続方式のバリエーションを例示している。まず(a)は、分配器の役割を果たすプロセッサユニット140にヘッドマウントディスプレイ100および平板型ディスプレイ302が並列に接続された構成を示す。なおプロセッサユニット140は、ヘッドマウントディスプレイ100および平板型ディスプレイ302とは一体的でない画像処理装置200に内蔵してよい。(b)は、ヘッドマウントディスプレイ100と平板型ディスプレイ302が直列に接続された構成を示す。
(c)は、ヘッドマウントディスプレイ100と平板型ディスプレイ302が異なる場所にあり、それぞれがサーバ400からデータを取得する構成を示す。この場合、サーバ400は、送信先の表示形態に合わせて異なる形式のデータを送信してもよい。ただしこの構成では、ヘッドマウントディスプレイ100と平板型ディスプレイ302が直接、接続されていないため、ヘッドマウントディスプレイ100のカメラによる撮影画像を合成して表示させる場合、平板型ディスプレイ302にそれを反映させることが難しい。
いずれにしろ、図17で説明した4つの送信パターンは、図18で示される接続体系のいずれにも適用できる。例えば画像処理装置200を、ヘッドマウントディスプレイ100および平板型ディスプレイ302のそれぞれに一体的に設けた場合、第1形成部270a、第2形成部270bは、図18で示した(a)、(b)、(c)の接続体系と、サーバ400から送信されるデータの形式との組み合わせに応じて、自らを動作させるか否か、動作させる場合はその処理内容を決定する。そして第1制御部272a、第2制御部272bを、対応する表示形態に合わせて動作させれば、図18に示すどの構成であっても、各表示装置の形態に合わせた画像の表示が可能となる。
図19は、サーバ400が表示形態に応じて決定した形式で画像のデータを送信する処理手順を示すフローチャートである。このフローチャートは、ユーザが画像処理装置200に対し、プレイしたいゲームや鑑賞したい動画などを選択することによって開始される。これに応じて画像処理装置200の画像データ取得部240が、サーバ400へその旨を要求することにより、サーバ400が当該画像処理装置200と通信を確立する(S30)。するとサーバ400の形成内容切り替え部432は、画像処理装置200とのハンドシェイクにより必要な情報を確認する(S31のY、S32)。具体的には、次の項目の少なくともいずれかを確認する。
1.図17で示したような送信パターンのうち画像処理装置200側で対応可能なパターン
2.平板型ディスプレイ302にヘッドマウントディスプレイ100と同じ視点での画像を表示させるか否か
3.サーバ側で出力できる形式
4.遅延時間、画質、左右の視差の有無に係る要求値
5.通信速度(通信帯域または転送帯域、通信遅延または転送遅延)
6.画像処理装置200の画像処理部244で処理できる内容(処理能力)
7.ヘッドマウントディスプレイ100と平板型ディスプレイ302の解像度・フレームレート・色空間・接眼レンズの光学パラメータ
なお上記5の通信帯域や通信遅延については、システム立ち上げ後における実績値や、同一のサーバ400/画像処理装置200間での実績値を参照してもよい。そして形成内容切り替え部432は、確認した情報に基づき、あらかじめ設定された規則に従い、サーバ400側で実施すべき画像の形成内容を決定する(S34)。例えば図17で示したパターンのうち、ヘッドマウントディスプレイ100への出力遅延時間は(c)≒(d)>(b)>(a)であり、平板型ディスプレイ302への出力遅延時間は(c)≒(d)>(a)>(b)である。また平板型ディスプレイ302に表示させる画像の質は(b)が最も高く(c)が最も低い。
またヘッドマウントディスプレイ100へ表示する際の画質は、サーバ400と画像処理装置200が同じ変位ベクトルや画素補間処理を行う場合、レンズ歪みとリプロジェクションを一括でおこなう(a)の方が、(c)より優位性がある。しかし、一般にサーバ400は画像処理装置200より処理能力が潤沢にあり、高密度な変位ベクトルマップや、より多タップの画素補間処理など画質向上のための処理を短時間で実施できる。そのため、ヘッドマウントディスプレイ100用の画像が2回にわたって補正される(c)でも、画質において優位となる場合がある。なお(a)、(c)と(b)の間では、視差処理の有無などにより、一概に画質を比較できない。
そのような遅延時間と画質のバランスや、画像処理装置200およびサーバ400で実行可能なパターンなどに応じて、最適なパターンを選択できるように規則を設定しておく。この際、上述のとおり通信帯域(転送帯域)、通信遅延(転送遅延)も考慮する。ここでトータルの遅延時間は、サーバ400での処理時間、通信遅延、画像処理装置200での処理時間の合計となる。パターン選択のための規則として、トータルの遅延時間に対し許容できるレベルをあらかじめ決めておいてもよい。
例えば通信遅延(転送遅延)が当該レベルより大きい場合、画質を犠牲にしてでも、トータルの遅延時間が短くなるパターンを選択する。このようなときには、画像処理装置200にて標準的な画質でレンズ歪みとリプロジェクションの処理を一括でおこなう前提で(a)のパターンを選択してもよい。通信遅延(転送遅延)がそれより小さい場合は、サーバ400や画像処理装置200での処理時間が長いパターンを選択し、画質を向上させてもよい。
例えばサーバ400の処理能力が高い場合、ヘッドマウントディスプレイ100への表示において、図17の(a)でなく(c)のパターンを選択してもよい。また、例えば画像処理装置200の画像処理部244がもつ第2形成部270bが、歪みを除去する補正に対応していない場合、(c)のパターンを選択できず、(a)もしくは(b)のパターンを選択する必要がある。
データ形成部434は描画部430が描画したフレームに、決定された内容で形成処理を施す(S36)。なおデータ形成部434が、描画部430が描画したフレームのまま送信することを決定した場合は、形成処理を省略する。その後、必要に応じて圧縮符号化部422が画像データを圧縮符号化し、パケット化部424が、画像のデータと当該データに適用済みの形成内容とを対応づけてパケットとすることにより、通信部426が画像処理装置200へ送信する(S38)。なおS36、S38の処理は実際には上述のとおり、部分画像の単位で順次進捗させる。
また、S34で決定した内容で形成したデータを転送するには通信帯域(転送帯域)が不足している場合、後述する制御により、データ圧縮時の量子化パラメータ、解像度、フレームレート、色空間などの少なくともいずれかを変更することにより、データサイズを削減してもよい。この場合、画像処理装置200の画像処理部244は、画像サイズのアップスケールなどを行ってよい。画像処理装置200に対するユーザ操作などにより、画像の送信を停止する必要がなければ(S40のN)、後続のフレームについて描画、形成処理、送信を繰り返す(S31のN、S36、S38)。
ただしサーバ400側での画像の形成内容を切り替えるタイミングにおいては、形成内容切り替え部432がS32、S34の処理により形成内容を更新する(S31のY)。ここで画像の形成内容を切り替えるタイミングとは、画像処理装置200で実施しているアプリケーションの切り替わり時、当該アプリケーション内でのモードの切り替わり時、画像処理装置200に対するユーザ操作により指定されたタイミングなどに生じ得る。
なおサーバ400と画像処理装置200の間の通信状況は変化し得るため、形成内容切り替え部432はさらに、通信速度を常時監視し、必要に応じて形成内容を動的に切り替えてもよい。画像の送信を停止する必要が生じたら、サーバ400は全ての処理を終了させる(S40のY)。
以上述べた、異なる表示形態のためのデータ形成処理によれば、サーバ400は、画像データの送信先である画像処理装置200において実現すべき表示形態を踏まえ、表示までに必要なデータ形成処理の一部を実施する。画像処理装置200に接続される表示装置の種類、画像処理装置の処理性能、通信状況、表示対象の動画の内容などによって、当該形成処理の内容を決定することにより、与えられた環境下で表示の応答性や画質を最良の状態とすることができる。
また、異なる表示形態の複数の表示装置に同じ動画を表示させる場合に、サーバ400が好適なデータ形式を1つ選択して形成処理を施したうえで送信することにより、表示形態の数によらず同様の通信帯域でデータを送信できる。これにより画像処理装置200側では、各表示形態に応じたデータを少ない処理で形成できる。また、リプロジェクションなど各種補正や、他の画像との合成などとの組み合わせも容易である。結果として、実現したい表示形態の種類や数によらず、ネットワークを介して提供される画像を低遅延、高画質で表示させることができる。
5.各フレームに対応する複数の画像の圧縮符号化
動画像のデータとして、各フレームが複数の画像によって構成されている場合の圧縮符号化手法について説明する。まず動画像の各フレームが、異なる視点に対し得られた複数の画像により構成される場合を考える。例えば、人の左右の目に対応する視点で表示画像を生成し、それをヘッドマウントディスプレイ100の左目領域、右目領域に表示させれば、ユーザは臨場感のある画像世界を楽しむことができる。一例として、スポーツ競技などのイベントを、空間に配置した複数のカメラで撮影し、それを利用して、ヘッドマウントディスプレイ100の頭部の動きに応じた左目用、右目用の画像を生成、表示することにより、ユーザは会場にいるのと同様の感覚で、自由な視点からイベントを見ることができる。
このような技術において、サーバ400から送信すべき左目用、右目用の画像は、基本的に同じ空間の像を表しているため類似性が高い。そこでサーバ400の圧縮符号化部422は、一方の画像を圧縮符号したうえ、他方のデータはそれとの差分を表す情報とすることで、より高い圧縮率を実現する。あるいは圧縮符号化部422は、過去のフレームの対応する視点の圧縮符号化結果との差分を表す情報を取得してもよい。つまり圧縮符号化部422は、動画像のデータのうち同じ時刻の像を表す別の画像、または過去のフレームの画像、の少なくともいずれかの圧縮符号化結果を参照して予測符号化を行う。
図20は、複数視点の画像を高率で圧縮する機能を有するサーバ400と、それを処理する画像処理装置200の機能ブロックの構成を示している。サーバ400は、画像生成部420、圧縮符号化部422、パケット化部424、および通信部426を含む。画像処理装置200は、画像データ取得部240、復号伸張部242、画像処理部244、および表示制御部246を含む。サーバ400の画像生成部420、パケット化部424、通信部426、および画像処理装置200の画像データ取得部240、画像処理部244、表示制御部246は、図5あるいは図16で説明したのと同様の機能を有する。
ただし画像処理装置200の画像処理部244は、図9で示した各種機能を有していてもよい。またサーバ400の画像生成部420は、異なる視点に対し得られた複数の動画像のデータを取得する。例えば画像生成部420は、異なる位置に配置された複数のカメラで撮影された画像を取得したり、仮想的な複数の視点から見た画像を描画したりしてよい。すなわち画像生成部420は、自らが画像を生成するのに限らず、外部のカメラなどから画像のデータを取得してもよい。
画像生成部420はまた、一旦、取得した複数視点の画像に基づき、ヘッドマウントディスプレイ100を装着したユーザの視点に対応する視野で、左目用、右目用の画像を生成してもよい。左目用、右目用に限らず複数視点の画像をサーバ400による送信対象とし、送信先の画像処理装置200で左目用、右目用の画像を生成するようにしてもよい。あるいは画像処理装置200は、送信された複数視点の画像を用いて何らかの画像解析を行ってもよい。
いずれにしろ画像生成部420は、表される対象物の少なくとも一部が共通している複数の動画像のフレームを、所定または可変のレートで取得あるいは生成し、圧縮符号化部422に順次供給する。圧縮符号化部422は、分割部440、第1符号化部442、第2符号化部444を備える。分割部440は、複数の動画像の対応するフレームを、画像平面の共通の境界で分割することにより、画像ブロックを形成する。第1符号化部442は、視点の異なる複数のフレームのうち、一つの視点のフレームを、画像ブロック単位で圧縮符号化する。
第2符号化部444は、第1符号化部442が圧縮符号化したデータを用いて、その他の視点のフレームを、画像ブロック単位で圧縮符号化する。符号化方式は特に限定されないが、フレームの全体を用いることなく部分的な領域ごとに独立して圧縮しても、画質の劣化が小さい方式を採用することが望ましい。これにより、1フレームより小さい単位で複数視点のフレームを順次圧縮符号化でき、これまで述べたのと同様のパイプライン処理により、少ない遅延時間で部分画像ごとに画像処理装置200へ送信できる。
このため画像ブロックの境界は、画像平面において画像生成部420がデータを取得する順序に応じて適切に設定する。すなわち先に取得される領域ほど先に圧縮符号化され送出されるように、画像ブロックの境界を決定する。例えば画像生成部420が、画像平面の各行の画素列のデータを上から順に取得する場合、分割部440は水平方向に境界線を設定することにより、所定数の行からなる画像ブロックを形成する。
ただし画像生成部420が取得するデータの順序や画像の分割方向は特に限定されない。例えば画像生成部420が、縦方向の画素列のデータを順次取得する場合は、分割部440は垂直方向に境界線を設定する。境界線は一方向に限らず、縦横双方向に区切ることにより画像ブロックをタイル状としてもよい。あるいは画像生成部420は、一度の走査で1行おきに画素列のデータを取得し、次の走査で残りの行のデータを取得するインターレース方式でデータを取得してもよいし、画像平面を蛇行するようにデータを取得していってもよい。後者の場合、分割部440は画像平面の斜め方向に分割の境界線を設定する。
いずれにしろ上述のとおり、画像生成部420が先に取得した領域のデータが先に圧縮符号化されるように、データの取得順に対応する分割パターンを適切に設定しておき、分割部440は、画像生成部420のデータ取得順に応じたパターンで画像平面を分割する。ここで分割部440は、動き補償や符号化を行うのに必要な最小単位の領域を、最小の分割単位とする。第1符号化部442および第2符号化部444は、分割部440がこのように分割した画像ブロックの単位で圧縮符号化を行う。
ここで第2符号化部444は上述のとおり、第1符号化部442が圧縮符号化した画像データを用いることにより、他の視点の画像データの圧縮率を高める。なお第1符号化部442と第2符号化部444はさらに、過去のフレームの同じ位置の画像ブロックの圧縮符号化データを用いて、現フレームの各画像ブロックを圧縮符号化してもよい。
図21は、第1符号化部442と第2符号化部444が圧縮符号化する画像ブロックと、そのために圧縮符号化結果を参照する画像ブロックの関係を例示している。同図は、接眼レンズのための歪みを与えた左目用、右目用画像を処理対象とした場合の画像平面を表しており、Nを自然数として左がNフレーム目、右がN+1フレーム目を示している。例えばNフレーム目に示すように、第1符号化部442が左目用画像350aを、画像ブロック(1−1)、(1−2)、・・・、(1−n)の単位で圧縮符号化し、第2符号化部444は右目用画像350bを、画像ブロック(2−1)、(2−2)、・・・、(2−n)の単位で圧縮符号化する。
ここで第2符号化部444は実線矢印(例えば実線矢印352)のように、第1符号化部442が圧縮符号化した、左目用画像(例えば左目用画像350a)の画像ブロックのデータを参照先として用い、右目用画像(例えば右目用画像350b)の各画像ブロックを圧縮符号化する。あるいは第2符号化部444は、一点鎖線矢印(例えば一点鎖線矢印354)のように、Nフレーム目の右目用画像350bにおける画像ブロックの圧縮符号化結果を参照先として用い、1つ後のN+1フレーム目の右目用画像における同じ位置の画像ブロックを圧縮符号化してもよい。
または第2符号化部444は、実線矢印および一点鎖線矢印で示した参照先の双方を同時に用いて、対象の画像ブロックを圧縮符号化してもよい。同様に第1符号化部442は、破線矢印(例えば破線矢印356)のように、Nフレーム目の左目用画像350aにおける画像ブロックの圧縮符号化結果を参照先として用い、N+1フレーム目の左目用画像における同じ位置の画像ブロックを圧縮符号化してもよい。これらの態様において、例えば多視点映像の符号化方式であるMVC(Multiview Video Coding)のアルゴリズムを用いることができる。
MVCは、多視点で撮影された画像のうち、AVC(H264、MPEG−4)などの方式で圧縮符号化した視点の復号画像を用いて別視点の画像を予測し、それと実際の画像との差分を当該別視点の圧縮符号化対象とすることを基本とする。ただし符号化のフォーマットは特に限定されず、例えばHEVC(High Efficiency Video Coding)に対する多視点符号化の拡張規格であるMV−HEVC(多視点映像符号化拡張)でもよい。またベースとなる符号化方式はそのほか、VP9、AV1(AOMedia Video 1)、VVC(Versatile Video Coding)などでもよい。
いずれにしろ本実施の形態では、当該圧縮符号化処理を画像ブロック単位で行うことにより、送出までの遅延時間を短縮する。例えば第1符号化部が、一の視点のフレームにおけるn番目(nは自然数)の画像ブロックを圧縮符号化している間に、第2符号化部は、その他の視点のフレームにおけるn−1番目の画像ブロックを圧縮符号化する。これによりフレームのデータを取得した順序で、順次並列にパイプライン同時動作でき、圧縮処理を高速化できる。
第1符号化部442および第2符号化部444で圧縮符号化の対象とする視点はそれぞれ、1つでも複数でもよい。第1符号化部442および第2符号化部444で圧縮符号化された複数視点の動画像のフレームは、順次、パケット化部424に供給され、通信部426から画像処理装置200に送信される。この際、各データには、第1符号化部442および第2符号化部444のどちらで圧縮されたデータかを区別する情報を対応づけておく。
なお圧縮単位である画像ブロックは、これまで述べたパイプライン処理の単位である部分画像と同一でもよいし、1つの部分画像に複数の画像ブロックのデータが含まれていてもよい。画像処理装置200の復号伸張部242は、第1復号部280および第2復号部282を備える。第1復号部280は、第1符号化部442で圧縮符号化された視点の画像を復号伸張する。第2復号部282は、第2符号化部444で圧縮符号化された視点の画像を復号伸張する。
すなわち第1復号部280は、第1符号化部442で圧縮符号化されたデータのみを用いて、符号化方式に応じた一般的な復号処理により、一部の視点の動画像のフレームを復号する。第2復号部282は、第1符号化部442で圧縮符号化されたデータと、第2符号化部444で圧縮符号化されたデータを用いて、残りの視点の動画像のフレームを復号する。例えば前者により対象とする視点の画像を予測し、第2符号化部444で圧縮符号化されたデータの復号結果を加算することにより、当該視点の画像を復号する。
なお第1復号部280、第2復号部282は機能ブロックとして分けて示しているが、実際には一つの回路やソフトウェアモジュールが2種類の処理を順に実施できることは当業者には理解されるところである。これまで述べたように復号伸張部242は、画像データ取得部240から圧縮符号化された部分画像のデータを取得し、その単位で復号伸張したうえで画像処理部244に供給する。ここで複数視点の画像の類似性を利用して予測符号化を行うことにより、サーバ400から伝送すべきデータサイズを縮小でき、通信帯域を圧迫することなく遅延の少ない画像表示を実現できる。
図22は、本実施の形態においてサーバ400が、複数視点の画像の類似性を利用して画像ブロック単位で圧縮符号化する効果を説明するための図である。同図上段は、接眼レンズのための歪みを与えた左目用、右目用画像を処理対象とした場合の、画像の区分を例示している。同図下段の横方向は時間経過を表し、それぞれの領域に対する圧縮符号化処理の時間を、上段に示した各領域の番号とともに矢印で示している。
(a)の手順は、まず(1)の左目用画像全体を圧縮符号化し、その結果を用いた右目用画像の予測画像と実際との差分を、(2)の右目用画像の圧縮対象とする場合を、比較として示している。この手順では、(2)の右目用画像の圧縮符号化に際し、まず左目用画像全体の圧縮符号化の完了を待機し、さらに当該データを用いて予測を行ったり、実際の画像との差分を求めたりする必要がある。その結果、下段に示すように、双方の画像を圧縮符号化し終えるまでに比較的長い時間を要する。
(b)の手順は、左目用画像と右目用画像を接続した1つの画像として扱い、水平方向に分割してなる画像ブロック(1)、(2)、・・・、(n)の単位で圧縮符号化する場合を、比較として示している。この手順では、下段に示すように、一旦圧縮符号化したデータから予測を行ったり差分を求めたりする処理が含まれない分、(a)の手順より圧縮符号化に要する時間を短縮できる。ただし予測符号化を用いないため圧縮率は(a)より低下する。
(c)の手順は、本実施の形態で上述したように、第1符号化部442が左目用画像を、画像ブロック(1−1)、(1−2)、・・・、(1−n)の単位で圧縮符号化し、第2符号化部444は、それぞれのデータを用いた右目用画像の予測画像と実際との差分を圧縮することにより、画像ブロック(2−1)、(2−2)、・・・、(2−n)の単位の右目用画像の圧縮符号化データとする場合である。この手順では下段(c)に示すように、右目用画像の画像ブロック(2−1)、(2−2)、・・・、(2−n)の圧縮符号化を、左目用画像の対応する画像ブロック(1−1)、(1−2)、・・・、(1−n)の圧縮符号化の完了直後に開始できる。
また、左目用画像の圧縮符号化時に一度に処理する面積が小さいことと、右目用画像の圧縮符号化時に参照すべき、左目用画像の面積が小さいことから、各画像ブロックの圧縮符号化時間は、(a)において画像ブロック当たりに換算した圧縮符号化時間より短くなる。結果として(b)の手順と同程度の短時間で、より高い圧縮率を実現できる。さらにこれまで述べたように、圧縮符号化済みの画像ブロックは順次、パケット化して画像処理装置200に送信されるため、(a)の手順と比較し表示までの遅延を格段に抑えることができる。
なお(c)の手順において、第1符号化部442、第2符号化部444は機能ブロックとして分けて示しているが、実際には一つの回路やソフトウェアモジュールが2種類の処理を順に実施できる。一方、図の下段に示した(c)’は、第1符号化部442と第2符号化部444が並列に圧縮符号化を行えるように構成した場合を示している。この場合、第1符号化部442が、左目用画像における画像ブロック(1−2)、・・・、(1−n)を圧縮符号化している各期間において、第2符号化部444は、右目用画像における一つ前の画像ブロック、すなわち画像ブロック(2−1)、・・・、(2−(n−1))番目の画像ブロックを圧縮符号化する。
これにより、(c)の場合よりさらに、圧縮符号化に要する時間を短縮できる。(c)’’の手順は(c)’の手順の変形例であり、左目用の画像の画像ブロックのうち所定単位の領域を圧縮符号化した時点で、当該データを用いて右目用の画像の対応する領域の圧縮符号化を開始する場合を示している。左目用と右目用の画像では、同じ対象物の像が視差分だけずれた位置に表れるため、原理的には当該ずれ量を見込んだ数画素から数十画素程度の範囲の参照画像があれば、他方の画像の予測符号化が可能である。
また上述のとおり圧縮符号化において動き補償や符号化を行うのに必要な最小単位の領域は、1行、2行など所定数の行の領域や、16×16画素、64×64画素など所定サイズの矩形領域である。したがって第2符号化部444は、参照先として必要な領域の左目用画像の圧縮符号化が第1符号化部442において完了した時点で圧縮符号化を開始でき、その最小単位は、動き補償や符号化を行うのに必要な単位領域である。
例えば第1符号化部442が、左目用画像の画像ブロックを端から順に圧縮符号化していくケースでは、当該画像ブロック全体の圧縮符号化が完了する前に、第2符号化部444が、右目用画像の対応する画像ブロックの圧縮符号化を開始できる。このようにすると、(c)’の場合と比較してさらに圧縮符号化に要する時間を短縮できる。
なお圧縮符号化部422は全体として、圧縮符号化に必要な最小単位の領域のデータが用意され次第、圧縮符号化を開始することで、圧縮符号化処理に要する時間を短縮できる。これまでは主に、複数視点の画像の圧縮符号化について述べたが、動画像の各フレームに対応する複数の画像において、視点以外のパラメータが異なっていても、同様の処理により低遅延で高効率の圧縮符号化および転送を実現できる。例えば1つの動画像を圧縮符号化するときに、解像度、画質、フレームレートを異ならせて階層化させ、冗長性を持たせたデータを生成するスケーラブル映像符号化技術において、各階層のデータは類似性が高い。
そのためベース階層の画像を圧縮符号したうえ、他の階層のデータはそれとの差分を表す情報とすることで、より高い圧縮率を実現する。すなわち動画像のデータのうち同じ時刻の同じ像を表す別の画像、または過去のフレームの画像、の少なくともいずれかの圧縮符号化結果を参照して予測符号化を行う。ここで、動画像のデータのうち同じ時刻の同じ像を表す別の画像とは、階層的に定義された異なる解像度や画質を持つ。
例えば、同じ像を表す画像で、解像度が4K(3840×2160画素)、HD(1920×1080画素)、画質が量子化パラメータ(QP)でlevel 0と1といった段階を持つ。ここで、過去のフレームの画像とは、階層的に定義された異なるフレームレートにおける直前のフレームなどを指す。例えば、フレームレートが60fpsと30fpsといった段階を持つなかで、30fpsの階層における直前のフレームとは、すなわち1/30秒前のフレームを指し、これは60fpsの階層においては2フレーム前となる。このような特徴を持つスケーラブル映像符号化技術においても、各階層の圧縮符号化を画像ブロック単位で行ってもよい。
スケーラブル映像符号化としては、例えばAVC(H264、MPEG−4)の拡張規格であるSVC(Scalable Video Coding)や、HEVCの拡張規格であるSHVC(Scalable High Efficiency Video Coding)などが知られており(例えば、木本崇博、「MPEGにおけるスケーラブルビデオ符号化の標準化動向」、社団法人情報処理学会研究報告、2005年、AVM−48(10)、p.55−60参照)、本実施の形態ではそのいずれを採用してもよい。なおベースとなる符号化方式はそのほか、VP9、AV1、VVCなどでもよい。
図23は、スケーラブル映像符号化を実施する場合の、圧縮符号化部422の機能ブロックの構成を示している。その他の機能ブロックは、図20で示したのと同様である。この場合の圧縮符号化部422は、図20で示した分割部440、第1符号化部442、第2符号化部444に加え、解像度変換部360、通信状況取得部452、および送信対象調整部362を備える。解像度変換部360は、画像生成部420が生成あるいは取得する動画像の各フレームを段階的に縮小して複数解像度の画像とする。
分割部440は、当該複数解像度の画像を、画像平面の共通の境界で分割することにより、画像ブロックを形成する。分割規則は上述したのと同様でよい。第1符号化部442は、最も低い解像度の画像を画像ブロック単位で圧縮符号化する。上述のとおりこの際の圧縮符号化は、当該画像のみ、あるいはさらに、同じ解像度の過去フレームの画像における同じ位置の画像ブロックを参照して実施する。
第2符号化部444は、第1符号化部442が圧縮符号化した結果を利用して、高解像度の画像を画像ブロック単位で圧縮符号化する。図では解像度が2階層のケースを想定し、第1符号化部442、第2符号化部444の2つを示しているが、解像度を3階層以上とする場合、階層数だけ符号化部を設け、解像度が一段階下の画像の圧縮符号化結果を用いて予測符号化を行う。
この際さらに、同じ解像度の過去フレームの画像における同じ位置の画像ブロックを参照してもよい。またそれらの符号化部においては必要に応じて、フレームレートを調整したり、用いる量子化パラメータを調整したりして、階層間でフレームレートや画質に差を設けてもよい。
例えばフレームレートに階層を設ける場合、圧縮符号化部422における処理のフレームレートは、最も高いフレームレート階層のレートとなる。そして過去のフレームを参照先として圧縮符号化する場合、フレームレートによって参照先のフレームが変化する。また画質に階層を設ける場合、第1符号化部442が量子化パラメータでベース画質となるQP level0を選択し、第2符号化部444やそれより上の第n符号化部側が、より高画質のQP levelを選択することで実現させる。
例えば解像度がHD、画質がQP level0のベース階層と、解像度が4K、画質がQP level1の階層があるとき、第1符号化部442は前者を、第2符号化部444が後者を処理する。さらに解像度が4K、画質がQP level2の階層があるときは、当該階層の処理を、図示しない第3符号化部が担う。すなわち同じ解像度でもQP levelが異なる場合は、その分の符号化部を設ける。なお解像度、画質、フレームレートの階層の組み合わせはこれに限らない。
いずれにしろこの場合も、第1符号化部442が、最小解像度(最下層)の画像におけるn番目(nは自然数)の画像ブロックを圧縮符号化している間に、第2符号化部444は、その上の階層の画像におけるn−1番目の画像ブロックを圧縮符号化する。3階層以上とする場合は、3番目の階層の画像におけるn−2番目の画像ブロック、4番目の階層の画像におけるn−3番目、・・・というように、各符号化部が、階層が上がるにつれ1つずつ前にずれた画像ブロックの圧縮符号化を並列に実施する。本実施の形態で実現するスケーラブル映像符号化の各パラメータの例を次に示す。
Figure 2021057770
通信状況取得部452は、画像処理装置200との通信状況を所定のレートで取得する。例えば通信状況取得部452は、画像データを送信してから画像処理装置200に到達するまでの遅延時間を、画像処理装置200からの応答信号に基づき取得するか、画像処理装置200の集計情報に基づき取得する。あるいは通信状況取得部452は、送信済みの画像データのパケットのうち画像処理装置200に到達したパケットの割合を、データ到達率として画像処理装置200から取得する。さらに、これらの情報に基づき単位時間当たりに送信できたデータ量、すなわち、利用可能な帯域を取得する。通信状況取得部452はこれらの情報の少なくともいずれかを所定のレートで取得することにより、通信状況を監視する。
送信対象調整部362は、通信状況に応じて、スケーラブル映像符号化により圧縮符号化された階層データのうち、画像処理装置200に送信すべき対象を決定する。ここで送信対象調整部362は当該階層データのうち、第1符号化部442が圧縮符号化した最低解像度の画像のデータを最優先とする。さらに送信対象調整部362は通信状況に応じて、送信対象を上位階層方向に拡張するか否かを決定する。例えば利用可能な転送帯域に複数のしきい値を設定し、当該しきい値を超える都度、送信対象を上の階層の画像データに段階的に拡張していく。
逆に、利用可能な転送帯域が最低のしきい値を超えない場合は、最低解像度の画像のデータのみを送信対象とする。あるいはプライオリティ制御を適用し、サーバ400は、通信状況によらず全ての階層のデータを送信対象としてもよい。この場合、送信対象調整部362は通信状況に応じて、各階層に付与する転送優先順位を通信状況に応じて調整する。例えば送信対象調整部362は、上位階層のデータの転送優先順位を必要に応じて下げる。ここで転送優先順位は多段階であってよい。
このときパケット化部424は、画像のデータとともに付与された転送優先順位を示す情報をパケット化し、通信部426から送信する。ただしネットワーク306のノードにあるルーターなどにおいて、処理能力を超過する転送が発生した場合に、必要に応じてパケットを破棄してよい。ストリーミング系のデータ転送においては、低遅延化と高転送効率を実現するために、一般にUDPなどのハンドシェイクを省略した転送プロトコルを用いるため、その場合においては、送信したサーバー400は、ネットワーク306の経路の途中でパケットが破棄されたかどうかも関知しない。このときルーターなどは、付与された転送優先順位に基づき、上位階層から順に廃棄対象とする。サーバ400から複数の画像処理装置200へ階層化されたデータを同時に送信する場合、各画像処理装置200が有する復号伸張部242の処理能力や、各画像処理装置200までのネットワークの通信性能は様々である。
送信対象調整部362は上述のとおり、各画像処理装置200の状況に応じて個別に送信対象を決定してもよいが、その場合、複数の通信セッションを別々に調整する必要があり処理負荷が非常に高い。一方、上記プライオリティ制御によれば、サーバ400は複数の通信セッションに対して同じ条件で対応でき、処理効率を高められる。なお送信対象調整部362等は、上述のとおり送信対象自体を制御する態様と、プライオリティ制御を行う態様を組み合わせて実施してもよい。
変形例として、サーバ400は図示しない中継サーバへ、圧縮符号化された階層データを送信し、当該中継サーバが、複数の画像処理装置200へ同時にデータ送信するようにしてもよい。この場合、サーバ400は上記プライオリティ制御により全階層のデータを中継サーバに送信し、中継サーバが、各画像処理装置200の状況に応じて個別に送信対象を決定し送信してもよい。送信対象調整部362はさらに、通信状況および後述する動画像が表す内容の少なくともいずれかに基づいて、(1)各階層が用いるパラメータを変更する、および/または(2)階層関係を変更してよい。
(1)のケースでは、送信対象調整部362は例えば、解像度の階層として4K(3840×2160画素)の階層があるとき、4Kに代わりWQHD(2560×1440画素)の階層とする。なおWQHDの階層を追加するわけではない。このような変更は、複数ある実現帯域に対するしきい値のうち、高帯域側のしきい値を下回るケースが多いときに実施してもよい。あるいは送信対象調整部362は、画質の階層としてQP level1の階層があるとき、QP level1に代わりQP level2の階層とする。この場合もQP level2の階層を追加するわけではない。
このような変更は、複数ある実現帯域に対するしきい値のうち、高帯域側のしきい値を上回るケースが多いときに実施してもよい。もしくは画像解析の結果、画質を重視すべきシーンであったときに実施してもよい。(2)のケースについては後述する。(1)、(2)のケースにおいて、送信対象調整部362は、必要に応じて決定した条件での処理を解像度変換部360、第1符号化部442、第2符号化部444に要求してもよい。調整の根拠とする、動画像が表す内容の具体例は後に述べる。
図24は、スケーラブル映像符号化を実施する場合の、第1符号化部442と第2符号化部444が圧縮符号化する画像ブロックと、そのために圧縮符号化結果を参照する画像ブロックの関係を例示している。この例は、解像度の階層が2レベルあり、フレームレートと画質には階層がない場合を想定しており、Nを自然数として左がNフレーム目、右がN+1フレーム目を示している。この場合、第1符号化部442は、各フレームのうち低解像度の画像480a、480bを、画像ブロック(1−1)、(1−2)、・・・、(1−n)の単位で圧縮符号化する。
第2符号化部444は、高解像度の画像482a、482bを、画像ブロック(2−1)、(2−2)、・・・、(2−n)の単位で圧縮符号化する。ここで第2符号化部444は実線矢印(例えば実線矢印484a、484b)のように、第1符号化部442が圧縮符号化した、同じフレームにおける低解像度画像480a、480bの対応する位置の画像ブロックのデータを参照先として用い、高解像度画像482a、482bの各画像ブロックを圧縮符号化する。
あるいは第2符号化部444は、一点鎖線矢印(例えば一点鎖線矢印488)のように、Nフレーム目の高解像度画像482aにおける画像ブロックの圧縮符号化結果を参照先として用い、1つ後のN+1フレーム目の高解像度画像482bにおける同じ位置の画像ブロックを圧縮符号化してもよい。または第2符号化部444は、実線矢印および一点鎖線矢印で示した参照先の双方を同時に用いて、対象の画像ブロックを圧縮符号化してもよい。
同様に第1符号化部442は、破線矢印(例えば破線矢印486)のように、Nフレーム目の低解像度画像480aにおける画像ブロックの圧縮符号化結果を参照先として用い、N+1フレーム目の低解像度画像480bにおける同じ位置の画像ブロックを圧縮符号化してもよい。図25も、スケーラブル映像符号化を実施する場合の、第1符号化部442と第2符号化部444が圧縮符号化する画像ブロックと、そのために圧縮符号化結果を参照する画像ブロックの関係を例示している。
この例は、解像度の階層とフレームレートの階層がともに2レベルある場合を想定している。図の横方向が時間軸であり、左から1フレーム目、2フレーム目、3フレーム目、4フレーム目を示している。図示するように1フレーム目はIフレーム(イントラフレーム)であり、その他のフレームはPフレーム(前方予測フレーム)である。ただしフレームの具体的な数を限定する趣旨ではない。
また図の縦方向がフレームレートの階層を示しており、各階層(レベル0、レベル1)に2レベルの解像度の画像があることを示している。また、各画像の左上に、階層の組み合わせを識別するa〜dの符号を付している。フレーム番号とa〜dの符号との組み合わせで各画像を表すと、第1符号化部442が圧縮符号化する画像は、1a、2c、3a、4cの順となる。第2符号化部444が圧縮符号化する画像は、1b、2d、3b、4dの順となる。通信帯域が最も小さい場合に、画像処理装置200側で表示される画像は1a 、3a、・・・の順となる。通信帯域が最も大きい場合に、画像処理装置200側で表示される画像は1b、2d、3b、4dの順となる。
各符号化部は、上述したように画像ブロックの単位で圧縮符号化する。ここで第2符号化部444は、実線矢印(例えば実線矢印500a、500b)のように、第1符号化部442が圧縮符号化した、同じフレームにおける低解像度画像の対応する位置の画像ブロックのデータを参照先として用い、高解像度画像の各画像ブロックを圧縮符号化する。また第1符号化部442、第2符号化部444は、破線矢印(例えば破線矢印502a、502b)のように、同じフレームレートの階層における同じ解像度の画像の画像ブロックの圧縮符号化結果を参照先として用い、次のフレームの同じ位置の画像ブロックを圧縮符号化してもよい。
また第1符号化部442、第2符号化部444は、一点鎖線矢印(例えば一点鎖線矢印504a、504b)のように、異なるフレームレートの階層における同じ解像度の画像の画像ブロックの圧縮符号化結果を参照先として用い、次のフレームの同じ位置の画像ブロックを圧縮符号化してもよい。第1符号化部442、第2符号化部444はこれらの参照先のいずれかを用いて圧縮符号化してもよいし、複数の参照先を同時に用いて圧縮符号化してもよい。
また各画像ブロックの圧縮符号化の処理手順は、図22に示した(c)、(c)’、および(c)’’のいずれを採用してもよい。具体的には、第1符号化部442と第2符号化部444が実際には一つの回路またはソフトウェアモジュールであり順番に処理を実施する場合は(c)の手順、第1符号化部442と第2符号化部444において並列処理が可能な場合は(c)’または(c)’’の手順とする。なお上記(2)のとおり、通信状況および動画像が表す内容の少なくともいずれかに基づいて階層関係を変更するケースでは、送信対象調整部362は、解像度・画質・フレームレートの、少なくともいずれかで、階層の数を変更する。または圧縮符号化時の参照先の階層を変更する。例えば送信対象調整部362は次のように参照先を変更する。
図25の場合、例えばフレームレート階層にレベル1とレベル0があり、レベル1はレベル0を毎回参照しているとき、フレームシーケンスは
フレーム1 レベル0
フレーム2 レベル1(直前レベル0フレーム1を参照)
フレーム3 レベル0(直前レベル0フレーム1を参照)
フレーム4 レベル1 (直前レベル0フレーム3を参照)
フレーム5 レベル0 (直前レベル0フレーム3を参照)
フレーム6 レベル1 (直前レベル0フレーム5を参照)
フレーム7 レベル0(直前レベル0フレーム5を参照)
・・・
となる。送信対象調整部362はこれを変更し、例えば次のようにレベル1間の参照数を増やす。
フレーム1 レベル0
フレーム2 レベル1(直前レベル0フレーム1を参照)
フレーム3 レベル1(直前レベル1フレーム2を参照)
フレーム4 レベル0(直前レベル0フレーム1を参照)
フレーム5 レベル1(直前レベル0フレーム4を参照)
フレーム6 レベル1 (直前レベル1フレーム5を参照)
フレーム7 レベル0 (直前レベル0フレーム参照)
・・・
このような変更は、画像処理装置200へのデータの到達率が、所定のしきい値を上回るケースが多いときに実施してもよい。
以上述べた各フレームに対応する複数の画像の圧縮符号化によれば、動画像の各フレームに対応する複数の画像を、画像データの取得順に応じた規則で画像ブロックに分割し、その単位で圧縮符号化する。この際、ある画像の圧縮符号化結果を用いて、別の画像を圧縮符号化することにより圧縮率を向上させる。これにより、圧縮符号化自体に要する時間を短縮できるうえ、圧縮符号化が完了した画像ブロックから送信が可能になるため、ネットワークを介した画像の配信においても低遅延での画像表示が可能である。
また送信すべきデータのサイズを軽減できるため、通信状況の変化に対し頑健性をもたらす。例えば3つ以上の画像データを送信する態様においても、各画像全体を送信する場合と比較し必要な通信帯域幅を軽減できるとともに、画像ブロック単位でデータが完結しているため通信中にデータが損失してもリカバリが容易である。結果として遅延時間の少ない画像を高い画質で表示させることができる。さらに送信先の画像処理装置の数、通信状況、画像処理装置の処理性能など様々な環境に臨機応変に対応できる。例えばゲーム実況中継(eSports中継)や、多人数参加のクラウドゲーミングにおいて、高い柔軟性で、高効率、低遅延と画高質を両立できる。
6.データサイズ削減手段の最適化
サーバ400から画像処理装置200へ、低遅延で安定的にデータを送信するには、送信対象のデータのサイズを極力小さくすることが望ましい。一方で、表示世界への臨場感や没入感など高いレベルでのユーザ体験を提供するには、解像度やフレームレートをある程度維持したり、圧縮率を上げないようにしたりすることが望ましく、ジレンマが生じる。両者のバランスを好適にとるため、サーバ400は、画像の内容によって転送データ削減手段を最適化する。
図26は、データサイズ削減手段を最適化する機能を有するサーバ400の機能ブロックの構成を示している。サーバ400は、画像生成部420、圧縮符号化部422、パケット化部424、および通信部426を含む。画像生成部420、パケット化部424、および通信部426は、図5、12で説明したのと同様の機能を有する。ここで画像生成部420は、送信対象の動画像をその場で描画する、すなわちそれまで存在していなかった映像を動的に描画する場合があることに留意する。
また各フレームに対応する複数の画像を送信する場合、圧縮符号化部422は図20、23で示した分割部440、第2符号化部444、送信対象調整部362などをさらに備えてもよい。圧縮符号化部422は、画像内容取得部450、通信状況取得部452、および圧縮符号化処理部454を備える。画像内容取得部450は、処理対象の動画像が表す内容に係る情報を取得する。
画像内容取得部450は例えば、画像生成部420が描画している画像の特徴をフレームごと、シーンの切り替わり時、動画像の処理開始時など所定のタイミングで画像生成部420から取得する。本実施の形態では基本的に、表示中の動画像をリアルタイムで生成したり取得したりしているため、画像内容取得部450はフレームごとなど細かい単位であっても、処理の負荷を増大させることなく内容に係る正確な情報を取得できる。
例えば画像内容取得部450は、シーンの切り替えタイミングか否か、フレームに表されている画像テクスチャの種類、特徴点の分布、奥行き情報、オブジェクトの量、3次元グラフィクスに用いているミップマップテクスチャの各レベルの使用量、LOD(Level Of Detail)、テッセレーションの各レベルの使用量、文字および記号の量、表されるシーンの種類などの情報を画像生成部420から得ることができる。
ここで画像テクスチャの種類とは、画像上でテクスチャにより表現される領域の種類であり、例えばエッジ領域、フラット領域、密度の高い領域、詳細な領域、群衆の領域などである。なおエッジとは、画像上での輝度値の変化の割合が所定値以上の箇所である。特徴点の分布とは、画像平面における特徴点やエッジの位置やエッジの強度、すなわち輝度値の変化の割合などを指す。上述した各種テクスチャ領域は3次元グラフィックスとして描画された結果である2次元画像において、どのようなテクスチャとなっているかを2次元的に判定する。したがって3次元グラフィックス生成に使っているテクスチャとは異なる。
奥行き情報は、各画素が表すオブジェクトまでの距離であり、3次元グラフィクスにおいてはZ値として得られる。またオブジェクトの量とは、椅子や車など表す対象物の数や画像平面に占める面積を指す。ミップマップテクスチャのレベルとは、オブジェクトの表面を表すテクスチャのデータを複数解像度で準備しておき、オブジェクトの距離、ひいては見かけ上のサイズによって適切な解像度のテクスチャを用いるミップマップの手法において、選択された解像度のレベルである。
LODおよびテッセレーションのレベルは、オブジェクトの距離、ひいては見かけ上のサイズに依存してポリゴンの数を調整することにより適切な詳細度で表現する技術における詳細度のレベルである。表されるシーンの種類とは、画像生成部420が実施しているゲームなどのコンテンツの出力上の状況やジャンルなどであり、例えばムービー画面、メニュー画面、設定画面、ローディング画面、主観視線描画、俯瞰視線描画、2次元ドット絵ゲーム、3次元描画ゲーム、ファーストパーソン・シューティングゲーム、レースゲーム、スポーツゲーム、アクションゲーム、シミュレーションゲーム、アドベンチャー・ノベルゲームなどの種別を指す。
画像内容取得部450は、それらの情報の少なくともいずれかを画像生成部420から取得する。なお画像内容取得部450および後述するスコアの算出機能は、画像生成部420に設けてもよい。具体的には画像生成部420で動作するソフトウェアフレームワークであるゲームエンジンなどがそれらの機能を実現してもよい。また画像内容取得部450は、画像処理装置200から送信される、ゲームなど動画像を規定するコンテンツに対するユーザ操作のタイミング、当該タイミングの間隔、ユーザ操作の内容、画像生成部420が把握するコンテンツの状況、および当該コンテンツで発生させるオーディオの状況、の少なくともいずれかを取得してもよい。
ユーザ操作のタイミングは、画像生成部420における動画像のフレーム描画のタイミングと異なる場合があるため、シーンの切り替わりの検出などに用いることにより、データサイズの調整手段や調整量の切り替えに利用できる。コンテンツの状況とは例えば、a)ユーザ操作が必要でコンテンツの処理内容に影響を与えるシーンであるか、b)ユーザ操作が必要ないムービーシーンであるか、c)ユーザ操作が必要ない、ムービーシーン以外のシーンであるか、d)ユーザ操作が必要だがコンテンツの本編でないシーンであるか、の少なくともいずれかを判別する情報を画像生成部420から取得する。
これにより、ユーザ操作への応答性を優先するか、画質を優先するか、といった観点でデータサイズの調整手段や調整量を最適化できる。またオーディオの状況とはオーディオの有無、オーディオのチャネル数、バックグランドミュージックの内容、効果音(SE)の内容、の少なくともいずれかを判別する情報であり、図示しないオーディオ生成装置から取得する。
あるいは画像内容取得部450は、画像生成部420が生成した画像を自らが解析することにより、上述のような情報の少なくともいずれかを取得してもよい。この場合も、解析処理のタイミングは特に限定されない。さらに画像内容取得部450は、サーバ400が動画像の配信を開始する際などに、その書誌情報を図示しない記憶装置などから読み出すことにより、上述のシーンの種類などを取得してもよい。
画像内容取得部450はまた、圧縮符号化処理部454が行う圧縮符号化処理において取得した情報を利用して、動画像の内容に係る情報を取得してもよい。例えば圧縮符号化処理において動き補償を実施する場合、オプティカルフローの量、すなわちどの方向に画素が動いているかや、画素領域が動く速さなどが得られる。モーションエスティメーション(ME)によっても、画像上の矩形領域がどの方向に動いているか、動いている場合はその速度などが得られる。
さらに圧縮符号化処理においては、圧縮符号化処理部454が処理に用いる符号化ユニットの割り当て状況や、イントラフレームを挿入するタイミングなども得られる。後者は動画におけるシーンの切り替わりのタイミングを特定する根拠となる。なお画像内容取得部450は後述の「シーンの切り替わりタイミングにおけるスコア制御規則」に示したようなパラメータのいずれを取得してもよい。画像内容取得部450は、これらの情報の少なくともいずれかを圧縮符号化処理部454から取得してもよいし、自らが画像を解析することにより必要な情報を取得してもよい。この場合も取得タイミングは特に限定されない。
通信状況取得部452は、図23で説明したとおり画像処理装置200との通信状況を所定のレートで取得する。圧縮符号化処理部454は、通信状況の変化に応じて、動画像が表す内容に基づき決定した手段により、動画像のデータサイズが適切になるように圧縮符号化する。具体的には圧縮符号化処理部454は、動画像のフレームレート、解像度、および量子化パラメータの少なくともいずれかを変化させることにより、通信状況によって定まるデータサイズとなるようにする。基本的には、画像の内容を多角的な観点から評価し、それに対し最適な(フレームレート、解像度、量子化パラメータ)の数値の組み合わせを決定する。
この際、圧縮符号化処理部454は、限られた通信帯域や処理リソースの条件下で、ユーザ体験を最良にするために優先すべき事項に基づき、調整対象の手段や調整量を決定する。例えば、像の動きが速く、ユーザ入力に対する即座の連動性も求められる、ファーストパーソン・シューティングのシーンや格闘アクションのシーン、あるいは仮想現実や拡張現実を実現する場合などは、フレームレートを優先することが望ましい。緻密なオブジェクトが多く、文字や記号、標識、ドット絵を読み取ることが必要なシーンでは、解像度を優先することが望ましい。
像の動きが遅いが、絵としてのコントラストやダイナミックレンジが高く、階調表現において圧縮破綻が少なく高画質であることが必要なシーンは、量子化のクオリティを優先することが望ましい。このように画像の内容によって優先すべき事項が異なるため、圧縮符号化処理部454はそれを踏まえたうえで、通信状況が悪化してもユーザ体験が可能な限り維持される手段でデータサイズが適切になるようにする。
動画像の内容から調整手段と調整量を決定する規則は、テーブルあるいは計算モデルなどの形式で前もって準備し、圧縮符号化処理部454の内部で保持しておく。ただし動画像の内容を示す情報は上述のとおり多岐にわたるため、それらを総合的に見て複数の調整手段を最適化する必要がある。そこで圧縮符号化処理部454は、次のような規則の少なくともいずれかにより、調整手段と調整量を決定するためのスコアを導出する。
1.コンテンツの状況に基づくバランスの決定規則
コンテンツの出力上の状況が、上述したa〜dのいずれであるかによって、フレームレート、解像度、および量子化のクオリティに与える重みのバランス(優先順位)を決定する。具体的には、a)ユーザ操作が必要でコンテンツの処理内容に影響を与えるシーンの場合、以下に述べるスコアの決定規則の少なくともいずれかに従う。b)ユーザ操作が必要ないムービーシーンの場合は、量子化のクオリティまたは解像度を、フレームレートより優先する。c)ユーザ操作が必要ない、ムービーシーン以外のシーンの場合は、解像度またはフレームレートを量子化のクオリティより優先する。d)ユーザ操作が必要だがコンテンツの本編でないシーンの場合は、解像度または量子化のクオリティをフレームレートより優先する。
2.コンテンツのジャンルに基づくバランスの決定規則
上記a、すなわち、ユーザ操作が必要でコンテンツの処理内容に影響を与えるシーンの場合、実施しているコンテンツのジャンルを記憶装置などから読み出し、別途テーブルとして準備した、各ジャンルにて一般的に推奨される解像度、フレームレート、量子化パラメータの重みを表すスコアのバランスを参照する。なお以後述べる複数の規則を並列に適用し、それらの結果を総合判定して最終的に用いるスコアを決定する場合も、本規則を初期値として用いてもよい。
3.画像上の像の大きさに基づくスコア決定規則
LOD、ミップマップテクスチャ、テッセレーション、オブジェクトの大きさを参照し、所定値より高精細なオブジェクトがあり、かつ、画像全体においてそれが占める面積の割合が大きい(ビュースクリーンの近くに大きな高精細オブジェクトがある)ほど量子化のクオリティと解像度の重みを表すスコアを高くする。
4.オブジェクトの細かさに基づくスコア決定規則
所定値より小さなオブジェクト、緻密な文字や記号・標識・ドット絵の発生量が多く、画像全体においてそれらが占める面積の割合が所定値より大きい(ビュースクリーンの近くに大きな高精細オブジェクトがない)ほど解像度の重みを表すスコアを高くする。
5.コントラスト、ダイナミックレンジに基づくスコア決定規則
画素値の分布に基づくコントラストや、輝度の分布に基づくダイナミックレンジを参照し、所定基準より高コントラストの領域や高ダイナミックレンジの領域の、画像全体に占める面積の割合が大きいほど、量子化のクオリティの重みを表すスコアを高くする。
6.像の動きに基づくスコア決定規則
オブジェクトの像の移動量、オプティカルフロー、モーションエスティメーションの大きさと量を参照し、移動量が所定値より大きいオブジェクトの量、および画像全体においてそれらが占める面積の割合が大きいほど、フレームレートの重みを表すスコアを高くする。
7.テクスチャの種類に基づくスコア決定規則
画像平面を分割してなる各単位領域の画像テクスチャの種類を集計し、画像全体において密度の高い領域、詳細な領域、群衆の領域の占める面積の割合が大きいほど解像度の重みを表すスコアを高くする。
8.シーンの切り替わりタイミングにおけるスコア制御規則
画像生成部420から切り替わりのタイミングについての情報を得る。もしくはオブジェクト量、特徴点、エッジ、オプティカルフロー、モーションエスティメーション、画素コントラスト、輝度のダイナミックレンジ、オーディオの有無、オーディオのチャネル数、オーディオのモードのいずれかが、時系列方向で急変したりリセットされたりしたときにスコアを切り替える。この際、少なくとも2フレーム以上を参照する。なお圧縮符号化処理部454は、圧縮符号化においてイントラフレームとするフレームの必要性を把握するため、前フレームとの相関性に基づきシーンの切り替わりを検出することもできる。
このとき従来方式の圧縮符号化処理部454による判定のみによらず、上述したスコア決定規則も併用し、切り替わりの検出精度を上げてよい。このようにして検出したシーンの切り替わりにはイントラフレームが必要となり、データサイズがサージ的に増加しやすいため、量子化パラメータと解像度の重みを表すスコアを、対象のフレームおよび後続の所定数のフレームで低減させる。またシーンが速やかに切り替わることを重視し、シーンの切り替わりまではフレームレートの重みを表すスコアを高くし、切り替わり後は当該制約を外してもよい。
9.ユーザ操作のタイミングに基づくスコア決定規則
画像生成部420が実施しているゲームなどのコンテンツにおいて、ユーザ操作の間隔が長いほどフレームレートを下げやすいため、フレームレートの重みを表すスコアを低くする(ユーザ操作の間隔が短いほど他のパラメータの重みを表すスコアを低くする)。
10.ユーザ操作の内容に基づくスコア決定規則
画像生成部420が実施しているゲームなどのコンテンツにおいて、直前の所定期間におけるユーザ操作の変化量が大きい場合、ユーザはコンテンツからの高い応答性を期待していると推定される。したがって当該変化量が大きいほど、フレームレートの重みを表すスコアを高くする。操作がなされていても変化量が小さい場合は、当該スコアのレベルを一段階下げる。
なおユーザ操作は、ゲームコントローラ、キーボード、マウスなど図示しない入力装置が取得した入力情報、ヘッドマウントディスプレイ100の位置、姿勢、動き、ヘッドマウントディスプレイ100のカメラまたは図示しない外部カメラが撮影した画像を解析した結果に基づくジェスチャ(ハンドサイン)指示、図示しないマイクが取得した音声指示などを画像処理装置200から取得する。
11.ユーザの操作対象のオブジェクトに対するスコア決定規則
直前の所定期間においてユーザ操作が反映されると見なされる所定の基準を満たすオブジェクトが画面に存在するとき、他の決定規則により導出されたスコアを引き上げる方向に調整する。ここでユーザは一人でもよいし、同じ画像処理装置200を共有する、あるいは同じサーバ400に接続された異なる画像処理装置200を有する複数人でもよい。ユーザ操作が反映される画面内のオブジェクトとは、ユーザの操作対象である、人、アバター、ロボット、乗り物や機械などのオブジェクトや、そのような主たるオブジェクトと対峙するオブジェクト、ゲームにおけるプレイヤのライフステータス、保有武器ステータス、ゲームスコアなど、プレイヤに情報を通知することが目的のインジケータを含む単位領域など、通常はユーザが最も注目している対象である。
ユーザの操作内容と画面内のオブジェクトとの関連性を示す情報は、原則として画像生成部420から取得する。画像内容取得部450が当該情報を推測してもよい。そのようなオブジェクトが所定の基準により検出されたら、圧縮符号化処理部454は例えば、上記3〜9、10のスコア決定において、スコアをその他の場合より引き上げる。すなわちこの決定規則は、ユーザの操作対象のオブジェクトについて、優先的に上記決定規則を適用させる作用を持つ。例えば3の、像の大きさに基づく画面全体のスコアの総括により、量子化のクオリティと解像度の重みが高くなる基準スコアに僅かに不足していたら、圧縮符号化処理部454は当該基準までスコアを引き上げる。
6の、像の動きに基づく画面全体のスコアの総括により、フレームレートの重みが高くなる基準スコアに僅かに不足していたら、圧縮符号化処理部454は当該基準までスコアを引き上げる。8の、シーンの切り替わりタイミングについて、ユーザの操作対象のオブジェクトの領域に急激な変化があったにも関わらず、画面全体のスコアの総括により、イントラフレームを挟むと判定するスコアに僅かに不足していたら、圧縮符号化処理部454は当該基準までスコアを引き上げる。
12.調整対象と調整量の切り替え頻度の制御
直前の所定期間に採用された(フレームレート、解像度、量子化パラメータ)の履歴を参照し、ユーザ体験の観点から切り替えが許容範囲となるように、各パラメータの重みを表すスコアを調整する。「許容範囲」は、あらかじめ定義したテーブルやモデルに基づいて決定する。
圧縮符号化処理部454は、以上の規則のうちいずれかにより、あるいは複数の規則で得られたスコアの合計値により、フレームレート、解像度、量子化パラメータの最終的な重みを総合的に決定する。なお圧縮符号化処理部454は、上記1〜8の規則において、オブジェクトの位置、投影される順序、大きさ、ビュースクリーンからの相対距離を把握するためにZ値を参照してもよい。
なお上述した決定規則はそれ自体を最適化していくことが望ましい。そこで、過去の様々なケースにおける調整結果を収集しながら、機械学習または深層学習によって決定規則を最適化していってもよい。ここで機械学習を行う場合、最適化の対象は決定規則を定義したテーブルでもよいし計算モデルでもよい。深層学習の場合は、計算モデルを最適化する。
これらの学習技術においては、例えば、人手によって作成されたスコアデータベースや、ユーザによるゲームプレイ体感などを教師データとする。また主観描画のケースを計算モデルの制約条件としたり、画質を示すPSNR(Peak Signal-to-Noise Ratio)やSSIM(Structural Similarity)、パラメータ切り替え頻度、時系列スムースネスなどを指標としたりして学習させる。この例でパラメータの切り替え頻度は、解像度やフレームレートを小刻みに切り替え過ぎるとユーザ体験が却って悪化することを考慮して指標に加えている。
このようにして圧縮符号化処理部454はフレームレート、解像度、および量子化のクオリティのそれぞれに与える重みを表す最終的なスコアを導出し、記通信状況に応じたデータサイズが得られ、かつ前記スコアが表すバランスに従うように、(フレームレート、解像度、量子化パラメータ)の値の組み合わせを決定する。より具体的には圧縮符号化処理部454は、通信状況に応じて決定した、目標とするデータサイズを満たすように各値の組み合わせを予測計算するが、その際に重みが高いパラメータをできるだけ下げないように制御する。
最適な組み合わせを決定したら、圧縮符号化処理部454は、それに応じてデータを圧縮符号化する。例えばフレームレートを低下させる場合、圧縮符号化処理部454は画像生成部420が生成したフレームを、単位時間当たり所定量だけ間引く。解像度を低下させる場合、圧縮符号化処理部454は画像生成部420が生成した画像に対し、ニアレストネイバー法、バイリニア法、バイキュービック法など既存の演算を施す。
また圧縮符号化処理部454は、調整された量子化パラメータにより、画像生成部420が生成した画像を適切な圧縮率で圧縮符号化する。圧縮符号化処理部454は、これらの処理をいずれも、画像生成部420が生成したフレームの部分画像単位で実施し、パケット化部424に順次供給する。この際、そのフレームレート、解像度、量子化パラメータのデータを対応づけて供給することにより、パケット化部424はそれらのデータとともに部分画像のデータをパケット化する。
これにより、これまで述べたのと同様に、圧縮符号化された部分画像のデータが通信部426を介して画像処理装置200に送信される。なお圧縮符号化処理部454がデータサイズの調整手段や調整量を適正化する単位は、圧縮符号化の単位である部分画像の単位でもよいし、1フレーム単位や、所定数のフレーム単位などでもよい。画像処理装置200の復号伸張部242は、画像データとともに送信された量子化パラメータに基づき逆量子化を行う。
また解像度やフレームレートが本来の値より低減されている場合は、接続された表示装置の画面サイズに合致したサイズとしたり、同じフレームを数回出力したりして画像を表示させる。このような、解像度やフレームレートの変化に応じた表示処理の手順には一般的な技術を用いることができる。なおサーバ400の圧縮符号化部422が解像度を低下させた場合、サーバ400からは、当該低解像度の画像のみでは特定不能な付加データを一緒に送信してもよい。
ここで付加データとは例えば、画像生成部420が生成した元の画像における特徴量や、圧縮符号化部422が圧縮符号化時に決定した各種パラメータを含む。特徴量は、元の画像の特徴点、エッジ強度、元の画像に含まれる各画素の奥行き、テクスチャの種類、オプティカルフロー、モーションエスティメーションの情報の少なくともいずれかを含んでよい。あるいは付加データは、圧縮符号化部422が実施した物体認識処理により特定された、元の画像が表す物体を示すデータを含んでもよい。この場合、画像処理装置200の復号伸張部242は、送信された画像データと付加データに基づいて、解像度の高い表示画像を正確に生成する。なおこの特徴は、特願2019−086286号として本発明者により出願されている。
図27〜31は、動画像の内容に応じてスコアを決定する事例を示している。図27は上記3の、画像上の像の大きさに基づくスコア決定規則を適用する例を示している。図示する3つの画像は、同じ動画像の異なるフレームを表している。どのフレームにおいても、同じオブジェクトモデルを用いたオブジェクト152a、152b、152cが描画されている。オブジェクトモデルは実際には、ポリゴンとテクスチャで構成される3次元の情報を有する。
画像生成部420は、オブジェクトモデルを描画対象の空間に配置し、それをビュースクリーンに射影することでオブジェクト152a、152b、152cなどを描画する。この際、ビュースクリーンからの距離によって、オブジェクト152a、152b、152cの見かけ上のサイズが変化するため、画像生成部420は適宜、描画に用いるポリゴンの数やテクスチャの解像度を調整する。
例えばオブジェクトモデル150が100万個のポリゴンで定義されているのに対し、ビュースクリーンから離れているオブジェクト152cは1万個のポリゴンで、ビュースクリーンの近くにいるオブジェクト152aは10万個のポリゴンで、それぞれ描画される。またテクスチャの解像度はオブジェクト152a>オブジェクト152b>オブジェクト152cとなる。画像内容取得部450はそのような情報、すなわちビュースクリーンから見たオブジェクトのLOD、ミップマップテクスチャのレベル、テッセレーションのレベル、像の大きさなどを、画像が表す内容に係る情報として画像生成部420から取得する。
そして圧縮符号化処理部454は、通信状況に対応するデータサイズとするため、当該画像が表す内容に係る情報に基づきフレームレート、解像度、量子化パラメータを調整する。すなわちシーンに登場する全オブジェクトについて、オブジェクトのLOD、ミップマップテクスチャのレベル、テッセレーションのレベルと、像のサイズを集計し、調整対象のパラメータに与えるスコアを計算する。図示する例では左の画像ほど、高精細に描かれたオブジェクトがあり、かつ画像全体における当該オブジェクトの占める面積の割合が大きい(全体として人やアバターが高精細に描画されている)ため、量子化のクオリティと解像度の重みを表すスコアを高くする。
図28は上記4の、オブジェクトの細かさに基づくスコア決定規則を適用する例を示している。図示する2つの画像は、同じ動画像の異なるフレームを表している。それぞれは、同じ風景をズームイン・ズームアウトしたフレームである。画像が表す内容としてオブジェクトの像の大きさと量を集計すると、左の画像ほど小さなオブジェクトの量が多く、かつ画像全体においてそれらが占める面積の割合が大きい(全体として緻密なオブジェクト、文字や記号、標識、ドット絵が多い)。したがってこの例では圧縮符号化処理部454は、左の画像ほど解像度の重みを表すスコアを高くする。
図29は上記5の、コントラスト、ダイナミックレンジに基づくスコア決定規則を適用する例を示している。画像が表す内容として、画像平面を所定サイズに分割してなる単位領域ごとのコントラストやダイナミックレンジを集計すると、左の画像ほど画像全体に占める高コントラストあるいは高ダイナミックレンジの領域の面積が大きい。したがってこの例では圧縮符号化処理部454は、左の画像ほど量子化のクオリティの重みを表すスコアを高くする。
図30は上記6の、像の動きに基づくスコア決定規則を適用する例を示している。図示する2つの画像は、同じ動画像の異なるフレームを表している。画像が表す内容として、画像平面でのオブジェクトの移動量(ベクトル)の絶対値や、画像平面を所定サイズに分割してなる単位領域ごとのオプティカルフローやモーションエスティメーションの大きさと量を集計する。すると動きの大きいオブジェクト152d〜152gの存在により、左の画像ほど移動量が大きいオブジェクトが多く、かつ画像全体における面積の割合が大きい、すなわち画像全体における移動量(ベクトル)の絶対値の合計が大きい。したがってこの例では圧縮符号化処理部454は、左の画像ほどフレームレートの重みを表すスコアを高くする。
図31は上記7の、テクスチャの種類に基づくスコア決定規則を適用する例を示している。図示する2つの画像は、同じ動画像の異なるフレームを表している。画像が表す内容として、画像平面を所定サイズに分割してなる単位領域ごとの画像テクスチャの種類を集計すると、オブジェクト152h〜152jとオブジェクト152kの差により、左の画像ほど画像全体における密度の高い領域、詳細な領域、群衆の領域の占める面積の割合が大きい。したがってこの例では圧縮符号化処理部454は、左の画像ほど解像度の重みを表すスコアを高くする。
図32は、サーバ400が通信状況に応じてデータサイズを調整する処理手順を示すフローチャートである。このフローチャートは、ユーザが画像処理装置200に対し、プレイしたいゲームや鑑賞したい動画などを選択することによって開始される。これに対しサーバ400の通信状況取得部452は、画像処理装置200へのストリーミングに用いる通信の状況取得を開始する(S50)。
通信状況は上述のとおり、画像処理装置200との信号送受によって判明するため、通信状況取得部452は通信部426から必要な情報を取得する。具体的には通信状況取得部452は、画像処理装置200へ送信した画像データの到達遅延時間や、画像データの到達率を取得し、それらの情報から、通信状況を表す指標を導出する。導出規則については前もって設定しておく。一方、画像生成部420は、動画像の生成を開始する(S52)。ただし画像生成部420は、コンピュータグラフィクスを描画するのに限らず、撮影画像をカメラから取得してもよい。
一方、圧縮符号化部422の画像内容取得部450は、動画像の内容に係る情報の取得を開始する(S54)。上述のとおり画像内容取得部450は、画像生成部420、圧縮符号化処理部454から情報を取得したり、自らが画像を解析したりすることにより、所定の情報を任意のタイミングで取得する。次に圧縮符号化処理部454は、通信状況取得部452が取得した直近の通信状況に応じて、画像データの送信サイズを決定する(S56)。
そして圧縮符号化処理部454はまず、その時点で画像内容取得部450が取得している動画像の内容から、上述した規則の少なくともいずれかに従いスコアを取得する(S58)。次に圧縮符号化処理部454は、得られたスコアに基づき、データサイズの調整手段や調整量を導出する(S60)。すなわちスコアを合計するなどして、フレームレート、解像度、量子化パラメータに対する総合的な重みを算出し、当該重みに従うバランスで、目標とするデータサイズに合うように各パラメータの値を決定する。
動画像の内容を示すパラメータからスコアを得る手段、および、スコアから調整手段や調整量を導出する手段は、それぞれの対応づけを表すテーブルを準備してもよいし、導出規則をモデル化しプログラムなどで実現してもよい。この際、通信状況のレベルによって、調整手段や調整量が変化するようにしてもよい。なお通信状況が安定しており、送信可能なデータサイズが変化しない場合も、圧縮符号化処理部454は動画像の内容に対応するスコアを継続して導出し、送信サイズは同じであってもフレームレート、解像度、量子化パラメータの各値の組み合わせを変化させてもよい。
異常状態を除き送信を継続できる間は通信状況に特定のしきい値を設けず、通信状況に合わせてデータの送信サイズを多段階で決定し、それに合わせてフレームレート、解像度、量子化パラメータの組み合わせを調整する。また上述のとおり、導出規則を定義するテーブルや計算モデルは、機械学習や深層学習を用いて随時最適化していってもよい。なお図示する手順では、S58で動画の内容からスコア値を取得し、それに基づきS60で調整手段や調整量を求める2段階の処理としたが、動画の内容から直接、調整手段や調整量が求められるように決定規則を準備してもよい。
圧縮符号化処理部454はこのようにして決定した調整手段や調整量によって、データサイズを調整しながら部分画像単位で圧縮符号化を行い、当該画像のデータを、順次パケット化部424に供給する(S62)。この際、解像度、フレームレート、量子化パラメータの情報も対応づけて供給する。パケット化部424はそれをパケット化し、通信部426から画像処理装置200に送信する。なお圧縮符号化処理部454は、スコアの取得と調整手段や調整量の導出を、圧縮符号化処理のバックグラウンドで行ってもよい。また実際には、S56におけるデータサイズの決定頻度と、S62における部分画像単位での圧縮符号化および送信の頻度は、同じであっても異なっていてもよい。
これにより圧縮符号化処理部454は、データサイズの調整に用いる手段および調整量を、所定の時間間隔で再設定してもよい。画像処理装置200に対するユーザ操作などにより、画像の送信を停止する必要がなければ(S64のN)、後続のフレームについて、必要に応じて調整手段や調整量を変化させながら圧縮符号化と送信の処理を繰り返す(S56、S58、S60、S62)。ただし上記11のように圧縮符号化処理部454は、直前の所定期間における調整手段や調整量の変化の履歴を参照したうえ、ユーザ体験が悪化しないような許容範囲内で調整する。画像の送信を停止する必要が生じたら、サーバ400は全ての処理を終了させる(S64のY)。
以上述べた、データサイズ削減手段の最適化によれば、サーバ400から画像処理装置200へのストリーミングに用いる通信の状況に応じて、送信している動画像が表す内容に係る情報に適した手段および量で、画像のデータサイズを調整する。ここで、解像度、フレームレート、量子化パラメータといった複数の調整手段の組み合わせで調整を行うことにより、1つのパラメータのみを調整するより、とり得る状態変化のバリエーションを格段に増やすことができる。結果として、可能な限りユーザが許容できる範囲での画質の劣化に抑えることができる。
また動画像の内容に係る情報として、リアルタイムで画像を生成している画像生成部や、圧縮符号化している圧縮符号化処理部から情報を得ることにより、より正確かつ詳細なデータに基づき対策を講じることができる。ここで画像生成部や圧縮符号化処理部は通常の処理を行っていればよいため、処理の負荷を増大させることなく、各時点で最適な方法でデータサイズの調整を行える。
7.領域ごとの圧縮率制御
7−1.動画像が表す内容に基づく制御
上記6では、動画像が表す内容に係る各種情報に基づき、フレームを最小単位として解像度、フレームレート、量子化パラメータの組み合わせを調整することによりデータサイズを制御した。一方、表示された画像中でユーザが注目している領域は限定されるため、当該領域により多くの通信帯域を割り当てることにより、同じ条件下でもユーザの体感画質を向上させることができる。
図33は、動画像が表す内容に基づき、フレーム上の領域によって圧縮率を変化させる機能を有するサーバ400の機能ブロックの構成を示している。サーバ400は、画像生成部420、圧縮符号化部422、パケット化部424、および通信部426を含む。画像生成部420、パケット化部424、および通信部426は、図5、16、24で説明したのと同様の機能を有する。上述のとおり画像生成部420は、送信対象の動画像をその場で描画する、すなわちそれまで存在していなかった映像を動的に描画する場合があることに留意する。
また各フレームに対応する複数の画像を送信する場合、圧縮符号化部422は図20、23で示した分割部440、第2符号化部444、送信対象調整部362などをさらに備えてもよい。圧縮符号化部422は、画像内容取得部450、注目度推定部460、通信状況取得部462、および圧縮符号化処理部464を備える。画像内容取得部450は図26で説明したように、処理対象の動画像が表す内容に係る情報を、画像処理装置200、画像生成部420、圧縮符号化処理部464から取得するか、自らが画像解析を行うことにより取得する。
注目度推定部460は、動画像が表す内容に係る情報に基づき、動画像のフレーム平面を分割してなる単位領域ごとに、表される内容に応じたユーザの注目度を推定する。ここで注目度は、ユーザが注目している度合いを示す数値などの指標である。例えば主たるオブジェクトが写っている領域や、文字が表されている領域などを含む単位領域については高い注目度が推定される。このため画像内容取得部450は、図26について例示した動画像の内容に係る情報に加え、画像に表されるオブジェクトの種類やその位置に係る情報も取得してよい。
当該情報は、画像内容取得部450自らが画像認識処理を実行することにより取得してもよいし、画像生成部420などから画像描画の結果として通知を受けてもよい。前者の場合、画像内容取得部450は、取得済みのオプティカルフロー、モーションエスティメーション、符号化ユニットの割り当て状況、シーンの切り替わりのタイミングか否か、フレームに表されている画像テクスチャの種類、特徴点の分布、奥行き情報などの少なくともいずれかを利用して画像認識を行ったり、認識したオブジェクトの注目度を推定したりしてよい。
通信状況取得部462は、図23、26の通信状況取得部452と同様の機能を有する。圧縮符号化処理部464は、注目度推定部460が推定した注目度の分布に基づき、画像平面で圧縮率を異ならせたうえ画像データを圧縮符号化する。この際、圧縮符号化処理部464は、注目度、データ伝送に用いることのできる通信帯域幅、フレームレート、および解像度の組み合わせに基づき、フレーム平面における圧縮率、ひいては量子化パラメータの分布を決定する。
圧縮符号化処理部464は定性的には、高い注目度が推定される単位量域については量子化パラメータの値を下げることにより圧縮率を下げ、より多くのビットレートを割り当てる。ただし推定される注目度の高さのみを基準として量子化パラメータを決定すると、利用できる通信帯域に対し必要以上に圧縮してしまったり、圧縮が不十分であったりすることが起こり得る。
そこで上述のとおり圧縮符号化処理部464は、フレームレート、および解像度を加味したうえで、フレーム全体のデータサイズが、利用できる通信帯域に見合うように、画像平面における圧縮率の分布を決定する。ただし圧縮符号化処理部464はこれまで述べたように、画像生成部420が生成したフレームの部分画像単位で圧縮符号化を実施する。ここで部分画像は、例えば注目度を推定する単位領域の整数倍の大きさとする。圧縮符号化処理部464は、単位領域ごとに量子化パラメータを決定し、部分画像が内包する単位領域ごとに、決定した量子化パラメータを用いて圧縮符号化する。この際、圧縮符号化処理部464は、部分画像ごとに合計のデータサイズを把握する。
圧縮符号化処理部464は、そのようにして圧縮符号化した部分画像のデータを、パケット化部424に順次供給する。この際、当該部分画像の単位領域に適用した量子化パラメータを対応づけて供給することにより、パケット化部424はそれらのデータとともに部分画像のデータをパケット化する。これにより、これまで述べたのと同様に、圧縮符号化された部分画像のデータが通信部426を介して画像処理装置200に送信される。画像処理装置200の復号伸張部242は、画像データとともに送信された量子化パラメータに基づき逆量子化を行う。
図34は、注目度推定部460が画像平面における注目度の分布を推定する処理を説明するための図である。画像160は動画像のデータのうち、あるフレームを表している。画像160にはオブジェクト162a、162bやGUI162cが表されている。注目度推定部460は当該画像平面を、破線で示すように縦横双方向に所定間隔で区切ることにより単位領域(例えば単位領域164)を形成する。そして各単位領域に対し、注目度を推定する。
図では、一点鎖線で囲まれた、オブジェクト162a、162bが表される単位領域の集合166a、166bに対し、他の単位領域より高い注目度が推定されることを示している。ただし実際には、より多くのオブジェクトが表されていることを踏まえ、上記「6.データサイズ削減手段の最適化」において例示したような様々な情報に基づき注目度を推定する。また注目度は0または1、すなわち注目されていないか注目されているかの2値でもよいし、より多くの階調で表してもよい。例えば注目度推定部460は、次のような規則の少なくともいずれかにより、注目度を表すスコアを導出し、その合計によって単位領域ごとの注目度を総合的に決定してもよい。
1.オブジェクトの重要性に基づくスコア決定規則
ユーザの操作対象である、人、アバター、ロボット、乗り物や機械などのオブジェクトや、そのような主たるオブジェクトと対峙するオブジェクト、ゲームにおけるプレイヤのライフステータス、保有武器ステータス、ゲームスコアなど、プレイヤに情報を通知することが目的のインジケータを含む単位領域など、重要性の高さに対する条件を満たすオブジェクトを含む単位領域を他より高いスコアとする。それらのオブジェクトは、画像内容取得部450が、画像生成部420から情報を得るか、画像認識で特定したオブジェクトとユーザ操作との連動性から推定する。なおユーザは一人でもよいし、同じ画像処理装置200を共有する、あるいは同じサーバ400に接続された異なる画像処理装置200を有する複数人でもよい。
2.オブジェクトの像の面積割合に基づくスコア決定規則
人や、それに類する特徴を有するアバター、ロボットなどのオブジェクトが画像全体に占める面積の割合が大きいほど、それを含む単位領域を他より高いスコアとする。それらのオブジェクトは、画像内容取得部450が、画像生成部420から情報を得るか、画像認識で特定する。画像認識においては一般的な顔検出アルゴリズムなどを用いてよい。例えば、目鼻口の特徴量を示す位置が、T字型で相対的に位置する箇所を画像内から検索することで顔を検出する。
3.提示内容に基づくスコア決定規則
ゲームにおけるプレイヤのライフステータス、保有武器ステータス、ゲームスコアなど、プレイヤに情報を通知することが目的のインジケータを含む単位領域を他より高スコアとする。当該インジケータは、画像内容取得部450が、画像生成部420から情報を得るか、画像認識で特定する。
4.オブジェクトの細かさに基づくスコア決定規則
緻密名文字、記号、標識、ドット絵などのオブジェクトが画像全体に占める面積の割合が小さい場合、それらを含む単位領域を他より高いスコアとする。当該オブジェクトは画像内容取得部450が、画像生成部420から情報を得るか、画像認識で特定する。
5.画像上の像の大きさに基づくスコア決定規則
LOD、ミップマップテクスチャ、テッセレーション、オブジェクトの大きさを参照し、所定値より高精細なオブジェクトがあり、かつ、画像全体においてそれが占める面積の割合が大きい(ビュースクリーンの近くに大きな高精細オブジェクトがある)ほど、当該オブジェクトを含む単位領域を他より高いスコアとする。
6.コントラスト、ダイナミックレンジに基づくスコア決定規則
画素値の分布に基づくコントラストや、輝度の分布に基づくダイナミックレンジを参照し、コントラストあるいはダイナミックレンジが高い単位領域ほどを高スコアとする。
7.像の動きに基づくスコア決定規則
オブジェクトの像の移動量、オプティカルフロー、モーションエスティメーションの大きさと量を参照し、移動量が所定値より大きいオブジェクトが多く、かつ画像全体においてそれらが占める面積の割合が大きい単位領域ほどを高スコアとする。
8.テクスチャの種類に基づくスコア決定規則
各単位領域の画像テクスチャの種類を集計し、画像全体において密度の高い領域、詳細な領域、群衆の領域の占める面積の割合が大きいとき、当該テクスチャを含む単位領域を他より高いスコアとする。
9.シーンの切り替わりタイミングにおけるスコア制御規則
画像生成部420から切り替わりのタイミングについての情報を得る。もしくはオブジェクト量、特徴点、エッジ、オプティカルフロー、モーションエスティメーション、画素コントラスト、輝度のダイナミックレンジ、オーディオの有無、オーディオのチャネル数、オーディオのモードのいずれかが、時系列方向で急変したりリセットされたりしたときにスコアを切り替える。この際、少なくとも2フレーム以上を参照する。なお圧縮符号化処理部454は、圧縮符号化においてイントラフレームとするフレームの必要性を把握するため、前フレームとの相関性に基づきシーンの切り替わりを検出することもできる。
このとき従来方式の圧縮符号化処理部454による判定のみによらず、上述したスコア決定規則も併用し、切り替わりの検出精度を上げてよい。シーンの切り替わりでないと判定されたとき、それまでのフレームについて、他のスコア決定規則に基づいて設定された、高スコアの単位領域のスコアをさらに高くする。シーンの切り替わりであると判定されたときは、高スコアとされていた単位領域のスコアを一旦、リセットする。検出したシーンの切り替わりにはイントラフレームが必要となり、データサイズがサージ的に増加しやすいため、対象のフレームおよび後続の所定数のフレームで、全ての単位領域の合計スコアを低減させる。
10.ユーザ操作の内容に基づくスコア決定規則
画像生成部420が実施しているゲームなどのコンテンツにおいて、直前の所定期間におけるユーザ操作の変化量が所定値以上のとき、ユーザはコンテンツからの高い応答性を期待しており、注目領域があると推定される。したがって他のスコア決定規則により所定値以上のスコアが与えられている単位領域のスコアをさらに増幅させる。操作がなされていても変化量が小さい場合は、当該スコアのレベルを、増幅結果より一段階下げる。なおユーザ操作は、ゲームコントローラ、キーボード、マウスなど図示しない入力装置が取得した入力情報、ヘッドマウントディスプレイ100の位置、姿勢、動き、ヘッドマウントディスプレイ100のカメラまたは図示しない外部カメラが撮影した画像を解析した結果に基づくジェスチャ(ハンドサイン)指示、図示しないマイクが取得した音声指示などを画像処理装置200から取得する。
11.圧縮率の分布の切り替え頻度の制御
直前の所定期間に決定した注目度の履歴を参照し、ユーザ体験の観点から切り替えが許容範囲となるようにスコアを調整する。「許容範囲」は、あらかじめ定義したテーブルやモデルに基づいて決定する。
注目度推定部460は、以上の規則のうちいずれかにより、あるいは複数の規則で得られたスコアの合計値により、各単位領域の注目度を総合的に決定する。なお圧縮符号化処理部454は、上記1〜9の規則において、オブジェクトの位置、投影される順序、大きさ、ビュースクリーンからの相対距離を把握するためにZ値を参照してもよい。なお上述した決定規則は、テーブルあるいは計算モデルなどの形式で前もって準備し、注目度推定部460の内部で保持しておく。
圧縮符号化処理部464は、このようにして推定された注目度の分布に基づき、各単位領域の圧縮率(量子化パラメータ)を決定する。例えば図示する例で、単位領域1行分を部分画像とした場合、注目度が高いと判定された単位領域がない最上段の部分画像168aと最下段の部分画像168bは、それ以外の中間部分の部分画像より圧縮率を高くする。さらに、オブジェクト162bよりオブジェクト162aの方が注目度が高い場合、オブジェクト162bが表された単位領域の集合166bは、単位領域の集合166aより圧縮率を高くすることも考えられる。
いずれにしろ圧縮符号化処理部464は、部分画像単位、1フレーム単位、所定数のフレーム単位、所定の時間間隔、のいずれかで、圧縮率の分布を更新することにより、データサイズが最新の通信状況に合うようにする。例えば利用可能な通信帯域幅、解像度、フレームレートが同じであれば、注目度が高いと推定される単位領域が多いほど、注目領域と非注目領域の間で圧縮率の差を小さくする。このような調整は、注目度の高さに応じて、単位領域の集合166a、166bごとに個別に行ってもよい。場合によっては一部の単位領域の集合(例えば単位領域の集合166b)を、判定された注目度の優先順位に基づいて、圧縮率を下げる対象から除外してもよい。
さらに、利用可能な通信帯域幅が同じなかで、解像度やフレームレートが高ければ、全体的に圧縮率を上げたり、注目領域と非注目領域の間で圧縮率の差を小さくしたりすることによりフレームごとのデータサイズを調整し、ビットレートを適正化する。送信対象は部分画像単位である一方、データサイズの制御は、部分画像単位、1フレーム単位、および所定数のフレーム単位、所定の時間単位、のいずれでもよい。各単位領域の注目度、利用できる通信帯域幅、フレームレート、および解像度の組み合わせに基づき、量子化パラメータの分布を決定するための規則は、テーブルあるいは計算モデルなどの形式で前もって準備しておく。
ただし動画像の内容を示す情報は上述のとおり多岐にわたるため、それらを総合的に見て最適な量子化パラメータを決定するためには、決定規則自体を最適化していくことが望ましい。そこで上記「6.データサイズ削減手段の最適化」について説明したのと同様、過去の様々なケースにおける調整結果を収集しながら、機械学習または深層学習によって決定規則を最適化していってもよい。
図35は、サーバ400が画像平面の領域ごとに圧縮率を制御する処理手順を示すフローチャートである。このフローチャートは、ユーザが画像処理装置200に対し、プレイしたいゲームや鑑賞したい動画などを選択することによって開始される。これに対しサーバ400の通信状況取得部462は、画像処理装置200へのストリーミングに用いる通信の状況取得を開始する(S70)。通信状況は上述のとおり、画像処理装置200との信号送受によって判明するため、通信状況取得部462は通信部426から必要な情報を取得する。
また画像生成部420は、対応する動画像の生成を開始する(S72)。ただし画像生成部420は、コンピュータグラフィクスを描画するのに限らず、撮影画像をカメラから取得してもよい。一方、圧縮符号化部422の画像内容取得部450は、動画像の内容に係る情報の取得を開始する(S73)。次に圧縮符号化処理部464は、通信状況取得部462が取得した直近の通信状況に応じて、画像データの送信サイズを決定する(S74)。そして圧縮符号化部422の注目度推定部460は、動画像の内容に係る情報に基づき、処理対象のフレームに対し注目度の分布を推定する(S75)。すなわちフレームの平面を単位領域に分割し、それぞれについて注目度を導出する。
注目度の導出には、上述した規則の少なくともいずれかに従いスコアを取得できるテーブルを参照するか、計算モデルを利用する。そして様々な観点から得られたスコアを合算して、最終的な注目度を単位領域ごとに求める。圧縮符号化処理部464は、注目度の分布に基づき量子化パラメータの分布を決定する(S76)。上述のとおり量子化パラメータは、注目度のほか、利用できる通信帯域幅、解像度、フレームレートを考慮して決定する。
圧縮符号化処理部464は、テーブルを参照したり、計算モデルを利用したりして、それらのパラメータから適切な量子化パラメータの分布を導出する。そして圧縮符号化処理部464は、決定した量子化パラメータを用いて部分画像に内包される単位領域を圧縮符号化していき、順次パケット化部424に供給することにより、通信部426が画像処理装置200に送信する(S80)。
圧縮符号化処理部464は処理対象のフレームについて、全ての部分画像のデータの圧縮符号化および送信を繰り返す(S82のN、S80)。画像処理装置200に対するユーザ操作などにより、画像の送信を停止する必要がなければ(S84のN)、後続のフレームについてもデータサイズの決定、注目度分布の推定、量子化パラメータ分布の決定、部分画像の圧縮符号化および送信を繰り返す(S84のN、S74、S75、S76、S80、S82)。
なお実際には、部分画像単位のパイプライン処理となるため、前のフレームの部分画像の圧縮符号化や送信処理の間に、次のフレームの注目度分布推定や量子化パラメータの分布決定を行える。また実際には、S74におけるデータサイズの決定頻度と、S80における部分画像単位での圧縮符号化および送信の頻度は、同じであっても異なっていてもよい。画像の送信を停止する必要が生じたら、サーバ400は全ての処理を終了させる(S84のY)。
以上述べた、動画像が表す内容に基づく領域ごとの圧縮率制御によれば、サーバ400は、動画像が表す内容に基づきユーザの注目度を単位領域ごとに推定する。そして注目度が高いほど圧縮率が低くなるように量子化パラメータの分布を決定したうえ圧縮符号化し画像処理装置200に送信する。これにより、限られた通信帯域幅やリソース環境下で、ユーザ体験の質を向上させることができる。
また動画像の内容に係る情報として、リアルタイムで画像を生成している画像生成部や、圧縮符号化している圧縮符号化処理部から多角的な情報を得ることにより、より正確かつ詳細に注目度の分布を推定することができる。注目度を分布として扱い、さらに当該分布に応じて圧縮率の分布を決定することにより、解像度、フレームレート、通信状況の変化に対し圧縮率を細かく制御でき、様々な状況変化に臨機応変に対応できる。
7−2.ユーザの注視点に基づく制御
上記7−1では、動画像が表す内容に基づき注目度を推定したが、実際にユーザが注目している箇所に基づき注目度を推定することもできる。この場合、サーバ400は、ヘッドマウントディスプレイ100や平板型ディスプレイ302を見ているユーザの注視点を検出する装置から、画面上の注視点の位置情報を取得し、それに基づき注目度の分布を推定する。なお動画像が表す内容と、ユーザの注視点の双方に基づき注目度の分布を導出してもよい。
図36は、ユーザの注視点に基づき、フレーム上の領域によって圧縮率を変化させる機能を有するサーバ400の機能ブロックの構成を示している。サーバ400は、画像生成部420、圧縮符号化部422、パケット化部424、および通信部426を含む。画像生成部420、パケット化部424、および通信部426は、図5、9、16、26、33で説明したのと同様の機能を有する。また複数視点の画像を送信する場合、圧縮符号化部422は図20、23で示した分割部440、第2符号化部444、送信対象調整部362などをさらに備えてもよい。
圧縮符号化部422は、注視点取得部470、注目度推定部472、通信状況取得部474、および圧縮符号化処理部476を備える。注視点取得部470は、ヘッドマウントディスプレイ100や平板型ディスプレイ302など、画像処理装置200に接続された表示装置に表示された、描画済みの動画像に対するユーザの注視点の位置情報を取得する。例えばヘッドマウントディスプレイ100の内部に注視点検出器を設けたり、平板型ディスプレイ302を見ているユーザに注視点検出器を装着させたりし、当該注視点検出器による計測結果を取得する。
そして画像処理装置200の画像データ取得部240からサーバ400の通信部426に、注視点の位置座標情報を所定のレートで送信することにより、注視点取得部470がそれを取得する。注視点検出器は、例えば赤外線などの参照光をユーザの眼球に照射し、その反射光をセンサにより検出して得られる瞳孔の方向から注視点を特定する一般的な装置でよい。注視点取得部470は好適には、動画像のフレームレートより高い頻度で注視点の位置情報を取得する。
あるいは注視点取得部470は、画像処理装置200から取得した注視点の位置情報を時間的に補間することにより、好適な頻度で位置情報を生成してもよい。なお画像処理装置200からの送信失敗に備え、注視点取得部470は注視点の位置情報の最新値とともに、所定数の履歴値を画像処理装置200から同時に取得するようにしてもよい。
注目度推定部472は、注視点の位置に基づき、動画像のフレーム平面を分割してなる単位領域ごとに注目度を推定する。具体的には注目度推定部472は、注視点が含まれる頻度、注視点の滞留時間、サッケードの有無、瞬きの有無、の少なくともいずれかに基づき注目度を推定する。定性的には注目度推定部472は、単位時間当たりに注視点が含まれる頻度、あるいは滞留時間が多いほど、単位領域の注目度を高くする。
サッケードは対象物に視線を向ける際などに発生する眼球の高速運動であり、サッケードが発生している期間は視覚信号の脳での処理が中断していることが知られている。瞬きをしている期間は当然、画像が認識されない。そのため注目度推定部472は、それらの期間において、注目度の高低差を縮めたりなくしたりするように変化させる。サッケードや瞬きの期間を検出する手法は、例えば米国特許出願公開第2017/0285736号明細書に開示されている。
ここで注視点取得部470が、動画像のフレームレート(例えば120Hz)より高い頻度(例えば240Hz)で注視点の位置情報を取得、あるいは生成する場合、注目度推定部472は、新たな位置情報が得られる都度、注目度を更新してよい。すなわち1フレーム分の圧縮符号化処理の途中で、注目度の分布が変化する場合があってよい。上述のとおり注目度推定部472はさらに、7−1において説明した注目度推定部460と同様に、動画像に表される内容に基づく注目度を単位領域ごとに推定し、注視点の位置に基づく注目度と統合することで最終的な注目度の分布を取得してもよい。通信状況取得部474は、図26の通信状況取得部452と同様の機能を有する。
圧縮符号化処理部476は基本的には、図33の圧縮符号化処理部464と同様の機能を有する。すなわち圧縮符号化処理部476は、注目度推定部472が推定した注目度の分布に基づき、画像平面で圧縮率を異ならせたうえ画像データを圧縮符号化する。この際、圧縮符号化処理部476は、データ伝送に用いることのできる通信帯域幅、フレームレート、および解像度の組み合わせに基づき、フレーム平面における圧縮率、ひいては量子化パラメータの分布を決定する。
例えば圧縮符号化処理部476は、直近の所定数のフレームのデータサイズと、通信状況取得部474が取得する、利用できる通信帯域幅との比較に基づき、圧縮率の分布を調整する。一方、一般に注視点の動きは複雑であり、安定した精度で注目度が得られない可能性がある。そこで圧縮符号化処理部476は、注目度推定部472が推定した注目度の分布以外に、直近のフレームにおける圧縮結果を参照し、処理対象のフレームの圧縮率の決定精度を高めてもよい。
例えば圧縮符号化処理部476は、直近の所定数のフレームの圧縮符号化結果、すなわち圧縮率を高めた領域やその圧縮率などに基づき、処理対象のフレームの圧縮率の分布を調整してもよい。これにより圧縮率の分布の偏りを緩和できる。あるいは圧縮符号化処理部476は、単位領域ごとの注目度の有効性を判定し、有効でないと判定した場合に、直近の所定数のフレームの圧縮符号化結果を参照して圧縮率の分布を決定してもよい。
例えば注目度が高い領域が激しく分散している場合や、注目度が有効範囲外にある場合、圧縮符号化処理部476は、直近の所定数のフレームで定めた圧縮率の分布をそのまま採用したり、分布の変化を外挿したりして、処理対象のフレームの圧縮率の分布を決定する。また圧縮符号化処理部476は、7−1で上述したように、フレームレートおよび解像度を加味したうえで、フレーム全体のデータサイズが、利用できる通信帯域に見合うように、画像平面における圧縮率の分布を決定する。以後の処理は7−1で上述したのと同様である。
図37は、注目度推定部472が画像平面における注目度の分布を推定する処理を説明するための図である。画像180は動画像のデータのうち、あるフレームを表している。画像上に表した円(例えば円182)は、注視点が滞留していた位置を表し、円の大きさによって滞留時間の長さを表している。ここで「滞留」とは、所定時間以上、同じ位置と見なされる所定範囲内に注視点が留まっていることを指す。また線(例えば線184)は、注視点の移動経路のうち所定値以上の頻度で発生した移動経路を表している。
注目度推定部472は注視点取得部470から所定周期で注視点の位置情報を取得し、図示するような情報を生成する。そして単位領域ごとに、注視点が含まれる頻度、滞留時間、サッケードの有無、瞬きの有無などに基づき注目度を推定する。図では例えば、一点鎖線で囲まれた領域186a、186b、186cに含まれる単位領域に対し、他の単位領域より高い注目度が推定される。さらに、しきい値以上の高い頻度で視点移動の経路となった単位領域についても、高い注目度としてもよい。この態様でも、注目度は0または1、すなわち注目されていないか注目されているかの2値でもよいし、より多くの階調で表してもよい。
図38は、圧縮符号化処理部476が注視点に基づき圧縮率の分布を決定する手法について説明するための図である。基本として圧縮符号化処理部476は対象フレームの圧縮符号化を開始する際に、最新の注目度の分布と利用可能な通信帯域幅に基づいて、部分画像ごとに圧縮率(量子化パラメータ)を決定し圧縮符号化する。しかしながら圧縮結果であるデータサイズは画像の内容によって変動し得るうえ、注視点情報は対象フレーム内の未処理の部分画像において更新され得る。
よって対象フレームの圧縮符号化を開始した時点でのデータサイズの目論見と実際の結果がずれてくる場合がある。そのため利用可能な通信帯域幅を一時的に超過した場合、または超過しそうな場合に、注目度に基づく圧縮率引き下げの指定をキャンセルし、データサイズの辻褄を合わせることを、対象フレームあるいは後続のフレームの圧縮符号化処理において実施する。同図の場合、上段に示すように画像190の平面を水平方向に等分してなる7つの部分領域(例えば部分領域192)を形成している
圧縮符号化処理部476は例えば、各部分画像を圧縮符号化する際、圧縮率を低めるべき単位領域が当該部分画像に含まれる場合、あるいは当該部分画像が圧縮率を低めるべき単位領域である場合、当該部分画像を対象として量子化パラメータを低くすることで圧縮率を低下させる。また画像190の上段の部分画像から順に圧縮符号化していく間に、新たな注視点の位置情報が得られたら、注目度推定部472は単位領域ごとの注目度をそれに応じて更新し、圧縮符号化処理部476は、直近の注目度に基づき部分画像の圧縮率を決定する。すなわち圧縮符号化処理部476は、処理対象のフレームの処理開始時以降に注目度が更新されたとき、その直近の注目度の分布に基づく圧縮率で、部分画像を圧縮符号化する。
このような圧縮率の決定においては上述のとおり、それまでの圧縮符号化結果を参照して圧縮率を調整してもよい。図の下段における棒グラフは圧縮符号化結果として、連続した4フレーム(「Frame0」〜「Frame3」)における部分画像ごとの圧縮符号化後のデータサイズをビットレート(bit/sec)で示している。また各フレームについて、1フレーム当たりの圧縮符号化後のビットレートを折れ線グラフ196で示している。
ここでビットレート「A」は、サーバ400と画像処理装置200との通信に利用できる通信帯域幅を示している。ただし実際には当該通信帯域幅は時間変動する。圧縮符号化処理部476は例えば、1フレーム当たりのビットレートを、利用できる通信帯域幅と比較することで、各部分画像の圧縮率、ひいては量子化パラメータを調整する。図の例では、「Frame0」の1フレーム当たりのビットレートが、通信帯域幅より十分下回っているのに対し、次の「Frame1」では通信帯域幅に接近している。
圧縮符号化処理部476は、各部分画像の圧縮符号化処理において1フレーム当たりのビットレートを予測し、「Frame1」のように通信帯域幅との差が所定のしきい値より小さくなることが判明したら、いずれかの部分画像の圧縮率を高くする。図では、「Frame1」の7番目の部分画像の圧縮率を、当初の決定より高くすることにより、ビットレートが低下したことを矢印で示している。
また次の「Frame2」では、1フレーム当たりのビットレートが通信帯域幅を超えている。このとき圧縮符号化処理部476は、その次のフレームである「Frame3」に対し圧縮率の調整を行ってもよい。図では「Frame3」の1番目の部分画像の圧縮率を、当初の決定より高くすることにより、ビットレートが低下したことを矢印で示している。
なおこの例は注目度を、注目されていないか注目されているかの2値で表し、当初注目されている領域としていた「Frame1」の7番目の部分画像や、「Frame3」の1番目の部分画像を、注目されている領域から除外する操作に相当する。すなわち圧縮符号化処理部476は、1フレーム当たりのビットレートが通信帯域幅を超えたとき、または両者の差が所定値より小さくなったとき、圧縮率を低めるべき高い注目度の単位領域を含む部分画像であっても圧縮率の低減をキャンセルする。
この場合、注目されていない他の領域と同じ圧縮率を与えてもよいし、所定値分だけ圧縮率を上げるようにしてもよい。ただし調整手法は図示するものに限らず、注目度を多段階で表す場合は特に、注目度の高さに応じて圧縮率の変化量を異ならせたり、圧縮率の分布全体を変化させたりしてもよい。このように圧縮符号化処理部476は、処理対象のフレームのみに基づき量子化パラメータを決定してもよいし、直近の所定数のフレームにおける圧縮符号化結果も参照することにより量子化パラメータを決定してもよい。
このとき圧縮符号化処理部476は、過去のフレームにおける量子化パラメータの分布、利用できる通信帯域幅、フレーム全体のデータサイズといったパラメータの時間変化を多角的に確認し、それに基づき処理対象のフレームにおける量子化パラメータの分布を決定してよい。注目度に基づき量子化パラメータの分布を決定する規則や、過去のフレームにおける量子化パラメータの分布、利用できる通信帯域幅、フレーム全体のデータサイズといったパラメータの時間変化に基づき量子化パラメータの分布を決定する規則は、過去の様々なケースにおける調整結果を収集しながら、機械学習または深層学習によって最適化していってもよい。
なおサーバ400が画像平面の領域ごとに圧縮率を制御する処理手順は図35で示したのと同様でよい。ただし注目度の推定処理は、注視点の位置情報が得られる都度、必要に応じて更新し、量子化パラメータは、それに応じて随時変更してよい。
以上述べた、ユーザの注視点に基づく領域ごとの圧縮率制御によれば、サーバ400は、ユーザの実際の視線の動きを取得し、その結果に基づきユーザの注目度を単位領域ごとに推定する。これにより実際に注目されている対象を正確に求めることができ、当該対象に優先的にリソースを割り当てることにより、ユーザの認識上で画質を向上させることができる。
また直近の圧縮符号化結果を圧縮率の決定に利用することにより、注目度の推定に誤差が含まれる場合でも圧縮率の設定精度を維持することができる。さらにフレーム全体での圧縮符号化後のデータサイズを監視することにより、当初の設定で注目度が高いと判定される領域が多すぎたり、当該領域の圧縮率を過度に低めすぎたりしても、それらの値を適切に調整することができる。また7−1と同様、注目度を分布として扱い、さらに当該分布に応じて圧縮率の分布を決定することにより、解像度、フレームレート、通信状況の変化に対し圧縮率を細かく制御でき、様々な状況変化に臨機応変に対応できる。
なお変形例として、注視点取得部470と注目度推定部472を画像処理装置200側に設け、サーバ400は、単位領域ごとに推定された注目度の情報を画像処理装置200から取得するようにしてもよい。この場合、注視点取得部470は上述した注視点検出器から、計測結果である注視点の位置情報を取得する。注目度推定部472はサーバ400に設けた場合と同様にして、注視点の位置情報に基づき単位領域ごとに注目度を推定する。
注視点の位置情報をフレームレートより高い頻度で取得し、それに応じて注目度の分布を随時更新してもよいことは上述したとおりである。注目度推定部472により推定された注目度の情報は、例えば画像データ取得部240を介してサーバ400の通信部426に所定のレートで送信する。この場合も注目度推定部472は送信失敗に備え、注目度の推定結果の最新値とともに、所定数の履歴値を同時に送信してよい。サーバ400の通信状況取得部474、圧縮符号化処理部476の動作は上述と同様である。このような構成によっても、上述したのと同様の作用効果を実現できる。
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
1 画像表示システム、 100 ヘッドマウントディスプレイ、 200 画像処理装置、 202 入出力インターフェース、 204 部分画像記憶部、 206 制御部、 208 ビデオデコーダ、 210 部分画像記憶部、 212 制御部、 214 画像処理部、 216 部分画像記憶部、 218 制御部、 220 ディスプレイコントローラ、 240 画像データ取得部、 242 復号伸張部、 244 画像処理部、 246 表示制御部、 248 データ取得状況特定部、 250 出力対象決定部、 252 出力部、 260 位置姿勢追跡部、 262 第1補正部、 264 合成部、 266 第2補正部、 270a 第1形成部、 270b 第2形成部、 272a 第1制御部、 272b 第2制御部、 280 第1復号部、 282 第2復号部、 302 平板型ディスプレイ、 400 サーバ、 402 描画制御部、 404 画像描画部、 406 フレームバッファ、 408 ビデオエンコーダ、 410 部分画像記憶部、 412 制御部、 414 ビデオストリーム制御部、 416 入出力インターフェース、 420 画像生成部、 422 圧縮符号化部、 424 パケット化部、 426 通信部、 430 描画部、 432 形成内容切り替え部、 434 データ形成部、 440 分割部、 442 第1符号化部、 444 第2符号化部、450 画像内容取得部、 452 通信状況取得部、 454 圧縮符号化処理部、 460 注目度推定部、 462 通信状況取得部、 464 圧縮符号化処理部、 470 注視点取得部、 472 注目度推定部、 474 通信状況取得部、 476 圧縮符号化処理部。

Claims (17)

  1. 表示対象の動画像を描画する描画部と、
    前記動画像が表す内容に係る情報を取得する画像内容取得部と、
    前記動画像のフレーム平面を分割してなる単位領域ごとに、前記動画像が表す内容に応じた注目度を推定する注目度推定部と、
    前記注目度の分布に基づきフレーム平面で圧縮率を異ならせ、前記動画像のデータを圧縮符号化する圧縮符号化部と、
    圧縮符号化された動画像のデータを送信する通信部と、
    を備えたことを特徴とする画像データ転送装置。
  2. 前記描画部は、それまで存在していなかった送信対象の動画像を動的に描画することを特徴とする請求項1に記載の画像データ転送装置。
  3. 前記画像内容取得部は、前記描画部からの通知、および描画された動画像の解析結果、の少なくともいずれかにより前記動画像が表す内容に係る情報を取得することを特徴とする請求項1または2に記載の画像データ転送装置。
  4. 前記画像内容取得部は、前記動画像の解析結果として、前記圧縮符号化部が圧縮符号化処理において取得した情報を利用することを特徴とする請求項3に記載の画像データ転送装置。
  5. 前記画像内容取得部は、前記動画像を規定するコンテンツに対するユーザ操作のタイミング、当該タイミングの間隔、当該ユーザ操作の内容、前記コンテンツの状況、および当該コンテンツで発生させるオーディオの状況、の少なくともいずれかを、前記内容に係る情報として取得することを特徴とする請求項1から4のいずれかに記載の画像データ転送装置。
  6. 前記画像内容取得部は前記コンテンツの状況として、a)ユーザ操作が必要で前記コンテンツの処理内容に影響を与えるシーンであるか、b)ユーザ操作が必要ないムービーシーンであるか、c)ユーザ操作が必要ない、ムービーシーン以外のシーンであるか、d)ユーザ操作が必要だが前記コンテンツの本編でないシーンであるか、の少なくともいずれかを判別する情報を前記描画部から取得することを特徴とする請求項5に記載の画像データ転送装置。
  7. 前記注目度推定部は、オプティカルフローの量、モーションエスティメーションの量、符号化ユニットの割り当て状況、シーンの切り替えタイミングか否か、フレームに表される画像テクスチャの種類、特徴点、奥行き情報、オブジェクトの量、3次元グラフィクスに用いているミップマップテクスチャの各レベルの使用量、LOD(Level Of Detail)、テッセレーションの各レベルの使用量、文字および記号の量、表されるシーンの種類、表されるオブジェクトの種類、の少なくともいずれかに基づき、前記注目度を推定することを特徴とする請求項1から6のいずれかに記載の画像データ転送装置。
  8. 送信先の装置における前記動画像のデータ到達率および遅延時間の少なくともいずれかを所定の時間間隔で取得することにより、動画像のストリーミングに用いる通信状況を求める通信状況取得部をさらに備え、
    前記圧縮符号化部は、前記注目度、前記通信状況、フレームレート、および解像度の組み合わせに基づき、前記フレーム平面における量子化パラメータの分布を決定することを特徴とする請求項1から7のいずれかに記載の画像データ転送装置。
  9. 前記注目度推定部は、前記動画像が表す内容を反映させた、注目度を表すスコアを複数の規則に基づき前記単位領域ごとに決定し、当該スコアの合計に基づき、前記単位領域ごとに圧縮率を決定することを特徴とする請求項1から8のいずれかに記載の画像データ転送装置。
  10. 前記注目度推定部は、重要性の高さに対する条件を満たすオブジェクトを含む単位領域のスコアを他より大きくすることを特徴とする請求項9に記載の画像データ転送装置。
  11. 前記注目度推定部は、直前の所定期間における、前記動画像を規定するコンテンツに対するユーザ操作の入力値の変化量が所定値以上のとき、他の規則により所定値以上のスコアが与えられている前記単位領域のスコアを増幅させることを特徴とする請求項9または10に記載の画像データ転送装置。
  12. 前記圧縮符号化部は、機械学習または深層学習により最適化された規則に基づき前記圧縮率を決定することを特徴とする請求項1から11のいずれかに記載の画像データ転送装置。
  13. 前記圧縮符号化部は、前記フレーム平面における圧縮率の分布を、フレーム全体のデータサイズに基づき決定することを特徴とする請求項1から12のいずれかに記載の画像データ転送装置。
  14. 前記圧縮符号化部は、1フレームより小さい部分画像の単位で動画像を圧縮符号化し、当該部分画像単位、1フレーム単位、および所定数のフレーム単位、所定の時間間隔、のいずれかで圧縮率の分布を更新することを特徴とする請求項1から13のいずれかに記載の画像データ転送装置。
  15. 前記通信部は、前記圧縮符号化部が、前記フレーム平面を分割してなる圧縮単位ごとに圧縮符号化したデータを順次送信し、
    前記圧縮符号化部は、前記圧縮単位に圧縮率を低めるべき単位領域が含まれる場合、当該単位領域の圧縮率を低下させることを特徴とする請求項1から14のいずれかに記載の画像データ転送装置。
  16. 表示対象の動画像を描画するステップと、
    前記動画像が表す内容に係る情報を取得するステップと、
    前記動画像のフレーム平面を分割してなる単位領域ごとに、前記動画像が表す内容に応じた注目度を推定するステップと、
    前記注目度の分布に基づきフレーム平面で圧縮率を異ならせ、前記動画像のデータを圧縮符号化するステップと、
    圧縮符号化された動画像のデータを送信するステップと、
    を含むことを特徴とする画像データ転送装置による画像圧縮方法。
  17. 表示対象の動画像を描画する機能と、
    前記動画像が表す内容に係る情報を取得する機能と、
    前記動画像のフレーム平面を分割してなる単位領域ごとに、前記動画像が表す内容に応じた注目度を推定する機能と、
    前記注目度の分布に基づきフレーム平面で圧縮率を異ならせ、前記動画像のデータを圧縮符号化する機能と、
    圧縮符号化された動画像のデータを送信する機能と、
    をコンピュータに実現させることを特徴とするコンピュータプログラム。
JP2019179441A 2019-09-30 2019-09-30 画像データ転送装置および画像圧縮方法 Pending JP2021057770A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2019179441A JP2021057770A (ja) 2019-09-30 2019-09-30 画像データ転送装置および画像圧縮方法
US17/763,339 US20220377349A1 (en) 2019-09-30 2020-09-23 Image data transfer apparatus and image compression
PCT/JP2020/035836 WO2021065633A1 (ja) 2019-09-30 2020-09-23 画像データ転送装置および画像圧縮方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019179441A JP2021057770A (ja) 2019-09-30 2019-09-30 画像データ転送装置および画像圧縮方法

Publications (2)

Publication Number Publication Date
JP2021057770A true JP2021057770A (ja) 2021-04-08
JP2021057770A5 JP2021057770A5 (ja) 2022-10-05

Family

ID=75271228

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019179441A Pending JP2021057770A (ja) 2019-09-30 2019-09-30 画像データ転送装置および画像圧縮方法

Country Status (3)

Country Link
US (1) US20220377349A1 (ja)
JP (1) JP2021057770A (ja)
WO (1) WO2021065633A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4239467A1 (en) * 2021-12-29 2023-09-06 Honor Device Co., Ltd. Frame rate switching method and device
US20230237730A1 (en) * 2022-01-21 2023-07-27 Meta Platforms Technologies, Llc Memory structures to support changing view direction

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10200900A (ja) * 1997-01-10 1998-07-31 Nippon Telegr & Teleph Corp <Ntt> 符号化映像の高画質メディア同期再生方法及び装置
JP2004005452A (ja) * 2002-04-16 2004-01-08 Sony Computer Entertainment Inc 画像処理装置、画像処理方法、半導体デバイス、コンピュータプログラム、記録媒体
JP2016533659A (ja) * 2013-06-07 2016-10-27 ソニー インタラクティブ エンタテインメント アメリカ リミテッド ライアビリテイ カンパニー ヘッドマウントシステムに関連するホップ数を削減するためのシステム及び方法
WO2017138458A1 (ja) * 2016-02-09 2017-08-17 株式会社ソニー・インタラクティブエンタテインメント 映像表示システム
WO2018026730A1 (en) * 2016-08-01 2018-02-08 Facebook, Inc. Adaptive parameters in image regions based on eye tracking information
JP2018026677A (ja) * 2016-08-09 2018-02-15 日本電信電話株式会社 符号化装置、符号化方法及び符号化プログラム
JP2018141816A (ja) * 2015-09-18 2018-09-13 フォーブ インコーポレーテッド 映像システム、映像生成方法、映像配信方法、映像生成プログラム及び映像配信プログラム
JP2019083492A (ja) * 2017-10-31 2019-05-30 日本電信電話株式会社 量子化パラメータ補正装置、量子化パラメータ補正方法及び量子化パラメータ補正プログラム

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104885456A (zh) * 2012-09-18 2015-09-02 Vid拓展公司 使用图块和图块组的感兴趣区域视频编码
US9978183B2 (en) * 2015-09-18 2018-05-22 Fove, Inc. Video system, video generating method, video distribution method, video generating program, and video distribution program

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10200900A (ja) * 1997-01-10 1998-07-31 Nippon Telegr & Teleph Corp <Ntt> 符号化映像の高画質メディア同期再生方法及び装置
JP2004005452A (ja) * 2002-04-16 2004-01-08 Sony Computer Entertainment Inc 画像処理装置、画像処理方法、半導体デバイス、コンピュータプログラム、記録媒体
JP2016533659A (ja) * 2013-06-07 2016-10-27 ソニー インタラクティブ エンタテインメント アメリカ リミテッド ライアビリテイ カンパニー ヘッドマウントシステムに関連するホップ数を削減するためのシステム及び方法
JP2018141816A (ja) * 2015-09-18 2018-09-13 フォーブ インコーポレーテッド 映像システム、映像生成方法、映像配信方法、映像生成プログラム及び映像配信プログラム
WO2017138458A1 (ja) * 2016-02-09 2017-08-17 株式会社ソニー・インタラクティブエンタテインメント 映像表示システム
WO2018026730A1 (en) * 2016-08-01 2018-02-08 Facebook, Inc. Adaptive parameters in image regions based on eye tracking information
JP2018026677A (ja) * 2016-08-09 2018-02-15 日本電信電話株式会社 符号化装置、符号化方法及び符号化プログラム
JP2019083492A (ja) * 2017-10-31 2019-05-30 日本電信電話株式会社 量子化パラメータ補正装置、量子化パラメータ補正方法及び量子化パラメータ補正プログラム

Also Published As

Publication number Publication date
WO2021065633A1 (ja) 2021-04-08
US20220377349A1 (en) 2022-11-24

Similar Documents

Publication Publication Date Title
WO2021065629A1 (ja) 画像表示システム、動画配信サーバ、画像処理装置、および動画配信方法
WO2021065628A1 (ja) 画像処理装置、画像データ転送装置、画像処理方法、および画像データ転送方法
WO2021065630A1 (ja) 画像データ転送装置および画像データ転送方法
KR102333398B1 (ko) 가상 현실 비디오 변환 및 스트리밍을 위한 시스템 및 방법
WO2021065632A1 (ja) 画像データ転送装置、画像表示システム、および画像圧縮方法
US11363247B2 (en) Motion smoothing in a distributed system
US20140292751A1 (en) Rate control bit allocation for video streaming based on an attention area of a gamer
US11582384B2 (en) Methods and apparatus for encoding, communicating and/or using images
WO2021065633A1 (ja) 画像データ転送装置および画像圧縮方法
TW202029742A (zh) 影像合成
WO2021065631A1 (ja) 画像データ転送装置および画像圧縮方法
JP7362903B2 (ja) 画像データ転送装置、画像表示システム、および画像データ転送方法
WO2021065627A1 (ja) 画像処理装置、画像表示システム、画像データ転送装置、および画像処理方法
WO2021199184A1 (ja) 画像表示システム、画像処理装置、画像表示方法、およびコンピュータプログラム
JP7393267B2 (ja) 画像データ転送装置、画像表示システム、および画像データ転送方法
WO2022259632A1 (ja) 情報処理装置及び情報処理方法
WO2021199128A1 (ja) 画像データ転送装置、画像生成方法およびコンピュータプログラム
WO2022158220A1 (ja) 画像表示システムおよび画像表示方法
US20230164330A1 (en) Data codec method and apparatus
JP2022525526A (ja) シーンを表す画像信号

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220927

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220927

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230905

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20231027

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240123

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240312